11 #include "libmesh/utility.h" 15 TensorMechanicsHardeningCubic,
24 "value_0",
"The value of the parameter for all internal_parameter <= internal_0");
26 "The value of the parameter for internal_parameter >= " 27 "internal_limit. Default = value_0, ie perfect " 30 "internal_0", 0.0,
"The value of the internal_parameter when hardening begins");
33 "The value of the internal_parameter when hardening " 34 "ends. This hardening forms a cubic between " 35 "(internal_0, value_0) and (internal_limit, " 36 "value_residual) that is smooth at internal_0 and " 44 _val_0(getParam<
Real>(
"value_0")),
45 _val_res(parameters.isParamValid(
"value_residual") ? getParam<
Real>(
"value_residual") : _val_0),
46 _intnl_0(getParam<
Real>(
"internal_0")),
47 _intnl_limit(getParam<
Real>(
"internal_limit")),
48 _half_intnl_limit(0.5 * (_intnl_limit - _intnl_0)),
49 _alpha((_val_0 - _val_res) / (4.0 * Utility::
pow<3>(_half_intnl_limit))),
50 _beta(-3.0 * _alpha * Utility::
pow<2>(_half_intnl_limit))
53 mooseError(
"internal_limit must be greater than internal_0 in Cubic Hardening");
registerMooseObject("SolidMechanicsApp", SolidMechanicsHardeningCubic)
static InputParameters validParams()
virtual Real value(Real intnl) const override
Real _half_intnl_limit
convenience parameter for cubic
registerMooseObjectRenamed("SolidMechanicsApp", TensorMechanicsHardeningCubic, "01/01/2025 00:00", SolidMechanicsHardeningCubic)
virtual Real derivative(Real intnl) const override
const std::vector< double > x
Real _val_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
SolidMechanicsHardeningCubic(const InputParameters ¶meters)
static InputParameters validParams()
Real _alpha
convenience parameter for cubic
Real _intnl_0
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
ExpressionBuilder::EBTerm pow(const ExpressionBuilder::EBTerm &left, T exponent)
Hardening Model base class.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _val_res
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
void mooseError(Args &&... args) const
Real _intnl_limit
value is cubic between _val_0 at internal_parameter=_intnl_0, at _val_res at internal_parameter=_intn...
virtual std::string modelName() const override
Real _beta
convenience parameter for cubic
Cubic hardening value = _val_0 for p <= _intnl_0 value = _val_res for p >= _intnl_limit value = cubic...