namespace dimer¶
Overview¶
namespace dimer {
// typedefs
typedef uint32_t Index_t;
// classes
class Dimer;
// global functions
double project_out_rot_trans_with_feedback(const gpr::Coord& R, Eigen::VectorXd& step);
} // namespace dimer
Detailed Documentation¶
Global Functions¶
double project_out_rot_trans_with_feedback(const gpr::Coord& R, Eigen::VectorXd& step)
Projects rigid-body translations and rotations out of a Cartesian step vector using QR decomposition.
This function constructs a basis for the 3 translational and 3 rotational degrees of freedom. It then uses Eigen’s numerically stable Householder QR decomposition to find an orthonormal basis for this subspace. Finally, it subtracts the component of the step vector that lies within this subspace.
Parameters:
R |
The current atomic coordinates, used to define the rotational basis. |
step |
The 3N-dimensional optimization step vector to be modified in-place. |
Returns:
The L2 norm of the rotational/translational component that was removed.