Gromacs  2025.0-dev-20241009-5c23d5f
 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:

Description

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 &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 
)
static

Factory method implementation.

Parameters
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
Returns
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 
)
overridevirtual

Register run function for step / time.

Parameters
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: