Gromacs  2020.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
gmx::Propagator< algorithm > Class Template Referencefinal

#include <gromacs/modularsimulator/propagator.h>

+ Inheritance diagram for gmx::Propagator< algorithm >:
+ Collaboration diagram for gmx::Propagator< algorithm >:


template<IntegrationStep algorithm>
class gmx::Propagator< algorithm >

Propagator element.

The propagator element can, through templating, cover the different propagation types used in NVE MD. The combination of templating, static functions, and having only the inner-most operations in the static functions allows to have performance comparable to fused update elements while keeping easily re-orderable single instructions.

: Get rid of updateVelocities2() once we don't require identical reproduction of do_md() results.
Template Parameters
algorithmThe integration types

Public Member Functions

 Propagator (double timestep, StatePropagatorData *statePropagatorData, const MDAtoms *mdAtoms, gmx_wallcycle *wcycle)
void scheduleTask (Step step, Time time, const RegisterRunFunctionPtr &registerRunFunction) override
 Register run function for step / time. More...
void elementSetup () override
 No element setup needed.
void elementTeardown () override
 No element teardown needed.
void setNumVelocityScalingVariables (int numVelocityScalingVariables)
 Set the number of velocity scaling variables.
ArrayRef< realviewOnVelocityScaling ()
 Get view on the velocity scaling vector.
PropagatorCallbackPtr velocityScalingCallback ()
 Get velocity scaling callback.
ArrayRef< rvec > viewOnPRScalingMatrix ()
 Get view on the full PR scaling matrix.
PropagatorCallbackPtr prScalingCallback ()
 Get PR scaling callback.

Member Function Documentation

template<IntegrationStep algorithm>
void gmx::Propagator< algorithm >::scheduleTask ( Step  step,
Time  time,
const RegisterRunFunctionPtr 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: