14 TensorMechanicsPlasticIsotropicSD,
22 params.
addRequiredParam<Real>(
"b",
"A constant to model the influence of pressure");
24 "c", 0.0,
"A constant to model the influence of strength differential effect");
25 params.
addParam<
bool>(
"associative",
true,
"Flag for flow-rule, true if not specified");
26 params.
addClassDescription(
"IsotropicSD plasticity for pressure sensitive materials and also "
27 "models the strength differential effect");
34 _b(getParam<Real>(
"b")),
35 _c(getParam<Real>(
"c")),
36 _associative(getParam<bool>(
"associative"))
38 _a = 1.0 / (
_b + std::pow(1.0 / std::sqrt(27.0) -
_c / 27.0, 1.0 / 3.0));
39 for (
unsigned i = 0; i < 3; ++i)
40 for (
unsigned j = 0; j < 3; ++j)
41 for (
unsigned k = 0; k < 3; ++k)
42 for (
unsigned l = 0; l < 3; ++l)
43 _h(i, j, k, l) = ((i == k) * (j == l) - 1.0 / 3.0 * (i == j) * (k == l));
49 return std::pow(j2, 1.0 / 2.0) / (2 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 2.0 / 3.0));
55 return -
_c / (3 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 2.0 / 3.0));
61 return std::pow(j2, -1.0 / 2.0) / (4 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 2.0 / 3.0)) -
62 j2 / (2 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 5.0 / 3.0));
68 return _c * std::pow(j2, 1.0 / 2.0) /
69 (3 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 5.0 / 3.0));
75 return _c * std::pow(j2, 1.0 / 2.0) /
76 (3 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 5.0 / 3.0));
82 return -
_c *
_c * 2.0 / (9 * std::pow(std::pow(j2, 3.0 / 2.0) -
_c * j3, 5.0 / 3.0));
95 const Real trace = stress.
trace();
96 for (
unsigned i = 0; i < 3; ++i)
97 for (
unsigned j = 0; j < 3; ++j)
98 a(i, j) = (trace - stress(i, j)) * -1 * (i == j) + stress(i, j) * (i != j);
registerMooseObjectRenamed("SolidMechanicsApp", TensorMechanicsPlasticIsotropicSD, "01/01/2025 00:00", SolidMechanicsPlasticIsotropicSD)
registerMooseObject("SolidMechanicsApp", SolidMechanicsPlasticIsotropicSD)
RankTwoTensorTempl< T > innerProductTranspose(const RankTwoTensorTempl< T > &) const
RankTwoTensorTempl< T > ddet() const
T secondInvariant() const
RankTwoTensorTempl< T > deviatoric() const
IsotropicSD plasticity model from Yoon (2013) the name of the paper is "Asymmetric yield function bas...
const Real _b
A constant to model the influence of pressure.
static InputParameters validParams()
Real dfj2_dj3(const Real j2, const Real j3) const
derivative of dphi_dJ2 with respect to J3
SolidMechanicsPlasticIsotropicSD(const InputParameters ¶meters)
Real dphi_dj3(const Real j2, const Real j3) const
derivative of phi with respect to J3
RankTwoTensor dj2_dSkl(const RankTwoTensor &stress) const
derivative of the second invariant with respect to the stress deviatoric tensor
Real dfj2_dj2(const Real j2, const Real j3) const
derivative of dphi_dJ2 with respect to J2
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
Yield_function = a[b*I1 + (J2^{3/2} - c*J3)^{1/3}] - yield_strength.
Real _a
A constant used in the constructor that depends on _b and _c.
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 dfj3_dj2(const Real j2, const Real j3) const
derivative of dphi_dJ3 with respect to J2
const bool _associative
Flag for flow-rule, true if not specified.
RankFourTensor _h
Comes from transforming the stress tensor to the deviatoric stress tensor.
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
Tensor derivative of the yield_function with respect to the stress tensor.
RankTwoTensor dI_sigma() const
derivative of the trace with respect to sigma rank two tensor
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
Receives the flag for associative or non-associative and calculates the flow potential accordingly.
Real _c
A constant to model the influence of strength differential effect.
Real dfj3_dj3(const Real j2, const Real j3) const
derivative of dphi_dJ3 with respect to J3
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}
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.
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
virtual Real yieldStrength(Real intnl) const
YieldStrength.
static InputParameters validParams()