[Click for the bga-11.fe datafile in a second window.]
This model makes the upper pad tiltable and movable in response to
the weight of a chip floating on the upper pad.
Notable features:
The datafile is basically bga-10.fe, with
"tilt", "x_offset", and "y_offset" as optimizing parameters.
The "tilt" parameter is given a "scale" attribute of 10000
in the datafile. The "scale" is a factor that multiplies the gradient
of an optimizing parameter to give its velocity of change. There can
be a big mismatch between the natural rate of change of optimizing
parameters and vertices, and the "scale" attribute can help match
them. Without a big "scale", the tilt would change extremely slowly,
as the small motions of the vertices completely dominate the overall
"scale factor" (which is reported by the "g" command).
The weight of the top chip is implemented by creating a center of
mass vertex (vertex 14), using boundary 2 to define its position,
and giving it a gravitational potential energy in the "pad_energy"
named quantity.
Note that the "hessian" command reports that the Hessian is not
positive definite, that there is one negative eigenvalue. This means
the equilibrium point is a saddle point. If tilt in both directions
had been implemented, there would have been two negative eigenvalues.
Ordinary iteration can
be very slow to move off a saddle point, being gradient descent,
especially when there is symmetry. Hence there is a command "saddle"
that uses the most negative eigenvalue as the
direction of motion, and seeks in that direction for minimum energy.
Do "saddle" after "gogo" to see the effect. "Saddle" reports the
stepsize, which is the multiple of the eigenvector that it found
gave the most energy decrease.
If there is no negative eigenvalue, "saddle" does nothing.
If the volume constraint is not exactly satisfied, energy increase
due to satisfying the constraint may mask the energy decrease due
to the eigenvector, and "saddle" will report a zero motion.
This is why there are three uses of "hessian" in gogo, since two
left the volume constraint not quite exact enough.
If you do "hessian" when the chip is slightly off-center, then
the chip will move back towards the central equilibrium. This
emphasizes the point that "hessian" is seeking equilibrium
configurations, not necessarily energy minima.
A point to ponder: with positive gravity, are there any stable
configurations with zero tilt, or will the upper chip always slide
off sideways?