Skip to main content

Problem Description


Battery models are often very complex. They are generally composed of several cells which are each individually made up of several, thin or small bodies.

isotropic batteryfront view battery 


Since we must define how these bodies interact with one another for things like heat transfer, we have 2 options:

  • Shared topology
  • Interfaces

With so many small/thin bodies next to larger bodies, using shared topology will significantly increase the mesh count, as these small features need to be captured properly. On the other hand, the shear number of interfaces needed to model each interaction between every adjacent surface would be very tedious to troubleshoot.


Shared Topology vs Interfaces


Here is an example of how shared topology can lead to a large mesh density using the single cell model shown above. Note, this model is surrounded by a fluid domain and we are using the default, coarse mesh settings from both Fluent and Workbench mesh. There are also zero inflation layers. 

Fluent Mesh

Workbench Mesh

Remember, this is for a single cell. In reality, many battery models consist of several cells. If each one, at it's most coarse mesh, starts at ~8 million cells (with no inflation layers!), we can see how the full model mesh will also consequently be very mesh dense.

On the other hand, what if we choose to not use shared topology and, instead, use mesh interfaces? Well, because of the way shared topology works, we can generate a larger mesh on the larger bodies adjacent to the small, thin bodies. Doing this will help to decrease the mesh count. However, we will now need to replace the function of shared topology with mesh interfaces between adjacent surfaces. The higher the number of contacting surfaces, the more mesh interfaces we will have. 

To add interfaces, we can either choose to import the surface-to-surface "contacts" that are generated in Workbench mesh, or, we can generate them one by one in Fluent. A preliminary check shows that we will have around 200+ interfaces if we go through Workbench mesh.



Again, remember, these interfaces are being automatically generated by the software. We will still need to take time to review them individually to ensure that we do not have duplicates, or that each interface definition is valid. If our model consists of multiple battery cells, we could potentially end up with thousands of interfaces that need to be verified. Very tedious and time consuming.

Fluent mesh does have some options to help minimize the number of interfaces that get created from within the software. However, generating a large number of interfaces like this could potentially take hours. They would also still need to be verified.

Both approaches are tedious, time consuming and inefficient. So, the question becomes, how do we go about meshing this?


Assembly Mesh Approach


The answer is that we need to use a hybrid approach. We split the model into several smaller submodels. So, for example, if our battery assembly has 100 parts, we can split it into 10 submodels which each contain 10 parts. Each submodel can then be joined together in Fluent. Within each submodel, we utilize shared topology and Workbench mesh to take advantage of the robust thin body meshing methods like sweep and multizone. Once each submodel has been meshed, we connect them in Fluent and model the interaction between each submodel using an interface. This approach keeps the mesh count low, since we are can separate the larger bodies from the smaller ones. Additionally, we can limit the number of interfaces we need to generate by controlling the number of submodels. To demonstrate how this can be utilized, we will use the same battery model above.

To properly take advantage of this approach, we need to separate the thin bodies of this cell to leverage the thin body meshing tools in Workbench mesh. The fluid domain is meshed on it’s own and the remaining, more complex bodies, are also meshed together.

Fluid DomainConnectorsThin Bodies


By separating the thin bodies, our main goal will be to leverage the thin body meshing methods available in Workbench mesh. To be able to do this, we will need to split the bodies such that we can easily utilize the sweep and multizone mesh methods in Workbench mesh. These bodies are split as shown.

Thin Bodies-1Thin Bodies Split-1

Here, the strategy is to cut our bodies in such a way that we have the exact same sized bodies stacked on top of one another, similar to a stack of coins. We do this with the knowledge of how the thin meshing algorithms, sweep and multizone, function in Workbench mesh. The sweep mesh method involves creating a high-quality mesh by extruding from a 2D source face along a specified path to generate a 3D volume. This method is particularly effective for bodies with a consistent cross-section. Similarly, the multizone mesh method combines hex-dominant and tetrahedral meshing techniques to generate a mesh suitable for complex geometries, automatically dividing the geometry into zones that can be meshed with different approaches. This method provides a balance between accuracy and computational efficiency by adapting the mesh type to the local geometric features.

After we split up the thin bodies to prepare them for meshing, we can bring them into Workbench mesh. The sweep and multizone methods become the key workhorses in meshing the new thin bodies we've created. The comparison between the original "coarse" mesh and the new structured mesh is shown below. Note, shared topology is active for both cases to get an apples to apples comparison. 

Shared Topology ONShared Topology ON 2

Here, we can clearly see the effect that generating a structured mesh can have on the model. While splitting/preparing the CAD can be time consuming, we can essentially get a 10x reduction in mesh size by meshing the model this way. 

Similarly, since we have separated out the other components (fluid domain and connectors), we can generate a more coarse mesh for those bodies as well. 

Fluid Domain

Fluid Domain MeshFluid Domain Mesh 2


Connectors 1Connectors 2


Once each model has been meshed, we now need to join them together so that we can get a full representation of our battery model. To do this, we can add a Fluent module in Workbench, then link all the individual mesh modules that we've created separately to that one block as shown below.



Once the modules have been combined in Fluent, we can see how each mesh overlays atop one another. Additionally, we can see the number of interfaces generated to connect them is significantly lower (~20) than before. From here, we can setup our model as usual. This approach will help to decrease the total number of cells generated in the mesh for complex battery models and may be repeated for multiple cells in the model.


Fluent Assembly




Post by Samuel Lopez
June 18, 2024