Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
simulatoralgorithm.h File Reference
#include <any>
#include <map>
#include <optional>
#include <string>
#include <typeinfo>
#include "gromacs/mdrun/isimulator.h"
#include "gromacs/mdtypes/observablesreducer.h"
#include "gromacs/mdtypes/state.h"
#include "gromacs/utility/exceptions.h"
#include "checkpointhelper.h"
#include "domdechelper.h"
#include "freeenergyperturbationdata.h"
#include "modularsimulatorinterfaces.h"
#include "pmeloadbalancehelper.h"
#include "signallers.h"
#include "topologyholder.h"
#include "trajectoryelement.h"
+ Include dependency graph for simulatoralgorithm.h:
+ This graph shows which files directly or indirectly include this file:

Description

Provides the modular simulator algorithm.

Defines the ModularSimulatorAlgorithm class and its builder.

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. Moving forward, the ModularSimulatorAlgorithmBuilder could be exposed to allow users to create custom algorithm - currently algorithms are only created an used by the ModularSimulator, meaning that this file is not exposed outside of the modular simulator module.

Classes

class  gmx::Propagator< integrationStage >
 Propagator element. More...
 
class  gmx::ModularSimulatorAlgorithm
 The modular simulator. More...
 
class  gmx::GlobalCommunicationHelper
 Helper container with data connected to global communication. More...
 
class  gmx::ModularSimulatorAlgorithmBuilderHelper
 Helper for element addition. More...
 
class  gmx::ModularSimulatorAlgorithmBuilder
 Builder for ModularSimulatorAlgorithm objects. More...
 

Functions

template<typename Element , typename... Args>
ISimulatorElement * gmx::getElementPointer (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, ObservablesReducer *observablesReducer, Args &&...args)
 Factory function for elements that can be added via ModularSimulatorAlgorithmBuilder: Get a pointer to an object of type Element to add to the call list. More...
 
template<typename Base , typename Element >
static std::enable_if_t
< std::is_base_of< Base,
Element >::value, Base * > 
gmx::castOrNull (Element *element)
 Returns a pointer casted to type Base if the Element is derived from Base.
 
template<typename Base , typename Element >
static std::enable_if_t
<!std::is_base_of< Base,
Element >::value, Base * > 
gmx::castOrNull (Element gmx_unused *element)
 Returns a nullptr of type Base if Element is not derived from Base.