Skip to content

Initial implementation of chtMultiRegionSimpleFoam, conjugate heat transfer support#265

Open
kevinsmia1939 wants to merge 2 commits into
jaheyns:devfrom
kevinsmia1939:add_chtMultiRegionSimpleFoam
Open

Initial implementation of chtMultiRegionSimpleFoam, conjugate heat transfer support#265
kevinsmia1939 wants to merge 2 commits into
jaheyns:devfrom
kevinsmia1939:add_chtMultiRegionSimpleFoam

Conversation

@kevinsmia1939

@kevinsmia1939 kevinsmia1939 commented Apr 19, 2026

Copy link
Copy Markdown
Contributor

Add chtMultiRegionSimpleFoam solver to CfdOF with multi-region CHT support

There are several limitations at the moment.

  • Only 1 fluid domain, so heat exchanger cannot be done yet.
  • I tested only gmsh. cfmesh has not been test. snappyhexmesh have to support multi-body mesh.
  • Turbulent RANS, kOmegaSST works, but I encounter stability issue half way into simulation with the example file I gave. We should create better file to test.
  • Only aluminium properties at the moment, but can add more later.
  • The fluid box and solids where heat is flowing though must be combine with "boolean fragments".

FreeCAD version 1.1.1 and openfoam2512 was tested.
Open the example I gave, write mesh case, run mesh, write case, and run case should start simulation without issue.
To view your result, open ParaView and add extractor block to see fluid or solid part, see screenshot.
Most of the codes are written with Claude code.

The next steps after this to put CHT in usable state includes,
Test different combinations and conditions
Test different cases with different wall boundary types, cyclic, symmetry, etc.
Add demo
Test with meanflowvelocity
Test different Turbulent model. A case without stability issues. Then add support for different Turbulent model.
Test different meshing.
Add more solid properties.

This PR still need much more testing until it is ready to merge. Will continue to update status.

All test pass except #262 which will need to merge first.

The example shown below is a heat sink with constant temperature on the bottom. Inlet and outlet flow over at 500mm/s.
Screenshot_20260419_220029
Screenshot_20260419_220103
Screenshot_20260419_215931
cht_heatsink_test.FCStd.txt

@kevinsmia1939 kevinsmia1939 marked this pull request as draft April 26, 2026 11:08
@kevinsmia1939 kevinsmia1939 force-pushed the add_chtMultiRegionSimpleFoam branch from d8b5fe8 to 1a90271 Compare April 26, 2026 11:10
@oliveroxtoby

Copy link
Copy Markdown
Collaborator

Thanks for taking this on.

One comment you could perhaps consider: My plan for this is to allow multiple mesh objects which would be connected via the non-conformal region-coupled boundaries in a similar way to how the periodic master/slave boundaries are currently implemented. This would be fairly general and not require us to implement a specialised method for each different mesher.

@kevinsmia1939

Copy link
Copy Markdown
Contributor Author
Screenshot_20260524_014818

@kevinsmia1939 kevinsmia1939 force-pushed the add_chtMultiRegionSimpleFoam branch 5 times, most recently from 6332691 to a15c506 Compare June 27, 2026 07:23
@kevinsmia1939 kevinsmia1939 marked this pull request as ready for review June 27, 2026 11:30
@kevinsmia1939 kevinsmia1939 changed the base branch from master to dev June 27, 2026 11:32
@kevinsmia1939 kevinsmia1939 force-pushed the add_chtMultiRegionSimpleFoam branch from a15c506 to 23277b5 Compare June 27, 2026 18:25
@kevinsmia1939

kevinsmia1939 commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Initial support for steady-state conjugate heat transfer case
generation using OpenFOAM chtMultiRegionSimpleFoam solver.

New features

  • Initial support for chtMultiRegionSimpleFoam solver
  • Fluid and solid regions can be written as an OpenFOAM multi-region case
  • Add solid region material properties (e.g. heat conductivity, heat generation)
  • Fluid and solid thermophysical properties are written per region.
  • Solid properties added. This PR is not required anymore Add solid thermal material cards #281 material properties have been included in this PR.
  • Coupled temperature boundary conditions are created for fluid-solid and
    solid-solid interfaces produced by splitMeshRegions
  • Solid heat sources can be written through fvOptions
  volumeMode      specific;
  injectionRateSuSp
  {
      h    (10000000.0 0);
  }

Mesh support

Only Gmsh-based meshing is supported for the initial CHT implementation.

The CHT workflow relies on gmsh volume/cell-zone output and on subsequent
OpenFOAM region splitting. Other CfdOF meshing backends are not covered by this
initial implementation and should be treated as unsupported for CHT cases.

Testing

I test the following combinations to evaluate the robustness of the CfdOF CHT implementation, all in laminar except one.

  • Single fluid + single solid, no heat generation, fixed-temperature solid face.
  • Single fluid + single solid, volumetric heat generation in solid.
  • Single fluid + multiple solids, different materials.
  • CHT + cyclic boundary.
  • CHT + meanVelocityForce with SelectionMode = all.
  • CHT + meanVelocityForce with SelectionMode = region.
  • CHT with no solid heat generation, to confirm passive solids still solve.
  • CHT + RANS turbulence model

Example case

simple_heat_fin.FCStd : This is the simplest setup of chtMultiRegionSimpleFoam. The case feature a rectagular fin with constant temperature heat source at the base.
simple_heat_fin_result_paraview

microchip_cooling.FCStd : This example feature a setup akin to cooling microchip with fin heatsink with force convection from mean velocity force cell zone as a fan. This example features a microchip which generate volumetric heat. The other 3 solid regions include PCB with plastic material properties assigned, heat sink with aluminium material, fan case with plastic material. The convection was imposed with a mean velocity force cell zone on the top of the heat sink.
microchip_cooling_result_paraview

Laminar flow was used.
Boolean fragments was used to create regions.

Next steps

  • Add support for connection via the non-conformal region-coupled boundaries.
  • Add support for fluid multi-region, this will allow heat exchanger simulation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants