23 MultiMooseEnum moose_types(
"TIME SCALAR FUNCTION VARIABLE MATERIAL");
27 "input_types", moose_types,
"Type of each MOOSE data to be used as NEML2 input variable");
28 params.addParam<std::vector<std::string>>(
29 "inputs", {},
"List of NEML2 input variables corresponding to each MOOSE data.");
30 params.addParam<std::vector<std::string>>(
33 "NEML2 kernels defined in MOOSE that provides input data. The object name must match the "
34 "input variable name.");
39 "Type of each MOOSE data to be used as NEML2 model parameter");
40 params.addParam<std::vector<std::string>>(
41 "parameters", {},
"List of NEML2 model parameters corresponding to each MOOSE data.");
44 params.addParam<
bool>(
"auto_output",
46 "Whether to automatically retrieve all NEML2 output variables as MOOSE "
47 "material properties.");
50 params.addParam<std::vector<std::vector<std::string>>>(
53 "List of pairs of NEML2 variables to take derivatives (i.e., first in the pair w.r.t. the "
54 "second in the pair).");
57 params.addParam<std::vector<std::vector<std::string>>>(
58 "parameter_derivatives",
60 "List of pairs of NEML2 variables to take derivatives (i.e., first in the pair w.r.t. the "
61 "second in the pair).");
64 params.addParam<std::vector<std::string>>(
65 "skip_input_variables",
67 "List of NEML2 variables to skip when setting up the model input. If an input variable is "
68 "skipped, its value will stay zero. If a required input variable is skipped, an error "
70 params.addParam<
bool>(
"verbose",
72 "Whether to print additional information about the NEML2 model at the "
73 "beginning of the simulation");
75 params.addParam<std::vector<MaterialPropertyName>>(
78 "List of MOOSE material properties to be initialized. Each these properties must correspond "
79 "to a stateful NEML2 variable (which appears on both the input old state sub-axis and the "
80 "output state sub-axis). These MOOSE material properties will be initialized with the values "
81 "of properties specified in the initialize_output_values list.");
82 params.addParam<std::vector<MaterialPropertyName>>(
83 "initialize_output_values",
85 "List of MOOSE material properties whose initial values (evaluated at the 0th time step) "
86 "will be used to initialize stateful properties. See the description of initialize_outputs "
89 params.addParam<std::vector<MaterialPropertyName>>(
92 "List of MOOSE material properties to export which correspond to NEML2 output variables or "
93 "output derivatives. Each material property's export targets can be specified by "
94 "export_output_targets. The default export target is 'none'.");
95 params.addParam<std::vector<std::vector<OutputName>>>(
96 "export_output_targets",
98 "The export targets corresponding to each MOOSE material property specified in "
108 params.addClassDescription(
"Parse a NEML2 input file");
registerMooseAction("MooseApp", NEML2ActionCommon, "parse_neml2")
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type.
Input parameters common to all block-restricted NEML2Actions.
static InputParameters commonParams()
Parameters that can be specified EITHER under the common area OR under sub-blocks.
static InputParameters validParams()
Parameters that can ONLY be specified under the common area.
NEML2ActionCommon(const InputParameters &)
static InputParameters actionParams()
Parameters that can be specified under the NEML2Action common area.
static InputParameters validParams()
void assertNEML2Enabled()
Assert that NEML2 is enabled.