21 params.
addParam<
bool>(
"use_transient_executioner",
"Option to use a transient executioner");
22 params.
addParam<
bool>(
"generate_mesh",
true,
"Option to have the action generate the mesh");
23 params.
addParam<std::vector<VariableName>>(
24 "scalar_variable_names", {},
"List of scalar variables");
25 params.
addParam<std::vector<FunctionName>>(
26 "scalar_variable_values", {},
"List of values of the scalar variables");
27 params.
addParam<std::vector<VariableName>>(
"aux_variable_names", {},
"List of aux variables");
28 params.
addParam<std::vector<FunctionName>>(
29 "aux_variable_values", {},
"List of values of the aux variables");
30 params.
addParam<std::vector<std::string>>(
31 "mat_property_names", {},
"List of material property names");
32 params.
addParam<std::vector<FunctionName>>(
33 "mat_property_values", {},
"List of values of the material properties");
34 params.
addParam<
bool>(
"ad",
false,
"Setup for AD or non-AD testing");
39 params.
addParam<
bool>(
"abort_on_solve_fail",
41 "Abort if the solve did not converge rather than cut the timestep");
50 _default_use_transient_executioner(false),
52 _scalar_variables(getParam<
std::vector<VariableName>>(
"scalar_variable_names")),
53 _scalar_variable_values(getParam<
std::vector<FunctionName>>(
"scalar_variable_values")),
54 _aux_variables(getParam<
std::vector<VariableName>>(
"aux_variable_names")),
55 _aux_variable_values(getParam<
std::vector<FunctionName>>(
"aux_variable_values")),
56 _mat_property_names(getParam<
std::vector<
std::string>>(
"mat_property_names")),
57 _mat_property_values(getParam<
std::vector<FunctionName>>(
"mat_property_values")),
58 _fe_family(getParam<
std::string>(
"fe_family")),
59 _fe_order(getParam<
std::string>(
"fe_order")),
60 _ad(getParam<bool>(
"ad"))
64 ": The parameters 'scalar_variable_names' and ",
65 "'scalar_variable_values' must have the same numbers of entries.");
68 ": The parameters 'aux_variable_names' and ",
69 "'aux_variable_values' must have the same numbers of entries.");
72 ": The parameters 'mat_property_names' and ",
73 "'mat_property_values' must have the same numbers of entries.");
81 if (getParam<bool>(
"generate_mesh"))
87 const std::string class_name =
"CreateProblemAction";
89 action_params.
set<std::string>(
"type") =
"FEProblem";
91 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
94 action->getObjectParams().set<
MooseEnum>(
"kernel_coverage_check") =
"false";
109 std::vector<std::string> setup_mesh_tasks{
"setup_mesh",
"set_mesh_base",
"init_mesh"};
110 for (
const std::string & task : setup_mesh_tasks)
112 const std::string class_name =
"SetupMeshAction";
114 params.
set<std::string>(
"type") =
"GeneratedMesh";
115 params.
set<std::string>(
"task") = task;
117 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
120 action->getObjectParams().set<
MooseEnum>(
"dim") = 1;
121 action->getObjectParams().set<
unsigned int>(
"nx") = nx;
122 action->getObjectParams().set<
bool>(
"allow_renumbering") =
false;
127 std::vector<std::string> setup_mesh_complete_tasks{
"prepare_mesh",
"setup_mesh_complete"};
128 for (
const std::string & task : setup_mesh_complete_tasks)
130 const std::string class_name =
"SetupMeshCompleteAction";
132 params.
set<std::string>(
"task") = task;
134 std::shared_ptr<Action> action =
157 const std::vector<FunctionName> & values)
159 for (
unsigned int i = 0; i < names.size(); ++i)
166 const std::string class_name =
"AddInitialConditionAction";
168 params.
set<std::string>(
"type") =
"FunctionScalarIC";
170 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
173 action->getObjectParams().set<VariableName>(
"variable") = names[i];
174 action->getObjectParams().set<std::vector<FunctionName>>(
"function") = {
values[i]};
189 for (
unsigned int i = 0; i < names.size(); ++i)
199 const std::string class_name =
"AddKernelAction";
201 params.
set<std::string>(
"type") =
"FunctionAux";
202 params.
set<std::string>(
"task") =
"add_aux_kernel";
204 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
207 action->getObjectParams().set<AuxVariableName>(
"variable") = names[i];
208 action->getObjectParams().set<FunctionName>(
"function") =
values[i];
218 const std::string class_name =
"AddMaterialAction";
220 params.
set<std::string>(
"type") =
"GenericFunctionMaterial";
222 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
225 action->getObjectParams().set<std::vector<std::string>>(
"prop_names") =
_mat_property_names;
233 const std::string & family,
234 const std::string & order,
235 const Real & scaling)
237 const std::string class_name =
"AddVariableAction";
241 params.
set<std::vector<Real>>(
"scaling") = {scaling};
243 std::shared_ptr<Action> action =
251 const std::string & fe_family,
252 const std::string & fe_order)
254 const std::string class_name =
"AddAuxVariableAction";
260 std::shared_ptr<Action> action =
269 const std::string class_name =
"AddInitialConditionAction";
271 params.
set<std::string>(
"type") =
"ConstantIC";
273 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
276 action->getObjectParams().set<VariableName>(
"variable") = var_name;
277 action->getObjectParams().set<Real>(
"value") = value;
285 const std::string class_name =
"AddInitialConditionAction";
287 params.
set<std::string>(
"type") =
"FunctionIC";
289 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
292 action->getObjectParams().set<VariableName>(
"variable") = var_name;
293 action->getObjectParams().set<FunctionName>(
"function") = function_name;
306 const std::string class_name =
"CreateExecutionerAction";
310 bool use_transient_executioner;
312 use_transient_executioner = getParam<bool>(
"use_transient_executioner");
319 bool abort_on_solve_fail = getParam<bool>(
"abort_on_solve_fail");
322 if (use_transient_executioner)
325 params.
set<std::string>(
"type") =
"Transient";
327 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
330 action->getObjectParams().set<
unsigned int>(
"num_steps") = 1;
332 if (abort_on_solve_fail)
333 action->getObjectParams().set<
bool>(
"abort_on_solve_fail") = abort_on_solve_fail;
340 params.
set<std::string>(
"type") =
"Steady";
342 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
345 if (abort_on_solve_fail)
346 action->getObjectParams().set<
bool>(
"abort_on_solve_fail") = abort_on_solve_fail;
std::array< Real, 2 > values
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters ¶meters)
InputParameters getValidParams(const std::string &name)
void addActionBlock(std::shared_ptr< Action > blk)
static InputParameters validParams()
const std::string & _current_task
const std::string & name() const
void mooseError(Args &&... args) const
bool isParamValid(const std::string &name) const
ActionFactory & _action_factory
const std::vector< std::string > _mat_property_names
List of material properties to add.
virtual void addMaterials()
Adds materials.
const std::vector< VariableName > _aux_variables
List of aux variables to add.
virtual void addExecutioner()
Adds the executioner.
const std::vector< FunctionName > _scalar_variable_values
List of values for the scalar variables to add.
virtual void addSolutionVariables()=0
Adds the solution variables.
bool _default_use_transient_executioner
Default for option to use a transient executioner.
virtual void addMesh()
Adds the mesh.
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds a function initial condition.
void addScalarVariables(const std::vector< VariableName > &names, const std::vector< FunctionName > &values)
Adds scalar variables.
virtual void addPreconditioner()
Adds the preconditioner.
const std::string _fe_family
Default FE family.
virtual void addObjects()
Adds all non-mesh objects.
virtual void addOutput()
Add output.
virtual void addUserObjects()=0
Adds user objects.
const std::string _fe_order
Default FE order.
void addConstantIC(const VariableName &var_name, const Real &value)
Adds a constant initial condition.
const std::vector< FunctionName > _aux_variable_values
List of function names for aux variables to add.
TestAction(const InputParameters ¶ms)
void addAuxVariable(const VariableName &var_name, const std::string &fe_family, const std::string &fe_order)
Adds an aux variable.
void addSolutionVariable(const VariableName &var_name, const std::string &family="LAGRANGE", const std::string &order="FIRST", const Real &scaling=1.0)
Adds a solution variable.
virtual void addInitialConditions()=0
Adds the initial conditions.
const std::vector< FunctionName > _mat_property_values
List of function names for material properties to add.
static InputParameters validParams()
const std::vector< VariableName > _scalar_variables
List of scalar variables to add.
virtual void addAuxVariables()
Adds aux variables.
void addMeshInternal(const unsigned int &nx)
Adds the mesh with a provided number of elements in x direction.