Update Euler angles of each grains after rigid body rotation This class estimates the rotation of principal axes of the grains due to applied torques and calculates the final grain orientation. More...
#include <EulerAngleUpdater.h>
Public Member Functions | |
EulerAngleUpdater (const InputParameters ¶meters) | |
virtual void | initialize () override |
virtual void | execute () override |
virtual void | finalize () override |
virtual const EulerAngles & | getEulerAngles (unsigned int) const override |
virtual const EulerAngles & | getEulerAnglesOld (unsigned int) const |
virtual unsigned int | getGrainNum () const override |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Attributes | |
const GrainTrackerInterface & | _grain_tracker |
const EulerAngleProvider & | _euler |
const GrainForceAndTorqueInterface & | _grain_torque |
const VectorPostprocessorValue & | _grain_volumes |
const Real | _mr |
bool | _first_time |
std::vector< EulerAngles > | _angles |
std::vector< EulerAngles > | _angles_old |
Update Euler angles of each grains after rigid body rotation This class estimates the rotation of principal axes of the grains due to applied torques and calculates the final grain orientation.
Step1: Calculate RotationTensor based on euler angles from previous time step (R0) Step2: Obtain the torque acting on the grains at current time Step Step3: Calculate the angular velocities around global axes Step4: Calculate change in euler angles due to torque and corresponding rotation matrix(R1) Step5: Calculate final rotation matrix, R = R1 * R0, determines the final position of any rotated vector Step6: Back-calculate the euler angles from the final rotation matrix Step7: Ensure euler angles comply with Bunge definitions
Definition at line 36 of file EulerAngleUpdater.h.
EulerAngleUpdater::EulerAngleUpdater | ( | const InputParameters & | parameters | ) |
Definition at line 36 of file EulerAngleUpdater.C.
|
inlineoverridevirtual |
Definition at line 42 of file EulerAngleUpdater.h.
|
inlineoverridevirtual |
Definition at line 43 of file EulerAngleUpdater.h.
|
overridevirtual |
Implements EulerAngleProvider.
Definition at line 168 of file EulerAngleUpdater.C.
Referenced by EulerAngleUpdaterCheck::initialize().
|
virtual |
Definition at line 175 of file EulerAngleUpdater.C.
Referenced by EulerAngleUpdaterCheck::initialize().
|
overridevirtual |
Implements EulerAngleProvider.
Definition at line 162 of file EulerAngleUpdater.C.
Referenced by getEulerAngles(), and getEulerAnglesOld().
|
overridevirtual |
Change in euler angles are obtained from the torque & angular velocities about the material axes. Change in phi1, Phi and phi2 are caused by rotation about z axis, x' axis & z'' axis, respectively. Components of the angular velocities across z, x' and z'' axes are obtained from the torque values. This yields change in euler angles due to grain rotation.
Final RotationMatrix = RotationMatrix due to applied torque X old RotationMatrix Updated Euler angles are obtained by back-tracking the angles from the rotation matrix For details about the componenets of the rotation matrix please refer to RotationTensor.C Phi = acos(R33); phi1 = atan2(R31,-R32); phi2 = atan2(R13,R23) for phi != 0.0 por 180.0
Definition at line 48 of file EulerAngleUpdater.C.
|
staticinherited |
Definition at line 15 of file EulerAngleProvider.C.
Referenced by EulerAngleFileReader::validParams().
|
protected |
Definition at line 58 of file EulerAngleUpdater.h.
Referenced by getEulerAngles(), getGrainNum(), and initialize().
|
protected |
Definition at line 59 of file EulerAngleUpdater.h.
Referenced by getEulerAnglesOld(), and initialize().
|
protected |
Definition at line 51 of file EulerAngleUpdater.h.
Referenced by initialize().
|
protected |
Definition at line 56 of file EulerAngleUpdater.h.
Referenced by initialize().
|
protected |
Definition at line 52 of file EulerAngleUpdater.h.
Referenced by initialize().
|
protected |
Definition at line 50 of file EulerAngleUpdater.h.
Referenced by initialize().
|
protected |
Definition at line 53 of file EulerAngleUpdater.h.
Referenced by initialize().
|
protected |
Definition at line 55 of file EulerAngleUpdater.h.
Referenced by initialize().