25#include "neml2/models/solid_mechanics/ChabochePlasticHardening.h"
26#include "neml2/tensors/SSR4.h"
37 " This object defines the non-associative Chaboche kinematic hardening. In the Chaboche "
38 "model, back stress is directly treated as an internal variable. Rate of back stress is "
39 "given as \\f$ \\dot{\\boldsymbol{X}} = \\left( \\frac{2}{3} C \\frac{\\partial f}{\\partial "
40 "\\boldsymbol{M}} - g \\boldsymbol{X} \\right) \\dot{\\gamma} - A \\lVert \\boldsymbol{X} "
41 "\\rVert^{a - 1} \\boldsymbol{X} \\f$, including kinematic hardening, dynamic recovery, and "
42 "static recovery. \\f$ \\frac{\\partial f}{\\partial \\boldsymbol{M}} \\f$ is the flow "
43 "direction, \\f$ \\dot{\\gamma} \\f$ is the flow rate, and \\f$ C \\f$, \\f$ g \\f$, \\f$ A "
44 "\\f$, and \\f$ a \\f$ are material parameters.";
47 options.set(
"back_stress").doc() =
"Back stress";
50 options.set(
"flow_direction").doc() =
"Flow direction";
53 options.set(
"C").doc() =
"Kinematic hardening coefficient";
56 options.set(
"g").doc() =
"Dynamic recovery coefficient";
59 options.set(
"A").doc() =
"Static recovery prefactor";
62 options.set(
"a").doc() =
"Static recovery exponent";
69 _X(declare_input_variable<
SR2>(
"back_stress")),
70 _NM(declare_input_variable<
SR2>(
"flow_direction")),
71 _X_dot(declare_output_variable<
SR2>(_X.name().with_suffix(
"_rate"))),
72 _C(declare_parameter<
Scalar>(
"C",
"C")),
73 _g(declare_parameter<
Scalar>(
"g",
"g")),
74 _A(declare_parameter<
Scalar>(
"A",
"A")),
75 _a(declare_parameter<
Scalar>(
"a",
"a"))
Definition ChabochePlasticHardening.h:32
const Scalar & _C
Definition ChabochePlasticHardening.h:50
const Variable< SR2 > & _X
Back stress.
Definition ChabochePlasticHardening.h:42
Variable< SR2 > & _X_dot
Rate of back stress.
Definition ChabochePlasticHardening.h:48
const Scalar & _A
Definition ChabochePlasticHardening.h:52
const Variable< SR2 > & _NM
Flow direction.
Definition ChabochePlasticHardening.h:45
const Scalar & _g
Definition ChabochePlasticHardening.h:51
static OptionSet expected_options()
Definition ChabochePlasticHardening.cxx:33
const Scalar & _a
Definition ChabochePlasticHardening.h:53
ChabochePlasticHardening(const OptionSet &options)
Definition ChabochePlasticHardening.cxx:67
void set_value(bool out, bool dout_din, bool d2out_din2) override
The map between input -> output, and optionally its derivatives.
Definition ChabochePlasticHardening.cxx:80
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
const Variable< Scalar > & _gamma_dot
Definition FlowRule.h:39
static OptionSet expected_options()
Definition FlowRule.cxx:30
The accessor containing all the information needed to access an item in a LabeledAxis.
Definition LabeledAxisAccessor.h:44
const torch::TensorOptions & options() const
This model's tensor options.
Definition Model.h:116
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:59
The (logical) symmetric second order tensor.
Definition SR2.h:46
SSR4 outer(const SR2 &other) const
Outer product ij,kl -> ijkl.
Definition SR2.cxx:205
Scalar norm(Real eps=0) const
Norm.
Definition SR2.cxx:199
static SSR4 identity_map(const torch::TensorOptions &options=default_tensor_options())
The derivative of a SR2 with respect to itself.
Definition SR2.cxx:116
The (logical) scalar.
Definition Scalar.h:38
Derived pow(const Derived &a, const Real &n)
Definition BatchTensorBase.h:332
Definition CrossRef.cxx:32
void neml_assert_dbg(bool assertion, Args &&... args)
Definition error.h:85
LabeledAxisAccessor VariableName
Definition Variable.h:35