25#include "neml2/models/solid_mechanics/crystal_plasticity/SlipRule.h"
26#include "neml2/models/crystallography/CrystalGeometry.h"
28#include "neml2/tensors/tensors.h"
29#include "neml2/tensors/list_tensors.h"
38 options.doc() =
"Parent class for all slip rules, which define the slip rate in terms of the "
39 "resolved shear and the slip system strength";
42 options.set(
"slip_rates").doc() =
"Name of the slip rate tensor";
46 options.set(
"resolved_shears").doc() =
"Name of the resolved shear tensor";
49 options.set(
"slip_strengths").doc() =
"Name of the tensor containing the slip system strengths";
51 options.set<std::string>(
"crystal_geometry_name") =
"crystal_geometry";
52 options.set(
"crystal_geometry_name").doc() =
53 "Name of the Data object containing the crystallographic information";
60 _crystal_geometry(register_data<crystallography::CrystalGeometry>(
61 options.get<std::
string>(
"crystal_geometry_name"))),
62 _g(declare_output_variable_list<
Scalar>(_crystal_geometry.nslip(),
"slip_rates")),
63 _rss(declare_input_variable_list<
Scalar>(_crystal_geometry.nslip(),
"resolved_shears")),
64 _tau(declare_input_variable_list<
Scalar>(_crystal_geometry.nslip(),
"slip_strengths"))
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
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
The (logical) scalar.
Definition Scalar.h:38
SlipRule(const OptionSet &options)
Definition SlipRule.cxx:58
static OptionSet expected_options()
Definition SlipRule.cxx:34
Definition CrossRef.cxx:32
LabeledAxisAccessor VariableName
Definition Variable.h:35