- add_energy_equationFalseWhether to add the energy equation. This parameter is not necessary if using the Physics syntax
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to add the energy equation. This parameter is not necessary if using the Physics syntax
- blockBlocks (subdomains) that this Physics is active on.
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:Blocks (subdomains) that this Physics is active on.
- effective_conductivityTrueWhether the conductivity should be multiplied by porosity, or whether the provided conductivity is an effective conductivity taking porosity effects into account
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether the conductivity should be multiplied by porosity, or whether the provided conductivity is an effective conductivity taking porosity effects into account
- fluid_temperature_variableT_fluidName of the fluid temperature variable
Default:T_fluid
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:Name of the fluid temperature variable
- initial_temperature300The initial temperature, assumed constant everywhere
Default:300
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The initial temperature, assumed constant everywhere
- preconditioningnoneWhich preconditioning to use for this Physics
Default:none
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Which preconditioning to use for this Physics
- transientsame_as_problemWhether the physics is to be solved as a transient
Default:same_as_problem
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Whether the physics is to be solved as a transient
- verboseFalseFlag to facilitate debugging a Physics
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Flag to facilitate debugging a Physics
Navier Stokes Fluid Heat Transfer / WCNSFVFluidHeatTransferPhysics
Define the Navier Stokes weakly-compressible energy equation
Equation
This Physics object creates the kernels and boundary conditions to solve the advection-diffusion equation for the fluid temperature. For free flow in a non-porous media:
For flow in a porous medium:
where:
is the fluid enthalpy, computed from the specific heat
is the fluid density
is the porosity
is the fluid temperature
\mathbf{v} is the advecting velocity (clean flow)
\mathbf{v}_D is the advecting superficial velocity (porous media flow)
the fluid effective thermal conductivity
is the source term, corresponding to energy deposited directly in the fluid
is the ambient convection volumetric heat transfer coefficient
is the ambient temperature
The enthalpy is used in lieu of to be able to model gases with temperature dependent specific heat.
The kernels created for flow in a non-porous medium are:
INSFVEnergyTimeDerivative for the time derivative for incompressible flow a transient solve
WCNSFVEnergyTimeDerivative for the time derivative for weakly-compressible flow a transient solve
INSFVEnergyAdvection for advection
FVDiffusion for diffusion
FVCoupledForce for the energy source term
PINSFVEnergyAmbientConvection for the volumetric ambient convection term, if present
For flow in a porous medium:
PINSFVEnergyTimeDerivative for the time derivative in a transient solve
PINSFVEnergyAdvection for energy advection
PINSFVEnergyDiffusion for energy diffusion with an isotropic thermal diffusivity
PINSFVEnergyAnisotropicDiffusion for energy diffusion with an anisotropic thermal diffusivity
FVCoupledForce for the energy source term
PINSFVEnergyAmbientConvection for the volumetric ambient convection term, if present
Additional details on porous media flow equations can be found on this page.
Automatically defined variables
The WCNSFVFluidHeatTransferPhysics
automatically sets up the variables which are necessary for solving the energy transport equation:
Fluid temperature:
(contrib/moose/modules/navier_stokes/include/base/NS.h)
For the default names of other variables used in this action, visit this site.
Coupling with other Physics
The heat advection equation can be solved concurrently with the flow equations by combining both the Navier Stokes Fluid Heat Transfer / WCNSFVFluidHeatTransferPhysics and the Navier Stokes Flow / WCNSFVFlowPhysics. The following input performs this coupling for incompressible flow in a 2D channel. No system parameters are passed, so the equations are solved in a fully coupled manner in the same nonlinear system.
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/2d-rc-transient-physics.i)Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:If specified only the blocks named will be visited and made active
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- define_variablesTrueWhether to define variables if the variables with the specified names do not exist. Note that if the variables are defined externally from the Physics, the initial conditions will not be created in the Physics either.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Whether to define variables if the variables with the specified names do not exist. Note that if the variables are defined externally from the Physics, the initial conditions will not be created in the Physics either.
- ghost_layers2Number of layers of elements to ghost near process domain boundaries
Default:2
C++ Type:unsigned short
Unit:(no unit assumed)
Controllable:No
Description:Number of layers of elements to ghost near process domain boundaries
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Unit:(no unit assumed)
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
Advanced Parameters
- ambient_convection_alphaThe heat exchange coefficients for each block in 'ambient_convection_blocks'.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:The heat exchange coefficients for each block in 'ambient_convection_blocks'.
- ambient_convection_blocksThe blocks where the ambient convection is present.
C++ Type:std::vector<std::vector<SubdomainName>>
Unit:(no unit assumed)
Controllable:No
Description:The blocks where the ambient convection is present.
- ambient_temperatureThe ambient temperature for each block in 'ambient_convection_blocks'.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:The ambient temperature for each block in 'ambient_convection_blocks'.
Volumetric Heat Convection Parameters
- coupled_flow_physicsWCNSFVFlowPhysics generating the velocities
C++ Type:PhysicsName
Unit:(no unit assumed)
Controllable:No
Description:WCNSFVFlowPhysics generating the velocities
- coupled_turbulence_physicsTurbulence Physics coupled with this Physics
C++ Type:PhysicsName
Unit:(no unit assumed)
Controllable:No
Description:Turbulence Physics coupled with this Physics
Coupled Physics Parameters
- energy_advection_interpolationupwindThe numerical scheme to use for interpolating energy/temperature, as an advected quantity, to the face.
Default:upwind
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The numerical scheme to use for interpolating energy/temperature, as an advected quantity, to the face.
- energy_face_interpolationaverageThe numerical scheme to interpolate the temperature/energy to the face (separate from the advected quantity interpolation).
Default:average
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The numerical scheme to interpolate the temperature/energy to the face (separate from the advected quantity interpolation).
- energy_scaling1The scaling factor for the energy variable.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The scaling factor for the energy variable.
- energy_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the temperature/energy.
Default:True
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the temperature/energy.
Numerical Scheme Parameters
- energy_inlet_functorsFunctions for fixed-value boundaries in the energy equation.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:Functions for fixed-value boundaries in the energy equation.
- energy_inlet_typesTypes for the inlet boundaries for the energy equation.
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Types for the inlet boundaries for the energy equation.
Inlet Boundary Conditions Parameters
- energy_wall_functorsFunctions for Dirichlet/Neumann boundaries in the energy equation.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:Functions for Dirichlet/Neumann boundaries in the energy equation.
- energy_wall_typesTypes for the wall boundaries for the energy equation.
C++ Type:MultiMooseEnum
Unit:(no unit assumed)
Controllable:No
Description:Types for the wall boundaries for the energy equation.
Wall Boundary Conditions Parameters
- external_heat_sourceThe name of a functor which contains the external heat source for the energy equation. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:The name of a functor which contains the external heat source for the energy equation. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
- external_heat_source_coeff1Multiplier for the coupled heat source term.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Multiplier for the coupled heat source term.
Heat Source Parameters
- initial_from_file_timestepLATESTGives the time step number (or "LATEST") for which to read the Exodus solution
Default:LATEST
C++ Type:std::string
Unit:(no unit assumed)
Controllable:No
Description:Gives the time step number (or "LATEST") for which to read the Exodus solution
- initialize_variables_from_mesh_fileFalseDetermines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Determines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)
Restart From Exodus Parameters
- specific_heatcpThe name of the specific heat. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
Default:cp
C++ Type:MooseFunctorName
Unit:(no unit assumed)
Controllable:No
Description:The name of the specific heat. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
- thermal_conductivityk The name of the fluid thermal conductivity for each block
Default:k
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:The name of the fluid thermal conductivity for each block
- thermal_conductivity_blocksThe blocks where the user wants define different thermal conductivities.
C++ Type:std::vector<std::vector<SubdomainName>>
Unit:(no unit assumed)
Controllable:No
Description:The blocks where the user wants define different thermal conductivities.
- use_external_enthalpy_materialFalseTo indicate if the enthalpy material is set up outside of the action.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:To indicate if the enthalpy material is set up outside of the action.