10#ifndef COLVARBIAS_RESTRAINT_H
11#define COLVARBIAS_RESTRAINT_H
13#include "colvarbias.h"
17#pragma warning(disable : 4250)
42 virtual std::ostream &
write_traj(std::ostream &os);
47 virtual int init(std::string
const &conf);
71 virtual int init(std::string
const &conf);
88 virtual int init(std::string
const &conf);
111 virtual int init(std::string
const &conf)
override;
112 virtual int update()
override;
196 virtual int init(std::string
const &conf)
override;
202 virtual std::ostream &
write_traj(std::ostream &os)
override;
238 virtual int init(std::string
const &conf)
override;
244 virtual std::ostream &
write_traj(std::ostream &os)
override;
280 virtual int init(std::string
const &conf);
285 virtual std::ostream &
write_traj(std::ostream &os);
305 virtual int init(std::string
const &conf)
override;
306 virtual int update()
override;
307 virtual int update_acc_work();
312 virtual std::ostream &
write_traj(std::ostream &os)
override;
372 virtual int init(std::string
const &conf);
380 virtual std::ostream &
write_traj(std::ostream &os);
397 int init(std::string
const &conf);
404 virtual std::ostream &
write_traj(std::ostream &os);
Options to change the restraint centers over time.
Definition: colvarbias_restraint.h:192
std::vector< colvarvalue > target_centers
New restraint centers.
Definition: colvarbias_restraint.h:207
std::vector< colvarvalue > initial_centers
Initial value of the restraint centers.
Definition: colvarbias_restraint.h:210
virtual std::string const get_state_params() const override
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:445
virtual int change_configuration(std::string const &) override
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.h:197
int update_acc_work()
Update the accumulated work.
Definition: colvarbias_restraint.cpp:427
virtual std::ostream & write_traj(std::ostream &os) override
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:508
cvm::real dU_dlambda_centers() const override
Compute the derivative of the free energy wrt lambda due to changing centers.
Definition: colvarbias_restraint.cpp:417
std::vector< colvarvalue > centers_incr
Increment of the restraint centers at each step.
Definition: colvarbias_restraint.h:213
virtual int init(std::string const &conf) override
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:339
bool b_output_centers
Whether to write the current restraint centers to the trajectory file.
Definition: colvarbias_restraint.h:222
virtual std::ostream & write_traj_label(std::ostream &os) override
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:489
void update_centers(cvm::real lambda) override
Update the centers by interpolating between initial and target.
Definition: colvarbias_restraint.cpp:388
virtual int set_state_params(std::string const &conf) override
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:471
Definition and parsing of the restraint centers.
Definition: colvarbias_restraint.h:67
virtual int init(std::string const &conf)
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:106
virtual int change_configuration(std::string const &conf)
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.cpp:146
std::vector< colvarvalue > colvar_centers
Restraint centers.
Definition: colvarbias_restraint.h:77
Wall restraint (implementation of colvarbias_restraint)
Definition: colvarbias_restraint.h:301
cvm::real upper_wall_k
If both walls are defined, use this k for the upper.
Definition: colvarbias_restraint.h:326
virtual std::ostream & write_traj(std::ostream &os) override
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:1291
cvm::real lower_wall_k
If both walls are defined, use this k for the lower.
Definition: colvarbias_restraint.h:323
std::vector< colvarvalue > target_lower_walls
Location of the target lower wall, for moving the wall.
Definition: colvarbias_restraint.h:329
virtual int update() override
Retrieve colvar values and calculate their biasing forces.
Definition: colvarbias_restraint.cpp:1159
std::vector< colvarvalue > initial_lower_walls
Initial value of the lower walls.
Definition: colvarbias_restraint.h:332
virtual int set_state_params(std::string const &conf) override
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:1268
virtual int change_configuration(std::string const &conf) override
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.cpp:1277
virtual std::string const get_state_params() const override
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:1260
virtual int init(std::string const &conf) override
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:855
std::vector< colvarvalue > target_upper_walls
Location of the target upper wall, for moving the wall.
Definition: colvarbias_restraint.h:338
std::vector< colvarvalue > lower_walls
Location of the lower walls.
Definition: colvarbias_restraint.h:317
virtual colvarvalue const restraint_force(size_t i) const override
Force function for the i-th colvar.
Definition: colvarbias_restraint.cpp:1243
void update_walls(cvm::real lambda) override
Update the walls by interpolating between initial and target.
Definition: colvarbias_restraint.cpp:1086
std::vector< colvarvalue > upper_walls_incr
Increment of the upper walls at each step.
Definition: colvarbias_restraint.h:344
std::vector< colvarvalue > lower_walls_incr
Increment of the lower walls at each step.
Definition: colvarbias_restraint.h:335
virtual cvm::real restraint_potential(size_t i) const override
Potential function for the i-th colvar.
Definition: colvarbias_restraint.cpp:1234
cvm::real colvar_distance(size_t i) const
Signed distance to relevant wall (lower if below, upper if above) In PBC, only sees the closer of the...
Definition: colvarbias_restraint.cpp:1198
std::vector< colvarvalue > initial_upper_walls
Initial value of upper lower walls.
Definition: colvarbias_restraint.h:341
virtual std::ostream & write_traj_label(std::ostream &os) override
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:1283
virtual cvm::real d_restraint_potential_dk(size_t i) const override
Derivative of the potential function with respect to the force constant.
Definition: colvarbias_restraint.cpp:1251
std::vector< colvarvalue > upper_walls
Location of the upper walls.
Definition: colvarbias_restraint.h:320
cvm::real dU_dlambda_walls() const override
Compute the derivative of the free energy wrt lambda due to changing walls.
Definition: colvarbias_restraint.cpp:1145
Harmonic bias restraint (implementation of colvarbias_restraint)
Definition: colvarbias_restraint.h:277
virtual cvm::real restraint_potential(size_t i) const
Potential function for the i-th colvar.
Definition: colvarbias_restraint.cpp:751
virtual cvm::real energy_difference(std::string const &conf)
Calculate change in energy from using alternate configuration.
Definition: colvarbias_restraint.cpp:818
virtual int set_state_params(std::string const &conf)
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:781
virtual cvm::real d_restraint_potential_dk(size_t i) const
Derivative of the potential function with respect to the force constant.
Definition: colvarbias_restraint.cpp:765
virtual int change_configuration(std::string const &conf)
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.cpp:810
virtual int init(std::string const &conf)
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:709
virtual std::ostream & write_traj_label(std::ostream &os)
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:792
virtual std::string const get_state_params() const
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:772
virtual colvarvalue const restraint_force(size_t i) const
Force function for the i-th colvar.
Definition: colvarbias_restraint.cpp:758
virtual int update()
Retrieve colvar values and calculate their biasing forces.
Definition: colvarbias_restraint.cpp:730
virtual std::ostream & write_traj(std::ostream &os)
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:801
Restrain the 1D histogram of a set of variables (or of a multidimensional one)
Definition: colvarbias_restraint.h:392
int init(std::string const &conf)
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:1456
cvm::real width
Resolution of the grid.
Definition: colvarbias_restraint.h:424
virtual std::ostream & write_traj_label(std::ostream &os)
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:1692
virtual std::ostream & write_traj(std::ostream &os)
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:1703
cvm::vector1d< cvm::real > p_diff
Difference between probability density and reference.
Definition: colvarbias_restraint.h:415
cvm::vector1d< cvm::real > ref_p
Reference probability density.
Definition: colvarbias_restraint.h:412
cvm::real force_k
Restraint force constant.
Definition: colvarbias_restraint.h:430
cvm::real lower_boundary
Lower boundary of the grid.
Definition: colvarbias_restraint.h:418
virtual int update()
Definition: colvarbias_restraint.cpp:1571
bool b_write_histogram
Write the histogram to a file.
Definition: colvarbias_restraint.h:433
virtual int write_output_files()
Write any output files that this bias may have (e.g. PMF files)
Definition: colvarbias_restraint.cpp:1661
cvm::vector1d< cvm::real > p
Probability density.
Definition: colvarbias_restraint.h:409
cvm::real gaussian_width
Width of the Gaussians.
Definition: colvarbias_restraint.h:427
cvm::real upper_boundary
Upper boundary of the grid.
Definition: colvarbias_restraint.h:421
Options to change the restraint force constant over time.
Definition: colvarbias_restraint.h:233
cvm::real lambda_exp
Exponent for varying the force constant.
Definition: colvarbias_restraint.h:256
cvm::real dU_dlambda_k() const override
Compute the derivative of the free energy wrt lambda due to changing k.
Definition: colvarbias_restraint.cpp:608
virtual int init(std::string const &conf) override
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:544
virtual int change_configuration(std::string const &) override
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.h:239
cvm::real force_k_incr
Increment of the force constant at each step.
Definition: colvarbias_restraint.h:259
virtual std::ostream & write_traj_label(std::ostream &os) override
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:674
virtual int set_state_params(std::string const &conf) override
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:656
virtual std::ostream & write_traj(std::ostream &os) override
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:684
int update_acc_work()
Update the accumulated work.
Definition: colvarbias_restraint.cpp:618
cvm::real starting_force_k
Restraint force constant at lambda = 0 (generally starting value, but is final value in the decouplin...
Definition: colvarbias_restraint.h:253
cvm::real target_force_k
Restraint force constant (target value at lambda = 1)
Definition: colvarbias_restraint.h:249
void update_k(cvm::real lambda) override
Update the force constant by interpolating between initial and target.
Definition: colvarbias_restraint.cpp:595
virtual std::string const get_state_params() const override
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:637
Definition and parsing of the force constant.
Definition: colvarbias_restraint.h:84
cvm::real force_k
Restraint force constant.
Definition: colvarbias_restraint.h:94
virtual int init(std::string const &conf)
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:167
bool check_positive_k
Whether the force constant should be positive.
Definition: colvarbias_restraint.h:97
virtual int change_configuration(std::string const &conf)
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.cpp:178
Linear bias restraint (implementation of colvarbias_restraint)
Definition: colvarbias_restraint.h:368
virtual int update()
Retrieve colvar values and calculate their biasing forces.
Definition: colvarbias_restraint.cpp:1340
virtual std::ostream & write_traj(std::ostream &os)
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:1436
virtual cvm::real restraint_potential(size_t i) const
Potential function for the i-th colvar.
Definition: colvarbias_restraint.cpp:1385
virtual std::string const get_state_params() const
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:1407
virtual int set_state_params(std::string const &conf)
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:1416
virtual std::ostream & write_traj_label(std::ostream &os)
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:1427
virtual colvarvalue const restraint_force(size_t i) const
Force function for the i-th colvar.
Definition: colvarbias_restraint.cpp:1392
virtual int change_configuration(std::string const &conf)
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.cpp:1361
virtual int init(std::string const &conf)
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:1314
virtual cvm::real d_restraint_potential_dk(size_t i) const
Derivative of the potential function with respect to the force constant.
Definition: colvarbias_restraint.cpp:1400
virtual cvm::real energy_difference(std::string const &conf)
Calculate change in energy from using alternate configuration.
Definition: colvarbias_restraint.cpp:1368
Options to change the restraint configuration over time (shared between centers and k moving)
Definition: colvarbias_restraint.h:104
int stage
Number of current stage of the perturbation Starts at 0, goes up to target_nstages during the perturb...
Definition: colvarbias_restraint.h:153
virtual int init(std::string const &conf) override
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:185
virtual int set_state_params(std::string const &conf) override
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:310
virtual void update_k(cvm::real)
Update the force constant by interpolating between initial and target.
Definition: colvarbias_restraint.h:130
virtual void update_walls(cvm::real)
Update the walls by interpolating between initial and target.
Definition: colvarbias_restraint.h:134
bool b_chg_centers
Moving target?
Definition: colvarbias_restraint.h:121
std::vector< cvm::real > lambda_schedule
Lambda-schedule for custom varying force constant.
Definition: colvarbias_restraint.h:171
virtual int change_configuration(std::string const &) override
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.h:113
virtual int update() override
Retrieve colvar values and calculate their biasing forces.
Definition: colvarbias_restraint.cpp:233
bool b_decoupling
Perform decoupling of the restraint? If yes, lambda goes from 1 to 0.
Definition: colvarbias_restraint.h:143
cvm::real acc_work
Accumulated work (computed when outputAccumulatedWork == true)
Definition: colvarbias_restraint.h:184
virtual cvm::real dU_dlambda_centers() const
Compute the derivative of the free energy wrt lambda due to changing centers.
Definition: colvarbias_restraint.h:138
cvm::step_number target_nsteps
Number of steps required to reach the target force constant or restraint centers.
Definition: colvarbias_restraint.h:175
virtual std::string const get_state_params() const override
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:296
cvm::step_number first_step
Timestep at which the restraint starts moving.
Definition: colvarbias_restraint.h:181
virtual cvm::real dU_dlambda_walls() const
Compute the derivative of the free energy wrt lambda due to changing walls.
Definition: colvarbias_restraint.h:140
cvm::real dA_dlambda
Accumulating restraint FE derivative wrt lambda.
Definition: colvarbias_restraint.h:156
bool b_chg_force_k
Changing force constant?
Definition: colvarbias_restraint.h:124
void update_stage()
Update the stage number based on the current step Note: this is idempotent so multiple calls are safe...
Definition: colvarbias_restraint.h:160
bool b_chg_walls
Changing wall locations?
Definition: colvarbias_restraint.h:127
cvm::step_number target_equil_steps
Equilibration steps for restraint FE calculation through TI.
Definition: colvarbias_restraint.h:178
virtual void update_centers(cvm::real)
Update the centers by interpolating between initial and target.
Definition: colvarbias_restraint.h:132
cvm::real current_lambda() const
Get lambda value for the current stage.
Definition: colvarbias_restraint.cpp:278
virtual cvm::real dU_dlambda_k() const
Compute the derivative of the free energy wrt lambda due to changing k.
Definition: colvarbias_restraint.h:136
int target_nstages
Number of stages over which to perform the change If zero, perform a continuous change First step is ...
Definition: colvarbias_restraint.h:149
Most general definition of a colvar restraint: see derived classes for specific types (implementation...
Definition: colvarbias_restraint.h:26
virtual cvm::real d_restraint_potential_dk(size_t i) const =0
Derivative of the potential function with respect to the force constant.
virtual int set_state_params(std::string const &conf)
Read the values of specific mutable properties from a string.
Definition: colvarbias_restraint.cpp:81
virtual colvarvalue const restraint_force(size_t i) const =0
Force function for the i-th colvar.
virtual cvm::real energy_difference(std::string const &)
Calculate change in energy from using alternate configuration.
Definition: colvarbias_restraint.h:37
virtual int update()
Retrieve colvar values and calculate their biasing forces.
Definition: colvarbias_restraint.cpp:46
virtual std::string const get_state_params() const
Write the values of specific mutable properties to a string.
Definition: colvarbias_restraint.cpp:75
virtual int init(std::string const &conf)
Parse config string and (re)initialize.
Definition: colvarbias_restraint.cpp:27
virtual cvm::real restraint_potential(size_t i) const =0
Potential function for the i-th colvar.
virtual std::ostream & write_traj_label(std::ostream &os)
Write a label to the trajectory file (comment line)
Definition: colvarbias_restraint.cpp:87
virtual std::ostream & write_traj(std::ostream &os)
Output quantities such as the bias energy to the trajectory file.
Definition: colvarbias_restraint.cpp:93
virtual int change_configuration(std::string const &)
Load new configuration - force constant and/or centers only.
Definition: colvarbias_restraint.h:34
Base class for unconstrained thermodynamic-integration FE estimator.
Definition: colvarbias.h:336
Collective variable bias, base class.
Definition: colvarbias.h:23
Parent class for a member object of a bias, cv or cvc etc. containing features and their dependencies...
Definition: colvardeps.h:34
Arbitrary size array (one dimensions) suitable for linear algebra operations (i.e....
Definition: colvartypes.h:36
Collective variables module (main class)
Definition: colvarmodule.h:72
double real
Defining an abstract real number allows to switch precision.
Definition: colvarmodule.h:99
step_number step_absolute()
Definition: colvarmodule.h:285
long long step_number
Use a 64-bit integer to store the step number.
Definition: colvarmodule.h:96
Value of a collective variable: this is a metatype which can be set at runtime. By default it is set ...
Definition: colvarvalue.h:43