DAMASK with MSC.Marc FEM solver  Revision: v2.0.3-2204-gdb1f2151
The Düsseldorf Advanced Material Simulation Kit with MSC.Marc
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 4679 of file DAMASK_marc.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 4670 of file DAMASK_marc.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 4706 of file DAMASK_marc.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 4688 of file DAMASK_marc.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 4661 of file DAMASK_marc.f90.

◆ asrodrigues()

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

Definition at line 4697 of file DAMASK_marc.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 5473 of file DAMASK_marc.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 5419 of file DAMASK_marc.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 5455 of file DAMASK_marc.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 5383 of file DAMASK_marc.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 5360 of file DAMASK_marc.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 5433 of file DAMASK_marc.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 5742 of file DAMASK_marc.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 5728 of file DAMASK_marc.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 5770 of file DAMASK_marc.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 5714 of file DAMASK_marc.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 5700 of file DAMASK_marc.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 5756 of file DAMASK_marc.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 5282 of file DAMASK_marc.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 5346 of file DAMASK_marc.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 5332 of file DAMASK_marc.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 5253 of file DAMASK_marc.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 5228 of file DAMASK_marc.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 5311 of file DAMASK_marc.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 4751 of file DAMASK_marc.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 4730 of file DAMASK_marc.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 4781 of file DAMASK_marc.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 4718 of file DAMASK_marc.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 5632 of file DAMASK_marc.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 5686 of file DAMASK_marc.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 5618 of file DAMASK_marc.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 5604 of file DAMASK_marc.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 5590 of file DAMASK_marc.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 5672 of file DAMASK_marc.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 4942 of file DAMASK_marc.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 5144 of file DAMASK_marc.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 5214 of file DAMASK_marc.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 5120 of file DAMASK_marc.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 5200 of file DAMASK_marc.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 5106 of file DAMASK_marc.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 5186 of file DAMASK_marc.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 5016 of file DAMASK_marc.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 5091 of file DAMASK_marc.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 4986 of file DAMASK_marc.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 5067 of file DAMASK_marc.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 4956 of file DAMASK_marc.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 5040 of file DAMASK_marc.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 5529 of file DAMASK_marc.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 5576 of file DAMASK_marc.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 5515 of file DAMASK_marc.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 5555 of file DAMASK_marc.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 5501 of file DAMASK_marc.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 5487 of file DAMASK_marc.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 4649 of file DAMASK_marc.f90.

References quaternions::quaternions_init(), and prec::unittest().

Referenced by 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 4798 of file DAMASK_marc.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 4862 of file DAMASK_marc.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 4892 of file DAMASK_marc.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 4923 of file DAMASK_marc.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 4825 of file DAMASK_marc.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 4812 of file DAMASK_marc.f90.

◆ unittest()

subroutine rotations::unittest
private

check correctness of some rotations functions

Definition at line 5783 of file DAMASK_marc.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: