www.mooseframework.org
TensorMechanicsHardeningCutExponential.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>("internal_0", 0, "The cutoff of internal parameter");
26  params.addParam<Real>("rate",
27  0,
28  "Let p = internal_parameter. Then value = value_0 for "
29  "p<internal_0, and otherwise, value = value_residual + (value_0 "
30  "- value_residual)*exp(-rate*(p - internal_0)");
31  params.addClassDescription("Hardening is Cut-exponential");
32  return params;
33 }
34 
36  const InputParameters & parameters)
37  : TensorMechanicsHardeningModel(parameters),
38  _val_0(getParam<Real>("value_0")),
39  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
40  _intnl_0(getParam<Real>("internal_0")),
41  _rate(getParam<Real>("rate"))
42 {
43 }
44 
45 Real
47 {
48  Real x = intnl - _intnl_0;
49  if (x <= 0)
50  return _val_0;
51  else
52  return _val_res + (_val_0 - _val_res) * std::exp(-_rate * x);
53 }
54 
55 Real
57 {
58  Real x = intnl - _intnl_0;
59  if (x <= 0)
60  return 0;
61  else
62  return -_rate * (_val_0 - _val_res) * std::exp(-_rate * x);
63 }
64 
65 std::string
67 {
68  return "CutExponential";
69 }
TensorMechanicsHardeningCutExponential::derivative
virtual Real derivative(Real intnl) const override
Definition: TensorMechanicsHardeningCutExponential.C:56
TensorMechanicsHardeningCutExponential::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsHardeningCutExponential.C:66
TensorMechanicsHardeningCutExponential.h
TensorMechanicsHardeningModel::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningModel.C:17
TensorMechanicsHardeningCutExponential::_val_res
Real _val_res
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)),...
Definition: TensorMechanicsHardeningCutExponential.h:44
TensorMechanicsHardeningCutExponential
CutExponential hardening The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _in...
Definition: TensorMechanicsHardeningCutExponential.h:26
TensorMechanicsHardeningCutExponential::TensorMechanicsHardeningCutExponential
TensorMechanicsHardeningCutExponential(const InputParameters &parameters)
Definition: TensorMechanicsHardeningCutExponential.C:35
TensorMechanicsHardeningCutExponential::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningCutExponential.C:17
TensorMechanicsHardeningCutExponential::value
virtual Real value(Real intnl) const override
Definition: TensorMechanicsHardeningCutExponential.C:46
TensorMechanicsHardeningCutExponential::_val_0
Real _val_0
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)),...
Definition: TensorMechanicsHardeningCutExponential.h:41
registerMooseObject
registerMooseObject("TensorMechanicsApp", TensorMechanicsHardeningCutExponential)
TensorMechanicsHardeningCutExponential::_intnl_0
Real _intnl_0
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)),...
Definition: TensorMechanicsHardeningCutExponential.h:47
TensorMechanicsHardeningCutExponential::_rate
Real _rate
The value = _val_res + (val_0 - val_res)*exp(-rate*(internal_parameter - _intnl_0)),...
Definition: TensorMechanicsHardeningCutExponential.h:50
defineLegacyParams
defineLegacyParams(TensorMechanicsHardeningCutExponential)
TensorMechanicsHardeningModel
Hardening Model base class.
Definition: TensorMechanicsHardeningModel.h:27