euler Class Reference

A coordinateRotation defined in the z-x-z (intrinsic) Euler convention. More...

Inheritance diagram for euler:
[legend]
Collaboration diagram for euler:
[legend]

Public Types

using eulerOrder = quaternion::eulerOrder
 Euler-angle rotation order. More...
 

Public Member Functions

 TypeNameNoDebug ("euler")
 Runtime type information. More...
 
 euler ()
 Default construct - an identity transform. More...
 
 euler (const euler &crot)
 Copy construct. More...
 
 euler (const vector &angles, bool degrees)
 Construct from Euler intrinsic rotation angles (z-x-z) More...
 
 euler (scalar angle1, scalar angle2, scalar angle3, bool degrees)
 Construct from Euler intrinsic rotation angles (z-x-z) More...
 
 euler (const dictionary &dict)
 Construct from dictionary. More...
 
autoPtr< coordinateRotationclone () const
 Return clone. More...
 
virtual ~euler ()=default
 Destructor. More...
 
virtual void clear ()
 Reset specification. More...
 
virtual tensor R () const
 The rotation tensor calculated for the specified Euler angles. More...
 
virtual void write (Ostream &os) const
 Write information. More...
 
virtual void writeEntry (const word &keyword, Ostream &os) const
 Write dictionary entry. More...
 
- Public Member Functions inherited from coordinateRotation
 TypeNameNoDebug ("coordinateRotation")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, coordinateRotation, dictionary,(const dictionary &dict),(dict))
 
virtual autoPtr< coordinateRotationclone () const =0
 Construct and return a clone. More...
 
virtual ~coordinateRotation ()=default
 Destructor. More...
 
virtual void clear ()=0
 Reset specification. More...
 
virtual tensor R () const =0
 Calculate and return the rotation tensor. More...
 
virtual void write (Ostream &os) const =0
 Write information. More...
 
virtual void writeEntry (const word &keyword, Ostream &os) const =0
 Write dictionary entry. More...
 

Static Public Member Functions

static tensor rotation (const vector &angles, bool degrees=false)
 
static tensor rotation (const eulerOrder order, const vector &angles, bool degrees=false)
 Rotation tensor calculated for given order and angles. More...
 
- Static Public Member Functions inherited from coordinateRotation
static autoPtr< coordinateRotationNew (word modelType, const dictionary &dict)
 Select construct the specified coordinate rotation type. More...
 
static autoPtr< coordinateRotationNew (const dictionary &dict)
 Select construct from dictionary (requires the "type" entry) More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from coordinateRotation
static vector findOrthogonal (const vector &axis)
 Determine best-guess for an orthogonal axis. More...
 

Detailed Description

A coordinateRotation defined in the z-x-z (intrinsic) Euler convention.

The 3 rotations are defined in the Euler intrinsic convention (around Z, around X' and around Z''). The order of the parameter arguments matches this rotation order.

For reference and illustration, see https://en.wikipedia.org/wiki/Euler_angles

rotation
{
    type    euler;
    angles  (0 0 180);
}


Dictionary entries

Property Description Reqd Default
type Type name: euler yes
angles Rotation angles (usually z-x-z order) yes
degrees Angles are in degrees no true
order Rotation order no zxz
Note
The rotation order is usually z-x-z, but can also be something like "rollPitchYaw" etc. Also accepts "EulerRotation" (OpenFOAM-v1806) for the type.
Source files

Definition at line 108 of file EulerCoordinateRotation.H.

Member Typedef Documentation

◆ eulerOrder

Euler-angle rotation order.

Definition at line 117 of file EulerCoordinateRotation.H.

Constructor & Destructor Documentation

◆ euler() [1/5]

euler ( )

Default construct - an identity transform.

Definition at line 253 of file EulerCoordinateRotation.C.

◆ euler() [2/5]

euler ( const euler crot)

Copy construct.

Definition at line 262 of file EulerCoordinateRotation.C.

◆ euler() [3/5]

euler ( const vector angles,
bool  degrees 
)

Construct from Euler intrinsic rotation angles (z-x-z)

Definition at line 271 of file EulerCoordinateRotation.C.

◆ euler() [4/5]

euler ( scalar  angle1,
scalar  angle2,
scalar  angle3,
bool  degrees 
)

Construct from Euler intrinsic rotation angles (z-x-z)

Definition at line 284 of file EulerCoordinateRotation.C.

◆ euler() [5/5]

euler ( const dictionary dict)
explicit

Construct from dictionary.

Definition at line 299 of file EulerCoordinateRotation.C.

◆ ~euler()

virtual ~euler ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeNameNoDebug()

TypeNameNoDebug ( "euler"  )

Runtime type information.

◆ clone()

autoPtr< coordinateRotation > clone ( ) const
inlinevirtual

Return clone.

Implements coordinateRotation.

Definition at line 158 of file EulerCoordinateRotation.H.

◆ rotation() [1/2]

Foam::tensor rotation ( const vector angles,
bool  degrees = false 
)
static

Rotation tensor calculated for the intrinsic Euler angles in z-x-z order

Definition at line 241 of file EulerCoordinateRotation.C.

◆ rotation() [2/2]

Foam::tensor rotation ( const eulerOrder  order,
const vector angles,
bool  degrees = false 
)
static

Rotation tensor calculated for given order and angles.

Definition at line 68 of file EulerCoordinateRotation.C.

References Foam::abort(), Foam::cos(), Foam::degToRad(), Foam::FatalError, FatalErrorInFunction, SphericalTensor< scalar >::I, Foam::sin(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ clear()

void clear ( )
virtual

Reset specification.

Implements coordinateRotation.

Definition at line 318 of file EulerCoordinateRotation.C.

References Foam::Zero.

◆ R()

Foam::tensor R ( ) const
virtual

The rotation tensor calculated for the specified Euler angles.

Implements coordinateRotation.

Definition at line 325 of file EulerCoordinateRotation.C.

References coordinateSystem::rotation().

Here is the call graph for this function:

◆ write()

void write ( Ostream os) const
virtual

Write information.

Implements coordinateRotation.

Definition at line 331 of file EulerCoordinateRotation.C.

References os().

Here is the call graph for this function:

◆ writeEntry()

void writeEntry ( const word keyword,
Ostream os 
) const
virtual

Write dictionary entry.

Implements coordinateRotation.

Definition at line 337 of file EulerCoordinateRotation.C.

References quaternion::eulerOrderNames, os(), and Foam::type().

Here is the call graph for this function:

The documentation for this class was generated from the following files: