/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the checkpoint helper for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_CHECKPOINTHELPER_H
class MDLogger;
class TrajectoryElement;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Checkpoint helper
*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the composite element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GROMACS_MDTYPES_COMPOSITESIMULATORELEMENT_H
#define GROMACS_MDTYPES_COMPOSITESIMULATORELEMENT_H
namespace gmx
{
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Composite simulator element
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the global reduction element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_COMPUTEGLOBALSELEMENT_H
//! Pointer to the function type allowing to request a check of the number of bonded interactions
typedef std::unique_ptr<CheckBondedInteractionsCallback> CheckBondedInteractionsCallbackPtr;
-/*! \libinternal
+/*! \internal
* \brief Encapsulate the calls to `compute_globals`
*
* This element aims at offering an interface to the legacy
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the constraint element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_CONSTRAINTELEMENT_H
class FreeEnergyPerturbationElement;
class StatePropagatorData;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Constraints element
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the domain decomposition helper for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_DOMDECHELPER_H
//! Pointer to the function type allowing to request a check of the number of bonded interactions
typedef std::unique_ptr<CheckBondedInteractionsCallback> CheckBondedInteractionsCallbackPtr;
-/*! \libinternal
+/*! \internal
* \brief Infrastructure element responsible for domain decomposition
*
* This encapsulates the function call to domain decomposition, which is
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the energy element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_ENERGYELEMENT_MICROSTATE_H
class VRescaleThermostat;
struct MdModulesNotifier;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element managing energies
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the force element for the modular simulator
*
* This element calculates the forces, with or without shells or
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_FORCEELEMENT_H
class StatePropagatorData;
class VirtualSitesHandler;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Force element
*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the free energy perturbation element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_FREEENERGYPERTURBATIONELEMENT_H
{
class MDAtoms;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief The free energy perturbation element
*
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is currently the only part of the modular simulator module which is exposed.
+ * Mdrunner creates an object of type ModularSimulator (via SimulatorBuilder), and calls its
+ * run() method. Mdrunner also calls checkUseModularSimulator(...), which in turns calls a
+ * static method of ModularSimulator. This could easily become a free function if this requires
+ * more exposure than otherwise necessary.
*/
#ifndef GROMACS_MODULARSIMULATOR_MODULARSIMULATOR_H
#define GROMACS_MODULARSIMULATOR_MODULARSIMULATOR_H
*
* \author Pascal Merz <pascal.merz@me.com>
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief
* Declares the main interfaces used by the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_MODULARSIMULATORINTERFACES_H
#define GMX_MODULARSIMULATOR_MODULARSIMULATORINTERFACES_H
//! Pointer to the function type that allows to register run functions
typedef std::unique_ptr<RegisterRunFunction> RegisterRunFunctionPtr;
-/*! \libinternal
+/*! \internal
* \brief The general interface for elements of the modular simulator
*
* Setup and teardown are run once at the beginning of the simulation
virtual ~ISimulatorElement() = default;
};
-/*! \libinternal
+/*! \internal
* \brief The general Signaller interface
*
* Signallers are run at the beginning of Simulator steps, informing
//! Pointer to the function type that can be registered to signallers for callback
typedef std::unique_ptr<SignallerCallback> SignallerCallbackPtr;
-/*! \libinternal
+/*! \internal
* \brief Interface for clients of the NeighborSearchSignaller
*
* Defining registerNSCallback allows clients to register an arbitrary callback
virtual SignallerCallbackPtr registerNSCallback() = 0;
};
-/*! \libinternal
+/*! \internal
* \brief Interface for clients of the LastStepSignaller
*
* Defining registerLastStepCallback allows clients to register an arbitrary callback
virtual SignallerCallbackPtr registerLastStepCallback() = 0;
};
-/*! \libinternal
+/*! \internal
* \brief Interface for clients of the LoggingSignaller
*
* Defining registerLoggingCallback allows clients to register an arbitrary callback
FreeEnergyCalculationStep
};
-/*! \libinternal
+/*! \internal
* \brief Interface for clients of the EnergySignaller
*
* Defining registerEnergyCallback allows clients to register an arbitrary callback
EnergyWritingStep
};
-/*! \libinternal
+/*! \internal
* \brief Interface for signaller clients of the TrajectoryElement
*
* Defining registerTrajectorySignallerCallback allows clients to register an arbitrary
//! Pointer to the function type for trajectory writing clients
typedef std::unique_ptr<ITrajectoryWriterCallback> ITrajectoryWriterCallbackPtr;
-/*! \libinternal
+/*! \internal
* \brief Interface for writer clients of the TrajectoryElement
*
* Defining registerTrajectoryWriterCallback allows clients to register an arbitrary
virtual ITrajectoryWriterCallbackPtr registerTrajectoryWriterCallback(TrajectoryEvent) = 0;
};
-/*! \libinternal
+/*! \internal
* \brief Client requiring read access to the local topology
*
*/
virtual void setTopology(const gmx_localtop_t*) = 0;
};
-/*! \libinternal
+/*! \internal
* \brief Client that needs to store data during checkpointing
*
* The current checkpointing helper uses the legacy t_state object to collect
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the Parrinello-Rahman barostat for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_PARRINELLORAHMANBAROSTAT_H
class MDAtoms;
class StatePropagatorData;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element implementing the Parrinello-Rahman barostat
*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the PME load balancing helper for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_PMELOADBALANCEHELPER_H
struct MdrunOptions;
class StatePropagatorData;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Infrastructure element responsible for PME load balancing
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the propagator element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_PROPAGATOR_H
//! Pointer to generic callback to the propagator
typedef std::unique_ptr<PropagatorCallback> PropagatorCallbackPtr;
-/*! \libinternal
+/*! \internal
* \brief Propagator element
*
* The propagator element can, through templating, cover the different
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the signallers for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_SIGNALLERS_H
class StopHandler;
class TrajectoryElement;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Builder for signallers
*
SignallerCallbackPtr getSignallerCallback(typename Signaller::Client* client, Args&&... args);
};
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element signalling a neighbor search step
*
const Time initTime_;
};
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element signalling the last step
*
bool nsStepRegistrationDone_;
};
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element signalling a logging step
*
bool lastStepRegistrationDone_;
};
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element signalling trajectory writing
*
SignallerCallbackPtr registerLastStepCallback() override;
};
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element signalling energy related special steps
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Provides the modular simulator algorithm.
*
* Defines the ModularSimulatorAlgorithm class and its builder.
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * 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.
*/
#ifndef GROMACS_MODULARSIMULATOR_SIMULATORALGORITHM_H
#define GROMACS_MODULARSIMULATOR_SIMULATORALGORITHM_H
class TopologyHolder;
class TrajectoryElementBuilder;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief The modular simulator
*
gmx_walltime_accounting* walltime_accounting;
};
-/*!\libinternal
+/*!\internal
* \brief Builder for ModularSimulatorAlgorithm objects
*
* TODO: The current builder automatically builds a simulator algorithm based on the
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the state for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_STATEPROPAGATORDATA_H
enum class ConstraintVariable;
class FreeEnergyPerturbationElement;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief StatePropagatorData and associated data
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the topology class for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
class MDAtoms;
class VirtualSitesHandler;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Object holding the topology
*
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the trajectory element for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_TRAJECTORYELEMENT_H
struct MdrunOptions;
enum class StartingBehavior;
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Trajectory element signals and handles trajectory writing
*
void write(Step step, Time time, bool writeState, bool writeEnergy, bool writeLog);
};
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Build the `TrajectoryElement`
*
/*
* This file is part of the GROMACS molecular simulation package.
*
- * Copyright (c) 2019, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020, by the GROMACS development team, led by
* Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
* and including many others, as listed in the AUTHORS file in the
* top-level source directory and at http://www.gromacs.org.
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
-/*! \libinternal \file
+/*! \internal \file
* \brief Declares the v-rescale thermostat for the modular simulator
*
* \author Pascal Merz <pascal.merz@me.com>
* \ingroup module_modularsimulator
+ *
+ * This header is only used within the modular simulator module
*/
#ifndef GMX_MODULARSIMULATOR_VRESCALETHERMOSTAT_H
namespace gmx
{
-/*! \libinternal
+/*! \internal
* \ingroup module_modularsimulator
* \brief Element implementing the v-rescale thermostat
*