|
| ReferenceArguments (const ReferenceConfigurationOptions &ro) |
|
unsigned | getNumberOfReferenceArguments () const |
| Get the number of reference arguments. More...
|
|
void | getArgumentRequests (std::vector< std::string > &, bool disable_checks=false) |
| Get the arguments required. More...
|
|
void | setArgumentNames (const std::vector< std::string > &arg_vals) |
| Set the names of the arguments. More...
|
|
void | setReferenceArguments (const std::vector< double > &arg_vals, const std::vector< double > &sigma) |
| Set the positions of the refernce arguments. More...
|
|
double | getReferenceArgument (const unsigned &i) const |
| Get the value of the ith reference argument. More...
|
|
void | printArguments (OFile &ofile, const std::string &fmt) const |
| Print the arguments out. More...
|
|
const std::vector< double > & | getReferenceArguments () |
| Return all the reference arguments. More...
|
|
const std::vector< double > & | getReferenceMetric () |
|
const std::vector< std::string > & | getArgumentNames () |
| Return names. More...
|
|
virtual double | calculateArgumentDistance (const std::vector< Value *> &vals, const std::vector< double > &arg, ReferenceValuePack &myder, const bool &squared) const |
| Calculate the euclidean/malanobius distance the atoms have moved from the reference configuration in CV space. More...
|
|
std::string | getName () const |
| Return the name of this metric. More...
|
|
virtual unsigned | getNumberOfReferencePositions () const |
|
virtual void | getAtomRequests (std::vector< AtomNumber > &, bool disable_checks=false) |
| Retrieve the atoms that are required for this guy. More...
|
|
virtual void | set (const PDB &) |
| Set the final number of arguments. More...
|
|
virtual void | read (const PDB &)=0 |
| Do all local business for setting the configuration. More...
|
|
void | setWeight (const double &ww) |
| Set the weight for this frame. More...
|
|
double | getWeight () const |
| Return the weight for this frame. More...
|
|
double | calculate (const std::vector< Vector > &pos, const Pbc &pbc, const std::vector< Value *> &vals, ReferenceValuePack &myder, const bool &squared=false) const |
| Calculate the distance from the reference configuration. More...
|
|
virtual double | calc (const std::vector< Vector > &pos, const Pbc &pbc, const std::vector< Value *> &vals, const std::vector< double > &args, ReferenceValuePack &myder, const bool &squared) const =0 |
| Calculate the distance from the reference configuration. More...
|
|
template<class T > |
bool | parse (const std::string &key, T &t, bool ignore_missing=false) |
| Return the derivatives of the distance wrt the cell vectors. More...
|
|
template<class T > |
bool | parseVector (const std::string &key, std::vector< T > &t, bool ignore_missing=false) |
| Parse vector from the pdb remarks. More...
|
|
void | parseFlag (const std::string &key, bool &t) |
| Parse a flag. More...
|
|
void | checkRead () |
| Check that all the remarks in the pdb have been read in. More...
|
|
void | copyDerivatives (const ReferenceConfiguration *) |
| Copy derivatives from one frame to this frame. More...
|
|
void | setNamesAndAtomNumbers (const std::vector< AtomNumber > &numbers, const std::vector< std::string > &arg) |
| Set the atom numbers and the argument names. More...
|
|
void | setReferenceConfig (const std::vector< Vector > &pos, const std::vector< double > &arg, const std::vector< double > &metric) |
| Set the reference structure (perhaps should also pass the pbc and align and displace ) More...
|
|
void | print (OFile &ofile, const double &time, const double &weight, const double &lunits, const double &old_norm) |
| Print a pdb file containing the reference configuration. More...
|
|
void | print (OFile &ofile, const std::string &fmt, const double &lunits) |
|
virtual const std::vector< Vector > & | getReferencePositions () const |
| These are overwritten in ReferenceArguments and ReferenceAtoms but are required here to make PLMD::distance work. More...
|
|
virtual const std::vector< AtomNumber > & | getAbsoluteIndexes () |
| These are overwritten in ReferenceArguments and ReferenceAtoms to make frame copying work. More...
|
|
virtual bool | pcaIsEnabledForThisReference () |
| Stuff for pca. More...
|
|
virtual double | projectAtomicDisplacementOnVector (const unsigned &i, const Matrix< Vector > &eigv, const std::vector< Vector > &pos, ReferenceValuePack &mypack) const |
|
bool | isDirection () const |
| Stuff for sanity checks on distance. More...
|
|
virtual void | setupPCAStorage (ReferenceValuePack &mypack) |
| Stuff to setup pca. More...
|
|
In many applications (e.g.
paths, fields, property maps) it is necessary to calculate the distance between two configurations. These distances can be calculated in a variety of different ways. For instance, one can assert that the distance between the two configuration is the distance one would have to move all the atoms to transform configuration 1 into configuration
- Alternatively, one could calculate the values of a large set of collective coordinates in the two configurations and then calculate the Euclidean distances between these two points in the resulting high-dimensional vector space. Lastly, one can combine these two forms of distance calculation to calculate a hybrid distance. Plumed allows one to use all these forms of distance calculations and also to implement new forms of distance. You should inherit from this class if your distance involves reference colvar values. This class and PLMD::ReferenceAtoms mirror the functionalities in PLMD::ActionWithArguments and PLMD::ActionAtomistic respectively but for distances.