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 | List of all members
colvardeps Class Referenceabstract

Parent class for a member object of a bias, cv or cvc etc. containing features and their dependencies, and handling dependency resolution. More...

#include <colvardeps.h>

Inheritance diagram for colvardeps:
Inheritance graph
[legend]

Classes

class  feature
 
struct  feature_state
 This contains the current state of each feature for each object. More...
 

Public Types

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

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)
 
virtual std::vector< feature * > & 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)
 
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

std::string description
 

Protected Member Functions

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.
 

Detailed Description

Parent class for a member object of a bias, cv or cvc etc. containing features and their dependencies, and handling dependency resolution.

There are 3 kinds of features:

  1. Dynamic features are under the control of the dependency resolution system. They may be enabled or disabled depending on dependencies.
  2. User features may be enabled based on user input (they may trigger a failure upon dependency resolution, though)
  3. Static features are static properties of the object, determined programatically at initialization time.

Member Enumeration Documentation

Enumerator
f_ag_fit_gradient_group 

Perform a standard minimum msd fit for given atoms ie. not using refpositionsgroup

Enumerator
f_cvb_active 

Bias is active.

Enumerator
f_cv_active 

Calculate colvar.

f_cv_gradient 

Gradients are calculated and temporarily stored, so that external forces can be applied.

f_cv_collect_gradient 

Collect atomic gradient data from all cvcs into vector atomic_gradient.

f_cv_fdiff_velocity 

Calculate the velocity with finite differences.

f_cv_total_force 

The total force is calculated, projecting the atomic forces on the inverse gradient.

f_cv_total_force_calc 

Calculate total force from atomic forces.

f_cv_subtract_applied_force 

Subtract the applied force from the total force.

f_cv_Jacobian 

Estimate Jacobian derivative.

f_cv_hide_Jacobian 

Do not report the Jacobian force as part of the total force instead, apply a correction internally to cancel it.

f_cv_extended_Lagrangian 

The variable has a harmonic restraint around a moving center with fictitious mass; bias forces will be applied to the center.

f_cv_Langevin 

The extended system coordinate undergoes Langevin dynamics.

f_cv_output_energy 

Output the potential and kinetic energies (for extended Lagrangian colvars only)

f_cv_output_value 

Output the value to the trajectory file (on by default)

f_cv_output_velocity 

Output the velocity to the trajectory file.

f_cv_output_applied_force 

Output the applied force to the trajectory file.

f_cv_output_total_force 

Output the total force to the trajectory file.

f_cv_lower_boundary 

A lower boundary is defined.

f_cv_upper_boundary 

An upper boundary is defined.

f_cv_grid 

Provide a discretization of the values of the colvar to be used by the biases or in analysis (needs lower and upper boundary)

f_cv_runave 

Compute running average.

f_cv_corrfunc 

Compute time correlation function.

f_cv_scripted 

Value and gradient computed by user script.

f_cv_periodic 

Colvar is periodic.

f_cv_scalar 

is scalar

f_cv_ntot 

Number of colvar features.

Enumerator
f_cvc_debug_gradient 

If enabled, calc_gradients() will call debug_gradients() for every group needed.

Member Function Documentation

void colvardeps::provide ( int  feature_id,
bool  truefalse = true 
)

Set the feature's available flag, without checking To be used for dynamic properties dependencies will be checked by enable()

virtual int colvardeps::refresh_deps ( )
inlinevirtual

This function is called whenever feature states are changed outside of the object's control, that is, by parents Eventually it may also be used when properties of children change

Reimplemented in colvar.

void colvardeps::remove_all_children ( )

Used before deleting an object, if not handled by that object's destructor (useful for cvcs because their children are member objects)

void colvardeps::set_enabled ( int  feature_id,
bool  truefalse = true 
)

Set the feature's enabled flag, without dependency check or resolution To be used for static properties only Checking for availability is up to the caller


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