#include "gromacs/timing/wallcycle.h"
#include "gromacs/topology/topology.h"
-void integrateVVFirstStep(int64_t step,
- bool bFirstStep,
- bool bInitStep,
- gmx::StartingBehavior startingBehavior,
- int nstglobalcomm,
- const t_inputrec* ir,
- t_forcerec* fr,
- t_commrec* cr,
- t_state* state,
- t_mdatoms* mdatoms,
- const t_fcdata& fcdata,
- t_extmass* MassQ,
- t_vcm* vcm,
- const gmx_mtop_t& top_global,
- const gmx_localtop_t& top,
- gmx_enerdata_t* enerd,
- gmx_ekindata_t* ekind,
- gmx_global_stat* gstat,
- real* last_ekin,
- bool bCalcVir,
- tensor total_vir,
- tensor shake_vir,
- tensor force_vir,
- tensor pres,
- matrix M,
- bool do_log,
- bool do_ene,
- bool bCalcEner,
- bool bGStat,
- bool bStopCM,
- bool bTrotter,
- bool bExchanged,
- bool* bSumEkinhOld,
- real* saved_conserved_quantity,
- gmx::ForceBuffers* f,
- gmx::Update* upd,
- gmx::Constraints* constr,
- gmx::SimulationSignaller* nullSignaller,
- std::array<std::vector<int>, ettTSEQMAX> trotter_seq,
- t_nrnb* nrnb,
- const gmx::MDLogger& mdlog,
- FILE* fplog,
- gmx_wallcycle* wcycle)
+void integrateVVFirstStep(int64_t step,
+ bool bFirstStep,
+ bool bInitStep,
+ gmx::StartingBehavior startingBehavior,
+ int nstglobalcomm,
+ const t_inputrec* ir,
+ t_forcerec* fr,
+ t_commrec* cr,
+ t_state* state,
+ t_mdatoms* mdatoms,
+ const t_fcdata& fcdata,
+ t_extmass* MassQ,
+ t_vcm* vcm,
+ const gmx_mtop_t& top_global,
+ const gmx_localtop_t& top,
+ gmx_enerdata_t* enerd,
+ gmx_ekindata_t* ekind,
+ gmx_global_stat* gstat,
+ real* last_ekin,
+ bool bCalcVir,
+ tensor total_vir,
+ tensor shake_vir,
+ tensor force_vir,
+ tensor pres,
+ matrix M,
+ bool do_log,
+ bool do_ene,
+ bool bCalcEner,
+ bool bGStat,
+ bool bStopCM,
+ bool bTrotter,
+ bool bExchanged,
+ bool* bSumEkinhOld,
+ real* saved_conserved_quantity,
+ gmx::ForceBuffers* f,
+ gmx::Update* upd,
+ gmx::Constraints* constr,
+ gmx::SimulationSignaller* nullSignaller,
+ gmx::EnumerationArray<TrotterSequence, std::vector<int>> trotter_seq,
+ t_nrnb* nrnb,
+ const gmx::MDLogger& mdlog,
+ FILE* fplog,
+ gmx_wallcycle* wcycle)
{
if (!bFirstStep || startingBehavior == gmx::StartingBehavior::NewSimulation)
{
gmx::arrayRefFromArray(mdatoms->invmass, mdatoms->nr),
MassQ,
trotter_seq,
- ettTSEQ1);
+ TrotterSequence::One);
}
upd->update_coords(*ir,
gmx::arrayRefFromArray(mdatoms->invmass, mdatoms->nr),
MassQ,
trotter_seq,
- ettTSEQ2);
+ TrotterSequence::Two);
/* TODO This is only needed when we're about to write
* a checkpoint, because we use it after the restart
}
}
-void integrateVVSecondStep(int64_t step,
- const t_inputrec* ir,
- t_forcerec* fr,
- t_commrec* cr,
- t_state* state,
- t_mdatoms* mdatoms,
- const t_fcdata& fcdata,
- t_extmass* MassQ,
- t_vcm* vcm,
- pull_t* pull_work,
- gmx_enerdata_t* enerd,
- gmx_ekindata_t* ekind,
- gmx_global_stat* gstat,
- real* dvdl_constr,
- bool bCalcVir,
- tensor total_vir,
- tensor shake_vir,
- tensor force_vir,
- tensor pres,
- matrix M,
- matrix lastbox,
- bool do_log,
- bool do_ene,
- bool bGStat,
- bool* bSumEkinhOld,
- gmx::ForceBuffers* f,
- std::vector<gmx::RVec>* cbuf,
- gmx::Update* upd,
- gmx::Constraints* constr,
- gmx::SimulationSignaller* nullSignaller,
- std::array<std::vector<int>, ettTSEQMAX> trotter_seq,
- t_nrnb* nrnb,
- gmx_wallcycle* wcycle)
+void integrateVVSecondStep(int64_t step,
+ const t_inputrec* ir,
+ t_forcerec* fr,
+ t_commrec* cr,
+ t_state* state,
+ t_mdatoms* mdatoms,
+ const t_fcdata& fcdata,
+ t_extmass* MassQ,
+ t_vcm* vcm,
+ pull_t* pull_work,
+ gmx_enerdata_t* enerd,
+ gmx_ekindata_t* ekind,
+ gmx_global_stat* gstat,
+ real* dvdl_constr,
+ bool bCalcVir,
+ tensor total_vir,
+ tensor shake_vir,
+ tensor force_vir,
+ tensor pres,
+ matrix M,
+ matrix lastbox,
+ bool do_log,
+ bool do_ene,
+ bool bGStat,
+ bool* bSumEkinhOld,
+ gmx::ForceBuffers* f,
+ std::vector<gmx::RVec>* cbuf,
+ gmx::Update* upd,
+ gmx::Constraints* constr,
+ gmx::SimulationSignaller* nullSignaller,
+ gmx::EnumerationArray<TrotterSequence, std::vector<int>> trotter_seq,
+ t_nrnb* nrnb,
+ gmx_wallcycle* wcycle)
{
/* velocity half-step update */
upd->update_coords(*ir,
gmx::arrayRefFromArray(mdatoms->invmass, mdatoms->nr),
MassQ,
trotter_seq,
- ettTSEQ4);
+ TrotterSequence::Four);
/* now we know the scaling, we can compute the positions again */
std::copy(cbuf->begin(), cbuf->end(), state->x.begin());