This object serves a synthesis of systems. Hold the move multipliers for all of them and energies obtained by moving various distances along the conjugate gradient vector. This provides a basis for solving a cubic polynomial to identify the best move along the computed gradient.
More...
#include <line_minimization.h>
|
| LineMinimization (int system_count_in=0, double dx0=0.0) |
| The constructor takes only the number of systems as input and allocates for three moves along the computed gradient.
|
|
int | getSystemCount () const |
| Get the number of systems.
|
|
std::vector< double > | getMoveLength (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Get the current move lengths for one or more systems.
|
|
double | getMoveLength (int system_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
|
void | primeMoveLengths (double dx0) |
| Prime the initial movement lengths for a series of line minimization cycles using a default or user-specified value. In the HPC compilation, this function will automatically upload the present move lengths to the device.
|
|
|
| LineMinimization (const LineMinimization &original) |
| The copy constructor and copy assignment operator must perform pointer repair. The default move and move assignment operators are the best choice.
|
|
LineMinimization & | operator= (const LineMinimization &other) |
|
| LineMinimization (LineMinimization &&original)=default |
|
LineMinimization & | operator= (LineMinimization &&other)=default |
|
|
std::vector< double > | getMoveFactor (int move_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Get the movement multipliers for one or more systems defining a particular move. Collectively, the system's particles move such that the magnitude of the displacment vector is the instantaneous move length times the current move scaling factor. A move length of 0.0001A might be multiplied by factors of 1.0, 1.05, 1.025, and 1.020 as the line minimization proceeds along one computed gradient.
|
|
double | getMoveFactor (int move_index, int system_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
|
|
std::vector< double > | getEnergy (int move_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Get the energies for one or more systems after a particular move.
|
|
double | getEnergy (int move_index, int system_index, HybridTargetLevel tier=HybridTargetLevel::HOST) const |
|
|
LinMinReader | data (HybridTargetLevel tier=HybridTargetLevel::HOST) const |
| Get a read-only or writeable abstract, as appropriate.
|
|
LinMinWriter | data (HybridTargetLevel tier=HybridTargetLevel::HOST) |
|
This object serves a synthesis of systems. Hold the move multipliers for all of them and energies obtained by moving various distances along the conjugate gradient vector. This provides a basis for solving a cubic polynomial to identify the best move along the computed gradient.
◆ LineMinimization() [1/2]
stormm::mm::LineMinimization::LineMinimization |
( |
int | system_count_in = 0, |
|
|
double | dx0 = 0.0 ) |
The constructor takes only the number of systems as input and allocates for three moves along the computed gradient.
- Parameters
-
system_count_in | The number of systems to prepare for line minimizations upon |
dx0 | Initial step size for total movement of all atoms along the line |
◆ LineMinimization() [2/2]
stormm::mm::LineMinimization::LineMinimization |
( |
const LineMinimization & | original | ) |
|
The copy constructor and copy assignment operator must perform pointer repair. The default move and move assignment operators are the best choice.
- Parameters
-
original | The original object, to be replicated or moved |
other | Another object, to be replicated or moved |
◆ data()
LinMinReader stormm::mm::LineMinimization::data |
( |
HybridTargetLevel | tier = HybridTargetLevel::HOST | ) |
const |
Get a read-only or writeable abstract, as appropriate.
Overloaded:
- Parameters
-
tier | Leve at which to obtain pointers: on the host, or on the HPC device |
◆ getEnergy()
std::vector< double > stormm::mm::LineMinimization::getEnergy |
( |
int | move_index, |
|
|
HybridTargetLevel | tier = HybridTargetLevel::HOST ) const |
Get the energies for one or more systems after a particular move.
Overloaded:
- Get all energies after a particular move.
- Get the energy for a particular system after a particular move.
- Parameters
-
move_index | Index of the move (0 to 3) |
system_index | Index of the system of interest (if unspecified, the energies of all systems will be returned) |
tier | Obtain results from the host or the device |
◆ getMoveFactor()
std::vector< double > stormm::mm::LineMinimization::getMoveFactor |
( |
int | move_index, |
|
|
HybridTargetLevel | tier = HybridTargetLevel::HOST ) const |
Get the movement multipliers for one or more systems defining a particular move. Collectively, the system's particles move such that the magnitude of the displacment vector is the instantaneous move length times the current move scaling factor. A move length of 0.0001A might be multiplied by factors of 1.0, 1.05, 1.025, and 1.020 as the line minimization proceeds along one computed gradient.
Overloaded:
- Get the factors of all systems for a particular move.
- Get the factors of a particular system and a specified move.
- Parameters
-
move_index | Index of the move (0 to 3) |
system_index | Index of the system of interest (if unspecified, the move lengths for all systems will be returned) |
tier | Obtain results from the host or the device |
◆ getMoveLength()
std::vector< double > stormm::mm::LineMinimization::getMoveLength |
( |
HybridTargetLevel | tier = HybridTargetLevel::HOST | ) |
const |
Get the current move lengths for one or more systems.
Overloaded:
- Get the move lengths for all systems for a particular move.
- Get the move lengths of a particular system and a specified move.
- Parameters
-
system_index | Index of the system of interest (if unspecified, the move lengths for all systems will be returned) |
tier | Obtain results from the host or the device |
◆ primeMoveLengths()
void stormm::mm::LineMinimization::primeMoveLengths |
( |
double | dx0 | ) |
|
Prime the initial movement lengths for a series of line minimization cycles using a default or user-specified value. In the HPC compilation, this function will automatically upload the present move lengths to the device.
- Parameters
-
dx0 | The initial movelength length to take |
The documentation for this class was generated from the following files: