www.mooseframework.org
TensorMechanicsHardeningPowerRule.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>("value_0", "The yield strength when internal variable = 0");
21  params.addParam<Real>("epsilon0", 1.0, "The reference strain");
22  params.addParam<Real>(
23  "exponent",
24  0.0,
25  "Let p = internal_parameter. Then value = value_0 * (p / epsilon0 + 1)^{exponent})");
26  params.addClassDescription("Hardening defined by power rule");
27  return params;
28 }
29 
31  const InputParameters & parameters)
32  : TensorMechanicsHardeningModel(parameters),
33  _value_0(getParam<Real>("value_0")),
34  _epsilon0(getParam<Real>("epsilon0")),
35  _exponent(getParam<Real>("exponent"))
36 {
37 }
38 
39 Real
41 {
42  return _value_0 * std::pow(intnl / _epsilon0 + 1, _exponent);
43 }
44 
45 Real
47 {
48  return _value_0 * _exponent / _epsilon0 * std::pow(intnl / _epsilon0 + 1, _exponent - 1);
49 }
50 
51 std::string
53 {
54  return "PowerRule";
55 }
TensorMechanicsHardeningPowerRule.h
TensorMechanicsHardeningPowerRule::modelName
virtual std::string modelName() const override
Definition: TensorMechanicsHardeningPowerRule.C:52
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
TensorMechanicsHardeningPowerRule
Power-Rule Hardening defined by: assuming p = internal_parameter, then value = value_0 * (p / epsilon...
Definition: TensorMechanicsHardeningPowerRule.h:24
registerMooseObject
registerMooseObject("TensorMechanicsApp", TensorMechanicsHardeningPowerRule)
TensorMechanicsHardeningPowerRule::derivative
virtual Real derivative(Real intnl) const override
Definition: TensorMechanicsHardeningPowerRule.C:46
TensorMechanicsHardeningModel::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningModel.C:17
defineLegacyParams
defineLegacyParams(TensorMechanicsHardeningPowerRule)
TensorMechanicsHardeningPowerRule::value
virtual Real value(Real intnl) const override
Definition: TensorMechanicsHardeningPowerRule.C:40
TensorMechanicsHardeningPowerRule::_epsilon0
const Real _epsilon0
The value = value_0 * (p / epsilon0 + 1)^{exponent})
Definition: TensorMechanicsHardeningPowerRule.h:42
TensorMechanicsHardeningPowerRule::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningPowerRule.C:17
TensorMechanicsHardeningPowerRule::_value_0
const Real _value_0
The value = value_0 * (p / epsilon0 + 1)^{exponent})
Definition: TensorMechanicsHardeningPowerRule.h:39
TensorMechanicsHardeningPowerRule::TensorMechanicsHardeningPowerRule
TensorMechanicsHardeningPowerRule(const InputParameters &parameters)
Definition: TensorMechanicsHardeningPowerRule.C:30
TensorMechanicsHardeningModel
Hardening Model base class.
Definition: TensorMechanicsHardeningModel.h:27
TensorMechanicsHardeningPowerRule::_exponent
const Real _exponent
The value = value_0 * (p / epsilon0 + 1)^{exponent})
Definition: TensorMechanicsHardeningPowerRule.h:45