https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
JacobianTest1PhaseRDGAction Class Reference

Sets up a Jacobian test for 1-phase rDG. More...

#include <JacobianTest1PhaseRDGAction.h>

Inheritance diagram for JacobianTest1PhaseRDGAction:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 JacobianTest1PhaseRDGAction (const InputParameters &params)
 
virtual void act ()
 
void timedAct ()
 
virtual void addRelationshipManagers (Moose::RelationshipManagerType when_type)
 
MooseObjectName uniqueActionName () const
 
const std::string & specificTaskName () const
 
const std::set< std::string > & getAllTasks () const
 
void appendTask (const std::string &task)
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
PerfGraphperfGraph ()
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string unique_action_name_param
 
static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

virtual void addObjects () override
 Adds all non-mesh objects.
 
virtual void addMesh () override
 Adds the mesh.
 
virtual void addInitialConditions () override
 Adds the initial conditions.
 
virtual void addSolutionVariables () override
 Adds the solution variables.
 
virtual void addAuxVariables () override
 Adds aux variables.
 
virtual void addMaterials () override
 Adds materials.
 
virtual void addUserObjects () override
 Adds user objects.
 
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)
 
virtual void addPreconditioner () override
 Adds the preconditioner.
 
void addMeshInternal (const unsigned int &nx)
 Adds the mesh with a provided number of elements in x direction.
 
void addScalarVariables (const std::vector< VariableName > &names, const std::vector< FunctionName > &values)
 Adds scalar variables.
 
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.
 
void addAuxVariable (const VariableName &var_name, const std::string &fe_family, const std::string &fe_order)
 Adds an aux variable.
 
void addConstantIC (const VariableName &var_name, const Real &value)
 Adds a constant initial condition.
 
void addFunctionIC (const VariableName &var_name, const FunctionName &function_name)
 Adds a function initial condition.
 
virtual void addExecutioner ()
 Adds the executioner.
 
virtual void addOutput ()
 Add output.
 
bool addRelationshipManagers (Moose::RelationshipManagerType when_type, const InputParameters &moose_object_pars)
 
void associateWithParameter (const std::string &param_name, InputParameters &params) const
 
void associateWithParameter (const InputParameters &from_params, const std::string &param_name, InputParameters &params) const
 
const TgetMeshProperty (const std::string &data_name, const std::string &prefix)
 
const TgetMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

const VariableName _A_name
 cross-sectional area variable name, elemental average
 
const VariableName _A_linear_name
 cross-sectional area variable name, linear Lagrange
 
const VariableName _rhoA_name
 rho*A variable name
 
const VariableName _rhouA_name
 rho*u*A variable name
 
const VariableName _rhoEA_name
 rho*E*A variable name
 
const bool _add_dg_kernel
 option to add DG kernel
 
const bool _add_bc
 option to BC
 
const UserObjectName _numerical_flux_name
 name of numerical flux user object being tested
 
const UserObjectName _boundary_flux_name
 name of boundary flux user object being tested
 
const MooseEnum _ic_option
 initial conditions option
 
const FunctionName & _A_fn_name
 area function name
 
const bool _use_slope_reconstruction
 option to use slope reconstruction
 
const std::string _reconstruction_material_name
 reconstruction material name
 
const MaterialPropertyName _direction_name
 direction material property name
 
const UserObjectName _fp_name
 fluid properties object name
 
const std::string _snes_test_err
 Finite differencing parameter.
 
bool _default_use_transient_executioner
 Default for option to use a transient executioner.
 
const std::vector< VariableName > _scalar_variables
 List of scalar variables to add.
 
const std::vector< FunctionName > _scalar_variable_values
 List of values for the scalar variables to add.
 
const std::vector< VariableName > _aux_variables
 List of aux variables to add.
 
const std::vector< FunctionName > _aux_variable_values
 List of function names for aux variables to add.
 
const std::vector< std::string > _mat_property_names
 List of material properties to add.
 
const std::vector< FunctionName > _mat_property_values
 List of function names for material properties to add.
 
const std::string _fe_family
 Default FE family.
 
const std::string _fe_order
 Default FE order.
 
const bool & _ad
 True for setting up testing with AD, false otherwise.
 
std::string _registered_identifier
 
std::string _specific_task_name
 
std::set< std::string > _all_tasks
 
ActionWarehouse_awh
 
const std::string & _current_task
 
std::shared_ptr< MooseMesh > & _mesh
 
std::shared_ptr< MooseMesh > & _displaced_mesh
 
std::shared_ptr< FEProblemBase > & _problem
 
PerfID _act_timer
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
const Parallel::Communicator & _communicator
 

Private Member Functions

bool addRelationshipManager (Moose::RelationshipManagerType input_rm_type, const InputParameters &moose_object_pars, std::string rm_name, Moose::RelationshipManagerType rm_type, Moose::RelationshipManagerInputParameterCallback rm_input_parameter_func, Moose::RMSystemType sys_type=Moose::RMSystemType::NONE)
 
virtual std::string meshPropertyPrefix (const std::string &data_name) const
 
const RestartableDataValuegetMeshPropertyInternal (const std::string &data_name, const std::string &prefix) const
 
void mooseErrorInternal (Args &&... args) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 

Private Attributes

const ParallelParamObject_parent
 
MooseApp_meta_data_app
 
const MooseObject *const _meta_data_object
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 

Detailed Description

Sets up a Jacobian test for 1-phase rDG.

Definition at line 18 of file JacobianTest1PhaseRDGAction.h.

Constructor & Destructor Documentation

◆ JacobianTest1PhaseRDGAction()

JacobianTest1PhaseRDGAction::JacobianTest1PhaseRDGAction ( const InputParameters params)

Definition at line 50 of file JacobianTest1PhaseRDGAction.C.

51 : JacobianTestAction(params),
52 _A_name("A"),
53 _A_linear_name("A_linear"),
54 _rhoA_name("rhoA"),
55 _rhouA_name("rhouA"),
56 _rhoEA_name("rhoEA"),
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")
67{
68 if (_add_dg_kernel && !_pars.isParamSetByUser("numerical_flux"))
69 mooseError("The parameter 'numerical_flux' must be provided when adding a DG kernel.");
70 if (_add_bc && !_pars.isParamSetByUser("boundary_flux"))
71 mooseError("The parameter 'boundary_flux' must be provided when adding a BC.");
72}
bool isParamSetByUser(const std::string &name) const
const UserObjectName _numerical_flux_name
name of numerical flux user object being tested
const bool _use_slope_reconstruction
option to use slope reconstruction
const VariableName _A_name
cross-sectional area variable name, elemental average
const std::string _reconstruction_material_name
reconstruction material name
const MooseEnum _ic_option
initial conditions option
const VariableName _rhouA_name
rho*u*A variable name
const VariableName _rhoA_name
rho*A variable name
const VariableName _A_linear_name
cross-sectional area variable name, linear Lagrange
const UserObjectName _boundary_flux_name
name of boundary flux user object being tested
const UserObjectName _fp_name
fluid properties object name
const MaterialPropertyName _direction_name
direction material property name
const bool _add_dg_kernel
option to add DG kernel
const VariableName _rhoEA_name
rho*E*A variable name
const FunctionName & _A_fn_name
area function name
Base class for adding common actions for Jacobian tests.
void mooseError(Args &&... args) const
const InputParameters & _pars

Member Function Documentation

◆ act()

void TestAction::act ( )
virtualinherited

Implements Action.

Definition at line 77 of file TestAction.C.

78{
79 if (_current_task == "meta_action")
80 {
81 if (getParam<bool>("generate_mesh"))
82 addMesh();
83
84 addObjects();
85
86 {
87 const std::string class_name = "CreateProblemAction";
88 auto action_params = _action_factory.getValidParams(class_name);
89 action_params.set<std::string>("type") = "FEProblem";
90
91 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
92 _action_factory.create(class_name, "fe_problem", action_params));
93
94 action->getObjectParams().set<MooseEnum>("kernel_coverage_check") = "false";
95 _awh.addActionBlock(action);
96 }
97 }
98}
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters &parameters)
InputParameters getValidParams(const std::string &name)
void addActionBlock(std::shared_ptr< Action > blk)
const std::string & _current_task
ActionWarehouse & _awh
T & set(const std::string &name, bool quiet_mode=false)
ActionFactory & _action_factory
virtual void addMesh()
Adds the mesh.
Definition TestAction.C:101
virtual void addObjects()
Adds all non-mesh objects.
Definition TestAction.C:142

◆ addAuxVariable()

void TestAction::addAuxVariable ( const VariableName &  var_name,
const std::string &  fe_family,
const std::string &  fe_order 
)
protectedinherited

Adds an aux variable.

Parameters
[in]var_namename of the variable to add
[in]fe_familyfinite element family
[in]fe_orderfinite element order

Definition at line 250 of file TestAction.C.

253{
254 const std::string class_name = "AddAuxVariableAction";
256
257 params.set<MooseEnum>("family") = fe_family;
258 params.set<MooseEnum>("order") = fe_order;
259
260 std::shared_ptr<Action> action =
261 std::static_pointer_cast<Action>(_action_factory.create(class_name, var_name, params));
262
263 _awh.addActionBlock(action);
264}

Referenced by TestAction::addAuxVariables(), ClosureTestAction::addAuxVariables(), addAuxVariables(), ClosureTestAction::setupADOutput(), and ClosureTestAction::setupOutput().

◆ addAuxVariables()

void JacobianTest1PhaseRDGAction::addAuxVariables ( )
overrideprotectedvirtual

Adds aux variables.

Reimplemented from TestAction.

Definition at line 239 of file JacobianTest1PhaseRDGAction.C.

240{
243 if (getParam<bool>("use_elem_area"))
245 else
246 addAuxVariable(_A_linear_name, "LAGRANGE", "FIRST");
248}
void addFunctionIC(const VariableName &var_name, const FunctionName &function_name)
Adds a function initial condition.
Definition TestAction.C:283
const std::string _fe_family
Default FE family.
Definition TestAction.h:150
const std::string _fe_order
Default FE order.
Definition TestAction.h:152
void addAuxVariable(const VariableName &var_name, const std::string &fe_family, const std::string &fe_order)
Adds an aux variable.
Definition TestAction.C:250

◆ addConstantIC()

void TestAction::addConstantIC ( const VariableName &  var_name,
const Real &  value 
)
protectedinherited

Adds a constant initial condition.

Parameters
[in]var_namename of the variable for which to add initial condition
[in]valuevalue of the initial condition

Definition at line 267 of file TestAction.C.

268{
269 const std::string class_name = "AddInitialConditionAction";
271 params.set<std::string>("type") = "ConstantIC";
272
273 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
274 _action_factory.create(class_name, var_name + "_IC", params));
275
276 action->getObjectParams().set<VariableName>("variable") = var_name;
277 action->getObjectParams().set<Real>("value") = value;
278
279 _awh.addActionBlock(action);
280}
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Referenced by addSolutionVariables().

◆ addExecutioner()

void TestAction::addExecutioner ( )
protectedvirtualinherited

Adds the executioner.

Definition at line 304 of file TestAction.C.

305{
306 const std::string class_name = "CreateExecutionerAction";
307
308 // determine whether to use a transient executioner - different derived
309 // classes have different defaults: the declared default is irrelevant
310 bool use_transient_executioner;
311 if (isParamValid("use_transient_executioner"))
312 use_transient_executioner = getParam<bool>("use_transient_executioner");
313 else
314 use_transient_executioner = _default_use_transient_executioner;
315
316 // Due to more consistent divergence status reporting in PETSc (as of 5f3c5e7a), users should have
317 // the option to abort on the first fail if desired. Otherwise Jacobian testing, for example,
318 // could fail in undesired ways, even if the Jacobian test achieves a passing result.
319 bool abort_on_solve_fail = getParam<bool>("abort_on_solve_fail");
320
321 // if a time kernel is being tested, then use a transient executioner instead of steady
322 if (use_transient_executioner)
323 {
325 params.set<std::string>("type") = "Transient";
326
327 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
328 _action_factory.create(class_name, "executioner", params));
329
330 action->getObjectParams().set<unsigned int>("num_steps") = 1;
331
332 if (abort_on_solve_fail)
333 action->getObjectParams().set<bool>("abort_on_solve_fail") = abort_on_solve_fail;
334
335 _awh.addActionBlock(action);
336 }
337 else
338 {
340 params.set<std::string>("type") = "Steady";
341
342 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
343 _action_factory.create(class_name, "executioner", params));
344
345 if (abort_on_solve_fail)
346 action->getObjectParams().set<bool>("abort_on_solve_fail") = abort_on_solve_fail;
347
348 _awh.addActionBlock(action);
349 }
350}
bool isParamValid(const std::string &name) const
bool _default_use_transient_executioner
Default for option to use a transient executioner.
Definition TestAction.h:132

Referenced by TestAction::addObjects().

◆ addFunctionIC()

void TestAction::addFunctionIC ( const VariableName &  var_name,
const FunctionName &  function_name 
)
protectedinherited

Adds a function initial condition.

Parameters
[in]var_namename of the variable for which to add initial condition
[in]function_namenames of the IC function

Definition at line 283 of file TestAction.C.

284{
285 const std::string class_name = "AddInitialConditionAction";
287 params.set<std::string>("type") = "FunctionIC";
288
289 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
290 _action_factory.create(class_name, var_name + "_IC", params));
291
292 action->getObjectParams().set<VariableName>("variable") = var_name;
293 action->getObjectParams().set<FunctionName>("function") = function_name;
294
295 _awh.addActionBlock(action);
296}

Referenced by TestAction::addAuxVariables(), addAuxVariables(), ClosureTestAction::addInitialConditions(), JacobianTestGeneralAction::addSolutionVariables(), and addSolutionVariablesRiemannIC().

◆ addInitialConditions()

void JacobianTest1PhaseRDGAction::addInitialConditions ( )
overrideprotectedvirtual

Adds the initial conditions.

Implements TestAction.

Definition at line 152 of file JacobianTest1PhaseRDGAction.C.

153{
154}

◆ addMaterials()

void JacobianTest1PhaseRDGAction::addMaterials ( )
overrideprotectedvirtual

Adds materials.

Reimplemented from TestAction.

Definition at line 251 of file JacobianTest1PhaseRDGAction.C.

252{
253 // direction
254 {
255 const std::string class_name = "AddMaterialAction";
257 params.set<std::string>("type") = "DirectionMaterial";
258
259 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
260 _action_factory.create(class_name, "direction_material", params));
261
262 _awh.addActionBlock(action);
263 }
264
265 // fluid properties
266 {
267 const std::string class_name = "AddMaterialAction";
269 if (_ad)
270 params.set<std::string>("type") = "ADFluidProperties3EqnMaterial";
271 else
272 params.set<std::string>("type") = "FluidProperties3EqnMaterial";
273
274 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
275 _action_factory.create(class_name, "fluid_properties_material", params));
276
277 action->getObjectParams().set<std::vector<VariableName>>("A") = {_A_name};
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};
281
282 action->getObjectParams().set<UserObjectName>("fp") = _fp_name;
283
284 _awh.addActionBlock(action);
285 }
286
287 // reconstruction material
288 {
289 const std::string class_name = "AddMaterialAction";
291 params.set<std::string>("type") = "RDG3EqnMaterial";
292
293 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
295
297 action->getObjectParams().set<MooseEnum>("scheme") = "Minmod";
298 else
299 action->getObjectParams().set<MooseEnum>("scheme") = "None";
300
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;
307
308 action->getObjectParams().set<UserObjectName>("fluid_properties") = _fp_name;
309
310 _awh.addActionBlock(action);
311 }
312}
const bool & _ad
True for setting up testing with AD, false otherwise.
Definition TestAction.h:154

◆ addMesh()

void JacobianTest1PhaseRDGAction::addMesh ( )
overrideprotectedvirtual

Adds the mesh.

Reimplemented from TestAction.

Definition at line 142 of file JacobianTest1PhaseRDGAction.C.

143{
144 // for internal side flux testing, use 2 elements (need an internal side)
145 if (_add_dg_kernel)
147 else
149}
void addMeshInternal(const unsigned int &nx)
Adds the mesh with a provided number of elements in x direction.
Definition TestAction.C:107

◆ addMeshInternal()

void TestAction::addMeshInternal ( const unsigned int nx)
protectedinherited

Adds the mesh with a provided number of elements in x direction.

Parameters
[in]nxnumber of elements in x direction

Definition at line 107 of file TestAction.C.

108{
109 std::vector<std::string> setup_mesh_tasks{"setup_mesh", "set_mesh_base", "init_mesh"};
110 for (const std::string & task : setup_mesh_tasks)
111 {
112 const std::string class_name = "SetupMeshAction";
114 params.set<std::string>("type") = "GeneratedMesh";
115 params.set<std::string>("task") = task;
116
117 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
118 _action_factory.create(class_name, task, params));
119
120 action->getObjectParams().set<MooseEnum>("dim") = 1;
121 action->getObjectParams().set<unsigned int>("nx") = nx;
122 action->getObjectParams().set<bool>("allow_renumbering") = false;
123
124 _awh.addActionBlock(action);
125 }
126
127 std::vector<std::string> setup_mesh_complete_tasks{"prepare_mesh", "setup_mesh_complete"};
128 for (const std::string & task : setup_mesh_complete_tasks)
129 {
130 const std::string class_name = "SetupMeshCompleteAction";
132 params.set<std::string>("task") = task;
133
134 std::shared_ptr<Action> action =
135 std::static_pointer_cast<Action>(_action_factory.create(class_name, task, params));
136
137 _awh.addActionBlock(action);
138 }
139}

Referenced by TestAction::addMesh(), and addMesh().

◆ addObjects()

void JacobianTest1PhaseRDGAction::addObjects ( )
overrideprotectedvirtual

Adds all non-mesh objects.

Reimplemented from TestAction.

Definition at line 75 of file JacobianTest1PhaseRDGAction.C.

76{
78
79 const std::vector<VariableName> variables = {_rhoA_name, _rhouA_name, _rhoEA_name};
80
82 {
83 // add the DG kernel to use the internal flux
84 for (unsigned int i = 0; i < variables.size(); i++)
85 {
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"};
91
92 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
93 _action_factory.create(class_name, "internal_side_flux_" + variables[i], params));
94
95 action->getObjectParams().set<NonlinearVariableName>("variable") = variables[i];
96 action->getObjectParams().set<std::vector<SubdomainName>>("block") = {"0"};
97
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};
102
103 action->getObjectParams().set<UserObjectName>("numerical_flux") = _numerical_flux_name;
104
105 _awh.addActionBlock(action);
106 }
107 }
108
109 if (_add_bc)
110 {
111 // add the BC to use the boundary flux
112 for (unsigned int i = 0; i < variables.size(); i++)
113 {
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"};
120
121 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
122 _action_factory.create(class_name, "bc_" + variables[i], params));
123
124 action->getObjectParams().set<NonlinearVariableName>("variable") = variables[i];
125 action->getObjectParams().set<Real>("normal") = 1.;
126 action->getObjectParams().set<std::vector<BoundaryName>>("boundary") = {"0"};
127
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};
133
134 action->getObjectParams().set<UserObjectName>("boundary_flux") = _boundary_flux_name;
135
136 _awh.addActionBlock(action);
137 }
138 }
139}

◆ addOutput()

void TestAction::addOutput ( )
protectedvirtualinherited

Add output.

Reimplemented in ClosureTestAction.

Definition at line 353 of file TestAction.C.

354{
355}

Referenced by TestAction::addObjects().

◆ addPreconditioner()

void JacobianTestAction::addPreconditioner ( )
overrideprotectedvirtualinherited

Adds the preconditioner.

Reimplemented from TestAction.

Definition at line 34 of file JacobianTestAction.C.

35{
36 const std::string class_name = "SetupPreconditionerAction";
38 params.set<std::string>("type") = "SMP";
39
40 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
41 _action_factory.create(class_name, "smp", params));
42
43 action->getObjectParams().set<bool>("full") = true;
44 action->getObjectParams().set<MooseEnum>("solve_type") = "newton";
45#if PETSC_VERSION_LESS_THAN(3, 9, 0)
46 action->getObjectParams().set<MultiMooseEnum>("petsc_options_iname") =
47 "-snes_type -snes_test_err";
48 action->getObjectParams().set<std::vector<std::string>>("petsc_options_value") = {"test",
50#else
51 action->getObjectParams().set<MultiMooseEnum>("petsc_options") = "-snes_test_jacobian";
52 action->getObjectParams().set<MultiMooseEnum>("petsc_options_iname") = "-snes_test_err";
53 action->getObjectParams().set<std::vector<std::string>>("petsc_options_value") = {_snes_test_err};
54#endif
55
56 _awh.addActionBlock(action);
57}
const std::string _snes_test_err
Finite differencing parameter.

◆ addScalarVariables()

void TestAction::addScalarVariables ( const std::vector< VariableName > &  names,
const std::vector< FunctionName > &  values 
)
protectedinherited

Adds scalar variables.

Parameters
[in]namesnames of the variables to add
[in]valuesvalues of the variables to add

Definition at line 156 of file TestAction.C.

158{
159 for (unsigned int i = 0; i < names.size(); ++i)
160 {
161 // add the scalar variable
162 addSolutionVariable(names[i], "SCALAR", "FIRST");
163
164 // add its IC
165 {
166 const std::string class_name = "AddInitialConditionAction";
168 params.set<std::string>("type") = "FunctionScalarIC";
169
170 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
171 _action_factory.create(class_name, names[i] + "_IC", params));
172
173 action->getObjectParams().set<VariableName>("variable") = names[i];
174 action->getObjectParams().set<std::vector<FunctionName>>("function") = {values[i]};
175
176 _awh.addActionBlock(action);
177 }
178 }
179}
std::array< Real, 2 > values
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.
Definition TestAction.C:232

Referenced by TestAction::addObjects().

◆ addSolutionVariable()

void TestAction::addSolutionVariable ( const VariableName &  var_name,
const std::string &  family = "LAGRANGE",
const std::string &  order = "FIRST",
const Real &  scaling = 1.0 
)
protectedinherited

Adds a solution variable.

Parameters
[in]var_namename of the variable to add
[in]familyvariable family
[in]ordervariable order
[in]scalingscaling factor to apply to variable

Definition at line 232 of file TestAction.C.

236{
237 const std::string class_name = "AddVariableAction";
239 params.set<MooseEnum>("family") = family;
240 params.set<MooseEnum>("order") = order;
241 params.set<std::vector<Real>>("scaling") = {scaling};
242
243 std::shared_ptr<Action> action =
244 std::static_pointer_cast<Action>(_action_factory.create(class_name, var_name, params));
245
246 _awh.addActionBlock(action);
247}

Referenced by TestAction::addScalarVariables(), ClosureTestAction::addSolutionVariables(), addSolutionVariables(), JacobianTestGeneralAction::addSolutionVariables(), and addSolutionVariablesRiemannIC().

◆ addSolutionVariables()

void JacobianTest1PhaseRDGAction::addSolutionVariables ( )
overrideprotectedvirtual

Adds the solution variables.

Implements TestAction.

Definition at line 157 of file JacobianTest1PhaseRDGAction.C.

158{
159 const std::vector<VariableName> variables = {_rhoA_name, _rhouA_name, _rhoEA_name};
160
161 if (_ic_option == "constant")
162 {
163 const std::vector<Real> values = {2.0, 4.0, 30.0};
164
165 for (std::size_t i = 0; i < variables.size(); ++i)
166 {
167 addSolutionVariable(variables[i]);
168 addConstantIC(variables[i], values[i]);
169 }
170 }
171 else if (_ic_option == "riemann_L") // left region
172 {
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};
175
176 addSolutionVariablesRiemannIC(variables, values_left, values_right);
177 }
178 else if (_ic_option == "riemann_LM") // left star region
179 {
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};
182
183 addSolutionVariablesRiemannIC(variables, values_left, values_right);
184 }
185 else if (_ic_option == "riemann_RM") // right star region
186 {
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};
189
190 addSolutionVariablesRiemannIC(variables, values_left, values_right);
191 }
192 else if (_ic_option == "riemann_R") // right region
193 {
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};
196
197 addSolutionVariablesRiemannIC(variables, values_left, values_right);
198 }
199 else
200 {
201 mooseError("Invalid IC option");
202 }
203}
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)
void addConstantIC(const VariableName &var_name, const Real &value)
Adds a constant initial condition.
Definition TestAction.C:267

◆ addSolutionVariablesRiemannIC()

void JacobianTest1PhaseRDGAction::addSolutionVariablesRiemannIC ( const std::vector< VariableName > &  variables,
const std::vector< Real > &  values_left,
const std::vector< Real > &  values_right 
)
protected

Adds solution variables with Riemann problem IC (constant left and right states)

Parameters
[in]variablesnames of the solution variables
[in]values_leftvalues of the solution variables on the left half
[in]values_rightvalues of the solution variables on the right half

Definition at line 206 of file JacobianTest1PhaseRDGAction.C.

210{
211 for (unsigned int i = 0; i < variables.size(); ++i)
212 {
213 // add the variable
214 addSolutionVariable(variables[i], "MONOMIAL", "CONSTANT");
215
216 // add the IC function
217 FunctionName ic_fn_name;
218 {
219 const std::string class_name = "AddFunctionAction";
221 params.set<std::string>("type") = "PiecewiseConstant";
222
223 ic_fn_name = variables[i] + "_IC_fn";
224 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
225 _action_factory.create(class_name, ic_fn_name, params));
226
227 action->getObjectParams().set<MooseEnum>("axis") = "x";
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]};
230
231 _awh.addActionBlock(action);
232 }
233
234 addFunctionIC(variables[i], ic_fn_name);
235 }
236}

Referenced by addSolutionVariables().

◆ addUserObjects()

void JacobianTest1PhaseRDGAction::addUserObjects ( )
overrideprotectedvirtual

Adds user objects.

Implements TestAction.

Definition at line 315 of file JacobianTest1PhaseRDGAction.C.

316{
317 // fluid properties
318 {
319 const std::string class_name = "AddFluidPropertiesAction";
321 params.set<std::string>("type") = "IdealGasFluidProperties";
322
323 std::shared_ptr<MooseObjectAction> action = std::static_pointer_cast<MooseObjectAction>(
324 _action_factory.create(class_name, _fp_name, params));
325
326 action->getObjectParams().set<Real>("gamma") = 1.5;
327 action->getObjectParams().set<Real>("molar_mass") = 0.83144598;
328
329 _awh.addActionBlock(action);
330 }
331}

◆ validParams()

InputParameters JacobianTest1PhaseRDGAction::validParams ( )
static

Definition at line 19 of file JacobianTest1PhaseRDGAction.C.

20{
23
24 params.addClassDescription("Sets up a Jacobian test for rDG");
25
26 params.addParam<bool>("add_dg_kernel", false, "Option to add DG kernel");
27 params.addParam<bool>("add_bc", false, "Option to add BC");
28
29 params.addParam<UserObjectName>(
30 "numerical_flux", "", "Name of the numerical flux user object to test");
31 params.addParam<UserObjectName>(
32 "boundary_flux", "", "Name of the boundary flux user object to test");
33
34 MooseEnum ic_option("constant riemann_L riemann_LM riemann_RM riemann_R");
35 params.addRequiredParam<MooseEnum>("ic_option", ic_option, "IC option");
36
37 params.addParam<FunctionName>("A_function", "2.0", "Area function");
38
39 params.addParam<bool>("use_slope_reconstruction", true, "Use slope reconstruction?");
40
41 params.addParam<bool>(
42 "use_elem_area", false, "Use the elemental area variable instead of linear area");
43
44 params.set<std::string>("fe_family") = "MONOMIAL";
45 params.set<std::string>("fe_order") = "CONSTANT";
46
47 return params;
48}
InputParameters emptyInputParameters()
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _A_fn_name

const FunctionName& JacobianTest1PhaseRDGAction::_A_fn_name
protected

area function name

Definition at line 67 of file JacobianTest1PhaseRDGAction.h.

Referenced by addAuxVariables().

◆ _A_linear_name

const VariableName JacobianTest1PhaseRDGAction::_A_linear_name
protected

cross-sectional area variable name, linear Lagrange

Definition at line 46 of file JacobianTest1PhaseRDGAction.h.

Referenced by addAuxVariables(), addMaterials(), and addObjects().

◆ _A_name

const VariableName JacobianTest1PhaseRDGAction::_A_name
protected

cross-sectional area variable name, elemental average

Definition at line 44 of file JacobianTest1PhaseRDGAction.h.

Referenced by addAuxVariables(), addMaterials(), and addObjects().

◆ _ad

const bool& TestAction::_ad
protectedinherited

True for setting up testing with AD, false otherwise.

Definition at line 154 of file TestAction.h.

Referenced by ClosureTestAction::addMaterials(), and addMaterials().

◆ _add_bc

const bool JacobianTest1PhaseRDGAction::_add_bc
protected

option to BC

Definition at line 57 of file JacobianTest1PhaseRDGAction.h.

Referenced by addObjects(), and JacobianTest1PhaseRDGAction().

◆ _add_dg_kernel

const bool JacobianTest1PhaseRDGAction::_add_dg_kernel
protected

option to add DG kernel

Definition at line 55 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMesh(), addObjects(), and JacobianTest1PhaseRDGAction().

◆ _aux_variable_values

const std::vector<FunctionName> TestAction::_aux_variable_values
protectedinherited

List of function names for aux variables to add.

Definition at line 142 of file TestAction.h.

Referenced by TestAction::addAuxVariables(), and TestAction::TestAction().

◆ _aux_variables

const std::vector<VariableName> TestAction::_aux_variables
protectedinherited

List of aux variables to add.

Definition at line 140 of file TestAction.h.

Referenced by TestAction::addAuxVariables(), and TestAction::TestAction().

◆ _boundary_flux_name

const UserObjectName JacobianTest1PhaseRDGAction::_boundary_flux_name
protected

name of boundary flux user object being tested

Definition at line 62 of file JacobianTest1PhaseRDGAction.h.

Referenced by addObjects().

◆ _default_use_transient_executioner

bool TestAction::_default_use_transient_executioner
protectedinherited

Default for option to use a transient executioner.

Definition at line 132 of file TestAction.h.

Referenced by TestAction::addExecutioner(), and ClosureTestAction::ClosureTestAction().

◆ _direction_name

const MaterialPropertyName JacobianTest1PhaseRDGAction::_direction_name
protected

direction material property name

Definition at line 76 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials().

◆ _fe_family

const std::string TestAction::_fe_family
protectedinherited

◆ _fe_order

const std::string TestAction::_fe_order
protectedinherited

◆ _fp_name

const UserObjectName JacobianTest1PhaseRDGAction::_fp_name
protected

fluid properties object name

Definition at line 79 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials(), and addUserObjects().

◆ _ic_option

const MooseEnum JacobianTest1PhaseRDGAction::_ic_option
protected

initial conditions option

Definition at line 65 of file JacobianTest1PhaseRDGAction.h.

Referenced by addSolutionVariables().

◆ _mat_property_names

const std::vector<std::string> TestAction::_mat_property_names
protectedinherited

List of material properties to add.

Definition at line 145 of file TestAction.h.

Referenced by TestAction::addMaterials(), and TestAction::TestAction().

◆ _mat_property_values

const std::vector<FunctionName> TestAction::_mat_property_values
protectedinherited

List of function names for material properties to add.

Definition at line 147 of file TestAction.h.

Referenced by TestAction::addMaterials(), and TestAction::TestAction().

◆ _numerical_flux_name

const UserObjectName JacobianTest1PhaseRDGAction::_numerical_flux_name
protected

name of numerical flux user object being tested

Definition at line 60 of file JacobianTest1PhaseRDGAction.h.

Referenced by addObjects().

◆ _reconstruction_material_name

const std::string JacobianTest1PhaseRDGAction::_reconstruction_material_name
protected

reconstruction material name

Definition at line 73 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials().

◆ _rhoA_name

const VariableName JacobianTest1PhaseRDGAction::_rhoA_name
protected

rho*A variable name

Definition at line 48 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials(), addObjects(), and addSolutionVariables().

◆ _rhoEA_name

const VariableName JacobianTest1PhaseRDGAction::_rhoEA_name
protected

rho*E*A variable name

Definition at line 52 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials(), addObjects(), and addSolutionVariables().

◆ _rhouA_name

const VariableName JacobianTest1PhaseRDGAction::_rhouA_name
protected

rho*u*A variable name

Definition at line 50 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials(), addObjects(), and addSolutionVariables().

◆ _scalar_variable_values

const std::vector<FunctionName> TestAction::_scalar_variable_values
protectedinherited

List of values for the scalar variables to add.

Definition at line 137 of file TestAction.h.

Referenced by TestAction::addObjects(), and TestAction::TestAction().

◆ _scalar_variables

const std::vector<VariableName> TestAction::_scalar_variables
protectedinherited

List of scalar variables to add.

Definition at line 135 of file TestAction.h.

Referenced by TestAction::addObjects(), and TestAction::TestAction().

◆ _snes_test_err

const std::string JacobianTestAction::_snes_test_err
protectedinherited

Finite differencing parameter.

Definition at line 26 of file JacobianTestAction.h.

Referenced by JacobianTestAction::addPreconditioner().

◆ _use_slope_reconstruction

const bool JacobianTest1PhaseRDGAction::_use_slope_reconstruction
protected

option to use slope reconstruction

Definition at line 70 of file JacobianTest1PhaseRDGAction.h.

Referenced by addMaterials().


The documentation for this class was generated from the following files: