Gromacs
2025.0-dev-20241009-5c23d5f
|
#include <gromacs/modularsimulator/mttk.h>
Element propagating the MTTK degree of freedom.
This roughly follows Tuckerman et al. 2006 (DOI: 10.1088/0305-4470/39/19/S18)
This currently only implements the isotropic version of MTTK and does not work with constraints. It also adopts some conventions chosen by the legacy GROMACS implementation, such as using the number of degrees of freedom and the kinetic energy scaling of the first temperature group to calculate the current pressure. (It does use the full system kinetic energy, however!)
Public Member Functions | |
MttkElement (int nstcouple, int offset, real propagationTimeStep, ScheduleOnInitStep scheduleOnInitStep, Step initStep, const StatePropagatorData *statePropagatorData, EnergyData *energyData, MttkData *mttkData, PbcType pbcType, int numWalls, real numDegreesOfFreedom) | |
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. | |
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, ObservablesReducer *observablesReducer, Offset offset, ScheduleOnInitStep scheduleOnInitStep, const MttkPropagatorConnectionDetails &mttkPropagatorConnectionDetails) |
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 |
observablesReducer | Pointer to the ObservablesReducer object |
offset | The step offset at which the thermostat is applied |
scheduleOnInitStep | Whether the element is scheduled on the initial step |
mttkPropagatorConnectionDetails | Reference to the MttkPropagatorConnectionDetails object containing propagator tags and offsets |
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.