www.mooseframework.org
EulerAngleUpdater.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 EulerAngleUpdater;
16 class RotationTensor;
19 
20 template <>
21 InputParameters validParams<EulerAngleUpdater>();
22 
37 {
38 public:
39  EulerAngleUpdater(const InputParameters & parameters);
40 
41  virtual void initialize() override;
42  virtual void execute() override {}
43  virtual void finalize() override {}
44 
45  virtual const EulerAngles & getEulerAngles(unsigned int) const override;
46  virtual const EulerAngles & getEulerAnglesOld(unsigned int) const;
47  virtual unsigned int getGrainNum() const override;
48 
49 protected:
53  const VectorPostprocessorValue & _grain_volumes;
54 
55  const Real _mr;
57 
58  std::vector<EulerAngles> _angles;
59  std::vector<EulerAngles> _angles_old;
60 };
61 
EulerAngleUpdater::getGrainNum
virtual unsigned int getGrainNum() const override
Definition: EulerAngleUpdater.C:162
GrainTrackerInterface
This class defines the interface for the GrainTracking objects.
Definition: GrainTrackerInterface.h:24
EulerAngleProvider.h
EulerAngleUpdater::_grain_tracker
const GrainTrackerInterface & _grain_tracker
Definition: EulerAngleUpdater.h:50
EulerAngleUpdater::_euler
const EulerAngleProvider & _euler
Definition: EulerAngleUpdater.h:51
EulerAngleUpdater::getEulerAnglesOld
virtual const EulerAngles & getEulerAnglesOld(unsigned int) const
Definition: EulerAngleUpdater.C:175
EulerAngleUpdater::finalize
virtual void finalize() override
Definition: EulerAngleUpdater.h:43
EulerAngleUpdater::_grain_volumes
const VectorPostprocessorValue & _grain_volumes
Definition: EulerAngleUpdater.h:53
EulerAngleProvider
Abstract base class for user objects that implement the Euler Angle provider interface.
Definition: EulerAngleProvider.h:24
EulerAngleUpdater::EulerAngleUpdater
EulerAngleUpdater(const InputParameters &parameters)
Definition: EulerAngleUpdater.C:36
EulerAngleUpdater
Update Euler angles of each grains after rigid body rotation This class estimates the rotation of pri...
Definition: EulerAngleUpdater.h:36
RotationTensor
This is a RealTensor version of a rotation matrix It is instantiated with the Euler angles,...
Definition: RotationTensor.h:29
validParams< EulerAngleUpdater >
InputParameters validParams< EulerAngleUpdater >()
Definition: EulerAngleUpdater.C:19
EulerAngleUpdater::_angles
std::vector< EulerAngles > _angles
Definition: EulerAngleUpdater.h:58
EulerAngleUpdater::_mr
const Real _mr
Definition: EulerAngleUpdater.h:55
EulerAngleUpdater::_first_time
bool _first_time
Definition: EulerAngleUpdater.h:56
EulerAngleUpdater::_grain_torque
const GrainForceAndTorqueInterface & _grain_torque
Definition: EulerAngleUpdater.h:52
EulerAngles
Euler angle triplet.
Definition: EulerAngles.h:22
EulerAngleUpdater::initialize
virtual void initialize() override
Definition: EulerAngleUpdater.C:48
EulerAngleUpdater::getEulerAngles
virtual const EulerAngles & getEulerAngles(unsigned int) const override
Definition: EulerAngleUpdater.C:168
EulerAngleUpdater::_angles_old
std::vector< EulerAngles > _angles_old
Definition: EulerAngleUpdater.h:59
EulerAngleUpdater::execute
virtual void execute() override
Definition: EulerAngleUpdater.h:42
GrainForceAndTorqueInterface
This class provides interface for extracting the forces and torques computed in other UserObjects.
Definition: GrainForceAndTorqueInterface.h:24