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:
Dynamic features are under the control of the dependency resolution system. They may be enabled or disabled depending on dependencies.
User features may be enabled based on user input (they may trigger a failure upon dependency resolution, though)
Static features are static properties of the object, determined programmatically at initialization time.
The following diagram summarizes the dependency tree at the bias, colvar, and colvarcomp levels. Isolated and atom group features are not shown to save space.
In all classes, feature 0 is active. When an object is inactivated all its children dependencies are dereferenced (free_children_deps) While the object is inactive, no dependency solving is done on children it is done when the object is activated back (restore_children_deps)
Colvar is awake (active on its own accord) this timestep.
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_collect_atom_ids
Build list of atoms involved in CV calculation.
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_external
An extended variable that sets an external variable in the back-end (eg. an alchemical coupling parameter for lambda-dynamics) Can have a single component.
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_hard_lower_boundary
The lower boundary is not defined from user's choice.
f_cv_hard_upper_boundary
The upper boundary is not defined from user's choice.
f_cv_reflecting_lower_boundary
Reflecting lower boundary condition.
f_cv_reflecting_upper_boundary
Reflecting upper boundary condition.
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_custom_function
Value and gradient computed by user function through Lepton.
Enable a feature and recursively solve its dependencies. For accurate reference counting, do not add spurious calls to enable()
Parameters
dry_run
Recursively test whether a feature is available, without enabling it
toplevel
False if this is called as part of a chain of dependency resolution. This is used to diagnose failed dependencies by displaying the full stack: only the toplevel dependency will throw a fatal error.
disable all enabled features to free their dependencies to be done when deleting the object Cannot be in the base class destructor because it needs the derived class features()
pointers to objects this object depends on list should be maintained by any code that modifies the object this could be secured by making lists of colvars / cvcs / atom groups private and modified through accessor functions
Time step multiplier (for coarse-timestep biases & colvars) Biases and colvars will only be calculated at those times (f_cvb_awake and f_cv_awake); a Biases use this to apply "impulse" biasing forces at the outer timestep Unused by lower-level objects (cvcs and atom groups)
The documentation for this class was generated from the following files: