https://mooseframework.inl.gov
HEVPRambergOsgoodHardening.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
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 
13 
16 {
18  params.addParam<Real>("yield_stress", "Yield strength");
19  params.addRequiredParam<Real>("reference_plastic_strain", "Reference plastic strain value");
20  params.addRequiredParam<Real>("hardening_exponent", "The hardening exponent value");
21  params.addClassDescription("User object for Ramberg-Osgood hardening power law hardening");
22 
23  return params;
24 }
25 
27  : HEVPStrengthUOBase(parameters),
28  _sig0(getParam<Real>("yield_stress")),
29  _peeq0(getParam<Real>("reference_plastic_strain")),
30  _exponent(getParam<Real>("hardening_exponent"))
31 {
32 }
33 
34 bool
35 HEVPRambergOsgoodHardening::computeValue(unsigned int qp, Real & val) const
36 {
37  val = _sig0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent);
38  return true;
39 }
40 
41 bool
43  const std::string & coupled_var_name,
44  Real & val) const
45 {
46  val = 0;
47 
48  if (_intvar_prop_name == coupled_var_name)
49  val = _sig0 * _exponent / _peeq0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent - 1.0);
50 
51  return true;
52 }
static InputParameters validParams()
registerMooseObject("SolidMechanicsApp", HEVPRambergOsgoodHardening)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
This user object classs Computes power law hardening.
void addRequiredParam(const std::string &name, const std::string &doc_string)
HEVPRambergOsgoodHardening(const InputParameters &parameters)
This user object is a pure virtual base classs Derived classes computes material resistances and deri...
static InputParameters validParams()
virtual bool computeDerivative(unsigned int, const std::string &, Real &) const
const MaterialProperty< Real > & _intvar
std::string _intvar_prop_name
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual bool computeValue(unsigned int, Real &) const
void addClassDescription(const std::string &doc_string)
MooseUnits pow(const MooseUnits &, int)