Graphics Reference
In-Depth Information
step overshoots the data from the previous time step, the solution might
grow exponentially.
A more complicated analysis shows that this cannot , in fact, happen
for the simple one-dimensional advection problem: it's just as stable as
linear interpolation. However, this theoretical analysis doesn't carry over
to more general scenarios—it may well still be fully stable, but currently we
don't have a proof. Therefore it may be prudent to at least have an option
in a simulator to turn on a safety check, a means to detect and correct
the under- or overshoot problem. It should be emphasized that directly
preventing under- and overshoot this way will cause additional numerical
dissipation in the vicinity of local minima and maxima where it is most
obvious and least desired: you might not want to use this safety option
unless a simulation blows up without it.
Fedkiw et al. [Fedkiw et al. 01] suggest clamping the Catmull-Rom
slopes (along each dimension) to zero where they disagree with the sign of
the one-sided finite differences: this flattens out the interpolant to prevent
under- or overshoot everywhere. However, this can be excessive: evaluating
the unmodified Catmull-Rom interpolant at the point we care about may
be just fine (lie within the local min and max of the data) even if at other
points it under- or overshoots. Generally speaking then, it's preferable to
just clamp the interpolated value to lie within the local bounds.
Search WWH ::




Custom Search