# Heat Exchanger - CFD Simulation

Source: https://help.sim-flow.com/tutorials/heat-exchanger
Last updated: 2026-10-14

![front-image](https://help.sim-flow.com/tutorials/images/heat-exchanger.png)

## 1. Introduction

In this tutorial, we will be simulating the transfer of heat between a hot and a cold region in a heat exchanger. We’ll be analyzing two separate flows through the exchanger, each with different parameters. The exchanger wall will be modeled as a single boundary, and we’ll be using thermal resistance to replicate heat conduction through the solid. Heat will be transferred from the hot region to the cold one without fluid mixing. To visualize the results, we’ll be using ParaView.

## 2. Download SimFlow

SimFlow is a general-purpose [CFD Software](https://sim-flow.com/download/cfd-simulation-software/)

To follow this tutorial, you will need the SimFlow free version. You may download it via the following link:
[Download SimFlow](https://sim-flow.com/download-simflow/)

## 3. Create Case

Open SimFlow and create a new case named *heat exchanger*

1. Click **New**
2. Provide name `heat exchanger`
3. Click **Create** to open a new case

![simflow-launcher](https://help.sim-flow.com/tutorials/images/launcher-heat_exchanger.png)

## 4. Import Geometry - Heat Exchanger

Firstly, we need to Download Geometries[Baffles](https://help.sim-flow.com/tutorials/downloads/heat-exchanger/baffles.stl)[Exchanger](https://help.sim-flow.com/tutorials/downloads/heat-exchanger/exchanger.stl)[Pipes](https://help.sim-flow.com/tutorials/downloads/heat-exchanger/pipes.stl)

1. Click **Import Geometry**
2. Select geometry files: *baffles.stl* *exchanger.stl* *pipes.stl*
3. Click **Open**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-02-import-geometry.png)

## 5. Imported Geometry Units

The STL format does not contain the unit information which is defined during the geometry export. Therefore, you must manually specify the correct unit after import. If we do not know the exported unit, we can estimate it based on the total size of imported geometries. The size is displayed next to the *Geometry size* label. In our case, the default unit meter is correct.

1. To confirm default unit *meter*, press **OK**

![he 02 unit](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-02-unit.png)

## 6. Geometry - Heat Exchanger

After importing geometry, it will appear in the 3D window. We will make the *exchanger* geometry transparent to see the interior of the heat exchanger.

1. Click **Fit View** to zoom the geometry
2. Hold the `CTRL` key and click *exchanger* wall
3. Select *Display Properties*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-03-geometry-preview2.png)

## 7. Change Opacity - Heat Exchanger

1. Select *Opacity* tab
2. Adjust opacity to `40%`
3. Click **OK** to apply

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-04-geometry-preview3.png)

## 8. Extract Geometry - Exchanger (I)

To reveal edges, we will use the *Extract Features* operation. These edges will indicate additional mesh refinement regions.

1. Expand *Options* list next to the *exchanger* geometry
2. Select **Extract Features**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-05-extract-features-exchanger1.png)

## 9. Extract Geometry - Exchanger (II)

1. Select **Extract**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-06-extract-features-exchanger2.png)

## 10. Extract Geometry - Pipes (I)

Repeat the extract operation for the *pipes*.

1. Expand *Options* list next to the *pipes* geometry
2. Select **Extract Features**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-07-extract-features-pipes1.png)

## 11. Extract Geometry - Pipes (II)

1. Select **Extract**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-08-extract-features-pipes2.png)

## 12. Create Face Groups (I)

We need to distinguish surfaces that will be used as the mesh boundaries (both external and internal). We will do it in the 3D graphical panel.

1. Select first inlet *face*
   (hold `Ctrl` and left-click on the geometry face)
2. Click *Geometry Faces* next to *exchanger*
3. Click *Create New Face Group*
4. Click *Create Group From 3D Selection*
5. Rename *group_1* to `hot_inlet`
   (double click on the group to rename, press `Enter` to confirm)
6. Click *Clear Selection* to deselect faces
   (use before creating new selection within the same geometry)

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-09-geom-face-gr.png)

## 13. Create Face Groups (II)

We will repeat the previous operations for the remaining inlets and outlets. The final face groups list for *exchanger* should look like below:

1. `hot_inlet` (dark red)
2. `hot_outlet` (light red)
3. `cold_inlet` (dark blue)
4. `cold_outlet` (light blue)
   To create face groups for *pipes* geometry, hide the *exchanger* geometry first. Then create two face groups like below:
5. `inlet_baffle` (yellow)
6. `outlet_baffle` (green)

> Tip #1 To select a single face, first exit selection by clicking Esc

> Tip #2 To hide exchanger geometry, click the *STL* icon to the left of its name

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-10-geom-face-gr-colors.png)

## 14. CHT Mesh

Since we are going to perform a CHT (Conjugate Heat Transfer) simulation, we need to create the mesh for each fluid and solid sub-domain.

In a typical heat exchanger, we would have three regions: hot fluid region, cold fluid region, and solid region representing pipes and baffles.

In this tutorial, we will use an alternative approach, in which we will skip the solid region and represent it by infinitely thin walls. The influence of walls on heat transfer between fluids will be modeled using *Thermal Resistance*. Therefore, we will need to mesh only two fluid regions: hot and cold fluid regions.

## 15. Hot Fluid Mesh - Meshing Parameter - Exchanger

**Hot fluid region**

We will start meshing from the hot fluid region.

1. Go to *Hex Meshing* panel
2. Make sure that all geometries are visible
   (you can unhide the geometry by clicking the icon next to the geometry name)
3. Select *exchanger* geometry
4. Enable *Mesh Geometry*
5. Set *Refinement* to *Min 0* *Max 1*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-11-hex-meshing-param-1.png)

## 16. Hot Fluid Mesh - Meshing Parameter - Pipes

1. Select *pipes* geometry
2. Enable *Mesh Geometry*
3. Set *Refinement* to *Min 1* *Max 1*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-12-hex-meshing-param-2.png)

## 17. Base Mesh

We need to define the base mesh. The box geometry determines the background mesh domain. It encloses both fluid regions – hot and cold.

1. Go to *Base* tab
2. Press **Autosize** button
   (make sure that all geometries are visible – autosize option adjusts the base mesh only to the visible geometry)
3. Define the number of divisions
   *Division*`37``25``91`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-13-base-mesh.png)

## 18. Hot Fluid Mesh - Material Point

In order to create the mesh in the hot fluid region, we will place the material point inside the hot fluid sub-domain. The resulting mesh will remain only in this region.

1. Go to *Point* tab
2. Specify location inside the hot fluid region
   *Material Point*`0``0``-0.1`

You can specify the point location from the 3D view. Hold the `Ctrl` key and drag the arrows to the destination.

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-14-material-point.png)

## 19. Hot Fluid Mesh - Start Meshing

Now, it’s time to create the mesh of the hot fluid region.

1. Go to *Mesh* tab
2. Start the meshing process with **Mesh** button

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-15-meshing.png)

## 20. Hot Fluid Mesh

When the meshing process is finished, the hot fluid region mesh appears on the screen.

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-16-mesh.png)

## 21. Hot Fluid Mesh - Create Sub-region

For the CHT simulations, we need to mark each of the mesh regions as sub-domains. The sub-domains represent a partial mesh that will not be overwritten by meshing operations that use the default region as a target.

1. Expand the *Options* list next to the default region
2. Select *Make sub-region*
3. *Enter Region Name* to `hot`
4. Press **OK**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-17-hot-region.png)

## 22. Cold Fluid Mesh - Meshing Parameter - Baffles

**Cold fluid region**

Now we can mesh the second region – the cold fluid region. We will use already defined geometry parameters for *exchanger* and *pipes*. We just need to add baffles to be included in the mesh.

1. Go to the *Hex Meshing* panel
2. Go to the *Geometry* tab
3. Select *baffles*
4. Enable *Mesh Geometry*
5. Set *Refinement* to *Min 0* *Max 1*
6. Turn on *Create Baffle*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-18-hex-meshing-cold.png)

## 23. Cold Fluid Mesh - Material Point

We need to move the material point to be positioned inside the cold fluid region.

1. Go to *Point* tab
2. Specify location inside the cold fluid region
   *Material Point*`0``0``0.1`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-19-material-point-cold.png)

## 24. Cold Fluid Mesh - Start Meshing

Now, it’s time to create the mesh of the cold fluid region. Please note that the resulting mesh will be automatically assigned to the default region and will exist next to the previously created hot fluid mesh.

1. Go to *Mesh* tab
2. Start the meshing process with **Mesh** button

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-20-meshing-cold.png)

## 25. Mesh

The complete mesh should look like in the picture below.

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-21-mesh.png)

## 26. Cold Fluid Mesh - Create Sub-region

Move the default region into the *cold* fluid region. The CHT simulation can only use the sub-region meshes.

1. Go to *MESH* panel
2. Expand the *Options* list next to the default region
3. Select *Make sub-region*
4. *Enter Region Name* to `cold`
5. Press **OK**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-22-cold-region.png)

## 27. Create Mesh Interface (I)

In the previous steps, we have created the mesh for *hot* and *cold* fluid regions. At the moment, they are treated separately, so the information on the flow cannot be exchanged between them. It’s time to create the interface (coupling) between both fluid regions. Later, we will define boundary conditions which will describe the way we want to exchange information between *hot* and *cold* fluid regions.

1. Select the *pipes* in cold fluid region and the *pipes* in hot fluid region
   (hold `CTRL` key and select both boundaries)
2. Press *Create Region Interface*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-23-mesh-interface.png)

## 28. Create Mesh Interface (II)

1. Repeat previous steps for *pipes_inlet_baffle* and *pipes_outlet_baffle* couple. Check the interfaces list
   *pipes* *in cold* \(\leftrightarrow\) *pipes* *in hot*
   *pipes_inlet_baffle* *in cold* \(\leftrightarrow\) *pipes_inlet_baffle* *in hot*
   *pipes_outlet_baffle* *in cold* \(\leftrightarrow\) *pipes_outlet_baffle* *in hot*
2. Adjust the remaining boundary types
   *baffles* *wall*
   *baffles_slave* *wall*
   *exchanger _in cold *_wall*
   *exchanger_cold_inlet* *patch*
   *exchanger_cold_outlet* *patch*
   *exchanger _in hot* _wall*
   *exchanger_hot_inlet* *patch*
   *exchanger_hot_outlet* *patch*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-24-mesh-interface-2.png)

## 29. Simulation Type

We want to analyze heat transfer efficiency in a heat exchanger. For this purpose, we will use a steady-state conjugate heat transfer simulation.

![Simulation Panel](https://help.sim-flow.com/assets/images/go-to-simulation-panel@2x.png)

![Step 1](https://help.sim-flow.com/assets/images/solvers-selection/chtMultiRegionSimpleFoam/01_heat_transfer@2x.png)

![Step 2](https://help.sim-flow.com/assets/images/solvers-selection/chtMultiRegionSimpleFoam/02_cht@2x.png)

![Step 3](https://help.sim-flow.com/assets/images/solvers-selection/chtMultiRegionSimpleFoam/03_steady-state@2x.png)

![Step 4](https://help.sim-flow.com/assets/images/solvers-selection/chtMultiRegionSimpleFoam/04_apply@2x.png)

## 30. Radiation

We will disable radiation for our simulation.

1. Go to *Radiation* panel
2. Uncheck *Enable Radiation* option

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-26-radiation.png)

## 31. Thermo - Fluid Properties - Hot Region

Now we need to define fluid properties. We will assume that the working fluid for hot and cold regions is water.

1. Go to *Thermo* panel
2. Select *hot* region
3. Select *Constant Density* for *Equation of State*
4. Open **Material Database**
5. Scroll down to find *water*
6. Click **Apply**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-27-thermo-hot.png)

## 32. Thermo - Fluid Properties - Cold Region

1. Select *cold* region
2. Select *Constant Density* for *Equation of State*
3. Open **Material Database**
4. Scroll down to find *Water*
5. Click **Apply**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-28-thermo-cold.png)

## 33. Operating Conditions

We will turn off the gravity acceleration.

1. Go to *Operating Conditions* panel
2. Set zero *Gravity Acceleration*
   *g \({\sf [m/s^2]}\)*`0``0``0`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-29-operating-conditions.png)

## 34. Boundary Conditions - Exchanger Cold Inlet - Flow

We will leave the default conditions for the baffles and heat exchanger external surfaces – adiabatic (insulated) walls. Now, we will define the inlet and outlet parameters for hot and cold regions.

1. Go to *Boundary Conditions* panel
2. Select *exchanger_cold_inlet* boundary
3. Set the *Velocity Inlet* character
4. Set the inlet velocity
   *U* *Reference Value \({\sf [m/s]}\)*`0.01`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-30-bc-exchanger-cold-inlet-flow.png)

## 35. Boundary Conditions - Exchanger Cold Inlet - Thermal

1. Go to *Thermal* tab
2. Set the type and value
   *T* *Type* *Fixed Value*
   *T* *\(T_0\) \({\sf [K]}\)*`283`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-31-bc-exchanger-cold-inlet-therm.png)

## 36. Boundary Conditions - Exchanger Cold Outlet

1. Select *exchanger_cold_outlet*
2. Switch to *Thermal* tab
3. Set the *Type* to *Zero Gradient*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-32-bc-exchanger-cold-outlet-therm.png)

## 37. Boundary Conditions - Exchanger Hot Inlet - Flow

1. Select *exchanger_hot_inlet* boundary
2. Set the *Velocity Inlet* character
3. Switch to *Flow* tab
4. Set the inlet velocity
   *U* *Reference Value \({\sf [m/s]}\)*`0.02`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-33-bc-exchanger-hot-inlet-flow.png)

## 38. Boundary Conditions - Exchanger Hot Inlet - Thermal

1. Go to *Thermal* tab
2. Set the type and value
   *T* *Type* *Fixed Value*
   *T* *\(T_0\) \({\sf [K]}\)*`383`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-34-bc-exchanger-hot-inlet-therm.png)

## 39. Boundary Conditions - Exchanger Hot Outlet

1. Select *exchanger_hot_outlet*
2. Switch to *Thermal* tab
3. Set the *Type* to *Zero Gradient*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-35-bc-exchanger-hot-outlet-therm.png)

## 40. Boundary Conditions - Interfaces (I)

Now we need to define how *hot* and *cold* fluid exchange information with each other. At the beginning of this tutorial, we mentioned we will not model solid walls between two fluid regions. Instead, we will use thermal resistance to replicate heat conduction through the solid.

In the Boundaries list, *pipes*, *pipes_inlet_baffle*, *pipes_outlet_baffle* occur twice, as boundaries with the same names exist in both hot and cold regions. Thermal resistance parameters will be displayed only on one of the pair.

## 41. Boundary Conditions - Pipes - Thermal

We will apply the same settings for other interfaces under the hot region: *pipes*, *pipes_inlet_baffle* and *pipes_outlet_baffle* boundaries.

1. Select *pipes* (hot region)
2. Go to *Thermal* tab
3. Check the *Resistance*
4. Set the thickness of the wall and thermal conductivity
   *T* *\(\sigma\) \({\sf [m]}\)*`5e-03`
   *T* *\(\kappa\) \({\sf [W/m \cdot K]}\)*`385`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-36-bc-pipes-hot-therm.png)

## 42. Boundary Conditions - Pipes Inlet Baffle - Thermal

1. Select *pipes_inlet_baffle* (hot region)
2. Go to *Thermal* tab
3. Check the *Resistance*
4. Set the thickness of the wall and thermal conductivity
   *T* *\(\sigma\) \({\sf [m]}\)*`5e-03`
   *T* *\(\kappa\) \({\sf [W/m \cdot K]}\)*`385`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-37-bc-pipes-int-inlet-hot-therm.png)

## 43. Boundary Conditions - Pipes Outlet Baffle - Thermal

1. Select *pipes_outlet_baffle* (hot region)
2. Go to *Thermal* tab
3. Check the *Resistance*
4. Set the thickness of the wall and thermal conductivity
   *T* *\(\sigma\) \({\sf [m]}\)*`5e-03`
   *T* *\(\kappa\) \({\sf [W/m \cdot K]}\)*`385`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-38-bc-pipes-int-outlet-hot-therm.png)

## 44. Initial Conditions - Hot Region

Before we start the simulation, we need to define the initial conditions. We will adjust the initial velocity and temperature to the inlet conditions of each region.

1. Go to *Initial Conditions* panel
2. Select *hot* fluid region
3. Define initial velocity and temperature
   *U*`0``0``0.02`
   *T*`383`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-39-initial-conditions-hot.png)

## 45. Initial Conditions - Cold Region

1. Select *cold* fluid region
2. Define initial velocity and temperature
   *U*`0.01``0``0`
   *T*`283`

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-40-initial-conditions-cold.png)

## 46. Run Simulation

Finally, we can start our computation.

1. Go to *Run* panel
2. Set *Number of Iterations* to `700`
3. Click **Run Simulation**

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-41-run.png)

## 47. Residuals

1. Monitor convergence process under *Residuals* tab

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-42-residuals.png)

## 48. Postprocessing - ParaView

After computations are finished, we can do a complex visualization of our results with ParaView.

1. Go to *Postprocessing* panel
2. Click *Run ParaView*

If you do not plug in the new ParaView to SimFlow, you can just run ParaView and open the case file:
` …/heat_exchanger/heat_exchanger/heat_exchanger.foam `

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-43-paraview.png)

## 49. ParaView - Load Results

Load the results of the simulation from SimFlow.

1. Select *heat_exchanger.foam*
2. Click **Apply** button to load results into ParaView
3. Select *Temperature* from the drop-down list
4. After loading results, they will be shown in the 3D graphic window

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-44-pr-read-results.png)

## 50. ParaView - Clip

We will create a cross-section through the computational domain to display the temperature distribution.

1. Select *Clip* button
2. Set the plane origin and normal
   *Origin*`0``0``0`
   *Normal*`0``1``0`
3. Untick *Show Plane*
4. Untick *Invert*
5. Press **Apply**
6. From the drop-down menu, select *Temperature*

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-45-pv-clip-setup.png)

## 51. ParaView - Results

1. Orient the view parallel to the XZ plane and rotate 90 degrees clockwise

![image](https://help.sim-flow.com/tutorials/images/heat-exchanger/he-46-pv-clip-temp.png)

## 52. Advanced Postprocessing with ParaView

This concludes the tutorial, covering all the aspects we intended to showcase. For a finely tuned presentation of the results, you may take advantage of the more advanced features.

In ParaView, you can display streamlines, contour plots, vector fields, line or time plots, calculate volume or surface integrals and create animations.

To familiarize yourself with the ParaView capabilities, it’s worth checking out our video tutorial, *Paraview CFD Tutorial - Advanced Postprocessing in ParaView*, in which we demonstrate some of the most commonly used postprocessing techniques.

[Paraview CFD Tutorial - Advanced Postprocessing in ParaView](https://www.youtube.com/watch?v=5M6VgXyHB60&list=PLy7xPqn9xXckoD2gZgPpv8mrxillJ9PWU&index=21)
