www.mooseframework.org
TensorMechanicsPlasticMeanCap.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
8 
9 template <>
10 InputParameters
12 {
13  InputParameters params = validParams<TensorMechanicsPlasticModel>();
14  params.addParam<Real>("a", 1.0, "Yield function = a*mean_stress - strength");
15  params.addRequiredParam<UserObjectName>("strength", "Yield function = a*mean_stress - strength");
16  params.addClassDescription("Class that limits the mean stress. Yield function = a*mean_stress - "
17  "strength. mean_stress = (stress_xx + stress_yy + stress_zz)/3");
18 
19  return params;
20 }
21 
23  : TensorMechanicsPlasticModel(parameters),
24  _a_over_3(getParam<Real>("a") / 3.0),
25  _strength(getUserObject<TensorMechanicsHardeningModel>("strength"))
26 {
27 }
28 
29 Real
30 TensorMechanicsPlasticMeanCap::yieldFunction(const RankTwoTensor & stress, Real intnl) const
31 {
32  return _a_over_3 * stress.trace() - _strength.value(intnl);
33 }
34 
35 RankTwoTensor
37  Real /*intnl*/) const
38 {
39  return _a_over_3 * stress.dtrace();
40 }
41 
42 Real
44  Real intnl) const
45 {
46  return -_strength.derivative(intnl);
47 }
48 
49 RankTwoTensor
50 TensorMechanicsPlasticMeanCap::flowPotential(const RankTwoTensor & stress, Real /*intnl*/) const
51 {
52  return _a_over_3 * stress.dtrace();
53 }
54 
55 RankFourTensor
57  Real /*intnl*/) const
58 {
59  return RankFourTensor();
60 }
61 
62 RankTwoTensor
64  Real /*intnl*/) const
65 {
66  return RankTwoTensor();
67 }
68 
69 std::string
71 {
72  return "MeanCap";
73 }
RankFourTensor dflowPotential_dstress(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to stress.
TensorMechanicsPlasticMeanCap(const InputParameters &parameters)
RankTwoTensor dflowPotential_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of the flow potential with respect to the internal parameter.
virtual Real derivative(Real intnl) const
InputParameters validParams< TensorMechanicsPlasticMeanCap >()
const TensorMechanicsHardeningModel & _strength
strength
RankTwoTensor flowPotential(const RankTwoTensor &stress, Real intnl) const override
The flow potential.
InputParameters validParams< TensorMechanicsPlasticModel >()
Real yieldFunction(const RankTwoTensor &stress, Real intnl) const override
The following functions are what you should override when building single-plasticity models...
virtual Real value(Real intnl) const
Real dyieldFunction_dintnl(const RankTwoTensor &stress, Real intnl) const override
The derivative of yield function with respect to the internal parameter.
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.