20 params.
addParam<
bool>(
"random_rotations",
22 "Generate random rotations when the Euler Angle "
23 "provider runs out of data (otherwise error "
25 params.
addRequiredParam<std::vector<Real>>(
"C_ijkl",
"Unrotated stiffness tensor");
29 "Name of Euler angle provider user object");
35 _random_rotations(getParam<bool>(
"random_rotations")),
36 _C_ijkl(getParam<
std::vector<Real>>(
"C_ijkl"),
54 mooseError(
"GrainTrackerElasticity has run out of grain rotation data.");
registerMooseObject("PhaseFieldApp", GrainTrackerElasticity)
Abstract base class for user objects that implement the Euler Angle provider interface.
virtual const EulerAngles & getEulerAngles(unsigned int i) const
virtual unsigned int getGrainNum() const
GrainTracker derived class template to base objects on which maintain physical parameters for individ...
Manage a list of elasticity tensors for the grains.
GrainTrackerElasticity(const InputParameters ¶meters)
const bool _random_rotations
generate random rotations when the Euler Angle provider runs out of data (otherwise error out)
const EulerAngleProvider & _euler
object providing the Euler angles
static InputParameters validParams()
RankFourTensor _C_ijkl
unrotated elasticity tensor
RankFourTensor newGrain(unsigned int new_grain_id)
implement this method to initialize the data for the new grain
static InputParameters validParams()
void mooseError(Args &&... args) const
void rotate(const TypeTensor< T > &R)
static MooseEnum fillMethodEnum()
This is a RealTensor version of a rotation matrix It is instantiated with the Euler angles,...