Public Member Functions | Private Attributes | List of all members
PLMD::OptimalAlignment Class Reference

A class that is intended to include or combine various optimal alignment algorithms. More...

#include <OptimalAlignment.h>

Public Member Functions

 OptimalAlignment (const std::vector< double > &align, const std::vector< double > &displace, const std::vector< Vector > &p0, const std::vector< Vector > &p1, Log *&log)
 the contructor More...
 
 ~OptimalAlignment ()
 the destructor: delete kearsley More...
 
void assignP0 (const std::vector< Vector > &p0)
 assignment of the running frame p0 More...
 
void assignP1 (const std::vector< Vector > &p1)
 assignment to the reference frame p1 More...
 
void assignAlign (const std::vector< double > &align)
 
void assignDisplace (const std::vector< double > &displace)
 
double calculate (bool rmsd, std::vector< Vector > &derivatives)
 this does the real calculation More...
 
double weightedAlignment (bool rmsd)
 this should perform the weighted alignment More...
 
double weightedFindiffTest (bool rmsd)
 

Private Attributes

Kearsleymykearsley
 a pointer to the object that performs the optimal alignment via quaternions More...
 
std::vector< double > displace
 displacement vector : a double that says if the coordinate should be used in calculating the RMSD/MSD More...
 
std::vector< double > align
 alignment vector: a double that says if the atom has to be used in reset COM and makeing the alignment More...
 
std::vector< Vectorp0
 position of one frame (generally the MD) More...
 
std::vector< Vectorp1
 position of the reference frames More...
 
std::vector< Vectorderrdp0
 derivatives of the error respect to the p0 (MD running frame) More...
 
std::vector< Vectorderrdp1
 derivatives of the error respect to the p1 (static frame, do not remove: useful for SM) More...
 
Loglog
 the pointer to the logfile More...
 
bool fast
 a bool that decides to make the fast version (alignment vec= displacement vec) or the slower case More...
 

Detailed Description

A class that is intended to include or combine various optimal alignment algorithms.

Constructor & Destructor Documentation

PLMD::OptimalAlignment::OptimalAlignment ( const std::vector< double > &  align,
const std::vector< double > &  displace,
const std::vector< Vector > &  p0,
const std::vector< Vector > &  p1,
Log *&  log 
)

the contructor

PLMD::OptimalAlignment::~OptimalAlignment ( )

the destructor: delete kearsley

Member Function Documentation

void PLMD::OptimalAlignment::assignAlign ( const std::vector< double > &  align)
void PLMD::OptimalAlignment::assignDisplace ( const std::vector< double > &  displace)
void PLMD::OptimalAlignment::assignP0 ( const std::vector< Vector > &  p0)

assignment of the running frame p0

void PLMD::OptimalAlignment::assignP1 ( const std::vector< Vector > &  p1)

assignment to the reference frame p1

double PLMD::OptimalAlignment::calculate ( bool  rmsd,
std::vector< Vector > &  derivatives 
)

this does the real calculation

TODO this interface really sucks since is strongly asymmetric should be re-engineered.

double PLMD::OptimalAlignment::weightedAlignment ( bool  rmsd)

this should perform the weighted alignment

this does the weighed alignment if the vector of alignment is different from displacement

just a shortcut

TODO : these two blocks can be calculated once forever after the initialization (exception for certain methods?)

clear derivatives

probably not really the way it should be

double PLMD::OptimalAlignment::weightedFindiffTest ( bool  rmsd)

Member Data Documentation

std::vector<double> PLMD::OptimalAlignment::align
private

alignment vector: a double that says if the atom has to be used in reset COM and makeing the alignment

std::vector<Vector> PLMD::OptimalAlignment::derrdp0
private

derivatives of the error respect to the p0 (MD running frame)

std::vector<Vector> PLMD::OptimalAlignment::derrdp1
private

derivatives of the error respect to the p1 (static frame, do not remove: useful for SM)

std::vector<double> PLMD::OptimalAlignment::displace
private

displacement vector : a double that says if the coordinate should be used in calculating the RMSD/MSD

bool PLMD::OptimalAlignment::fast
private

a bool that decides to make the fast version (alignment vec= displacement vec) or the slower case

Log* PLMD::OptimalAlignment::log
private

the pointer to the logfile

Kearsley* PLMD::OptimalAlignment::mykearsley
private

a pointer to the object that performs the optimal alignment via quaternions

std::vector<Vector> PLMD::OptimalAlignment::p0
private

position of one frame (generally the MD)

std::vector<Vector> PLMD::OptimalAlignment::p1
private

position of the reference frames


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