www.mooseframework.org
TensorMechanicsHardeningPowerRule.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<TensorMechanicsHardeningModel>();
14  params.addRequiredParam<Real>("value_0", "The yield strength when internal variable = 0");
15  params.addParam<Real>("epsilon0", 1.0, "The reference strain");
16  params.addParam<Real>(
17  "exponent",
18  0.0,
19  "Let p = internal_parameter. Then value = value_0 * (p / epsilon0 + 1)^{exponent})");
20  params.addClassDescription("Hardening defined by power rule");
21  return params;
22 }
23 
25  const InputParameters & parameters)
26  : TensorMechanicsHardeningModel(parameters),
27  _value_0(getParam<Real>("value_0")),
28  _epsilon0(getParam<Real>("epsilon0")),
29  _exponent(getParam<Real>("exponent"))
30 {
31 }
32 
33 Real
35 {
36  return _value_0 * std::pow(intnl / _epsilon0 + 1, _exponent);
37 }
38 
39 Real
41 {
42  return _value_0 * _exponent / _epsilon0 * std::pow(intnl / _epsilon0 + 1, _exponent - 1);
43 }
44 
45 std::string
47 {
48  return "PowerRule";
49 }
const Real _exponent
The value = value_0 * (p / epsilon0 + 1)^{exponent})
TensorMechanicsHardeningPowerRule(const InputParameters &parameters)
virtual std::string modelName() const override
InputParameters validParams< TensorMechanicsHardeningModel >()
const Real _epsilon0
The value = value_0 * (p / epsilon0 + 1)^{exponent})
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
const Real _value_0
The value = value_0 * (p / epsilon0 + 1)^{exponent})
InputParameters validParams< TensorMechanicsHardeningPowerRule >()
virtual Real value(Real intnl) const override
virtual Real derivative(Real intnl) const override