https://mooseframework.inl.gov
EulerAngleUpdater.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "EulerAngleProvider.h"
13 
14 // Forward declaration
15 class RotationTensor;
18 
33 {
34 public:
36 
38 
39  virtual void initialize() override;
40  virtual void execute() override {}
41  virtual void finalize() override {}
42 
43  virtual const EulerAngles & getEulerAngles(unsigned int) const override;
44  virtual const EulerAngles & getEulerAnglesOld(unsigned int) const;
45  virtual unsigned int getGrainNum() const override;
46 
47 protected:
52 
53  const Real _mr;
55  bool & _first_time;
59 
61  std::vector<EulerAngles> & _angles;
63  std::vector<EulerAngles> & _angles_old;
64 };
const GrainTrackerInterface & _grain_tracker
const GrainForceAndTorqueInterface & _grain_torque
This class defines the interface for the GrainTracking objects.
This class provides interface for extracting the forces and torques computed in other UserObjects...
const VectorPostprocessorValue & _grain_volumes
virtual void finalize() override
bool _first_time_recovered
Whether the simulation has recovered once.
virtual unsigned int getGrainNum() const override
std::vector< EulerAngles > & _angles_old
Previous set of Euler angles, used when the time step failed to reset the angles (pre-update) ...
const EulerAngleProvider & _euler
virtual const EulerAngles & getEulerAnglesOld(unsigned int) const
static InputParameters validParams()
Update Euler angles of each grains after rigid body rotation This class estimates the rotation of pri...
virtual const EulerAngles & getEulerAngles(unsigned int) const override
This is a RealTensor version of a rotation matrix It is instantiated with the Euler angles...
EulerAngleUpdater(const InputParameters &parameters)
std::vector< Real > VectorPostprocessorValue
virtual void initialize() override
virtual void execute() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
bool & _first_time
Whether this is the first time updating angles, in which case the initial euler angle provider should...
Euler angle triplet.
Definition: EulerAngles.h:24
const InputParameters & parameters() const
std::vector< EulerAngles > & _angles
Current set of Euler angles (one per grain), updated on initialize()
Abstract base class for user objects that implement the Euler Angle provider interface.