Gromacs  2021-beta2-UNCHECKED
 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/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:


Provides the modular simulator algorithm.

Defines the ModularSimulatorAlgorithm class and its builder.

Pascal Merz

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.


class  gmx::Propagator< algorithm >
 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...


template<typename Element , typename... Args>
ISimulatorElement * gmx::getElementPointer (LegacySimulatorData *legacySimulatorData, ModularSimulatorAlgorithmBuilderHelper *builderHelper, StatePropagatorData *statePropagatorData, EnergyData *energyData, FreeEnergyPerturbationData *freeEnergyPerturbationData, GlobalCommunicationHelper *globalCommunicationHelper, 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 *element)
 Returns a nullptr of type Base if Element is not derived from Base.