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

Constructor & Destructor Documentation

TensorMechanicsHardeningCubic::TensorMechanicsHardeningCubic ( const InputParameters &  parameters)

Definition at line 34 of file TensorMechanicsHardeningCubic.C.

35  : TensorMechanicsHardeningModel(parameters),
36  _val_0(getParam<Real>("value_0")),
37  _val_res(parameters.isParamValid("value_residual") ? getParam<Real>("value_residual") : _val_0),
38  _intnl_0(getParam<Real>("internal_0")),
39  _intnl_limit(getParam<Real>("internal_limit")),
41  _alpha((_val_0 - _val_res) / (4.0 * Utility::pow<3>(_half_intnl_limit))),
42  _beta(-3.0 * _alpha * Utility::pow<2>(_half_intnl_limit))
43 {
44  if (_intnl_limit <= _intnl_0)
45  mooseError("internal_limit must be greater than internal_0 in Cubic Hardening");
46 }
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

Real TensorMechanicsHardeningCubic::derivative ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 62 of file TensorMechanicsHardeningCubic.C.

63 {
64  const Real x = intnl - _intnl_0;
65  if (x <= 0.0)
66  return 0.0;
67  else if (intnl >= _intnl_limit)
68  return 0.0;
69  else
70  return 3.0 * _alpha * Utility::pow<2>(x - _half_intnl_limit) + _beta;
71 }
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...
void TensorMechanicsHardeningModel::execute ( )
inherited

Definition at line 32 of file TensorMechanicsHardeningModel.C.

33 {
34 }
void TensorMechanicsHardeningModel::finalize ( )
inherited

Definition at line 37 of file TensorMechanicsHardeningModel.C.

38 {
39 }
void TensorMechanicsHardeningModel::initialize ( )
inherited

Definition at line 27 of file TensorMechanicsHardeningModel.C.

28 {
29 }
std::string TensorMechanicsHardeningCubic::modelName ( ) const
overridevirtual

Implements TensorMechanicsHardeningModel.

Definition at line 74 of file TensorMechanicsHardeningCubic.C.

75 {
76  return "Cubic";
77 }
Real TensorMechanicsHardeningCubic::value ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 49 of file TensorMechanicsHardeningCubic.C.

50 {
51  const Real x = intnl - _intnl_0;
52  if (x <= 0.0)
53  return _val_0;
54  else if (intnl >= _intnl_limit)
55  return _val_res;
56  else
57  return _alpha * Utility::pow<3>(x - _half_intnl_limit) + _beta * (x - _half_intnl_limit) +
58  0.5 * (_val_0 + _val_res);
59 }
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

Real TensorMechanicsHardeningCubic::_alpha
private

convenience parameter for cubic

Definition at line 52 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

Real TensorMechanicsHardeningCubic::_beta
private

convenience parameter for cubic

Definition at line 55 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

Real TensorMechanicsHardeningCubic::_half_intnl_limit
private

convenience parameter for cubic

Definition at line 49 of file TensorMechanicsHardeningCubic.h.

Referenced by derivative(), and value().

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

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

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

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

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

Referenced by value().

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

Referenced by value().


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