![]() ![]() ![]() ![]() Next: PUGHInterp's Implementation of CCTK_InterpGridArrays() Up: PUGHInterp Previous: Abstract Contents IntroductionThorn PUGHInterp provides an implementation of the Cactus interpolation API specification for the interpolation of CCTK grid arrays at arbitrary points, CCTK_InterpGridArrays().This function interpolates a list of CCTK grid arrays (in a multiprocessor run these are generally distributed over processors) on a list of interpolation points. The grid topology and coordinates are implicitly specified via a Cactus coordinate system. The interpolation points may be anywhere in the global Cactus grid. In a multiprocessor run they may vary from processor to processor; each processor will get whatever interpolated data it asks for. The routine CCTK_InterpGridArrays() does not do the actual interpolation itself but rather takes care of whatever interprocessor communication may be necessary, and - for each processor's local patch of the domain-decomposed grid arrays - calls CCTK_InterpLocalUniform() to invoke an external local interpolation operator (as identified by an interpolation handle). It is advantageous to interpolate a list of grid arrays at once (for the same list of interpolation points) rather than calling CCTK_InterpGridArrays() several times with a single grid array. This way note only can PUGHInterp's implementation of CCTK_InterpGridArrays() aggregate communications for multiple grid arrays into one (resulting in less communications overhead) but also CCTK_InterpLocalUniform() may compute interpolation coefficients once and reuse them for all grid arrays.
Please refer to the Cactus UsersGuide for a complete function description
of CCTK_InterpGridArrays() and CCTK_InterpLocalUniform().
![]() ![]() ![]() ![]() Next: PUGHInterp's Implementation of CCTK_InterpGridArrays() Up: PUGHInterp Previous: Abstract Contents |