Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members
PLMD::ReferenceConfiguration Class Referenceabstract

Abstract base class for calculating the distance from a reference configuration. More...

#include <ReferenceConfiguration.h>

Inheritance diagram for PLMD::ReferenceConfiguration:
Inheritance graph
[legend]

Public Member Functions

 ReferenceConfiguration (const ReferenceConfigurationOptions &ro)
 
virtual ~ReferenceConfiguration ()
 Destructor. 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...
 
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...
 
void copyDerivatives (const ReferenceConfiguration *)
 Parse something from the pdb remarks Copy derivatives from one frame to this frame. More...
 
void displaceReferenceConfiguration (const double &weight, Direction &dir)
 Move the reference configuration by an ammount specified using a Direction. More...
 
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. More...
 
virtual const std::vector< AtomNumber > & getAbsoluteIndexes ()
 These are overwritten in ReferenceArguments and ReferenceAtoms to make frame copying work. More...
 
virtual const std::vector< std::string > & getArgumentNames ()
 
virtual void getArgumentRequests (std::vector< std::string > &, bool disable_checks=false)
 Retrieve the arguments that are required for this guy. More...
 
virtual void getAtomRequests (std::vector< AtomNumber > &, bool disable_checks=false)
 Retrieve the atoms that are required for this guy. More...
 
std::string getName () const
 Return the name of this metric. More...
 
virtual unsigned getNumberOfReferenceArguments () const
 
virtual unsigned getNumberOfReferencePositions () const
 
virtual double getReferenceArgument (const unsigned &i) const
 Get one of the referene arguments. More...
 
virtual const std::vector< double > & getReferenceArguments () const
 
virtual const std::vector< double > & getReferenceMetric ()
 
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 bool pcaIsEnabledForThisReference ()
 Stuff for pca. More...
 
double projectDisplacementOnVector (const Direction &mydir, const std::vector< Value *> &vals, const std::vector< double > &arg, ReferenceValuePack &mypack) const
 
virtual void read (const PDB &)=0
 Do all local business for setting the configuration. More...
 
virtual void setupPCAStorage (ReferenceValuePack &mypack)
 Stuff to setup pca. More...
 

Protected Member Functions

void error (const std::string &msg)
 Crash with an error. More...
 

Private Attributes

std::vector< std::string > fake_arg_names
 
std::vector< AtomNumberfake_atom_numbers
 These are used to do fake things when we copy frames. More...
 
std::vector< double > fake_metric
 
std::vector< double > fake_refargs
 
std::vector< Vectorfake_refatoms
 These are use by the distance function above. More...
 
std::vector< std::string > line
 A vector containing all the remarks from the pdb input. More...
 
std::string name
 The name of this particular config. More...
 

Friends

double distance (const Pbc &pbc, const std::vector< Value *> &vals, ReferenceConfiguration *, ReferenceConfiguration *, const bool &squared)
 
class SingleDomainRMSD
 

Detailed Description

Abstract base class for calculating the distance from a reference configuration.

A reference configuration can either have a particular set of atoms in a particular given configuration or it can be that a particular set of colvars have a particular set of values. It could also be a combination of both. To allow all the posible permutations and in order make it easy to add new ways of calculating the distance we have implemented this using polymorphism and multiple inheritance. The following provides information on how to implement a new method for calculating the distance between a pair of configurations

Constructor & Destructor Documentation

◆ ReferenceConfiguration()

PLMD::ReferenceConfiguration::ReferenceConfiguration ( const ReferenceConfigurationOptions ro)
explicit

◆ ~ReferenceConfiguration()

PLMD::ReferenceConfiguration::~ReferenceConfiguration ( )
virtual

Destructor.

Member Function Documentation

◆ calc()

virtual double PLMD::ReferenceConfiguration::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
pure virtual

Calculate the distance from the reference configuration.

Implemented in PLMD::MultiDomainRMSD, PLMD::ArgumentOnlyDistance, PLMD::SingleDomainRMSD, PLMD::Direction, and PLMD::FakeFrame.

◆ 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

Calculate the distance from the reference configuration.

◆ copyDerivatives()

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

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

◆ displaceReferenceConfiguration()

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

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

◆ error()

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

Crash with an error.

◆ 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

Extract a Direction giving you the displacement from some position.

◆ getAbsoluteIndexes()

const std::vector< AtomNumber > & PLMD::ReferenceConfiguration::getAbsoluteIndexes ( )
inlinevirtual

These are overwritten in ReferenceArguments and ReferenceAtoms to make frame copying work.

Reimplemented in PLMD::ReferenceAtoms.

◆ getArgumentNames()

const std::vector< std::string > & PLMD::ReferenceConfiguration::getArgumentNames ( )
inlinevirtual

Reimplemented in PLMD::ReferenceArguments.

◆ getArgumentRequests()

virtual void PLMD::ReferenceConfiguration::getArgumentRequests ( std::vector< std::string > &  ,
bool  disable_checks = false 
)
inlinevirtual

Retrieve the arguments that are required for this guy.

Reimplemented in PLMD::ReferenceArguments.

◆ getAtomRequests()

virtual void PLMD::ReferenceConfiguration::getAtomRequests ( std::vector< AtomNumber > &  ,
bool  disable_checks = false 
)
inlinevirtual

Retrieve the atoms that are required for this guy.

Reimplemented in PLMD::ReferenceAtoms.

◆ getName()

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

Return the name of this metric.

◆ getNumberOfReferenceArguments()

unsigned PLMD::ReferenceConfiguration::getNumberOfReferenceArguments ( ) const
inlinevirtual

Reimplemented in PLMD::ReferenceArguments.

◆ getNumberOfReferencePositions()

unsigned PLMD::ReferenceConfiguration::getNumberOfReferencePositions ( ) const
inlinevirtual

Reimplemented in PLMD::ReferenceAtoms.

◆ getReferenceArgument()

virtual double PLMD::ReferenceConfiguration::getReferenceArgument ( const unsigned &  i) const
inlinevirtual

Get one of the referene arguments.

Reimplemented in PLMD::ReferenceArguments.

◆ getReferenceArguments()

const std::vector< double > & PLMD::ReferenceConfiguration::getReferenceArguments ( ) const
inlinevirtual

Reimplemented in PLMD::ReferenceArguments.

◆ getReferenceMetric()

const std::vector< double > & PLMD::ReferenceConfiguration::getReferenceMetric ( )
inlinevirtual

Reimplemented in PLMD::ReferenceArguments.

◆ getReferencePositions()

const std::vector< Vector > & PLMD::ReferenceConfiguration::getReferencePositions ( ) const
inlinevirtual

These are overwritten in ReferenceArguments and ReferenceAtoms but are required here to make PLMD::distance work.

Reimplemented in PLMD::ReferenceAtoms.

◆ pcaIsEnabledForThisReference()

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

◆ projectDisplacementOnVector()

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

◆ read()

virtual void PLMD::ReferenceConfiguration::read ( const PDB )
pure virtual

◆ setupPCAStorage()

virtual void PLMD::ReferenceConfiguration::setupPCAStorage ( ReferenceValuePack mypack)
inlinevirtual

Friends And Related Function Documentation

◆ distance

double distance ( const Pbc pbc,
const std::vector< Value *> &  vals,
ReferenceConfiguration ref1,
ReferenceConfiguration ref2,
const bool &  squared 
)
friend

◆ SingleDomainRMSD

friend class SingleDomainRMSD
friend

Member Data Documentation

◆ fake_arg_names

std::vector<std::string> PLMD::ReferenceConfiguration::fake_arg_names
private

◆ fake_atom_numbers

std::vector<AtomNumber> PLMD::ReferenceConfiguration::fake_atom_numbers
private

These are used to do fake things when we copy frames.

◆ fake_metric

std::vector<double> PLMD::ReferenceConfiguration::fake_metric
private

◆ fake_refargs

std::vector<double> PLMD::ReferenceConfiguration::fake_refargs
private

◆ fake_refatoms

std::vector<Vector> PLMD::ReferenceConfiguration::fake_refatoms
private

These are use by the distance function above.

◆ line

std::vector<std::string> PLMD::ReferenceConfiguration::line
private

A vector containing all the remarks from the pdb input.

◆ name

std::string PLMD::ReferenceConfiguration::name
private

The name of this particular config.


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