Go to the documentation of this file.
12 #include "RankTwoTensor.h"
20 params.addParam<std::string>(
"base_name",
21 "Optional parameter that allows the user to define "
22 "multiple mechanics material systems on the same "
23 "block, i.e. for multiple phases");
24 params.addRequiredParam<std::string>(
"eigenstrain_name",
25 "Material property name for the eigenstrain tensor computed "
26 "by this model. IMPORTANT: The name of this property must "
27 "also be provided to the strain calculator.");
32 : Material(parameters),
33 _base_name(isParamValid(
"base_name") ? getParam<std::string>(
"base_name") +
"_" :
""),
34 _eigenstrain_name(_base_name + getParam<std::string>(
"eigenstrain_name")),
35 _eigenstrain(declareProperty<
RankTwoTensor>(_eigenstrain_name)),
36 _step_zero(declareRestartableData<bool>(
"step_zero", true))
76 return std::log(volumetric_strain + 1.0) / 3.0;
static InputParameters validParams()
ComputeEigenstrainBase(const InputParameters ¶meters)
bool & _step_zero
Restartable data to check for the zeroth and first time steps for thermal calculations.
virtual void computeQpEigenstrain()=0
Compute the eigenstrain and store in _eigenstrain.
virtual void computeQpProperties()
InputParameters validParams()
Real computeVolumetricStrainComponent(const Real volumetric_strain) const
Helper function for models that compute the eigenstrain based on a volumetric strain.
virtual void initQpStatefulProperties()
ComputeEigenstrainBase is the base class for eigenstrain tensors.
MaterialProperty< RankTwoTensor > & _eigenstrain
Stores the current total eigenstrain.
defineLegacyParams(ComputeEigenstrainBase)