25#include "neml2/models/solid_mechanics/KocksMeckingFlowViscosity.h"
36 "Calculates the temperature-dependent flow viscosity for a Perzyna-type model using the "
37 "Kocks-Mecking model. The value is \\f$ \\eta = \\exp{B} \\mu "
38 "\\dot{\\varepsilon}_0^\\frac{-k T A}{\\mu b^3} \\f$ with \\f$ \\mu "
39 "\\f$ the shear modulus, \\f$ \\dot{\\varepsilon}_0 \\f$ a reference strain rate, \\f$ b "
40 "\\f$ the Burgers vector, "
41 "\\f$ k\\f$ the Boltzmann constant, "
42 "\\f$ T \\f$ absolute temperature, \\f$ A \\f$ the Kocks-Mecking slope parameter, and \\f$ B "
43 "\\f$ the Kocks-Mecking intercept parameter.";
46 options.set(
"A").doc() =
"The Kocks-Mecking slope parameter";
48 options.set(
"B").doc() =
"The Kocks-Mecking intercept parameter";
50 options.set(
"shear_modulus").doc() =
"The shear modulus";
53 options.set(
"eps0").doc() =
"The reference strain rate";
56 options.set(
"k").doc() =
"Boltzmann constant";
58 options.set(
"b").doc() =
"The Burgers vector";
61 options.set(
"temperature").doc() =
"Absolute temperature";
68 _A(declare_parameter<
Scalar>(
"A",
"A")),
69 _B(declare_parameter<
Scalar>(
"B",
"B")),
70 _mu(declare_parameter<
Scalar>(
"shear_modulus",
"shear_modulus")),
71 _eps0(options.get<
Real>(
"eps0")),
72 _k(options.get<
Real>(
"k")),
73 _b3(options.get<
Real>(
"b") * options.get<
Real>(
"b") * options.get<
Real>(
"b")),
74 _T(declare_input_variable<
Scalar>(
"temperature"))
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
A scalar-valued parameter defined by (mu0 - D/(exp(T0/T)-1)) * exp(_C)
Definition KocksMeckingFlowViscosity.h:35
const Real _k
The Boltzmann constant.
Definition KocksMeckingFlowViscosity.h:57
KocksMeckingFlowViscosity(const OptionSet &options)
Definition KocksMeckingFlowViscosity.cxx:66
const Scalar & _mu
The shear modulus.
Definition KocksMeckingFlowViscosity.h:51
const Variable< Scalar > & _T
The temperature.
Definition KocksMeckingFlowViscosity.h:63
const Scalar & _A
The Kocks-Mecking slope.
Definition KocksMeckingFlowViscosity.h:45
const Scalar & _B
The Kocks-Mecking intercept.
Definition KocksMeckingFlowViscosity.h:48
static OptionSet expected_options()
Definition KocksMeckingFlowViscosity.cxx:32
const Real _b3
Burgers vector cubed.
Definition KocksMeckingFlowViscosity.h:60
void set_value(bool out, bool dout_din, bool d2out_din2) override
The map between input -> output, and optionally its derivatives.
Definition KocksMeckingFlowViscosity.cxx:79
const Real _eps0
The reference strain rate.
Definition KocksMeckingFlowViscosity.h:54
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
The base class for nonlinear parameters.
Definition NonlinearParameter.h:51
Variable< Scalar > & _p
The nonlinear parameter.
Definition NonlinearParameter.h:62
static OptionSet expected_options()
Definition NonlinearParameter.cxx:31
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 exp(const Derived &a)
Definition BatchTensorBase.h:448
Derived pow(const Derived &a, const Real &n)
Definition BatchTensorBase.h:332
Definition CrossRef.cxx:32
double Real
Definition types.h:33
LabeledAxisAccessor VariableName
Definition Variable.h:35