https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
34bool
35HEVPRambergOsgoodHardening::computeValue(unsigned int qp, Real & val) const
36{
37 val = _sig0 * std::pow(_intvar[qp] / _peeq0 + 1.0, _exponent);
38 return true;
39}
40
41bool
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}
registerMooseObject("SolidMechanicsApp", HEVPRambergOsgoodHardening)
This user object classs Computes power law hardening.
virtual bool computeValue(unsigned int, Real &) const
virtual bool computeDerivative(unsigned int, const std::string &, Real &) const
HEVPRambergOsgoodHardening(const InputParameters &parameters)
static InputParameters validParams()
This user object is a pure virtual base classs Derived classes computes material resistances and deri...
const MaterialProperty< Real > & _intvar
static InputParameters validParams()
std::string _intvar_prop_name
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)