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

Description

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.

Todo:
: 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)
 Constructor.
 
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.
 
- Public Member Functions inherited from gmx::ISimulatorElement
virtual ~ISimulatorElement ()=default
 Standard virtual destructor.
 

Member Function Documentation

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