I’m setting up a conjugate heat transfer (CHT) simulation of a tightly packed prismatic battery module and running into the classic trade-off between mesh count and resolving the thin fluid gaps between cells and the solid-fluid interface.
A few points I’d be interested to hear the community’s experience on:
-
For the thin coolant channels between cells, are you getting reliable interface temperatures with prism/inflation layers plus a trimmed mesh, or has it been worth switching to a different meshing approach?
-
How many inflation layers (and what y+ target) have worked well for you at the cell-coolant interface before peak temperature stops shifting?
-
For transient duty-cycle runs rather than steady state, how are you balancing timestep size against mesh fidelity to keep solve times reasonable?
-
Anyone including busbar joule heating in the same model, or decoupling it as a separate step?
I generally run a mesh independence study tracking peak cell temperature until it plateaus, but I’d like to hear how others approach the same problem — especially what gave the best accuracy-vs-cost balance in practice.
Hi @marcomaesgs1,
If I understand your memo correctly, for thin coolant gaps in CHT, a single cell across the gap is usually unreliable because each cell computes one value at its centroid. Aim for 2 to 3 cells across the gap (and 2 to 3 elements through solid heat transfer thickness) to get meaningful interface temperatures. If resolving the gap would blow up mesh size, it can be better to simplify or remove it rather than force a huge mesh. (feel free to take a look at this: https://www.simscale.com/knowledge-base/cht-simulation/)
To keep mesh cost down, use a coarse global mesh and add local refinements only where needed (volume custom sizing). For thin features needing 3D conduction, use Extrusion Mesh Refinement to target 2 to 3 elements across thickness without over-refining in-plane.
Additionally, regarding the transient duty cycles, start coarse and add layer refinement, then run a mesh sensitivity loop (coarse to finer) until peak temp stabilizes. Start with a large time step, then reduce it and re-run until results converge. For OpenFOAM solvers (CHT, CHT IBM, Incompressible, etc), a small initial time step with automatic time stepping (Courant number ~10 to 50) is a practical workflow.
And about Joule heating, Joule heating can be included in the same CHT model by enabling the Joule heating option in Global Settings. The tutorial linked below use Joule heating, feel free to take a look.
Thanks!
Bryan