21 params.
addParam<std::vector<MaterialPropertyName>>(
22 "h",
"Switching Function Materials that provide h(eta_i)");
24 "Base names for the Phase strains");
25 params.
addParam<std::string>(
"base_name",
"Base name for the computed global stress (optional)");
31 _h_list(getParam<
std::vector<MaterialPropertyName>>(
"h")),
32 _n_phase(_h_list.size()),
34 _phase_base(getParam<
std::vector<
std::string>>(
"phase_base")),
35 _phase_stress(_n_phase),
36 _dphase_stress_dstrain(_n_phase),
37 _base_name(isParamValid(
"base_name") ? getParam<
std::string>(
"base_name") +
"_" :
""),
38 _stress(declareProperty<
RankTwoTensor>(_base_name +
"stress")),
39 _dstress_dstrain(declareProperty<
RankFourTensor>(_base_name +
"Jacobian_mult"))
44 "h and phase_base input vectors need to have the same length in MultiPhaseStressMaterial ",
47 for (
unsigned int i = 0; i <
_n_phase; ++i)
52 &getMaterialProperty<RankFourTensor>(
_phase_base[i] +
"_Jacobian_mult");
62 for (
unsigned int i = 0; i <
_n_phase; ++i)
std::vector< const MaterialProperty< RankFourTensor > * > _dphase_stress_dstrain
MaterialProperty< RankTwoTensor > & _stress
The stress tensor.
unsigned int _n_phase
number of phases handled by this material
registerMooseObject("SolidMechanicsApp", MultiPhaseStressMaterial)
MaterialProperty< RankFourTensor > & _dstress_dstrain
MultiPhaseStressMaterial(const InputParameters ¶meters)
virtual const std::string & name() const
Construct a global strain from the phase strains in a manner that is consistent with the construction...
std::vector< const MaterialProperty< RankTwoTensor > * > _phase_stress
static InputParameters validParams()
static InputParameters validParams()
std::vector< std::string > _phase_base
std::vector< const MaterialProperty< Real > * > _h_eta
switching functions
virtual void computeQpProperties()
void mooseError(Args &&... args) const
std::vector< MaterialPropertyName > _h_list
switching function name list