www.mooseframework.org
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 ()
 

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 27 of file TensorMechanicsHardeningCubic.h.

Constructor & Destructor Documentation

◆ TensorMechanicsHardeningCubic()

TensorMechanicsHardeningCubic::TensorMechanicsHardeningCubic ( const InputParameters &  parameters)

Definition at line 39 of file TensorMechanicsHardeningCubic.C.

40  : TensorMechanicsHardeningModel(parameters),
41  _val_0(getParam<Real>("value_0")),
42  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
43  _intnl_0(getParam<Real>("internal_0")),
44  _intnl_limit(getParam<Real>("internal_limit")),
46  _alpha((_val_0 - _val_res) / (4.0 * Utility::pow<3>(_half_intnl_limit))),
47  _beta(-3.0 * _alpha * Utility::pow<2>(_half_intnl_limit))
48 {
49  if (_intnl_limit <= _intnl_0)
50  mooseError("internal_limit must be greater than internal_0 in Cubic Hardening");
51 }
Real _val_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _alpha
convenience parameter for cubic
Real _val_res
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _intnl_limit
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _beta
convenience parameter for cubic
Real _half_intnl_limit
convenience parameter for cubic
TensorMechanicsHardeningModel(const InputParameters &parameters)
Real _intnl_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...

Member Function Documentation

◆ derivative()

Real TensorMechanicsHardeningCubic::derivative ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 67 of file TensorMechanicsHardeningCubic.C.

68 {
69  const Real x = intnl - _intnl_0;
70  if (x <= 0.0)
71  return 0.0;
72  else if (intnl >= _intnl_limit)
73  return 0.0;
74  else
75  return 3.0 * _alpha * Utility::pow<2>(x - _half_intnl_limit) + _beta;
76 }
Real _alpha
convenience parameter for cubic
Real _intnl_limit
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _beta
convenience parameter for cubic
Real _half_intnl_limit
convenience parameter for cubic
Real _intnl_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...

◆ execute()

void TensorMechanicsHardeningModel::execute ( )
inherited

Definition at line 35 of file TensorMechanicsHardeningModel.C.

36 {
37 }

◆ finalize()

void TensorMechanicsHardeningModel::finalize ( )
inherited

Definition at line 40 of file TensorMechanicsHardeningModel.C.

41 {
42 }

◆ initialize()

void TensorMechanicsHardeningModel::initialize ( )
inherited

Definition at line 30 of file TensorMechanicsHardeningModel.C.

31 {
32 }

◆ modelName()

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

Implements TensorMechanicsHardeningModel.

Definition at line 79 of file TensorMechanicsHardeningCubic.C.

80 {
81  return "Cubic";
82 }

◆ value()

Real TensorMechanicsHardeningCubic::value ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 54 of file TensorMechanicsHardeningCubic.C.

55 {
56  const Real x = intnl - _intnl_0;
57  if (x <= 0.0)
58  return _val_0;
59  else if (intnl >= _intnl_limit)
60  return _val_res;
61  else
62  return _alpha * Utility::pow<3>(x - _half_intnl_limit) + _beta * (x - _half_intnl_limit) +
63  0.5 * (_val_0 + _val_res);
64 }
Real _val_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _alpha
convenience parameter for cubic
Real _val_res
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _intnl_limit
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
Real _beta
convenience parameter for cubic
Real _half_intnl_limit
convenience parameter for cubic
Real _intnl_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...

Member Data Documentation

◆ _alpha

Real TensorMechanicsHardeningCubic::_alpha
private

convenience parameter for cubic

Definition at line 55 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

◆ _beta

Real TensorMechanicsHardeningCubic::_beta
private

convenience parameter for cubic

Definition at line 58 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 52 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 46 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 49 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 40 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 43 of file TensorMechanicsHardeningCubic.h.

Referenced by value().


The documentation for this class was generated from the following files: