AEILocalInterp will produce warning about each point that it is asked to interpolate to that is outside of the domain. This can easily lead to many many essentially identical warnings if eg the center of a spherical surface is set to NaN but a failure of shift tracking.
Instead of producing warnings all the time I would propose the following change in behaviour:
- by default output no more than (say) 10 points, then be silent and report “and NN more warnnings” at the end
- add an option to either make the warning level 0 right away (an error) or once 10 pints have been reached
the limits would apply to each interpolator call (LocalInterpUniform call really so technically per grid component) and thus reset after each call.
Note: AEILocalInterp uses a level 1 warning since it actually does follow documented (but mostly ignored) Cactus design that states that a level 1 warning is almost certainly going to lead to incorrect result but that the code can continue (http://einsteintoolkit.org/referencemanual/ReferenceManual.html#x1-235000A2). So it is indeed using the warning level as documented, just not like everyone else does.
#define CCTK_WARN_ABORT 0 /* abort the Cactus run */
#define CCTK_WARN_ALERT 1 /* the results of this run will probably */
/* be wrong, but this isn’t quite certain, */
/* so we’re not going to abort the run */
#define CCTK_WARN_COMPLAIN 2 /* the user should know about this, but */
/* the results of this run are probably ok */
#define CCTK_WARN_PICKY 3 /* this is for small problems that can */
/* probably be ignored, but that careful */
/* people may want to know about */
#define CCTK_WARN_DEBUG 4 /* these messages are probably useful */
/* only for debugging purposes */