Public Member Functions | Private Member Functions | Private Attributes
EulerCoordinateRotation Class Reference

A coordinateRotation defined in the z-x-y Euler convention. More...

Inheritance diagram for EulerCoordinateRotation:
Inheritance graph
[legend]
Collaboration diagram for EulerCoordinateRotation:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("EulerRotation")
 Runtime type information. More...
 
 EulerCoordinateRotation ()
 Construct null. More...
 
 EulerCoordinateRotation (const vector &phiThetaPsi, const bool inDegrees=true)
 Construct from rotation vector. More...
 
 EulerCoordinateRotation (const scalar phiAngle, const scalar thetaAngle, const scalar psiAngle, const bool inDegrees=true)
 Construct from components of rotation vector. More...
 
 EulerCoordinateRotation (const dictionary &)
 Construct from dictionary. More...
 
 EulerCoordinateRotation (const dictionary &, const objectRegistry &)
 Construct from dictionary and mesh. More...
 
 EulerCoordinateRotation (const EulerCoordinateRotation &)
 Construct as copy. More...
 
autoPtr< coordinateRotationclone () const
 Return clone. More...
 
virtual void clear ()
 Reset rotation to an identity rotation. More...
 
virtual void updateCells (const polyMesh &, const labelList &)
 Update the rotation for a list of cells. More...
 
virtual const tensorR () const
 Return local-to-global transformation tensor. More...
 
virtual const tensorRtr () const
 Return global-to-local transformation tensor. More...
 
virtual const vector e1 () const
 Return local Cartesian x-axis. More...
 
virtual const vector e2 () const
 Return local Cartesian y-axis. More...
 
virtual const vector e3 () const
 Return local Cartesian z-axis. More...
 
virtual const tensorFieldTr () const
 Return transformation tensor field. More...
 
virtual tmp< vectorFieldtransform (const vectorField &st) const
 Transform vectorField using transformation tensor field. More...
 
virtual vector transform (const vector &st) const
 Transform vector using transformation tensor. More...
 
virtual tmp< vectorFieldinvTransform (const vectorField &st) const
 Inverse transform vectorField using transformation tensor field. More...
 
virtual vector invTransform (const vector &st) const
 Inverse transform vector using transformation tensor. More...
 
virtual tmp< tensorFieldtransformTensor (const tensorField &st) const
 Transform tensor field using transformation tensorField. More...
 
virtual tensor transformTensor (const tensor &st) const
 Transform tensor using transformation tensorField. More...
 
virtual tmp< tensorFieldtransformTensor (const tensorField &st, const labelList &cellMap) const
 Transform tensor sub-field using transformation tensorField. More...
 
virtual tmp< symmTensorFieldtransformVector (const vectorField &st) const
 Transform vectorField using transformation tensorField and return. More...
 
virtual symmTensor transformVector (const vector &st) const
 Transform vector using transformation tensor and return. More...
 
virtual void write (Ostream &) const
 Write. More...
 
- Public Member Functions inherited from coordinateRotation
 TypeName ("coordinateRotation")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, coordinateRotation, objectRegistry,(const dictionary &dict, const objectRegistry &obr),(dict, obr))
 
 declareRunTimeSelectionTable (autoPtr, coordinateRotation, dictionary,(const dictionary &dict),(dict))
 
virtual ~coordinateRotation ()
 Destructor. More...
 
virtual bool uniform () const
 Return true if the rotation tensor is uniform. More...
 

Private Member Functions

void calcTransform (const scalar phiAngle, const scalar thetaAngle, const scalar psiAngle, const bool inDegrees=true)
 Calculate transformation tensor. More...
 

Private Attributes

tensor R_
 Local-to-global transformation tensor. More...
 
tensor Rtr_
 Global-to-Local transformation tensor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from coordinateRotation
static autoPtr< coordinateRotationNew (const dictionary &dict, const objectRegistry &obr)
 Select constructed from dictionary and objectRegistry. More...
 
static autoPtr< coordinateRotationNew (const dictionary &dict)
 Select constructed from dictionary. More...
 
- Protected Member Functions inherited from coordinateRotation
symmTensor transformPrincipal (const tensor &, const vector &) const
 Transform principal. More...
 

Detailed Description

A coordinateRotation defined in the z-x-y Euler convention.

The 3 rotations are defined in the Euler convention (around Z, around X' and around Z'). For reference and illustration, see http://mathworld.wolfram.com/EulerAngles.html Note, however, that it is the reverse transformation (local->global) that is defined here.

    coordinateRotation
    {
        type        EulerRotation
        degrees     false;
        rotation    (0 0 3.141592654);
    }

Definition at line 63 of file EulerCoordinateRotation.H.

Constructor & Destructor Documentation

◆ EulerCoordinateRotation() [1/6]

Construct null.

Definition at line 195 of file EulerCoordinateRotation.C.

◆ EulerCoordinateRotation() [2/6]

EulerCoordinateRotation ( const vector phiThetaPsi,
const bool  inDegrees = true 
)

Construct from rotation vector.

Definition at line 203 of file EulerCoordinateRotation.C.

References VectorSpace::component(), Vector< scalar >::X, Vector< scalar >::Y, and Vector< scalar >::Z.

Here is the call graph for this function:

◆ EulerCoordinateRotation() [3/6]

EulerCoordinateRotation ( const scalar  phiAngle,
const scalar  thetaAngle,
const scalar  psiAngle,
const bool  inDegrees = true 
)

Construct from components of rotation vector.

Definition at line 222 of file EulerCoordinateRotation.C.

◆ EulerCoordinateRotation() [4/6]

Construct from dictionary.

Definition at line 237 of file EulerCoordinateRotation.C.

References VectorSpace::component(), dict, dictionary::lookup(), dictionary::lookupOrDefault(), Vector< scalar >::X, Vector< scalar >::Y, and Vector< scalar >::Z.

Here is the call graph for this function:

◆ EulerCoordinateRotation() [5/6]

EulerCoordinateRotation ( const dictionary dict,
const objectRegistry  
)

Construct from dictionary and mesh.

Definition at line 257 of file EulerCoordinateRotation.C.

References VectorSpace::component(), dict, dictionary::lookup(), dictionary::lookupOrDefault(), Vector< scalar >::X, Vector< scalar >::Y, and Vector< scalar >::Z.

Here is the call graph for this function:

◆ EulerCoordinateRotation() [6/6]

Construct as copy.

Definition at line 278 of file EulerCoordinateRotation.C.

Member Function Documentation

◆ calcTransform()

void calcTransform ( const scalar  phiAngle,
const scalar  thetaAngle,
const scalar  psiAngle,
const bool  inDegrees = true 
)
private

Calculate transformation tensor.

Definition at line 153 of file EulerCoordinateRotation.C.

References Foam::cos(), phi, Foam::constant::mathematical::pi(), psi, and Foam::sin().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "EulerRotation"  )

Runtime type information.

◆ clone()

autoPtr<coordinateRotation> clone ( ) const
inlinevirtual

Return clone.

Implements coordinateRotation.

Definition at line 126 of file EulerCoordinateRotation.H.

◆ clear()

virtual void clear ( )
inlinevirtual

Reset rotation to an identity rotation.

Implements coordinateRotation.

Definition at line 141 of file EulerCoordinateRotation.H.

References SphericalTensor< Cmpt >::I, EulerCoordinateRotation::R_, and EulerCoordinateRotation::Rtr_.

◆ updateCells()

virtual void updateCells ( const polyMesh ,
const labelList  
)
inlinevirtual

Update the rotation for a list of cells.

Implements coordinateRotation.

Definition at line 148 of file EulerCoordinateRotation.H.

◆ R()

virtual const tensor& R ( ) const
inlinevirtual

Return local-to-global transformation tensor.

Implements coordinateRotation.

Definition at line 154 of file EulerCoordinateRotation.H.

References EulerCoordinateRotation::R_.

◆ Rtr()

virtual const tensor& Rtr ( ) const
inlinevirtual

Return global-to-local transformation tensor.

Implements coordinateRotation.

Definition at line 160 of file EulerCoordinateRotation.H.

References EulerCoordinateRotation::Rtr_.

◆ e1()

virtual const vector e1 ( ) const
inlinevirtual

Return local Cartesian x-axis.

Implements coordinateRotation.

Definition at line 166 of file EulerCoordinateRotation.H.

References EulerCoordinateRotation::R_, and Tensor::x().

Here is the call graph for this function:

◆ e2()

virtual const vector e2 ( ) const
inlinevirtual

Return local Cartesian y-axis.

Implements coordinateRotation.

Definition at line 172 of file EulerCoordinateRotation.H.

References EulerCoordinateRotation::R_, and Tensor::y().

Here is the call graph for this function:

◆ e3()

virtual const vector e3 ( ) const
inlinevirtual

Return local Cartesian z-axis.

Implements coordinateRotation.

Definition at line 178 of file EulerCoordinateRotation.H.

References EulerCoordinateRotation::R_, and Tensor::z().

Here is the call graph for this function:

◆ Tr()

const Foam::tensorField & Tr ( ) const
virtual

Return transformation tensor field.

Implements coordinateRotation.

Definition at line 87 of file EulerCoordinateRotation.C.

References NotImplemented.

◆ transform() [1/2]

Foam::tmp< Foam::vectorField > transform ( const vectorField st) const
virtual

Transform vectorField using transformation tensor field.

Implements coordinateRotation.

Definition at line 68 of file EulerCoordinateRotation.C.

References NotImplemented.

◆ transform() [2/2]

Foam::vector transform ( const vector st) const
virtual

Transform vector using transformation tensor.

Implements coordinateRotation.

Definition at line 52 of file EulerCoordinateRotation.C.

References EulerCoordinateRotation::R_.

◆ invTransform() [1/2]

Foam::tmp< Foam::vectorField > invTransform ( const vectorField st) const
virtual

Inverse transform vectorField using transformation tensor field.

Implements coordinateRotation.

Definition at line 78 of file EulerCoordinateRotation.C.

References NotImplemented.

◆ invTransform() [2/2]

Foam::vector invTransform ( const vector st) const
virtual

Inverse transform vector using transformation tensor.

Implements coordinateRotation.

Definition at line 59 of file EulerCoordinateRotation.C.

◆ transformTensor() [1/3]

Foam::tmp< Foam::tensorField > transformTensor ( const tensorField st) const
virtual

Transform tensor field using transformation tensorField.

Implements coordinateRotation.

Definition at line 95 of file EulerCoordinateRotation.C.

References NotImplemented.

◆ transformTensor() [2/3]

Foam::tensor transformTensor ( const tensor st) const
virtual

Transform tensor using transformation tensorField.

Implements coordinateRotation.

Definition at line 105 of file EulerCoordinateRotation.C.

◆ transformTensor() [3/3]

Foam::tmp< Foam::tensorField > transformTensor ( const tensorField st,
const labelList cellMap 
) const
virtual

Transform tensor sub-field using transformation tensorField.

Implements coordinateRotation.

Definition at line 114 of file EulerCoordinateRotation.C.

References NotImplemented.

◆ transformVector() [1/2]

Foam::tmp< Foam::symmTensorField > transformVector ( const vectorField st) const
virtual

Transform vectorField using transformation tensorField and return.

symmetrical tensorField

Implements coordinateRotation.

Definition at line 126 of file EulerCoordinateRotation.C.

References fld(), and forAll.

Here is the call graph for this function:

◆ transformVector() [2/2]

Foam::symmTensor transformVector ( const vector st) const
virtual

Transform vector using transformation tensor and return.

symmetrical tensor

Implements coordinateRotation.

Definition at line 142 of file EulerCoordinateRotation.C.

◆ write()

void write ( Ostream os) const
virtual

Write.

Implements coordinateRotation.

Definition at line 287 of file EulerCoordinateRotation.C.

References token::END_STATEMENT, Foam::nl, and Ostream::writeKeyword().

Here is the call graph for this function:

Field Documentation

◆ R_

tensor R_
private

◆ Rtr_

tensor Rtr_
private

Global-to-Local transformation tensor.

Definition at line 74 of file EulerCoordinateRotation.H.

Referenced by EulerCoordinateRotation::clear(), and EulerCoordinateRotation::Rtr().


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