rotation storage and conversion More...
Data Types | |
type | rotation |
Functions/Subroutines | |
subroutine, public | rotations_init |
doing self test More... | |
pure real(preal) function, dimension(4) | asquaternion (self) |
pure real(preal) function, dimension(3) | aseulers (self) |
pure real(preal) function, dimension(4) | asaxisangle (self) |
pure real(preal) function, dimension(3, 3) | asmatrix (self) |
pure real(preal) function, dimension(4) | asrodrigues (self) |
pure real(preal) function, dimension(3) | ashomochoric (self) |
subroutine | fromquaternion (self, qu) |
subroutine | fromeulers (self, eu, degrees) |
subroutine | fromaxisangle (self, ax, degrees, P) |
subroutine | frommatrix (self, om) |
pure elemental type(rotation) function | rotrot__ (self, R) |
: Rotate a rotation More... | |
pure elemental subroutine | standardize (self) |
quaternion representation with positive q More... | |
pure real(preal) function, dimension(3) | rotvector (self, v, active) |
rotate a vector passively (default) or actively More... | |
pure real(preal) function, dimension(3, 3) | rottensor2 (self, T, active) |
rotate a rank-2 tensor passively (default) or actively More... | |
pure real(preal) function, dimension(3, 3, 3, 3) | rottensor4 (self, T, active) |
rotate a rank-4 tensor passively (default) or actively More... | |
pure real(preal) function, dimension(6, 6) | rottensor4sym (self, T, active) |
rotate a symmetric rank-4 tensor stored as (6,6) passively (default) or actively ToDo: Need to check active/passive !!! More... | |
pure elemental type(rotation) function | misorientation (self, other) |
misorientation More... | |
pure real(preal) function, dimension(3, 3) | qu2om (qu) |
convert unit quaternion to rotation matrix More... | |
pure real(preal) function, dimension(3) | qu2eu (qu) |
convert unit quaternion to Euler angles More... | |
pure real(preal) function, dimension(4) | qu2ax (qu) |
convert unit quaternion to axis angle pair More... | |
pure real(preal) function, dimension(4) | qu2ro (qu) |
convert unit quaternion to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | qu2ho (qu) |
convert unit quaternion to homochoric More... | |
pure real(preal) function, dimension(3) | qu2cu (qu) |
convert unit quaternion to cubochoric More... | |
pure real(preal) function, dimension(4) | om2qu (om) |
convert rotation matrix to cubochoric More... | |
pure real(preal) function, dimension(3) | om2eu (om) |
orientation matrix to Euler angles More... | |
real(preal) function, dimension(4) | om2ax (om) |
convert orientation matrix to axis angle pair More... | |
pure real(preal) function, dimension(4) | om2ro (om) |
convert rotation matrix to Rodrigues vector More... | |
real(preal) function, dimension(3) | om2ho (om) |
convert rotation matrix to homochoric More... | |
real(preal) function, dimension(3) | om2cu (om) |
convert rotation matrix to cubochoric More... | |
pure real(preal) function, dimension(4) | eu2qu (eu) |
Euler angles to unit quaternion. More... | |
pure real(preal) function, dimension(3, 3), public | eu2om (eu) |
Euler angles to orientation matrix. More... | |
pure real(preal) function, dimension(4) | eu2ax (eu) |
convert euler to axis angle More... | |
pure real(preal) function, dimension(4) | eu2ro (eu) |
Euler angles to Rodrigues vector. More... | |
pure real(preal) function, dimension(3) | eu2ho (eu) |
convert Euler angles to homochoric More... | |
real(preal) function, dimension(3) | eu2cu (eu) |
convert Euler angles to cubochoric More... | |
pure real(preal) function, dimension(4) | ax2qu (ax) |
convert axis angle pair to quaternion More... | |
pure real(preal) function, dimension(3, 3) | ax2om (ax) |
convert axis angle pair to orientation matrix More... | |
pure real(preal) function, dimension(3) | ax2eu (ax) |
convert axis angle pair to Euler angles More... | |
pure real(preal) function, dimension(4) | ax2ro (ax) |
convert axis angle pair to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | ax2ho (ax) |
convert axis angle pair to homochoric More... | |
real(preal) function, dimension(3) | ax2cu (ax) |
convert axis angle pair to cubochoric More... | |
pure real(preal) function, dimension(4) | ro2qu (ro) |
convert Rodrigues vector to unit quaternion More... | |
pure real(preal) function, dimension(3, 3) | ro2om (ro) |
convert Rodrigues vector to rotation matrix More... | |
pure real(preal) function, dimension(3) | ro2eu (ro) |
convert Rodrigues vector to Euler angles More... | |
pure real(preal) function, dimension(4) | ro2ax (ro) |
convert Rodrigues vector to axis angle pair More... | |
pure real(preal) function, dimension(3) | ro2ho (ro) |
convert Rodrigues vector to homochoric More... | |
pure real(preal) function, dimension(3) | ro2cu (ro) |
convert Rodrigues vector to cubochoric More... | |
pure real(preal) function, dimension(4) | ho2qu (ho) |
convert homochoric to unit quaternion More... | |
pure real(preal) function, dimension(3, 3) | ho2om (ho) |
convert homochoric to rotation matrix More... | |
pure real(preal) function, dimension(3) | ho2eu (ho) |
convert homochoric to Euler angles More... | |
pure real(preal) function, dimension(4) | ho2ax (ho) |
convert homochoric to axis angle pair More... | |
pure real(preal) function, dimension(4) | ho2ro (ho) |
convert homochoric to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | ho2cu (ho) |
convert homochoric to cubochoric More... | |
pure real(preal) function, dimension(4) | cu2qu (cu) |
convert cubochoric to unit quaternion More... | |
pure real(preal) function, dimension(3, 3) | cu2om (cu) |
convert cubochoric to rotation matrix More... | |
pure real(preal) function, dimension(3) | cu2eu (cu) |
convert cubochoric to Euler angles More... | |
real(preal) function, dimension(4) | cu2ax (cu) |
convert cubochoric to axis angle pair More... | |
pure real(preal) function, dimension(4) | cu2ro (cu) |
convert cubochoric to Rodrigues vector More... | |
pure real(preal) function, dimension(3) | cu2ho (cu) |
convert cubochoric to homochoric More... | |
subroutine | unittest |
check correctness of some rotations functions More... | |
rotation storage and conversion
: rotation is internally stored as quaternion. It can be inialized from different representations and also returns itself in different representations.
|
private |
Definition at line 128 of file rotations.f90.
References qu2ax().
|
private |
Definition at line 119 of file rotations.f90.
References qu2eu().
|
private |
Definition at line 155 of file rotations.f90.
References qu2ho().
|
private |
Definition at line 137 of file rotations.f90.
References qu2om().
|
private |
Definition at line 110 of file rotations.f90.
|
private |
Definition at line 146 of file rotations.f90.
References qu2ro().
|
private |
convert axis angle pair to cubochoric
Definition at line 922 of file rotations.f90.
References ax2ho(), and ho2cu().
Referenced by unittest().
|
private |
convert axis angle pair to Euler angles
Definition at line 868 of file rotations.f90.
References ax2om(), and om2eu().
Referenced by ho2eu(), and unittest().
|
private |
convert axis angle pair to homochoric
Definition at line 904 of file rotations.f90.
Referenced by ax2cu(), eu2ho(), om2ho(), and unittest().
|
private |
convert axis angle pair to orientation matrix
Definition at line 832 of file rotations.f90.
References quaternions::p.
Referenced by ax2eu(), ho2om(), ro2om(), and unittest().
|
private |
convert axis angle pair to quaternion
Definition at line 809 of file rotations.f90.
References prec::deq0().
Referenced by fromaxisangle(), ho2qu(), ro2qu(), and unittest().
|
private |
convert axis angle pair to Rodrigues vector
Definition at line 882 of file rotations.f90.
References prec::deq0(), quaternions::p, and math::pi.
Referenced by ho2ro(), and unittest().
|
private |
convert cubochoric to axis angle pair
Definition at line 1191 of file rotations.f90.
References cu2ho(), and ho2ax().
Referenced by unittest().
|
private |
convert cubochoric to Euler angles
Definition at line 1177 of file rotations.f90.
References cu2ho(), and ho2eu().
Referenced by unittest().
|
private |
convert cubochoric to homochoric
Definition at line 1219 of file rotations.f90.
References lambert::lambert_cubetoball().
Referenced by cu2ax(), cu2eu(), cu2om(), cu2qu(), cu2ro(), and unittest().
|
private |
convert cubochoric to rotation matrix
Definition at line 1163 of file rotations.f90.
References cu2ho(), and ho2om().
Referenced by unittest().
|
private |
convert cubochoric to unit quaternion
Definition at line 1149 of file rotations.f90.
References cu2ho(), and ho2qu().
Referenced by unittest().
|
private |
convert cubochoric to Rodrigues vector
Definition at line 1205 of file rotations.f90.
References cu2ho(), and ho2ro().
Referenced by unittest().
|
private |
convert euler to axis angle
Definition at line 731 of file rotations.f90.
References prec::deq(), prec::deq0(), quaternions::p, and math::pi.
Referenced by eu2ho(), eu2ro(), and unittest().
|
private |
convert Euler angles to cubochoric
Definition at line 795 of file rotations.f90.
References eu2ho(), and ho2cu().
Referenced by unittest().
|
private |
convert Euler angles to homochoric
Definition at line 781 of file rotations.f90.
References ax2ho(), and eu2ax().
Referenced by eu2cu(), and unittest().
pure real(preal) function, dimension(3,3), public rotations::eu2om | ( | real(preal), dimension(3), intent(in) | eu | ) |
Euler angles to orientation matrix.
Definition at line 702 of file rotations.f90.
References prec::deq0().
Referenced by rotations::rotation::standardize(), and unittest().
|
private |
Euler angles to unit quaternion.
Definition at line 677 of file rotations.f90.
References quaternions::p.
Referenced by fromeulers(), om2qu(), and unittest().
|
private |
Euler angles to Rodrigues vector.
Definition at line 760 of file rotations.f90.
References prec::deq0(), eu2ax(), quaternions::p, and math::pi.
Referenced by om2ro(), and unittest().
|
private |
Definition at line 200 of file rotations.f90.
References ax2qu(), prec::dneq(), math::inrad, io::io_error(), and math::pi.
|
private |
Definition at line 179 of file rotations.f90.
References eu2qu(), math::inrad, io::io_error(), and math::pi.
|
private |
Definition at line 230 of file rotations.f90.
References prec::dneq(), io::io_error(), math::math_det33(), and om2qu().
|
private |
Definition at line 167 of file rotations.f90.
References prec::dneq(), and io::io_error().
|
private |
convert homochoric to axis angle pair
Definition at line 1081 of file rotations.f90.
References prec::deq0().
Referenced by cu2ax(), ho2eu(), ho2om(), ho2qu(), ho2ro(), and unittest().
|
private |
convert homochoric to cubochoric
Definition at line 1135 of file rotations.f90.
References lambert::lambert_balltocube().
Referenced by ax2cu(), eu2cu(), om2cu(), qu2cu(), ro2cu(), and unittest().
|
private |
convert homochoric to Euler angles
Definition at line 1067 of file rotations.f90.
References ax2eu(), and ho2ax().
Referenced by cu2eu(), and unittest().
|
private |
convert homochoric to rotation matrix
Definition at line 1053 of file rotations.f90.
References ax2om(), and ho2ax().
Referenced by cu2om(), and unittest().
|
private |
convert homochoric to unit quaternion
Definition at line 1039 of file rotations.f90.
References ax2qu(), and ho2ax().
Referenced by cu2qu(), and unittest().
|
private |
convert homochoric to Rodrigues vector
Definition at line 1121 of file rotations.f90.
References ax2ro(), and ho2ax().
Referenced by cu2ro(), and unittest().
|
private |
misorientation
Definition at line 391 of file rotations.f90.
|
private |
convert orientation matrix to axis angle pair
Definition at line 593 of file rotations.f90.
References prec::ceq(), prec::deq0(), prec::dneq0(), io::io_error(), math::math_clip(), math::math_trace33(), quaternions::p, and prec::preal.
Referenced by om2ho(), and unittest().
|
private |
convert rotation matrix to cubochoric
Definition at line 663 of file rotations.f90.
References ho2cu(), and om2ho().
Referenced by unittest().
|
private |
orientation matrix to Euler angles
Definition at line 569 of file rotations.f90.
References math::pi.
Referenced by ax2eu(), om2qu(), om2ro(), ro2eu(), and unittest().
|
private |
convert rotation matrix to homochoric
Definition at line 649 of file rotations.f90.
References ax2ho(), and om2ax().
Referenced by om2cu(), and unittest().
|
private |
convert rotation matrix to cubochoric
the original formulation (direct conversion) had (numerical?) issues
Definition at line 555 of file rotations.f90.
References eu2qu(), and om2eu().
Referenced by frommatrix(), and unittest().
|
private |
convert rotation matrix to Rodrigues vector
Definition at line 635 of file rotations.f90.
References eu2ro(), and om2eu().
Referenced by unittest().
|
private |
convert unit quaternion to axis angle pair
Definition at line 465 of file rotations.f90.
References prec::deq0(), prec::dneq0(), math::math_clip(), and math::pi.
Referenced by asaxisangle(), and unittest().
|
private |
convert unit quaternion to cubochoric
Definition at line 540 of file rotations.f90.
References ho2cu(), and qu2ho().
Referenced by unittest().
|
private |
convert unit quaternion to Euler angles
Definition at line 435 of file rotations.f90.
References prec::deq0(), quaternions::p, and math::pi.
Referenced by aseulers(), and unittest().
|
private |
convert unit quaternion to homochoric
Definition at line 516 of file rotations.f90.
References prec::deq0(), and math::math_clip().
Referenced by ashomochoric(), qu2cu(), and unittest().
|
private |
convert unit quaternion to rotation matrix
Definition at line 405 of file rotations.f90.
References quaternions::p.
Referenced by asmatrix(), and unittest().
|
private |
convert unit quaternion to Rodrigues vector
Definition at line 489 of file rotations.f90.
References math::math_clip(), and quaternions::p.
Referenced by asrodrigues(), and unittest().
|
private |
convert Rodrigues vector to axis angle pair
Definition at line 978 of file rotations.f90.
References prec::deq0(), and math::pi.
Referenced by ro2om(), ro2qu(), and unittest().
|
private |
convert Rodrigues vector to cubochoric
Definition at line 1025 of file rotations.f90.
References ho2cu(), and ro2ho().
Referenced by unittest().
|
private |
convert Rodrigues vector to Euler angles
Definition at line 964 of file rotations.f90.
References om2eu(), and ro2om().
Referenced by unittest().
|
private |
convert Rodrigues vector to homochoric
Definition at line 1004 of file rotations.f90.
References prec::deq0(), and math::pi.
Referenced by ro2cu(), and unittest().
|
private |
convert Rodrigues vector to rotation matrix
Definition at line 950 of file rotations.f90.
References ax2om(), and ro2ax().
Referenced by ro2eu(), and unittest().
|
private |
convert Rodrigues vector to unit quaternion
Definition at line 936 of file rotations.f90.
References ax2qu(), and ro2ax().
Referenced by unittest().
subroutine, public rotations::rotations_init |
doing self test
Definition at line 98 of file rotations.f90.
References quaternions::quaternions_init(), and io::unittest().
Referenced by cpfem2::cpfem_initall(), and rotations::rotation::standardize().
|
private |
: Rotate a rotation
Definition at line 247 of file rotations.f90.
Referenced by rotations::rotation::operator().
|
private |
rotate a rank-2 tensor passively (default) or actively
: rotation is based on rotation matrix
Definition at line 311 of file rotations.f90.
Referenced by rotations::rotation::rotate().
|
private |
rotate a rank-4 tensor passively (default) or actively
: rotation is based on rotation matrix ToDo: Need to check active/passive !!!
Definition at line 341 of file rotations.f90.
References quaternions::p.
Referenced by rotations::rotation::rotate(), and rottensor4sym().
|
private |
rotate a symmetric rank-4 tensor stored as (6,6) passively (default) or actively ToDo: Need to check active/passive !!!
Definition at line 372 of file rotations.f90.
References math::math_66tosym3333(), math::math_sym3333to66(), and rottensor4().
|
private |
rotate a vector passively (default) or actively
Definition at line 274 of file rotations.f90.
References prec::deq0().
Referenced by rotations::rotation::rotate().
|
private |
quaternion representation with positive q
Definition at line 261 of file rotations.f90.
|
private |
check correctness of some rotations functions
Definition at line 1232 of file rotations.f90.
References ax2cu(), ax2eu(), ax2ho(), ax2om(), ax2qu(), ax2ro(), cu2ax(), cu2eu(), cu2ho(), cu2om(), cu2qu(), cu2ro(), prec::dneq(), prec::dneq0(), eu2ax(), eu2cu(), eu2ho(), eu2om(), eu2qu(), eu2ro(), ho2ax(), ho2cu(), ho2eu(), ho2om(), ho2qu(), ho2ro(), io::io_error(), math::math_i3, om2ax(), om2cu(), om2eu(), om2ho(), om2qu(), om2ro(), math::pi, qu2ax(), qu2cu(), qu2eu(), qu2ho(), qu2om(), qu2ro(), ro2ax(), ro2cu(), ro2eu(), ro2ho(), ro2om(), and ro2qu().