This is used to create PLMD::Action objects that are computed by calculating the same function multiple times. More...
#include <ActionWithVessel.h>
Public Types | |
typedef std::set< Action * > | Dependencies |
typedef std::set< FILE * > ::iterator | files_iterator |
Public Member Functions | |
ActionWithVessel (const ActionOptions &ao) | |
~ActionWithVessel () | |
virtual void | unlockContributors () |
Used to make sure we are calculating everything during neighbor list update step. More... | |
virtual void | lockContributors () |
virtual void | deactivate_task () |
Activate the jth colvar Deactivate the current task in future loops. More... | |
void | chainRuleForElementDerivatives (const unsigned &, const unsigned &, const double &, Vessel *) |
Merge the derivatives. More... | |
void | chainRuleForElementDerivatives (const unsigned &, const unsigned &, const unsigned &, const unsigned &, const double &, Vessel *) |
virtual void | mergeDerivatives (const unsigned &ider, const double &df) |
virtual void | clearDerivativesAfterTask (const unsigned &) |
virtual bool | isPeriodic ()=0 |
Are the base quantities periodic. More... | |
virtual void | retrieveDomain (std::string &min, std::string &max) |
What are the domains of the base quantities. More... | |
virtual unsigned | getNumberOfDerivatives ()=0 |
Get the number of derivatives for final calculated quantity. More... | |
virtual void | doJobsRequiredBeforeTaskList () |
Do any jobs that are required before the task list is undertaken. More... | |
virtual void | performTask (const unsigned &j)=0 |
Calculate one of the functions in the distribution. More... | |
Vessel * | getVessel (const std::string &name) |
Return a pointer to the field. More... | |
void | addElementDerivative (const unsigned &, const double &) |
Add some derivative of the quantity in the sum wrt to a numbered element. More... | |
void | setElementValue (const unsigned &, const double &) |
Set the value of the element. More... | |
double | getElementValue (const unsigned &ival) const |
Get the value of this element. More... | |
double | getElementDerivative (const unsigned &) const |
Retrieve the derivative of the quantity in the sum wrt to a numbered element. More... | |
virtual void | applyBridgeForces (const std::vector< double > &bb) |
Apply forces from bridge vessel - this is rarely used - currently only in ActionVolume. More... | |
void | addDependency (Action *) |
Specify that this Action depends on another one. More... | |
void | clearDependencies () |
Clear the dependence list for this Action. More... | |
long int | getStep () const |
Return the present timestep. More... | |
double | getTime () const |
Return the present time. More... | |
double | getTimeStep () const |
Return the timestep. More... | |
template<class T > | |
void | parse (const std::string &key, T &t) |
Parse one keyword as generic type. More... | |
template<class T > | |
bool | parseNumbered (const std::string &key, const int no, T &t) |
Parse one numbered keyword as generic type. More... | |
template<class T > | |
void | parseVector (const std::string &key, std::vector< T > &t) |
Parse one keyword as std::vector. More... | |
template<class T > | |
bool | parseNumberedVector (const std::string &key, const int no, std::vector< T > &t) |
Parse a vector with a number. More... | |
void | parseFlag (const std::string &key, bool &t) |
Parse one keyword as boolean flag. More... | |
void | error (const std::string &msg) const |
Crash calculation and print documentation. More... | |
void | warning (const std::string &msg) |
Issue a warning. More... | |
void | exit (int c=0) |
Exit with error code c. More... | |
void | checkRead () |
Check if Action was properly read. More... | |
virtual void | prepare () |
Prepare an Action for calculation This can be used by Action if they need some special preparation before calculation. More... | |
virtual void | lockRequests () |
virtual void | unlockRequests () |
virtual void | calculate ()=0 |
Calculate an Action. More... | |
virtual void | apply ()=0 |
Apply an Action. More... | |
virtual void | update () |
Update. More... | |
virtual void | runFinalJobs () |
RunFinalJobs This method is called once at the very end of the calculation. More... | |
void | fflush () |
Tell to the Action to flush open files. More... | |
virtual std::string | getDocumentation () const |
const std::string & | getLabel () const |
Returns the label. More... | |
const std::string & | getName () const |
Returns the name. More... | |
virtual void | activate () |
Set action to active. More... | |
virtual void | setOption (const std::string &s) |
virtual void | clearOptions () |
virtual void | deactivate () |
Set action to inactive. More... | |
bool | isActive () const |
Check if action is active. More... | |
bool | isOptionOn (const std::string &s) const |
Check if an option is on. More... | |
const Dependencies & | getDependencies () const |
Return dependencies. More... | |
virtual bool | checkNumericalDerivatives () const |
Check if numerical derivatives should be performed. More... | |
virtual bool | checkNeedsGradients () const |
Check if the action needs gradient. More... | |
virtual void | calculateNumericalDerivatives (ActionWithValue *a=NULL) |
Perform calculation using numerical derivatives N.B. More... | |
FILE * | fopen (const char *path, const char *mode) |
Opens a file. More... | |
int | fclose (FILE *fp) |
Closes a file opened with Action::fclose(). More... | |
void | calculateFromPDB (const PDB &) |
Calculate the action given a pdb file as input. More... | |
virtual void | readAtomsFromPDB (const PDB &) |
This is overwritten in ActionAtomistic so that we can read the atoms from the pdb input file rather than taking them from the MD code. More... | |
bool | getExchangeStep () const |
Check if we are on an exchange step. More... | |
std::string | cite (const std::string &s) |
Cite a paper see PlumedMain::cite. More... | |
Static Public Member Functions | |
static void | registerKeywords (Keywords &keys) |
Public Attributes | |
PlumedMain & | plumed |
Reference to main plumed object. More... | |
Log & | log |
Reference to the log stream. More... | |
std::set< FILE * > | files |
Communicator & | comm |
Communicator & | multi_sim_comm |
const Keywords & | keywords |
Protected Member Functions | |
void | addVessel (const std::string &name, const std::string &input, const int numlab=0, const std::string thislab="") |
Add a vessel to the list of vessels. More... | |
void | addVessel (Vessel *vv) |
BridgeVessel * | addBridgingVessel (ActionWithVessel *tome) |
Add a bridging vessel to the list of vessels. More... | |
void | readVesselKeywords () |
Complete the setup of this object (this routine must be called after construction of ActionWithValue) More... | |
double | getTolerance () const |
Return the value of the tolerance. More... | |
double | getNLTolerance () const |
Return the value for the neighbor list tolerance. More... | |
unsigned | getNumberOfVessels () const |
Get the number of vessels. More... | |
Vessel * | getPntrToVessel (const unsigned &i) |
Get a pointer to the ith vessel. More... | |
void | runAllTasks () |
Calculate the values of all the vessels. More... | |
void | finishComputations () |
Finish running all the calculations. More... | |
void | resizeFunctions () |
Resize all the functions when the number of derivatives change. More... | |
void | setElementDerivative (const unsigned &, const double &) |
Set the derivative of the jth element wrt to a numbered element. More... | |
bool | calculateAllVessels () |
This loops over all the vessels calculating them and also sets all the element derivatives equal to zero. More... | |
bool | getForcesFromVessels (std::vector< double > &forcesToApply) |
Retrieve the forces from all the vessels (used in apply) More... | |
void | accumulateDerivative (const unsigned &ider, const double &df) |
This is used to accumulate the derivatives when we merge using chainRuleForElementDerivatives. More... | |
void | clearAfterTask () |
Clear tempory data that is calculated for each task. More... | |
Protected Attributes | |
bool | contributorsAreUnlocked |
The terms in the series are locked. More... | |
bool | weightHasDerivatives |
Does the weight have derivatives. More... | |
unsigned | current |
The numerical index of the task we are curently performing. More... | |
unsigned | bridgeVariable |
This is used for numerical derivatives of bridge variables. More... | |
DynamicList< unsigned > | taskList |
The list of tasks we have to perform. More... | |
Private Attributes | |
bool | read |
This is used to ensure that we have properly read the action. More... | |
bool | serial |
Do all calculations in serial. More... | |
double | tolerance |
The tolerance on the accumulators. More... | |
double | nl_tolerance |
Tolerance for quantities being put in neighbor lists. More... | |
std::vector< double > | thisval |
The value of the current element in the sum. More... | |
std::vector< bool > | thisval_wasset |
A boolean that makes sure we don't accumulate very wrong derivatives. More... | |
std::vector< double > | derivatives |
Vector of derivatives for the object. More... | |
unsigned | current_buffer_start |
The buffers we use for mpi summing DistributionFunction objects. More... | |
unsigned | current_buffer_stride |
std::vector< double > | buffer |
std::vector< Vessel * > | functions |
Pointers to the functions we are using on each value. More... | |
std::vector< double > | tmpforces |
Tempory storage for forces. More... | |
Friends | |
class | Vessel |
class | ShortcutVessel |
class | FunctionVessel |
class | BridgeVessel |
This is used to create PLMD::Action objects that are computed by calculating the same function multiple times.
This is used in PLMD::MultiColvar.
Definition at line 45 of file ActionWithVessel.h.
|
inherited |
|
inherited |
PLMD::vesselbase::ActionWithVessel::ActionWithVessel | ( | const ActionOptions & | ao | ) |
Definition at line 46 of file ActionWithVessel.cpp.
PLMD::vesselbase::ActionWithVessel::~ActionWithVessel | ( | ) |
Definition at line 69 of file ActionWithVessel.cpp.
|
inlineprotected |
This is used to accumulate the derivatives when we merge using chainRuleForElementDerivatives.
Definition at line 213 of file ActionWithVessel.h.
|
virtualinherited |
Set action to active.
Definition at line 127 of file Action.cpp.
|
protected |
Add a bridging vessel to the list of vessels.
Definition at line 85 of file ActionWithVessel.cpp.
|
inherited |
Specify that this Action depends on another one.
Definition at line 123 of file Action.cpp.
|
inline |
Add some derivative of the quantity in the sum wrt to a numbered element.
Definition at line 197 of file ActionWithVessel.h.
|
protected |
Add a vessel to the list of vessels.
Definition at line 73 of file ActionWithVessel.cpp.
|
protected |
Definition at line 79 of file ActionWithVessel.cpp.
|
pure virtualinherited |
Apply an Action.
This method is called one time per step. The set of all Actions is applied in backward order.
Implemented in PLMD::analysis::Analysis, PLMD::multicolvar::ActionVolume, PLMD::multicolvar::MultiColvarBase, PLMD::generic::WholeMolecules, PLMD::generic::DumpAtoms, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::generic::Group, PLMD::IMD, PLMD::generic::RandomExchanges, PLMD::generic::Read, PLMD::generic::Print, PLMD::generic::Include, PLMD::generic::Flush, PLMD::generic::DumpDerivatives, PLMD::generic::DumpForces, PLMD::generic::Debug, PLMD::Colvar, PLMD::generic::Time, PLMD::manyrestraints::ManyRestraintsBase, PLMD::bias::Bias, PLMD::generic::DumpProjections, PLMD::function::Function, PLMD::ActionWithVirtualAtom, and PLMD::ActionSetup.
|
inlinevirtual |
Apply forces from bridge vessel - this is rarely used - currently only in ActionVolume.
Reimplemented in PLMD::multicolvar::ActionVolume.
Definition at line 152 of file ActionWithVessel.h.
|
pure virtualinherited |
Calculate an Action.
This method is called one or more times per step. The set of all Actions is calculated in forward order.
Implemented in PLMD::bias::MetaD, PLMD::function::FuncSumHills, PLMD::analysis::Analysis, PLMD::colvar::Distance, PLMD::bias::MovingRestraint, PLMD::function::FuncPathMSD, PLMD::multicolvar::ActionVolume, PLMD::bias::External, PLMD::generic::WholeMolecules, PLMD::generic::DumpAtoms, PLMD::bias::ABMD, PLMD::colvar::Angle, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::generic::Group, PLMD::bias::BiasValue, PLMD::colvar::DRMSD, PLMD::colvar::Gyration, PLMD::IMD, PLMD::colvar::ContactMap, PLMD::function::Matheval, PLMD::generic::RandomExchanges, PLMD::colvar::PathMSDBase, PLMD::generic::Read, PLMD::function::Piecewise, PLMD::bias::LWalls, PLMD::bias::UWalls, PLMD::multicolvar::MultiColvar, PLMD::generic::Include, PLMD::generic::Print, PLMD::vatom::Center, PLMD::function::Combine, PLMD::bias::Restraint, PLMD::generic::Flush, PLMD::colvar::Energy, PLMD::function::Sort, PLMD::multicolvar::MultiColvarFunction, PLMD::vatom::Ghost, PLMD::colvar::Constant, PLMD::colvar::Torsion, PLMD::generic::DumpDerivatives, PLMD::generic::DumpForces, PLMD::vatom::COM, PLMD::generic::Debug, PLMD::colvar::Dipole, PLMD::colvar::Cell, PLMD::colvar::ColvarFake, PLMD::colvar::Volume, PLMD::colvar::Template, PLMD::generic::Time, PLMD::function::Target, PLMD::generic::DumpProjections, PLMD::colvar::RMSD, PLMD::colvar::CoordinationBase, PLMD::manyrestraints::Sphere, and PLMD::ActionSetup.
|
protected |
This loops over all the vessels calculating them and also sets all the element derivatives equal to zero.
Definition at line 221 of file ActionWithVessel.cpp.
|
inherited |
Calculate the action given a pdb file as input.
This is used to initialize things like distance from a point in CV map space given a pdb as an input file
Definition at line 205 of file Action.cpp.
|
virtualinherited |
Perform calculation using numerical derivatives N.B.
only pass an ActionWithValue to this routine if you know exactly what you are doing.
Reimplemented in PLMD::ActionAtomistic, PLMD::multicolvar::ActionVolume, PLMD::ActionWithArguments, and PLMD::multicolvar::MultiColvarFunction.
Definition at line 187 of file Action.cpp.
void PLMD::vesselbase::ActionWithVessel::chainRuleForElementDerivatives | ( | const unsigned & | iout, |
const unsigned & | ider, | ||
const double & | df, | ||
Vessel * | valout | ||
) |
Merge the derivatives.
Definition at line 240 of file ActionWithVessel.cpp.
void PLMD::vesselbase::ActionWithVessel::chainRuleForElementDerivatives | ( | const unsigned & | iout, |
const unsigned & | ider, | ||
const unsigned & | stride, | ||
const unsigned & | off, | ||
const double & | df, | ||
Vessel * | valout | ||
) |
Definition at line 246 of file ActionWithVessel.cpp.
|
inlinevirtualinherited |
Check if the action needs gradient.
Reimplemented in PLMD::bias::MetaD, and PLMD::generic::DumpProjections.
|
inlinevirtualinherited |
Check if numerical derivatives should be performed.
Reimplemented in PLMD::ActionWithValue.
|
inherited |
Check if Action was properly read.
This checks if Action::line is empty. It must be called after a final Action has been initialized
Definition at line 161 of file Action.cpp.
|
inherited |
Cite a paper see PlumedMain::cite.
Definition at line 221 of file Action.cpp.
|
protected |
Clear tempory data that is calculated for each task.
Definition at line 208 of file ActionWithVessel.cpp.
|
inherited |
Clear the dependence list for this Action.
Definition at line 153 of file Action.cpp.
|
virtual |
Reimplemented in PLMD::multicolvar::ActionVolume, PLMD::multicolvar::MultiColvarBase, and PLMD::secondarystructure::SecondaryStructureRMSD.
Definition at line 216 of file ActionWithVessel.cpp.
|
virtualinherited |
Definition at line 147 of file Action.cpp.
|
inlinevirtualinherited |
|
virtual |
Activate the jth colvar Deactivate the current task in future loops.
Reimplemented in PLMD::multicolvar::MultiColvarBase, PLMD::multicolvar::ActionVolume, and PLMD::manyrestraints::ManyRestraintsBase.
Definition at line 147 of file ActionWithVessel.cpp.
|
virtual |
Do any jobs that are required before the task list is undertaken.
Reimplemented in PLMD::multicolvar::ActionVolume.
Definition at line 165 of file ActionWithVessel.cpp.
|
inherited |
Crash calculation and print documentation.
Definition at line 195 of file Action.cpp.
|
inherited |
Exit with error code c.
Definition at line 183 of file Action.cpp.
|
inherited |
Closes a file opened with Action::fclose().
Definition at line 93 of file Action.cpp.
|
inherited |
Tell to the Action to flush open files.
Definition at line 98 of file Action.cpp.
|
protected |
Finish running all the calculations.
Definition at line 232 of file ActionWithVessel.cpp.
|
inherited |
Opens a file.
This is similar to plain fopen, but with some extra functionality.
Definition at line 83 of file Action.cpp.
|
inlineinherited |
|
virtualinherited |
Definition at line 157 of file Action.cpp.
|
inline |
Retrieve the derivative of the quantity in the sum wrt to a numbered element.
Definition at line 191 of file ActionWithVessel.h.
|
inline |
Get the value of this element.
Definition at line 177 of file ActionWithVessel.h.
|
inherited |
Check if we are on an exchange step.
Definition at line 217 of file Action.cpp.
|
protected |
Retrieve the forces from all the vessels (used in apply)
Definition at line 261 of file ActionWithVessel.cpp.
|
inlineinherited |
|
inlineinherited |
|
inlineprotected |
Return the value for the neighbor list tolerance.
Definition at line 161 of file ActionWithVessel.h.
|
pure virtual |
Get the number of derivatives for final calculated quantity.
Implemented in PLMD::multicolvar::MultiColvarBase, PLMD::multicolvar::ActionVolume, PLMD::secondarystructure::SecondaryStructureRMSD, and PLMD::manyrestraints::ManyRestraintsBase.
|
inlineprotected |
Get the number of vessels.
Definition at line 166 of file ActionWithVessel.h.
|
inlineprotected |
Get a pointer to the ith vessel.
Definition at line 171 of file ActionWithVessel.h.
|
inherited |
Return the present timestep.
Definition at line 169 of file Action.cpp.
|
inherited |
Return the present time.
Definition at line 173 of file Action.cpp.
|
inherited |
Return the timestep.
Definition at line 177 of file Action.cpp.
|
inlineprotected |
Return the value of the tolerance.
Definition at line 156 of file ActionWithVessel.h.
Vessel* PLMD::vesselbase::ActionWithVessel::getVessel | ( | const std::string & | name | ) |
Return a pointer to the field.
|
inlineinherited |
|
inlineinherited |
|
pure virtual |
Are the base quantities periodic.
Implemented in PLMD::multicolvar::Angles, PLMD::multicolvar::ActionVolume, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::multicolvar::Distances, PLMD::multicolvar::AlphaBeta, PLMD::multicolvar::CoordinationNumbers, PLMD::multicolvar::Bridge, PLMD::multicolvar::Density, and PLMD::manyrestraints::Sphere.
|
inlinevirtual |
Reimplemented in PLMD::multicolvar::MultiColvarFunction.
Definition at line 225 of file ActionWithVessel.h.
|
inlinevirtualinherited |
Reimplemented in PLMD::ActionAtomistic, and PLMD::ActionWithArguments.
|
virtual |
Reimplemented in PLMD::multicolvar::ActionVolume, PLMD::multicolvar::MultiColvarBase, and PLMD::secondarystructure::SecondaryStructureRMSD.
Definition at line 254 of file ActionWithVessel.cpp.
|
inherited |
|
inherited |
Parse one keyword as boolean flag.
Definition at line 104 of file Action.cpp.
|
inherited |
|
inherited |
|
inherited |
|
pure virtual |
Calculate one of the functions in the distribution.
Implemented in PLMD::multicolvar::MultiColvarBase, PLMD::multicolvar::ActionVolume, PLMD::secondarystructure::SecondaryStructureRMSD, and PLMD::manyrestraints::Sphere.
|
virtualinherited |
Prepare an Action for calculation This can be used by Action if they need some special preparation before calculation.
Typical case is for collective variables which would like to change their list of requested atoms. By default (if not overridden) does nothing.
Reimplemented in PLMD::analysis::Analysis, PLMD::function::FuncPathMSD, PLMD::multicolvar::MultiColvarBase, PLMD::multicolvar::ActionVolume, PLMD::secondarystructure::SecondaryStructureRMSD, PLMD::generic::Read, PLMD::generic::Print, PLMD::colvar::Energy, and PLMD::colvar::CoordinationBase.
Definition at line 191 of file Action.cpp.
|
inlinevirtualinherited |
This is overwritten in ActionAtomistic so that we can read the atoms from the pdb input file rather than taking them from the MD code.
Reimplemented in PLMD::ActionAtomistic.
|
protected |
Complete the setup of this object (this routine must be called after construction of ActionWithValue)
Definition at line 94 of file ActionWithVessel.cpp.
|
static |
Definition at line 33 of file ActionWithVessel.cpp.
|
protected |
Resize all the functions when the number of derivatives change.
Definition at line 130 of file ActionWithVessel.cpp.
|
virtual |
What are the domains of the base quantities.
Definition at line 274 of file ActionWithVessel.cpp.
|
protected |
Calculate the values of all the vessels.
Definition at line 172 of file ActionWithVessel.cpp.
|
inlinevirtualinherited |
RunFinalJobs This method is called once at the very end of the calculation.
The set of all Actions in run for the final time in forward order.
Reimplemented in PLMD::analysis::Analysis.
|
inlineprotected |
Set the derivative of the jth element wrt to a numbered element.
Definition at line 207 of file ActionWithVessel.h.
|
inline |
Set the value of the element.
Definition at line 182 of file ActionWithVessel.h.
|
virtualinherited |
Definition at line 141 of file Action.cpp.
|
inlinevirtual |
Used to make sure we are calculating everything during neighbor list update step.
Reimplemented in PLMD::multicolvar::MultiColvarFunction.
Definition at line 219 of file ActionWithVessel.h.
|
inlinevirtualinherited |
Reimplemented in PLMD::ActionAtomistic, and PLMD::ActionWithArguments.
|
inlinevirtualinherited |
Update.
This method is called one time per step. The set of all Actions is updated in forward order.
Reimplemented in PLMD::bias::MetaD, PLMD::analysis::Analysis, PLMD::generic::DumpAtoms, PLMD::generic::Read, PLMD::generic::Print, PLMD::generic::DumpDerivatives, PLMD::generic::DumpForces, and PLMD::generic::DumpProjections.
|
inherited |
Issue a warning.
Definition at line 201 of file Action.cpp.
|
friend |
Definition at line 49 of file ActionWithVessel.h.
|
friend |
Definition at line 48 of file ActionWithVessel.h.
|
friend |
Definition at line 47 of file ActionWithVessel.h.
|
friend |
Definition at line 46 of file ActionWithVessel.h.
|
protected |
This is used for numerical derivatives of bridge variables.
Definition at line 81 of file ActionWithVessel.h.
|
private |
Definition at line 68 of file ActionWithVessel.h.
|
inherited |
|
protected |
The terms in the series are locked.
Definition at line 75 of file ActionWithVessel.h.
|
protected |
The numerical index of the task we are curently performing.
Definition at line 79 of file ActionWithVessel.h.
|
private |
The buffers we use for mpi summing DistributionFunction objects.
Definition at line 66 of file ActionWithVessel.h.
|
private |
Definition at line 67 of file ActionWithVessel.h.
|
private |
Vector of derivatives for the object.
Definition at line 64 of file ActionWithVessel.h.
|
private |
Pointers to the functions we are using on each value.
Definition at line 70 of file ActionWithVessel.h.
|
inherited |
|
inherited |
|
private |
Tolerance for quantities being put in neighbor lists.
Definition at line 58 of file ActionWithVessel.h.
|
inherited |
|
private |
This is used to ensure that we have properly read the action.
Definition at line 52 of file ActionWithVessel.h.
|
private |
Do all calculations in serial.
Definition at line 54 of file ActionWithVessel.h.
|
protected |
The list of tasks we have to perform.
Definition at line 83 of file ActionWithVessel.h.
|
private |
The value of the current element in the sum.
Definition at line 60 of file ActionWithVessel.h.
|
private |
A boolean that makes sure we don't accumulate very wrong derivatives.
Definition at line 62 of file ActionWithVessel.h.
|
private |
Tempory storage for forces.
Definition at line 72 of file ActionWithVessel.h.
|
private |
The tolerance on the accumulators.
Definition at line 56 of file ActionWithVessel.h.
|
protected |
Does the weight have derivatives.
Definition at line 77 of file ActionWithVessel.h.
Hosted by GitHub
![]() |
![]() |