OpenFOAM 2.3.0: Thermal Modelling
Thermal Baffles
OpenFOAM can emulate heat transfer across thin solid structures, or “baffles”. Baffles are represented as boundary patches of the mesh and heat transfer is handled either in 3D by the thermalBaffle boundary condition or the equivalent 1D approximation called thermalBaffle1D, described previously.
In v2.3.0, the use of thermal baffles has been simplified considerably with changes to the createBaffles utility. Specification of matching master and slave patches is no longer necessary by the user, only a single definition is required, e.g. (from createBafflesDict):
baffles
{
baffleFacesThermoBaffle1D
{
type searchableSurface;
surface triSurfaceMesh;
name baffle1D.stl; // baffle defined by tri-surface
patchPairs
{
type wall;
patchFields
{
#include "./0/include/wallBafflePatches"
#include "./0/include/1DBaffle/1DTemperatureMasterBafflePatches"
}
}
}
...
The 3D thermal baffle now handles its “mesh” internally, so does not require pre-processing on an extruded region mesh. Specification of thermodynamics is only required on the master patch. The user can specify an optional radiative flux, Qr, which is added to the energy balance.
Source code
thermalBaffleboundary condition –$FOAM_SRC/regionModels/thermalBaffleModels/derivedFvPatchFields/thermalBafflethermalBaffle1Dboundary condition –$FOAM_SRC/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/thermalBaffle1D
Example
- Circuit board cooling
$FOAM_TUTORIALS/heatTransfer/buoyantSimpleFoam/circuitBoardCooling
Other Thermal Boundaries
The turbulentTemperatureCoupledBaffleMixed and turbulentTemperatureRadCoupledMixed boundary conditions are designed to couple solid and fluid regions thermally. The turbulentTemperatureRadCoupledMixed condition includes the effect of radiative heat flux on the solid wall.
In some situations, e.g. circuit components, where the thermal contact between two solid regions is not perfect, the user can introduce a contact resistance between the regions. This thermal resistance will affect the temperature on both sides of the boundary and it is important to calculate maximum temperatures or heat fluxes across regions. To use this feature, it is necessary to specify the thermal conductivity and thickness of each layer of the thermal resistance as shown below. Multiple thermal layers, with different thermal resistances, can be specified at the interface.
leftSolid_to_heater
{
type compressible::turbulentTemperatureCoupledBaffleMixed;
Tnbr T;
kappa solidThermo;
kappaName none;
thicknessLayers (1e-3);
kappaLayers (5e-4);
value uniform 300;
}
This externalWallHeatFluxTemperature boundary condition is used for external walls. It can operate in two modes: 1) specifying the heat transfer convection coefficient, h and ambient temperature, Ta; or, 2) specifying a heat flux, q. In the former mode additional thermal layers can be added if the wall is insulated, by specifying the thermal conductivity and thickness of each thermal layer, as described above.
Source code
- thermal coupling boundary conditions
$FOAM_SRC/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureRadCoupledMixed$FOAM_SRC/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed$FOAM_SRC/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/externalWallHeatFluxTemperature
Example
- multi-region heater
$FOAM_TUTORIALS/heatTransfer/chtMultiRegionFoam/multiRegionHeater
fvDOM Thermal Radiation
The following enhancements have been made to the fvDOM thermal radiation modelling:
- optimized setting for the GAMG solver for rays;
- optional caching of the divergence of the flux (useful only for upwind scheme);
- code optimization of the greyDiffussive BC;
- improve convergence residual calculation for each ray;
- checks for convergence of rays in the radiation inner loop.
Source code
- radiationModels library
$FOAM_SRC/thermophysicalModels/radiationModels/radiationModel/fvDOM/fvDOM
Examples
- burning panels
$FOAM_TUTORIALS/combustion/fireFoam/les/oppositeBurningPanels
