Go to the documentation of this file.
20 params.addRequiredParam<Real>(
"b",
"A constant to model the influence of pressure");
21 params.addParam<Real>(
22 "c", 0.0,
"A constant to model the influence of strength differential effect");
23 params.addParam<
bool>(
"associative",
true,
"Flag for flow-rule, true if not specified");
24 params.addClassDescription(
"IsotropicSD plasticity for pressure sensitive materials and also "
25 "models the strength differential effect");
30 const InputParameters & parameters)
32 _b(getParam<Real>(
"b")),
33 _c(getParam<Real>(
"c")),
34 _associative(getParam<bool>(
"associative"))
36 _a = 1.0 / (
_b +
std::pow(1.0 / std::sqrt(27.0) -
_c / 27.0, 1.0 / 3.0));
37 for (
unsigned i = 0; i < 3; ++i)
38 for (
unsigned j = 0; j < 3; ++j)
39 for (
unsigned k = 0; k < 3; ++k)
40 for (
unsigned l = 0; l < 3; ++l)
41 _h(i, j, k, l) = ((i == k) * (j == l) - 1.0 / 3.0 * (i == j) * (k == l));
93 const Real trace = stress.trace();
94 for (
unsigned i = 0; i < 3; ++i)
95 for (
unsigned j = 0; j < 3; ++j)
96 a(i, j) = (trace - stress(i, j)) * -1 * (i == j) + stress(i, j) * (i != j);
104 return _a * (
_b * stress.trace() +
115 const Real j2 = stress.secondInvariant();
116 const Real j3 = stress.thirdInvariant();
118 dphi_dj3(j2, j3) *
_h.innerProductTranspose(sDev.ddet()));
130 const Real j2 = stress.secondInvariant();
131 const Real j3 = stress.thirdInvariant();
133 _h.innerProductTranspose(dj2).outerProduct(
_h.innerProductTranspose(dj2)) +
135 _h.innerProductTranspose(dj2).outerProduct(
_h.innerProductTranspose(dj3)) +
137 _h.innerProductTranspose(dj3).outerProduct(
_h.innerProductTranspose(dj2)) +
139 _h.innerProductTranspose(dj3).outerProduct(
_h.innerProductTranspose(dj3)));
const Real _b
A constant to model the influence of pressure.
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
Tensor derivative of the tensor derivative of the yield_function with respect to the stress tensor.
Real _c
A constant to model the influence of strength differential effect.
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
static InputParameters validParams()
TensorMechanicsPlasticIsotropicSD(const InputParameters ¶meters)
virtual Real yieldStrength(Real intnl) const
YieldStrength.
J2 plasticity, associative, with hardning.
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
Real dphi_dj3(const Real j2, const Real j3) const
derivative of phi with respect to J3
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
Yield_function = a[b*I1 + (J2^{3/2} - c*J3)^{1/3}] - yield_strength.
defineLegacyParams(TensorMechanicsPlasticIsotropicSD)
static InputParameters validParams()
RankFourTensor _h
Comes from transforming the stress tensor to the deviatoric stress tensor.
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Real dphi_dj2(const Real j2, const Real j3) const
derivative of phi with respect to J2, phi is b*I1 + (J2^{3/2} - c*J3)^{1/3}
Real dfj3_dj3(const Real j2, const Real j3) const
derivative of dphi_dJ3 with respect to J3
Real _a
A constant used in the constructor that depends on _b and _c.
Real dfj3_dj2(const Real j2, const Real j3) const
derivative of dphi_dJ3 with respect to J2
RankTwoTensorTempl< Real > RankTwoTensor
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
Receives the flag for associative or non-associative and calculates the flow potential accordingly.
Real dfj2_dj2(const Real j2, const Real j3) const
derivative of dphi_dJ2 with respect to J2
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
Tensor derivative of the yield_function with respect to the stress tensor.
registerMooseObject("TensorMechanicsApp", TensorMechanicsPlasticIsotropicSD)
RankTwoTensor dI_sigma() const
derivative of the trace with respect to sigma rank two tensor
IsotropicSD plasticity model from Yoon (2013) the name of the paper is "Asymmetric yield function bas...
const bool _associative
Flag for flow-rule, true if not specified.
RankTwoTensor dj2_dSkl(const RankTwoTensor &stress) const
derivative of the second invariant with respect to the stress deviatoric tensor
Real dfj2_dj3(const Real j2, const Real j3) const
derivative of dphi_dJ2 with respect to J3