DAMASK with grid solvers  Revision: v2.0.3-2204-gdb1f2151
The Düsseldorf Advanced Material Simulation Kit with Grid Solvers
rotations Module Reference

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...
 

Detailed Description

rotation storage and conversion

Author
Marc De Graef, Carnegie Mellon University
Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH

: rotation is internally stored as quaternion. It can be inialized from different representations and also returns itself in different representations.

Function/Subroutine Documentation

◆ asaxisangle()

pure real(preal) function, dimension(4) rotations::asaxisangle ( class(rotation), intent(in)  self)
private

Definition at line 128 of file rotations.f90.

References qu2ax().

+ Here is the call graph for this function:

◆ aseulers()

pure real(preal) function, dimension(3) rotations::aseulers ( class(rotation), intent(in)  self)
private

Definition at line 119 of file rotations.f90.

References qu2eu().

+ Here is the call graph for this function:

◆ ashomochoric()

pure real(preal) function, dimension(3) rotations::ashomochoric ( class(rotation), intent(in)  self)
private

Definition at line 155 of file rotations.f90.

References qu2ho().

+ Here is the call graph for this function:

◆ asmatrix()

pure real(preal) function, dimension(3,3) rotations::asmatrix ( class(rotation), intent(in)  self)
private

Definition at line 137 of file rotations.f90.

References qu2om().

+ Here is the call graph for this function:

◆ asquaternion()

pure real(preal) function, dimension(4) rotations::asquaternion ( class(rotation), intent(in)  self)
private

Definition at line 110 of file rotations.f90.

◆ asrodrigues()

pure real(preal) function, dimension(4) rotations::asrodrigues ( class(rotation), intent(in)  self)
private

Definition at line 146 of file rotations.f90.

References qu2ro().

+ Here is the call graph for this function:

◆ ax2cu()

real(preal) function, dimension(3) rotations::ax2cu ( real(preal), dimension(4), intent(in)  ax)
private

convert axis angle pair to cubochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 922 of file rotations.f90.

References ax2ho(), and ho2cu().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ax2eu()

pure real(preal) function, dimension(3) rotations::ax2eu ( real(preal), dimension(4), intent(in)  ax)
private

convert axis angle pair to Euler angles

Author
Marc De Graef, Carnegie Mellon University

Definition at line 868 of file rotations.f90.

References ax2om(), and om2eu().

Referenced by ho2eu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ax2ho()

pure real(preal) function, dimension(3) rotations::ax2ho ( real(preal), dimension(4), intent(in)  ax)
private

convert axis angle pair to homochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 904 of file rotations.f90.

Referenced by ax2cu(), eu2ho(), om2ho(), and unittest().

+ Here is the caller graph for this function:

◆ ax2om()

pure real(preal) function, dimension(3,3) rotations::ax2om ( real(preal), dimension(4), intent(in)  ax)
private

convert axis angle pair to orientation matrix

Author
Marc De Graef, Carnegie Mellon University

Definition at line 832 of file rotations.f90.

References quaternions::p.

Referenced by ax2eu(), ho2om(), ro2om(), and unittest().

+ Here is the caller graph for this function:

◆ ax2qu()

pure real(preal) function, dimension(4) rotations::ax2qu ( real(preal), dimension(4), intent(in)  ax)
private

convert axis angle pair to quaternion

Author
Marc De Graef, Carnegie Mellon University

Definition at line 809 of file rotations.f90.

References prec::deq0().

Referenced by fromaxisangle(), ho2qu(), ro2qu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ax2ro()

pure real(preal) function, dimension(4) rotations::ax2ro ( real(preal), dimension(4), intent(in)  ax)
private

convert axis angle pair to Rodrigues vector

Author
Marc De Graef, Carnegie Mellon University

Definition at line 882 of file rotations.f90.

References prec::deq0(), quaternions::p, and math::pi.

Referenced by ho2ro(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cu2ax()

real(preal) function, dimension(4) rotations::cu2ax ( real(preal), dimension(3), intent(in)  cu)
private

convert cubochoric to axis angle pair

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1191 of file rotations.f90.

References cu2ho(), and ho2ax().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cu2eu()

pure real(preal) function, dimension(3) rotations::cu2eu ( real(preal), dimension(3), intent(in)  cu)
private

convert cubochoric to Euler angles

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1177 of file rotations.f90.

References cu2ho(), and ho2eu().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cu2ho()

pure real(preal) function, dimension(3) rotations::cu2ho ( real(preal), dimension(3), intent(in)  cu)
private

convert cubochoric to homochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1219 of file rotations.f90.

References lambert::lambert_cubetoball().

Referenced by cu2ax(), cu2eu(), cu2om(), cu2qu(), cu2ro(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cu2om()

pure real(preal) function, dimension(3,3) rotations::cu2om ( real(preal), dimension(3), intent(in)  cu)
private

convert cubochoric to rotation matrix

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1163 of file rotations.f90.

References cu2ho(), and ho2om().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cu2qu()

pure real(preal) function, dimension(4) rotations::cu2qu ( real(preal), dimension(3), intent(in)  cu)
private

convert cubochoric to unit quaternion

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1149 of file rotations.f90.

References cu2ho(), and ho2qu().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cu2ro()

pure real(preal) function, dimension(4) rotations::cu2ro ( real(preal), dimension(3), intent(in)  cu)
private

convert cubochoric to Rodrigues vector

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1205 of file rotations.f90.

References cu2ho(), and ho2ro().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ eu2ax()

pure real(preal) function, dimension(4) rotations::eu2ax ( real(preal), dimension(3), intent(in)  eu)
private

convert euler to axis angle

Author
Marc De Graef, Carnegie Mellon University

Definition at line 731 of file rotations.f90.

References prec::deq(), prec::deq0(), quaternions::p, and math::pi.

Referenced by eu2ho(), eu2ro(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ eu2cu()

real(preal) function, dimension(3) rotations::eu2cu ( real(preal), dimension(3), intent(in)  eu)
private

convert Euler angles to cubochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 795 of file rotations.f90.

References eu2ho(), and ho2cu().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ eu2ho()

pure real(preal) function, dimension(3) rotations::eu2ho ( real(preal), dimension(3), intent(in)  eu)
private

convert Euler angles to homochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 781 of file rotations.f90.

References ax2ho(), and eu2ax().

Referenced by eu2cu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ eu2om()

pure real(preal) function, dimension(3,3), public rotations::eu2om ( real(preal), dimension(3), intent(in)  eu)

Euler angles to orientation matrix.

Author
Marc De Graef, Carnegie Mellon University

Definition at line 702 of file rotations.f90.

References prec::deq0().

Referenced by rotations::rotation::standardize(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ eu2qu()

pure real(preal) function, dimension(4) rotations::eu2qu ( real(preal), dimension(3), intent(in)  eu)
private

Euler angles to unit quaternion.

Author
Marc De Graef, Carnegie Mellon University

Definition at line 677 of file rotations.f90.

References quaternions::p.

Referenced by fromeulers(), om2qu(), and unittest().

+ Here is the caller graph for this function:

◆ eu2ro()

pure real(preal) function, dimension(4) rotations::eu2ro ( real(preal), dimension(3), intent(in)  eu)
private

Euler angles to Rodrigues vector.

Author
Marc De Graef, Carnegie Mellon University

Definition at line 760 of file rotations.f90.

References prec::deq0(), eu2ax(), quaternions::p, and math::pi.

Referenced by om2ro(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromaxisangle()

subroutine rotations::fromaxisangle ( class(rotation), intent(out)  self,
real(preal), dimension(4), intent(in)  ax,
logical, intent(in), optional  degrees,
integer, intent(in), optional  P 
)
private

Definition at line 200 of file rotations.f90.

References ax2qu(), prec::dneq(), math::inrad, io::io_error(), and math::pi.

+ Here is the call graph for this function:

◆ fromeulers()

subroutine rotations::fromeulers ( class(rotation), intent(out)  self,
real(preal), dimension(3), intent(in)  eu,
logical, intent(in), optional  degrees 
)
private

Definition at line 179 of file rotations.f90.

References eu2qu(), math::inrad, io::io_error(), and math::pi.

+ Here is the call graph for this function:

◆ frommatrix()

subroutine rotations::frommatrix ( class(rotation), intent(out)  self,
real(preal), dimension(3,3), intent(in)  om 
)
private

Definition at line 230 of file rotations.f90.

References prec::dneq(), io::io_error(), math::math_det33(), and om2qu().

+ Here is the call graph for this function:

◆ fromquaternion()

subroutine rotations::fromquaternion ( class(rotation), intent(out)  self,
real(preal), dimension(4), intent(in)  qu 
)
private

Definition at line 167 of file rotations.f90.

References prec::dneq(), and io::io_error().

+ Here is the call graph for this function:

◆ ho2ax()

pure real(preal) function, dimension(4) rotations::ho2ax ( real(preal), dimension(3), intent(in)  ho)
private

convert homochoric to axis angle pair

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1081 of file rotations.f90.

References prec::deq0().

Referenced by cu2ax(), ho2eu(), ho2om(), ho2qu(), ho2ro(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ho2cu()

pure real(preal) function, dimension(3) rotations::ho2cu ( real(preal), dimension(3), intent(in)  ho)
private

convert homochoric to cubochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1135 of file rotations.f90.

References lambert::lambert_balltocube().

Referenced by ax2cu(), eu2cu(), om2cu(), qu2cu(), ro2cu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ho2eu()

pure real(preal) function, dimension(3) rotations::ho2eu ( real(preal), dimension(3), intent(in)  ho)
private

convert homochoric to Euler angles

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1067 of file rotations.f90.

References ax2eu(), and ho2ax().

Referenced by cu2eu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ho2om()

pure real(preal) function, dimension(3,3) rotations::ho2om ( real(preal), dimension(3), intent(in)  ho)
private

convert homochoric to rotation matrix

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1053 of file rotations.f90.

References ax2om(), and ho2ax().

Referenced by cu2om(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ho2qu()

pure real(preal) function, dimension(4) rotations::ho2qu ( real(preal), dimension(3), intent(in)  ho)
private

convert homochoric to unit quaternion

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1039 of file rotations.f90.

References ax2qu(), and ho2ax().

Referenced by cu2qu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ho2ro()

pure real(preal) function, dimension(4) rotations::ho2ro ( real(preal), dimension(3), intent(in)  ho)
private

convert homochoric to Rodrigues vector

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1121 of file rotations.f90.

References ax2ro(), and ho2ax().

Referenced by cu2ro(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ misorientation()

pure elemental type(rotation) function rotations::misorientation ( class(rotation), intent(in)  self,
class(rotation), intent(in)  other 
)
private

misorientation

Definition at line 391 of file rotations.f90.

◆ om2ax()

real(preal) function, dimension(4) rotations::om2ax ( real(preal), dimension(3,3), intent(in)  om)
private

convert orientation matrix to axis angle pair

Author
Marc De Graef, Carnegie Mellon University

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ om2cu()

real(preal) function, dimension(3) rotations::om2cu ( real(preal), dimension(3,3), intent(in)  om)
private

convert rotation matrix to cubochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 663 of file rotations.f90.

References ho2cu(), and om2ho().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ om2eu()

pure real(preal) function, dimension(3) rotations::om2eu ( real(preal), dimension(3,3), intent(in)  om)
private

orientation matrix to Euler angles

Author
Marc De Graef, Carnegie Mellon University

Definition at line 569 of file rotations.f90.

References math::pi.

Referenced by ax2eu(), om2qu(), om2ro(), ro2eu(), and unittest().

+ Here is the caller graph for this function:

◆ om2ho()

real(preal) function, dimension(3) rotations::om2ho ( real(preal), dimension(3,3), intent(in)  om)
private

convert rotation matrix to homochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 649 of file rotations.f90.

References ax2ho(), and om2ax().

Referenced by om2cu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ om2qu()

pure real(preal) function, dimension(4) rotations::om2qu ( real(preal), dimension(3,3), intent(in)  om)
private

convert rotation matrix to cubochoric

Author
Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ om2ro()

pure real(preal) function, dimension(4) rotations::om2ro ( real(preal), dimension(3,3), intent(in)  om)
private

convert rotation matrix to Rodrigues vector

Author
Marc De Graef, Carnegie Mellon University

Definition at line 635 of file rotations.f90.

References eu2ro(), and om2eu().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qu2ax()

pure real(preal) function, dimension(4) rotations::qu2ax ( real(preal), dimension(4), intent(in)  qu)
private

convert unit quaternion to axis angle pair

Author
Marc De Graef, Carnegie Mellon University

Definition at line 465 of file rotations.f90.

References prec::deq0(), prec::dneq0(), math::math_clip(), and math::pi.

Referenced by asaxisangle(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qu2cu()

pure real(preal) function, dimension(3) rotations::qu2cu ( real(preal), dimension(4), intent(in)  qu)
private

convert unit quaternion to cubochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 540 of file rotations.f90.

References ho2cu(), and qu2ho().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qu2eu()

pure real(preal) function, dimension(3) rotations::qu2eu ( real(preal), dimension(4), intent(in)  qu)
private

convert unit quaternion to Euler angles

Author
Marc De Graef, Carnegie Mellon University

Definition at line 435 of file rotations.f90.

References prec::deq0(), quaternions::p, and math::pi.

Referenced by aseulers(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qu2ho()

pure real(preal) function, dimension(3) rotations::qu2ho ( real(preal), dimension(4), intent(in)  qu)
private

convert unit quaternion to homochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 516 of file rotations.f90.

References prec::deq0(), and math::math_clip().

Referenced by ashomochoric(), qu2cu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qu2om()

pure real(preal) function, dimension(3,3) rotations::qu2om ( real(preal), dimension(4), intent(in)  qu)
private

convert unit quaternion to rotation matrix

Author
Marc De Graef, Carnegie Mellon University

Definition at line 405 of file rotations.f90.

References quaternions::p.

Referenced by asmatrix(), and unittest().

+ Here is the caller graph for this function:

◆ qu2ro()

pure real(preal) function, dimension(4) rotations::qu2ro ( real(preal), dimension(4), intent(in)  qu)
private

convert unit quaternion to Rodrigues vector

Author
Marc De Graef, Carnegie Mellon University

Definition at line 489 of file rotations.f90.

References math::math_clip(), and quaternions::p.

Referenced by asrodrigues(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ro2ax()

pure real(preal) function, dimension(4) rotations::ro2ax ( real(preal), dimension(4), intent(in)  ro)
private

convert Rodrigues vector to axis angle pair

Author
Marc De Graef, Carnegie Mellon University

Definition at line 978 of file rotations.f90.

References prec::deq0(), and math::pi.

Referenced by ro2om(), ro2qu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ro2cu()

pure real(preal) function, dimension(3) rotations::ro2cu ( real(preal), dimension(4), intent(in)  ro)
private

convert Rodrigues vector to cubochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1025 of file rotations.f90.

References ho2cu(), and ro2ho().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ro2eu()

pure real(preal) function, dimension(3) rotations::ro2eu ( real(preal), dimension(4), intent(in)  ro)
private

convert Rodrigues vector to Euler angles

Author
Marc De Graef, Carnegie Mellon University

Definition at line 964 of file rotations.f90.

References om2eu(), and ro2om().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ro2ho()

pure real(preal) function, dimension(3) rotations::ro2ho ( real(preal), dimension(4), intent(in)  ro)
private

convert Rodrigues vector to homochoric

Author
Marc De Graef, Carnegie Mellon University

Definition at line 1004 of file rotations.f90.

References prec::deq0(), and math::pi.

Referenced by ro2cu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ro2om()

pure real(preal) function, dimension(3,3) rotations::ro2om ( real(preal), dimension(4), intent(in)  ro)
private

convert Rodrigues vector to rotation matrix

Author
Marc De Graef, Carnegie Mellon University

Definition at line 950 of file rotations.f90.

References ax2om(), and ro2ax().

Referenced by ro2eu(), and unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ro2qu()

pure real(preal) function, dimension(4) rotations::ro2qu ( real(preal), dimension(4), intent(in)  ro)
private

convert Rodrigues vector to unit quaternion

Author
Marc De Graef, Carnegie Mellon University

Definition at line 936 of file rotations.f90.

References ax2qu(), and ro2ax().

Referenced by unittest().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rotations_init()

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ rotrot__()

pure elemental type(rotation) function rotations::rotrot__ ( class(rotation), intent(in)  self,
class(rotation), intent(in)  R 
)
private

: Rotate a rotation

Definition at line 247 of file rotations.f90.

Referenced by rotations::rotation::operator().

+ Here is the caller graph for this function:

◆ rottensor2()

pure real(preal) function, dimension(3,3) rotations::rottensor2 ( class(rotation), intent(in)  self,
real(preal), dimension(3,3), intent(in)  T,
logical, intent(in), optional  active 
)
private

rotate a rank-2 tensor passively (default) or actively

Author
Marc De Graef, Carnegie Mellon University

: rotation is based on rotation matrix

Definition at line 311 of file rotations.f90.

Referenced by rotations::rotation::rotate().

+ Here is the caller graph for this function:

◆ rottensor4()

pure real(preal) function, dimension(3,3,3,3) rotations::rottensor4 ( class(rotation), intent(in)  self,
real(preal), dimension(3,3,3,3), intent(in)  T,
logical, intent(in), optional  active 
)
private

rotate a rank-4 tensor passively (default) or actively

Author
Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH

: 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().

+ Here is the caller graph for this function:

◆ rottensor4sym()

pure real(preal) function, dimension(6,6) rotations::rottensor4sym ( class(rotation), intent(in)  self,
real(preal), dimension(6,6), intent(in)  T,
logical, intent(in), optional  active 
)
private

rotate a symmetric rank-4 tensor stored as (6,6) passively (default) or actively ToDo: Need to check active/passive !!!

Author
Martin Diehl, Max-Planck-Institut für Eisenforschung GmbH

Definition at line 372 of file rotations.f90.

References math::math_66tosym3333(), math::math_sym3333to66(), and rottensor4().

+ Here is the call graph for this function:

◆ rotvector()

pure real(preal) function, dimension(3) rotations::rotvector ( class(rotation), intent(in)  self,
real(preal), dimension(3), intent(in)  v,
logical, intent(in), optional  active 
)
private

rotate a vector passively (default) or actively

Author
Marc De Graef, Carnegie Mellon University

Definition at line 274 of file rotations.f90.

References prec::deq0().

Referenced by rotations::rotation::rotate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ standardize()

pure elemental subroutine rotations::standardize ( class(rotation), intent(inout)  self)
private

quaternion representation with positive q

Definition at line 261 of file rotations.f90.

◆ unittest()

subroutine rotations::unittest
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().

+ Here is the call graph for this function: