Loading...
Searching...
No Matches
PLMD::Direction Class Reference

#include <Direction.h>

Inheritance diagram for PLMD::Direction:

Public Member Functions

 Direction (const ReferenceConfigurationOptions &ro)
void addDirection (const double &weight, const Direction &dir)
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 override
 Calculate the distance from the reference configuration.
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.
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.
void copyDerivatives (const ReferenceConfiguration *)
 Parse something from the pdb remarks Copy derivatives from one frame to this frame.
void displaceReferenceArguments (const double &weight, const std::vector< double > &displace)
 Displace the positions of the reference atoms.
void displaceReferenceAtoms (const double &weight, const std::vector< Vector > &dir)
 Displace the positions of the reference atoms a bit.
void displaceReferenceConfiguration (const double &weight, Direction &dir)
 Move the reference configuration by an amount specified using a Direction.
void extractArgumentDisplacement (const std::vector< Value * > &vals, const std::vector< double > &arg, std::vector< double > &dirout) const override
 This allows us to extract the reference positions, which are the direction in this case.
void extractAtomicDisplacement (const std::vector< Vector > &pos, std::vector< Vector > &dirout) const override
 Extract a displacement from a position in space.
void extractDisplacementVector (const std::vector< Vector > &pos, const std::vector< Value * > &vals, const std::vector< double > &arg, const bool &nflag, Direction &mydir) const
 Extract a Direction giving you the displacement from some position.
const std::vector< AtomNumber > & getAbsoluteIndexes () override
 Return all atom indexes.
const std::vector< double > & getAlign () const
 Get the vector of alignment weights.
const std::vector< std::string > & getArgumentNames () override
 Return names.
void getArgumentRequests (std::vector< std::string > &, bool disable_checks=false) override
 Get the arguments required.
unsigned getAtomIndex (const unsigned &) const
 This allows us to use a single pos array with RMSD objects using different atom indexes.
void getAtomRequests (std::vector< AtomNumber > &, bool disable_checks=false) override
 Get the atoms required (additional checks are required when we have multiple domains).
const std::vector< double > & getDisplace () const
 Get the vector of displacement weights.
std::string getName () const
 Return the name of this metric.
unsigned getNumberOfAtoms () const
 This returns how many atoms there should be.
unsigned getNumberOfReferenceArguments () const override
 Get the number of reference arguments.
unsigned getNumberOfReferencePositions () const override
 This returns the number of reference atom positions.
double getReferenceArgument (const unsigned &i) const override
 Get the value of the ith reference argument.
const std::vector< double > & getReferenceArguments () const override
 Return all the reference arguments.
const std::vector< double > & getReferenceMetric () override
const std::vector< Vector > & getReferencePositions () const override
 Get the reference positions.
void moveReferenceArguments (const std::vector< double > &arg_vals)
 Set the positions of the reference arguments.
virtual bool pcaIsEnabledForThisReference ()
 Stuff for pca.
double projectArgDisplacementOnVector (const std::vector< double > &eigv, const std::vector< Value * > &vals, const std::vector< double > &arg, ReferenceValuePack &mypack) const
 Project the displacement of the arguments on a vector.
virtual double projectAtomicDisplacementOnVector (const bool &normalized, const std::vector< Vector > &eigv, ReferenceValuePack &mypack) const
 Project the displacement on a vector.
double projectDisplacementOnVector (const Direction &mydir, const std::vector< Value * > &vals, const std::vector< double > &arg, ReferenceValuePack &mypack) const
void read (const PDB &) override
 Do all local business for setting the configuration.
void setDirection (const std::vector< Vector > &conf, const std::vector< double > &args)
void setReferenceArguments (const std::vector< double > &arg_vals, const std::vector< double > &sigma)
 Set the positions of the reference arguments.
void setReferenceAtoms (const std::vector< Vector > &conf, const std::vector< double > &align_in, const std::vector< double > &displace_in) override
 Set the positions of the reference atoms.
virtual void setupPCAStorage (ReferenceValuePack &mypack)
 Stuff to setup pca.
void zeroDirection ()

Public Attributes

bool normalized

Protected Member Functions

void error (const std::string &msg)
 Crash with an error.
Vector getReferencePosition (const unsigned &iatom) const
 Get the position of the ith atom.
bool parseAtomList (const std::string &, std::vector< unsigned > &)
 Read a list of atoms from the pdb input file.
void readArgumentsFromPDB (const PDB &pdb)
 Read in the atoms from the pdb file.
void readAtomsFromPDB (const PDB &, const bool allowblocks=false)
 Read in the atoms from the pdb file.
void setAtomIndices (const std::vector< AtomNumber > &atomnumbers)
 Add atom indices to list.
void setReferenceArguments ()
 Set the values of the colvars based on their current instantanous values (used in Analysis).
void singleDomainRequests (std::vector< AtomNumber > &, bool disable_checks)
 Add derivatives to iatom th atom in list.

Protected Attributes

bool hasmetric
 Are we calculating a Malanobius distance.
bool hasweights
 Are we reading weights from input.

Private Attributes

std::vector< double > align
 The atoms to be used to align the instantaneous atomic positions to the reference configuration.
std::vector< unsigned > arg_der_index
 The indices for setting derivatives.
std::vector< std::string > arg_names
 The names of the arguments.
std::vector< unsigned > atom_der_index
 The indeces for setting derivatives.
bool checks_were_disabled
 This flag tells us if the user has disabled checking of the input in order to do fancy paths with weird inputs.
std::vector< double > displace
 The atoms to be used to calculate the distance the atoms have moved from the reference configuration.
std::vector< AtomNumberindices
 The indices of the atoms in the pdb file.
Matrix< double > metric
 The N X N matrix we are using to calculate our Malanobius distance.
std::vector< double > reference_args
 The values of the colvars in the reference configuration.
std::vector< Vectorreference_atoms
 The positions of the atoms in the reference configuration.
std::vector< double > sqrtweight
std::vector< double > trig_metric
std::vector< double > weights
 The weights for normed euclidean distance.

Constructor & Destructor Documentation

◆ Direction()

PLMD::Direction::Direction ( const ReferenceConfigurationOptions & ro)
explicit

Member Function Documentation

◆ addDirection()

void PLMD::Direction::addDirection ( const double & weight,
const Direction & dir )

◆ calc()

double PLMD::Direction::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
overridevirtual

Calculate the distance from the reference configuration.

Implements PLMD::ReferenceConfiguration.

◆ calculate()

double PLMD::ReferenceConfiguration::calculate ( const std::vector< Vector > & pos,
const Pbc & pbc,
const std::vector< Value * > & vals,
ReferenceValuePack & myder,
const bool & squared = false ) const
inherited

Calculate the distance from the reference configuration.

◆ calculateArgumentDistance()

double PLMD::ReferenceArguments::calculateArgumentDistance ( const std::vector< Value * > & vals,
const std::vector< double > & arg,
ReferenceValuePack & myder,
const bool & squared ) const
virtualinherited

Calculate the euclidean/malanobius distance the atoms have moved from the reference configuration in CV space.

Reimplemented in PLMD::DotProductDistance.

◆ copyDerivatives()

void PLMD::ReferenceConfiguration::copyDerivatives ( const ReferenceConfiguration * )
inherited

Parse something from the pdb remarks Copy derivatives from one frame to this frame.

◆ displaceReferenceArguments()

void PLMD::ReferenceArguments::displaceReferenceArguments ( const double & weight,
const std::vector< double > & displace )
inherited

Displace the positions of the reference atoms.

◆ displaceReferenceAtoms()

void PLMD::ReferenceAtoms::displaceReferenceAtoms ( const double & weight,
const std::vector< Vector > & dir )
inherited

Displace the positions of the reference atoms a bit.

◆ displaceReferenceConfiguration()

void PLMD::ReferenceConfiguration::displaceReferenceConfiguration ( const double & weight,
Direction & dir )
inherited

Move the reference configuration by an amount specified using a Direction.

◆ error()

void PLMD::ReferenceConfiguration::error ( const std::string & msg)
protectedinherited

Crash with an error.

◆ extractArgumentDisplacement()

void PLMD::Direction::extractArgumentDisplacement ( const std::vector< Value * > & vals,
const std::vector< double > & arg,
std::vector< double > & dirout ) const
overridevirtual

This allows us to extract the reference positions, which are the direction in this case.

Reimplemented from PLMD::ReferenceArguments.

◆ extractAtomicDisplacement()

void PLMD::Direction::extractAtomicDisplacement ( const std::vector< Vector > & pos,
std::vector< Vector > & direction ) const
overridevirtual

Extract a displacement from a position in space.

Reimplemented from PLMD::ReferenceAtoms.

◆ extractDisplacementVector()

void PLMD::ReferenceConfiguration::extractDisplacementVector ( const std::vector< Vector > & pos,
const std::vector< Value * > & vals,
const std::vector< double > & arg,
const bool & nflag,
Direction & mydir ) const
inherited

Extract a Direction giving you the displacement from some position.

◆ getAbsoluteIndexes()

const std::vector< AtomNumber > & PLMD::ReferenceAtoms::getAbsoluteIndexes ( )
inlineoverridevirtualinherited

Return all atom indexes.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getAlign()

const std::vector< double > & PLMD::ReferenceAtoms::getAlign ( ) const
inlineinherited

Get the vector of alignment weights.

◆ getArgumentNames()

const std::vector< std::string > & PLMD::ReferenceArguments::getArgumentNames ( )
inlineoverridevirtualinherited

Return names.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getArgumentRequests()

void PLMD::ReferenceArguments::getArgumentRequests ( std::vector< std::string > & argout,
bool disable_checks = false )
overridevirtualinherited

Get the arguments required.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getAtomIndex()

unsigned PLMD::ReferenceAtoms::getAtomIndex ( const unsigned & iatom) const
inlineinherited

This allows us to use a single pos array with RMSD objects using different atom indexes.

◆ getAtomRequests()

void PLMD::ReferenceAtoms::getAtomRequests ( std::vector< AtomNumber > & numbers,
bool disable_checks = false )
overridevirtualinherited

Get the atoms required (additional checks are required when we have multiple domains).

Reimplemented from PLMD::ReferenceConfiguration.

◆ getDisplace()

const std::vector< double > & PLMD::ReferenceAtoms::getDisplace ( ) const
inlineinherited

Get the vector of displacement weights.

◆ getName()

std::string PLMD::ReferenceConfiguration::getName ( ) const
inherited

Return the name of this metric.

◆ getNumberOfAtoms()

unsigned PLMD::ReferenceAtoms::getNumberOfAtoms ( ) const
inlineinherited

This returns how many atoms there should be.

◆ getNumberOfReferenceArguments()

unsigned PLMD::ReferenceArguments::getNumberOfReferenceArguments ( ) const
inlineoverridevirtualinherited

Get the number of reference arguments.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getNumberOfReferencePositions()

unsigned PLMD::ReferenceAtoms::getNumberOfReferencePositions ( ) const
inlineoverridevirtualinherited

This returns the number of reference atom positions.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getReferenceArgument()

double PLMD::ReferenceArguments::getReferenceArgument ( const unsigned & i) const
inlineoverridevirtualinherited

Get the value of the ith reference argument.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getReferenceArguments()

const std::vector< double > & PLMD::ReferenceArguments::getReferenceArguments ( ) const
inlineoverridevirtualinherited

Return all the reference arguments.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getReferenceMetric()

const std::vector< double > & PLMD::ReferenceArguments::getReferenceMetric ( )
overridevirtualinherited

Reimplemented from PLMD::ReferenceConfiguration.

◆ getReferencePosition()

Vector PLMD::ReferenceAtoms::getReferencePosition ( const unsigned & iatom) const
inlineprotectedinherited

Get the position of the ith atom.

◆ getReferencePositions()

const std::vector< Vector > & PLMD::ReferenceAtoms::getReferencePositions ( ) const
inlineoverridevirtualinherited

Get the reference positions.

Reimplemented from PLMD::ReferenceConfiguration.

◆ moveReferenceArguments()

void PLMD::ReferenceArguments::moveReferenceArguments ( const std::vector< double > & arg_vals)
inherited

Set the positions of the reference arguments.

◆ parseAtomList()

bool PLMD::ReferenceAtoms::parseAtomList ( const std::string & ,
std::vector< unsigned > &  )
protectedinherited

Read a list of atoms from the pdb input file.

◆ pcaIsEnabledForThisReference()

virtual bool PLMD::ReferenceConfiguration::pcaIsEnabledForThisReference ( )
inlinevirtualinherited

◆ projectArgDisplacementOnVector()

double PLMD::ReferenceArguments::projectArgDisplacementOnVector ( const std::vector< double > & eigv,
const std::vector< Value * > & vals,
const std::vector< double > & arg,
ReferenceValuePack & mypack ) const
inherited

Project the displacement of the arguments on a vector.

◆ projectAtomicDisplacementOnVector()

virtual double PLMD::ReferenceAtoms::projectAtomicDisplacementOnVector ( const bool & normalized,
const std::vector< Vector > & eigv,
ReferenceValuePack & mypack ) const
inlinevirtualinherited

Project the displacement on a vector.

Reimplemented in PLMD::MultiDomainRMSD, PLMD::OptimalRMSD, and PLMD::SimpleRMSD.

◆ projectDisplacementOnVector()

double PLMD::ReferenceConfiguration::projectDisplacementOnVector ( const Direction & mydir,
const std::vector< Value * > & vals,
const std::vector< double > & arg,
ReferenceValuePack & mypack ) const
inherited

◆ read()

void PLMD::Direction::read ( const PDB & )
overridevirtual

Do all local business for setting the configuration.

Implements PLMD::ReferenceConfiguration.

◆ readArgumentsFromPDB()

void PLMD::ReferenceArguments::readArgumentsFromPDB ( const PDB & pdb)
protectedinherited

Read in the atoms from the pdb file.

◆ readAtomsFromPDB()

void PLMD::ReferenceAtoms::readAtomsFromPDB ( const PDB & pdb,
const bool allowblocks = false )
protectedinherited

Read in the atoms from the pdb file.

◆ setAtomIndices()

void PLMD::ReferenceAtoms::setAtomIndices ( const std::vector< AtomNumber > & atomnumbers)
protectedinherited

Add atom indices to list.

◆ setDirection()

void PLMD::Direction::setDirection ( const std::vector< Vector > & conf,
const std::vector< double > & args )

◆ setReferenceArguments() [1/2]

void PLMD::ReferenceArguments::setReferenceArguments ( )
protectedinherited

Set the values of the colvars based on their current instantanous values (used in Analysis).

◆ setReferenceArguments() [2/2]

void PLMD::ReferenceArguments::setReferenceArguments ( const std::vector< double > & arg_vals,
const std::vector< double > & sigma )
inherited

Set the positions of the reference arguments.

◆ setReferenceAtoms()

void PLMD::Direction::setReferenceAtoms ( const std::vector< Vector > & conf,
const std::vector< double > & align_in,
const std::vector< double > & displace_in )
inlineoverridevirtual

Set the positions of the reference atoms.

Implements PLMD::ReferenceAtoms.

◆ setupPCAStorage()

virtual void PLMD::ReferenceConfiguration::setupPCAStorage ( ReferenceValuePack & mypack)
inlinevirtualinherited

◆ singleDomainRequests()

void PLMD::ReferenceAtoms::singleDomainRequests ( std::vector< AtomNumber > & numbers,
bool disable_checks )
protectedinherited

Add derivatives to iatom th atom in list.

Get the atomic derivatives on the ith atom in the list Add derivatives to the viral This does the checks that are always required

◆ zeroDirection()

void PLMD::Direction::zeroDirection ( )

Member Data Documentation

◆ align

std::vector<double> PLMD::ReferenceAtoms::align
privateinherited

The atoms to be used to align the instantaneous atomic positions to the reference configuration.

◆ arg_der_index

std::vector<unsigned> PLMD::ReferenceArguments::arg_der_index
privateinherited

The indices for setting derivatives.

◆ arg_names

std::vector<std::string> PLMD::ReferenceArguments::arg_names
privateinherited

The names of the arguments.

◆ atom_der_index

std::vector<unsigned> PLMD::ReferenceAtoms::atom_der_index
privateinherited

The indeces for setting derivatives.

◆ checks_were_disabled

bool PLMD::ReferenceAtoms::checks_were_disabled
privateinherited

This flag tells us if the user has disabled checking of the input in order to do fancy paths with weird inputs.

◆ displace

std::vector<double> PLMD::ReferenceAtoms::displace
privateinherited

The atoms to be used to calculate the distance the atoms have moved from the reference configuration.

◆ hasmetric

bool PLMD::ReferenceArguments::hasmetric
protectedinherited

Are we calculating a Malanobius distance.

◆ hasweights

bool PLMD::ReferenceArguments::hasweights
protectedinherited

Are we reading weights from input.

◆ indices

std::vector<AtomNumber> PLMD::ReferenceAtoms::indices
privateinherited

The indices of the atoms in the pdb file.

◆ metric

Matrix<double> PLMD::ReferenceArguments::metric
privateinherited

The N X N matrix we are using to calculate our Malanobius distance.

◆ normalized

bool PLMD::Direction::normalized

◆ reference_args

std::vector<double> PLMD::ReferenceArguments::reference_args
privateinherited

The values of the colvars in the reference configuration.

◆ reference_atoms

std::vector<Vector> PLMD::ReferenceAtoms::reference_atoms
privateinherited

The positions of the atoms in the reference configuration.

◆ sqrtweight

std::vector<double> PLMD::ReferenceArguments::sqrtweight
privateinherited

◆ trig_metric

std::vector<double> PLMD::ReferenceArguments::trig_metric
privateinherited

◆ weights

std::vector<double> PLMD::ReferenceArguments::weights
privateinherited

The weights for normed euclidean distance.


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