# BGA Example bga-6 for the Surface Evolver

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

This model shows how to prevent too large a blob of solder from penetrating the upper and lower boards.

#### Notable features:

• The vertical load has been increased to 500 to give a squashed BGA.
• After running "gogo", note how the solder bulges above and below the pads.
• Note that at the end of "gogo", there are warnings that the hessian is not positive definite. This means that this shape is a saddle point in energy. To see the shape move off the saddle point, run the script "bulge", which uses the "saddle" command (a modification of the hessian command) to pick a direction in which the energy decreases (eigenvector for a negative eigenvalue), and moves in that direction. The result is a bulge of solder on one side.
• "hessian" was used in this "gogo" instead of "hessian_seek" since we are trying to converge to a saddle point, not the lowest energy.
• To prevent the bulge from getting too big, we can confine it between the two planes of the pads. The top and bottom barriers are implemented as one-sided constraints, constraints 4 and 5. The "confine" script will put all the vertices, edges, and faces of the solder surface are put on those constraints (except those already on the pad constraints). The edges and faces are also put on those constraints, since that's how vertices made during refinement inherit the constraints.
• Run "gogo", then "confine", and then "bulge", and you will see the joint does not catastrophically collapse.
• Vertices on a one-sided constraint that are exactly on the constraint are said to "hit" the constraint. Vertices that hit a one-sided constraint are sometimes awkward, bouncing on and off. So there are two further constraints, 6 and 7, that are exact constraints for the lower and upper barrier. There is a command "nail" to transfer vertices that hit the one-sided constraints to the exact constraints, and a command "unnail" to transfer them back to one-sided. This can be useful when one-sided constraints can confuse things, such as in force calculation scripts.