This class is responsible for adding relationship managers that describe geometric, algebraic and coupling ghosting for finite volume computations.
More...
#include <FVRelationshipManagerInterface.h>
|
| static void | setRMParams (const InputParameters &obj_params, InputParameters &rm_params, const unsigned short ghost_layers) |
| | Helper function to set the relationship manager parameters.
|
| |
| template<typename T > |
| static void | parameterError (const InputParameters &obj_params, const std::string ¶meter_name, const std::string &function_name, const std::string &description) |
| | Throw an error with an acceptable context.
|
| |
This class is responsible for adding relationship managers that describe geometric, algebraic and coupling ghosting for finite volume computations.
Definition at line 20 of file FVRelationshipManagerInterface.h.
◆ FVRelationshipManagerInterface()
| FVRelationshipManagerInterface::FVRelationshipManagerInterface |
( |
| ) |
|
|
inline |
◆ parameterError()
template<typename T >
| void FVRelationshipManagerInterface::parameterError |
( |
const InputParameters & |
obj_params, |
|
|
const std::string & |
parameter_name, |
|
|
const std::string & |
function_name, |
|
|
const std::string & |
description |
|
) |
| |
|
staticprivate |
Throw an error with an acceptable context.
- Parameters
-
| obj_params | The object parameters |
| parameter_name | The name of the parameter |
Definition at line 76 of file FVRelationshipManagerInterface.h.
80{
84 " The following parameter ",
85 parameter_name,
86 " was not found! This is required for setting the correct amount of ghosting in parallel "
87 "runs. This error is typically caused by utilizing incompatible relationship manager "
88 "callback functions in different objects. An example can be using ",
89 function_name,
90 " in a(n)",
91 description,
92 " object.");
93}
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
◆ setRMParams()
| void FVRelationshipManagerInterface::setRMParams |
( |
const InputParameters & |
obj_params, |
|
|
InputParameters & |
rm_params, |
|
|
const unsigned short |
ghost_layers |
|
) |
| |
|
staticprivate |
Helper function to set the relationship manager parameters.
- Parameters
-
| obj_params | The input parameters of the object |
| rm_params | The input parameters of the relationship manager |
| ghost_layers | The number of ghosted layers needed |
Definition at line 101 of file FVRelationshipManagerInterface.C.
104{
105 rm_params.
set<
unsigned short>(
"layers") = ghost_layers;
106 rm_params.
set<
bool>(
"use_point_neighbors") = obj_params.
get<
bool>(
"use_point_neighbors");
107
108 rm_params.
set<
bool>(
"attach_geometric_early") =
true;
109 rm_params.
set<
bool>(
"use_displaced_mesh") = obj_params.
get<
bool>(
"use_displaced_mesh");
110}
Referenced by setRMParamsAdvection(), setRMParamsDiffusion(), and validParams().
◆ setRMParamsAdvection()
| void FVRelationshipManagerInterface::setRMParamsAdvection |
( |
const InputParameters & |
obj_params, |
|
|
InputParameters & |
rm_params, |
|
|
const unsigned short |
conditional_extended_layers |
|
) |
| |
|
static |
Helper function to set the relationship manager parameters for advection-related kernels.
- Parameters
-
| obj_params | The input parameters of the object |
| rm_params | The input parameters of the relationship manager |
| conditional_extended_layers | Number of layers that will get assigned if the conditions in the function are met |
Definition at line 53 of file FVRelationshipManagerInterface.C.
57{
58 parameterError<unsigned short>(
59 obj_params, "ghost_layers", "setRMParamsAdvection", "non-advection");
60 parameterError<MooseEnum>(
61 obj_params, "advected_interp_method", "setRMParamsAdvection", "non-advection");
62
63 auto ghost_layers = obj_params.
get<
unsigned short>(
"ghost_layers");
64 const auto & interp_method_in = obj_params.
get<
MooseEnum>(
"advected_interp_method");
66
67
73 ghost_layers = std::max(conditional_extended_layers, ghost_layers);
74
76}
static void setRMParams(const InputParameters &obj_params, InputParameters &rm_params, const unsigned short ghost_layers)
Helper function to set the relationship manager parameters.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
InterpMethod selectInterpolationMethod(const std::string &interp_method)
Referenced by FVAdvection::validParams().
◆ setRMParamsDiffusion()
| void FVRelationshipManagerInterface::setRMParamsDiffusion |
( |
const InputParameters & |
obj_params, |
|
|
InputParameters & |
rm_params, |
|
|
const unsigned short |
conditional_extended_layers |
|
) |
| |
|
static |
Helper function to set the relationship manager parameters for diffusion-related kernels.
- Parameters
-
| obj_params | The input parameters of the object |
| rm_params | The input parameters of the relationship manager |
| conditional_extended_layers | Number of layers that will get assigned if the conditions in the function are met |
Definition at line 79 of file FVRelationshipManagerInterface.C.
83{
84 parameterError<unsigned short>(
85 obj_params, "ghost_layers", "setRMParamsDiffusion", "non-diffusion");
86 parameterError<MooseEnum>(
87 obj_params, "variable_interp_method", "setRMParamsDiffusion", "non-diffusion");
88
89 auto ghost_layers = obj_params.
get<
unsigned short>(
"ghost_layers");
90 const auto & interp_method_in = obj_params.
get<
MooseEnum>(
"variable_interp_method");
92
93
95 ghost_layers = std::max(conditional_extended_layers, ghost_layers);
96
98}
@ SkewCorrectedAverage
(gc*elem+(1-gc)*neighbor)+gradient*(rf-rf')
Referenced by FVAnisotropicDiffusion::validParams(), and FVDiffusion::validParams().
◆ validParams()
Definition at line 14 of file FVRelationshipManagerInterface.C.
15{
16
18
19 params.
addParam<
unsigned short>(
"ghost_layers", 1,
"The number of layers of elements to ghost.");
20 params.
addParam<
bool>(
"use_point_neighbors",
21 false,
22 "Whether to use point neighbors, which introduces additional ghosting to "
23 "that used for simple face neighbors.");
25
26 params.
addParam<
bool>(
"use_displaced_mesh",
27 false,
28 "Whether or not this object should use the "
29 "displaced mesh for computation. Note that in "
30 "the case this is true but no displacements "
31 "are provided in the Mesh block the "
32 "undisplaced mesh will still be used.");
34
35
36
37
38
40 "ElementSideNeighborLayers",
44 {
46 obj_params, rm_params, obj_params.
get<
unsigned short>(
"ghost_layers"));
47 });
48
49 return params;
50}
Referenced by FVKernel::validParams(), and LinearFVKernel::validParams().
The documentation for this class was generated from the following files: