2#include "ff/precision.h"
5#include <tinker/detail/bath.hh>
198 NhcDevice(
int nhclen,
int nc,
double dfree,
double* kin_ptr,
double (*kin)(),
void (*scale)(
double), std::string str);
404 virtual const char*
name()
const = 0;
419 const char*
name()
const override;
431 const char*
name()
const override;
443 const char*
name()
const override;
454 const char*
name()
const override;
465 const char*
name()
const override;
476 const char*
name()
const override;
Definition: integrator.h:452
Nhc06Integrator(int nrspa)
const char * name() const override
void dynamic(int, time_prec) override
static constexpr int SemiOrthoOrOct
Definition: integrator.h:29
static const int SemiArray[4][2]
Definition: integrator.h:28
void velR0(time_prec t) override
Velocity update for the inner RESPA time steps.
const char * name() const override
static const int(* indexArray)[2]
Definition: integrator.h:21
virtual ~BasicIntegrator()
static bool atomic
Definition: integrator.h:14
static BasicPropagator * create(int nRespaLogV, PropagatorEnum pe)
static bool printPressure
Definition: integrator.h:13
RespaIntegrator(ThermostatEnum te, BarostatEnum be)
static constexpr int AnisoTri
Definition: integrator.h:26
virtual void vel2(time_prec t)
The second half-step velocity update.
virtual void pos(time_prec t)
Position update.
BasicThermostat * m_thermo
Definition: integrator.h:397
void vel1(time_prec t) override
The first half-step velocity update.
int vers1
Definition: integrator.h:400
virtual void velR1(time_prec t, int nrespa)
The first half-step velocity update for RESPA.
Definition: integrator.h:75
static constexpr int SemiMono
Definition: integrator.h:30
static const int AnisoArray[6][2]
Definition: integrator.h:23
const char * name() const override
void dynamic(int, time_prec) override
const char * name() const override
virtual void dynamic(int istep, time_prec dt)
const char * name() const override
bool save
Definition: integrator.h:401
static constexpr int AnisoOrthoOrOct
Definition: integrator.h:24
void vel2(time_prec t) override
The second half-step velocity update.
static int arrayLength
Definition: integrator.h:20
void velR0(time_prec t) override
Velocity update for the inner RESPA time steps.
static constexpr int AnisoMono
Definition: integrator.h:25
static bool semiiso
Definition: integrator.h:16
virtual ~BasicPropagator()
void velR1(time_prec t, int nrespa) override
The first half-step velocity update for RESPA.
void pos(time_prec t) override
Position update.
static bool aniso
Definition: integrator.h:15
virtual void vel1(time_prec t)
The first half-step velocity update.
virtual void velR2(time_prec t, int nrespa)
The second half-step velocity update for RESPA.
Definition: integrator.h:79
void velR2(time_prec t, int nrespa) override
The second half-step velocity update for RESPA.
void rattle(time_prec dt)
void rattle2(time_prec dt, bool useVirial)
BasicPropagator * m_prop
Definition: integrator.h:396
BasicBarostat * m_baro
Definition: integrator.h:398
void velR1(time_prec t, int nrespa) override
The first half-step velocity update for RESPA.
void velImpl(time_prec t, int idx, int nrespa)
LP22Integrator(int nrspa)
BasicIntegrator(int nRespaLogV, PropagatorEnum pe, ThermostatEnum te, BarostatEnum be)
bool ifSave(int istep) const
Logical flag governing saving an MD step.
const char * name() const override
void velR2(time_prec t, int nrespa) override
The second half-step velocity update for RESPA.
static double dofP
Definition: integrator.h:18
BasicPropagator(int nrspa)
virtual const char * name() const =0
virtual void velR0(time_prec t)
Velocity update for the inner RESPA time steps.
Definition: integrator.h:71
static bool applyBaro
Definition: integrator.h:12
static int nrespa
Definition: integrator.h:17
VerletIntegrator(ThermostatEnum te, BarostatEnum be)
static constexpr int SemiTri
Definition: integrator.h:31
Definition: integrator.h:394
The interface class of a Verlet or an RESPA-Verlet MD step.
Definition: integrator.h:47
Definition: integrator.h:10
Definition: integrator.h:463
Definition: integrator.h:474
Definition: integrator.h:113
Definition: integrator.h:441
Definition: integrator.h:98
Definition: integrator.h:429
Definition: integrator.h:90
Definition: integrator.h:417
IntegratorEnum
Definition: integrator.h:381
PropagatorEnum
Definition: integrator.h:38
void controlImpl(double timeStep, bool calcEkin)
virtual ~BasicThermostat()
void(* f_kin)()
Definition: integrator.h:326
double m_fric
Definition: integrator.h:304
void control4(time_prec) override
NhcDevice * m_tpart
Definition: integrator.h:211
void printDetail(FILE *) override
void control3(time_prec dt) override
void control2(time_prec timeStep) override
static void scaleVelocityAtomic(double scale)
void printDetail(FILE *) override
void printDetail(FILE *) override
double(* m_ekin)[3]
Definition: integrator.h:325
double g0
Definition: integrator.h:188
virtual void control2(time_prec timeStep)
Definition: integrator.h:263
double m_rnd
Definition: integrator.h:305
BarostatEnum getBarostatEnum() const override
AnisoBaroDevice(double fric)
int m_nbaro
Definition: integrator.h:252
void printDetail(FILE *) override
virtual void control1(time_prec timeStep)
bool ifApply(int istep) override
static BasicThermostat * create(ThermostatEnum)
void control2(time_prec time_prec, bool) override
Nhc06Thermostat * m_thermo
Definition: integrator.h:347
BarostatEnum getBarostatEnum() const override
Nhc06Thermostat * m_thermo
Definition: integrator.h:364
void control2(time_prec dt) override
double(* f_kin)()
Definition: integrator.h:302
void control2(double timeStep, bool) override
static constexpr int nhc_nsy
Definition: integrator.h:186
virtual void control1(time_prec timeStep)
Definition: integrator.h:262
void control1(time_prec time_prec) override
virtual BarostatEnum getBarostatEnum() const
IsoBaroDevice(double fric)
double vnh[maxnose]
Definition: integrator.h:189
void control2(time_prec dt) override
void control1(time_prec dt) override
void control1(time_prec timeStep) override
bool m_langevin
Definition: integrator.h:330
void control1(time_prec dt) override
void(* scale_vel)(double)
Definition: integrator.h:192
bool m_langevin
Definition: integrator.h:306
double(* f_kin)()
Definition: integrator.h:191
BarostatEnum getBarostatEnum() const override
static double kineticRattleGroup()
virtual void printDetail(FILE *)
NhcDevice * m_tbaro
Definition: integrator.h:212
virtual void control2(time_prec timeStep, bool calcEkin)
double m_rnd[3][3]
Definition: integrator.h:329
NhcDevice(int nhclen, int nc, double dfree, double *kin_ptr, double(*kin)(), void(*scale)(double), std::string str)
void setPrintPressure(int) override
virtual void control3(time_prec timeStep)
Definition: integrator.h:264
int nnose
Definition: integrator.h:187
void control3(time_prec timeStep) override
BarostatEnum getBarostatEnum() const override
void control_1_2(time_prec dt, int idx)
static BasicBarostat * create(BarostatEnum)
virtual void printDetail(FILE *)
void printDetail(FILE *) override
double qnh[maxnose]
Definition: integrator.h:189
void control1(time_prec timeStep) override
void control2(time_prec dt, bool) override
BasicBarostat * m_baro
Definition: integrator.h:365
static void scaleVelocityVbar(double scale)
double * m_eksum
Definition: integrator.h:324
double * m_eksum
Definition: integrator.h:301
void control_1_2(time_prec dt, int idx)
virtual void setPrintPressure(int istep)
virtual void control4(time_prec timeStep)
Definition: integrator.h:265
void control3(time_prec timeStep) override
IsoBaroDevice * m_baro
Definition: integrator.h:348
void printDetail(FILE *) override
int nhc_nc
Definition: integrator.h:187
void control1(time_prec dt) override
static double kineticVbar()
virtual bool ifApply(int istep)
int m_iprint
Definition: integrator.h:253
double * m_vir
Definition: integrator.h:300
static double kineticAtomic()
void control3(time_prec dt) override
void control2(time_prec timeStep) override
void control2(time_prec timeStep) override
void printDetail(FILE *) override
static void scaleVelocityRattleGroup(double scale)
double * m_kin_ptr
Definition: integrator.h:190
BarostatEnum getBarostatEnum() const override
double * m_vir
Definition: integrator.h:323
void printDetail(FILE *) override
double m_fric
Definition: integrator.h:328
std::string name
Definition: integrator.h:193
void printDetail(FILE *) override
BarostatEnum getBarostatEnum() const override
Definition: integrator.h:321
Definition: integrator.h:250
Definition: integrator.h:147
Definition: integrator.h:289
Definition: integrator.h:163
Definition: integrator.h:298
Definition: integrator.h:362
Definition: integrator.h:276
Definition: integrator.h:345
Definition: integrator.h:209
Applies a velocity correction as needed for the Nose-Hoover Chains at the half time step.
Definition: integrator.h:184
BarostatEnum
Definition: integrator.h:235
constexpr int maxnose
Maximum length of the NH chain.
Definition: integrator.h:171
ThermostatEnum
Definition: integrator.h:133
@ VERLET
Verlet neighbor list.
mixed time_prec
Floating-point type for time.
Definition: precision.h:90