All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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.

Definition at line 36 of file OptimalAlignment.h.

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

Definition at line 33 of file OptimalAlignment.cpp.

PLMD::OptimalAlignment::~OptimalAlignment ( )

the destructor: delete kearsley

Definition at line 59 of file OptimalAlignment.cpp.

Member Function Documentation

void PLMD::OptimalAlignment::assignAlign ( const std::vector< double > &  align)

Definition at line 73 of file OptimalAlignment.cpp.

void PLMD::OptimalAlignment::assignDisplace ( const std::vector< double > &  displace)

Definition at line 78 of file OptimalAlignment.cpp.

void PLMD::OptimalAlignment::assignP0 ( const std::vector< Vector > &  p0)

assignment of the running frame p0

Definition at line 63 of file OptimalAlignment.cpp.

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

assignment to the reference frame p1

Definition at line 68 of file OptimalAlignment.cpp.

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.

Definition at line 83 of file OptimalAlignment.cpp.

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

Definition at line 118 of file OptimalAlignment.cpp.

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

Definition at line 311 of file OptimalAlignment.cpp.

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

Definition at line 44 of file OptimalAlignment.h.

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

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

Definition at line 50 of file OptimalAlignment.h.

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

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

Definition at line 52 of file OptimalAlignment.h.

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

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

Definition at line 42 of file OptimalAlignment.h.

bool PLMD::OptimalAlignment::fast
private

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

Definition at line 56 of file OptimalAlignment.h.

Log* PLMD::OptimalAlignment::log
private

the pointer to the logfile

Definition at line 54 of file OptimalAlignment.h.

Kearsley* PLMD::OptimalAlignment::mykearsley
private

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

Definition at line 40 of file OptimalAlignment.h.

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

position of one frame (generally the MD)

Definition at line 46 of file OptimalAlignment.h.

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

position of the reference frames

Definition at line 48 of file OptimalAlignment.h.


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