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

Power-Rule Hardening defined by: assuming p = internal_parameter, then value = value_0 * (p / epsilon0 + 1)^{exponent}) Notice that if epsilon0 = 0, it will return not a number. More...

#include <TensorMechanicsHardeningPowerRule.h>

Inheritance diagram for TensorMechanicsHardeningPowerRule:
[legend]

Public Member Functions

 TensorMechanicsHardeningPowerRule (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

const Real _value_0
 The value = value_0 * (p / epsilon0 + 1)^{exponent}) More...
 
const Real _epsilon0
 The value = value_0 * (p / epsilon0 + 1)^{exponent}) More...
 
const Real _exponent
 The value = value_0 * (p / epsilon0 + 1)^{exponent}) More...
 

Detailed Description

Power-Rule Hardening defined by: assuming p = internal_parameter, then value = value_0 * (p / epsilon0 + 1)^{exponent}) Notice that if epsilon0 = 0, it will return not a number.

Definition at line 24 of file TensorMechanicsHardeningPowerRule.h.

Constructor & Destructor Documentation

◆ TensorMechanicsHardeningPowerRule()

TensorMechanicsHardeningPowerRule::TensorMechanicsHardeningPowerRule ( const InputParameters &  parameters)

Definition at line 30 of file TensorMechanicsHardeningPowerRule.C.

32  : TensorMechanicsHardeningModel(parameters),
33  _value_0(getParam<Real>("value_0")),
34  _epsilon0(getParam<Real>("epsilon0")),
35  _exponent(getParam<Real>("exponent"))
36 {
37 }

Member Function Documentation

◆ derivative()

Real TensorMechanicsHardeningPowerRule::derivative ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 46 of file TensorMechanicsHardeningPowerRule.C.

47 {
48  return _value_0 * _exponent / _epsilon0 * std::pow(intnl / _epsilon0 + 1, _exponent - 1);
49 }

◆ 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 TensorMechanicsHardeningPowerRule::modelName ( ) const
overridevirtual

Implements TensorMechanicsHardeningModel.

Definition at line 52 of file TensorMechanicsHardeningPowerRule.C.

53 {
54  return "PowerRule";
55 }

◆ validParams()

InputParameters TensorMechanicsHardeningPowerRule::validParams ( )
static

Definition at line 17 of file TensorMechanicsHardeningPowerRule.C.

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 }

◆ value()

Real TensorMechanicsHardeningPowerRule::value ( Real  intnl) const
overridevirtual

Reimplemented from TensorMechanicsHardeningModel.

Definition at line 40 of file TensorMechanicsHardeningPowerRule.C.

41 {
42  return _value_0 * std::pow(intnl / _epsilon0 + 1, _exponent);
43 }

Member Data Documentation

◆ _epsilon0

const Real TensorMechanicsHardeningPowerRule::_epsilon0
private

The value = value_0 * (p / epsilon0 + 1)^{exponent})

Definition at line 42 of file TensorMechanicsHardeningPowerRule.h.

Referenced by derivative(), and value().

◆ _exponent

const Real TensorMechanicsHardeningPowerRule::_exponent
private

The value = value_0 * (p / epsilon0 + 1)^{exponent})

Definition at line 45 of file TensorMechanicsHardeningPowerRule.h.

Referenced by derivative(), and value().

◆ _value_0

const Real TensorMechanicsHardeningPowerRule::_value_0
private

The value = value_0 * (p / epsilon0 + 1)^{exponent})

Definition at line 39 of file TensorMechanicsHardeningPowerRule.h.

Referenced by derivative(), and value().


The documentation for this class was generated from the following files:
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
TensorMechanicsHardeningModel::validParams
static InputParameters validParams()
Definition: TensorMechanicsHardeningModel.C:17
TensorMechanicsHardeningPowerRule::_epsilon0
const Real _epsilon0
The value = value_0 * (p / epsilon0 + 1)^{exponent})
Definition: TensorMechanicsHardeningPowerRule.h:42
TensorMechanicsHardeningPowerRule::_value_0
const Real _value_0
The value = value_0 * (p / epsilon0 + 1)^{exponent})
Definition: TensorMechanicsHardeningPowerRule.h:39
TensorMechanicsHardeningModel::TensorMechanicsHardeningModel
TensorMechanicsHardeningModel(const InputParameters &parameters)
Definition: TensorMechanicsHardeningModel.C:25
TensorMechanicsHardeningPowerRule::_exponent
const Real _exponent
The value = value_0 * (p / epsilon0 + 1)^{exponent})
Definition: TensorMechanicsHardeningPowerRule.h:45