20 "Compute an evolving elasticity tensor coupled to a grain growth phase field model.");
22 "grain_tracker",
"Name of GrainTracker user object that provides RankFourTensors");
23 params.
addParam<
Real>(
"length_scale", 1.0e-9,
"Length scale of the problem, in meters");
24 params.
addParam<
Real>(
"pressure_scale", 1.0e6,
"Pressure scale of the problem, in pa");
26 "v",
"var_name_base",
"op_num",
"Array of coupled variables");
27 params.
addParam<UserObjectName>(
"euler_angle_provider",
28 "Name of Euler angle provider user object");
36 _length_scale(getParam<
Real>(
"length_scale")),
37 _pressure_scale(getParam<
Real>(
"pressure_scale")),
39 _op_num(coupledComponents(
"v")),
40 _vals(coupledValues(
"v")),
41 _euler(isParamValid(
"euler_angle_provider")
44 _crysrot(isParamValid(
"euler_angle_provider")
47 _D_elastic_tensor(_op_num),
51 for (MooseIndex(
_op_num) op_index = 0; op_index <
_op_num; ++op_index)
68 for (MooseIndex(op_to_grains) op_index = 0; op_index < op_to_grains.size(); ++op_index)
70 auto grain_id = op_to_grains[op_index];
93 sum_h = std::max(sum_h,
tol);
97 for (MooseIndex(
_op_num) op_index = 0; op_index <
_op_num; ++op_index)
100 for (MooseIndex(op_to_grains) op_index = 0; op_index < op_to_grains.size(); ++op_index)
102 auto grain_id = op_to_grains[op_index];
const Real _JtoeV
Conversion factor from J to eV.
const T & getData(unsigned int grain_id) const
return data for selected grain
VariableName coupledName(const std::string &var_name, unsigned int comp=0) const
const EulerAngleProvider *const _euler
object providing the Euler angles
ComputeElasticityTensorBase the base class for computing elasticity tensors.
GenericMaterialProperty< T, is_ad > & _elasticity_tensor
ComputePolycrystalElasticityTensor(const InputParameters ¶meters)
const std::vector< const VariableValue * > _vals
Order parameters.
virtual const std::vector< unsigned int > & getVarToFeatureVector(dof_id_type elem_id) const override
Returns a list of active unique feature ids for a particular element.
Compute an evolving elasticity tensor coupled to a grain growth phase field model.
static InputParameters validParams()
registerMooseObject("PhaseFieldApp", ComputePolycrystalElasticityTensor)
static const unsigned int invalid_id
This is a RealTensor version of a rotation matrix It is instantiated with the Euler angles...
const unsigned int _op_num
Number of order parameters.
std::vector< MaterialProperty< RankFourTensor > * > _D_elastic_tensor
vector of elasticity tensor material properties
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::string _elasticity_tensor_name
virtual const EulerAngles & getEulerAngles(unsigned int i) const
const GrainDataTracker< RankFourTensor > & _grain_tracker
Grain tracker object.
virtual void computeQpElasticityTensor()
Abstract base class for user objects that implement the Euler Angle provider interface.
bool isParamValid(const std::string &name) const
static InputParameters validParams()
const Elem *const & _current_elem
GrainTracker derived class template to base objects on which maintain physical parameters for individ...