This thorn does processor-local interpolation of N-dimensional data arrays. In general there may be many input arrays (all defined on the same uniform Cartesian grid) all being interpolated to the same set of interpolation points.
This thorn provides processor-local interpolation, using the interpolation operator
"uniform cartesian"
for the Cactus local interpolation API CCTK_InterpLocalUniform(). (Note that the word “cartesian” is in lower case here!) It supports 1, 2, and 3-dimensional interpolation.
See the Cactus Reference Manual for a full description of the CCTK_InterpLocalUniform() API, and some examples of how to use it.
This interpolator was written by Thomas Radke in early 2001 (drawing on older code by Paul Walker). It originally lived in the PUGHInterp thorn, but it turned to have very little to do with PUGH, so was moved here in winter 2001-2002.
From winter 2001-2002 to July 2003 this thorn also contained another interpolator written by Jonathan Thornburg, but in July 2003 that interpolator was moved to AEIThorns/AEILocalInterp/ because it was (is) GPL and Cactus policies are that this arrangement (CactusBase) is reserved for code under the Cactus-flesh license (= GPL except that it’s like LGPL for linking with other thorns).
At the beginning of 2015 the low-level interpolation kernels of this thorn were rewritten in C++ by David Radice.
Internally, this interpolator always does 3-D interpolation, inserting zero coordinates as appropriate for lower dimensionalities. The interpolation is done by successive 1-D interpolations along each axis.1 See the README file in the src/ directory for further details.
The CCTK_InterpLocalUniform() API accepts a table handle as one of its arguments which can be used to pass additional information to the local interpolator via table options.
The only table option supported so far by LocalInterp’s "uniform cartesian" operator is the interpolation order which must be passed as a CCTK_INT value with key "order". Options with keys "N_boundary_points_to_omit", "boundary_off_centering_tolerance", or "boundary_extrapolation_tolerance" (which are usually passed by a global interpolator) are also recognized but silently ignored (a level-4 warning message will be issued in this case).
Implements:
localinterp
Adds header:
LagrangeInterp.hh
This section lists all the variables which are assigned storage by thorn CactusNumerical/LocalInterp2. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.
NONE
CCTK_STARTUP
localinterp2_startup
register localinterp2’s interpolation operators
After: | driver_startup | |
Language: | c | |
Type: | function | |