https://mooseframework.inl.gov
Loading...
Searching...
No Matches
WCNSFVFluidHeatTransferPhysicsBase.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#pragma once
11
14#include "NS.h"
15
16#define registerWCNSFVFluidHeatTransferPhysicsBaseTasks(app_name, derived_name) \
17 registerMooseAction(app_name, derived_name, "get_turbulence_physics"); \
18 registerMooseAction(app_name, derived_name, "add_variables_physics"); \
19 registerMooseAction(app_name, derived_name, "add_ics_physics"); \
20 registerMooseAction(app_name, derived_name, "add_fv_kernel"); \
21 registerMooseAction(app_name, derived_name, "add_fv_bc"); \
22 registerMooseAction(app_name, derived_name, "add_materials_physics")
23
29{
30public:
32
34
36 const VariableName & getFluidTemperatureName() const { return _fluid_temperature_name; }
37
39 const MooseFunctorName & getSpecificHeatName() const { return _specific_heat_name; }
40 MooseFunctorName getSpecificEnthalpyName() const { return NS::specific_enthalpy; }
41 const std::vector<MooseFunctorName> & getThermalConductivityName() const
42 {
44 }
45
47 const std::vector<std::vector<SubdomainName>> & getAmbientConvectionBlocks() const
48 {
50 }
52 const std::vector<MooseFunctorName> & getAmbientConvectionHTCs() const
53 {
55 }
56
58 bool hasEnergyEquation() const { return _has_energy_equation; }
59
60protected:
61 void actOnAdditionalTasks() override;
62 void addInitialConditions() override;
63 void addFVKernels() override;
64 void addFVBCs() override;
65
66 unsigned short getNumberAlgebraicGhostingLayersNeeded() const override;
67
71 virtual void addEnergyTimeKernels() = 0;
73 virtual void addEnergyAdvectionKernels() = 0;
74 virtual void addEnergyAmbientConvection() = 0;
75 virtual void addEnergyExternalHeatSource() = 0;
76
78 virtual void addEnergyInletBC() = 0;
79 virtual void addEnergyWallBC() = 0;
80 virtual void addEnergyOutletBC() = 0;
81 virtual void addEnergySeparatorBC() = 0;
82
90
96 const VariableName _fluid_enthalpy_name;
100 MooseFunctorName _specific_heat_name;
102 std::vector<std::vector<SubdomainName>> _thermal_conductivity_blocks;
104 std::vector<MooseFunctorName> _thermal_conductivity_name;
105
107 std::vector<std::vector<SubdomainName>> _ambient_convection_blocks;
109 std::vector<MooseFunctorName> _ambient_convection_alpha;
111 std::vector<MooseFunctorName> _ambient_temperature;
112
116 std::vector<MooseFunctorName> _energy_inlet_functors;
120 std::vector<MooseFunctorName> _energy_wall_functors;
121};
const InputParameters & parameters() const
Base class to hold common parameters and utilities between all the weakly compressible Navier Stokes-...
Helper class to interact with a flow and turbulence physics for a Physics that solves an advection pr...
Creates all the objects needed to solve the Navier Stokes energy equation.
std::vector< MooseFunctorName > _energy_inlet_functors
Functors describing the inlet boundary values. See energy_inlet_types for what the functors actually ...
std::vector< MooseFunctorName > _energy_wall_functors
Functors describing the wall boundary values. See energy_wall_types for what the functors actually re...
MooseFunctorName _specific_heat_name
Name of the specific heat material property.
std::vector< MooseFunctorName > _ambient_convection_alpha
Name of the ambient convection heat transfer coefficients for each block-group.
virtual void addEnergyExternalHeatSource()=0
virtual void addEnergyAmbientConvection()=0
const std::vector< MooseFunctorName > & getAmbientConvectionHTCs() const
Name of the ambient convection heat transfer coefficients for each block-group.
const VariableName _fluid_enthalpy_name
Name of the fluid specific enthalpy.
const std::vector< std::vector< SubdomainName > > & getAmbientConvectionBlocks() const
Get the ambient convection parameters for parameter checking.
bool processThermalConductivity()
Process thermal conductivity (multiple functor input options are available).
virtual void addEnergyTimeKernels()=0
Functions adding kernels for the incompressible / weakly compressible energy equation.
std::vector< std::vector< SubdomainName > > _ambient_convection_blocks
Vector of subdomain groups where we want to have different ambient convection.
const VariableName & getFluidTemperatureName() const
Get the name of the fluid temperature variable.
const MooseFunctorName & getSpecificHeatName() const
Get the name of the specific heat material property.
VariableName _fluid_temperature_name
Fluid temperature name.
const std::vector< MooseFunctorName > & getThermalConductivityName() const
void defineEffectiveThermalDiffusionCoeffFunctors(const bool use_ad)
Define the effective diffusion coefficient when:
bool hasEnergyEquation() const
Whether the physics is actually creating the heat equation.
virtual void addEnergyInletBC()=0
Functions adding boundary conditions for the fluid heat transfer equation.
const bool _has_energy_equation
A boolean to help compatibility with the old Modules/NavierStokesFV syntax.
virtual void addEnergyHeatConductionKernels()=0
virtual void addEnergyAdvectionKernels()=0
const bool _solve_for_enthalpy
User-selected option to solve for enthalpy.
std::vector< MooseFunctorName > _thermal_conductivity_name
Name of the thermal conductivity functor for each block-group.
std::vector< std::vector< SubdomainName > > _thermal_conductivity_blocks
Vector of subdomain groups where we want to have different thermal conduction.
unsigned short getNumberAlgebraicGhostingLayersNeeded() const override
Return the number of ghosting layers needed.
MultiMooseEnum _energy_wall_types
Energy wall boundary types.
MultiMooseEnum _energy_inlet_types
Energy inlet boundary types.
std::vector< MooseFunctorName > _ambient_temperature
Name of the solid domain temperature for each block-group.
static const std::string specific_enthalpy
Definition NS.h:69