PLMD::OptimalRMSD Class Reference
Inheritance diagram for PLMD::OptimalRMSD:
[legend]

Public Member Functions

OptimalRMSD (const ReferenceConfigurationOptions &ro)

double calc (const std::vector< Vector > &pos, const Pbc &pbc, const std::vector< Value * > &vals, const std::vector< double > &arg, ReferenceValuePack &myder, const bool &squared) const override
Calculate. More...

double calc (const std::vector< Vector > &pos, const Pbc &pbc, ReferenceValuePack &myder, const bool &squared) const override
Calculate the distance using the input position. More...

double calc (const std::vector< Vector > &pos, ReferenceValuePack &myder, const bool &squared) const override

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...

double calculate (const std::vector< Vector > &pos, const Pbc &pbc, ReferenceValuePack &myder, const bool &squared) const

double calculate (const std::vector< Vector > &pos, ReferenceValuePack &myder, const bool &squared) const

void copyDerivatives (const ReferenceConfiguration *)
Parse something from the pdb remarks Copy derivatives from one frame to this frame. More...

void displaceReferenceAtoms (const double &weight, const std::vector< Vector > &dir)
Displace the positions of the reference atoms a bit. More...

void displaceReferenceConfiguration (const double &weight, Direction &dir)
Move the reference configuration by an amount specified using a Direction. More...

void extractAtomicDisplacement (const std::vector< Vector > &pos, std::vector< Vector > &direction) const override
Extract a displacement from a position in space. 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...

const std::vector< AtomNumber > & getAbsoluteIndexes () override
Return all atom indexes. More...

const std::vector< double > & getAlign () const
Get the vector of alignment weights. 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...

unsigned getAtomIndex (const unsigned &) const
This allows us to use a single pos array with RMSD objects using different atom indexes. More...

void getAtomRequests (std::vector< AtomNumber > &, bool disable_checks=false) override
Get the atoms required (additional checks are required when we have multiple domains) More...

const std::vector< double > & getDisplace () const
Get the vector of displacement weights. More...

std::string getName () const
Return the name of this metric. More...

unsigned getNumberOfAtoms () const
This returns how many atoms there should be. More...

virtual unsigned getNumberOfReferenceArguments () const

unsigned getNumberOfReferencePositions () const override
This returns the number of reference atom positions. More...

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 ()

const std::vector< Vector > & getReferencePositions () const override
Get the reference positions. More...

bool pcaIsEnabledForThisReference () override
Stuff for pca. More...

double projectAtomicDisplacementOnVector (const bool &normalized, const std::vector< Vector > &vecs, ReferenceValuePack &mypack) const override
Project the displacement on a vector. More...

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. More...

virtual void setBoundsOnDistances (bool dopbc, double lbound=0.0, double ubound=std::numeric_limits< double >::max())
This sets upper and lower bounds on distances to be used in DRMSD (here it does nothing) More...

void setReferenceAtoms (const std::vector< Vector > &conf, const std::vector< double > &align_in, const std::vector< double > &displace_in) override
Set the reference structure. More...

void setupPCAStorage (ReferenceValuePack &mypack) override
Stuff to setup pca. More...

void setupRMSDObject () override
This is used by MultiDomainRMSD to setup the RMSD object in Optimal RMSD type. More...

Protected Member Functions

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

Vector getReferencePosition (const unsigned &iatom) const
Get the position of the ith atom. More...

bool parseAtomList (const std::string &, std::vector< unsigned > &)
Read a list of atoms from the pdb input file. More...

void readAtomsFromPDB (const PDB &, const bool allowblocks=false)
Read in the atoms from the pdb file. More...

void setAtomIndices (const std::vector< AtomNumber > &atomnumbers)
Add atom indices to list. More...

void singleDomainRequests (std::vector< AtomNumber > &, bool disable_checks)
Add derivatives to iatom th atom in list. More...

Private Attributes

std::vector< double > align
The atoms to be used to align the instantaneous atomic positions to the reference configuration. More...

std::vector< unsigned > atom_der_index
The indeces for setting derivatives. More...

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. More...

std::vector< double > displace
The atoms to be used to calculate the distance the atoms have moved from the reference configuration. More...

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...

bool fast

std::vector< AtomNumberindices
The indices of the atoms in the pdb file. More...

std::vector< std::string > line
A vector containing all the remarks from the pdb input. More...

RMSD myrmsd

std::string name
The name of this particular config. More...

std::vector< Vectorreference_atoms
The positions of the atoms in the reference configuration. More...

◆ OptimalRMSD()

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

◆ calc() [1/3]

 double PLMD::SingleDomainRMSD::calc ( const std::vector< Vector > & pos, const Pbc & pbc, const std::vector< Value * > & vals, const std::vector< double > & arg, ReferenceValuePack & myder, const bool & squared ) const
overridevirtualinherited

Calculate.

Implements PLMD::ReferenceConfiguration.

◆ calc() [2/3]

 double PLMD::RMSDBase::calc ( const std::vector< Vector > & pos, const Pbc & pbc, ReferenceValuePack & myder, const bool & squared ) const
overridevirtualinherited

Calculate the distance using the input position.

Implements PLMD::SingleDomainRMSD.

◆ calc() [3/3]

 double PLMD::OptimalRMSD::calc ( const std::vector< Vector > & pos, ReferenceValuePack & myder, const bool & squared ) const
overridevirtual

Implements PLMD::RMSDBase.

◆ calculate() [1/3]

 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.

◆ calculate() [2/3]

 double PLMD::SingleDomainRMSD::calculate ( const std::vector< Vector > & pos, const Pbc & pbc, ReferenceValuePack & myder, const bool & squared ) const
inherited

◆ calculate() [3/3]

 double PLMD::RMSDBase::calculate ( const std::vector< Vector > & pos, ReferenceValuePack & myder, const bool & squared ) const
inherited

◆ copyDerivatives()

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

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

◆ 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.

◆ extractAtomicDisplacement()

 void PLMD::OptimalRMSD::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::ReferenceConfiguration::getArgumentNames ( )
inlinevirtualinherited

Reimplemented in PLMD::ReferenceArguments.

◆ getArgumentRequests()

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

Retrieve the arguments that are required for this guy.

Reimplemented in PLMD::ReferenceArguments.

◆ 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::ReferenceConfiguration::getNumberOfReferenceArguments ( ) const
inlinevirtualinherited

Reimplemented in PLMD::ReferenceArguments.

◆ getNumberOfReferencePositions()

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

This returns the number of reference atom positions.

Reimplemented from PLMD::ReferenceConfiguration.

◆ getReferenceArgument()

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

Get one of the referene arguments.

Reimplemented in PLMD::ReferenceArguments.

◆ getReferenceArguments()

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

Reimplemented in PLMD::ReferenceArguments.

◆ getReferenceMetric()

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

Reimplemented in PLMD::ReferenceArguments.

◆ 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.

◆ parseAtomList()

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

Read a list of atoms from the pdb input file.

◆ pcaIsEnabledForThisReference()

 bool PLMD::OptimalRMSD::pcaIsEnabledForThisReference ( )
inlineoverridevirtual

Stuff for pca.

Reimplemented from PLMD::ReferenceConfiguration.

◆ projectAtomicDisplacementOnVector()

 double PLMD::OptimalRMSD::projectAtomicDisplacementOnVector ( const bool & normalized, const std::vector< Vector > & eigv, ReferenceValuePack & mypack ) const
overridevirtual

Project the displacement on a vector.

Reimplemented from PLMD::ReferenceAtoms.

◆ projectDisplacementOnVector()

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

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

Do all local business for setting the configuration.

Implements PLMD::ReferenceConfiguration.

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

Read in the atoms from the pdb file.

 void PLMD::SingleDomainRMSD::readReference ( const PDB & pdb )
protectedinherited

◆ setAtomIndices()

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

◆ setBoundsOnDistances()

 virtual void PLMD::SingleDomainRMSD::setBoundsOnDistances ( bool dopbc, double lbound = 0.0, double ubound = std::numeric_limits::max( ) )
inlinevirtualinherited

This sets upper and lower bounds on distances to be used in DRMSD (here it does nothing)

Reimplemented in PLMD::DRMSD.

◆ setReferenceAtoms()

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

Set the reference structure.

Implements PLMD::ReferenceAtoms.

◆ setupPCAStorage()

 void PLMD::OptimalRMSD::setupPCAStorage ( ReferenceValuePack & mypack )
inlineoverridevirtual

Stuff to setup pca.

Reimplemented from PLMD::ReferenceConfiguration.

◆ setupRMSDObject()

 void PLMD::OptimalRMSD::setupRMSDObject ( )
inlineoverridevirtual

This is used by MultiDomainRMSD to setup the RMSD object in Optimal RMSD type.

Reimplemented from PLMD::SingleDomainRMSD.

◆ 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

◆ align

 std::vector PLMD::ReferenceAtoms::align
privateinherited

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

◆ atom_der_index

 std::vector 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 PLMD::ReferenceAtoms::displace
privateinherited

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

◆ fake_arg_names

 std::vector PLMD::ReferenceConfiguration::fake_arg_names
privateinherited

◆ fake_atom_numbers

 std::vector PLMD::ReferenceConfiguration::fake_atom_numbers
privateinherited

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

◆ fake_metric

 std::vector PLMD::ReferenceConfiguration::fake_metric
privateinherited

◆ fake_refargs

 std::vector PLMD::ReferenceConfiguration::fake_refargs
privateinherited

◆ fake_refatoms

 std::vector PLMD::ReferenceConfiguration::fake_refatoms
privateinherited

These are use by the distance function above.

◆ fast

 bool PLMD::OptimalRMSD::fast
private

◆ indices

 std::vector PLMD::ReferenceAtoms::indices
privateinherited

The indices of the atoms in the pdb file.

◆ line

 std::vector PLMD::ReferenceConfiguration::line
privateinherited

A vector containing all the remarks from the pdb input.

◆ myrmsd

 RMSD PLMD::OptimalRMSD::myrmsd
private

◆ name

 std::string PLMD::ReferenceConfiguration::name
privateinherited

The name of this particular config.

◆ reference_atoms

 std::vector PLMD::ReferenceAtoms::reference_atoms
privateinherited

The positions of the atoms in the reference configuration.

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