14 TensorMechanicsPlasticIsotropicSD,
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));
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);
RankFourTensorTempl< Real > outerProduct(const RankTwoTensorTempl< Real > &b) const
Real dfj3_dj2(const Real j2, const Real j3) const
derivative of dphi_dJ3 with respect to J2
registerMooseObjectRenamed("SolidMechanicsApp", TensorMechanicsPlasticIsotropicSD, "01/01/2025 00:00", SolidMechanicsPlasticIsotropicSD)
Real dfj2_dj3(const Real j2, const Real j3) const
derivative of dphi_dJ2 with respect to J3
Real dfj3_dj3(const Real j2, const Real j3) const
derivative of dphi_dJ3 with respect to J3
RankTwoTensorTempl< T > innerProductTranspose(const RankTwoTensorTempl< T > &) const
const bool _associative
Flag for flow-rule, true if not specified.
const Real _b
A constant to model the influence of pressure.
static InputParameters validParams()
Real secondInvariant() const
RankTwoTensor dI_sigma() const
derivative of the trace with respect to sigma rank two tensor
registerMooseObject("SolidMechanicsApp", SolidMechanicsPlasticIsotropicSD)
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
Yield_function = a[b*I1 + (J2^{3/2} - c*J3)^{1/3}] - yield_strength.
RankTwoTensor dj2_dSkl(const RankTwoTensor &stress) const
derivative of the second invariant with respect to the stress deviatoric tensor
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}
RankTwoTensorTempl< Real > deviatoric() const
J2 plasticity, associative, with hardning.
virtual RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
Real dphi_dj3(const Real j2, const Real j3) const
derivative of phi with respect to J3
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...
SolidMechanicsPlasticIsotropicSD(const InputParameters ¶meters)
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 thirdInvariant() const
virtual Real yieldStrength(Real intnl) const
YieldStrength.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
RankTwoTensorTempl< Real > ddet() const
IsotropicSD plasticity model from Yoon (2013) the name of the paper is "Asymmetric yield function bas...
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
Real _a
A constant used in the constructor that depends on _b and _c.
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.
MooseUnits pow(const MooseUnits &, int)
static const std::string k
RankFourTensor _h
Comes from transforming the stress tensor to the deviatoric stress tensor.
static InputParameters validParams()