Gromacs
2021.4
|
#include <gromacs/modularsimulator/propagator.h>
Propagator element.
The propagator element can, through templating, cover the different propagation types used in NVE MD. The combination of templating, static functions, and having only the inner-most operations in the static functions allows to have performance comparable to fused update elements while keeping easily re-orderable single instructions.
algorithm | The integration types |
Public Member Functions | |
Propagator (double timestep, StatePropagatorData *statePropagatorData, const MDAtoms *mdAtoms, gmx_wallcycle *wcycle) | |
Constructor. | |
void | scheduleTask (Step step, Time time, const RegisterRunFunction ®isterRunFunction) override |
Register run function for step / time. More... | |
void | elementSetup () override |
No element setup needed. | |
void | elementTeardown () override |
No element teardown needed. | |
void | setNumVelocityScalingVariables (int numVelocityScalingVariables) |
Set the number of velocity scaling variables. | |
ArrayRef< real > | viewOnVelocityScaling () |
Get view on the velocity scaling vector. | |
PropagatorCallback | velocityScalingCallback () |
Get velocity scaling callback. | |
ArrayRef< rvec > | viewOnPRScalingMatrix () |
Get view on the full PR scaling matrix. | |
PropagatorCallback | prScalingCallback () |
Get PR scaling callback. | |
Public Member Functions inherited from gmx::ISimulatorElement | |
virtual | ~ISimulatorElement ()=default |
Standard virtual destructor. | |
Static Public Member Functions | |
static ISimulatorElement * | getElementPointerImpl (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, double timestep, RegisterWithThermostat registerWithThermostat, RegisterWithBarostat registerWithBarostat) |
Factory method implementation. More... | |
|
static |
Factory method implementation.
legacySimulatorData | Pointer allowing access to simulator level data |
builderHelper | ModularSimulatorAlgorithmBuilder helper object |
statePropagatorData | Pointer to the StatePropagatorData object |
energyData | Pointer to the EnergyData object |
freeEnergyPerturbationData | Pointer to the FreeEnergyPerturbationData object |
globalCommunicationHelper | Pointer to the GlobalCommunicationHelper object |
timestep | The time step the propagator uses |
registerWithThermostat | Whether this propagator should be registered with the thermostat |
registerWithBarostat | Whether this propagator should be registered with the barostat |
storeElement
|
overridevirtual |
Register run function for step / time.
step | The step number |
time | The time |
registerRunFunction | Function allowing to register a run function |
Implements gmx::ISimulatorElement.