49 const neml2::Tensor &
getOutput(
const neml2::VariableName & output_name)
const;
53 const neml2::VariableName & input_name)
const;
57 const std::string & parameter_name)
const;
Common interface for inserting gathered MOOSE data into the NEML2 material model.
NEML2BatchIndexGenerator iterates over the mesh and generates a map from element ID to batch index wh...
NEML2ModelExecutor executes a NEML2 model.
std::map< neml2::VariableName, std::map< std::string, neml2::Tensor > > _retrieved_parameter_derivatives
set of parameter derivatives that were retrieved (by other objects)
neml2::DerivMap _retrieved_derivatives
set of derivatives that were retrieved (by other objects)
void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
const bool _debug_inputs_on_failure
Dump input tensor info on failure to aid debugging.
neml2::ValueMap _out
The output variables of the material model.
bool _error
Whether an error was encountered.
void execute() override
Execute method.
const neml2::Tensor & getOutputDerivative(const neml2::VariableName &output_name, const neml2::VariableName &input_name) const
Get a reference(!) to the requested output derivative view.
std::string _error_message
Error message.
static InputParameters actionParams()
Parameters that can be specified under the NEML2Action common area.
virtual bool solve()
Perform the material update.
std::set< std::string > _gathered_parameter_names
neml2::ValueMap _retrieved_outputs
set of output variables that were retrieved (by other objects)
neml2::ValueMap _in
The input variables of the material model.
bool outputReady() const
check if the output is fully computed and ready to be fetched
std::vector< const MOOSEToNEML2 * > _param_gatherers
virtual void checkExecutionStage() const final
Prevent output and derivative retrieval after construction.
static InputParameters validParams()
const bool _manage_state_advance
Advance state on device (rather than via MOSOE material properties)
bool _output_ready
flag that indicates if output data has been fully computed
const neml2::Tensor & getOutputParameterDerivative(const neml2::VariableName &output_name, const std::string ¶meter_name) const
Get a reference(!) to the requested output parameter derivative view.
virtual void addGatheredVariable(const UserObjectName &, const neml2::VariableName &)
Register a NEML2 input variable gathered by a gatherer.
std::size_t getBatchIndex(dof_id_type elem_id) const
Get the batch index for the given element ID.
void advanceState()
Save stateful variables for on-device state advance.
void finalize() override
Finalize.
std::map< std::string, neml2::Tensor > _model_params
The model parameters to update (gathered from MOOSE)
const NEML2BatchIndexGenerator & _batch_index_generator
The NEML2BatchIndexGenerator used to generate the element-to-batch-index map.
neml2::DerivMap _dout_din
The derivative of the output variables w.r.t. the input variables.
virtual void extractOutputs()
Extract output derivatives with respect to input variables and model parameters.
void initialize() override
Called before execute() is ever called so that data can be cleared.
neml2::ValueMap _state_vars
Cached variables from the last successful step (for on-device advance)
virtual void fillInputs()
Fill input variables and model parameters using the gatherers.
const neml2::Tensor & getOutput(const neml2::VariableName &output_name) const
Get a reference(!) to the requested output view.
virtual void expandInputs()
Expand tensor shapes if necessary to conformal sizes.
std::vector< const MOOSEToNEML2 * > _gatherers
MOOSE data gathering user objects.
virtual void addGatheredParameter(const UserObjectName &, const std::string &)
Register a NEML2 model parameter gathered by a gatherer.
void meshChanged() override
Called on this object when the mesh changes.
std::set< neml2::VariableName > _gathered_variable_names
Interface class to provide common input parameters, members, and methods for MOOSEObjects that use NE...