Fill out the form to download

Required field
Required field
Not a valid email address
Required field
Required field
  • Set up your own cloud-native simulation in minutes.

  • Documentation

    Thermal Management Tutorial: Battery Pack Cooling of an FSAE Car

    This advanced thermal management tutorial describes the setup and analysis of the cooling of a battery pack. The scenario consists of a battery pack with different components, being cooled by air as a working fluid.

    Figure 1: Velocity pathlines with the flow distribution in a battery pack

    The battery cooling system is one of the key processes to ensure that the battery is working well, as the operating temperature of the battery can be a problem if it is too hot or too cold. Temperature is very important for maintaining the life, performance, and safety of the batteries. Under high-temperature environments, batteries may produce thermal runaway, resulting in short circuits, combustion, explosion, and other safety problems. On the other hand, Low temperatures may lead to reduced battery capacity and weaker charge/discharge performance.

    There are two crucial factors of good features of a thermal management system for batteries, the first is to avoid thermal runaway phenomena and the second is to reduce temperature peaks

    Computer Aided Engineering (CAE) proves to be exceedingly efficient in simulating this type of equipment, from the initial development stage all the way through the evaluation of the current equipment. Computational fluid dynamics (CFD) has been shown to alleviate the cost, effort, and time implied with physical prototyping.

    This tutorial teaches you how to:

    • Use Joule heating to simulate heat loss from battery cells
    • Select suitable boundary conditions for thermal management/battery cooling
    • Assign materials for different components
    • Judge the calculation stability

    We are following the SimScale workflow:

    1. Prepare the CAD model for the simulation
    2. Set up the simulation
    3. Create the mesh
    4. Run the simulation and analyze the results

    1. Review the CAD Model and Select the Analysis Type

    Import the tutorial project into your Workbench by clicking the button below:

    Clicking this link leads to the following view:

    Figure 2: SimScale Workbench at the very beginning of the tutorial

    1.1 CAD Mode

    The simulation project contains a series of geometries that represent the battery pack. There is one flow region that was previously created to represent the negative region where the air will be recirculating. It is important to say that for every internal fluid simulation, we need a volume in the CAD model representing the fluid domain.

    Figure 3: CAD mode enables you to do simple and complex CAD changes within SimScale.

    For this simulation, use the ‘Battery_Pack_CAD’ geometry.

    1.2 Saved Selections Set for the Battery Pack

    To continue with the simulation setup, select the ‘Battery Pack’ geometry. We have more than 100 parts for this simulation, so it is not practical to select each part to assign a material. For this simulation, we have already created a few Saved Selections to make the process more intuitive as it helps with faster assignment since parts can be grouped and only have to be selected once.

    It is not necessary to create more saved selections, but if you want to create new zones, switch to the volume selection mode, expand the geometry parts list, and select the parts that should be inside the saved selection.

    After selecting the parts click on the plus icon next to Saved Selections and name the selection.

    Figure 4: Saved Selections

    2. Simulation Setup

    2.1 Create a Simulation

    Select the ‘Battery_Pack_CAD’ geometry and click on the ‘Create Simulation’ button as presented in the following picture:

    Figure 5: Steps to create a new simulation. By expanding Geometry Info you will see additional insights about your geometry, such as the number of parts and faces.

    Now the analysis selection widget will pop up:

    Conjugate heat transfer
    Figure 6: SimScale simulation library. Select the ‘Conjugate heat transfer v2.0’ analysis type.

    Within the analysis type widget, all analysis types available in SimScale are listed. Selecting one of them shows a description of them. For this thermal management simulation, we will use the ‘Conjugate Heat Transfer v2.0’ option. Afterward, hit the ‘Create Simulation’ button to confirm the selection.

    Did you know?

    The analysis type you choose within the simulation library depends on the physics that need to be accounted for, the results that you are interested in, and what parameters you have.

    • In this simulation, we want to see the heat transfer both within the solid parts as well as from the solids to a fluid. Hence we need to select the Conjugate Heat Transfer (CHT) analysis type. Additionally, we chose the CHT v2.0 algorithm, which is faster than Convective Heat Transfer but has a slightly reduced feature set.
    • If you are only interested in the heat transfer within solids, you can simplify the simulation process by performing a Heat Transfer analysis.
    • On the other hand, assuming you are only interested in the heat transfer within a fluid, you would go for Convective Heat Transfer.

    2.2 Global Settings

    Now you have successfully created a CHT v2.0 simulation. On the left-side panel, you should see a simulation tree named Conjugate heat transfer v2.0, as shown in the picture below:

    Global settings of a CHT v2.0 analysis
    Figure 7: Global settings of a CHT v2.0 analysis

    Take this opportunity to access the global simulation settings and toggle on the Joule heating option. With Joule heating it is possible to model regions where heat is generated by Joule losses due to the passage of electric current, for example, the Busbar area.

    2.3 Contacts

    When working with a conjugate heat transfer simulation, there will naturally be contacts between the different solids that will act as thermal interfaces. In SimScale, Contacts between parts are detected automatically as soon as a new CHT simulation is created. In the geometry used for this tutorial, you should see a total of 2295 standard interfaces and 1630 partial interfaces.

    By default, all contacts will be Coupled, which means that heat can flow through the interfaces without any thermal resistance. Depending on the physics of your design, you might be interested in applying a certain resistance to contacts of interest. For this simulation, it is not necessary to create thermal resistance regions.

    2.4 Model

    Under the Model tab, the user can define the gravity magnitude and direction. Please note that the gravity definition is based on the global coordinate system> the orientation cube, on the bottom-right corner of the viewer.

    Figure 8: Defining the gravity magnitude and direction

    In this tutorial, gravity will be -9.81 \(m/s^2\) in the x-direction. The gravity definition is even more important when dealing with natural convection.

    2.5 Materials

    The next step in the setup is the material assignment for the various components of the battery pack. In the table below, you will find a summary of the material assignments.

    In this tutorial, all materials will keep the default settings. However, it is possible to use custom materials in SimScale, as described in this article.

    Material Saved Selections
    AirFlow Region
    NickelNickel 10S10P
    Solid AirAir
    Table 1: Material selection for the parts of the electronic box.

    1. Fluid Materials


    To define a new fluid, click on ‘+’ next to the Fluids item. Doing so makes the fluid library pop up:

    fluid material assignment library
    Figure 9: SimScale fluid materials library

    Choose ‘Air’ and hit ‘Apply’ to confirm the selection. Next, the material properties pop up:

    Figure 10: To assign a material, simply click on the flow region in the viewer, or select it from the saved selection.

    After assigning the flow region to the air domain, we will take care of the materials for the battery pack. For better visualization of the next steps, it’s recommended to hide the already assigned parts, therefore hide the Flow region by clicking on the eye icon in the list of saved selections.

    Be careful when assigning solid materials

    When creating and assigning materials beware of what parts of the geometry are highlighted, because this will be assigned to the new material automatically.

    Also, note that every part in the CAD model needs to be assigned to one and only one material.

    2. Solid Materials


    Next, we select the solid material for the battery housing. For this tutorial, we will use the aluminum material provided by SimScale. The following list will be visible after clicking on the ‘+’ button next to Solids:

    aluminum material creation cht
    Figure 11: SimScale material library for solid materials. After selecting, the material changes to the individual variables can be done.

    From the list, select ‘Aluminium’ and hit ‘Apply’ to confirm.

    When using Joule heating, it is necessary to set the Electric conductivity type in the material properties. In this case, we can set the material’s electrical conductivity to Dielectric, as this region of the housing is not expected to conduct current. Next, we have to select the part that we want to assign the Aluminium material. To do this select the ‘Aluminium’ group under Saved selections.

    Battery housing material
    Figure 12: Selecting the material for the aluminium structure

    Electric Conductivity Type

    When Joule heating is enabled in the global settings each material gets an Electric conductivity type. It defines if the material is Dielectric (an electric insulator not conducting any current) or if it is a conductor. Isotropic conductors have the same resistivity opposing the current in all coordinate directions while Orthotropic conductors allow for differing resistivity.

    Remember that you can hide the Aluminium group after the assignment to make the next steps easier.


    Next, following Table 1, we will assign Steel and the other materials. Therefore, repeat the steps for the Aluminum material assignment and select ‘Steel’ first from the material library.

    Figure 13: Material assignment Steel

    Aluminium – Busbar

    Select the Aluminium material again and assign the ‘Busbar’ saved selection now. Also, it is necessary to modify the electric resistivity to ‘7.24e-9’ \(\ohm m\) since this zone will conduct energy. You can rename the material to ‘Aluminium-Busbar’.

    Aluminium Busbar
    Figure 14: Material assignment Aluminium Busbar


    Material assignment Nickel
    Figure 15: Material assignment Nickel


    For this material and the next ones, you’ll need to create customized materials. A simple way to create customized materials is to copy any material and edit the properties of this material to the desired ones. In this sense, you can copy a material and add the properties described in the figures.

    Material assignment Polyurethane.
    Figure 16: Material assignment Polyurethane


    Material assignment Insulation.
    Figure 17: Material assignment Insulation

    Reinforcement Material

    Material assignment reinforcement
    Figure 18: Material assignment Reinforcement

    Air (Solid)

    Material assignment Air
    Figure 19: Material assignment Air (solid)

    We are considering air as a solid material for this region, in order to simplify the simulation, and to account for heat exchange through conduction.

    Custom Material

    If you are looking for materials with different settings than the default values, you can always create custom materials:

    2.6 Boundary Condition

    Next, we have to assign the boundary conditions to the simulation. For this tutorial, there is a fan drawing air into the battery pack. We also need to set up the electrical potential in the busbar area.

    The following picture shows an overview of the physical situation applied in this battery pack tutorial:

    Figure 20: Boundary conditions applied to the electronics box

    In this example, air is blown into the pack and passes through the housing, cooling the temperature of the battery cells and conductors. The insulating materials are responsible for isolating the temperature and heat loss to the environment so that the cooling fluid is the main means of forced thermal management.

    a. Fan Inlet

    SimScale provides a fan boundary condition where the user can define a fan curve of interest. A fan curve can be defined in outlet or inlet mode, depending on the direction of the flow. Please follow the steps below:

    Fan Inlet boundary condition.
    Figure 21: Fan Inlet boundary condition
    1. Click on the ‘+’ button next to Boundary conditions and select ‘Fan’ from the list.
    2. Make sure that the Fan Type is set to ‘Inlet’ so the fan adds air.
    3. Assign the inlet face to the boundary condition.
    4. Click on the graph icon to define the fan curve via table input.

    In the table input window, you will be prompted to define volumetric flow rates and the corresponding fan pressures. Please download the CSV file using the link below, and upload it in the table configuration window:

    Figure 22: Fan curve configuration window, after the upload of the .csv file

    Once the CSV file is uploaded, press ‘Apply’ to save. Sometimes you need to adjust the table so that the data fits the corresponding variables; you can delete extra columns or rows.

    Did you know?

    This tutorial covers the fan boundary condition workflow, however, it is also possible to use a velocity inlet if you are interested in a specific value for the flow rate at the outlet.

    b. Pressure Outlet

    Define the outlet region of the flow with a pressure outlet boundary condition. This boundary condition allows the flow to go out of the domain. Therefore, create a new boundary condition and select the ‘Pressure outlet’ type. Assign it to the 6 outlet faces:

    Pressure outlet
    Figure 23: Pressure outlet boundary condition assignment

    c. Joule Heating – Boundary Conditions

    Next, create boundary conditions for the current flowing through the conductors and cells of the battery pack. Using the Joule heating, we can add electrical conditions on wall boundary conditions which define the flow in an electric circuit.

    Create a new ‘Wall’ boundary condition naming it ‘Potential 0V GND’. This first region will represent the electric potential of ‘0.001’ \(V\) and the temperature type needs to be adiabatic. The setup can be seen in the figure below:

    Wall electric potential
    Figure 24: Wall electric potential for the conductor region

    Now define the current outflow region of the electrical circuit. Create a new wall boundary condition and assign it to the opposite side of the conductor. In this case, the current outflow will be ’40’ \(A\). Rename this wall boundary condition to ‘Current outflow’.

    Wall current outflow
    Figure 25: Wall current outflow for the conductor region

    The electric solution will be calculated by resolving the electric potential in all conducting materials of the domain.

    Unassigned Surfaces

    Surfaces that are not assigned to a boundary condition or a contact will be treated as an adiabatic wall. If the wall doesn’t have any known electric conditions the default option will be “None” which defines 0 current flow across the boundary. Therefore, such faces will be taken as a perfect thermal insulator, with no heat flux across the face.

    2.7 Advanced Concepts – Defining Power Sources

    In addition to the heat flow generated as a result of the Joule effect in the electrical circuit, the battery cells also have a constant internal heat generation, and in this simulation, this dissipated heat will be represented by a power source with a constant value of 1 \(W\).

    Figure 26: Setup for modeling the Nickel cells as an absolute power source
    1. Under Advanced concepts, hit the ‘+’ button next to Power sources and select ‘Absolute power source’.
    2. Define the amount of heat dissipation, which is ‘1’ \(W\) for the Nickel cells.

    Did you know?

    You can assign as many different heat sources as you like. You also have the option to assign the power sources to a geometry primitive you define during the simulation setup, in case you do not have the electronic component generating heat represented in your model.

    2.8 Simulation Control

    The default settings for Numerics are usually suitable. Experienced users can use manual settings for smoother or faster convergence.

    The Simulation control settings define the general controls over the simulation. We will adjust the Maximum runtime to ‘30000’ seconds, to ensure that the simulation runs until the end of 1000 iterations.

    simulation control settings electronics cooling thermal management tutorial
    Figure 27: Within the simulation control settings of a steady-state simulation, the End time represents the number of iterations that the solver will run for.

    2.9 Result Control

    As a default setting, velocity, pressure, density, temperature, and radiation variables will be saved for every cell in the fluid domain. The changes between the timesteps are displayed in the convergence plot.

    You can use result control to observe the development of the values at any point or surface in your domain during the calculation. For this tutorial, we will create three result control items to analyze the airflow through the battery pack and the temperature in some strategic zones.

    2.9.1 Cell Temperature

    It is interesting to create a result control to evaluate the temperature in one of the cells throughout the simulation. In this way, we can hide some regions of the model, select the faces of just one cell, and create the result control. Follow the steps presented in the figure below:

    Figure 28: Setup for an area average result control
    1. Hit the ‘+’ button next to Surface data under Result control and choose an ‘Area average’.
    2. Select both faces of a cell in the model and assign them to the area average.

    2.9.2 Outlet Temperature

    Following a similar workflow, create a new surface data result control, and choose ‘Area average. Assign the outlet faces to the result control, as below:

    Figure 29: Area average result control for the outlet faces

    As a rule of thumb, it is a good idea to use result controls to keep track of parameters of interest in the simulation domain. For example, flow rates, pressure drops, the temperature of certain surfaces, etc. are some commonly used options.

    2.9.3 Conductor Temperature

    The last result control is ‘Area average’ assigned to the top face of the busbar. With this result control, we will keep track of the average temperatures experienced in this zone.

    Figure 30: Result control item for the busbar surface average temperature

    3. Mesh

    Default mesh settings usually create a good initial mesh. For this tutorial, as the geometry has small geometric details, we’re going to use the manual option and set the minimum and maximum size values between ‘8e-4’ \(m\) and ‘0.1’ \(m\), and it is a good practice to reduce the boundary layer growth rate to ‘1.3’. In addition, change the small feature suppression value to ‘1e-5’ \(m\), so that the software will disregard areas with a size smaller than this value, which means saving mesh elements.

    Figure 31: Global mesh settings for the electronics cooling tutorial

    Did you know?

    The standard meshing tool offers many options for customization, including several mesh refinements and further fine-tuning. Interested users are encouraged to visit this page.

    4. Start the Simulation

    After all the settings are completed, click on the ‘+’ icon next to Simulation Runs, to start with the analysis. This way, the mesh will be generated and the simulation run will start automatically afterward. A yellow warning message may appear on the screen warning you about the partial contacts in the geometry, you can select the ‘Run anyway’ option as this shouldn’t be a problem for this simulation.

    While the results are being calculated, you can already have a look at the intermediate results in the post-processor. They are being updated in real time!

    5. Post-Processing

    When the simulation is complete, you can check the Convergence plot and the Solution fields from the simulation. You can access either of them in the simulation tree by clicking on them, as you can see below:

    Figure 32: After the simulation is finished, you can check the results by clicking on ‘Post-process results’ or ‘Solution Fields’.

    5.1 Convergence and Outlet Flow Temperature

    When the simulation is running and after its completion, we can observe the convergence behavior. For a steady-state analysis, the result should converge to a point where the flow field characteristics do not change anymore.

    a. Convergence Plot

    For each timestep, the solver calculates solutions for each cell in the mesh. The residuals are the differences between those results. Hence the lower the residuals, the more stable the solutions are. We also call that “convergence”. The following picture shows the convergence plot for the solution variables.

    convergence plot
    Figure 33: The convergence plot presents the decreasing trend of the residuals during the simulation.
    1. Select the finished Simulation run.
    2. Open convergence plots and residuals.

    The residuals are presented dimensionless and you can convert them into a percentage. In the tutorial, all graphs are beneath 1e-2 and some even lower than 1e-3, which is a good sign of convergence.

    b. Result Control – Area Averages

    With the result control items created, we can analyze the results for special faces of interest. The outlet temperature is a good physical parameter to track and evaluate convergence and the performance of the design. The result for the temperature of each outlet face can be seen below.

    Figure 34: Temperature results for the outlet temperature.

    Having a look at this plot, most of the temperatures approach a horizontal line, which means, that the result is approaching a steady-state result. The maximum temperature is around 309 \(K\) ( 36 \(°C\)). Averaging the temperature for all faces we get an average outlet temperature of 306.91 \(K\) (33.76 \(°C\)), which means we have an increase of around 14 \(K\) between the inlet and the outlet.

    5.2 Surface Visualization

    Let’s have a look at the different temperatures and the flow field visually. This can either be done by selecting ‘Solution Fields’ in the simulation tree or ‘Post-process results’ from the run panel.

    5.2.1 Battery Pack Temperature

    First, let’s have a look at the temperature of the battery pack. Therefore hide the cutting plane and choose ‘Temperature’ to display on the Parts Color Coloring. Change the units to \(°C\). To improve the quality of your visualization by making the color transition smoother, right-click on the legend bar at the bottom, and select the ‘Use continuous scale’ option for a smoother transition between different levels of temperatures as shown in step 3 below:

    Figure 35: Battery pack temperature
    1. Keep the visibility of the cutting plane off.

    You can hide the outer parts and have a look at the cells and conductor temperature inside. For example, to visualize the internal parts, hide the aluminum, insulation, foam, and air parts on the geometry tree list. Alternatively, you can right-click on the part you want to hide and select Hide selection or, select the ‘Toggle transparency’ option to generate the figure below.

    Figure 36: Using the toggle transparency to check the temperature distribution on the internal parts.

    We can change the minimum and maximum temperature values to get a better view of the temperature gradient in the cells and busbar.

    Figure 37: Nickel cell and conductor temperature distribution

    The temperature of the cells and the general area near the fan is lower. However, as the distance from the airflow inlet to the air outlet region increases, the temperature also increases. It can also be observed that the cells in the middle of the model’s other end have a higher temperature than the others. This suggests that the airflow may not be optimally distributed in this region.

    To analyze the effects of Joule heating, it is also possible to analyze the electric potential variable and how it develops along the cells and conductors.

    Eletric Potential Battery
    Figure 38: Electric potential observation using SimScale’s online post-processor

    5.3 Cutting Plane

    Next, we take a look at a section of the electronics box.

    Battery Pack velocity distribution
    Figure 39: Cutting plane with velocity distribution and forced convection
    1. Toggle on the Cutting Plane to make it visible.
    2. For the Orientation, choose the ‘X‘ axis. It will automatically generate a plane normal to this axis, coincident with the origin of the model.
    3. Choose ‘Velocity’ as the Coloring parameter.
    4. Toggle on Vectors.
    5. Set the Scaling factor to ‘0.08’ and the Grid Spacing to ‘7.2e-3’.
    6. Enable the Project vectors onto plane option.

    With this kind of visualization, we can get insights into the flow field. We observe a well-distributed flow at the beginning of the model. However, near the outlet, the lower part of the model receives less cooling by the fluid.

    5.4 Streamlines

    Finally, to view the streamlines, add a ‘Particle Trace’ filter. Keep in mind that you need to activate the visibility of the Flow region to use the openings as seed faces. You can also toggle off the cutting plane, as it won’t be needed for the particle traces filter.

    Figure 40: Selecting the seed face, which stands for the beginning of the streamlines
    1. Ensure that the Flow region volume is visible
    2. Create a new ‘Particle trace’ by selecting the icon from the filter section
    3. Select one of the inlet faces as a seed for the traces
    4. Adjust the # Seeds horizontally and # Seeds vertically to roughly cover the inlet faces

    After finishing the setup, and hiding the housing and flow region, the result should look similar as presented in the figure below.

    Battery particle traces
    Figure 41: The streamlines of the flow region colored with the velocity values

    For a general overview of SimScale’s online post-processing capabilities, this documentation can be used.

    Congratulations! You finished the tutorial!


    If you have questions or suggestions, please reach out either via the forum or contact us directly.

    Last updated: May 27th, 2024