15#include "neml2/models/Model.h"
34 virtual void act()
override;
82 const neml2::TensorType &
type)
const;
91 std::shared_ptr<neml2::Model>
_model;
130 template <
typename EnumType,
typename T>
131 std::tuple<std::vector<EnumType>, std::vector<T>>
134 const auto moose_types = getParam<MultiMooseEnum>(source_opt).getSetValueIDs<EnumType>();
135 const auto neml2_names = getParam<std::vector<T>>(name_opt);
137 if (moose_types.size() != neml2_names.size())
138 paramError(source_opt, source_opt,
" must have the same length as ", name_opt);
140 return {moose_types, neml2_names};
const std::string & type() const
Get the type of this class.
const std::string & name() const
Get the name of the class.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Input parameters common to all block-restricted NEML2Actions.
Action to set up NEML2 objects.
NEML2Utils::MOOSEIOType inferMOOSEIOType(const neml2::VariableName &name, const neml2::TensorType &type) const
Infer the MOOSE IO type from the variable name and type.
void setupParameterMappings(const neml2::Model &)
Set up MOOSE-NEML2 model parameter mappings.
std::vector< ParameterMapping > _params
MOOSE-NEML2 model parameter mappings.
std::vector< VariableMapping > _inputs
MOOSE-NEML2 input variable mappings.
const FileName & fname() const
const NEML2ActionCommon & getCommonAction() const
void setupDerivativeMappings(const neml2::Model &)
Set up MOOSE-NEML2 derivative mappings.
std::vector< std::string > _skip_input_variables
Input variables to skip (i.e., not to set up mappings for)
void setupParameterDerivativeMappings(const neml2::Model &)
Set up MOOSE-NEML2 parameter derivative mappings.
std::vector< std::string > _cli_args
List of cli-args.
std::vector< DerivativeMapping > _param_derivs
MOOSE-NEML2 parameter derivative mappings.
static InputParameters validParams()
const UserObjectName _idx_generator_name
Name of the NEML2BatchIndexGenerator user object.
void printSummary() const
Print a summary of the NEML2 model.
std::map< MaterialPropertyName, std::vector< OutputName > > _export_output_targets
Material property additional outputs.
std::vector< VariableMapping > _outputs
MOOSE-NEML2 output variable mappings.
const std::vector< SubdomainName > _block
Blocks this sub-block action applies to.
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
std::shared_ptr< neml2::Model > _model
The neml2 model.
const UserObjectName _executor_name
Name of the NEML2Executor user object.
void setupInputMappings(const neml2::Model &)
Set up MOOSE-NEML2 input variable mappings.
std::vector< DerivativeMapping > _derivs
MOOSE-NEML2 derivative mappings.
std::map< MaterialPropertyName, MaterialPropertyName > _initialize_output_values
Material property initial conditions.
FileName _fname
Name of the NEML2 input file.
std::tuple< std::vector< EnumType >, std::vector< T > > getInputParameterMapping(const std::string &source_opt, const std::string &name_opt) const
Get parameter lists for mapping between MOOSE and NEML2 quantities.
void setupOutputMappings(const neml2::Model &)
Set up MOOSE-NEML2 output variable mappings.
std::size_t getLongestMOOSEName() const
Get the maximum length of all MOOSE names (for printing purposes)
neml2::TensorType neml2_type
NEML2Utils::MOOSEIOType moose_type
std::size_t history_order
neml2::TensorType neml2_type
NEML2Utils::MOOSEIOType moose_type