Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | 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 >:


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, EnergyElement *energyElement, FreeEnergyPerturbationElement *freeEnergyPerturbationElement, bool isMaster, FILE *fplog, const t_inputrec *inputrec, const t_mdatoms *mdAtoms)
void scheduleTask (Step step, Time time, const RegisterRunFunctionPtr &registerRunFunction) override
 Register constraining function for step / time. More...
void elementSetup () override
 Performs inital constraining. More...
void elementTeardown () override
 No element teardown needed.

Member Function Documentation

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

Performs inital constraining.

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>
void gmx::ConstraintsElement< variable >::scheduleTask ( Step  step,
Time  time,
const RegisterRunFunctionPtr registerRunFunction 

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.

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: