www.mooseframework.org
TensorMechanicsHardeningCutExponential.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>(
15  "value_0", "The value of the parameter for all internal_parameter <= internal_0");
16  params.addParam<Real>("value_residual",
17  "The value of the parameter for internal_parameter = "
18  "infinity. Default = value_0, ie perfect plasticity");
19  params.addParam<Real>("internal_0", 0, "The cutoff of internal parameter");
20  params.addParam<Real>("rate",
21  0,
22  "Let p = internal_parameter. Then value = value_0 for "
23  "p<internal_0, and otherwise, value = value_residual + (value_0 "
24  "- value_residual)*exp(-rate*(p - internal_0)");
25  params.addClassDescription("Hardening is Cut-exponential");
26  return params;
27 }
28 
30  const InputParameters & parameters)
31  : TensorMechanicsHardeningModel(parameters),
32  _val_0(getParam<Real>("value_0")),
33  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
34  _intnl_0(getParam<Real>("internal_0")),
35  _rate(getParam<Real>("rate"))
36 {
37 }
38 
39 Real
41 {
42  Real x = intnl - _intnl_0;
43  if (x <= 0)
44  return _val_0;
45  else
46  return _val_res + (_val_0 - _val_res) * std::exp(-_rate * x);
47 }
48 
49 Real
51 {
52  Real x = intnl - _intnl_0;
53  if (x <= 0)
54  return 0;
55  else
56  return -_rate * (_val_0 - _val_res) * std::exp(-_rate * x);
57 }
58 
59 std::string
61 {
62  return "CutExponential";
63 }
InputParameters validParams< TensorMechanicsHardeningModel >()
InputParameters validParams< TensorMechanicsHardeningCutExponential >()
virtual Real derivative(Real intnl) const override
Real _val_res
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)), for internal_parameter >= _intnl_0, otherwise value = _val_0.
TensorMechanicsHardeningCutExponential(const InputParameters &parameters)
Real _intnl_0
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)), for internal_parameter >= _intnl_0, otherwise value = _val_0.
Real _rate
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)), for internal_parameter >= _intnl_0, otherwise value = _val_0.
Real _val_0
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)), for internal_parameter >= _intnl_0, otherwise value = _val_0.