Flip-Chip Package Theta-JA Thermal Resistance Characterization Using Ansys Fluent
Hello everyone, this is Luis Maldonado from Ozen Engineering. Today, I would like to show you how to set up your theta-JA thermal characterization case using a simplified flip chip. For this demonstration, we will consider only natural convection, excluding radiation. Let's get started.
Initial Setup
- Activate gravity and select the correct direction, which in our case is minus Z.
- Activate the energy equation to solve the temperature distribution.
- Keep the default viscous model.
Materials Configuration
- For air, set the density as an incompressible ideal gas to account for temperature-induced density changes.
- Maintain other properties as default or constants at 25°C.
- For solids, Ansys allows setting orthotropic thermal conductivity. Configure thermal conductivity in three main directions based on your materials.
Cells Setup
Ensure that air is the only fluid. For solids, assign the appropriate materials:
- Solders for PGAs.
- Silicon for the die.
- Substrate for the substrate layer.
- Underfill materials as per their properties.
- Copper for the first layer (5%) and subsequent layers.
- FR4 for FR4 layers.
Source Term Configuration
- Create a named expression called power with a value of 5 watts.
- Apply this power to the die by creating a source term using the expression.
- Divide the power by the die's volume to get watts per cubic meter.
Boundary Conditions
- Set all outlets as pressure outlets and adjust the normal to boundary to front neighbor cell.
- Set the thermal boundary condition to 25°C (298.15°K).
Operating Conditions
For natural convection problems, set the specified operating density using the maximum density at the outlets. This approach ensures stability and accuracy.
Solution Methods
- Use Presto or body force weighted for momentum on pressure.
- Set under-relaxation factors to 0.7 for pressure and 0.3 for momentum.
Reports and Monitors
- Track the maximum temperature in the die.
- Create monitors for volume average temperature in solids and fluids.
- Create velocity monitors to understand fluid behavior.
Post-Processing
After running the simulation, analyze the results:
- Compute the maximum temperature in the die using the monitor.
- Create temperature contours and vector plots for better visualization.
Conclusion
This concludes the setup and analysis of the flip-chip package theta-JA thermal resistance characterization using Ansys Fluent. For more information, please contact us at Ozen Engineering.
Flip-Chip Package Theta-JA Thermal Resistance Characterization Using Ansys Fluent Hello everyone, this is Luis Maldonado from Ozen Engineering. Today, I would like to show you how to set up your theta-JA thermal characterization case. In this case, we are going to use a simplified flip chip.
For this demonstration, we are only going to take into account the natural convection, not radiation. So let's get started. First, in general, we need to click on and activate the gravity, and then just select the right direction, so in our case, it's going to be minus C. So let's just set this up.
Ok, now let's go to the model. So, just to solve all the temperature distribution, we need to activate the energy equation. For the viscous model, let's keep the default viscous model. Just OK. For materials, one thing that we need to modify is, in this case, the fluid for the air.
So, it's essential for this kind of simulation to set up the density as an incompressible ideal gas to account for the change in densities due to changes in temperatures. The other properties can be kept as default or constants. So these are thermal properties and fluid properties at 25°C.
For the solid, in this file, I already provided all the solid thermal properties and other properties.
Here, the only thing that I want to show you is that Ansys allows you to set up an orthotropic thermal conductivity, so you can, based on your actual materials and the distribution that you have, add the thermal conductivity in three main directions as you can see here.
So these solid materials are already set up. So let's go to cells; in fluids, it's essential to check that we have air; we only have air, but it's better to double-check.
So we go for Periodic Gas, ok, ok, in solids we need to add the corresponding value for each of the pieces, so let's go, so these are the PGAs, so these are going to be solders, so let's select solders, then we can copy this to the other PGA, Let's copy the other balls.
Let's go to die; in this case, the die is going to be silicon. For the substrate, we are going to select substrate here. Okay, turn my page, turn my page, the underfill, so we already have underfill light here, underfill ship, so we have the difference because they have different properties.
For the first layer of copper, we are going to use the 5%. For the other layers, let's use copper; just copy it, make sure that we have everything here, and finally, for the FR4 layers, let's select FR4 material. So let's copy that. Copy. Ok.
Here, so to add the source, I'm going to create a named expression that I will call power. I will use 5 watts for this demonstration. So after we have this, we can go to the die that is the source, the piece that is going to dissipate the power.
We can click here in source terms to create a source term in this body, go to source terms, edit, just add one. Here I want, instead of using a custom value, I would like to use an expression, to use my power expression.
So let's go to power, divide, in this case, Fluent, when you apply a source term in Fluent, if you want to add a unit of watts per meter cubic, you need to divide this power by the volume of the die body. We can do that by going to functions, reduction, and then volume.
And then we can go to location cells and select die. In this way, Fluent will calculate itself the power in watts per meter cubic. We can click here to make sure that everything is going ok. This way is...
I mean, when you create a source using an expression, it allows you to do a parametric study in a better way, so you don't have to come and modify anything. So you can use the named expression here and then create an input parameter and then just run the parametric study.
Okay, so we have the source term. Then let's go to the boundary condition. So for outlets, in here, there is something that I want to show you.
We are going to set all of them as a pressure outlet, but we know that we are going to have inlet air coming in from these surfaces, so to account for the correct direction, we are going to change the normal to boundary to front neighbor cell, so we don't have unrealistic behavior.
For the thermal boundary condition, we are going to select 25°C or 298.15°K. So we just click here; let's copy the other ones. For the walls, we don't have to do anything; all of them have to be coupled.
The only thing that we still have to make is going here to Physics, Operating Conditions, and it's going to show this window. In here, for this kind of natural convection problems, it's really important to set up correctly the specified operating density.
So you can use the density at 25°C, but we recommend using the maximum density in the outlets. So to do that, let's create another named expression that we call Operating Density. In here, what I'm going to do is go to Functions, Reduction, select the maximum, maximum what?
So let's go to variables, density, density, so we are going to check in the maximum density in all the outlets. So we can go to the location, bound.in, we check that everything is ok, and we save it. Let's go back to operative, and then we can use this expression here, operative density.
Ok, so what is the difference between using a constant value with the operative density in this way? If we use a constant value, it may create instability in the solution and also create inaccurate results.
So we recommend using this way to set up the operating density, so everything is consistent, and we can get a more stable simulation and also more accurate results.
So let's go to methods; here, it's essential to check all the parameters, and here in the momentum, in the momentum on pressure, sorry, we should use either Presto or body force weighted, so let's go with Presto for this time, check the other ones that are second, just clicking high order term relaxation, let's go to controls, here we recommend using an under-relaxation factor of 0.7 in pressure and 0.3 in momentum.
The other you can just keep as default. To the reports, let's set up the maximum, so what is the important or the key parameters that we want to track? The maximum temperature in the die. So we only need the plot Temperature in the die.
Ok, just for the sake to see if we get accurately resolved or not. If the result is stable, let's create a monitor for the volume average temperature. Let's select only the solids here. Let's call it World Temperature Solids. Let's create another one just for volume, temperature, fluid.
Ok, another thing that is important is the velocity, velocity, no, volume, velocity fluid, so let's select only the fluid here. Ok, I think I... yeah, ok. And just to have a better understanding of how the velocity behaves, let's create some points in the z direction above this fellowship.
Let's go to domain, create, select point. So let's use 0, 0, 0. So you can see here that is the center. So let's start to create, for example, 0. 01. This is too high, so let's go to this. Let's type 0.1, so you can see here how Fluent shows you where the point is located.
Let's create this 0.1, let's multiply the value by 2, 0.3, 0.4, let's create only 5 points, just for, okay, so it's a move here. Then we can do one more. Okay, now this is outside, so we're not going to use that. Okay? So for the report, let's go to surface report and then go to vertex average.
So here we are going to see point velocity. Let's set it, in this case, not the magnitude but instead the velocity in the z direction. Let's use the points 1 to 4, and then click here on Per surface, so it shows all the points, not only the...
or if we don't select here, Fluent is going to show an average of all the points.
Ok, I think the only thing that we need to check now is the residuals, so let's go to residuals, we recommend keeping as default, and the energy just set as 1 to the power of minus 12, and I think we are ready, so let's go to initialization, let's initialize this, okay, and then let's select 1000 iterations, okay, and let it run.
So for the sake of this video, I'm going to pause the video here, and after the simulation finishes, I'm going to show you how to post-process these results.
So here we are back; I just stopped the simulation at 500 iterations since I'm seeing the receivers are stable, and they start to oscillate around a constant value as you can see here.
But the monitors for temperature that we were monitoring are stable, so you can see here, here, and for the velocity and the volume, the same, and the points as well. So I think it's safe to stop the simulation here. So let's go to post-process some of the values.
So for Theta-JA calculations, the most important value is the maximum temperature, so we can use the monitor and then compute. This is the maximum temperature in the die.
One thing that I would like to show you is we can go to here, click in general, go to units, and then here we can select temperature, and then instead of using Kelvin, we can use Celsius, so just click there, close it, and then let's go back here to max temperature die and then compute it again, and here you are, you have the temperature in the die, the maximum temperature in the die in degrees Celsius.
Ok, let's go to create some contours. So first to create the contours, let's create a plane. So let's go here in surface, plane. Let's create a plane in the YZ direction. So YZ in the middle. Ok.
Okay, let's go to contour, double click, so let's create a temperature contour, hit that plane, so temperature, and let's select it, okay. Here you can see some nice results, so let's go to Blender, no, to the Smudger, and then just add contour lines, so it looks more detailed.
Another thing that we can do is just draw the mesh, so let's go to Mesh, let's select all the walls, thanks for watching! and then instead of temperature density, see, so it's density as you can see here, the density provides you can also put the mesh here, so you can see a nice picture here.
Finally, let's create some vectors to see the velocity. So vectors, velocity, in the plane YC. So here I'm just going to create a contour and explain a better way to create these vectors in Ansys Fluent.
So let's first create a copy of the density contour plot, then velocity, contour, YC, velocity, magnitude, and plane. As we did before, let's draw a mesh. Ok, that's good. Let's change here to outer range. Ok, nice. Now, let's go back to the vectors.
So what I think that you may notice when you try to plot these vectors is that the reason for using a vector is that they show more vectors in the regions that have a finer grid. To create a more uniform vector plot, as you can do in CFD-Post, I'm going to show you how we can create that.
But you have to use the TUI. Let's go to the terminal here, just click enter, then select surface, In surface, you can enter again, and it shows all the different options that are under surface. So we are going to use the option pointArray.
But before we create pointArray, we need to check something that is the maximum dimensions. So I'm going to create another plot just to check that. So let's copy dimensions, and instead of velocity, let's go to mesh, and we will require the white coordinates.
So in here, it's only important the maximum and minimum, so let's copy those values. Now let's check C. Now let's go back to the terminal. Let's select point array.
Just use the default name number of points of each edge, so let's select 30, because we are going to plot in the YZ plane, the X value is 0, the minimum Y value, we just check that, the minimum Z value is again X equal to 0. This is the maximum in Y, and this is the maximum in Z.
Ok, so with that, we create a point array. So, what is the purpose of this? So let's create another vector plot. And instead of using the plane, let's use the point array. So here it is showing like a better, but still, we need to do something.
So let's go to vector points, let's set it in plane, fix the length. This is too large, so let's reduce the size of this. So here, you can see now that it looks better.
I think that's ok, and then ok, it should be a nice plot, so let's go to EZine, let's select vector, no, is that this one, and the velocity is this one, sorry. So you see here, one thing that we can do to... It looks better... So we can go to Color Map Options, just hide this... Okay...
And then we can go to the Simulation... And look at this, so it looks better. So in this way, you can create a plot for the velocity vector, a vector pattern, so you can just play with the vectors and also with this plane to show a nice result. So let's go back here to vector.
Okay, let's use Outrange... that's it. So you can see here how they look nice in a nice picture for the reports. Okay, one last thing that we can do is just to put a contour plot in the surface of the grid chip. So let's create a new contour plot, so contour plot, let's call it... surface...
temperature... surface... contour... So let's click here in temperature... and then we can create all the walls, we can click in all the walls like this, so you can see some results here. Okay, here I'm using the global values.
Okay, another thing that we would like to see is just seeing the contours in the PCB, so let's create a new one. Let's copy.
OK, and here we have to select all the PGAs to PCB, and then we need the PCB surfaces, okay, let's click in control, so that way you can check the control the counter plot or you can use the dot for temperature in the connection section. So this is all I have for today.
Please contact us at https://ozeninc.com/contact for more information.

