next up previous contents
Next: Data Filenames Up: IOUtil Previous: I/O Modes   Contents

Output of Hyperslab Data

While some I/O methods (IOHDF5, IOFlexIO) can dump the full contents of a multidimensional CCTK variable, others such as IOASCII_1D and IOASCII_2D will output only a subset of the data (e.g. 1D lines or 2D planes of 3D grid functions). Such a subset (called a hyperslab) is generally defined as an orthogonal region into the multidimensional dataset, with a start point and a length in any direction, and an optional downsampling factor.

Thorn IOUtil defines a set of hyperslab parameters for all I/O methods which determine the default positions of 1D line or 2D slice output along the axes. I/O thorns can also define their own hyperslab parameters which then will overwrite the defaults provided by IOUtil.

  • IO::out_[xyz]line_[xyz]
    specifies the slice center for 1D x,y,z-line output by coordinate values of the underlying physical grid
  • IO::out_[xyz]line_[xyz]i
    specifies the slice center of 1D x,y,z-line output by index points of the underlying computational grid
  • IO::out_[{xy}{xz}{yz}]plane_[xyz]
    specifies the slice center of 2D xy,xz,yz-plane output by coordinate values of the underlying physical grid
  • IO::out_[{xy}{xz}{yz}]plane_[xyz]i
    specifies the slice center of 2D xy,xz,yz-plane output by index points of the underlying computational grid
  • IO::out_downsample_[xyz]
    specifies the downsampling factor for output in every direction

Setting the index points for the slice centers in a parameter file has precedence over setting their location by coordinate values. If nothing was specified the default values of IO::out_[xyz]line_[xyz] and IO::out_[{xy}{xz}{yz}]plane_[xyz] will be used. These are set to be all zeros which causes the output to go through the coordinate system's origin or the closest grid point to this (see figure A6.1 for an example).

Figure A6.1: Default 1D x,y,z-line output for a 3D grid in box mode (left) and xy-bitant mode (right)
[width=6cm]/home/cactus_web/CheckOut/CactusStable/arrangements/CactusBase/IOUtil/doc/1Dlines_in_box [width=6cm]/home/cactus_web/CheckOut/CactusStable/arrangements/CactusBase/IOUtil/doc/1Dlines_in_xyBitant

If the coordinate values specified in IO::out_[xyz]line_[xyz] or IO::out_[{xy}{xz}{yz}]plane_[xyz] lie outside the physical grid, the slice center simply reverts to the center of the box in that direction. This fallback method method can be changed to using 0-slices instead by setting the corresponding IO::out_[xyz]line_[xyz]i and IO::out_[{xy}{xz}{yz}]plane_[xyz]i parameter(s) to the value -2.

Although they are not hyperslabs by the above definition, output of 1D diagonals for 3D grid arrays is also supported by I/O method IOASCII_1D but has the restriction that the line will always start in the bottom-left corner of the computational grid and steadily rise by one grid point in every direction (see figure A6.2 for an example).

Figure A6.2: 1D diagonal output for a 3D cubical (left) and non-cubical (right) computational grid
[width=6cm]/home/cactus_web/CheckOut/CactusStable/arrangements/CactusBase/IOUtil/doc/diagonal_in_cubic [width=6cm]/home/cactus_web/CheckOut/CactusStable/arrangements/CactusBase/IOUtil/doc/diagonal_in_noncubic


next up previous contents
Next: Data Filenames Up: IOUtil Previous: I/O Modes   Contents