Gromacs  2025-dev-20240613-b88f907
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions
gmx::MttkElement Class Referencefinal

#include <gromacs/modularsimulator/mttk.h>

+ Inheritance diagram for gmx::MttkElement:
+ Collaboration diagram for gmx::MttkElement:


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)
void scheduleTask (Step step, Time time, const RegisterRunFunction &registerRunFunction) 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 ISimulatorElementgetElementPointerImpl (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...

Member Function Documentation

ISimulatorElement * gmx::MttkElement::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.

legacySimulatorDataPointer allowing access to simulator level data
builderHelperModularSimulatorAlgorithmBuilder helper object
statePropagatorDataPointer to the StatePropagatorData object
energyDataPointer to the EnergyData object
freeEnergyPerturbationDataPointer to the FreeEnergyPerturbationData object
globalCommunicationHelperPointer to the GlobalCommunicationHelper object
observablesReducerPointer to the ObservablesReducer object
offsetThe step offset at which the thermostat is applied
scheduleOnInitStepWhether the element is scheduled on the initial step
mttkPropagatorConnectionDetailsReference to the MttkPropagatorConnectionDetails object containing propagator tags and offsets
Pointer to the element to be added. Element needs to have been stored using storeElement
void gmx::MttkElement::scheduleTask ( Step  step,
Time  time,
const RegisterRunFunction registerRunFunction 

Register run function for step / time.

stepThe step number
timeThe time
registerRunFunctionFunction allowing to register a run function

Implements gmx::ISimulatorElement.

The documentation for this class was generated from the following files: