Next: Reduction Operators
Up: Cactus Application Interfaces
Previous: I/O
Contents
Interpolation Operators
The flesh does not provide interpolation routines by itself. Instead,
it offers a general function API to thorns, for the registration and
invocation of interpolation operators.
There are two different flesh APIs for interpolation, depending
on whether the data arrays are Cactus grid arrays or processor-local,
programming language built-in arrays, and on what assumptions
are made about the topology and spacing of the grid (these descriptions
are for 3D, but the generalisations to other numbers of dimensions
should be obvious):
- CCTK_InterpGridArrays()
- Interpolates Cactus grid arrays, with the topology of the
grid implicitly specified by a Cactus coordinate system.
This API doesn't provide an interpolation functionality itself,
it only takes care of the interprocessor communication
necessary when interpolating distributed grid arrays, and invokes
the CCTK_InterpLocalUniform() API on the each processor's
local patch of the data.
- CCTK_InterpLocalUniform()
- Interpolates processor-local arrays with uniformly
spaced data points, where the coordinates 1#1
are related to the integer array subscripts
ijk by
linear functions
32#32
33#33
34#34
where the caller specifies the origin and delta
values.
The flesh provides an API to register local interpolation operators:
- CCTK_InterpRegisterOpLocalUniform()
- Register a
CCTK_InterpLocalUniform() interpolation operator
This is described in detail in the Reference Manual.
Each local interpolation operator is registered under a character string name;
at registration, the name is mapped to a unique integer handle, which
may be used to refer to the operator. CCTK_InterpHandle()
is used to get the handle corresponding to a given character string
name.
Next: Reduction Operators
Up: Cactus Application Interfaces
Previous: I/O
Contents
|