Collective Variables Module - Developer Documentation
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
colvarbias_meta Class Reference

Metadynamics bias (implementation of colvarbias) More...

#include <colvarbias_meta.h>

Inheritance diagram for colvarbias_meta:
Inheritance graph
[legend]
Collaboration diagram for colvarbias_meta:
Collaboration graph
[legend]

Classes

class  hill
 A hill for the metadynamics bias. More...
 

Public Types

enum  Communication { single_replica, multiple_replicas }
 Communication between different replicas. More...
 
typedef std::list< hill >::iterator hill_iter
 
- Public Types inherited from colvarparse
enum  Parse_Mode { parse_normal, parse_silent }
 How a keyword is parsed in a string. More...
 
- Public Types inherited from colvardeps
enum  features_biases {
  f_cvb_active, f_cvb_apply_force, f_cvb_get_total_force, f_cvb_history_dependent,
  f_cvb_scalar_variables, f_cvb_calc_pmf, f_cvb_ntot
}
 
enum  features_colvar {
  f_cv_active, f_cv_gradient, f_cv_collect_gradient, f_cv_fdiff_velocity,
  f_cv_total_force, f_cv_total_force_calc, f_cv_subtract_applied_force, f_cv_Jacobian,
  f_cv_hide_Jacobian, f_cv_extended_Lagrangian, f_cv_Langevin, f_cv_output_energy,
  f_cv_output_value, f_cv_output_velocity, f_cv_output_applied_force, f_cv_output_total_force,
  f_cv_lower_boundary, f_cv_upper_boundary, f_cv_grid, f_cv_runave,
  f_cv_corrfunc, f_cv_scripted, f_cv_periodic, f_cv_scalar,
  f_cv_linear, f_cv_homogeneous, f_cv_ntot
}
 
enum  features_cvc {
  f_cvc_active, f_cvc_scalar, f_cvc_gradient, f_cvc_inv_gradient,
  f_cvc_debug_gradient, f_cvc_Jacobian, f_cvc_one_site_total_force, f_cvc_com_based,
  f_cvc_scalable, f_cvc_scalable_com, f_cvc_ntot
}
 
enum  features_atomgroup {
  f_ag_active, f_ag_center, f_ag_rotate, f_ag_fitting_group,
  f_ag_fit_gradient_group, f_ag_fit_gradient_ref, f_ag_atom_forces, f_ag_scalable,
  f_ag_scalable_com, f_ag_ntot
}
 

Public Member Functions

 colvarbias_meta (char const *key)
 
virtual int init (std::string const &conf)
 Parse config string and (re)initialize.
 
virtual int init_well_tempered_params (std::string const &conf)
 
virtual int init_ebmeta_params (std::string const &conf)
 
virtual int update ()
 
virtual int update_grid_params ()
 
virtual int update_bias ()
 
virtual int update_grid_data ()
 
virtual int replica_share ()
 
virtual int calc_energy (std::vector< colvarvalue > const &values=std::vector< colvarvalue >(0))
 Compute the energy of the bias with alternative values of the collective variables (suitable for bias exchange)
 
virtual int calc_forces (std::vector< colvarvalue > const &values=std::vector< colvarvalue >(0))
 
virtual std::string const get_state_params () const
 Write the values of specific mutable properties to a string.
 
virtual int set_state_params (std::string const &state_conf)
 Read the values of specific mutable properties from a string.
 
virtual std::ostream & write_state_data (std::ostream &os)
 Write all mutable data not already written by get_state_params()
 
virtual std::istream & read_state_data (std::istream &os)
 Read all mutable data not already set by set_state_params()
 
virtual int setup_output ()
 (Re)initialize the output files (does not write them yet)
 
virtual int write_output_files ()
 Write any output files that this bias may have (e.g. PMF files)
 
virtual void write_pmf ()
 
virtual int write_state_to_replicas ()
 If this bias is communicating with other replicas through files, send it to them.
 
- Public Member Functions inherited from colvarbias
int add_colvar (std::string const &cv_name)
 Add a new collective variable to this bias.
 
size_t num_variables () const
 How many variables are defined for this bias.
 
std::vector< colvar * > * variables ()
 Access the variables vector.
 
colvarvariables (int i) const
 Access the i-th variable.
 
virtual void communicate_forces ()
 Send forces to the collective variables.
 
virtual int change_configuration (std::string const &conf)
 Load new configuration - force constant and/or centers only.
 
virtual cvm::real energy_difference (std::string const &conf)
 Calculate change in energy from using alternate configuration.
 
virtual int bin_num ()
 Give the total number of bins for a given bias.
 
virtual int current_bin ()
 Calculate the bin index for a given bias.
 
virtual int bin_count (int bin_index)
 
virtual void analyze ()
 Perform analysis tasks.
 
 colvarbias (char const *key)
 Constructor.
 
virtual int reset ()
 Set to zero all mutable data.
 
virtual int clear ()
 Delete everything.
 
virtual ~colvarbias ()
 Destructor.
 
std::istream & read_state_data_key (std::istream &is, char const *key)
 Read a keyword from the state data (typically a header)
 
virtual std::ostream & write_state (std::ostream &os)
 Write the bias configuration to a restart file or other stream.
 
virtual std::istream & read_state (std::istream &is)
 Read the bias configuration from a restart file or other stream.
 
virtual std::ostream & write_traj_label (std::ostream &os)
 Write a label to the trajectory file (comment line)
 
virtual std::ostream & write_traj (std::ostream &os)
 Output quantities such as the bias energy to the trajectory file.
 
cvm::real get_energy ()
 
virtual std::vector< feature * > & features ()
 Implementation of the feature list accessor for colvarbias.
 
- Public Member Functions inherited from colvarparse
 colvarparse (const std::string &conf)
 Constructor that stores the object's config string.
 
void init ()
 Set the object ready to parse a new configuration string.
 
void init (const std::string &conf)
 Set a new config string for this object.
 
const std::string & get_config ()
 
int check_keywords (std::string &conf, char const *key)
 Check that all the keywords within "conf" are in the list of allowed keywords; this will invoke strip_values() first and then loop over all words.
 
void clear_keyword_registry ()
 Use this after parsing a config string (note that check_keywords() calls it already)
 
bool get_keyval (std::string const &conf, char const *key, int &value, int const &def_value=(int) 0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, size_t &value, size_t const &def_value=(size_t) 0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, long &value, long const &def_value=0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::string &value, std::string const &def_value=std::string(""), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::real &value, cvm::real const &def_value=(cvm::real) 0.0, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::rvector &value, cvm::rvector const &def_value=cvm::rvector(), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, cvm::quaternion &value, cvm::quaternion const &def_value=cvm::quaternion(), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, colvarvalue &value, colvarvalue const &def_value=colvarvalue(colvarvalue::type_notset), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, bool &value, bool const &def_value=false, Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< int > &values, std::vector< int > const &def_values=std::vector< int >(0,(int) 0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< size_t > &values, std::vector< size_t > const &def_values=std::vector< size_t >(0,(size_t) 0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< long > &values, std::vector< long > const &def_values=std::vector< long >(0,(long) 0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< std::string > &values, std::vector< std::string > const &def_values=std::vector< std::string >(0, std::string("")), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< cvm::real > &values, std::vector< cvm::real > const &def_values=std::vector< cvm::real >(0,(cvm::real) 0.0), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< cvm::rvector > &values, std::vector< cvm::rvector > const &def_values=std::vector< cvm::rvector >(0, cvm::rvector()), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< cvm::quaternion > &values, std::vector< cvm::quaternion > const &def_values=std::vector< cvm::quaternion >(0, cvm::quaternion()), Parse_Mode const parse_mode=parse_normal)
 
bool get_keyval (std::string const &conf, char const *key, std::vector< colvarvalue > &values, std::vector< colvarvalue > const &def_values=std::vector< colvarvalue >(0, colvarvalue(colvarvalue::type_notset)), Parse_Mode const parse_mode=parse_normal)
 
bool key_lookup (std::string const &conf, char const *key, std::string &data=dummy_string, size_t &save_pos=dummy_pos)
 Low-level function for parsing configuration strings; automatically adds the requested keyword to the list of valid ones. More...
 
bool brace_check (std::string const &conf, size_t const start_pos=0)
 Check if the content of the file has matching braces.
 
- Public Member Functions inherited from colvardeps
void init_feature (int feature_id, const char *description, feature_type type=f_type_not_set)
 Pair a numerical feature ID with a description and type.
 
bool is_dynamic (int id)
 
bool is_static (int id)
 
bool is_user (int id)
 
void add_child (colvardeps *child)
 
void remove_child (colvardeps *child)
 
void remove_all_children ()
 
bool is_enabled (int f=f_cv_active) const
 
bool is_available (int f=f_cv_active) const
 
void provide (int feature_id, bool truefalse=true)
 
void set_enabled (int feature_id, bool truefalse=true)
 
int enable (int f, bool dry_run=false, bool toplevel=true)
 
virtual int refresh_deps ()
 
void init_cvb_requires ()
 
void init_cv_requires ()
 
void init_cvc_requires ()
 
void init_ag_requires ()
 
void print_state ()
 print all enabled features and those of children, for debugging
 

Public Attributes

Communication comm
 Communication between different replicas.
 
- Public Attributes inherited from colvarbias
std::string name
 Name of this bias.
 
std::string bias_type
 Type of this bias.
 
int rank
 If there is more than one bias of this type, record its rank.
 
std::string output_prefix
 Use this prefix for all output files.
 
- Public Attributes inherited from colvardeps
std::string description
 

Protected Member Functions

void recount_hills_off_grid (hill_iter h_first, hill_iter h_last, colvar_grid_scalar *ge)
 Regenerate the hills_off_grid list.
 
std::istream & read_hill (std::istream &is)
 Read a hill from a file.
 
virtual std::list< hill >
::const_iterator 
create_hill (hill const &h)
 Add a new hill; if a .hills trajectory is written, write it there; if there is more than one replica, communicate it to the others.
 
virtual std::list< hill >
::const_iterator 
delete_hill (hill_iter &h)
 Remove a previously saved hill (returns an iterator for the next hill in the list)
 
virtual void calc_hills (hill_iter h_first, hill_iter h_last, cvm::real &energy, std::vector< colvarvalue > const &values=std::vector< colvarvalue >(0))
 Calculate the values of the hills, incrementing bias_energy.
 
virtual void calc_hills_force (size_t const &i, hill_iter h_first, hill_iter h_last, std::vector< colvarvalue > &forces, std::vector< colvarvalue > const &values=std::vector< colvarvalue >(0))
 Calculate the forces acting on the i-th colvar, incrementing colvar_forces[i]; must be called after calc_hills each time the values of the colvars are changed.
 
void project_hills (hill_iter h_first, hill_iter h_last, colvar_grid_scalar *ge, colvar_grid_gradient *gf, bool print_progress=false)
 Project the selected hills onto grids.
 
virtual void update_replicas_registry ()
 Read the existing replicas on registry.
 
virtual void read_replica_files ()
 Read new data from replicas' files.
 
virtual int write_replica_state_file ()
 Write data to other replicas.
 
- Protected Member Functions inherited from colvarparse
void add_keyword (char const *key)
 Add a new valid keyword to the list.
 
void strip_values (std::string &conf)
 Remove all the values from the config string.
 
template<typename TYPE >
bool _get_keyval_scalar_ (std::string const &conf, char const *key, TYPE &value, TYPE const &def_value, Parse_Mode const parse_mode)
 
bool _get_keyval_scalar_string_ (std::string const &conf, char const *key, std::string &value, std::string const &def_value, Parse_Mode const parse_mode)
 
template<typename TYPE >
bool _get_keyval_vector_ (std::string const &conf, char const *key, std::vector< TYPE > &values, std::vector< TYPE > const &def_values, Parse_Mode const parse_mode)
 
- Protected Member Functions inherited from colvardeps
bool get_keyval_feature (colvarparse *cvp, std::string const &conf, char const *key, int feature_id, bool const &def_value, colvarparse::Parse_Mode const parse_mode=colvarparse::parse_normal)
 Parse a keyword and enable a feature accordingly.
 

Protected Attributes

cvm::real hill_width
 width of a hill More...
 
size_t new_hill_freq
 Number of simulation steps between two hills.
 
bool b_hills_traj
 Write the hill logfile.
 
cvm::ofstream hills_traj_os
 Logfile of hill management (creation and deletion)
 
std::list< hillhills
 List of hills used on this bias (total); if a grid is employed, these don't need to be updated at every time step.
 
hill_iter new_hills_begin
 Iterator to the first of the "newest" hills (when using grids, those who haven't been mapped yet)
 
std::list< hillhills_off_grid
 List of hills used on this bias that are on the boundary edges; these are updated regardless of whether hills are used.
 
hill_iter new_hills_off_grid_begin
 Same as new_hills_begin, but for the off-grid ones.
 
cvm::real hill_weight
 Height of new hills.
 
bool use_grids
 Bin the hills on grids of energy and forces, and use them to force the colvars (as opposed to deriving the hills analytically)
 
bool rebin_grids
 Rebin the hills upon restarting.
 
bool expand_grids
 Should the grids be expanded if necessary?
 
size_t grids_freq
 How often the hills should be projected onto the grids.
 
bool keep_hills
 Whether to keep the hills in the restart file (e.g. to do meaningful accurate rebinning afterwards)
 
bool dump_fes
 Dump the free energy surface (.pmf file) every restartFrequency.
 
bool dump_replica_fes
 Dump the free energy surface (.pmf file) every restartFrequency using only the hills from this replica (only applicable to more than one replica)
 
bool dump_fes_save
 Dump the free energy surface files at different time steps, appending the step number to each file.
 
bool well_tempered
 Whether to use well-tempered metadynamics.
 
cvm::real bias_temperature
 Biasing temperature in well-tempered metadynamics.
 
bool ebmeta
 
colvar_grid_scalartarget_dist
 
std::string target_dist_file
 
cvm::real target_dist_volume
 
size_t ebmeta_equil_steps
 
bool safely_read_restart
 Try to read the restart information by allocating new grids before replacing the current ones (used e.g. in multiple_replicas)
 
colvar_grid_scalarhills_energy
 Hill energy, cached on a grid.
 
colvar_grid_gradienthills_energy_gradients
 Hill forces, cached on a grid.
 
std::string replica_id
 Identifier for this replica.
 
std::string replica_file_name
 File containing the paths to the output files from this replica.
 
std::vector< colvarbias_meta * > replicas
 Additional, "mirror" metadynamics biases, to collect info from the other replicas. More...
 
size_t replica_update_freq
 Frequency at which data the "mirror" biases are updated.
 
std::string replicas_registry_file
 
std::string replicas_registry
 List of replicas (and their output list files)
 
std::string replica_list_file
 List of files written by this replica.
 
std::string replica_state_file
 
bool replica_state_file_in_sync
 Whether a mirror bias has read the latest version of its state file.
 
size_t update_status
 
std::string replica_hills_file
 
cvm::ofstream replica_hills_os
 Output stream corresponding to replica_hills_file.
 
int replica_hills_file_pos
 Position within replica_hills_file (when reading it)
 
- Protected Attributes inherited from colvarbias
std::vector< colvar * > colvars
 Pointers to collective variables to which the bias is applied; current values and metric functions will be obtained through each colvar object.
 
std::vector< colvarvaluecolvar_forces
 Current forces from this bias to the variables.
 
cvm::real bias_energy
 Current energy of this bias (colvar_forces should be obtained by deriving this)
 
bool b_output_energy
 Whether to write the current bias energy from this bias to the trajectory file.
 
bool has_data
 Whether this bias has already accumulated information (for history-dependent biases)
 
size_t state_file_step
 Step number read from the last state file.
 
- Protected Attributes inherited from colvarparse
std::list< std::string > allowed_keywords
 List of legal keywords for this object: this is updated by each call to colvarparse::get_keyval() or colvarparse::key_lookup()
 
std::list< size_t > data_begin_pos
 List of delimiters for the values of each keyword in the configuration string; all keywords will be stripped of their values before the keyword check is performed.
 
std::list< size_t > data_end_pos
 List of delimiters for the values of each keyword in the configuration string; all keywords will be stripped of their values before the keyword check is performed.
 
bool save_delimiters
 Whether or not to accumulate data_begin_pos and data_end_pos in key_lookup(); it may be useful to disable this after the constructor is called, because other files may be read (e.g. restart) that would mess up the registry; in any case, nothing serious happens until check_keywords() is invoked (which should happen only right after construction)
 
std::string config_string
 Configuration string of the object.
 

Additional Inherited Members

- Static Public Member Functions inherited from colvarparse
static std::string to_lower_cppstr (std::string const &in)
 Return a lowercased copy of the string.
 
static std::istream & getline_nocomments (std::istream &is, std::string &s)
 Works as std::getline() but also removes everything between a comment character and the following newline.
 
- Static Public Attributes inherited from colvarbias
static std::vector< feature * > cvb_features
 Implementation of the feature list for colvarbias.
 
- Static Public Attributes inherited from colvarparse
static std::string const white_space = " \t"
 Accepted white space delimiters, used in key_lookup()
 
static std::string dummy_string = ""
 Used as a default argument by key_lookup.
 
static size_t dummy_pos = 0
 Used as a default argument by key_lookup.
 

Detailed Description

Metadynamics bias (implementation of colvarbias)

Member Enumeration Documentation

Communication between different replicas.

Enumerator
single_replica 

One replica (default)

multiple_replicas 

Hills added concurrently by several replicas.

Member Function Documentation

int colvarbias_meta::update ( )
virtual

Retrieve colvar values and calculate their biasing forces Return bias energy

Reimplemented from colvarbias.

Member Data Documentation

cvm::real colvarbias_meta::hill_width
protected

width of a hill

The local width of each collective variable, multiplied by this number, provides the hill width along that direction

std::string colvarbias_meta::replica_hills_file
protected

Explicit hills communicated between replicas

This file becomes empty after replica_state_file is rewritten

std::string colvarbias_meta::replica_state_file
protected

Hills energy and gradients written specifically for other replica (in addition to its own restart file)

std::vector<colvarbias_meta *> colvarbias_meta::replicas
protected

Additional, "mirror" metadynamics biases, to collect info from the other replicas.

These are supposed to be synchronized by reading data from the other replicas, and not be modified by the "local" replica

std::string colvarbias_meta::replicas_registry_file
protected

List of replicas (and their output list files): contents are copied into replicas_registry for convenience

size_t colvarbias_meta::update_status
protected

If there was a failure reading one of the files (because they are not complete), this counter is incremented


The documentation for this class was generated from the following files: