NEML2 2.0.0
|
The base class for all constitutive models. More...
The base class for all constitutive models.
A model maps some input to output. The forward operator (and its derivative) is defined in the method Model::set_value
. All concrete models must provide the implementation of the forward operator by overriding the Model::set_value
method.
#include <Model.h>
Inherits enable_shared_from_this< Model >, Data, ParameterStore, VariableStore, NonlinearSystem, DependencyDefinition< VariableName >, and DiagnosticsInterface.
Inherited by BackwardEulerTimeIntegration< Scalar >, BackwardEulerTimeIntegration< Vec >, BackwardEulerTimeIntegration< SR2 >, CrystalMean< SR2 >, ElasticityInterface< Model, 3 >, ElasticityInterface< Model, 2 >, ForwardEulerTimeIntegration< Scalar >, ForwardEulerTimeIntegration< Vec >, ForwardEulerTimeIntegration< SR2 >, IncrementToRate< Scalar >, IncrementToRate< Vec >, IncrementToRate< SR2 >, IncrementToRate< R2 >, LinearCombination< Scalar >, LinearCombination< Vec >, LinearCombination< SR2 >, TwoStageThermalAnnealing< Scalar >, TwoStageThermalAnnealing< SR2 >, VariableRate< Scalar >, VariableRate< Vec >, VariableRate< SR2 >, ArrheniusParameter, AssociativeJ2FlowDirection, BackwardEulerTimeIntegration< T >, ComposedModel, ConstantParameter< T >, CopyVariable< T >, CrystalMean< T >, DiffusionLimitedReaction, Eigenstrain, ElasticStrainRate, Elasticity, FischerBurmeister, FixOrientation, FlowRule, ForwardEulerTimeIntegration< T >, GTNYieldFunction, GursonCavitation, HermiteSmoothStep, ImplicitUpdate, IncrementToRate< T >, InputParameter< T >, Interpolation< T >, IsotropicHardening, IsotropicHardeningStaticRecovery, KinematicHardening, KinematicHardeningStaticRecovery, KocksMeckingActivationEnergy, KocksMeckingFlowSwitch, KocksMeckingFlowViscosity, KocksMeckingIntercept, KocksMeckingRateSensitivity, KocksMeckingYieldStress, LinearCombination< T >, MandelStress, MixedControlSetup, Normality, OlevskySinteringStress, OrientationRate, PlasticDeformationRate, PlasticFlowRate, PlasticVorticity, ProductGeometry, ProjectileAcceleration, ProjectileAcceleration, ProjectileAcceleration, ProjectileAcceleration, PyrolysisConversionAmount, PyrolysisKinetics, R2toSR2, R2toWR2, RateIndependentPlasticFlowConstraint, ReactionMechanism, ResolvedShear, RotationMatrix, SR2Invariant, SR2toR2, ScalarVariableMultiplication, SingleSlipHardeningRule, SlipRule, SlipStrengthMap, SumSlipRates, TwoStageThermalAnnealing< T >, VariableRate< T >, WR2ExplicitExponentialTimeIntegration, WR2ImplicitExponentialTimeIntegration, and YieldFunction.
Classes | |
struct | TraceSchema |
Schema for the traced forward operators. More... | |
Public Member Functions | |
Model (const OptionSet &options) | |
Construct a new Model object. | |
void | setup () override |
Setup this object. | |
void | diagnose () const override |
Check for common problems. | |
virtual bool | defines_values () const |
Whether this model defines output values. | |
virtual bool | defines_derivatives () const |
Whether this model defines first derivatives. | |
virtual bool | defines_second_derivatives () const |
Whether this model defines second derivatives. | |
virtual bool | is_nonlinear_system () const |
Whether this model defines one or more nonlinear equations to be solved. | |
virtual bool | is_jit_enabled () const |
Whether JIT is enabled. | |
virtual void | to (const TensorOptions &options) |
Send model to a different device or dtype. | |
const std::vector< Model * > & | registered_models () const |
The models that may be used during the evaluation of this model. | |
Model * | registered_model (const std::string &name) const |
Get a registered model by its name. | |
void | register_nonlinear_parameter (const std::string &pname, const NonlinearParameter ¶m) |
Register a nonlinear parameter. | |
bool | has_nl_param (bool recursive=false) const |
Whether this parameter store has any nonlinear parameter. | |
const VariableBase * | nl_param (const std::string &) const |
Query the existence of a nonlinear parameter. | |
virtual std::map< std::string, NonlinearParameter > | named_nonlinear_parameters (bool recursive=false) const |
Get all nonlinear parameters. | |
std::set< VariableName > | consumed_items () const override |
The variables that this model depends on. | |
std::set< VariableName > | provided_items () const override |
The variables that this model defines as part of its output. | |
void | request_AD (VariableBase &y, const VariableBase &u) |
Request to use AD to compute the first derivative of a variable. | |
void | request_AD (VariableBase &y, const VariableBase &u1, const VariableBase &u2) |
Request to use AD to compute the second derivative of a variable. | |
void | forward (bool out, bool dout, bool d2out) |
Forward operator without jit. | |
void | forward_maybe_jit (bool out, bool dout, bool d2out) |
Forward operator with jit. | |
std::string | variable_name_lookup (const ATensor &var) |
Look up the name of a variable in the traced graph. | |
virtual ValueMap | value (const ValueMap &in) |
Convenient shortcut to construct and return the model value. | |
virtual ValueMap | value (ValueMap &&in) |
virtual std::tuple< ValueMap, DerivMap > | value_and_dvalue (const ValueMap &in) |
Convenient shortcut to construct and return the model value and its derivative. | |
virtual std::tuple< ValueMap, DerivMap > | value_and_dvalue (ValueMap &&in) |
virtual DerivMap | dvalue (const ValueMap &in) |
Convenient shortcut to construct and return the derivative. | |
virtual DerivMap | dvalue (ValueMap &&in) |
virtual std::tuple< ValueMap, DerivMap, SecDerivMap > | value_and_dvalue_and_d2value (const ValueMap &in) |
Convenient shortcut to construct and return the model's value, first and second derivative. | |
virtual std::tuple< ValueMap, DerivMap, SecDerivMap > | value_and_dvalue_and_d2value (ValueMap &&in) |
virtual SecDerivMap | d2value (const ValueMap &in) |
Convenient shortcut to construct and return the model's second derivative. | |
virtual SecDerivMap | d2value (ValueMap &&in) |
virtual std::tuple< DerivMap, SecDerivMap > | dvalue_and_d2value (const ValueMap &in) |
Convenient shortcut to construct and return the model's first and second derivative. | |
virtual std::tuple< DerivMap, SecDerivMap > | dvalue_and_d2value (ValueMap &&in) |
![]() | |
Data (const OptionSet &options) | |
Construct a new Data object. | |
const std::vector< Data * > & | registered_data () const |
All the registered data objects. | |
![]() | |
NEML2Object ()=delete | |
NEML2Object (NEML2Object &&)=delete | |
NEML2Object (const NEML2Object &)=delete | |
NEML2Object & | operator= (NEML2Object &&)=delete |
NEML2Object & | operator= (const NEML2Object &)=delete |
virtual | ~NEML2Object ()=default |
NEML2Object (const OptionSet &options) | |
Construct a new NEML2Object object. | |
const OptionSet & | input_options () const |
const std::string & | name () const |
A readonly reference to the object's name. | |
const std::string & | type () const |
A readonly reference to the object's type. | |
const std::string & | path () const |
A readonly reference to the object's path. | |
const std::string & | doc () const |
A readonly reference to the object's docstring. | |
template<typename T = NEML2Object> | |
const T * | host () const |
Get a readonly pointer to the host. | |
template<typename T = NEML2Object> | |
T * | host () |
Get a writable pointer to the host. | |
![]() | |
BufferStore (NEML2Object *object) | |
BufferStore (const BufferStore &)=delete | |
BufferStore (BufferStore &&)=delete | |
BufferStore & | operator= (const BufferStore &)=delete |
BufferStore & | operator= (BufferStore &&)=delete |
virtual | ~BufferStore ()=default |
const std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_buffers () const |
std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_buffers () |
const TensorValueBase & | get_buffer (const std::string &name) const |
}@ | |
TensorValueBase & | get_buffer (const std::string &name) |
Get a writable reference of a buffer. | |
![]() | |
ParameterStore (Model *object) | |
ParameterStore (const ParameterStore &)=delete | |
ParameterStore (ParameterStore &&)=delete | |
ParameterStore & | operator= (const ParameterStore &)=delete |
ParameterStore & | operator= (ParameterStore &&)=delete |
virtual | ~ParameterStore ()=default |
const std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_parameters () const |
std::map< std::string, std::unique_ptr< TensorValueBase > > & | named_parameters () |
const TensorValueBase & | get_parameter (const std::string &name) const |
}@ | |
TensorValueBase & | get_parameter (const std::string &name) |
Get a writable reference of a parameter. | |
void | set_parameter (const std::string &, const Tensor &) |
Set the value for a parameter. | |
void | set_parameters (const std::map< std::string, Tensor > &) |
Set values for parameters. | |
![]() | |
VariableStore (Model *object) | |
VariableStore (const VariableStore &)=delete | |
VariableStore (VariableStore &&)=delete | |
VariableStore & | operator= (const VariableStore &)=delete |
VariableStore & | operator= (VariableStore &&)=delete |
virtual | ~VariableStore ()=default |
LabeledAxis & | declare_axis (const std::string &name) |
virtual void | setup_layout () |
Setup the layout of all the registered axes. | |
const TensorOptions & | variable_options () const |
Current tensor options for variables. | |
LabeledAxis & | input_axis () |
const LabeledAxis & | input_axis () const |
LabeledAxis & | output_axis () |
const LabeledAxis & | output_axis () const |
VariableStorage & | input_variables () |
const VariableStorage & | input_variables () const |
VariableStorage & | output_variables () |
const VariableStorage & | output_variables () const |
VariableBase & | input_variable (const VariableName &) |
const VariableBase & | input_variable (const VariableName &) const |
VariableBase & | output_variable (const VariableName &) |
const VariableBase & | output_variable (const VariableName &) const |
void | assign_input (const ValueMap &vals) |
void | assign_input (ValueMap &&vals) |
Assign input variable values. | |
void | assign_output (const ValueMap &vals) |
Assign output variable values. | |
void | assign_output_derivatives (const DerivMap &derivs) |
Assign variable derivatives. | |
ValueMap | collect_input () const |
ValueMap | collect_output () const |
DerivMap | collect_output_derivatives () const |
Collect variable derivatives. | |
SecDerivMap | collect_output_second_derivatives () const |
Collect variable second derivatives. | |
![]() | |
NonlinearSystem (const NonlinearSystem &)=default | |
NonlinearSystem (NonlinearSystem &&) noexcept=default | |
NonlinearSystem & | operator= (const NonlinearSystem &)=delete |
NonlinearSystem & | operator= (NonlinearSystem &&)=delete |
virtual | ~NonlinearSystem ()=default |
NonlinearSystem (const OptionSet &options) | |
virtual void | init_scaling (const Sol< false > &x, const bool verbose=false) |
Compute algebraic Jacobian-based automatic scaling following https://cs.stanford.edu/people/paulliu/files/cs517-project.pdf. | |
Res< true > | scale (const Res< false > &r) const |
Apply scaling to the residual. | |
Res< false > | unscale (const Res< true > &r) const |
Remove scaling to the residual. | |
Jac< true > | scale (const Jac< false > &J) const |
Apply scaling to the Jacobian. | |
Jac< false > | unscale (const Jac< true > &J) const |
Remove scaling to the Jacobian. | |
Sol< true > | scale (const Sol< false > &u) const |
Apply scaling to the solution. | |
Sol< false > | unscale (const Sol< true > &u) const |
Remove scaling to the solution. | |
void | set_guess (const Sol< true > &x) |
Set the current guess. | |
template<bool scaled> | |
Res< scaled > | residual () |
Assemble and return the residual. | |
template<bool scaled> | |
Res< scaled > | residual (const Sol< scaled > &x) |
Convenient shortcut to set the current guess, assemble and return the residual. | |
template<bool scaled> | |
Jac< scaled > | Jacobian () |
Assemble and return the Jacobian. | |
template<bool scaled> | |
Jac< scaled > | Jacobian (const Sol< scaled > &x) |
Convenient shortcut to set the current guess, assemble and return the Jacobian. | |
template<bool scaled> | |
std::tuple< Res< scaled >, Jac< scaled > > | residual_and_Jacobian () |
Assemble and return the residual and Jacobian. | |
template<bool scaled> | |
std::tuple< Res< scaled >, Jac< scaled > > | residual_and_Jacobian (const Sol< scaled > &x) |
Convenient shortcut to set the current guess, assemble and return the residual and Jacobian. | |
![]() | |
DependencyDefinition ()=default | |
DependencyDefinition (DependencyDefinition &&)=delete | |
DependencyDefinition (const DependencyDefinition &)=delete | |
DependencyDefinition & | operator= (const DependencyDefinition &)=delete |
DependencyDefinition & | operator= (DependencyDefinition &&)=delete |
virtual | ~DependencyDefinition ()=default |
![]() | |
DiagnosticsInterface ()=delete | |
DiagnosticsInterface (NEML2Object *object) | |
DiagnosticsInterface (DiagnosticsInterface &&)=delete | |
DiagnosticsInterface (const DiagnosticsInterface &)=delete | |
DiagnosticsInterface & | operator= (const DiagnosticsInterface &)=delete |
DiagnosticsInterface & | operator= (DiagnosticsInterface &&)=delete |
virtual | ~DiagnosticsInterface ()=default |
const NEML2Object & | object () const |
Get the object. | |
Static Public Member Functions | |
static OptionSet | expected_options () |
![]() | |
static OptionSet | expected_options () |
![]() | |
static OptionSet | expected_options () |
![]() | |
static OptionSet | expected_options () |
static void | disable_automatic_scaling (OptionSet &options) |
static void | enable_automatic_scaling (OptionSet &options) |
Protected Member Functions | |
void | diagnostic_assert_state (const VariableBase &v) const |
void | diagnostic_assert_old_state (const VariableBase &v) const |
void | diagnostic_assert_force (const VariableBase &v) const |
void | diagnostic_assert_old_force (const VariableBase &v) const |
void | diagnostic_assert_residual (const VariableBase &v) const |
void | diagnostic_check_input_variable (const VariableBase &v) const |
void | diagnostic_check_output_variable (const VariableBase &v) const |
void | diagnose_nl_sys () const |
Additional diagnostics for a nonlinear system. | |
virtual void | link_input_variables () |
virtual void | link_input_variables (Model *submodel) |
virtual void | link_output_variables () |
virtual void | link_output_variables (Model *submodel) |
void | clear_input () override |
void | clear_output () override |
void | zero_input () override |
void | zero_output () override |
virtual void | request_AD () |
virtual void | set_value (bool out, bool dout_din, bool d2out_din2)=0 |
The map between input -> output, and optionally its derivatives. | |
template<typename T = Model, typename = typename std::enable_if_t<std::is_base_of_v<Model, T>>> | |
T & | register_model (const std::string &name, bool nonlinear=false, bool merge_input=true) |
Register a model that the current model may use during its evaluation. | |
void | assign_input_stack (jit::Stack &stack) |
jit::Stack | collect_input_stack () const |
void | set_guess (const Sol< false > &) override |
Set the unscaled current guess. | |
void | assemble (Res< false > *, Jac< false > *) override |
Compute the unscaled residual and Jacobian. | |
![]() | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<Data, T>>> | |
T & | register_data (const std::string &name) |
virtual void | send_buffers_to (const TensorOptions &options) |
Send all buffers to options . | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> | |
const T & | declare_buffer (const std::string &name, const T &rawval) |
Declare a buffer. | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> | |
const T & | declare_buffer (const std::string &name, const TensorName< T > &tensorname) |
Declare a buffer. | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> | |
const T & | declare_buffer (const std::string &name, const std::string &input_option_name) |
Declare a buffer. | |
void | assign_buffer_stack (jit::Stack &stack) |
Assign stack to buffers. | |
jit::Stack | collect_buffer_stack () const |
Collect stack from buffers. | |
virtual void | send_parameters_to (const TensorOptions &options) |
Send parameters to options. | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> | |
const T & | declare_parameter (const std::string &name, const T &rawval) |
Declare a parameter. | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> | |
const T & | declare_parameter (const std::string &name, const TensorName< T > &tensorname, bool allow_nonlinear) |
Declare a parameter. | |
template<typename T, typename = typename std::enable_if_t<std::is_base_of_v<TensorBase<T>, T>>> | |
const T & | declare_parameter (const std::string &name, const std::string &input_option_name, bool allow_nonlinear=false) |
Declare a parameter. | |
void | assign_parameter_stack (jit::Stack &stack) |
Assign stack to parameters. | |
jit::Stack | collect_parameter_stack () const |
Collect stack from parameters. | |
![]() | |
virtual void | send_variables_to (const TensorOptions &options) |
Send padding variables to options. | |
template<typename T> | |
const Variable< T > & | declare_input_variable (const char *name, TensorShapeRef list_shape={}) |
Declare an input variable. | |
template<typename T> | |
const Variable< T > & | declare_input_variable (const VariableName &name, TensorShapeRef list_shape={}) |
Declare an input variable. | |
template<typename T> | |
Variable< T > & | declare_output_variable (const char *name, TensorShapeRef list_shape={}) |
Declare an output variable. | |
template<typename T> | |
Variable< T > & | declare_output_variable (const VariableName &name, TensorShapeRef list_shape={}) |
Declare an output variable. | |
const VariableBase * | clone_input_variable (const VariableBase &var, const VariableName &new_name={}) |
Clone a variable and put it on the input axis. | |
VariableBase * | clone_output_variable (const VariableBase &var, const VariableName &new_name={}) |
Clone a variable and put it on the output axis. | |
void | assign_input_stack (jit::Stack &stack) |
Assign stack to input variables. | |
void | assign_output_stack (jit::Stack &stack, bool out, bool dout, bool d2out) |
Assign stack to output variables and derivatives. | |
jit::Stack | collect_input_stack () const |
Collect stack from input variables. | |
jit::Stack | collect_output_stack (bool out, bool dout, bool d2out) const |
Collect stack from output variables and derivatives. | |
Protected Attributes | |
std::vector< Model * > | _registered_models |
Models this model may use during its evaluation. | |
![]() | |
std::vector< Data * > | _registered_data |
Registered Data objects. | |
![]() | |
const bool | _autoscale |
If true, do automatic scaling. | |
const Real | _autoscale_tol |
Tolerance for convergence check of the iterative automatic scaling algorithm. | |
const unsigned int | _autoscale_miter |
Maximum number of iterations allowed for the iterative automatic scaling algorithm. | |
bool | _scaling_matrices_initialized = false |
Flag to indicate whether scaling matrices have been computed. | |
Tensor | _row_scaling |
Row scaling "matrix" – since it's a batched diagonal matrix, we are only storing its diagonals. | |
Tensor | _col_scaling |
Column scaling "matrix" – since it's a batched diagonal matrix, we are only storing its diagonals. | |
Friends | |
class | ParameterStore |
Declaration of nonlinear parameters may require manipulation of input. | |
class | ComposedModel |
ComposedModel's set_value need to call submodel's set_value. | |
Additional Inherited Members | |
![]() | |
using | VariableStorage = std::map<VariableName, std::unique_ptr<VariableBase>> |
Construct a new Model object.
options | The options extracted from the input file |
Compute the unscaled residual and Jacobian.
r | Pointer to the residual vector – nullptr if not requested |
J | Pointer to the Jacobian matrix – nullptr if not requested |
Implements NonlinearSystem.
|
protected |
|
overrideprotectedvirtual |
Release allocated tensor
Reimplemented from VariableStore.
|
overrideprotectedvirtual |
Reimplemented from VariableStore.
|
protected |
|
overridevirtual |
The variables that this model depends on.
Implements DependencyDefinition< VariableName >.
|
virtual |
Convenient shortcut to construct and return the model's second derivative.
|
virtual |
|
inlinevirtual |
Whether this model defines first derivatives.
Reimplemented in ComposedModel.
|
inlinevirtual |
Whether this model defines second derivatives.
Reimplemented in ComposedModel.
|
inlinevirtual |
Whether this model defines output values.
Reimplemented in ComposedModel.
|
overridevirtual |
Check for common problems.
This method serves as the entry point for diagnosing common problems in object setup. The idea behind this method is that while some errors could be detected at construction time, i.e., when the object's constructor is called, it doesn't hinder other objects' creation. We therefore would like to defer the detection of errors until after all objects have been created, collect all errors at once, and present the user with a complete understanding of all errors encountered.
Note, however, if an error could interfere with other objects' creation, it should be raised right away inside the constructor, instead of inside this method.
Implements DiagnosticsInterface.
Reimplemented in VariableRate< T >, VariableRate< Scalar >, VariableRate< Scalar >, VariableRate< SR2 >, VariableRate< SR2 >, VariableRate< Vec >, VariableRate< Vec >, WR2ExplicitExponentialTimeIntegration, and WR2ImplicitExponentialTimeIntegration.
|
protected |
Additional diagnostics for a nonlinear system.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Convenient shortcut to construct and return the derivative.
|
virtual |
Convenient shortcut to construct and return the model's first and second derivative.
|
virtual |
|
static |
void forward | ( | bool | out, |
bool | dout, | ||
bool | d2out ) |
Forward operator without jit.
void forward_maybe_jit | ( | bool | out, |
bool | dout, | ||
bool | d2out ) |
Forward operator with jit.
If _jit is false, this falls back to the non-jit version.
If _jit is true, it will use the corresponding traced graph as the forward operator, and if the corresponding traced graph does not exists, it will create one.
bool has_nl_param | ( | bool | recursive = false | ) | const |
Whether this parameter store has any nonlinear parameter.
|
inlinevirtual |
Whether JIT is enabled.
Reimplemented in ComposedModel.
|
inlinevirtual |
Whether this model defines one or more nonlinear equations to be solved.
|
protectedvirtual |
|
protectedvirtual |
Reimplemented in ComposedModel.
|
protectedvirtual |
Reimplemented in ImplicitUpdate.
|
protectedvirtual |
Reimplemented in ComposedModel.
|
virtual |
Get all nonlinear parameters.
Reimplemented in ComposedModel.
const VariableBase * nl_param | ( | const std::string & | name | ) | const |
Query the existence of a nonlinear parameter.
|
overridevirtual |
The variables that this model defines as part of its output.
Implements DependencyDefinition< VariableName >.
|
inlineprotected |
Register a model that the current model may use during its evaluation.
If merge_input
is set to true, this model will also consume the consumed variables of model
, which will affect dependency resolution inside a ComposedModel.
name | The model to register |
nonlinear | Set to true if the registered model defines a nonlinear system to be solved |
merge_input | Whether to merge the input axis of the registered model into this model's input axis. This will make sure that the input variables of the registered model are "ready" by the time this model is evaluated. |
void register_nonlinear_parameter | ( | const std::string & | pname, |
const NonlinearParameter & | param ) |
Register a nonlinear parameter.
Model * registered_model | ( | const std::string & | name | ) | const |
Get a registered model by its name.
|
inline |
The models that may be used during the evaluation of this model.
|
inlineprotectedvirtual |
Request the use of automatic differentiation to compute variable derivatives
Model implementations which require automatic differentiation to compute variable derivatives shall override this method and mark variable derivatives. Variable derivatives are marked as,
void request_AD | ( | VariableBase & | y, |
const VariableBase & | u ) |
Request to use AD to compute the first derivative of a variable.
void request_AD | ( | VariableBase & | y, |
const VariableBase & | u1, | ||
const VariableBase & | u2 ) |
Request to use AD to compute the second derivative of a variable.
|
overrideprotectedvirtual |
Set the unscaled current guess.
Implements NonlinearSystem.
|
protectedpure virtual |
The map between input -> output, and optionally its derivatives.
Implemented in ArrheniusParameter, AssociativeIsotropicPlasticHardening, AssociativeJ2FlowDirection, AssociativeKinematicPlasticHardening, AssociativePlasticFlow, AvramiErofeevNucleation, BackwardEulerTimeIntegration< T >, BackwardEulerTimeIntegration< Scalar >, BackwardEulerTimeIntegration< Scalar >, BackwardEulerTimeIntegration< SR2 >, BackwardEulerTimeIntegration< SR2 >, BackwardEulerTimeIntegration< Vec >, BackwardEulerTimeIntegration< Vec >, ChabochePlasticHardening, ChemicalReactionMechanism, ComposedModel, ConstantParameter< T >, CopyVariable< T >, CrystalMean< T >, CrystalMean< SR2 >, CrystalMean< SR2 >, CubicElasticityTensor, DiffusionLimitedReaction, ElasticStrainRate, FischerBurmeister, FixOrientation, ForwardEulerTimeIntegration< T >, ForwardEulerTimeIntegration< Scalar >, ForwardEulerTimeIntegration< Scalar >, ForwardEulerTimeIntegration< SR2 >, ForwardEulerTimeIntegration< SR2 >, ForwardEulerTimeIntegration< Vec >, ForwardEulerTimeIntegration< Vec >, FredrickArmstrongPlasticHardening, GeneralElasticity, GTNYieldFunction, GursonCavitation, HermiteSmoothStep, ImplicitUpdate, IncrementToRate< T >, IncrementToRate< R2 >, IncrementToRate< R2 >, IncrementToRate< Scalar >, IncrementToRate< Scalar >, IncrementToRate< SR2 >, IncrementToRate< SR2 >, IncrementToRate< Vec >, IncrementToRate< Vec >, InputParameter< T >, IsotropicElasticityTensor, IsotropicMandelStress, KocksMeckingActivationEnergy, KocksMeckingFlowSwitch, KocksMeckingFlowViscosity, KocksMeckingIntercept, KocksMeckingRateSensitivity, KocksMeckingYieldStress, LinearCombination< T >, LinearCombination< Scalar >, LinearCombination< Scalar >, LinearCombination< SR2 >, LinearCombination< SR2 >, LinearCombination< Vec >, LinearCombination< Vec >, LinearInterpolation< T >, LinearInterpolation< Scalar >, LinearInterpolation< Scalar >, LinearInterpolation< SR2 >, LinearInterpolation< SR2 >, LinearInterpolation< Vec >, LinearInterpolation< Vec >, LinearIsotropicElasticity, LinearIsotropicElasticJ2TrialStressUpdate, LinearIsotropicHardening, LinearKinematicHardening, LinearSingleSlipHardeningRule, MixedControlSetup, Normality, OlevskySinteringStress, OrientationRate, PerzynaPlasticFlowRate, PhaseTransformationEigenstrain, PlasticDeformationRate, PlasticVorticity, PowerLawIsotropicHardeningStaticRecovery, PowerLawKinematicHardeningStaticRecovery, PowerLawSlipRule, ProductGeometry, ProjectileAcceleration, ProjectileAcceleration, ProjectileAcceleration, ProjectileAcceleration, PyrolysisConversionAmount, PyrolysisKinetics, R2toSR2, R2toWR2, RateIndependentPlasticFlowConstraint, ResolvedShear, RotationMatrix, ScalarVariableMultiplication, SingleSlipStrengthMap, SlopeSaturationVoceIsotropicHardening, SR2Invariant, SR2toR2, SumSlipRates, ThermalEigenstrain, TwoStageThermalAnnealing< T >, TwoStageThermalAnnealing< Scalar >, TwoStageThermalAnnealing< Scalar >, TwoStageThermalAnnealing< SR2 >, TwoStageThermalAnnealing< SR2 >, VariableRate< T >, VariableRate< Scalar >, VariableRate< Scalar >, VariableRate< SR2 >, VariableRate< SR2 >, VariableRate< Vec >, VariableRate< Vec >, VoceIsotropicHardening, VoceSingleSlipHardeningRule, VolumeChangeEigenstrain, WR2ExplicitExponentialTimeIntegration, WR2ImplicitExponentialTimeIntegration, and YieldFunction.
|
overridevirtual |
Setup this object.
This method is called automatically if you use the Factory method get_object or get_object_ptr, right after construction. This serves as the entry point for things that are not convenient/possible to do at construction time, but are necessary before this object can be used (by others).
Reimplemented from NEML2Object.
|
virtual |
Send model to a different device or dtype.
Convenient shortcut to construct and return the model value.
Convenient shortcut to construct and return the model value and its derivative.
|
virtual |
Convenient shortcut to construct and return the model's value, first and second derivative.
|
virtual |
std::string variable_name_lookup | ( | const ATensor & | var | ) |
Look up the name of a variable in the traced graph.
|
overrideprotectedvirtual |
Zero variable values
Reimplemented from VariableStore.
|
overrideprotectedvirtual |
Reimplemented from VariableStore.
|
friend |
ComposedModel's set_value need to call submodel's set_value.
|
friend |
Declaration of nonlinear parameters may require manipulation of input.
|
protected |
Models this model may use during its evaluation.