www.mooseframework.org
HEVPRambergOsgoodHardening.C
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
8 
9 template <>
10 InputParameters
12 {
13  InputParameters params = validParams<HEVPStrengthUOBase>();
14  params.addParam<Real>("yield_stress", "Yield strength");
15  params.addRequiredParam<Real>("reference_plastic_strain", "Reference plastic strain value");
16  params.addRequiredParam<Real>("hardening_exponent", "The hardening exponent value");
17  params.addClassDescription("User object for Ramberg-Osgood hardening power law hardening");
18 
19  return params;
20 }
21 
22 HEVPRambergOsgoodHardening::HEVPRambergOsgoodHardening(const InputParameters & parameters)
23  : HEVPStrengthUOBase(parameters),
24  _sig0(getParam<Real>("yield_stress")),
25  _peeq0(getParam<Real>("reference_plastic_strain")),
26  _exponent(getParam<Real>("hardening_exponent"))
27 {
28 }
29 
30 bool
31 HEVPRambergOsgoodHardening::computeValue(unsigned int qp, Real & val) const
32 {
33  val = _sig0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent);
34  return true;
35 }
36 
37 bool
39  const std::string & coupled_var_name,
40  Real & val) const
41 {
42  val = 0;
43 
44  if (_intvar_prop_name == coupled_var_name)
45  val = _sig0 * _exponent / _peeq0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent - 1.0);
46 
47  return true;
48 }
InputParameters validParams< HEVPRambergOsgoodHardening >()
virtual bool computeValue(unsigned int, Real &) const
HEVPRambergOsgoodHardening(const InputParameters &parameters)
This user object is a pure virtual base classs Derived classes computes material resistances and deri...
InputParameters validParams< HEVPStrengthUOBase >()
const MaterialProperty< Real > & _intvar
virtual bool computeDerivative(unsigned int, const std::string &, Real &) const
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
std::string _intvar_prop_name