www.mooseframework.org
TensorMechanicsHardeningGaussian.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
11 
13 
15 
16 InputParameters
18 {
19  InputParameters params = TensorMechanicsHardeningModel::validParams();
20  params.addRequiredParam<Real>(
21  "value_0", "The value of the parameter for all internal_parameter <= internal_0");
22  params.addParam<Real>("value_residual",
23  "The value of the parameter for internal_parameter = "
24  "infinity. Default = value_0, ie perfect plasticity");
25  params.addParam<Real>(
26  "internal_0", 0, "The value of the internal_parameter when hardening begins");
27  params.addParam<Real>("rate",
28  0,
29  "Let p = internal_parameter. Then value = value_0 for "
30  "p<internal_0, and value = value_residual + (value_0 - "
31  "value_residual)*exp(-0.5*rate*(p - internal_0)^2)");
32  params.addClassDescription("Hardening is Gaussian");
33  return params;
34 }
35 
37  const InputParameters & parameters)
38  : TensorMechanicsHardeningModel(parameters),
39  _val_0(getParam<Real>("value_0")),
40  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
41  _intnl_0(getParam<Real>("internal_0")),
42  _rate(getParam<Real>("rate"))
43 {
44 }
45 
46 Real
48 {
49  Real x = intnl - _intnl_0;
50  if (x <= 0)
51  return _val_0;
52  else
53  return _val_res + (_val_0 - _val_res) * std::exp(-0.5 * _rate * x * x);
54 }
55 
56 Real
58 {
59  Real x = intnl - _intnl_0;
60  if (x <= 0)
61  return 0;
62  else
63  return -_rate * x * (_val_0 - _val_res) * std::exp(-0.5 * _rate * x * x);
64 }
65 
66 std::string
68 {
69  return "Gaussian";
70 }
TensorMechanicsHardeningGaussian::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningGaussian.C:17
TensorMechanicsHardeningGaussian::TensorMechanicsHardeningGaussian
TensorMechanicsHardeningGaussian(const InputParameters &parameters)
Definition: TensorMechanicsHardeningGaussian.C:36
TensorMechanicsHardeningGaussian::_val_0
Real _val_0
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
Definition: TensorMechanicsHardeningGaussian.h:41
TensorMechanicsHardeningGaussian
Gaussian hardening The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intn...
Definition: TensorMechanicsHardeningGaussian.h:26
TensorMechanicsHardeningGaussian::value
virtual Real value(Real intnl) const override
Definition: TensorMechanicsHardeningGaussian.C:47
TensorMechanicsHardeningModel::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningModel.C:17
registerMooseObject
registerMooseObject("TensorMechanicsApp", TensorMechanicsHardeningGaussian)
TensorMechanicsHardeningGaussian::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsHardeningGaussian.C:67
TensorMechanicsHardeningGaussian::derivative
virtual Real derivative(Real intnl) const override
Definition: TensorMechanicsHardeningGaussian.C:57
defineLegacyParams
defineLegacyParams(TensorMechanicsHardeningGaussian)
TensorMechanicsHardeningGaussian::_intnl_0
Real _intnl_0
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
Definition: TensorMechanicsHardeningGaussian.h:47
TensorMechanicsHardeningGaussian::_val_res
Real _val_res
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
Definition: TensorMechanicsHardeningGaussian.h:44
TensorMechanicsHardeningGaussian.h
TensorMechanicsHardeningModel
Hardening Model base class.
Definition: TensorMechanicsHardeningModel.h:27
TensorMechanicsHardeningGaussian::_rate
Real _rate
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
Definition: TensorMechanicsHardeningGaussian.h:50