https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SolidMechanicsHardeningGaussian.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
13registerMooseObjectRenamed("SolidMechanicsApp",
14 TensorMechanicsHardeningGaussian,
15 "01/01/2025 00:00",
17
20{
22 params.addRequiredParam<Real>(
23 "value_0", "The value of the parameter for all internal_parameter <= internal_0");
24 params.addParam<Real>("value_residual",
25 "The value of the parameter for internal_parameter = "
26 "infinity. Default = value_0, ie perfect plasticity");
27 params.addParam<Real>(
28 "internal_0", 0, "The value of the internal_parameter when hardening begins");
29 params.addParam<Real>("rate",
30 0,
31 "Let p = internal_parameter. Then value = value_0 for "
32 "p<internal_0, and value = value_residual + (value_0 - "
33 "value_residual)*exp(-0.5*rate*(p - internal_0)^2)");
34 params.addClassDescription("Hardening is Gaussian");
35 return params;
36}
37
39 : SolidMechanicsHardeningModel(parameters),
40 _val_0(getParam<Real>("value_0")),
41 _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
42 _intnl_0(getParam<Real>("internal_0")),
43 _rate(getParam<Real>("rate"))
44{
45}
46
47Real
49{
50 Real x = intnl - _intnl_0;
51 if (x <= 0)
52 return _val_0;
53 else
54 return _val_res + (_val_0 - _val_res) * std::exp(-0.5 * _rate * x * x);
55}
56
57Real
59{
60 Real x = intnl - _intnl_0;
61 if (x <= 0)
62 return 0;
63 else
64 return -_rate * x * (_val_0 - _val_res) * std::exp(-0.5 * _rate * x * x);
65}
66
67std::string
69{
70 return "Gaussian";
71}
const std::vector< double > x
registerMooseObject("SolidMechanicsApp", SolidMechanicsHardeningGaussian)
registerMooseObjectRenamed("SolidMechanicsApp", TensorMechanicsHardeningGaussian, "01/01/2025 00:00", SolidMechanicsHardeningGaussian)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
Gaussian hardening The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intn...
Real _val_res
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
virtual std::string modelName() const override
Real _rate
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
Real _val_0
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
virtual Real derivative(Real intnl) const override
virtual Real value(Real intnl) const override
Real _intnl_0
The value = _val_res + (val_0 - val_res)*exp(-0.5*rate*(p - intnl_0)^2) for p>intnl_0....
SolidMechanicsHardeningGaussian(const InputParameters &parameters)