deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
|
Functions | |
Rotation matrices | |
template<typename Number > | |
Tensor< 2, 2, Number > | rotation_matrix_2d (const Number &angle) |
template<typename Number > | |
Tensor< 2, 3, Number > | rotation_matrix_3d (const Tensor< 1, 3, Number > &axis, const Number &angle) |
Transformation functions and tensors that are defined in terms of rotation angles and axes of rotation.
Tensor< 2, 2, Number > Physics::Transformations::Rotations::rotation_matrix_2d | ( | const Number & | angle | ) |
Return the rotation matrix for 2-d Euclidean space, namely
\[ \mathbf{R} \dealcoloneq \left[ \begin{array}{cc} cos(\theta) & -sin(\theta) \\ sin(\theta) & cos(\theta) \end{array}\right] \]
where \(\theta\) is the rotation angle given in radians. In particular, this describes the counter-clockwise rotation of a vector relative to a fixed set of right-handed axes.
[in] | angle | The rotation angle (about the z-axis) in radians |
Tensor< 2, 3, Number > Physics::Transformations::Rotations::rotation_matrix_3d | ( | const Tensor< 1, 3, Number > & | axis, |
const Number & | angle | ||
) |
Return the rotation matrix for 3-d Euclidean space. Most concisely stated using the Rodrigues' rotation formula, this function returns the equivalent of
\[ \mathbf{R} \dealcoloneq cos(\theta)\mathbf{I} + sin(\theta)\mathbf{W} + (1-cos(\theta))\mathbf{u}\otimes\mathbf{u} \]
where \(\mathbf{u}\) is the axial vector (an axial vector) and \(\theta\) is the rotation angle given in radians, \(\mathbf{I}\) is the identity tensor and \(\mathbf{W}\) is the skew symmetric tensor of \(\mathbf{u}\).
axis
of rotation. An alternative implementation is discussed at this link, but is inconsistent (sign-wise) with the Rodrigues' rotation formula as it describes the rotation of a coordinate system.[in] | axis | A unit vector that defines the axis of rotation |
[in] | angle | The rotation angle in radians |