Gromacs  2026.0-dev-20241213-9ac17bb
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Enumerations
modularsimulatorinterfaces.h File Reference
#include <functional>
#include <memory>
#include <optional>
#include "gromacs/math/matrix.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/mdtypes/checkpointdata.h"
#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/exceptions.h"
+ Include dependency graph for modularsimulatorinterfaces.h:
+ This graph shows which files directly or indirectly include this file:

Description

Declares the main interfaces used by the modular simulator.

Author
Pascal Merz pasca.nosp@m.l.me.nosp@m.rz@me.nosp@m..com

This header is only used within the modular simulator module

Classes

class  gmx::ArrayRef< typename >
 STL-like interface to a C array of T (or part of a std container of T). More...
 
class  gmx::SignallerBuilder< Signaller >
 Builder for signallers. 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::ElementNotFoundError
 Exception class signalling that a requested element was not found. More...
 
class  gmx::MissingElementConnectionError
 Exception class signalling that elements were not connected properly. More...
 
class  gmx::SimulationAlgorithmSetupError
 Exception class signalling that the ModularSimulatorAlgorithm was set up in an incompatible way. More...
 
class  gmx::CheckpointError
 Exception class signalling an error in reading or writing modular checkpoints. More...
 
struct  gmx::PropagatorTag
 Strong type used to name propagators. More...
 
struct  gmx::TimeStep
 Strong type used to denote propagation time steps. More...
 
struct  gmx::Offset
 Strong type used to denote scheduling offsets. More...
 
struct  gmx::PropagatorConnection
 Information needed to connect a propagator to a temperature and / or pressure coupling element. More...
 
class  gmx::IDomDecHelperClient
 Client interface of the DomDecHelper class. More...
 

Typedefs

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::function< void(SimulatorRunFunction)> gmx::RegisterRunFunction
 The function type that allows to register run functions.
 
typedef std::function< void(Step,
Time, const
RegisterRunFunction &)> 
gmx::SchedulingFunction
 The function type scheduling run functions for a step / time using a RegisterRunFunction reference.
 
typedef std::function< void(Step,
Time)> 
gmx::SignallerCallback
 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::function< void(Step)> gmx::PropagatorCallback
 Generic callback to the propagator.
 
typedef std::function< void()> gmx::DomDecCallback
 Callback used by the DomDecHelper object to inform clients about system re-partitioning.
 
using gmx::ReferenceTemperatureCallback = std::function< void(ArrayRef< const real >, ReferenceTemperatureChangeAlgorithm algorithm)>
 Callback updating the reference temperature.
 

Enumerations

enum  gmx::EnergySignallerEvent { EnergyCalculationStep, VirialCalculationStep, FreeEnergyCalculationStep }
 The energy events signalled by the EnergySignaller.
 
enum  gmx::TrajectoryEvent { StateWritingStep, EnergyWritingStep }
 The trajectory writing events.
 
enum  gmx::ModularSimulatorBuilderState { AcceptingClientRegistrations, NotAcceptingClientRegistrations }
 Enum allowing builders to store whether they can accept client registrations.
 
enum  gmx::ReportPreviousStepConservedEnergy { Yes, No, Count }
 Enum describing whether an element is reporting conserved energy from the previous step.