.. _CHT_Tutorial: Conjugate Heat Transfer for Cooling Fins ========================================== This tutorial will walk you through the process of running a steady-state simulation using a conjugate heat transfer (CHT) solver. By specifying the volume heat source, you can obtain the temperature distribution in the fluid and solid to further evaluate the efficiency of the cooling fins. Geometry and Mesh ------------------ As depicted in Figure :numref:`CHT_surfaceMesh`, the example geometry consists of a central body with 36 cooling fins. The specifications for the geometry are as follows: - Length of the center body: 1 m - Maximum radius of the center body: 0.2 m - Cooling fin properties: - Thickness: 0.01 m - Height: 0.04 m - Length along the x-direction: 0.1 m Please note that these dimensions are provided as an example and can be adjusted according to your specific requirements. .. _CHT_surfaceMesh: .. figure:: Figures/surfaceMesh.png :align: center :width: 70% Surface mesh. The gray, blue and red colors correspond to the centerbody, interface and adiabatic boundary conditions. As shown in :numref:`CHT_volumeMesh`, when generating the volume mesh, we need to create two blocks: solid (red) and fluid (blue). **All cells inside the solid block are required to be tetrahedral elements.** Additionally, the cells on the interface need to match, so the **interface cells need to be triangular.** .. _CHT_volumeMesh: .. figure:: Figures/volumeMesh.svg :align: center :width: 100% Volume mesh. Left\: sliced at Y = 0 m. Right\: sliced at X = 0.35 m The `mesh file `_ for this tutorial is provided so that you can easily replicate this example in your own account. Case ----- In this section, we will guide you on how to prepare the Flow360.json file. Let's start by specifying the freestream conditions, which are listed below: - Density :math:`\rho_\infty = 1.225 \ \text{kg}/\text{m}^3` - Speed of sound :math:`C_{\infty} = 340 \ \text{m/s}` - Temperature :math:`T_\infty = 288.15 \ \text{K}` - Mach :math:`= 0.1` Additionally, it is important to note that the grid unit used in this example is 1 meter, denoted as :math:`L_\text{gridUnit} = 1 \ \text{m}`. :code:`boundaries` ^^^^^^^^^^^^^^^^^^^ The :code:`boundaries` subsection in Flow360.json is shown as follows: .. code-block:: json "boundaries": { "fluid/farfield": { "type": "Freestream" }, "fluid/centerbody": { "type": "NoSlipWall" }, "solid/adiabatic": { "type": "SolidAdiabaticWall" } } :code:`volumeZones` ^^^^^^^^^^^^^^^^^^^^ The material of the solid part is copper, and the thermal conductivity for copper is :math:`k = 398 \ \text{W}/(\text{m} \cdot \text{K})`. The reference thermal conductivity for nondimensionalization is given by, .. math:: k_\text{ref} = \frac{\rho_{\infty} C_{\infty}^3 L_\text{gridUnit}}{T_{\infty}} \approx 167091 \ \text{kg}/(\text{s}^3 \cdot \text{m}) Therefore, the nondimensional :code:`thermalConductivity` can be written as: .. math:: \text{thermalConductivity} = \frac{k}{k_\text{ref}} \approx 0.00238 Consider a heat source uniformly distributed in the solid block. The power of the heat source is :math:`5 \ \text{kW}`, the volume of the cylindrical solid is roughly :math:`\pi R^2 L \approx 0.01257 \ \text{m}^3`. So the volumetric heat source :math:`\dot{q}` can be written as: .. math:: \dot{q} = \frac{5 \ \text{kW}}{0.01257 \ \text{m}^3} \approx 398 \ \text{kW}/\text{m}^3 The reference volumetric heat source for nondimensionalization is given by, .. math:: \dot{q}_\text{ref} = \frac{\rho_\infty C_\infty^3}{L_\text{girdUnit}} = 48147400 \ \text{kg}/(\text{s}^3 \cdot \text{m}) \approx 48147 \ \text{kW}/\text{m}^3 Therefore, the nondimensional volumetric heat source is, .. math:: \text{volumetricHeatSource} = \frac{\dot{q}_s}{\dot{q}_\text{ref}} \approx 0.00826 For more details regarding the nondimensionalization of :code:`thermalConductivity` and :code:`volumetricHeatSource`, please see :ref:`nondimensional inputs in the knowledge base `. The :code:`volumeZones` subsection in Flow360.json is shown as follows, .. _CHT_tutorial_volumeZones: .. code-block:: json "volumeZones": { "fluid": { "modelType": "FluidDynamics" }, "solid": { "modelType": "HeatTransfer", "thermalConductivity": 0.00238, "volumetricHeatSource": "0.00826" } }, Note that :code:`volumetricHeatSource` is a string. For a nonuniform heat source, it could be an expression that contains variables x, y and z. For more details about the :code:`volumeZones` subsection, see :ref:`volumeZones in the solver configuration page `. :code:`heatEquationSolver` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ In addition to the :code:`navierStokesSolver` and :code:`turbulenceModelSolver`, a new subsection :code:`heatEquationSolver` is also needed to control the convergence of the CHT solver. As shown in the following example, for steady-state simulations, there are two :code:`absoluteTolerance`: #. Outer :code:`absoluteTolerance`: This is the overall convergence criterion for the steady-state simulation. If the absolute residual drops below this value, then the simulation is allowed to stop before reaching the :code:`maxPseudoSteps`. #. Inner :code:`absoluteTolerance`: This is the local convergence criterion within each pseudostep. When running the linear solver, if the absolute residual drops below this value, then the heat solver will skip to the next pseudostep. .. code-block:: json "heatEquationSolver": { "absoluteTolerance": 1e-11, "linearSolverConfig": { "maxIterations": 25, "absoluteTolerance": 1e-12 }, "equationEvalFrequency": 10, }, More details about the :code:`heatEquationSolver` can be found in :ref:`heatEquationSolver in the solver configuration page `. For your convenience, the `complete Flow360.json `_ is also provided here. Results -------- The temperature fields directly outputted by Flow360, labeled as :code:`T`, are nondimensional. To convert these nondimensional temperatures back to physical temperatures in Kelvin, you need to multiply them by the reference temperature :math:`T_\infty = 288.15 \ \text{K}`. The physical temperature distribution on the surface and solid domain are shown in :numref:`CHT_surfaceTemperature` and :numref:`CHT_volumeTemperature`. .. _CHT_surfaceTemperature: .. figure:: Figures/surfaceTemperature.png :align: center :width: 70% Temperature field on the surface .. _CHT_volumeTemperature: .. figure:: Figures/volumeTemperature.png :align: center :width: 100% Temperature field. Left\: sliced at Y = 0 m. Right\: sliced at X = 0.35 m. Please note that the reference temperature :math:`T_\infty = 288.15 \ \text{K}` provided here is for illustrative purposes, and you should adjust it according to the specific reference temperature used in your simulation.