Gromacs  2025.0-dev-20241011-013a99c
 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::NoseHooverChainsElement Class Referencefinal

#include <gromacs/modularsimulator/nosehooverchains.h>

+ Inheritance diagram for gmx::NoseHooverChainsElement:
+ Collaboration diagram for gmx::NoseHooverChainsElement:

Description

Element propagating the Nose-Hoover chains.

This propagates the Nose-Hoover chain degrees of freedom, and transmits the scaling factor to a connected propagator.

Public Member Functions

 NoseHooverChainsElement (int nstcouple, int offset, NhcUsage nhcUsage, UseFullStepKE useFullStepKE, double propagationTimeStep, ScheduleOnInitStep scheduleOnInitStep, Step initStep, EnergyData *energyData, NoseHooverChainsData *noseHooverChainData, MttkData *mttkData)
 Constructor.
 
void scheduleTask (Step step, Time time, const RegisterRunFunction &registerRunFunction) override
 Register run function for step / time. More...
 
void elementSetup () override
 Sanity check at setup time.
 
void elementTeardown () override
 No element teardown needed.
 
void connectWithPropagator (const PropagatorConnection &connectionData, const PropagatorTag &propagatorTag)
 Connect this to propagator.
 
- 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, NhcUsage nhcUsage, Offset offset, UseFullStepKE useFullStepKE, ScheduleOnInitStep scheduleOnInitStep, const MttkPropagatorConnectionDetails &mttkPropagatorConnectionDetails)
 Factory method implementation (no propagator connection) More...
 
static ISimulatorElementgetElementPointerImpl (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, ObservablesReducer *observablesReducer, NhcUsage nhcUsage, Offset offset, UseFullStepKE useFullStepKE, ScheduleOnInitStep scheduleOnInitStep, const PropagatorTag &propagatorTag)
 Factory method implementation (including propagator connection) More...
 

Member Function Documentation

static ISimulatorElement* gmx::NoseHooverChainsElement::getElementPointerImpl ( LegacySimulatorData legacySimulatorData,
ModularSimulatorAlgorithmBuilderHelper builderHelper,
StatePropagatorData statePropagatorData,
EnergyData energyData,
FreeEnergyPerturbationData freeEnergyPerturbationData,
GlobalCommunicationHelper globalCommunicationHelper,
ObservablesReducer observablesReducer,
NhcUsage  nhcUsage,
Offset  offset,
UseFullStepKE  useFullStepKE,
ScheduleOnInitStep  scheduleOnInitStep,
const MttkPropagatorConnectionDetails mttkPropagatorConnectionDetails 
)
static

Factory method implementation (no propagator connection)

This signature is used to connect a Nose-Hoover chain to a barostat

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
nhcUsageWhat the NHC is connected to - system or barostat
offsetThe step offset at which the thermostat is applied
useFullStepKEWhether full step or half step KE is used
scheduleOnInitStepWhether the element is scheduled on the initial step
mttkPropagatorConnectionDetailsConnection information for the MTTK barostat
Returns
Pointer to the element to be added. Element needs to have been stored using storeElement
static ISimulatorElement* gmx::NoseHooverChainsElement::getElementPointerImpl ( LegacySimulatorData legacySimulatorData,
ModularSimulatorAlgorithmBuilderHelper builderHelper,
StatePropagatorData statePropagatorData,
EnergyData energyData,
FreeEnergyPerturbationData freeEnergyPerturbationData,
GlobalCommunicationHelper globalCommunicationHelper,
ObservablesReducer observablesReducer,
NhcUsage  nhcUsage,
Offset  offset,
UseFullStepKE  useFullStepKE,
ScheduleOnInitStep  scheduleOnInitStep,
const PropagatorTag propagatorTag 
)
static

Factory method implementation (including propagator connection)

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
nhcUsageWhat the NHC is connected to - system or barostat
offsetThe step offset at which the thermostat is applied
useFullStepKEWhether full step or half step KE is used
scheduleOnInitStepWhether the element is scheduled on the initial step
propagatorTagTag of the propagator to connect to
Returns
Pointer to the element to be added. Element needs to have been stored using storeElement
void gmx::NoseHooverChainsElement::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: