BGA example home page
Next BGA page
Previous BGA page
Ball Grid Array Example bga30 for the
Surface Evolver
[Click for the bga30.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 crosssection 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 onedimensional. 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.
BGA example home page
Next BGA page
Previous BGA page
Surface Evolver home page
More Surface Evolver examples
Ken Brakke's home page
This page last modified June 2, 2013