Thorn Guide for the LocalInterp Thorn

Thomas Radke

Date

Abstract

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.

1 Introduction

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.

1.1 History

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).

Because CVS can’t delete directories, this thorn still contains a lot of empty-except-for-CVS-directories directory trees left over from Jonathan Thornburg’s interpolator. You can/should ignore these.

2 Implementation

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