# Ball Grid Array Example bga-30 for the Surface Evolver

[Click for the bga-30.fe datafile in a second window.]

This model takes advantage of radial symmetry to greatly cut down the computational expense of the BGA joint. Instead of a full surface, only one radial cross-section is modeled. Of course, this type of model is no good if you want to find lateral restoring forces, but it is a tremendous time and memory saver when it does work.
 Radial section of BGA joint. The central axis is at the left. Starting geometry, with labels.

#### Notable features:

• This datafile uses the Evolver's "string" model to declare that the surface is actually one-dimensional. The default energy in this case is edge length, but we don't want to do that, so all the edges are declared to have tension 0 in the "read" section.
• The space dimension is declared to be two, since that's all we need. Leaving it at the default of three wouldn't hurt, except that we would have to give each vertex a third coordinate.
• The scale_limit is still set at 1/S_TENSION, although good scale factor behavior is different in the string model, being proportional to element size (i.e. cut in half each refinement). The scale_limit is most important at the first iteration though, so things work out ok.
• All the calculated quantities (surface area, volume, gravitational energy, center of mass) have to be calculated by explicit integrals in various named quantities. A knowledge of vector calculus is useful here, or one can construct workable integrals by slicing methods. I have a certain fondness for slicing, and I have chosen to slice y and integrate along the curved edge.
• The center of mass quantity integrand has vol.target in the denominator instead of vol.value since vol.value is zero until the first set of quantity evaluations. Quantities are evaluated in parallel over the elements, so listing the quantity last does not solve the problem.
• The command "do_zforce" is defined to calculate vertical force on the upper pad by central differences. It does linear perturbations of the height of the upper pad, with linear interpolation between the pads, uses the pressure to calculate the energy compensation for the change in volume, and takes the difference quotient of the energies to find the force.