10#ifndef COLVARPROXY_SYSTEM_H
11#define COLVARPROXY_SYSTEM_H
65 inline double dt()
const
141 cvm::error(
"Error: accessing the reweighting factor of accelerated MD "
142 "is not yet implemented in the MD engine.\n",
143 COLVARS_NOT_IMPLEMENTED);
146 virtual bool accelMD_enabled()
const {
188 boundaries_non_periodic,
189 boundaries_pbc_ortho,
190 boundaries_pbc_triclinic,
191 boundaries_unsupported
vector of real numbers with three components
Definition: colvartypes.h:723
double real
Defining an abstract real number allows to switch precision.
Definition: colvarmodule.h:150
static int error(std::string const &message, int code=-1)
Print a message to the main log and set global error code.
Definition: colvarmodule.cpp:2076
Methods for accessing the simulation system (PBCs, integrator, etc)
Definition: colvarproxy_system.h:15
virtual ~colvarproxy_system()
Destructor.
Definition: colvarproxy_system.cpp:33
bool total_force_requested
Whether the total forces have been requested.
Definition: colvarproxy_system.h:180
virtual void add_energy(cvm::real energy)
Pass restraint energy value for current timestep to MD engine.
Definition: colvarproxy_system.cpp:69
virtual int set_target_temperature(cvm::real T)
Set the current target temperature of the simulation (K units)
Definition: colvarproxy_system.cpp:43
virtual int set_unit_system(std::string const &units, bool check_only)
Request to set the units used internally by Colvars.
Definition: colvarproxy_system.cpp:36
cvm::real target_temperature_
Most up to date target temperature (K units); default to 0.0 if undefined.
Definition: colvarproxy_system.h:162
Boundaries_type
Type of boundary conditions.
Definition: colvarproxy_system.h:187
cvm::real boltzmann_
Boltzmann constant in internal Colvars units.
Definition: colvarproxy_system.h:159
int time_step_factor() const
Time step of the simulation (fs units)
Definition: colvarproxy_system.h:74
virtual int apply_force_dE_dlambda(cvm::real *force)
Apply a scalar force on dE_dlambda (back-end distributes it onto atoms)
Definition: colvarproxy_system.cpp:198
cvm::real boltzmann() const
Boltzmann constant, with unit the same as energy / K.
Definition: colvarproxy_system.h:50
cvm::real angstrom_to_internal(cvm::real l) const
Convert a length from Angstrom to internal.
Definition: colvarproxy_system.h:38
void update_pbc_lattice()
Recompute PBC reciprocal lattice (assumes XYZ periodicity)
Definition: colvarproxy_system.cpp:98
void reset_pbc_lattice()
Set the lattice vectors to zero.
Definition: colvarproxy_system.cpp:124
virtual cvm::real get_accelMD_factor() const
Get weight factor from accelMD.
Definition: colvarproxy_system.h:140
colvarproxy_system()
Constructor.
Definition: colvarproxy_system.cpp:17
virtual bool total_forces_enabled() const
Are total forces being used?
Definition: colvarproxy_system.cpp:80
double dt() const
Time step of the simulation (fs units)
Definition: colvarproxy_system.h:65
cvm::rvector reciprocal_cell_x
Reciprocal lattice vectors.
Definition: colvarproxy_system.h:201
cvm::real cached_alch_lambda
Next value of lambda to be sent to back-end.
Definition: colvarproxy_system.h:153
virtual int get_d2E_dlambda2(cvm::real *d2E_dlambda2)
Get energy second derivative with respect to lambda (if available)
Definition: colvarproxy_system.cpp:205
virtual int request_alch_energy_freq(int const)
Request energy computation every freq steps (necessary for NAMD3, not all back-ends)
Definition: colvarproxy_system.h:123
bool cached_alch_lambda_changed
Whether lambda has been set and needs to be updated in backend.
Definition: colvarproxy_system.h:156
virtual int get_alch_lambda(cvm::real *lambda)
Get value of alchemical lambda parameter from back-end (if available)
Definition: colvarproxy_system.cpp:170
std::string units
Name of the unit system used internally by Colvars (by default, that of the back-end)....
Definition: colvarproxy_system.h:32
virtual int send_alch_lambda()
Send cached value of alchemical lambda parameter to back-end (if available)
Definition: colvarproxy_system.cpp:184
void set_alch_lambda(cvm::real lambda)
Set value of alchemical lambda parameter to be sent to back-end at end of timestep.
Definition: colvarproxy_system.cpp:177
cvm::real kcal_mol_value_
Value of 1 kcal/mol in the internal Colvars unit for energy.
Definition: colvarproxy_system.h:177
virtual int set_integration_timestep(cvm::real dt)
Set the current integration timestep of the simulation (fs units)
Definition: colvarproxy_system.cpp:50
cvm::real angstrom_value_
Value of 1 Angstrom in the internal (front-end) Colvars unit for atomic coordinates.
Definition: colvarproxy_system.h:174
virtual int set_time_step_factor(int fact)
Set the current integration timestep of the simulation (fs units)
Definition: colvarproxy_system.cpp:56
cvm::rvector unit_cell_x
Bravais lattice vectors.
Definition: colvarproxy_system.h:198
cvm::real target_temperature() const
Current target temperature of the simulation (K units)
Definition: colvarproxy_system.h:56
double timestep_
Current integration timestep (engine units); default to 1.0 if undefined.
Definition: colvarproxy_system.h:165
virtual int get_molid(int &molid)
Definition: colvarproxy_system.cpp:162
virtual cvm::rvector position_distance(cvm::atom_pos const &pos1, cvm::atom_pos const &pos2) const
Get the PBC-aware distance vector between two positions.
Definition: colvarproxy_system.cpp:135
cvm::real internal_to_angstrom(cvm::real l) const
Convert a length from internal to Angstrom.
Definition: colvarproxy_system.h:44
virtual bool total_forces_same_step() const
Definition: colvarproxy_system.cpp:86
virtual cvm::real rand_gaussian(void)
Pseudo-random number with Gaussian distribution.
Definition: colvarproxy_system.cpp:62
Boundaries_type boundaries_type
Type of boundary conditions.
Definition: colvarproxy_system.h:195
virtual int get_dE_dlambda(cvm::real *dE_dlambda)
Get energy derivative with respect to lambda (if available)
Definition: colvarproxy_system.cpp:191
cvm::real indirect_lambda_biasing_force
Force to be applied onto alch. lambda, propagated from biasing forces on dE_dlambda.
Definition: colvarproxy_system.h:137
int time_step_factor_
Current timestep multiplier, if Colvars is only called once every n MD timesteps.
Definition: colvarproxy_system.h:168
virtual void request_total_force(bool yesno)
Tell the proxy whether total forces are needed (they may not always be available)
Definition: colvarproxy_system.cpp:72