20 "Name of stress based chemical potential");
21 params.
addRequiredParam<MaterialPropertyName>(
"stress_name",
"Name of stress property variable");
23 "Name of direction tensor variable");
24 params.
addRequiredParam<MaterialPropertyName>(
"prefactor_name",
"Name of prefactor variable");
31 _chemical_potential(declareProperty<Real>(getParam<MaterialPropertyName>(
"property_name"))),
32 _stress_old(getMaterialPropertyOld<
RankTwoTensor>(
"stress_name")),
33 _direction_tensor(getMaterialProperty<RealTensorValue>(
"direction_tensor_name")),
34 _prefactor(getMaterialProperty<Real>(
"prefactor_name")),
35 _has_coupled_c(isCoupled(
"c") && !isCoupledConstant(
"c"))
40 getParam<MaterialPropertyName>(
"property_name"), coupledName(
"c", 0));
41 _dprefactor_dc = &getMaterialPropertyDerivative<Real>(
"prefactor_name", coupledName(
"c", 0));
51 (*_dchemical_potential)[_qp] = 0.0;
62 (*_dchemical_potential)[_qp] =
63 -
_stress_old[_qp].doubleContraction(direction_tensor_rank_two) * (*_dprefactor_dc)[_qp];
registerMooseObject("SolidMechanicsApp", StressBasedChemicalPotential)
static InputParameters validParams()
StressBasedChemicalPotential computes chemical potential based on stress and a direction tensor Fores...
MaterialProperty< Real > & _chemical_potential
const MaterialProperty< Real > & _prefactor
MaterialProperty< Real > * _dchemical_potential
StressBasedChemicalPotential(const InputParameters ¶meters)
const MaterialProperty< RankTwoTensor > & _stress_old
The old stress tensor.
const MaterialProperty< Real > * _dprefactor_dc
const MaterialProperty< RealTensorValue > & _direction_tensor
virtual void initQpStatefulProperties()
virtual void computeQpProperties()
static InputParameters validParams()