29#include "neml2/models/map_types_fwd.h"
30#include "neml2/base/LabeledAxisAccessor.h"
31#include "neml2/misc/types.h"
32#include "neml2/jit/types.h"
137 template <
typename T>
140 bool allow_duplicate =
false);
143 template <
typename T>
146 bool allow_duplicate =
false);
149 template <
typename T>
153 template <
typename T>
177 template <
typename T>
182 template <
typename T>
186 bool allow_duplicate =
false);
192 std::map<std::string, std::unique_ptr<LabeledAxis>> _axes;
195 LabeledAxis & _input_axis;
198 LabeledAxis & _output_axis;
The accessor containing all the information needed to access an item in a LabeledAxis.
Definition LabeledAxisAccessor.h:56
A labeled axis used to associate layout of a tensor with human-interpretable names.
Definition LabeledAxis.h:48
The base class for all constitutive models.
Definition Model.h:68
Base class of variable.
Definition Variable.h:52
Definition VariableStore.h:46
friend const T & resolve_tensor_name(const TensorName< T > &, Model *, const std::string &)
Definition ParameterStore.cxx:108
void assign_output_derivatives(const DerivMap &derivs)
Assign variable derivatives.
Definition VariableStore.cxx:302
VariableBase & output_variable(const VariableName &)
Definition VariableStore.cxx:215
virtual void zero_input()
Definition VariableStore.cxx:263
VariableBase * clone_output_variable(const VariableBase &var, const VariableName &new_name={})
Clone a variable and put it on the output axis.
Definition VariableStore.cxx:141
ValueMap collect_output() const
Definition VariableStore.cxx:429
void assign_output(const ValueMap &vals)
Assign output variable values.
Definition VariableStore.cxx:295
Variable< T > & declare_output_variable(const char *name, TensorShapeRef list_shape={})
Declare an output variable.
Definition VariableStore.cxx:100
virtual ~VariableStore()=default
virtual void send_variables_to(const TensorOptions &options)
Send padding variables to options.
Definition VariableStore.cxx:234
virtual void clear_derivatives()
Definition VariableStore.cxx:256
LabeledAxis & output_axis()
Definition VariableStore.h:69
SecDerivMap collect_output_second_derivatives() const
Collect variable second derivatives.
Definition VariableStore.cxx:447
virtual void clear_input()
Definition VariableStore.cxx:240
VariableStore(Model *object)
Definition VariableStore.cxx:36
void assign_output_stack(jit::Stack &stack, bool out, bool dout, bool d2out)
Assign stack to output variables and derivatives.
Definition VariableStore.cxx:332
ValueMap collect_input() const
Definition VariableStore.cxx:420
VariableStorage & output_variables()
Definition VariableStore.h:79
VariableBase & input_variable(const VariableName &)
Definition VariableStore.cxx:196
VariableStore(const VariableStore &)=delete
virtual void zero_output()
Definition VariableStore.cxx:271
jit::Stack collect_output_stack(bool out, bool dout, bool d2out) const
Collect stack from output variables and derivatives.
Definition VariableStore.cxx:467
DerivMap collect_output_derivatives() const
Collect variable derivatives.
Definition VariableStore.cxx:438
const LabeledAxis & input_axis() const
Definition VariableStore.h:64
virtual void clear_output()
Definition VariableStore.cxx:248
virtual void setup_layout()
Setup the layout of all the registered axes.
Definition VariableStore.cxx:58
const VariableStorage & input_variables() const
Definition VariableStore.h:78
std::map< VariableName, std::unique_ptr< VariableBase > > VariableStorage
Definition VariableStore.h:73
jit::Stack collect_input_stack() const
Collect stack from input variables.
Definition VariableStore.cxx:456
LabeledAxis & declare_axis(const std::string &name)
Definition VariableStore.cxx:45
VariableStore & operator=(const VariableStore &)=delete
void assign_input(const ValueMap &vals)
Definition VariableStore.cxx:279
const VariableStorage & output_variables() const
Definition VariableStore.h:80
const Variable< T > & declare_input_variable(const char *name, TensorShapeRef list_shape={}, bool allow_duplicate=false)
Declare an input variable.
Definition VariableStore.cxx:66
VariableStore & operator=(VariableStore &&)=delete
VariableStorage & input_variables()
Definition VariableStore.h:77
const LabeledAxis & output_axis() const
Definition VariableStore.h:70
VariableStore(VariableStore &&)=delete
const TensorOptions & variable_options() const
Current tensor options for variables.
Definition VariableStore.h:92
void assign_input_stack(jit::Stack &stack)
Assign stack to input variables.
Definition VariableStore.cxx:313
LabeledAxis & input_axis()
Definition VariableStore.h:63
const VariableBase * clone_input_variable(const VariableBase &var, const VariableName &new_name={})
Clone a variable and put it on the input axis.
Definition VariableStore.cxx:126
Concrete definition of a variable.
Definition VariableStore.h:41
Definition DiagnosticsInterface.cxx:30
std::map< LabeledAxisAccessor, Tensor > ValueMap
Definition map_types_fwd.h:33
std::map< LabeledAxisAccessor, ValueMap > DerivMap
Definition map_types_fwd.h:34
std::string name(ElasticConstant p)
Definition ElasticityConverter.cxx:30
LabeledAxisAccessor VariableName
Definition LabeledAxisAccessor.h:185
std::map< LabeledAxisAccessor, DerivMap > SecDerivMap
Definition map_types_fwd.h:35
c10::TensorOptions TensorOptions
Definition types.h:60
c10::ArrayRef< Size > TensorShapeRef
Definition types.h:67
The name of a tensor object that can be referenced in the input files.
Definition VariableStore.h:43