Gromacs
2020.4
|
The modular simulator improves extensibility, adds Monte Carlo capabilities, promotes data locality and communication via interfaces, supports multi-stepping integrators, and paves the way for some task parallelism.
For more information, see page_modularsimulator
docs/doxygen/lib/modularsimulator.md
?Classes | |
class | gmx::CheckpointHelper |
Checkpoint helper. More... | |
class | gmx::CompositeSimulatorElement |
Composite simulator element. More... | |
class | gmx::ComputeGlobalsElement< algorithm > |
Encapsulate the calls to compute_globals More... | |
class | gmx::ConstraintsElement< variable > |
Constraints element. More... | |
class | gmx::DomDecHelper |
Infrastructure element responsible for domain decomposition. More... | |
class | gmx::EnergyElement |
Element managing energies. More... | |
class | gmx::ForceElement |
Force element. More... | |
class | gmx::FreeEnergyPerturbationElement |
The free energy perturbation element. More... | |
class | gmx::ModularSimulator |
The modular simulator. More... | |
class | gmx::ISimulatorElement |
The general interface for elements of the modular simulator. More... | |
class | gmx::ISignaller |
The general Signaller interface. More... | |
class | gmx::INeighborSearchSignallerClient |
Interface for clients of the NeighborSearchSignaller. More... | |
class | gmx::ILastStepSignallerClient |
Interface for clients of the LastStepSignaller. More... | |
class | gmx::ILoggingSignallerClient |
Interface for clients of the LoggingSignaller. More... | |
class | gmx::IEnergySignallerClient |
Interface for clients of the EnergySignaller. More... | |
class | gmx::ITrajectorySignallerClient |
Interface for signaller clients of the TrajectoryElement. More... | |
class | gmx::ITrajectoryWriterClient |
Interface for writer clients of the TrajectoryElement. More... | |
class | gmx::ITopologyHolderClient |
Client requiring read access to the local topology. More... | |
class | gmx::ICheckpointHelperClient |
Client that needs to store data during checkpointing. More... | |
class | gmx::ParrinelloRahmanBarostat |
Element implementing the Parrinello-Rahman barostat. More... | |
class | gmx::PmeLoadBalanceHelper |
Infrastructure element responsible for PME load balancing. More... | |
class | gmx::Propagator< algorithm > |
Propagator element. More... | |
class | gmx::ShellFCElement |
Shell & flex constraints element. More... | |
class | gmx::SignallerBuilder< Signaller > |
Builder for signallers. More... | |
class | gmx::NeighborSearchSignaller |
Element signalling a neighbor search step. More... | |
class | gmx::LastStepSignaller |
Element signalling the last step. More... | |
class | gmx::LoggingSignaller |
Element signalling a logging step. More... | |
class | gmx::EnergySignaller |
Element signalling energy related special steps. More... | |
class | gmx::StatePropagatorData |
StatePropagatorData and associated data. More... | |
class | gmx::TopologyHolder |
Object holding the topology. More... | |
class | gmx::TrajectoryElement |
Trajectory element signals and handles trajectory writing. More... | |
class | gmx::TrajectoryElementBuilder |
Build the TrajectoryElement More... | |
class | gmx::VRescaleThermostat |
Element implementing the v-rescale thermostat. More... | |
Typedefs | |
typedef std::function< void()> | gmx::CheckBondedInteractionsCallback |
The function type allowing to request a check of the number of bonded interactions. | |
typedef std::unique_ptr < CheckBondedInteractionsCallback > | gmx::CheckBondedInteractionsCallbackPtr |
Pointer to the function type allowing to request a check of the number of bonded interactions. | |
using | gmx::Step = int64_t |
Step number. | |
using | gmx::Time = double |
Simulation time. | |
typedef std::function< void()> | gmx::SimulatorRunFunction |
The function type that can be scheduled to be run during the simulator run. | |
typedef std::unique_ptr < SimulatorRunFunction > | gmx::SimulatorRunFunctionPtr |
Pointer to the function type that can be scheduled to be run during the simulator run. | |
typedef std::function< void(SimulatorRunFunctionPtr)> | gmx::RegisterRunFunction |
The function type that allows to register run functions. | |
typedef std::unique_ptr < RegisterRunFunction > | gmx::RegisterRunFunctionPtr |
Pointer to the function type that allows to register run functions. | |
typedef std::function< void(Step, Time)> | gmx::SignallerCallback |
The function type that can be registered to signallers for callback. | |
typedef std::unique_ptr < SignallerCallback > | gmx::SignallerCallbackPtr |
Pointer to the function type that can be registered to signallers for callback. | |
typedef std::function< void(gmx_mdoutf *, Step, Time, bool, bool)> | gmx::ITrajectoryWriterCallback |
Function type for trajectory writing clients. | |
typedef std::unique_ptr < ITrajectoryWriterCallback > | gmx::ITrajectoryWriterCallbackPtr |
Pointer to the function type for trajectory writing clients. | |
typedef std::function< void(Step)> | gmx::PropagatorCallback |
Generic callback to the propagator. | |
typedef std::unique_ptr < PropagatorCallback > | gmx::PropagatorCallbackPtr |
Pointer to generic callback to the propagator. | |
Enumerations | |
enum | gmx::ComputeGlobalsAlgorithm { LeapFrog, VelocityVerletAtFullTimeStep, VelocityVerletAfterCoordinateUpdate } |
The different global reduction schemes we know about. | |
enum | gmx::EnergySignallerEvent { EnergyCalculationStep, VirialCalculationStep, FreeEnergyCalculationStep } |
The energy events signalled by the EnergySignaller. | |
enum | gmx::TrajectoryEvent { StateWritingStep, EnergyWritingStep } |
The trajectory writing events. | |
enum | gmx::IntegrationStep { PositionsOnly, VelocitiesOnly, LeapFrog, VelocityVerletPositionsAndVelocities, Count } |
The different integration types we know about. More... | |
enum | gmx::NumVelocityScalingValues { gmx::NumVelocityScalingValues::None, gmx::NumVelocityScalingValues::Single, gmx::NumVelocityScalingValues::Multiple, Count } |
Sets the number of different velocity scaling values. More... | |
enum | gmx::ParrinelloRahmanVelocityScaling { gmx::ParrinelloRahmanVelocityScaling::No, gmx::ParrinelloRahmanVelocityScaling::Diagonal, gmx::ParrinelloRahmanVelocityScaling::Full, Count } |
Sets the type of Parrinello-Rahman pressure scaling. More... | |
Functions | |
virtual void | gmx::ISimulatorElement::scheduleTask (Step, Time, const RegisterRunFunctionPtr &)=0 |
Query whether element wants to run at step / time. More... | |
virtual void | gmx::ISimulatorElement::elementSetup ()=0 |
Method guaranteed to be called after construction, before simulator run. | |
virtual void | gmx::ISimulatorElement::elementTeardown ()=0 |
Method guaranteed to be called after simulator run, before deconstruction. | |
virtual | gmx::ISimulatorElement::~ISimulatorElement ()=default |
Standard virtual destructor. | |
virtual void | gmx::ISignaller::signal (Step, Time)=0 |
Function run before every step of scheduling. | |
virtual void | gmx::ISignaller::signallerSetup ()=0 |
Method guaranteed to be called after construction, before simulator run. | |
virtual | gmx::ISignaller::~ISignaller ()=default |
Standard virtual destructor. | |
virtual | gmx::INeighborSearchSignallerClient::~INeighborSearchSignallerClient ()=default |
Standard virtual destructor. | |
virtual SignallerCallbackPtr | gmx::INeighborSearchSignallerClient::registerNSCallback ()=0 |
Return callback to NeighborSearchSignaller. | |
virtual | gmx::ILastStepSignallerClient::~ILastStepSignallerClient ()=default |
Standard virtual destructor. | |
virtual SignallerCallbackPtr | gmx::ILastStepSignallerClient::registerLastStepCallback ()=0 |
Return callback to LastStepSignaller. | |
virtual | gmx::ILoggingSignallerClient::~ILoggingSignallerClient ()=default |
Standard virtual destructor. | |
virtual SignallerCallbackPtr | gmx::ILoggingSignallerClient::registerLoggingCallback ()=0 |
Return callback to LoggingSignaller. | |
virtual | gmx::IEnergySignallerClient::~IEnergySignallerClient ()=default |
Standard virtual destructor. | |
virtual SignallerCallbackPtr | gmx::IEnergySignallerClient::registerEnergyCallback (EnergySignallerEvent)=0 |
Return callback to EnergySignaller. | |
virtual | gmx::ITrajectorySignallerClient::~ITrajectorySignallerClient ()=default |
Standard virtual destructor. | |
virtual SignallerCallbackPtr | gmx::ITrajectorySignallerClient::registerTrajectorySignallerCallback (TrajectoryEvent)=0 |
Return callback to TrajectoryElement. | |
virtual | gmx::ITrajectoryWriterClient::~ITrajectoryWriterClient ()=default |
Standard virtual destructor. | |
virtual void | gmx::ITrajectoryWriterClient::trajectoryWriterSetup (gmx_mdoutf *outf)=0 |
Setup method with valid output pointer. | |
virtual void | gmx::ITrajectoryWriterClient::trajectoryWriterTeardown (gmx_mdoutf *outf)=0 |
Teardown method with valid output pointer. | |
virtual ITrajectoryWriterCallbackPtr | gmx::ITrajectoryWriterClient::registerTrajectoryWriterCallback (TrajectoryEvent)=0 |
Return callback to TrajectoryElement. | |
virtual | gmx::ITopologyHolderClient::~ITopologyHolderClient ()=default |
Standard virtual destructor. | |
virtual void | gmx::ITopologyHolderClient::setTopology (const gmx_localtop_t *)=0 |
Pass pointer to new local topology. | |
virtual | gmx::ICheckpointHelperClient::~ICheckpointHelperClient ()=default |
Standard virtual destructor. | |
virtual void | gmx::ICheckpointHelperClient::writeCheckpoint (t_state *localState, t_state *globalState)=0 |
Write checkpoint. | |
Files | |
file | checkpointhelper.h |
Declares the checkpoint helper for the modular simulator. | |
file | compositesimulatorelement.h |
Declares the composite element for the modular simulator. | |
file | computeglobalselement.h |
Declares the global reduction element for the modular simulator. | |
file | constraintelement.h |
Declares the constraint element for the modular simulator. | |
file | domdechelper.h |
Declares the domain decomposition helper for the modular simulator. | |
file | energyelement.h |
Declares the energy element for the modular simulator. | |
file | forceelement.h |
Declares the force element for the modular simulator. | |
file | freeenergyperturbationelement.h |
Declares the free energy perturbation element for the modular simulator. | |
file | modularsimulator.h |
Declares the modular simulator. | |
file | modularsimulatorinterfaces.h |
Declares the main interfaces used by the modular simulator. | |
file | parrinellorahmanbarostat.h |
Declares the Parrinello-Rahman barostat for the modular simulator. | |
file | pmeloadbalancehelper.h |
Declares the PME load balancing helper for the modular simulator. | |
file | propagator.h |
Declares the propagator element for the modular simulator. | |
file | shellfcelement.h |
Declares the shell / flex constraints element for the modular simulator. | |
file | signallers.h |
Declares the signallers for the modular simulator. | |
file | statepropagatordata.h |
Declares the state for the modular simulator. | |
file | topologyholder.h |
Declares the topology class for the modular simulator. | |
file | trajectoryelement.h |
Declares the trajectory element for the modular simulator. | |
file | vrescalethermostat.h |
Declares the v-rescale thermostat for the modular simulator. | |
|
strong |
The different integration types we know about.
PositionsOnly: Moves the position vector by the given time step VelocitiesOnly: Moves the velocity vector by the given time step LeapFrog: Is a manual fusion of the previous two propagators VelocityVerletPositionsAndVelocities: Is a manual fusion of VelocitiesOnly and PositionsOnly, where VelocitiesOnly is only propagated by half the time step of the positions.
|
strong |
|
strong |
|
pure virtual |
Query whether element wants to run at step / time.
Element can register one or more functions to be run at that step through the registration pointer.
Implemented in gmx::StatePropagatorData, gmx::ComputeGlobalsElement< algorithm >, gmx::Propagator< algorithm >, gmx::TrajectoryElement, gmx::CheckpointHelper, gmx::EnergyElement, gmx::ShellFCElement, gmx::ForceElement, gmx::ConstraintsElement< variable >, gmx::ParrinelloRahmanBarostat, gmx::VRescaleThermostat, gmx::CompositeSimulatorElement, and gmx::FreeEnergyPerturbationElement.