Next: CCTK_InterpGridArrays() Return Codes
Up: PUGHInterp's Implementation of CCTK_InterpGridArrays()
Previous: Implementation Notes
Contents
Passing Additional Information via the Parameter Table
One of the function arguments to CCTK_InterpGridArrays() is an integer handle
which refers to a key/value options table. Such a table can be used to pass
additional information (such as the interpolation order) to the interpolation
routines (i.e. to both CCTK_InterpGridArrays() and the local interpolator as invoked
via CCTK_InterpLocalUniform()). The table may also be modified by these
routines, eg. to exchange internal information between the local and global
interpolator, and/or to pass back arbitrary information to the user.
The only table option currently evaluated by PUGHInterp's implementation
of CCTK_InterpGridArrays() is:
CCTK_INT input_array_time_levels[N_input_arrays];
which lets you choose the timelevels for the individual grid arrays to
interpolate (in the range
).
If no such table option is given, then the current timelevel (0)
will be taken as the default.
The following table options are meant for the user to specify how the
local interpolator should deal with interpolation points near grid boundaries:
CCTK_INT N_boundary_points_to_omit[2 * N_dims];
CCTK_REAL boundary_off_centering_tolerance[2 * N_dims];
CCTK_REAL boundary_extrapolation_tolerance[2 * N_dims];
In the multi-processor case, CCTK_InterpGridArrays() will modify these arrays in
a user-supplied options table in order to specify the handling of interpolation
points near interprocessor boundaries (ghostzones) for the local interpolator;
corresponding elements in the options arrays are set to zero for all ghostzone
faces, i.e. no points should be omitted, and no off-centering and extrapolation
is allowed at those boundaries. Array elements for physical grid boundaries are
left unchanged by CCTK_InterpGridArrays().
If any of the above three boundary handling table options is missing in the
user-supplied table, CCTK_InterpGridArrays() will create and add it to the table
with appropriate defaults. For the default values, as well as a comprehensive
discussion of grid boundary handling options, please refer to documentation
of the thorn(s) providing local interpolator(s) (eg. thorn LocalInterp in
the Cactus ThornGuide).
At present, the table option boundary_extrapolation_tolerance is not
implemented. Instead, if any point cannot be mapped onto a processor
(i.e. the point is outside the global grid), a level-1 warning is printed to
stdout by default, and the error code CCTK_ERROR_INTERP_POINT_OUTSIDE is
returned. The warning will not be printed if the parameter table contains an
entry (of any type) with the key "suppress_warnings" .
The local interpolation status will be stored in the user-supplied parameter
table (if given) as an integer scalar value with the option key
"local_interpolator_status" (see section I2.3.3 for details).
The table options
CCTK_POINTER per_point_status;
CCTK_INT error_point_status;
are used internally by CCTK_InterpGridArrays() to pass information
about per-point status codes between the global and the local interpolator
(again see section I2.3.3 for details).
Next: CCTK_InterpGridArrays() Return Codes
Up: PUGHInterp's Implementation of CCTK_InterpGridArrays()
Previous: Implementation Notes
Contents
|