All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
PLMD::ReferenceConfiguration Class Referenceabstract

#include <ReferenceConfiguration.h>

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

Public Member Functions

 ReferenceConfiguration (const ReferenceConfigurationOptions &ro)
 
virtual ~ReferenceConfiguration ()
 Destructor. More...
 
std::string getName () const
 Return the name of this metric. More...
 
virtual void getAtomRequests (std::vector< AtomNumber > &, bool disable_checks=false)
 Retrieve the atoms that are required for this guy. More...
 
virtual void getArgumentRequests (std::vector< std::string > &, bool disable_checks=false)
 Retrieve the arguments that are required for this guy. More...
 
virtual void setNumberOfArguments (const unsigned &)
 Set the final number of arguments. More...
 
virtual void setNumberOfAtoms (const unsigned &)
 Set the final number of atoms. More...
 
virtual void set (const PDB &)
 Set the reference configuration using a PDB. 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, const bool &squared=false)
 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, const bool &squared)=0
 Calculate the distance from the reference configuration. More...
 
Vector getAtomDerivative (const unsigned &) const
 Return the derivative wrt to the ith atom. More...
 
double getArgumentDerivative (const unsigned &) const
 Return the derivative wrt to the ith argument. More...
 
bool getVirial (Tensor &virout) const
 Return the derivatives of the distance wrt the cell vectors. More...
 
template<class T >
bool parse (const std::string &key, T &t, bool ignore_missing=false)
 Parse something from the pdb remarks. 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 &old_norm)
 Print a pdb file containing the reference configuration. More...
 
void print (OFile &ofile, const std::string &fmt)
 
virtual double getReferenceArgument (const unsigned &i)
 Get one of the referene arguments. More...
 
virtual const std::vector
< Vector > & 
getReferencePositions ()
 These are overwritten in ReferenceArguments and ReferenceAtoms but are required here to make PLMD::distance work. More...
 
virtual const std::vector
< double > & 
getReferenceArguments ()
 
virtual const std::vector
< double > & 
getReferenceMetric ()
 
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 ()
 

Protected Member Functions

void error (const std::string &msg)
 Crash with an error. More...
 
void clearDerivatives ()
 Clear the derivatives. More...
 

Protected Attributes

std::vector< double > arg_ders
 Derivatives wrt to the arguments. More...
 
bool virialWasSet
 The virial contribution has to be stored. More...
 
Tensor virial
 
std::vector< Vectoratom_ders
 Derivatives wrt to the atoms. More...
 

Private Attributes

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

Friends

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

Constructor & Destructor Documentation

PLMD::ReferenceConfiguration::ReferenceConfiguration ( const ReferenceConfigurationOptions ro)
PLMD::ReferenceConfiguration::~ReferenceConfiguration ( )
virtual

Destructor.

Member Function Documentation

virtual double PLMD::ReferenceConfiguration::calc ( const std::vector< Vector > &  pos,
const Pbc pbc,
const std::vector< Value * > &  vals,
const std::vector< double > &  args,
const bool &  squared 
)
pure virtual

Calculate the distance from the reference configuration.

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

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

Calculate the distance from the reference configuration.

void PLMD::ReferenceConfiguration::checkRead ( )

Check that all the remarks in the pdb have been read in.

void PLMD::ReferenceConfiguration::clearDerivatives ( )
protected

Clear the derivatives.

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

Copy derivatives from one frame to this frame.

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

Crash with an error.

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

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

Reimplemented in PLMD::ReferenceAtoms.

double PLMD::ReferenceConfiguration::getArgumentDerivative ( const unsigned &  ider) const
inline

Return the derivative wrt to the ith argument.

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

Reimplemented in PLMD::ReferenceArguments.

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.

Vector PLMD::ReferenceConfiguration::getAtomDerivative ( const unsigned &  ider) const
inline

Return the derivative wrt to the ith atom.

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.

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

Return the name of this metric.

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

Get one of the referene arguments.

Reimplemented in PLMD::ReferenceArguments.

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

Reimplemented in PLMD::ReferenceArguments.

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

Reimplemented in PLMD::ReferenceArguments.

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

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

Reimplemented in PLMD::ReferenceAtoms.

bool PLMD::ReferenceConfiguration::getVirial ( Tensor virout) const

Return the derivatives of the distance wrt the cell vectors.

This returns false for everything other than DRMSD as these sort of calculations have to be done separately when you use RMSD

double PLMD::ReferenceConfiguration::getWeight ( ) const
inline

Return the weight for this frame.

template<class T >
bool PLMD::ReferenceConfiguration::parse ( const std::string &  key,
T &  t,
bool  ignore_missing = false 
)

Parse something from the pdb remarks.

void PLMD::ReferenceConfiguration::parseFlag ( const std::string &  key,
bool &  t 
)

Parse a flag.

template<class T >
bool PLMD::ReferenceConfiguration::parseVector ( const std::string &  key,
std::vector< T > &  t,
bool  ignore_missing = false 
)

Parse vector from the pdb remarks.

void PLMD::ReferenceConfiguration::print ( OFile ofile,
const double &  time,
const double &  weight,
const double &  old_norm 
)

Print a pdb file containing the reference configuration.

void PLMD::ReferenceConfiguration::print ( OFile ofile,
const std::string &  fmt 
)
virtual void PLMD::ReferenceConfiguration::read ( const PDB )
pure virtual
void PLMD::ReferenceConfiguration::set ( const PDB pdb)
virtual

Set the reference configuration using a PDB.

void PLMD::ReferenceConfiguration::setNamesAndAtomNumbers ( const std::vector< AtomNumber > &  numbers,
const std::vector< std::string > &  arg 
)

Set the atom numbers and the argument names.

void PLMD::ReferenceConfiguration::setNumberOfArguments ( const unsigned &  n)
virtual

Set the final number of arguments.

void PLMD::ReferenceConfiguration::setNumberOfAtoms ( const unsigned &  n)
virtual

Set the final number of atoms.

void PLMD::ReferenceConfiguration::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 )

void PLMD::ReferenceConfiguration::setWeight ( const double &  ww)
inline

Set the weight for this frame.

Friends And Related Function Documentation

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

Member Data Documentation

std::vector<double> PLMD::ReferenceConfiguration::arg_ders
protected

Derivatives wrt to the arguments.

std::vector<Vector> PLMD::ReferenceConfiguration::atom_ders
protected

Derivatives wrt to the atoms.

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

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

std::vector<double> PLMD::ReferenceConfiguration::fake_metric
private
std::vector<double> PLMD::ReferenceConfiguration::fake_refargs
private
std::vector<Vector> PLMD::ReferenceConfiguration::fake_refatoms
private

These are use by the distance function above.

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

A vector containing all the remarks from the pdb input.

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

The name of this particular config.

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

This is used to store the values of arguments.

Tensor PLMD::ReferenceConfiguration::virial
protected
bool PLMD::ReferenceConfiguration::virialWasSet
protected

The virial contribution has to be stored.

double PLMD::ReferenceConfiguration::weight
private

A weight assigned to this particular frame.


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