Go to the documentation of this file.
11 #include "RankFourTensor.h"
21 params.addRequiredParam<Real>(
"a",
22 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
23 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
24 "f*(stress_yz + stress_zy)/2 - strength");
25 params.addRequiredParam<Real>(
"b",
26 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
27 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
28 "f*(stress_yz + stress_zy)/2 - strength");
29 params.addParam<Real>(
"c",
31 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
32 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
33 "f*(stress_yz + stress_zy)/2 - strength");
34 params.addParam<Real>(
"d",
36 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
37 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
38 "f*(stress_yz + stress_zy)/2 - strength");
39 params.addParam<Real>(
"e",
41 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
42 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
43 "f*(stress_yz + stress_zy)/2 - strength");
44 params.addParam<Real>(
"f",
46 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
47 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
48 "f*(stress_yz + stress_zy)/2 - strength");
49 params.addRequiredParam<Real>(
"strength",
50 "Yield function = a*stress_yy + b*stress_zz + "
51 "c*stress_xx + d*(stress_xy + stress_yx)/2 + "
52 "e*(stress_xz + stress_zx)/2 + f*(stress_yz + "
53 "stress_zy)/2 - strength");
54 params.addClassDescription(
"Class that can be used for testing multi-surface plasticity models. "
55 "Yield function = a*stress_yy + b*stress_zz + c*stress_xx + "
56 "d*(stress_xy + stress_yx)/2 + e*(stress_xz + stress_zx)/2 + "
57 "f*(stress_yz + stress_zy)/2 - strength");
63 const InputParameters & parameters)
65 _a(getParam<Real>(
"a")),
66 _b(getParam<Real>(
"b")),
67 _c(getParam<Real>(
"c")),
68 _d(getParam<Real>(
"d")),
69 _e(getParam<Real>(
"e")),
70 _f(getParam<Real>(
"f")),
71 _strength(getParam<Real>(
"strength"))
79 return _a * stress(1, 1) +
_b * stress(2, 2) +
_c * stress(0, 0) +
80 _d * (stress(0, 1) + stress(1, 0)) / 2.0 +
_e * (stress(0, 2) + stress(2, 0)) / 2.0 +
81 _f * (stress(1, 2) + stress(2, 1)) / 2.0 -
_strength;
92 df_dsig(0, 1) =
_d / 2.0;
93 df_dsig(1, 0) =
_d / 2.0;
94 df_dsig(0, 2) =
_e / 2.0;
95 df_dsig(2, 0) =
_e / 2.0;
96 df_dsig(1, 2) =
_f / 2.0;
97 df_dsig(2, 1) =
_f / 2.0;
131 return "SimpleTester";
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models.
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
static InputParameters validParams()
Class that can be used for testing multi-surface plasticity models.
TensorMechanicsPlasticSimpleTester(const InputParameters ¶meters)
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
static InputParameters validParams()
defineLegacyParams(TensorMechanicsPlasticSimpleTester)
RankTwoTensorTempl< Real > RankTwoTensor
registerMooseObject("TensorMechanicsApp", TensorMechanicsPlasticSimpleTester)
virtual std::string modelName() const override
Plastic Model base class The virtual functions written below must be over-ridden in derived classes t...
RankTwoTensor dyieldFunction_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to stress.
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
RankFourTensorTempl< Real > RankFourTensor