https://mooseframework.inl.gov
SolidMechanicsHardeningExponential.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 registerMooseObjectRenamed("SolidMechanicsApp",
14  TensorMechanicsHardeningExponential,
15  "01/01/2025 00:00",
17 
20 {
22  params.addRequiredParam<Real>("value_0", "The value of the parameter at internal_parameter = 0");
23  params.addParam<Real>("value_residual",
24  "The value of the parameter for internal_parameter = "
25  "infinity. Default = value_0, ie perfect plasticity");
26  params.addParam<Real>("rate",
27  0,
28  "Let p = internal_parameter. Then value = value_residual + "
29  "(value_0 - value_residual)*exp(-rate*intnal_parameter)");
30  params.addClassDescription("Hardening is Exponential");
31  return params;
32 }
33 
35  const InputParameters & parameters)
36  : SolidMechanicsHardeningModel(parameters),
37  _val_0(getParam<Real>("value_0")),
38  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
39  _rate(getParam<Real>("rate"))
40 {
41 }
42 
43 Real
45 {
46  return _val_res + (_val_0 - _val_res) * std::exp(-_rate * intnl);
47 }
48 
49 Real
51 {
52  return -_rate * (_val_0 - _val_res) * std::exp(-_rate * intnl);
53 }
54 
55 std::string
57 {
58  return "Exponential";
59 }
Real _rate
The value = _val_res + (val_0 - val_res)*exp(-rate*internal_parameter)
Exponential hardening The value = _val_res + (val_0 - val_res)*exp(-rate*internal_parameter) Note tha...
Real _val_res
The value = _val_res + (val_0 - val_res)*exp(-rate*internal_parameter)
virtual Real derivative(Real intnl) const override
Real _val_0
The value = _val_res + (val_0 - val_res)*exp(-rate*internal_parameter)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
SolidMechanicsHardeningExponential(const InputParameters &parameters)
registerMooseObject("SolidMechanicsApp", SolidMechanicsHardeningExponential)
void addRequiredParam(const std::string &name, const std::string &doc_string)
registerMooseObjectRenamed("SolidMechanicsApp", TensorMechanicsHardeningExponential, "01/01/2025 00:00", SolidMechanicsHardeningExponential)
virtual std::string modelName() const override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real value(Real intnl) const override
void addClassDescription(const std::string &doc_string)