#1702: AEILocalInterp and LocalInterp should output scheduled function name in error messages ----------------------------------------------------------------+----------- Reporter: rhaas | Owner: Type: enhancement | Status: new Priority: minor | Milestone: Component: EinsteinToolkit thorn | Version: development version Keywords: AEILocalInterl LocalInterp CarpetInterp PUGHInterp | ----------------------------------------------------------------+----------- the local interpolation routines abort if an interpolation cannot be performed since the interpolation coordinates lie outside of the patch of data they are given eg. {{{ WARNING level 1 in thorn AEILocalInterp processor 0 (line 1109 of arrangements/AEIThorns/AEILocalInterp/src/Lagrange-tensor- product/../template.c): -> CCTK_InterpLocalUniform(): interpolation point is either outside the grid, or inside but too close to the grid boundary! (this may be caused by a global interpolation with driver::ghost_size too small) 0-origin interpolation point number pt=54181 of N_interp_points=54182 interpolation point (x,y,z)=(45.3992,15.5856,2.93915e-15) grid x_min(delta_x)x_max = -0.198(0.066)1.584 grid y_min(delta_y)y_max = -0.198(0.066)1.518 grid z_min(delta_z)z_max = -0.198(0.066)1.452 }}} However, if there are mutliple thorns that may call the interpolator it is no always clear which caller was active when the error occured (eg it may be the apparent horizon finder or the puncture tracker).
It would be nice if the interpolators were to report the currently executing scheduled routine's name via CCTK_ScheduleQueryCurrentFunction. That routine currently takes cctkGH as an argument but does not actually use it. Thus, given the possible benefit, it would be acceptable I think to call the routine with a NULL pointer (and a comment that this is strictly not valid).
An alternative, which may be nicer, would be to have the driver add an entry "cctkGH" to the table passed to {{{CCTK_InterpLocalUniform}}} in its {{{param_table_handle}}}. The local interpolator can then savely use this pointer if provided and (with an appropriate loud warning) fall back to passing NULL if it is not found (and stop the fallback once the flesh routine actually uses cctkGH).