Collective Variables Module - Developer Documentation
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
colvar::dihedral Class Reference

Colvar component: dihedral between the centers of mass of four groups (colvarvalue::type_scalar type, range [-PI:PI]) More...

#include <colvarcomp.h>

Inheritance diagram for colvar::dihedral:
Inheritance graph
[legend]
Collaboration diagram for colvar::dihedral:
Collaboration graph
[legend]

Public Member Functions

 dihedral (cvm::atom const &a1, cvm::atom const &a2, cvm::atom const &a3, cvm::atom const &a4)
 Initialize the four groups after four atoms.
 
virtual int init (std::string const &conf)
 
virtual void calc_value ()
 Calculate the variable. More...
 
virtual void calc_gradients ()
 Calculate the atomic gradients, to be reused later in order to apply forces. More...
 
virtual void calc_force_invgrads ()
 Calculate the total force from the system using the inverse atomic gradients. More...
 
virtual void calc_Jacobian_derivative ()
 Calculate the divergence of the inverse atomic gradients. More...
 
- Public Member Functions inherited from colvar::cvc
std::string function_type () const
 String identifier for the type of collective variable.
 
 cvc ()
 Constructor.
 
virtual ~cvc ()
 Destructor.
 
virtual int init (std::string const &conf)
 
virtual int init_dependencies ()
 Initialize dependency tree. More...
 
int setup ()
 After construction, set data related to dependency handling.
 
virtual const std::vector< feature * > & features () const
 Implementation of the feature list accessor for colvar. More...
 
virtual std::vector< feature * > & modify_features ()
 
virtual std::vector< std::vector< int > > get_atom_lists ()
 Get vector of vectors of atom IDs for all atom groups.
 
virtual void read_data ()
 Obtain data needed for the calculation for the backend.
 
virtual void calc_value ()=0
 Calculate the variable. More...
 
virtual void calc_gradients ()
 Calculate the atomic gradients, to be reused later in order to apply forces. More...
 
void calc_fit_gradients ()
 Calculate the atomic fit gradients.
 
virtual void debug_gradients ()
 Calculate finite-difference gradients alongside the analytical ones, for each Cartesian component.
 
virtual void collect_gradients (std::vector< int > const &atom_ids, std::vector< cvm::rvector > &atomic_gradients)
 Calculate atomic gradients and add them to the corresponding item in gradient vector May be overridden by CVCs that do not store their gradients in the classic way, see dihedPC. More...
 
virtual void calc_force_invgrads ()
 Calculate the total force from the system using the inverse atomic gradients. More...
 
virtual void calc_Jacobian_derivative ()
 Calculate the divergence of the inverse atomic gradients. More...
 
colvarvalue const & value () const
 Return the previously calculated value.
 
colvarvalue const & total_force () const
 Return the previously calculated total force.
 
colvarvalue const & Jacobian_derivative () const
 Return the previously calculated divergence of the inverse atomic gradients.
 
virtual void apply_force (colvarvalue const &cvforce)
 Apply the collective variable force, by communicating the atomic forces to the simulation program (Note: the ft member is not altered by this function) More...
 
virtual cvm::real dist2 (colvarvalue const &x1, colvarvalue const &x2) const
 
virtual colvarvalue dist2_lgrad (colvarvalue const &x1, colvarvalue const &x2) const
 Gradient(with respect to x1) of the square distance (can be redefined to transparently implement constraints, symmetries and periodicities) More...
 
virtual colvarvalue dist2_rgrad (colvarvalue const &x1, colvarvalue const &x2) const
 Gradient(with respect to x2) of the square distance (can be redefined to transparently implement constraints, symmetries and periodicities) More...
 
virtual void wrap (colvarvalue &x_unwrapped) const
 Wrap value (for periodic/symmetric cvcs) More...
 
void register_atom_group (cvm::atom_group *ag)
 Store a pointer to new atom group, and list as child for dependencies.
 
virtual colvarvalue const * get_param_grad (std::string const &param_name)
 Pointer to the gradient of parameter param_name.
 
virtual int set_param (std::string const &param_name, void const *new_value)
 Set the named parameter to the given value. More...
 
void set_value (colvarvalue const &new_value)
 
- Public Member Functions inherited from colvarparse
 colvarparse ()
 Default constructor.
 
 colvarparse (const std::string &conf)
 Constructor that stores the object's config string.
 
void clear ()
 Set the object ready to parse a new configuration string.
 
void set_string (std::string const &conf)
 Set a new config string for this object.
 
 ~colvarparse () override
 Default destructor.
 
std::string const & get_config () const
 Get the configuration string (includes comments)
 
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=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=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, cvm::step_number &value, cvm::step_number 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=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, 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, 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, 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, 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=nullptr, size_t *save_pos=nullptr)
 Low-level function for parsing configuration strings; automatically adds the requested keyword to the list of valid ones. More...
 
std::istream & read_config_line (std::istream &is, std::string &line)
 Reads a configuration line, adds it to config_string, and returns the stream. More...
 
template<>
int _get_keyval_scalar_value_ (std::string const &key_str, std::string const &data, bool &value, bool const &)
 
template<>
int _get_keyval_scalar_novalue_ (std::string const &key_str, bool &value, Parse_Mode const &parse_mode)
 
- Public Member Functions inherited from colvarparams
int param_exists (std::string const &param_name)
 Whether the parameter param_name exists.
 
virtual std::vector< std::string > get_param_names ()
 Get a copy of the names of registered parameters.
 
virtual std::vector< std::string > get_param_grad_names ()
 Get a copy of the names of registered parameter gradients.
 
virtual void const * get_param_ptr (std::string const &param_name)
 Pointer to the parameter param_name.
 
virtual void const * get_param_grad_ptr (std::string const &param_name)
 Pointer to the gradient of parameter param_name.
 
virtual cvm::real get_param (std::string const &param_name)
 Value of the parameter param_name (must be a scalar)
 
virtual int set_param (std::string const &param_name, void const *new_value)
 Set the named parameter to the given value. More...
 
- Public Member Functions inherited from colvardeps
int get_time_step_factor () const
 returns time_step_factor
 
void init_feature (int feature_id, const char *description, feature_type type)
 Pair a numerical feature ID with a description and type.
 
bool is_not_set (int id)
 
bool is_dynamic (int id)
 
bool is_static (int id)
 
bool is_user (int id)
 
virtual const std::vector< feature * > & features () const =0
 
virtual std::vector< feature * > & modify_features ()=0
 
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)
 Enable or disable, depending on flag value.
 
int enable (int f, bool dry_run=false, bool toplevel=true)
 
int disable (int f)
 
void free_children_deps ()
 
void restore_children_deps ()
 re-enable children features (to be used when object becomes active)
 
int decr_ref_count (int f)
 
virtual void do_feature_side_effects (int)
 
virtual int init_dependencies ()=0
 Initialize dependency tree for object of a derived class. More...
 
void require_feature_self (int f, int g)
 Make feature f require feature g within the same object.
 
void exclude_feature_self (int f, int g)
 Make features f and g mutually exclusive within the same object.
 
void require_feature_children (int f, int g)
 Make feature f require feature g within children.
 
void require_feature_alt (int f, int g, int h)
 Make feature f require either g or h within the same object.
 
void require_feature_alt (int f, int g, int h, int i)
 Make feature f require any of g, h, or i within the same object.
 
void require_feature_alt (int f, int g, int h, int i, int j)
 Make feature f require any of g, h, i, or j within the same object.
 
void print_state ()
 print all enabled features and those of children, for debugging
 
void check_enabled (int f, std::string const &reason) const
 Check that a feature is enabled, raising COLVARS_BUG_ERROR if not.
 

Protected Attributes

cvm::atom_groupgroup1 = nullptr
 Atom group.
 
cvm::atom_groupgroup2 = nullptr
 Atom group.
 
cvm::atom_groupgroup3 = nullptr
 Atom group.
 
cvm::atom_groupgroup4 = nullptr
 Atom group.
 
cvm::rvector r12
 Inter site vectors.
 
cvm::rvector r23
 
cvm::rvector r34
 
bool b_1site_force = false
 Compute total force on first site only to avoid unwanted coupling to other colvars (see e.g. Ciccotti et al., 2005)
 
- Protected Attributes inherited from colvar::cvc
std::vector< std::string > function_types
 Record the type of this class as well as those it is derived from.
 
colvarvalue x
 Cached value.
 
colvarvalue x_old
 Value at the previous step.
 
colvarvalue ft
 Calculated total force (Note: this is calculated from the total atomic forces read from the program, subtracting fromt the "internal" forces of the system the "external" forces from the colvar biases)
 
colvarvalue jd
 Calculated Jacobian derivative (divergence of the inverse gradients): serves to calculate the phase space correction.
 
colvarvalue lower_boundary
 Location of the lower boundary (not defined by user choice)
 
colvarvalue upper_boundary
 Location of the upper boundary (not defined by user choice)
 
cvm::real width = 0.0
 CVC-specific default colvar width (default: not provided)
 
- Protected Attributes inherited from colvarparse
std::string const keyword_delimiters_left
 Characters allowed immediately to the left of a kewyord.
 
std::string const keyword_delimiters_right
 Characters allowed immediately to the right of a kewyord.
 
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::map< std::string, key_set_modekey_set_modes
 Track which keywords have been already set, and how.
 
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.
 
std::string config_string
 Configuration string of the object (includes comments)
 
- Protected Attributes inherited from colvarparams
std::map< std::string, void const * > param_map
 Pointers to relevant parameters that may be accessed by other objects.
 
std::map< std::string, colvarvalue const * > param_grad_map
 Derivatives of the object with respect to internal parameters.
 
- Protected Attributes inherited from colvardeps
int time_step_factor
 
std::vector< feature_statefeature_states
 List of the states of all features.
 

Additional Inherited Members

- Public Types inherited from colvarparse
enum  Parse_Mode {
  parse_null = 0 , parse_echo = (1<<1) , parse_echo_default = (1<<2) , parse_deprecation_warning = (1<<3) ,
  parse_silent = 0 , parse_required = (1<<16) , parse_override = (1<<17) , parse_restart = (1<<18) ,
  parse_normal = (1<<1) | (1<<2) | (1<<17) , parse_deprecated = (1<<1) | (1<<3) | (1<<17)
}
 How a keyword is parsed in a string. More...
 
- Public Types inherited from colvardeps
enum  features_biases {
  f_cvb_active , f_cvb_awake , f_cvb_step_zero_data , f_cvb_apply_force ,
  f_cvb_bypass_ext_lagrangian , f_cvb_get_total_force , f_cvb_output_acc_work , f_cvb_history_dependent ,
  f_cvb_time_dependent , f_cvb_scalar_variables , f_cvb_calc_pmf , f_cvb_calc_ti_samples ,
  f_cvb_write_ti_samples , f_cvb_write_ti_pmf , f_cvb_scale_biasing_force , f_cvb_extended ,
  f_cvb_ntot
}
 
enum  features_colvar {
  f_cv_active , f_cv_awake , f_cv_gradient , f_cv_collect_gradient ,
  f_cv_collect_atom_ids , 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_external , 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_hard_lower_boundary , f_cv_hard_upper_boundary , f_cv_reflecting_lower_boundary ,
  f_cv_reflecting_upper_boundary , f_cv_grid , f_cv_runave , f_cv_corrfunc ,
  f_cv_scripted , f_cv_custom_function , f_cv_periodic , f_cv_single_cvc ,
  f_cv_scalar , f_cv_linear , f_cv_homogeneous , f_cv_multiple_ts ,
  f_cv_ntot
}
 
enum  features_cvc {
  f_cvc_active , f_cvc_scalar , f_cvc_periodic , f_cvc_width ,
  f_cvc_lower_boundary , f_cvc_upper_boundary , f_cvc_explicit_atom_groups , f_cvc_gradient ,
  f_cvc_explicit_gradient , f_cvc_inv_gradient , f_cvc_Jacobian , f_cvc_one_site_total_force ,
  f_cvc_debug_gradient , f_cvc_pbc_minimum_image , f_cvc_com_based , f_cvc_scalable ,
  f_cvc_scalable_com , f_cvc_collect_atom_ids , f_cvc_ntot
}
 
enum  features_atomgroup {
  f_ag_active , f_ag_center , f_ag_center_origin , f_ag_rotate ,
  f_ag_fitting_group , f_ag_explicit_gradient , f_ag_fit_gradients , f_ag_atom_forces ,
  f_ag_scalable , f_ag_scalable_com , f_ag_collect_atom_ids , f_ag_ntot
}
 
- Static Public Member Functions inherited from colvar::cvc
static void delete_features ()
 
- 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 int check_braces (std::string const &conf, size_t const start_pos)
 Check if the content of a config string has matching braces. More...
 
static int check_ascii (std::string const &conf)
 Check that a config string contains non-ASCII characters. More...
 
static void split_string (const std::string &data, const std::string &delim, std::vector< std::string > &dest)
 Split a string with a specified delimiter into a vector. More...
 
- Public Attributes inherited from colvar::cvc
std::string name
 The name of the object (helps to identify this cvc instance when debugging)
 
std::string config_key
 Keyword used in the input to denote this CVC.
 
cvm::real sup_coeff = 1.0
 Coefficient in the polynomial combination (default: 1.0)
 
int sup_np = 1
 Exponent in the polynomial combination (default: 1)
 
cvm::real period = 0.0
 Period of the values of this CVC (default: 0.0, non periodic)
 
cvm::real wrap_center = 0.0
 If the component is periodic, wrap around this value (default: 0.0)
 
std::vector< cvm::atom_group * > atom_groups
 Pointers to all atom groups, to let colvars collect info e.g. atomic gradients.
 
bool b_try_scalable = true
 Whether or not this CVC will be computed in parallel whenever possible.
 
- Public Attributes inherited from colvardeps
std::string description
 
- Static Public Attributes inherited from colvarparse
static const char *const white_space = " \t"
 Accepted white space delimiters, used in key_lookup()
 
- Protected Types inherited from colvarparse
enum  key_set_mode { key_not_set = 0 , key_set_user = 1 , key_set_default = 2 }
 How a keyword has been set.
 
- Protected Types inherited from colvardeps
enum  feature_type { f_type_not_set , f_type_dynamic , f_type_user , f_type_static }
 Enum of possible feature types.
 
- Protected Member Functions inherited from colvar::cvc
int set_function_type (std::string const &type)
 Set the value of function_type and its dependencies.
 
int update_description ()
 Update the description string based on name and type.
 
cvm::atom_groupparse_group (std::string const &conf, char const *group_key, bool optional=false)
 Parse a group definition.
 
virtual int init_total_force_params (std::string const &conf)
 Parse options pertaining to total force calculation.
 
void init_as_distance ()
 Set data types for a scalar distance (convenience function)
 
void init_as_angle ()
 Set data types for a bounded angle (0° to 180°)
 
void init_as_periodic_angle ()
 Set data types for a periodic angle (-180° to 180°)
 
void init_scalar_boundaries (cvm::real lb, cvm::real ub)
 Set two scalar boundaries (convenience function)
 
- Protected Member Functions inherited from colvarparse
bool get_key_string_value (std::string const &conf, char const *key, std::string &data)
 Get the string value of a keyword, and save it for later parsing.
 
bool get_key_string_multi_value (std::string const &conf, char const *key, std::vector< std::string > &data)
 Get multiple strings from repeated instances of a same keyword.
 
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)
 Template for single-value keyword parsers.
 
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)
 Template for multiple-value keyword parsers.
 
template<typename TYPE >
int _get_keyval_scalar_value_ (std::string const &key_str, std::string const &data, TYPE &value, TYPE const &def_value)
 Extract the value of a variable from a string.
 
template<typename TYPE >
int _get_keyval_scalar_novalue_ (std::string const &key_str, TYPE &value, Parse_Mode const &parse_mode)
 Handle the case where the user provides a keyword without value.
 
template<typename TYPE >
void mark_key_set_user (std::string const &key_str, TYPE const &value, Parse_Mode const &parse_mode)
 Record that the keyword has just been user-defined.
 
template<typename TYPE >
void mark_key_set_default (std::string const &key_str, TYPE const &def_value, Parse_Mode const &parse_mode)
 Record that the keyword has just been set to its default value.
 
void error_key_required (std::string const &key_str, Parse_Mode const &parse_mode)
 Raise error condition due to the keyword being required!
 
bool key_already_set (std::string const &key_str)
 True if the keyword has been set already.
 
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.
 
- Protected Member Functions inherited from colvarparams
 colvarparams ()
 Default constructor.
 
virtual ~colvarparams ()
 Default destructor.
 
void register_param (std::string const &param_name, void *param_ptr)
 Register the given parameter.
 
void register_param_grad (std::string const &param_name, colvarvalue *param_grad_ptr)
 Register the gradient of the given parameter.
 
- 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.
 
- Static Protected Attributes inherited from colvar::cvc
static std::vector< feature * > cvc_features
 Implementation of the feature list for colvar.
 

Detailed Description

Colvar component: dihedral between the centers of mass of four groups (colvarvalue::type_scalar type, range [-PI:PI])

Member Function Documentation

◆ calc_force_invgrads()

void colvar::dihedral::calc_force_invgrads ( )
virtual

Calculate the total force from the system using the inverse atomic gradients.

Reimplemented from colvar::cvc.

◆ calc_gradients()

void colvar::dihedral::calc_gradients ( )
virtual

Calculate the atomic gradients, to be reused later in order to apply forces.

Reimplemented from colvar::cvc.

◆ calc_Jacobian_derivative()

void colvar::dihedral::calc_Jacobian_derivative ( )
virtual

Calculate the divergence of the inverse atomic gradients.

Reimplemented from colvar::cvc.

◆ calc_value()

void colvar::dihedral::calc_value ( )
virtual

Calculate the variable.

Implements colvar::cvc.

◆ init()

int colvar::dihedral::init ( std::string const &  conf)
virtual

An init function should be defined for every class inheriting from cvc

Parameters
confContents of the configuration file pertaining to this cvc

Reimplemented from colvar::cvc.


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