#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/constraintrange.h"
#include "gromacs/mdlib/updategroups.h"
+#include "gromacs/mdlib/vcm.h"
#include "gromacs/mdlib/vsite.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/forceoutput.h"
#include "gromacs/math/utilities.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/calc_verletbuf.h"
+#include "gromacs/mdlib/vcm.h"
#include "gromacs/mdrun/mdmodules.h"
#include "gromacs/mdtypes/awh_params.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/math/vectypes.h"
#include "gromacs/topology/idef.h"
#include "gromacs/utility/arrayref.h"
-#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/real.h"
struct gmx_edsam;
#include <memory>
+#include "gromacs/math/vectypes.h"
+#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/enerdata.h"
+#include "gromacs/topology/ifunc.h"
+#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/real.h"
class energyhistory_t;
struct ener_file;
#include "gromacs/fileio/tngio.h"
#include "gromacs/fileio/trrio.h"
#include "gromacs/fileio/xtcio.h"
-#include "gromacs/fileio/xvgr.h"
#include "gromacs/math/vec.h"
-#include "gromacs/mdlib/trajectory_writing.h"
+#include "gromacs/mdlib/energyoutput.h"
#include "gromacs/mdrunutility/handlerestart.h"
#include "gromacs/mdrunutility/multisim.h"
#include "gromacs/mdtypes/awh_history.h"
#include "gromacs/mdtypes/commrec.h"
-#include "gromacs/mdtypes/df_history.h"
#include "gromacs/mdtypes/edsamhistory.h"
#include "gromacs/mdtypes/energyhistory.h"
#include "gromacs/mdtypes/imdoutputprovider.h"
#include "gromacs/fileio/confio.h"
#include "gromacs/fileio/tngio.h"
#include "gromacs/math/vec.h"
+#include "gromacs/mdlib/energyoutput.h"
#include "gromacs/mdlib/mdoutf.h"
#include "gromacs/mdlib/stat.h"
#include "gromacs/mdlib/update.h"
#include <stdio.h>
-#include "gromacs/mdlib/energyoutput.h"
#include "gromacs/mdlib/mdoutf.h"
-#include "gromacs/timing/wallcycle.h"
class gmx_ekindata_t;
struct gmx_mtop_t;
#include "update_vv.h"
#include <cmath>
-#include <cstdio>
#include <algorithm>
-#include <memory>
#include "gromacs/domdec/domdec.h"
#include "gromacs/gmxlib/nrnb.h"
-#include "gromacs/math/units.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/constr.h"
#include "gromacs/mdlib/coupling.h"
#include "gromacs/mdlib/stat.h"
#include "gromacs/mdlib/tgroup.h"
#include "gromacs/mdlib/update.h"
+#include "gromacs/mdrunutility/handlerestart.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/enerdata.h"
#include "gromacs/mdtypes/fcdata.h"
#ifndef GMX_MDLIB_UPDATE_VV_H
#define GMX_MDLIB_UPDATE_VV_H
+#include <cstdio>
+
+#include <array>
#include <vector>
#include "gromacs/math/vectypes.h"
-#include "gromacs/mdrunutility/handlerestart.h"
#include "gromacs/mdtypes/md_enums.h"
class gmx_ekindata_t;
class MDLogger;
class SimulationSignaller;
class Update;
+enum class StartingBehavior : int;
} // namespace gmx
/*! \brief Make the first step of Velocity Verlet integration
#include "gromacs/utility/gmxomp.h"
#include "gromacs/utility/smalloc.h"
+const char* enumValueToString(ComRemovalAlgorithm enumValue)
+{
+ static constexpr gmx::EnumerationArray<ComRemovalAlgorithm, const char*> comRemovalAlgorithmNames = {
+ "Linear", "Angular", "None", "Linear-acceleration-correction"
+ };
+ return comRemovalAlgorithmNames[enumValue];
+}
+
t_vcm::t_vcm(const SimulationGroups& groups, const t_inputrec& ir) :
integratorConservesMomentum(!EI_RANDOM(ir.eI))
{
#include <vector>
#include "gromacs/math/vectypes.h"
-#include "gromacs/mdtypes/md_enums.h"
-#include "gromacs/utility/basedefinitions.h"
#include "gromacs/utility/real.h"
struct SimulationGroups;
class ArrayRef;
}
+//! Center of mass motion removal algorithm.
+enum class ComRemovalAlgorithm : int
+{
+ Linear,
+ Angular,
+ No,
+ LinearAccelerationCorrection,
+ Count,
+ Default = Linear
+};
+//! String corresponding to COM removal
+const char* enumValueToString(ComRemovalAlgorithm enumValue);
+
struct t_vcm_thread
{
//! Linear momentum
#include "gromacs/applied_forces/awh/read_params.h"
#include "gromacs/math/veccompare.h"
#include "gromacs/math/vecdump.h"
+#include "gromacs/mdlib/vcm.h"
#include "gromacs/mdtypes/awh_params.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/multipletimestepping.h"
struct gmx_enfrot;
struct gmx_enfrotgrp;
struct pull_params_t;
+enum class ComRemovalAlgorithm : int;
namespace gmx
{
return dispersionCorrectionTypeNames[enumValue];
}
-const char* enumValueToString(ComRemovalAlgorithm enumValue)
-{
- static constexpr gmx::EnumerationArray<ComRemovalAlgorithm, const char*> comRemovalAlgorithmNames = {
- "Linear", "Angular", "None", "Linear-acceleration-correction"
- };
- return comRemovalAlgorithmNames[enumValue];
-}
-
const char* enumValueToString(SimulatedAnnealing enumValue)
{
static constexpr gmx::EnumerationArray<SimulatedAnnealing, const char*> simulatedAnnealingNames = {
//! String corresponding to dispersion corrections
const char* enumValueToString(DispersionCorrectionType enumValue);
-//! Center of mass motion removal algorithm.
-enum class ComRemovalAlgorithm : int
-{
- Linear,
- Angular,
- No,
- LinearAccelerationCorrection,
- Count,
- Default = Linear
-};
-//! String corresponding to COM removal
-const char* enumValueToString(ComRemovalAlgorithm enumValue);
-
//! Algorithm for simulated annealing.
enum class SimulatedAnnealing : int
{
#include "gromacs/mdlib/mdatoms.h"
#include "gromacs/mdlib/stat.h"
#include "gromacs/mdlib/update.h"
+#include "gromacs/mdlib/vcm.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/group.h"
#include "gromacs/mdtypes/inputrec.h"
-#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/mdtypes/mdatom.h"
#include "gromacs/topology/topology.h"