35 "Define a turbulence model for a incompressible or weakly-compressible Navier Stokes " 36 "flow with a finite volume discretization");
38 MooseEnum turbulence_type(
"mixing-length k-epsilon none",
"none");
40 "turbulence_handling",
42 "The way turbulent diffusivities are determined in the turbulent regime.");
47 params.addParam<AuxVariableName>(
48 "mixing_length_name",
"mixing_length",
"Name of the mixing length auxiliary variable");
49 params.deprecateParam(
"mixing_length_walls",
"turbulence_walls",
"");
52 params.suppressParameter<
MooseEnum>(
"preconditioning");
55 params.addParam<MooseFunctorName>(
56 "tke_name",
NS::TKE,
"Name of the turbulent kinetic energy variable");
57 params.addParam<MooseFunctorName>(
58 "tked_name",
NS::TKED,
"Name of the turbulent kinetic energy dissipation variable");
59 params.addParam<FunctionName>(
60 "initial_tke",
"0",
"Initial value for the turbulence kinetic energy");
61 params.addParam<FunctionName>(
62 "initial_tked",
"0",
"Initial value for the turbulence kinetic energy dissipation");
63 params.addParam<FunctionName>(
"initial_mu_t",
"Initial value for the turbulence viscosity");
65 params.addParam<
Real>(
"C1_eps",
66 "C1 coefficient for the turbulent kinetic energy dissipation equation");
67 params.addParam<
Real>(
"C2_eps",
68 "C2 coefficient for the turbulent kinetic energy dissipation equation");
69 params.addParam<MooseFunctorName>(
70 "sigma_k",
"Scaling coefficient for the turbulent kinetic energy diffusion term");
71 params.addParam<MooseFunctorName>(
73 "Scaling coefficient for the turbulent kinetic energy dissipation diffusion term");
74 params.addParam<MooseFunctorName>(
79 params.addParam<
bool>(
"bulk_wall_treatment",
true,
"Whether to treat the wall cell as bulk");
80 MooseEnum wall_treatment(
"eq_newton eq_incremental eq_linearized neq",
"neq");
81 params.addParam<
MooseEnum>(
"wall_treatment_eps",
83 "The method used for computing the epsilon wall functions");
84 params.addParam<
MooseEnum>(
"wall_treatment_T",
86 "The method used for computing the temperature wall functions");
90 MooseEnum face_interpol_types(
"average skewness-corrected",
"average");
91 MooseEnum adv_interpol_types(
"average upwind",
"upwind");
92 params.addRangeCheckedParam<
Real>(
96 "The scaling factor for the turbulent kinetic energy equation.");
97 params.addParam<
MooseEnum>(
"tke_face_interpolation",
99 "The numerical scheme to interpolate the TKE to the " 100 "face (separate from the advected quantity interpolation).");
101 params.addParam<
MooseEnum>(
"tke_advection_interpolation",
103 "The numerical scheme to interpolate the TKE to the " 104 "face when in the advection kernel.");
106 params.addParam<
bool>(
"linearize_sink_sources",
false,
"Whether to linearize the source term");
108 params.addParam<
bool>(
109 "neglect_advection_derivatives",
111 "Whether to remove the off-diagonal velocity term in the TKE and TKED advection term");
112 params.addParam<
bool>(
113 "tke_two_term_bc_expansion",
115 "If a two-term Taylor expansion is needed for the determination of the boundary values" 116 "of the turbulent kinetic energy.");
117 params.addRangeCheckedParam<
Real>(
120 "tked_scaling > 0.0",
121 "The scaling factor for the turbulent kinetic energy dissipation equation.");
122 params.addParam<
MooseEnum>(
"tked_face_interpolation",
124 "The numerical scheme to interpolate the TKED to the " 125 "face (separate from the advected quantity interpolation).");
126 params.addParam<
MooseEnum>(
"tked_advection_interpolation",
128 "The numerical scheme to interpolate the TKED to the " 129 "face when in the advection kernel.");
130 params.addParam<
bool>(
131 "tked_two_term_bc_expansion",
133 "If a two-term Taylor expansion is needed for the determination of the boundary values" 134 "of the turbulent kinetic energy dissipation.");
135 params.addParam<
bool>(
136 "turbulent_viscosity_two_term_bc_expansion",
138 "If a two-term Taylor expansion is needed for the determination of the boundary values" 139 "of the turbulent viscosity.");
140 MooseEnum coeff_interp_method(
"average harmonic",
"harmonic");
141 params.addParam<
MooseEnum>(
"turbulent_viscosity_interp_method",
143 "Face interpolation method for the turbulent viscosity");
144 params.addParam<
bool>(
"mu_t_as_aux_variable",
146 "Whether to use an auxiliary variable instead of a functor material " 147 "property for the turbulent viscosity");
148 params.addParam<
bool>(
"output_mu_t",
true,
"Whether to add mu_t to the field outputs");
149 params.addParam<
bool>(
"k_t_as_aux_variable",
151 "Whether to use an auxiliary variable for the turbulent conductivity");
158 params.addParam<PhysicsName>(
159 "fluid_heat_transfer_physics",
161 "WCNSFVFluidHeatTransferPhysics generating the heat advection equations");
162 params.addParam<PhysicsName>(
163 "scalar_transport_physics",
165 "WCNSFVScalarTransportPhysics generating the scalar advection equations");
168 params.addParamNamesToGroup(
"mixing_length_name mixing_length_two_term_bc_expansion",
169 "Mixing length model");
170 params.addParamNamesToGroup(
"fluid_heat_transfer_physics turbulent_prandtl " 171 "scalar_transport_physics Sc_t",
173 params.addParamNamesToGroup(
"initial_tke initial_tked C1_eps C2_eps sigma_k sigma_eps",
175 params.addParamNamesToGroup(
"C_mu bulk_wall_treatment wall_treatment_eps wall_treatment_T",
176 "K-Epsilon wall function");
177 params.addParamNamesToGroup(
178 "tke_scaling tke_face_interpolation tke_two_term_bc_expansion tked_scaling " 179 "tked_face_interpolation tked_two_term_bc_expansion " 180 "turbulent_viscosity_two_term_bc_expansion turbulent_viscosity_interp_method " 181 "mu_t_as_aux_variable k_t_as_aux_variable linearize_sink_sources",
182 "K-Epsilon model numerical");
190 _turbulence_model(getParam<
MooseEnum>(
"turbulence_handling")),
191 _mixing_length_name(getParam<AuxVariableName>(
"mixing_length_name")),
192 _turbulence_walls(getParam<
std::vector<BoundaryName>>(
"turbulence_walls")),
193 _wall_treatment_eps(getParam<
MooseEnum>(
"wall_treatment_eps")),
194 _wall_treatment_temp(getParam<
MooseEnum>(
"wall_treatment_T")),
195 _tke_name(getParam<MooseFunctorName>(
"tke_name")),
196 _tked_name(getParam<MooseFunctorName>(
"tked_name"))
209 if (getParam<bool>(
"mu_t_as_aux_variable"))
211 if (getParam<bool>(
"k_t_as_aux_variable"))
221 {
"mixing_length_delta",
222 "mixing_length_aux_execute_on",
224 "von_karman_const_0",
225 "mixing_length_two_term_bc_expansion"});
233 "bulk_wall_treatment",
235 "tke_face_interpolation",
236 "tke_two_term_bc_expansion",
238 "tked_face_interpolation",
239 "tked_two_term_bc_expansion",
240 "turbulent_viscosity_two_term_bc_expansion"});
274 getParam<PhysicsName>(
"fluid_heat_transfer_physics"),
true);
277 !getCoupledPhysics<const WCNSFVFluidHeatTransferPhysics>(
true).empty())
279 "We currently do not support creating both turbulence physics and fluid heat " 280 "transfer physics that are not coupled together. Use " 281 "'fluid_heat_transfer_physics' to explicitly specify the coupling");
297 getParam<PhysicsName>(
"scalar_transport_physics"),
true);
299 !getCoupledPhysics<const WCNSFVScalarTransportPhysics>(
true).empty())
301 "scalar_transport_physics",
302 "We currently do not support creating both turbulence physics and scalar transport " 303 "physics that are not coupled together");
319 mooseInfoRepeated(
"Coupling turbulence physics with fluid heat transfer physics " +
322 mooseInfoRepeated(
"No fluid heat transfer equation considered by this turbulence " 328 mooseInfoRepeated(
"No scalar transport equations considered by this turbulence physics.");
343 {
"system_names",
"tke_scaling",
"tke_face_interpolation",
"tke_two_term_bc_expansion"},
344 "INSFVEnergyVariable");
349 params.set<std::vector<Real>>(
"scaling") = {getParam<Real>(
"tke_scaling")};
350 params.set<
MooseEnum>(
"face_interp_method") = getParam<MooseEnum>(
"tke_face_interpolation");
351 params.set<
bool>(
"two_term_boundary_expansion") = getParam<bool>(
"tke_two_term_bc_expansion");
357 paramError(
"turbulence_kinetic_energy_variable",
359 ") supplied to the WCNSFVTurbulencePhysics does not exist!");
364 {
"system_names",
"tked_scaling",
"tked_face_interpolation",
"tked_two_term_bc_expansion"},
365 "INSFVEnergyVariable");
370 params.set<std::vector<Real>>(
"scaling") = {getParam<Real>(
"tked_scaling")};
371 params.set<
MooseEnum>(
"face_interp_method") = getParam<MooseEnum>(
"tked_face_interpolation");
372 params.set<
bool>(
"two_term_boundary_expansion") =
373 getParam<bool>(
"tked_two_term_bc_expansion");
378 paramError(
"turbulence_kinetic_energy_dissipation_variable",
380 ") supplied to the WCNSFVTurbulencePhysics does not exist!");
391 if (
isParamValid(
"mixing_length_two_term_bc_expansion"))
392 params.set<
bool>(
"two_term_boundary_expansion") =
393 getParam<bool>(
"mixing_length_two_term_bc_expansion");
396 "MooseVariableFVReal");
404 if (
isParamValid(
"turbulent_viscosity_two_term_bc_expansion"))
405 params.set<
bool>(
"two_term_boundary_expansion") =
406 getParam<bool>(
"turbulent_viscosity_two_term_bc_expansion");
409 "MooseVariableFVReal");
452 const std::string u_names[3] = {
"u",
"v",
"w"};
453 const std::string kernel_type =
"INSFVMixingLengthReynoldsStress";
459 std::string kernel_name =
prefix() +
"ins_momentum_mixing_length_reynolds_stress_";
461 kernel_name =
prefix() +
"pins_momentum_mixing_length_reynolds_stress_";
483 "Regular fluid viscosity 'mu' should be used for the momentum diffusion term. You are " 484 "currently using: " +
487 const std::string u_names[3] = {
"u",
"v",
"w"};
488 const std::string kernel_type =
"INSFVMomentumDiffusion";
493 getParam<MooseEnum>(
"turbulent_viscosity_interp_method");
496 params.
set<
bool>(
"complete_expansion") =
true;
498 std::string kernel_name =
prefix() +
"ins_momentum_k_epsilon_reynolds_stress_";
500 kernel_name =
prefix() +
"pins_momentum_k_epsilon_reynolds_stress_";
521 const std::string u_names[3] = {
"u",
"v",
"w"};
522 const std::string kernel_type =
"WCNSFVMixingLengthEnergyDiffusion";
528 params.
set<
Real>(
"schmidt_number") = getParam<Real>(
"turbulent_prandtl");
529 params.
set<NonlinearVariableName>(
"variable") =
537 kernel_type,
prefix() +
"pins_energy_mixing_length_diffusion", params);
540 kernel_type,
prefix() +
"ins_energy_mixing_length_diffusion", params);
544 const std::string kernel_type =
"FVDiffusion";
548 params.
set<NonlinearVariableName>(
"variable") = T_fluid_name;
549 params.
set<MooseFunctorName>(
"coeff") =
NS::k_t;
558 const auto & passive_scalar_schmidt_number = getParam<std::vector<Real>>(
"Sc_t");
559 if (passive_scalar_schmidt_number.size() != passive_scalar_names.size() &&
560 passive_scalar_schmidt_number.size() != 1)
563 "The number of turbulent Schmidt numbers defined is not equal to the number of passive " 568 const std::string u_names[3] = {
"u",
"v",
"w"};
569 const std::string kernel_type =
"INSFVMixingLengthScalarDiffusion";
576 for (
const auto & name_i :
index_range(passive_scalar_names))
578 params.
set<NonlinearVariableName>(
"variable") = passive_scalar_names[name_i];
579 if (passive_scalar_schmidt_number.size() > 1)
580 params.
set<
Real>(
"schmidt_number") = passive_scalar_schmidt_number[name_i];
581 else if (passive_scalar_schmidt_number.size() == 1)
582 params.
set<
Real>(
"schmidt_number") = passive_scalar_schmidt_number[0];
584 params.
set<
Real>(
"schmidt_number") = 1.0;
587 kernel_type,
prefix() + passive_scalar_names[name_i] +
"_mixing_length", params);
592 const std::string kernel_type =
"FVDiffusion";
596 for (
const auto & name_i :
index_range(passive_scalar_names))
598 params.
set<NonlinearVariableName>(
"variable") = passive_scalar_names[name_i];
601 kernel_type,
prefix() + passive_scalar_names[name_i] +
"_turbulent_diffusion", params);
609 const std::string kernel_type =
"FVFunctorTimeKernel";
613 params.
set<NonlinearVariableName>(
"variable") =
_tke_name;
624 const std::string kernel_type =
"INSFVTurbulentAdvection";
632 params.
set<
bool>(
"neglect_advection_derivatives") =
633 getParam<bool>(
"neglect_advection_derivatives");
636 getParam<MooseEnum>(
"tke_advection_interpolation");
637 params.
set<NonlinearVariableName>(
"variable") =
_tke_name;
642 getParam<MooseEnum>(
"tked_advection_interpolation");
650 const std::string kernel_type =
"INSFVTurbulentDiffusion";
654 params.
set<NonlinearVariableName>(
"variable") =
_tke_name;
664 const std::string kernel_type =
"INSFVTurbulentDiffusion";
668 params.
set<NonlinearVariableName>(
"variable") =
_tke_name;
670 params.
set<MooseFunctorName>(
"scaling_coef") = getParam<MooseFunctorName>(
"sigma_k");
672 getParam<MooseEnum>(
"turbulent_viscosity_interp_method");
677 params.
set<MooseFunctorName>(
"scaling_coef") = getParam<MooseFunctorName>(
"sigma_eps");
685 const std::string u_names[3] = {
"u",
"v",
"w"};
687 const std::string kernel_type =
"INSFVTKESourceSink";
690 params.
set<NonlinearVariableName>(
"variable") =
_tke_name;
695 params.
set<
Real>(
"C_pl") = getParam<Real>(
"C_pl");
696 params.
set<
bool>(
"linearized_model") = getParam<bool>(
"linearize_sink_sources");
700 params.
set<
bool>(
"newton_solve") =
true;
707 const std::string kernel_type =
"INSFVTKEDSourceSink";
715 params.
set<
Real>(
"C_pl") = getParam<Real>(
"C_pl");
716 params.
set<
bool>(
"linearized_model") = getParam<bool>(
"linearize_sink_sources");
719 params.
set<
Real>(
"C1_eps") = getParam<Real>(
"C1_eps");
720 params.
set<
Real>(
"C2_eps") = getParam<Real>(
"C2_eps");
722 params.
set<
bool>(
"newton_solve") =
true;
735 const std::string ml_kernel_type =
"WallDistanceMixingLengthAux";
742 getParam<ExecFlagEnum>(
"mixing_length_aux_execute_on");
745 ml_params.
set<MooseFunctorName>(
"von_karman_const") =
746 getParam<MooseFunctorName>(
"von_karman_const");
747 ml_params.
set<MooseFunctorName>(
"von_karman_const_0") =
748 getParam<MooseFunctorName>(
"von_karman_const_0");
749 ml_params.
set<MooseFunctorName>(
"delta") = getParam<MooseFunctorName>(
"mixing_length_delta");
756 const std::string u_names[3] = {
"u",
"v",
"w"};
757 const std::string mut_kernel_type =
"kEpsilonViscosityAux";
767 params.
set<
Real>(
"C_mu") = getParam<Real>(
"C_mu");
769 params.
set<
bool>(
"bulk_wall_treatment") = getParam<bool>(
"bulk_wall_treatment");
772 params.
set<
bool>(
"newton_solve") =
true;
778 const std::string kt_kernel_type =
"TurbulentConductivityAux";
781 params.
set<AuxVariableName>(
"variable") =
NS::k_t;
793 const std::string u_names[3] = {
"u",
"v",
"w"};
798 const std::string bc_type =
"INSFVTurbulentViscosityWallFunction";
822 const std::string ic_type =
"FunctionIC";
826 if ((getParam<bool>(
"initialize_variables_from_mesh_file") || !
_define_variables) &&
827 ((getParam<bool>(
"mu_t_as_aux_variable") &&
isParamValid(
"initial_mu_t")) ||
829 mooseError(
"inital_mu_t/tke/tked should not be provided if we are restarting from a mesh file " 830 "or not defining variables in the Physics");
837 if (getParam<bool>(
"mu_t_as_aux_variable"))
842 params.
set<FunctionName>(
"function") = getParam<FunctionName>(
"initial_mu_t");
847 params.
set<FunctionName>(
"function") =
848 std::to_string(std::atof(rho_name.c_str()) * getParam<Real>(
"C_mu") *
849 std::pow(std::atof(getParam<FunctionName>(
"initial_tke").c_str()), 2) /
850 std::atof(getParam<FunctionName>(
"initial_tked").c_str()));
853 "Initial turbulent viscosity should be provided. A sensible value is " 854 "rho * C_mu TKE_initial^2 / TKED_initial");
866 "This parameter can only be specified if 'mu_t_as_aux_variable=true'");
869 params.
set<FunctionName>(
"function") = getParam<FunctionName>(
"initial_tke");
876 params.
set<FunctionName>(
"function") = getParam<FunctionName>(
"initial_tked");
889 const std::string u_names[3] = {
"u",
"v",
"w"};
902 prefix() +
"mixing_length_material",
918 params.
set<std::vector<std::string>>(
"functor_names") = {mu_name};
922 params.
set<std::string>(
"expression") =
927 if (!getParam<bool>(
"mu_t_as_aux_variable"))
934 if (getParam<bool>(
"output_mu_t"))
935 params.
set<std::vector<OutputName>>(
"outputs") = {
"all"};
937 "INSFVkEpsilonViscosityFunctorMaterial",
prefix() +
"compute_mu_t", params);
942 mooseAssert(!getParam<bool>(
"k_t_as_aux_variable"),
"k_t should exist");
947 const auto Pr_t_name = getParam<MooseFunctorName>(
"Pr_t");
951 params.
set<std::vector<std::string>>(
"functor_names") = {cp_name, Pr_t_name, mu_t_name};
953 params.
set<std::vector<std::string>>(
"functor_names") = {Pr_t_name, mu_t_name};
955 params.
set<std::vector<std::string>>(
"functor_names") = {cp_name, mu_t_name};
957 params.
set<std::vector<std::string>>(
"functor_names") = {mu_t_name};
959 params.
set<std::string>(
"expression") = mu_t_name +
"*" + cp_name +
"/" + Pr_t_name;
960 params.
set<std::string>(
"property_name") =
NS::k_t;
962 params.
set<std::vector<OutputName>>(
"outputs") = {
"all"};
964 "ADParsedFunctorMaterial",
prefix() +
"turbulent_heat_eff_conductivity", params);
978 params.
set<std::vector<std::string>>(
"functor_names") = {rho_name};
982 const auto turbulent_schmidt_number = getParam<std::vector<Real>>(
"Sc_t");
983 if (turbulent_schmidt_number.size() != 1)
985 "passive_scalar_schmidt_number",
986 "Only one passive scalar turbulent Schmidt number can be specified with k-epsilon");
988 std::to_string(turbulent_schmidt_number[0]);
991 "ADParsedFunctorMaterial",
prefix() +
"scalar_turbulent_diffusivity", params);
1002 ghost_layers = std::max(ghost_layers, (
unsigned short)3);
1003 return ghost_layers;
static InputParameters validParams()
std::string prefix() const
virtual void addInitialConditions() override
static InputParameters validParams()
bool hasFlowEquations() const
Whether the physics is actually creating the flow equations.
virtual void initializePhysicsAdditional() override
unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of algebraic ghosting layers needed.
static const std::string mu_t
void assignBlocks(InputParameters ¶ms, const std::vector< SubdomainName > &blocks) const
bool shouldCreateVariable(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_aux)
Creates all the objects needed to add a turbulence model to an incompressible / weakly-compressible N...
const MooseFunctorName & dynamicViscosityName() const
Return the name of the dynamic viscosity functor.
static const std::string turbulent_Prandtl
const MooseFunctorName _density_name
Name of the density material property.
const VariableName _tke_name
Name of the turbulent kinetic energy.
WCNSFVTurbulencePhysics(const InputParameters ¶meters)
static const std::string mixing_length
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters)
static InputParameters validParams()
void addFlowTurbulenceKernels()
Functions adding kernels for turbulence in the other equation(s)
void addKEpsilonDiffusion()
static const std::string density
InputParameters getValidParams(const std::string &name) const
static const std::string TKE
const WCNSFVFluidHeatTransferPhysics * _fluid_energy_physics
The heat advection physics to add turbulent mixing for.
void mooseInfoRepeated(Args &&... args)
void addScalarAdvectionTurbulenceKernels()
void retrieveCoupledPhysics()
Retrieve the other WCNSFVPhysics at play in the simulation to be able to add the relevant terms (turb...
bool _has_energy_equation
registerMooseAction("NavierStokesApp", WCNSFVTurbulencePhysics, "get_turbulence_physics")
const ExecFlagType EXEC_TIMESTEP_END
virtual void addAuxKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
bool shouldCreateIC(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool ic_is_default_ic, const bool error_if_already_defined) const
bool shouldCreateTimeDerivative(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_already_defined) const
virtual void addAuxVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶ms)
bool isFloat(const std::string &str)
bool _has_scalar_equations
const MooseFunctorName _dynamic_viscosity_name
Name of the dynamic viscosity material property.
static InputParameters commonTurbulenceParams()
virtual const std::string & name() const
std::vector< SubdomainName > _blocks
unsigned int dimension() const
MooseEnum _wall_treatment_eps
Turbulence wall treatment for epsilon (same for all walls currently)
const MooseFunctorName & densityName() const
Return the name of the density functor.
static const std::string directions[3]
bool hasScalarEquations() const
Whether the physics is actually creating the scalar advection equations.
virtual void addFVBCs() override
bool isParamValid(const std::string &name) const
virtual void addInitialCondition(const std::string &ic_name, const std::string &name, InputParameters ¶meters)
void saveAuxVariableName(const VariableName &var_name)
virtual FEProblemBase & getProblem()
static InputParameters validParams()
static const std::string cp
virtual UserObjectName rhieChowUOName() const =0
Return the name of the Rhie Chow user object.
const SolverSystemName & getSolverSystem(unsigned int variable_index) const
void addKEpsilonTimeDerivatives()
Functions adding kernels for the k-epsilon to the k-epsilon equations.
const MooseFunctorName & getSpecificHeatName() const
Get the name of the specific heat material property.
const NonlinearVariableName & getFluidTemperatureName() const
bool hasEnergyEquation() const
Whether the physics is actually creating the heat equation.
static const std::string mu
static InputParameters validParams()
virtual void actOnAdditionalTasks() override
const bool _porous_medium_treatment
Switch to show if porous medium treatment is requested or not.
const std::string & _current_task
static InputParameters validParams()
registerNavierStokesPhysicsBaseTasks("NavierStokesApp", WCNSFVTurbulencePhysics)
const MooseEnum & getMomentumFaceInterpolationMethod() const
Get the face interpolation method for momentum (mostly used in the stress terms)
void needSolutionState(unsigned int oldest_needed, Moose::SolutionIterationType iteration_type)
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...
const MooseEnum _turbulence_model
Turbulence model to create the equation(s) for.
const VariableName _tked_name
Name of the turbulent kinetic energy dissipation.
virtual void addMaterials() override
static const std::string mu_eff
virtual void addFVKernels() override
virtual void addVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶ms)
const WCNSFVScalarTransportPhysics * _scalar_transport_physics
The scalar advection physics to add turbulent mixing for.
bool _define_variables
Whether to define variables if they do not exist.
const std::vector< std::string > _velocity_names
Velocity names.
const ExecFlagType EXEC_NONLINEAR
bool isParamSetByUser(const std::string &nm) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableName _mixing_length_name
Name of the mixing length auxiliary variable.
const VariableName _turbulent_viscosity_name
Name of the turbulence viscosity auxiliary variable (or property)
unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of ghosting layers needed.
void addFluidEnergyTurbulenceKernels()
IntRange< T > make_range(T beg, T end)
static const std::string TKED
void addKEpsilonAdvection()
void mooseError(Args &&... args) const
const InputParameters & parameters() const
const std::vector< NonlinearVariableName > & getAdvectedScalarNames() const
Get the names of the advected scalar quantity variables.
Base class to hold common parameters and utilities between all the weakly compressible Navier Stokes-...
const ConsoleStream _console
void reportPotentiallyMissedParameters(const std::vector< std::string > ¶m_names, const std::string &object_type) const
virtual void addAuxiliaryKernels() override
static const std::string mu_t_passive_scalar
static const std::string k_t
std::vector< BoundaryName > _turbulence_walls
List of boundaries to act as walls for turbulence models.
virtual void addFVKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
virtual void addFVBC(const std::string &fv_bc_name, const std::string &name, InputParameters ¶meters)
virtual void addSolverVariables() override
MooseUnits pow(const MooseUnits &, int)
virtual void addAuxiliaryVariables() override
void saveSolverVariableName(const VariableName &var_name)
const WCNSFVFlowPhysicsBase * _flow_equations_physics
Flow physics.
auto index_range(const T &sizable)
const MooseEnum _velocity_interpolation
The velocity / momentum face interpolation method for advecting other quantities. ...
const ExecFlagType EXEC_INITIAL