Performing a solder fatigue analysis with Sherlock and Abaqus is fun!

Gil Sharon and Nathan Blattau

Download PDF

This is a step by step guide to performing a solder fatigue analysis of BGA balls loaded in shear due to temperature cycling.

1.  Make the BGA model in Sherlock

Import the ODB++ files for the BGA and the board into Sherlock.


The black dots are mount pads. The yellow area is the BGA epoxy overmold material. The blue line is the package outline. There is a die with several passive capacitors encased in the overmold for demonstration purposes.


The mount point height is the solder ball thickness. The number of nodes can be set to 8 for most of the solder balls. It would probably be more beneficial to set the number of nodes to 20-30 for any ball that is intended to be modeled in detail in Abaqus. In this example, one of the corner balls is selected.

The BGA is assembled onto the board. The board outline is adjusted because we don’t need to model the entire board. An area of the board is sufficient for solder fatigue modeling purposes. It is possible to export the whole board in some cases, for example, over-constrained boards or components that are close to mount points.


2.  Export the whole Sherlock model to ABAQUS

At this point, any refining or changes can be done to the model through the normal Abaqus interface. The materials from Sherlock are already assigned to each part. It is possible to modify any of the materials in the “Property” menu.



3.  Create the solder material

File “SAC305.inp” (provided separately) is an Abaqus input file that creates a model with the solder materials SAC305 and SnPB. SAC305.inp can be viewed in Notepad and used as a template for future Abaqus input files. Disclaimer: No effort has been made to ensure the accuracy and reliability of the information within. The Authors and DfR Solutions will not be liable for loss of use, revenue, profit, or any special, incidental, or consequential damages arising out of, connected with, or resulting from, the information. Please use this file as a template only!

4.  Import the Solder material model


Select this file and the material will be created. (Don’t forget to set the file filter to “Abaqus Input File (*.inp,*.pes)”)


Model>Copy objects


From model: SAC305 Select the material To Model: Your model name


After importing the material, you can apply it as usual to a section and create section assignments. You need to set the reference temperature to -273°C.

Model>Edit Attributes>MODEL_NAME


Click the absolute zero temperature option and set to “-273”


5.  Create two temperature cycling steps


Name it “CYCLE_1” and set to “Visco”


The time period should be set to the cycle time is seconds. This example is for a one-hour cycle (3600 seconds).


Repeat to add another cycle called “CYCLE_2”


6.  Create the temperature Cycle


Type: Tabular.

In this example, we are setting the amplitude name to “TCB”.


Define the temperature cycle in seconds (Time/Frequency) and degrees Celsius(Amplitude)


7.Create the boundary conditions on the PCB


Create the boundary conditions in the “Initial Step”


8.  Edit the BGA ball of interest

In this example, the ball of interest is called BGA_AP_035. The blue elements are SAC305 and the Red elements are Copper.


Make two sets for these elements. These are the two critical volumes in this ball because at these two locations, there is the highest probability of crack formation.



In this example, they are called “SED_1” and “SED_2”

9.  Redo the constraints if necessary

After re-meshing the BGA ball you may have to redefine the constraints.

Select Module>Interaction


Click the “Find Contact Pairs” Icon


Select the “Show previously created interaction and ties option”


Delete all the interactions and click “OK”

Reopen the “Find Contact Pairs window”

Click “Find Contact Pairs”


Right click “Type>Edit Cells…”


Click “Tie constraint”, then “OK”


Click “OK”


10.  Create a predefined field in the Initial Step


Category: Other

Type: Temperature


Toggle the selection to “Cells”


Select everything

Set the initial temperature to 25


In CYCLE_1, right click the Predefined field and “Switch Context”


Click the “Predefined Field Manager” icon in the “Load” menu


Click the “Copy” button. Rename to “Predefined Field-2” and set Step to “CYCLE_1”


Highlight the “Predefined Field-2” and “CYCLE_1” cell. Click “Edit”


Change the Magnitude to “1” and the Amplitude to the one created before (From 0 “TCB” in this example).


Click the “Copy” button. Rename to “Predefined Field-3” and set Step to “CYCLE_2”


Highlight the “Predefined Field-3” and “CYCLE_2” cell. Click “Edit”


Verify the Magnitude is set to “1” and the Amplitude is the one created before (From 0 “TCB” in this example).


Click “Dismiss”


11.  Field output request

Right click the “Field Output Requests” and select “Create”

Click Continue


Select “Energy”, Thermal>NT and Volumes/Thickness/Coordinates>EVOL Domain: “Set” and select one of the Element sets created for the detailed solder ball (In this example it is called “SED_1” in part instance BGA_AP_035)


Select Energy, NT, and EVOL


Repeat for the second ELEMENT SET (BGA_AP_035.SED_2)

12.  Create a job and run it


13.  Create a field output from fields

Click on the field output icon



Name the Expression (SED _CALC for this example)

Select the second step (“CYCLE_2” in this example)

Select the last frame (Frame 11 in this example) the “Step Time” should be the Cycle time in seconds. (In this example it is equal to 3600 seconds)

Click on “s2f11_ECDDEN”

The value should appear in the “Expression” box


Next, scroll the Frame to “0-Increment 0: Step Time= 0.000”


Click on the minus “–” Operator or the minus key in your keyboard


Click on “s2f0_ECDDEN” value


The expression should now look like this:


Add a multiply “*” operator and parentheses to the expression. Click on the “s2f0_EVOL” value

The end result should look like this: “(s2f11_ECDDEN - s2f0_ECDDEN) * s2f0_EVOL”. This expression is serving to calculate the following value for each and every element individually

|(𝑆𝐸𝐷 𝑎𝑡 𝑒𝑛𝑑 𝑜𝑓 𝐶𝑦𝑐𝑙𝑒#2) − (𝑆𝐸𝐷 𝑎𝑡 𝑒𝑛𝑑 𝑜𝑓 𝐶𝑦𝑐𝑙𝑒#1)| ∗ 𝐸𝑙𝑒𝑚𝑒𝑛𝑡 𝑉𝑜𝑙𝑢𝑚𝑒

“S2f11” is pointing to the 11th frame of step 2. In this example that is the last step of the cycle. This expression can change depending on the cycle inputs.

Repeat this step to create another variable for the element volume alone.


14.  Export the Result

Click Result>Step/Frame…


Select the session step and session frame


Click Report>Field Output, then select “Variable”


Set up the report and Click “OK”


The report should have a header and underneath the header it will have three columns


This report will be for all active selected elements. It is possible to use the “Display Group” dialogue box to select only a subset of the elements in your model and create multiple reports.

15.  Open the report in Excel


Copy the values from the report to a spreadsheet

Create another column header called “ΔW_Element”

The formula in the cells should be the SED_CALC/(SUM of all EVOL)

In the example above this would be

“Cell D2=C2/sum(B:B)”

“Cell D3=C3/sum(B:B)”

“Cell D4=C4/sum(B:B)”

The resulting value is the Strain range for each element


The sum of all of the “ΔW_Element” for SAC305 can be inserted to the equation on page 28 of:


In the example above this would be “Nf = (0.0019*sum(D:D))^)-1)”.

This equation calculates the number of cycles to failure for BGA solder joints loaded in shear in temperature cycling.

The calculation in the spread sheet gives a number for cycles to failure for the whole element set in the report.


DfR represents that a reasonable effort has been made to ensure the accuracy and reliability of the information within. However, DfR Solutions makes no warranty, both express and implied, concerning the content of this report, including, but not limited to the existence of any latent or patent defects, merchantability, and/or fitness for a particular use. The contents of this report and the observations and conclusions made by DfR are not intended to be comprehensive or exhaustive. DfR has used industry standard practices in preparing this report and has made assumptions it views as reasonable in reaching the conclusions contained herein. Reasonable experts’ observations and conclusions may differ after conducting a similar review and other factors not considered by DfR or present at the time of DfR’s review could impact such experts’ findings. While DfR recognizes that this report will help guide the evaluation of the device or product, DfR will not be liable for loss of use, revenue, profit, or any special, incidental, or consequential damages arising out of, connected with, or resulting from, the information presented within this report