22 #ifndef __PLUMED_tools_Kearsley_h
23 #define __PLUMED_tools_Kearsley_h
182 std::vector<Vector>
p0;
184 std::vector<Vector>
p1;
223 Kearsley(
const std::vector<Vector> &p0,
const std::vector<Vector> &p1,
const std::vector<double> &align ,
Log* &log);
225 void assignP0(
const std::vector<Vector> & p0);
227 void assignP1(
const std::vector<Vector> & p1);
229 void assignAlign(
const std::vector<double> & align);
std::vector< Vector > p1rotated
position rotated: p1
std::vector< double > dmatdp1
Class implementing fixed size matrices of doubles.
Class implementing fixed size vectors of doubles.
double err
error: the distance between two frames (might be rmsd/msd. See below)
Class containing the log stream.
std::vector< Vector > p1reset
position resetted wrt coms p1
std::vector< Vector > derrdp1
derivatives: derivative of the error respect p1
std::vector< Vector > p0rotated
position rotated: p0
Kearsley(const std::vector< Vector > &p0, const std::vector< Vector > &p1, const std::vector< double > &align, Log *&log)
constructor: need the two structure, the alignment vector and the log reference
Log * log
general log reference that needs to be initialized when constructed
void assignP0(const std::vector< Vector > &p0)
switch the assignment of the structure p0 (e.g. at each md step)
double calculate(bool rmsd)
std::vector< Vector > diff1on0
displacement: the vector that goes from the p1 onto p0 (via inverse rotation)
std::vector< Vector > p0
position of atoms (first frame. In md is the running frame)
std::vector< double > align
alignment weight: the rmsd/msd that it provides is only based on this scalar
std::vector< Vector > p0reset
position resetted wrt coms p0
Vector com0
center of mass of p0
void assignP1(const std::vector< Vector > &p1)
derivatives: derivative of the error respect p1
std::vector< Vector > diff0on1
displacement: the vector that goes from the p0 onto p1
Vector com1
center of mass of p1
void assignAlign(const std::vector< double > &align)
transfer the alignment vector
std::vector< double > dmatdp0
derivative of the rotation matrix note the dimension 3x3 x 3 x N
Tensor rotmat0on1
rotation matrices p0 on p1 and reverse (p1 over p0)
std::vector< Vector > p1
position of atoms (second frame. In md is the reference frame)
std::vector< Vector > derrdp0
derivatives: derivative of the error respect p0
void finiteDifferenceInterface(bool rmsd)
finite differences of all the relevant quantities: takes a bool which decides if giving back rmsd or ...