www.mooseframework.org
HEVPRambergOsgoodHardening.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 
12 registerMooseObject("TensorMechanicsApp", HEVPRambergOsgoodHardening);
13 
15 
16 InputParameters
18 {
19  InputParameters params = HEVPStrengthUOBase::validParams();
20  params.addParam<Real>("yield_stress", "Yield strength");
21  params.addRequiredParam<Real>("reference_plastic_strain", "Reference plastic strain value");
22  params.addRequiredParam<Real>("hardening_exponent", "The hardening exponent value");
23  params.addClassDescription("User object for Ramberg-Osgood hardening power law hardening");
24 
25  return params;
26 }
27 
28 HEVPRambergOsgoodHardening::HEVPRambergOsgoodHardening(const InputParameters & parameters)
29  : HEVPStrengthUOBase(parameters),
30  _sig0(getParam<Real>("yield_stress")),
31  _peeq0(getParam<Real>("reference_plastic_strain")),
32  _exponent(getParam<Real>("hardening_exponent"))
33 {
34 }
35 
36 bool
37 HEVPRambergOsgoodHardening::computeValue(unsigned int qp, Real & val) const
38 {
39  val = _sig0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent);
40  return true;
41 }
42 
43 bool
45  const std::string & coupled_var_name,
46  Real & val) const
47 {
48  val = 0;
49 
50  if (_intvar_prop_name == coupled_var_name)
51  val = _sig0 * _exponent / _peeq0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent - 1.0);
52 
53  return true;
54 }
HEVPRambergOsgoodHardening::_exponent
Real _exponent
Definition: HEVPRambergOsgoodHardening.h:36
HEVPRambergOsgoodHardening::_sig0
Real _sig0
Definition: HEVPRambergOsgoodHardening.h:34
HEVPRambergOsgoodHardening::HEVPRambergOsgoodHardening
HEVPRambergOsgoodHardening(const InputParameters &parameters)
Definition: HEVPRambergOsgoodHardening.C:28
pow
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Definition: ExpressionBuilder.h:673
HEVPStrengthUOBase::_intvar
const MaterialProperty< Real > & _intvar
Definition: HEVPStrengthUOBase.h:36
HEVPStrengthUOBase::validParams
static InputParameters validParams()
Definition: HEVPStrengthUOBase.C:15
HEVPRambergOsgoodHardening::validParams
static InputParameters validParams()
Definition: HEVPRambergOsgoodHardening.C:17
HEVPRambergOsgoodHardening::computeValue
virtual bool computeValue(unsigned int, Real &) const
Definition: HEVPRambergOsgoodHardening.C:37
HEVPRambergOsgoodHardening
This user object classs Computes power law hardening.
Definition: HEVPRambergOsgoodHardening.h:23
HEVPStrengthUOBase
This user object is a pure virtual base classs Derived classes computes material resistances and deri...
Definition: HEVPStrengthUOBase.h:24
HEVPRambergOsgoodHardening::computeDerivative
virtual bool computeDerivative(unsigned int, const std::string &, Real &) const
Definition: HEVPRambergOsgoodHardening.C:44
HEVPRambergOsgoodHardening::_peeq0
Real _peeq0
Definition: HEVPRambergOsgoodHardening.h:35
HEVPRambergOsgoodHardening.h
defineLegacyParams
defineLegacyParams(HEVPRambergOsgoodHardening)
registerMooseObject
registerMooseObject("TensorMechanicsApp", HEVPRambergOsgoodHardening)
HEVPStrengthUOBase::_intvar_prop_name
std::string _intvar_prop_name
Definition: HEVPStrengthUOBase.h:35