25#include "neml2/models/BackwardEulerTimeIntegration.h"
39 "Define the backward Euler time integration residual \\f$ r = s - s_n - (t - t_n) \\dot{s} "
40 "\\f$, where \\f$s\\f$ is the variable being integrated, \\f$\\dot{s}\\f$ is the variable "
41 "rate, and \\f$t\\f$ is time. Subscripts \\f$n\\f$ denote quantities from the previous time "
47 options.
set(
"variable").doc() =
"Variable being integrated";
50 options.
set(
"variable_rate").doc() =
"Variable rate";
53 options.
set(
"time").doc() =
"Time";
63 ? _var_name.with_suffix(
"_rate")
65 _r(declare_output_variable<T>(_var_name.on(
"residual"))),
66 _ds_dt(declare_input_variable<T>(_var_rate_name.on(
"state"))),
67 _s(declare_input_variable<T>(_var_name.on(
"state"))),
68 _sn(declare_input_variable<T>(_var_name.on(
"old_state"))),
70 _tn(declare_input_variable<
Scalar>(options.get<
VariableName>(
"time").on(
"old_forces")))
79 _r = _s - _sn - _ds_dt * (_t - _tn);
88 _r.d(_ds_dt) = -
I * (_t - _tn);
99 _r.d(_ds_dt, _t) = -
I;
100 _r.d(_ds_dt, _tn) =
I;
103 _r.d(_t, _ds_dt) = -
I;
104 _r.d(_tn, _ds_dt) =
I;
BackwardEulerTimeIntegration(const OptionSet &options)
Definition BackwardEulerTimeIntegration.cxx:59
static OptionSet expected_options()
Definition BackwardEulerTimeIntegration.cxx:35
void set_value(bool out, bool dout_din, bool d2out_din2) override
The map between input -> output, and optionally its derivatives.
Definition BackwardEulerTimeIntegration.cxx:76
static BatchTensor identity(TorchSize n, const torch::TensorOptions &options=default_tensor_options())
Unbatched identity tensor.
Definition BatchTensor.cxx:91
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
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
@ UPDATING
Definition Model.h:188
static OptionSet expected_options()
Definition Model.cxx:33
static enum neml2::Model::Stage stage
Definition Model.cxx:30
static void enable_automatic_scaling(OptionSet &options)
Definition NonlinearSystem.cxx:62
A custom map-like data structure. The keys are strings, and the values can be nonhomogeneously typed.
Definition OptionSet.h:59
const std::string & doc() const
A readonly reference to the option set's docstring.
Definition OptionSet.h:91
T & set(const std::string &)
Definition OptionSet.h:436
The (logical) scalar.
Definition Scalar.h:38
Definition CrossRef.cxx:32
LabeledAxisAccessor VariableName
Definition Variable.h:35