Gromacs  2025-dev-20240906-b7d3419
 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::ConstraintsElement< variable > Class Template Referencefinal

#include <gromacs/modularsimulator/constraintelement.h>

+ Inheritance diagram for gmx::ConstraintsElement< variable >:
+ Collaboration diagram for gmx::ConstraintsElement< variable >:

Description

template<ConstraintVariable variable>
class gmx::ConstraintsElement< variable >

Constraints element.

The ConstraintsElement is implemented for the position-and-velocity and the velocity-only case. It does not change the constraint implementation itself, but uses the current constraints implementation and the data management introduced with the modular simulator.

Template Parameters
variableThe constraining variable

Public Member Functions

 ConstraintsElement (Constraints *constr, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, bool isMain, FILE *fplog, const t_inputrec *inputrec, const t_mdatoms *mdAtoms)
 Constructor.
 
void scheduleTask (Step step, Time time, const RegisterRunFunction &registerRunFunction) override
 Register constraining function for step / time. More...
 
void elementSetup () override
 Performs inital constraining. More...
 
void elementTeardown () override
 No element teardown needed.
 
- Public Member Functions inherited from gmx::ISimulatorElement
virtual ~ISimulatorElement ()=default
 Standard virtual destructor.
 
- Public Member Functions inherited from gmx::IEnergySignallerClient
virtual ~IEnergySignallerClient ()=default
 Standard virtual destructor.
 
- Public Member Functions inherited from gmx::ITrajectorySignallerClient
virtual ~ITrajectorySignallerClient ()=default
 Standard virtual destructor.
 
- Public Member Functions inherited from gmx::ILoggingSignallerClient
virtual ~ILoggingSignallerClient ()=default
 Standard virtual destructor.
 

Static Public Member Functions

static ISimulatorElementgetElementPointerImpl (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, ObservablesReducer *observablesReducer)
 Factory method implementation. More...
 

Additional Inherited Members

Member Function Documentation

template<ConstraintVariable variable>
void gmx::ConstraintsElement< variable >::elementSetup ( )
overridevirtual

Performs inital constraining.

Todo:
Should this rather happen at grompp time? Right position of this operation is currently depending on the integrator algorithm (after domdec, before compute globals...), so doing this earlier would be much more stable!

Implements gmx::ISimulatorElement.

template<ConstraintVariable variable>
ISimulatorElement * gmx::ConstraintsElement< variable >::getElementPointerImpl ( LegacySimulatorData legacySimulatorData,
ModularSimulatorAlgorithmBuilderHelper builderHelper,
StatePropagatorData statePropagatorData,
EnergyData energyData,
FreeEnergyPerturbationData freeEnergyPerturbationData,
GlobalCommunicationHelper globalCommunicationHelper,
ObservablesReducer observablesReducer 
)
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
Returns
Pointer to the element to be added. Element needs to have been stored using storeElement
template<ConstraintVariable variable>
void gmx::ConstraintsElement< variable >::scheduleTask ( Step  step,
Time  time,
const RegisterRunFunction registerRunFunction 
)
overridevirtual

Register constraining function for step / time.

Under LF, this is expected to be run once, constraining positions and velocities Under VV, this is expected to be run twice, once contraining velocities only, a second time constraining positions and velocities.

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: