22 "Define the Navier Stokes weakly-compressible scalar field transport equation(s)");
28 "add_scalar_equation",
29 "Whether to add the scalar transport equation. This parameter is not necessary if " 30 "using the Physics syntax");
33 params.
addParam<std::vector<std::vector<MooseFunctorName>>>(
34 "passive_scalar_inlet_function",
35 std::vector<std::vector<MooseFunctorName>>(),
36 "Functors for inlet boundaries in the passive scalar equations.");
40 "passive_scalar_inlet_function",
"passive_scalar_inlet_functors",
"01/01/2025");
43 params.
addParam<std::vector<MooseFunctorName>>(
"passive_scalar_source",
"Passive scalar sources");
47 "passive_scalar_advection_interpolation");
52 "passive_scalar_scaling",
53 "passive_scalar_scaling > 0.0",
54 "The scaling factor for the passive scalar field variables.");
59 "passive_scalar_two_term_bc_expansion",
71 _passive_scalar_names(getParam<
std::vector<NonlinearVariableName>>(
"passive_scalar_names")),
72 _has_scalar_equation(isParamValid(
"add_scalar_equation") ? getParam<bool>(
"add_scalar_equation")
73 : !usingNavierStokesFVSyntax()),
74 _passive_scalar_inlet_types(getParam<
MultiMooseEnum>(
"passive_scalar_inlet_types")),
75 _passive_scalar_inlet_functors(
76 getParam<
std::vector<
std::vector<MooseFunctorName>>>(
"passive_scalar_inlet_functors")),
77 _passive_scalar_sources(getParam<
std::vector<MooseFunctorName>>(
"passive_scalar_source")),
78 _passive_scalar_coupled_sources(
79 getParam<
std::vector<
std::vector<MooseFunctorName>>>(
"passive_scalar_coupled_source")),
80 _passive_scalar_sources_coef(
81 getParam<
std::vector<
std::vector<
Real>>>(
"passive_scalar_coupled_source_coeff"))
92 checkVectorParamsSameLengthIfSet<NonlinearVariableName, MooseFunctorName>(
93 "passive_scalar_names",
"passive_scalar_diffusivity",
true);
94 checkVectorParamsSameLengthIfSet<NonlinearVariableName, std::vector<MooseFunctorName>>(
95 "passive_scalar_names",
"passive_scalar_coupled_source",
true);
96 checkVectorParamsSameLengthIfSet<NonlinearVariableName, MooseFunctorName>(
97 "passive_scalar_names",
"passive_scalar_source",
true);
98 checkVectorParamsSameLengthIfSet<NonlinearVariableName, Real>(
99 "passive_scalar_names",
"passive_scalar_scaling",
true);
100 checkVectorParamsSameLengthIfSet<NonlinearVariableName, FunctionName>(
101 "passive_scalar_names",
"initial_scalar_variables",
true);
102 checkVectorParamsSameLengthIfSet<NonlinearVariableName, std::vector<MooseFunctorName>>(
103 "passive_scalar_names",
"passive_scalar_inlet_functors",
true);
105 checkTwoDVectorParamMultiMooseEnumSameLength<MooseFunctorName>(
106 "passive_scalar_inlet_functors",
"passive_scalar_inlet_types",
false);
109 checkTwoDVectorParamsSameLength<MooseFunctorName, Real>(
"passive_scalar_coupled_source",
110 "passive_scalar_coupled_source_coeff");
152 "Scalar variables are defined externally of NavierStokesFV, so should their inital " 155 if (getParam<bool>(
"initialize_variables_from_mesh_file"))
171 params.
set<FunctionName>(
"function") =
172 getParam<std::vector<FunctionName>>(
"initial_scalar_variables")[name_i];
182 unsigned short necessary_layers = getParam<unsigned short>(
"ghost_layers");
185 if (getParam<MooseEnum>(
"passive_scalar_advection_interpolation") ==
"skewness-corrected")
186 necessary_layers = std::max(necessary_layers, (
unsigned short)3);
188 return necessary_layers;
static InputParameters validParams()
static InputParameters validParams()
unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of algebraic ghosting layers needed.
void assignBlocks(InputParameters ¶ms, const std::vector< SubdomainName > &blocks) const
virtual void addScalarAdvectionKernels()=0
virtual void addFVBCs() override
InputParameters getValidParams(const std::string &name) const
std::vector< NonlinearVariableName > _passive_scalar_names
Names of the passive scalar variables.
std::vector< SubdomainName > _blocks
static InputParameters commonScalarFieldAdvectionParams()
virtual void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters ¶meters)
std::vector< std::vector< MooseFunctorName > > _passive_scalar_inlet_functors
Functors describing the inlet boundary values. See passive_scalar_inlet_types for what the functors a...
virtual FEProblemBase & getProblem()
virtual unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of ghosting layers needed.
static InputParameters validParams()
std::vector< std::vector< Real > > _passive_scalar_sources_coef
Coefficients multiplying for the passive scalar sources. Inner indexing is scalar variable index...
virtual void addScalarWallBC()=0
const T & getParam(const std::string &name) const
std::vector< std::vector< MooseFunctorName > > _passive_scalar_coupled_sources
Functors for the passive scalar (coupled) sources. Inner indexing is scalar variable index...
void paramError(const std::string ¶m, Args... args) const
Helper class to interact with a flow and turbulence physics for a Physics that solves an advection pr...
WCNSFVScalarTransportPhysicsBase(const InputParameters ¶meters)
bool _define_variables
Whether to define variables if they do not exist.
bool isParamSetByUser(const std::string &nm) const
virtual void addInitialConditions() override
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
std::vector< MooseFunctorName > _passive_scalar_sources
Functors for the passive scalar sources. Indexing is scalar variable index.
virtual void addScalarSourceKernels()=0
Equivalent of NSFVAction addScalarCoupledSourceKernels.
const InputParameters & parameters() const
Base class to hold common parameters and utilities between all the weakly compressible Navier Stokes-...
virtual void addScalarDiffusionKernels()=0
const bool _has_scalar_equation
A boolean to help compatibility with the old Modules/NavierStokesFV syntax or to deliberately skip ad...
virtual void addScalarTimeKernels()=0
Functions adding kernels for the incompressible / weakly-compressible scalar transport equation...
virtual void addScalarInletBC()=0
Functions adding boundary conditions for the scalar conservation equations.
virtual void addFVKernels() override
void saveSolverVariableName(const VariableName &var_name)
const WCNSFVFlowPhysicsBase * _flow_equations_physics
Flow physics.
virtual void addScalarOutletBC()=0