11 #include "Executioner.h"
12 #include "FEProblem.h"
25 "add_output_aux_variables");
31 InputParameters params = validParams<Action>();
32 params.addRequiredParam<UserObjectName>(
"fp",
33 "The name of the fluid properties object to query.");
34 params.addParam<Real>(
"rho",
"Density");
35 params.addParam<Real>(
"rhou",
"Momentum density; rho * u");
36 params.addParam<Real>(
"rhoE",
"Total energy density: rho * E");
37 params.addParam<Real>(
"e",
"Specific internal energy");
38 params.addParam<Real>(
"p",
"Pressure");
39 params.addParam<Real>(
"T",
"Temperature");
40 params.addParam<Real>(
"vel",
"Velocity");
41 params.addParam<std::vector<Real>>(
"x_ncg",
"Mass fractions of NCGs");
42 params.addParam<
unsigned int>(
"precision", 10,
"Precision for printing values");
43 params.addParam<
bool>(
"json",
false,
"Output in JSON format");
45 params.addClassDescription(
"Action that sets up the fluid properties interrogator");
57 InputParameters & pars = const_cast<InputParameters &>(parameters());
58 ExecFlagEnum exec_enum = Output::getDefaultExecFlagEnum();
59 exec_enum = {EXEC_INITIAL, EXEC_TIMESTEP_END};
60 pars.addParam<ExecFlagEnum>(
"execute_on", exec_enum,
"(Does not need to be set)");
61 pars.addParam<
bool>(
"print_perf_log",
false,
"(Does not need to be set)");
68 if (_current_task ==
"setup_mesh")
70 const std::string class_name =
"GeneratedMesh";
71 InputParameters params = _factory.getValidParams(class_name);
72 params.set<MooseEnum>(
"dim") =
"1";
73 _mesh = _factory.create<MooseMesh>(class_name,
"mesh", params);
76 else if (_current_task ==
"init_mesh")
81 else if (_current_task ==
"create_problem")
83 const std::string class_name =
"FEProblem";
84 InputParameters params = _factory.getValidParams(class_name);
85 params.set<MooseMesh *>(
"mesh") = _mesh.get();
86 params.set<
bool>(
"use_nonlinear") =
true;
87 params.set<
bool>(
"solve") =
false;
88 _problem = _factory.create<FEProblemBase>(class_name,
"Problem", params);
89 _problem->setKernelCoverageCheck(
false);
92 else if (_current_task ==
"add_user_object")
97 else if (_current_task ==
"setup_executioner")
99 const std::string class_name =
"Steady";
100 InputParameters params = _factory.getValidParams(class_name);
101 params.set<FEProblemBase *>(
"_fe_problem_base") = _problem.get();
102 params.set<FEProblem *>(
"_fe_problem") = (std::dynamic_pointer_cast<FEProblem>(_problem)).get();
103 std::shared_ptr<Executioner> executioner =
104 _factory.create<Executioner>(class_name,
"Executioner", params);
105 _app.setExecutioner(std::move(executioner));
108 else if (_current_task ==
"add_output")
110 const std::string class_name =
"Console";
111 InputParameters params = _factory.getValidParams(class_name);
112 params.addPrivateParam<FEProblemBase *>(
"_fe_problem_base", _problem.get());
113 params.set<std::string>(
"file_base") = _app.getOutputFileBase();
114 params.set<ExecFlagEnum>(
"execute_on") = EXEC_FINAL;
115 params.set<MultiMooseEnum>(
"system_info") =
"";
116 std::shared_ptr<Output> output = _factory.create<Output>(class_name,
"Console", params);
117 OutputWarehouse & output_warehouse = _app.getOutputWarehouse();
118 output_warehouse.addOutput(output);
120 else if (_current_task ==
"common_output")
127 else if (_current_task ==
"add_output_aux_variables")
138 const std::string class_name =
"FluidPropertiesInterrogator";
139 InputParameters params = _factory.getValidParams(class_name);
140 params.set<UserObjectName>(
"fp") = getParam<UserObjectName>(
"fp");
142 if (isParamValid(
"rho"))
143 params.set<Real>(
"rho") = getParam<Real>(
"rho");
144 if (isParamValid(
"rhou"))
145 params.set<Real>(
"rhou") = getParam<Real>(
"rhou");
146 if (isParamValid(
"rhoE"))
147 params.set<Real>(
"rhoE") = getParam<Real>(
"rhoE");
148 if (isParamValid(
"e"))
149 params.set<Real>(
"e") = getParam<Real>(
"e");
150 if (isParamValid(
"p"))
151 params.set<Real>(
"p") = getParam<Real>(
"p");
152 if (isParamValid(
"T"))
153 params.set<Real>(
"T") = getParam<Real>(
"T");
154 if (isParamValid(
"vel"))
155 params.set<Real>(
"vel") = getParam<Real>(
"vel");
156 if (isParamValid(
"x_ncg"))
157 params.set<std::vector<Real>>(
"x_ncg") = getParam<std::vector<Real>>(
"x_ncg");
158 params.set<
unsigned int>(
"precision") = getParam<unsigned int>(
"precision");
159 params.set<
bool>(
"json") = getParam<bool>(
"json");
160 _problem->addUserObject(class_name,
"fp_interrogator", params);