Tolerances: tradeoff

From BanghamLab
Revision as of 11:44, 6 December 2012 by AndrewBangham (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Return to GFtbox hints and tips

Choosing tolerances that are small enough to be accurate and yet not take too long to compute

There is a tradeoff between speed and the accuracy with which the equation solver can solve the equations. This is feature of all numerical modelling. The solver attempts to reduce errors to zero. It is extremely unlikely to succeed so there are two mechanisms to truncate calculations after a reasonable time. The number of iterations and a maximum error that is deamed satisfactory, i.e. the tolerance. There are two tolerances one for diffusion (which usually does not need to be changed) and the second for the mesh. A large tolerance means that the mesh might not have deformed as much as it should. A tight tolerance means that it takes longer (but sometimes it actually takes less time as fine detail can be resolved so starting the next iteration from a better place). This is an example of subdividing a rectangular mesh in the region in which curves will develop.

GFtbox interfaceTolerance (Tol Elast) is 0.1. Is the 'S' shape correct?

Simple mesh of 382 elements equally spaced vertices. Superimposed are the polarity arrows (pointing bottom left) and purple and blue factors that control local growth rates.
GFtbox interfaceTolerance (Tol Elast) is 0.001. Is the 'S' shape correct? It is different so we reduce it again... GFtbox interfaceTolerance (Tol Elast) is 0.00001. This shape is very similar to the previous one so we might conclude that it is not necessary to make the tolerance this tight, a tolerance of 0.001 is OK.

It still might not be correct because the mesh itself could be too coarse, see mesh tradeoffs
It still might not be correct because the timesteps might be too large, see time tradeoffs