Because the time steps are of non-zero size, it will never be the case
that an facet may be introduced precisely when it first becomes stable,
but in fact the system will be in an unstable state. Thus the
algorithm for calculating stepping is the same both at ``topological''
times and at ``regular'' times.
The algorithm to perform the stepping is based upon the fact that the
vector must always remain within certain bounds for each facet
(Section 3.2).
Assuming the above computation has been performed to compute the starting
chemical potential
along each facet for a particular
configuration of
facets, it is easy to compute for each facet whether the condition on
the
vector holds. If not, then that edge must be stepped.
There are always one or two zero's of
along such an edge, and steps are introduced at those zeros
for which the
vector exceeds its bounds. The sense of the
introduced step is taken in the opposite direction from the flux
across the step: if
is decreasing from right to left across
the step, then the step will have the next normal direction in
from the original facet counting counterclockwise around
.
Once all edges have been checked for
, and all steps have been
introduced, the chemical potential is recomputed using the first
method above, but keeping
at each of the new steps and
allowing the flux to be discontinuous across the step. A discontinuous
flux across a zero-length step implies that it should move at infinite
velocity, and so each such step is moved so as to iteratively find the point at
which the flux is continuous across the step. Finally, each of the
non-step edges is moved according to the finally calculated chemical
potential, which will expand each of the steps so that they will not
be of zero length.