25#include "neml2/models/solid_mechanics/GTNYieldFunction.h"
36 "Gurson-Tvergaard-Needleman yield function for poroplasticity. The yield function is defined "
37 "as \\f$ f = \\left( \\frac{\\bar{\\sigma}}{\\sigma_y + k} \\right)^2 + 2 q_1 \\phi \\cosh "
38 "\\left( \\frac{1}{2} q_2 \\frac{3\\sigma_h-\\sigma_s}{\\sigma_y + k} \\right) - \\left( q_3 "
39 "\\phi^2 + 1 \\right) \\f$, where \\f$ \\bar{\\sigma} \\f$ is the von Mises stress, \\f$ "
40 "\\sigma_y \\f$ is the yield stress, \\f$ k \\f$ is isotropic hardening, \\f$ \\phi \\f$ is "
41 "the porosity, \\f$ \\sigma_h \\f$ is the hydrostatic stress, and \\f$ \\sigma_s \\f$ is the "
42 "void growth back stress (sintering stress). \\f$ q_1 \\f$, \\f$ q_2 \\f$, and \\f$ q_3 \\f$ "
43 "are parameters controlling the yield mechanisms.";
46 options.set(
"yield_stress").doc() =
"Yield stress";
50 "Parameter controlling the balance/competition between plastic flow and void evolution.";
53 options.set(
"q2").doc() =
"Void evolution rate";
56 options.set(
"q3").doc() =
"Pore pressure";
59 options.set(
"flow_invariant").doc() =
"Effective stress driving plastic flow";
62 options.set(
"poro_invariant").doc() =
"Effective stress driving porous flow";
65 options.set(
"isotropic_hardening").doc() =
"Isotropic hardening";
68 options.set(
"void_fraction").doc() =
"Void fraction (porosity)";
71 options.set(
"yield_function").doc() =
"Yield function";
78 _f(declare_output_variable<
Scalar>(
"yield_function")),
79 _se(declare_input_variable<
Scalar>(
"flow_invariant")),
80 _sp(declare_input_variable<
Scalar>(
"poro_invariant")),
81 _phi(declare_input_variable<
Scalar>(
"void_fraction")),
82 _h(options.get<
VariableName>(
"isotropic_hardening").empty()
84 : &declare_input_variable<
Scalar>(
"isotropic_hardening")),
85 _s0(declare_parameter<
Scalar>(
"sy",
"yield_stress")),
86 _q1(declare_parameter<
Scalar>(
"q1",
"q1")),
87 _q2(declare_parameter<
Scalar>(
"q2",
"q2")),
88 _q3(declare_parameter<
Scalar>(
"q3",
"q3"))
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
Definition GTNYieldFunction.h:32
Variable< Scalar > & _f
Yield function.
Definition GTNYieldFunction.h:43
const Scalar & _q1
GTN q1 parameter.
Definition GTNYieldFunction.h:61
const Variable< Scalar > * _h
Isotropic hardening.
Definition GTNYieldFunction.h:55
const Variable< Scalar > & _se
Flow invariant.
Definition GTNYieldFunction.h:46
const Scalar & _s0
Yield stress.
Definition GTNYieldFunction.h:58
const Scalar & _q2
GTN q2 parameter.
Definition GTNYieldFunction.h:64
const Scalar & _q3
GTN q3 parameter.
Definition GTNYieldFunction.h:67
static OptionSet expected_options()
Definition GTNYieldFunction.cxx:32
const Variable< Scalar > & _phi
Void fraction.
Definition GTNYieldFunction.h:52
const Variable< Scalar > & _sp
Poro invariant.
Definition GTNYieldFunction.h:49
void set_value(bool out, bool dout_din, bool d2out_din2) override
The value of the yield function.
Definition GTNYieldFunction.cxx:93
GTNYieldFunction(const OptionSet &options)
Definition GTNYieldFunction.cxx:76
The accessor containing all the information needed to access an item in a LabeledAxis.
Definition LabeledAxisAccessor.h:44
The base class for all constitutive models.
Definition Model.h:53
const torch::TensorOptions & options() const
This model's tensor options.
Definition Model.h:116
static OptionSet expected_options()
Definition Model.cxx:33
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:59
const VariableBase * nl_param(const std::string &) const
Query the existence of a nonlinear parameter.
Definition ParameterStore.cxx:56
The (logical) scalar.
Definition Scalar.h:38
Derivative d(const VariableBase &x)
Create a wrapper representing the derivative dy/dx.
Definition Variable.cxx:102
Derived sinh(const Derived &a)
Definition BatchTensorBase.h:378
Derived cosh(const Derived &a)
Definition BatchTensorBase.h:369
Derived pow(const Derived &a, const Real &n)
Definition BatchTensorBase.h:332
Definition CrossRef.cxx:32
LabeledAxisAccessor VariableName
Definition Variable.h:35