25#include "neml2/models/solid_mechanics/crystal_plasticity/PlasticDeformationRate.h"
26#include "neml2/models/crystallography/CrystalGeometry.h"
28#include "neml2/tensors/tensors.h"
29#include "neml2/tensors/list_tensors.h"
40 options.doc() =
"Caclulates the plastic deformation rate as \\f$ d^p = \\sum_{i=1}^{n_{slip}} "
41 "\\dot{\\gamma}_i Q \\operatorname{sym}{\\left(d_i \\otimes n_i \\right)} Q^T "
42 "\\f$ with \\f$ d^p \\f$ the plastic deformation rate, \\f$ \\dot{\\gamma}_i "
43 "\\f$ the slip rate on the ith slip system, \\f$Q \\f$ the orientation, \\f$ d_i "
44 "\\f$ the slip system direction, and \\f$ n_i \\f$ the slip system normal.";
47 VariableName(
"state",
"internal",
"plastic_deformation_rate");
48 options.set(
"plastic_deformation_rate").doc() =
"The name of the plastic deformation rate tensor";
51 options.set(
"orientation").doc() =
"The name of the orientation matrix tensor";
54 options.set(
"slip_rates").doc() =
"The name of the tensor containg the current slip rates";
56 options.set<std::string>(
"crystal_geometry_name") =
"crystal_geometry";
57 options.set(
"crystal_geometry_name").doc() =
58 "The name of the Data object containing the crystallographic information for the material";
65 _crystal_geometry(register_data<crystallography::CrystalGeometry>(
66 options.get<std::
string>(
"crystal_geometry_name"))),
67 _dp(declare_output_variable<
SR2>(
"plastic_deformation_rate")),
68 _R(declare_input_variable<
R2>(
"orientation")),
69 _g(declare_input_variable_list<
Scalar>(_crystal_geometry.nslip(),
"slip_rates"))
BatchTensor base_transpose(TorchSize d1, TorchSize d2) const
Transpose two base dimensions.
Definition BatchTensorBase.cxx:299
Definition BatchTensor.h:32
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
TorchSize batch_dim() const
This model's batch dim.
Definition Model.h:110
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
A basic R2.
Definition R2.h:42
The (logical) symmetric second order tensor.
Definition SR2.h:46
The (logical) scalar.
Definition Scalar.h:38
Definition CrossRef.cxx:32
void neml_assert_dbg(bool assertion, Args &&... args)
Definition error.h:85
LabeledAxisAccessor VariableName
Definition Variable.h:35