25#include "neml2/models/solid_mechanics/KocksMeckingActivationEnergy.h"
36 "Calculates the Kocks-Mecking normalized activation as \\f$g = \\frac{kT}{\\mu "
37 "b^3} \\log \\frac{\\dot{\\varepsilon}_0}{\\dot{\\varepsilon}} \\f$ with \\f$ "
38 "\\mu \\f$ the shear modulus, \\f$ k \\f$ the Boltzmann constant, \\f$ T \\f$ the absolute "
39 "temperature, \\f$ b \\f$ the Burgers vector length, \\f$ \\dot{\\varepsilon}_0 \\f$ a "
40 "reference strain rate, and \\f$ \\dot{\\varepsilon} \\f$ the current strain rate.";
43 options.set(
"shear_modulus").doc() =
"The shear modulus";
46 options.set(
"eps0").doc() =
"Reference strain rate";
49 options.set(
"k").doc() =
"The Boltzmann constant";
51 options.set(
"b").doc() =
"Magnitude of the Burgers vector";
54 options.set(
"temperature").doc() =
"Absolute temperature";
57 options.set(
"strain_rate").doc() =
"Name of the effective strain rate";
60 options.set(
"activation_energy").doc() =
"Output name of the activation energy";
66 _mu(declare_parameter<
Scalar>(
"shear_modulus",
"shear_modulus")),
67 _eps0(options.get<
Real>(
"eps0")),
68 _k(options.get<
Real>(
"k")),
69 _b3(options.get<
Real>(
"b") * options.get<
Real>(
"b") * options.get<
Real>(
"b")),
70 _T(declare_input_variable<
Scalar>(
"temperature")),
71 _eps_dot(declare_input_variable<
Scalar>(
"strain_rate")),
72 _g(declare_output_variable<
Scalar>(
"activation_energy"))
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
Definition KocksMeckingActivationEnergy.h:32
const Variable< Scalar > & _eps_dot
The strain rate.
Definition KocksMeckingActivationEnergy.h:57
Variable< Scalar > & _g
The activation energy.
Definition KocksMeckingActivationEnergy.h:60
const Real _k
The Boltzmann constant.
Definition KocksMeckingActivationEnergy.h:48
KocksMeckingActivationEnergy(const OptionSet &options)
Definition KocksMeckingActivationEnergy.cxx:64
const Scalar & _mu
The shear modulus.
Definition KocksMeckingActivationEnergy.h:42
const Variable< Scalar > & _T
The temperature.
Definition KocksMeckingActivationEnergy.h:54
static OptionSet expected_options()
Definition KocksMeckingActivationEnergy.cxx:32
const Real _b3
Burgers vector cubed.
Definition KocksMeckingActivationEnergy.h:51
void set_value(bool out, bool dout_din, bool d2out_din2) override
The map between input -> output, and optionally its derivatives.
Definition KocksMeckingActivationEnergy.cxx:77
const Real _eps0
The reference strain rate.
Definition KocksMeckingActivationEnergy.h:45
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 log(const Derived &a)
Definition BatchTensorBase.h:486
Definition CrossRef.cxx:32
double Real
Definition types.h:33
LabeledAxisAccessor VariableName
Definition Variable.h:35
void neml_assert(bool assertion, Args &&... args)
Definition error.h:73