www.mooseframework.org
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
TensorMechanicsHardeningCubic Class Reference

Cubic hardening value = _val_0 for p <= _intnl_0 value = _val_res for p >= _intnl_limit value = cubic betwen _val_0 at p = _intnl_0, and _val_res at p = _intnl_limit The cubic is smooth, which means nice numerical properties. More...

#include <TensorMechanicsHardeningCubic.h>

Inheritance diagram for TensorMechanicsHardeningCubic:
[legend]

Public Member Functions

 TensorMechanicsHardeningCubic (const InputParameters &parameters)
 
virtual Real value (Real intnl) const override
 
virtual Real derivative (Real intnl) const override
 
virtual std::string modelName () const override
 
void initialize ()
 
void execute ()
 
void finalize ()
 

Static Public Member Functions

static InputParameters validParams ()
 

Private Attributes

Real _val_0
 value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit More...
 
Real _val_res
 value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit More...
 
Real _intnl_0
 value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit More...
 
Real _intnl_limit
 value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit More...
 
Real _half_intnl_limit
 convenience parameter for cubic More...
 
Real _alpha
 convenience parameter for cubic More...
 
Real _beta
 convenience parameter for cubic More...
 

Detailed Description

Cubic hardening value = _val_0 for p <= _intnl_0 value = _val_res for p >= _intnl_limit value = cubic betwen _val_0 at p = _intnl_0, and _val_res at p = _intnl_limit The cubic is smooth, which means nice numerical properties.

Definition at line 26 of file TensorMechanicsHardeningCubic.h.

Constructor & Destructor Documentation

◆ TensorMechanicsHardeningCubic()

TensorMechanicsHardeningCubic::TensorMechanicsHardeningCubic ( const InputParameters &  parameters)

Definition at line 40 of file TensorMechanicsHardeningCubic.C.

41  : TensorMechanicsHardeningModel(parameters),
42  _val_0(getParam<Real>("value_0")),
43  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
44  _intnl_0(getParam<Real>("internal_0")),
45  _intnl_limit(getParam<Real>("internal_limit")),
47  _alpha((_val_0 - _val_res) / (4.0 * Utility::pow<3>(_half_intnl_limit))),
48  _beta(-3.0 * _alpha * Utility::pow<2>(_half_intnl_limit))
49 {
50  if (_intnl_limit <= _intnl_0)
51  mooseError("internal_limit must be greater than internal_0 in Cubic Hardening");
52 }

Member Function Documentation

◆ derivative()

Real TensorMechanicsHardeningCubic::derivative ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 68 of file TensorMechanicsHardeningCubic.C.

69 {
70  const Real x = intnl - _intnl_0;
71  if (x <= 0.0)
72  return 0.0;
73  else if (intnl >= _intnl_limit)
74  return 0.0;
75  else
76  return 3.0 * _alpha * Utility::pow<2>(x - _half_intnl_limit) + _beta;
77 }

◆ execute()

void TensorMechanicsHardeningModel::execute ( )
inherited

Definition at line 36 of file TensorMechanicsHardeningModel.C.

37 {
38 }

◆ finalize()

void TensorMechanicsHardeningModel::finalize ( )
inherited

Definition at line 41 of file TensorMechanicsHardeningModel.C.

42 {
43 }

◆ initialize()

void TensorMechanicsHardeningModel::initialize ( )
inherited

Definition at line 31 of file TensorMechanicsHardeningModel.C.

32 {
33 }

◆ modelName()

std::string TensorMechanicsHardeningCubic::modelName ( ) const
overridevirtual

Implements TensorMechanicsHardeningModel.

Definition at line 80 of file TensorMechanicsHardeningCubic.C.

81 {
82  return "Cubic";
83 }

◆ validParams()

InputParameters TensorMechanicsHardeningCubic::validParams ( )
static

Definition at line 18 of file TensorMechanicsHardeningCubic.C.

19 {
20  InputParameters params = TensorMechanicsHardeningModel::validParams();
21  params.addRequiredParam<Real>(
22  "value_0", "The value of the parameter for all internal_parameter <= internal_0");
23  params.addParam<Real>("value_residual",
24  "The value of the parameter for internal_parameter >= "
25  "internal_limit. Default = value_0, ie perfect "
26  "plasticity");
27  params.addParam<Real>(
28  "internal_0", 0.0, "The value of the internal_parameter when hardening begins");
29  params.addParam<Real>("internal_limit",
30  1.0,
31  "The value of the internal_parameter when hardening "
32  "ends. This hardening forms a cubic between "
33  "(internal_0, value_0) and (internal_limit, "
34  "value_residual) that is smooth at internal_0 and "
35  "internal_limit");
36  params.addClassDescription("Hardening is Cubic");
37  return params;
38 }

◆ value()

Real TensorMechanicsHardeningCubic::value ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 55 of file TensorMechanicsHardeningCubic.C.

56 {
57  const Real x = intnl - _intnl_0;
58  if (x <= 0.0)
59  return _val_0;
60  else if (intnl >= _intnl_limit)
61  return _val_res;
62  else
63  return _alpha * Utility::pow<3>(x - _half_intnl_limit) + _beta * (x - _half_intnl_limit) +
64  0.5 * (_val_0 + _val_res);
65 }

Member Data Documentation

◆ _alpha

Real TensorMechanicsHardeningCubic::_alpha
private

convenience parameter for cubic

Definition at line 56 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

◆ _beta

Real TensorMechanicsHardeningCubic::_beta
private

convenience parameter for cubic

Definition at line 59 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

◆ _half_intnl_limit

Real TensorMechanicsHardeningCubic::_half_intnl_limit
private

convenience parameter for cubic

Definition at line 53 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

◆ _intnl_0

Real TensorMechanicsHardeningCubic::_intnl_0
private

value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit

Definition at line 47 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), TensorMechanicsHardeningCubic(), and value().

◆ _intnl_limit

Real TensorMechanicsHardeningCubic::_intnl_limit
private

value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit

Definition at line 50 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), TensorMechanicsHardeningCubic(), and value().

◆ _val_0

Real TensorMechanicsHardeningCubic::_val_0
private

value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit

Definition at line 41 of file TensorMechanicsHardeningCubic.h.

Referenced by value().

◆ _val_res

Real TensorMechanicsHardeningCubic::_val_res
private

value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intnl_limit

Definition at line 44 of file TensorMechanicsHardeningCubic.h.

Referenced by value().


The documentation for this class was generated from the following files:
TensorMechanicsHardeningCubic::_val_0
Real _val_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Definition: TensorMechanicsHardeningCubic.h:41
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
TensorMechanicsHardeningCubic::_alpha
Real _alpha
convenience parameter for cubic
Definition: TensorMechanicsHardeningCubic.h:56
TensorMechanicsHardeningCubic::_val_res
Real _val_res
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Definition: TensorMechanicsHardeningCubic.h:44
TensorMechanicsHardeningCubic::_intnl_limit
Real _intnl_limit
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Definition: TensorMechanicsHardeningCubic.h:50
TensorMechanicsHardeningModel::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningModel.C:17
TensorMechanicsHardeningCubic::_beta
Real _beta
convenience parameter for cubic
Definition: TensorMechanicsHardeningCubic.h:59
TensorMechanicsHardeningCubic::_intnl_0
Real _intnl_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Definition: TensorMechanicsHardeningCubic.h:47
TensorMechanicsHardeningCubic::_half_intnl_limit
Real _half_intnl_limit
convenience parameter for cubic
Definition: TensorMechanicsHardeningCubic.h:53
TensorMechanicsHardeningModel::TensorMechanicsHardeningModel
TensorMechanicsHardeningModel(const InputParameters &parameters)
Definition: TensorMechanicsHardeningModel.C:25