Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
InertialMoments.h
Go to the documentation of this file.
1 
8 #include <Eigen/Core>
9 #include "Molassembler/Export.h"
10 
11 namespace Scine {
12 namespace Molassembler {
13 namespace Shapes {
14 
15 using InertialPositionsType = Eigen::Matrix<double, 3, Eigen::Dynamic>;
16 
18 struct MASM_EXPORT InertialMoments {
20  Eigen::Vector3d moments;
22  Eigen::Matrix3d axes;
23 
24  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
25 };
26 
31 MASM_EXPORT InertialMoments principalInertialMoments(const InertialPositionsType& positions);
32 
36 enum class MASM_EXPORT Top {
38  Line,
40  Asymmetric,
42  Prolate,
44  Oblate,
46  Spherical
47 };
48 
57 MASM_EXPORT Top standardizeTop(Eigen::Ref<InertialPositionsType> normalizedPositions);
58 
71 MASM_EXPORT unsigned reorientAsymmetricTop(Eigen::Ref<InertialPositionsType> normalizedPositions);
72 
73 } // namespace Shapes
74 } // namespace Molassembler
75 } // namespace Scine
Inertial moments data struct.
Definition: InertialMoments.h:18
Eigen::Matrix3d axes
Moment axes (column-wise)
Definition: InertialMoments.h:22
Oblate top (think disc): IA = IB &lt; IC.
Top standardizeTop(Eigen::Ref< InertialPositionsType > normalizedPositions)
Identifies the top of a set of positions and reorients the particle positions, aligning the main axis...
Eigen::Vector3d moments
Moments values.
Definition: InertialMoments.h:20
Top
What kind of top is the particle collection?
Definition: InertialMoments.h:36
Line top: 0 ≅ IA &lt;&lt; IB = IC.
InertialMoments principalInertialMoments(const InertialPositionsType &positions)
Determine the inertial moments of a set of positions.
Asymmetric top: IA &lt; IB &lt; IC, degeneracy 0.
unsigned reorientAsymmetricTop(Eigen::Ref< InertialPositionsType > normalizedPositions)
Searches for Cn axes along the coordinate system axes, aligns the highest order Cn axis found along t...
Spherical top: IA = IB = IC.
Prolate top (think rugby football): IA &lt; IB = IC.