next up previous contents
Next: Physical or Conformal Metric Up: 2-D Grid and Interpolation Previous: Resolution of the 2-D   Contents

Interpolation Parameters

This thorn uses the standard Cactus CCTK_InterpLocalUniform() local interpolation system for this interpolation. The interpolation operator is specified with the interpolator_name parameter (this defaults to "uniform cartesian", the interpolation operator provided by thorn CactusBase/LocalInterp).

The interpolation order and/or other parameters can be specified in either of two ways:part334

  • The integer parameter interpolation_order may be used directly to specify the interpolation order.
  • More generally, the string parameter interpolator_pars may be set to any nonempty string (it defaults to the empty string). If this is done, this parameter overrides interpolation_order, and explicitly specifies a parameter string for the interpolator.
Note that the default interpolator parameters specify linear interpolation. This is rather inaccurate, and (due to aliasing effects between the 2-D and 3-D grids) will give a fair bit of noise in the metric components. You may want to specify a higher-order interpolator to reduce this noise.

For example, for one test series where I (JT) needed very accurate initial data (I wanted the initial-data errors to be much less than the errors from 4th order finite differencing on the 3-D Cactus grid), I had to use a resolution of $1000$ in $\eta$ and $2000$ in $\theta$, together with either 4th order Lagrange or 3rd order Hermite interpolation (provided by thorn AEIThorns/AEILocalInterp) to get sufficient accuracy.

One problem with such high resolutions is that IDAxiBrillBH uses an internal multigrid solver which allocates local arrays on the stack, whose size depends on the $\eta$ and $\theta$ resolutions. For high resolutions these arrays may exceed system- and/or shell-imposed limits on the maximum stack size, causing the code to crash (core-dump). In an ideal world, someone would fix the offending code to allocate large arrays on the heap. Unless/until that happens, you can either use lower resolution :(, or try raising the operating-system and/or shell stack-size limits. For example, using tcsh the shell command limit shows the current limits, and limit stacksize unlimited raises your limit to as much as the operating system will allow. Using bash the corresponding commands are ulimit -a and ulimit -s unlimited.


next up previous contents
Next: Physical or Conformal Metric Up: 2-D Grid and Interpolation Previous: Resolution of the 2-D   Contents