26 params.
addParam<
bool>(
"add_dg_kernel",
false,
"Option to add DG kernel");
27 params.
addParam<
bool>(
"add_bc",
false,
"Option to add BC");
30 "numerical_flux",
"",
"Name of the numerical flux user object to test");
32 "boundary_flux",
"",
"Name of the boundary flux user object to test");
34 MooseEnum ic_option(
"constant riemann_L riemann_LM riemann_RM riemann_R");
37 params.
addParam<FunctionName>(
"A_function",
"2.0",
"Area function");
39 params.
addParam<
bool>(
"use_slope_reconstruction",
true,
"Use slope reconstruction?");
42 "use_elem_area",
false,
"Use the elemental area variable instead of linear area");
44 params.
set<std::string>(
"fe_family") =
"MONOMIAL";
45 params.
set<std::string>(
"fe_order") =
"CONSTANT";
53 _A_linear_name(
"A_linear"),
57 _add_dg_kernel(getParam<bool>(
"add_dg_kernel")),
58 _add_bc(getParam<bool>(
"add_bc")),
59 _numerical_flux_name(getParam<UserObjectName>(
"numerical_flux")),
60 _boundary_flux_name(getParam<UserObjectName>(
"boundary_flux")),
61 _ic_option(getParam<
MooseEnum>(
"ic_option")),
62 _A_fn_name(getParam<FunctionName>(
"A_function")),
63 _use_slope_reconstruction(getParam<bool>(
"use_slope_reconstruction")),
64 _reconstruction_material_name(
"reconstruction_material"),
65 _direction_name(
"direction"),
66 _fp_name(
"fluid_properties")
69 mooseError(
"The parameter 'numerical_flux' must be provided when adding a DG kernel.");
71 mooseError(
"The parameter 'boundary_flux' must be provided when adding a BC.");
84 for (
unsigned int i = 0; i < variables.size(); i++)
86 const std::string class_name =
"AddDGKernelAction";
88 params.
set<std::string>(
"type") =
"NumericalFlux3EqnDGKernel";
89 params.
set<NonlinearVariableName>(
"variable") = variables[i];
90 params.
set<std::vector<SubdomainName>>(
"block") = {
"0"};
92 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
96 action->getObjectParams().set<std::vector<SubdomainName>>(
"block") = {
"0"};
98 action->getObjectParams().set<std::vector<VariableName>>(
"A_linear") = {
_A_linear_name};
99 action->getObjectParams().set<std::vector<VariableName>>(
"rhoA") = {
_rhoA_name};
100 action->getObjectParams().set<std::vector<VariableName>>(
"rhouA") = {
_rhouA_name};
101 action->getObjectParams().set<std::vector<VariableName>>(
"rhoEA") = {
_rhoEA_name};
112 for (
unsigned int i = 0; i < variables.size(); i++)
114 const std::string class_name =
"AddBCAction";
116 params.
set<std::string>(
"type") =
"BoundaryFlux3EqnBC";
117 params.
set<NonlinearVariableName>(
"variable") = variables[i];
118 params.
set<
Real>(
"normal") = 1.;
119 params.
set<std::vector<BoundaryName>>(
"boundary") = {
"0"};
121 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
125 action->getObjectParams().set<
Real>(
"normal") = 1.;
126 action->getObjectParams().set<std::vector<BoundaryName>>(
"boundary") = {
"0"};
128 action->getObjectParams().set<std::vector<VariableName>>(
"A_elem") = {
_A_name};
129 action->getObjectParams().set<std::vector<VariableName>>(
"A_linear") = {
_A_linear_name};
130 action->getObjectParams().set<std::vector<VariableName>>(
"rhoA") = {
_rhoA_name};
131 action->getObjectParams().set<std::vector<VariableName>>(
"rhouA") = {
_rhouA_name};
132 action->getObjectParams().set<std::vector<VariableName>>(
"rhoEA") = {
_rhoEA_name};
163 const std::vector<Real> values = {2.0, 4.0, 30.0};
165 for (std::size_t i = 0; i < variables.size(); ++i)
173 const std::vector<Real> values_left = {2.2, 4.4, 11.2};
174 const std::vector<Real> values_right = {2.6, 6.4, 12.2};
180 const std::vector<Real> values_left = {2.2, -4.4, 11.2};
181 const std::vector<Real> values_right = {3.2, 8.4, 12.2};
187 const std::vector<Real> values_left = {2.2, 4.4, 11.2};
188 const std::vector<Real> values_right = {1.8, -5.0, 12.2};
194 const std::vector<Real> values_left = {2.2, 4.4, 11.2};
195 const std::vector<Real> values_right = {2.4, -16.0, 53.4};
207 const std::vector<VariableName> & variables,
208 const std::vector<Real> & values_left,
209 const std::vector<Real> & values_right)
211 for (
unsigned int i = 0; i < variables.size(); ++i)
217 FunctionName ic_fn_name;
219 const std::string class_name =
"AddFunctionAction";
221 params.
set<std::string>(
"type") =
"PiecewiseConstant";
223 ic_fn_name = variables[i] +
"_IC_fn";
224 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
228 action->getObjectParams().set<std::vector<Real>>(
"x") = {0.0, 0.5};
229 action->getObjectParams().set<std::vector<Real>>(
"y") = {values_left[i], values_right[i]};
243 if (getParam<bool>(
"use_elem_area"))
255 const std::string class_name =
"AddMaterialAction";
257 params.
set<std::string>(
"type") =
"DirectionMaterial";
259 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
267 const std::string class_name =
"AddMaterialAction";
270 params.
set<std::string>(
"type") =
"ADFluidProperties3EqnMaterial";
272 params.
set<std::string>(
"type") =
"FluidProperties3EqnMaterial";
274 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
278 action->getObjectParams().set<std::vector<VariableName>>(
"rhoA") = {
_rhoA_name};
279 action->getObjectParams().set<std::vector<VariableName>>(
"rhouA") = {
_rhouA_name};
280 action->getObjectParams().set<std::vector<VariableName>>(
"rhoEA") = {
_rhoEA_name};
282 action->getObjectParams().set<UserObjectName>(
"fp") =
_fp_name;
289 const std::string class_name =
"AddMaterialAction";
291 params.
set<std::string>(
"type") =
"RDG3EqnMaterial";
293 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
299 action->getObjectParams().set<
MooseEnum>(
"scheme") =
"None";
301 action->getObjectParams().set<std::vector<VariableName>>(
"A_elem") = {
_A_name};
302 action->getObjectParams().set<std::vector<VariableName>>(
"A_linear") = {
_A_linear_name};
303 action->getObjectParams().set<std::vector<VariableName>>(
"rhoA") = {
_rhoA_name};
304 action->getObjectParams().set<std::vector<VariableName>>(
"rhouA") = {
_rhouA_name};
305 action->getObjectParams().set<std::vector<VariableName>>(
"rhoEA") = {
_rhoEA_name};
306 action->getObjectParams().set<MaterialPropertyName>(
"direction") =
_direction_name;
308 action->getObjectParams().set<UserObjectName>(
"fluid_properties") =
_fp_name;
319 const std::string class_name =
"AddFluidPropertiesAction";
321 params.
set<std::string>(
"type") =
"IdealGasFluidProperties";
323 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<
MooseObjectAction>(
327 action->getObjectParams().set<
Real>(
"molar_mass") = 0.83144598;
Sets up a Jacobian test for 1-phase rDG.
InputParameters getValidParams(const std::string &name)
void addAuxVariable(const VariableName &var_name, const std::string &fe_family, const std::string &fe_order)
Adds an aux variable.
const std::string _fe_order
Default FE order.
virtual void addObjects()
Adds all non-mesh objects.
const UserObjectName _boundary_flux_name
name of boundary flux user object being tested
registerMooseAction("ThermalHydraulicsTestApp", JacobianTest1PhaseRDGAction, "meta_action")
const VariableName _rhoA_name
rho*A variable name
void addActionBlock(std::shared_ptr< Action > blk)
void addConstantIC(const VariableName &var_name, const Real &value)
Adds a constant initial condition.
void addMeshInternal(const unsigned int &nx)
Adds the mesh with a provided number of elements in x direction.
static InputParameters validParams()
const bool _add_bc
option to BC
virtual void addAuxVariables() override
Adds aux variables.
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters ¶meters)
const bool _use_slope_reconstruction
option to use slope reconstruction
const VariableName _rhoEA_name
rho*E*A variable name
virtual void addObjects() override
Adds all non-mesh objects.
const UserObjectName _fp_name
fluid properties object name
InputParameters & getObjectParams()
JacobianTest1PhaseRDGAction(const InputParameters ¶ms)
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.
static InputParameters validParams()
const UserObjectName _numerical_flux_name
name of numerical flux user object being tested
const MooseEnum _ic_option
initial conditions option
void addSolutionVariablesRiemannIC(const std::vector< VariableName > &variables, const std::vector< Real > &values_left, const std::vector< Real > &values_right)
Adds solution variables with Riemann problem IC (constant left and right states)
const bool & _ad
True for setting up testing with AD, false otherwise.
Base class for adding common actions for Jacobian tests.
const bool _add_dg_kernel
option to add DG kernel
ActionFactory & _action_factory
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void addUserObjects() override
Adds user objects.
const FunctionName & _A_fn_name
area function name
const std::string _fe_family
Default FE family.
void mooseError(Args &&... args) const
const InputParameters & _pars
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds a function initial condition.
const VariableName _rhouA_name
rho*u*A variable name
virtual void addSolutionVariables() override
Adds the solution variables.
virtual void addMaterials() override
Adds materials.
const std::string _reconstruction_material_name
reconstruction material name
virtual void addInitialConditions() override
Adds the initial conditions.
const VariableName _A_linear_name
cross-sectional area variable name, linear Lagrange
const MaterialPropertyName _direction_name
direction material property name
const VariableName _A_name
cross-sectional area variable name, elemental average
virtual void addMesh() override
Adds the mesh.