15 #include "FEProblem.h"
24 params.addClassDescription(
"This class allows us to have a section of the input file like the "
25 "following which automatically adds Kernels and AuxKernels for all "
26 "the required nonlinear and auxiliary variables.");
27 params.addRequiredParam<UserObjectName>(
"fluid_properties",
28 "The name of the user object for fluid properties");
33 :
NSAction(parameters), _fp_name(getParam<UserObjectName>(
"fluid_properties"))
48 const std::string kernel_type =
"TimeDerivative";
49 InputParameters params = _factory.getValidParams(kernel_type);
50 params.set<NonlinearVariableName>(
"variable") =
name;
51 _problem->addKernel(kernel_type,
name + std::string(
"_time_deriv"), params);
80 const std::string kernel_type =
"NSSUPGMass";
81 InputParameters params = _factory.getValidParams(kernel_type);
82 params.set<NonlinearVariableName>(
"variable") =
NS::density;
89 _problem->addKernel(kernel_type,
"rho_supg", params);
97 const std::string kernel_type =
"NSSUPGMomentum";
98 InputParameters params = _factory.getValidParams(kernel_type);
99 params.set<NonlinearVariableName>(
"variable") = momentums[
component];
107 params.set<
unsigned int>(
"component") =
component;
109 _problem->addKernel(kernel_type, momentums[
component] + std::string(
"_supg"), params);
115 const std::string kernel_type =
"NSSUPGEnergy";
116 InputParameters params = _factory.getValidParams(kernel_type);
124 _problem->addKernel(kernel_type,
"rhoE_supg", params);
130 const std::string kernel_type =
"ParsedAux";
132 InputParameters params = _factory.getValidParams(kernel_type);
140 params.set<std::string>(
"function") =
function;
142 _problem->addAuxKernel(kernel_type,
"specific_volume_auxkernel", params);
148 const std::string kernel_type =
"NSInternalEnergyAux";
150 InputParameters params = _factory.getValidParams(kernel_type);
160 _problem->addAuxKernel(kernel_type,
"internal_energy_auxkernel", params);
166 const std::string kernel_type =
"NSMachAux";
168 InputParameters params = _factory.getValidParams(kernel_type);
178 params.set<UserObjectName>(
"fluid_properties") =
_fp_name;
180 _problem->addAuxKernel(kernel_type,
"mach_auxkernel", params);
186 const std::string kernel_type =
"NSEnthalpyAux";
188 InputParameters params = _factory.getValidParams(kernel_type);
196 _problem->addAuxKernel(kernel_type,
"enthalpy_auxkernel", params);
202 const std::string kernel_type =
"NSVelocityAux";
206 InputParameters params = _factory.getValidParams(kernel_type);
207 params.set<AuxVariableName>(
"variable") = velocities[
component];
212 params.set<UserObjectName>(
"fluid_properties") =
_fp_name;
214 _problem->addAuxKernel(kernel_type, velocities[
component] +
"_auxkernel", params);
220 InputParameters params = _factory.getValidParams(kernel_type);
222 params.set<AuxVariableName>(
"variable") = var_name;
227 params.set<UserObjectName>(
"fluid_properties") =
_fp_name;
229 _problem->addAuxKernel(kernel_type, var_name +
"_auxkernel", params);
235 const std::string kernel_type =
"NSMassInviscidFlux";
236 InputParameters params = _factory.getValidParams(kernel_type);
237 params.set<NonlinearVariableName>(
"variable") =
NS::density;
239 _problem->addKernel(kernel_type,
"rho_if", params);
246 const std::string kernel_type =
"NSMomentumInviscidFlux";
247 InputParameters params = _factory.getValidParams(kernel_type);
248 params.set<NonlinearVariableName>(
"variable") = momentums[
component];
253 params.set<
unsigned int>(
"component") =
component;
256 _problem->addKernel(kernel_type, momentums[
component] + std::string(
"if"), params);
262 const std::string kernel_type =
"NSEnergyInviscidFlux";
263 InputParameters params = _factory.getValidParams(kernel_type);
271 _problem->addKernel(kernel_type,
"rhoE_if", params);
286 params.set<UserObjectName>(
"fluid_properties") =
_fp_name;