File QuaternionFit.h¶
- Copyright
- This code is licensed under the 3-clause BSD license. - Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group. - See LICENSE.txt for details. 
- 
namespace Scine
- This header file contains functions that allow for common notation for common things that can be done at a different degree of derivatives. - This header contains alias definitions defining which classes to use for the different degrees of derivatives. - 
namespace Utils
- 
class QuaternionFit
- #include <QuaternionFit.h>Compares two sets of positions and calculates translation and rotation to go from one to the other. References: - https://arxiv.org/pdf/physics/0506177.pdf (arXiv:physics/0506177v3) 
 Public Functions - 
template<typename DerivedA, typenameDerivedB>QuaternionFit(const Eigen::DenseBase<DerivedA> &refMat, const Eigen::DenseBase<DerivedB> &fitMat, const Eigen::VectorXd &weights, bool improperRotationIsAllowed = false)
- Construct a new Quaternion Fit object. - Parameters
- refMat: The positions of the reference data.
- fitMat: The positions of the data to be fitted.
- weights: The individual weights for each point in the set of data.
- improperRotationIsAllowed: If true allows the algorithm to invert the geometry to generate a better fit.
 
 
 - 
template<typename DerivedA, typenameDerivedB>QuaternionFit(const Eigen::DenseBase<DerivedA> &refMat, const Eigen::DenseBase<DerivedB> &fitMat, bool improperRotationIsAllowed = false)
- Construct a new Quaternion Fit object. - Parameters
- Rref: The positions of the reference data.
- Rfit: The positions of the data to be fitted.
- improperRotationIsAllowed: If true allows the algorithm to invert the geometry to generate a better fit.
 
 
 - 
template<typename DerivedA, typenameDerivedB>QuaternionFit(const Eigen::DenseBase<DerivedA> &refMat, const Eigen::DenseBase<DerivedB> &fitMat, const ElementTypeCollection &elements, bool improperRotationIsAllowed = false)
- Construct a new Quaternion Fit object. - If this contructor is used, the element masses will be used as weights for the fit. - Parameters
- Rref: The atom positions of the reference geometry.
- Rfit: The atom positions of the geometry to be fitted.
- elements: The elements for the given atoms coordinates, these will be used as weights.
- improperRotationIsAllowed: If true allows the algorithm to invert the geometry to generate a better fit.
 
 
 - 
Eigen::Matrix3d getRotationMatrix() const
- Getter for the reverse of the applied rotation. - Return
- Eigen::Matrix3d The rotation from the reference structure to the second structure before fitting. 
 
 - 
Eigen::Vector3d getTransVector() const
- Getter for the reverse of the applied translation. - Return
- Eigen::Vector3d The translation from the reference structure to the second structure before fitting. 
 
 - 
Eigen::Matrix<double, Eigen::Dynamic, 3, Eigen::RowMajor> getFittedData() const
- Getter for the fitted data as Eigen3 object. - Return
- Eigen::Matrix3d The fitted data. 
 
 - 
double getRotRMSD() const
- Getter for the RMSD not using any weights that might be stored. - Return
- double The RMSD. 
 
 - 
double getRMSD() const
- Getter for the RMSD due to differences in rotation only. - Return
- double The RMSD. 
 
 - 
double getWeightedRMSD(const Eigen::VectorXd &weights) const
- Getter for the RMSD using the given weights. - Return
- double The RMSD. 
- Parameters
- weights: The individaul weights for each point in the set of data.
 
 
 - 
double getWeightedRMSD() const
- Getter for the RMSD using the internal weights given/implied in the constructor. - Return
- double The RMSD. 
 
 Private Functions - 
Eigen::VectorXd makeWeightsVector(const ElementTypeCollection &elements)¶
 - 
void align()¶
 
 
- 
class 
 
- 
namespace