template<ComputeGlobalsAlgorithm algorithm>
class gmx::ComputeGlobalsElement< algorithm >
Encapsulate the calls to compute_globals
This element aims at offering an interface to the legacy implementation which is compatible with the new simulator approach.
The element comes in 3 (templated) flavors: the leap-frog case, the first call during a velocity-verlet integrator, and the second call during a velocity-verlet integrator. In velocity verlet, the state at the beginning of the step corresponds to positions at time t velocities at time t - dt/2 The first velocity propagation (+dt/2) therefore actually corresponds to the previous step, bringing the state to the full timestep at time t. Most global reductions are made at this point. The second call is needed to correct the constraint virial after the second propagation of velocities (+dt/2) and of the positions (+dt).
- Template Parameters
-
algorithm | The global reduction scheme |
|
| ComputeGlobalsElement (StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, SimulationSignals *signals, int nstglobalcomm, FILE *fplog, const MDLogger &mdlog, t_commrec *cr, const t_inputrec *inputrec, const MDAtoms *mdAtoms, t_nrnb *nrnb, gmx_wallcycle *wcycle, t_forcerec *fr, const gmx_mtop_t &global_top, Constraints *constr, ObservablesReducer *observablesReducer) |
| Constructor.
|
|
| ~ComputeGlobalsElement () override |
| Destructor.
|
|
void | elementSetup () override |
| Element setup - first call to compute_globals. More...
|
|
void | scheduleTask (Step step, Time time, const RegisterRunFunction ®isterRunFunction) override |
| Register run function for step / time. More...
|
|
void | elementTeardown () override |
| No element teardown needed.
|
|
template<> |
ISimulatorElement * | getElementPointerImpl (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, ObservablesReducer *observablesReducer) |
|
template<> |
ISimulatorElement * | getElementPointerImpl (LegacySimulatorData *simulator, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, ObservablesReducer *observablesReducer) |
|
virtual | ~ISimulatorElement ()=default |
| Standard virtual destructor.
|
|
virtual | ~IEnergySignallerClient ()=default |
| Standard virtual destructor.
|
|
virtual | ~ITrajectorySignallerClient ()=default |
| Standard virtual destructor.
|
|