22 #ifndef __PLUMED_tools_OptimalAlignment_h
23 #define __PLUMED_tools_OptimalAlignment_h
46 std::vector<Vector>
p0;
48 std::vector<Vector>
p1;
60 OptimalAlignment(
const std::vector<double> & align,
const std::vector<double> & displace,
const std::vector<Vector> & p0,
const std::vector<Vector> & p1 ,
Log* &log );
64 void assignP0(
const std::vector<Vector> & p0 );
66 void assignP1(
const std::vector<Vector> & p1 );
68 void assignAlign(
const std::vector<double> & align );
72 double calculate(
bool rmsd, std::vector<Vector> & derivatives);
double weightedFindiffTest(bool rmsd)
double calculate(bool rmsd, std::vector< Vector > &derivatives)
this does the real calculation
void assignP0(const std::vector< Vector > &p0)
assignment of the running frame p0
std::vector< Vector > p0
position of one frame (generally the MD)
void assignP1(const std::vector< Vector > &p1)
assignment to the reference frame p1
void assignDisplace(const std::vector< double > &displace)
std::vector< Vector > p1
position of the reference frames
Class containing the log stream.
Kearsley * mykearsley
a pointer to the object that performs the optimal alignment via quaternions
std::vector< double > align
alignment vector: a double that says if the atom has to be used in reset COM and makeing the alignmen...
A class that is intended to include or combine various optimal alignment algorithms.
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
double weightedAlignment(bool rmsd)
this should perform the weighted alignment
void assignAlign(const std::vector< double > &align)
std::vector< double > displace
displacement vector : a double that says if the coordinate should be used in calculating the RMSD/MSD...
bool fast
a bool that decides to make the fast version (alignment vec= displacement vec) or the slower case ...
std::vector< Vector > derrdp0
derivatives of the error respect to the p0 (MD running frame)
std::vector< Vector > derrdp1
derivatives of the error respect to the p1 (static frame, do not remove: useful for SM) ...
~OptimalAlignment()
the destructor: delete kearsley
Log * log
the pointer to the logfile