www.mooseframework.org
TensorMechanicsHardeningGaussian.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>(
20  "internal_0", 0, "The value of the internal_parameter when hardening begins");
21  params.addParam<Real>("rate",
22  0,
23  "Let p = internal_parameter. Then value = value_0 for "
24  "p<internal_0, and value = value_residual + (value_0 - "
25  "value_residual)*exp(-0.5*rate*(p - internal_0)^2)");
26  params.addClassDescription("Hardening is Gaussian");
27  return params;
28 }
29 
31  const InputParameters & parameters)
32  : TensorMechanicsHardeningModel(parameters),
33  _val_0(getParam<Real>("value_0")),
34  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
35  _intnl_0(getParam<Real>("internal_0")),
36  _rate(getParam<Real>("rate"))
37 {
38 }
39 
40 Real
42 {
43  Real x = intnl - _intnl_0;
44  if (x <= 0)
45  return _val_0;
46  else
47  return _val_res + (_val_0 - _val_res) * std::exp(-0.5 * _rate * x * x);
48 }
49 
50 Real
52 {
53  Real x = intnl - _intnl_0;
54  if (x <= 0)
55  return 0;
56  else
57  return -_rate * x * (_val_0 - _val_res) * std::exp(-0.5 * _rate * x * x);
58 }
59 
60 std::string
62 {
63  return "Gaussian";
64 }
InputParameters validParams< TensorMechanicsHardeningModel >()
Real _val_0
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0. Here p = internal parameter.
Real _intnl_0
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0. Here p = internal parameter.
virtual Real value(Real intnl) const override
Real _val_res
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0. Here p = internal parameter.
InputParameters validParams< TensorMechanicsHardeningGaussian >()
virtual std::string modelName() const override
virtual Real derivative(Real intnl) const override
Real _rate
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0. Here p = internal parameter.
TensorMechanicsHardeningGaussian(const InputParameters &parameters)