27 "Define a turbulence model for an incompressible or weakly-compressible Navier Stokes " 28 "flow with a linear finite volume discretization");
30 params.
addParam<std::vector<SolverSystemName>>(
32 {
"TKE_system",
"TKED_system"},
33 "Names of the linear solver systems for each equation. Default is set for K-Epsilon and " 34 "should be adapted for other models");
37 params.
addParam<
bool>(
"mu_t_as_aux_variable",
39 "Whether to use an auxiliary variable instead of a functor material " 40 "property for the turbulent viscosity");
55 "use_nonorthogonal_correction",
57 "Whether to use a non-orthogonal correction. This can potentially slow down convergence " 58 ", but reduces numerical dispersion on non-orthogonal meshes. Can be safely turned off on " 59 "orthogonal meshes.");
71 "Mixing length is not implemented for the linear finite volume discretization");
89 "include_deviatoric_stress",
"This should be set to true when using a turbulence model");
105 std::string variable_type =
"MooseLinearVariableFVReal";
114 paramError(
"turbulence_kinetic_energy_variable",
116 ") supplied to the WCNSLinearFVTurbulencePhysics does not exist!");
123 std::string variable_type =
"MooseLinearVariableFVReal";
132 paramError(
"turbulence_kinetic_energy_dissipation_variable",
134 ") supplied to the WCNSLinearFVTurbulencePhysics does not exist!");
163 const std::string kernel_type =
"LinearFVTimeDerivative";
179 const std::string kernel_type =
"LinearFVTurbulentAdvection";
186 getParam<MooseEnum>(
"tke_advection_interpolation");
192 getParam<MooseEnum>(
"tked_advection_interpolation");
200 const std::string kernel_type =
"LinearFVTurbulentDiffusion";
203 params.
set<
bool>(
"use_nonorthogonal_correction") =
204 getParam<bool>(
"use_nonorthogonal_correction");
209 params.
set<MooseFunctorName>(
"diffusion_coeff") =
"mu_eff_tke";
214 params.
set<MooseFunctorName>(
"diffusion_coeff") =
"mu_eff_tked";
222 const std::string u_names[3] = {
"u",
"v",
"w"};
224 const std::string kernel_type =
"LinearFVTKESourceSink";
232 params.
set<
Real>(
"C_mu") = getParam<Real>(
"C_mu");
233 params.
set<
Real>(
"C_pl") = getParam<Real>(
"C_pl");
242 const std::string kernel_type =
"LinearFVTKEDSourceSink";
252 params.
set<MooseFunctorName>(
"C1_eps") = getParam<MooseFunctorName>(
"C1_eps");
253 params.
set<MooseFunctorName>(
"C2_eps") = getParam<MooseFunctorName>(
"C2_eps");
254 params.
set<
Real>(
"C_mu") = getParam<Real>(
"C_mu");
255 params.
set<
Real>(
"C_pl") = getParam<Real>(
"C_pl");
265 const std::string u_names[3] = {
"u",
"v",
"w"};
270 const std::string bc_type =
"LinearFVTurbulentViscosityWallFunctionBC";
277 params.
set<
Real>(
"C_mu") = getParam<Real>(
"C_mu");
296 const std::string mat_type =
"FunctorEffectiveDynamicViscosity";
299 params.
set<MooseFunctorName>(
"property_name") =
"mu_eff_tke";
302 params.
set<MooseFunctorName>(
NS::mu_t +
"_inverse_factor") =
303 getParam<MooseFunctorName>(
"sigma_k");
306 params.
set<MooseFunctorName>(
"property_name") =
"mu_eff_tked";
307 params.
set<MooseFunctorName>(
NS::mu_t +
"_inverse_factor") =
308 getParam<MooseFunctorName>(
"sigma_eps");
std::string prefix() const
const VariableName _turbulent_viscosity_name
Name of the turbulence viscosity auxiliary variable (or property)
unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of algebraic ghosting layers needed.
Base class for a Physics that creates all the objects needed to add a turbulence model to an incompre...
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)
const MooseFunctorName & dynamicViscosityName() const
Return the name of the dynamic viscosity functor.
static InputParameters validParams()
void paramError(const std::string ¶m, Args... args) const
const T & getParam(const std::string &name) const
const VariableName _tked_name
Name of the turbulent kinetic energy dissipation.
virtual void checkIntegrity() const
virtual void addMaterial(const std::string &material_name, const std::string &name, InputParameters ¶meters)
virtual void addFunctorMaterials() override
static const std::string density
InputParameters getValidParams(const std::string &name) const
static const std::string TKE
void reportPotentiallyMissedParameters(const std::vector< std::string > ¶m_names, const std::string &object_type, const std::string &object_name="") const
void addKEpsilonTimeDerivatives()
Functions adding kernels for the k-epsilon to the k-epsilon equations.
void addKEpsilonDiffusion()
WCNSLinearFVTurbulencePhysics(const InputParameters ¶meters)
bool shouldCreateTimeDerivative(const VariableName &var_name, const std::vector< SubdomainName > &blocks, const bool error_if_already_defined) const
registerMooseAction("NavierStokesApp", WCNSLinearFVTurbulencePhysics, "add_functor_material")
const MooseEnum _turbulence_model
Turbulence model to create the equation(s) for.
virtual void checkIntegrity() const override
std::vector< SubdomainName > _blocks
unsigned int dimension() const
const MooseFunctorName & densityName() const
Return the name of the density functor.
std::vector< BoundaryName > _turbulence_walls
List of boundaries to act as walls for turbulence models.
registerWCNSFVTurbulenceBaseTasks("NavierStokesApp", WCNSLinearFVTurbulencePhysics)
virtual void initializePhysicsAdditional() override
virtual FEProblemBase & getProblem()
Creates all the objects needed to add a turbulence model to an incompressible / weakly-compressible N...
const SolverSystemName & getSolverSystem(unsigned int variable_index) const
static const std::string mu
const VariableName _tke_name
Name of the turbulent kinetic energy.
void needSolutionState(unsigned int oldest_needed, Moose::SolutionIterationType iteration_type)
virtual void addSolverVariables() override
virtual void addVariable(const std::string &var_type, const std::string &var_name, InputParameters ¶ms)
bool _define_variables
Whether to define variables if they do not exist.
const std::vector< std::string > _velocity_names
Velocity names.
virtual void addLinearFVKernel(const std::string &kernel_name, const std::string &name, InputParameters ¶meters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void addLinearFVBC(const std::string &fv_bc_name, const std::string &name, InputParameters ¶meters)
virtual void addFVBCs() override
const UserObjectName & rhieChowUOName() const
Return the name of the Rhie Chow user object.
IntRange< T > make_range(T beg, T end)
static const std::string TKED
void addKEpsilonAdvection()
void paramWarning(const std::string ¶m, Args... args) const
unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of ghosting layers needed.
static InputParameters validParams()
MooseEnum _wall_treatment_eps
Turbulence wall treatment for epsilon (same for all walls currently)
const WCNSFVFlowPhysicsBase * _flow_equations_physics
Flow physics.
virtual void addFVKernels() override