Next: Using Coordinates
Up: Coordinates
Previous: Coordinates
Contents
The APIs described in this section are deprecated, and will
probably be phased out fairly soon.
New code should use the APIs provided by the CoordBase thorn
instead (this lives in the CactusBase arrangement).
Coordinate systems and their properties can be registered at any time with the flesh.
The registration utilities for thorns providing coordinates are:
- CCTK_CoordRegisterSystem
Assigns a coordinate system with a chosen name and dimension. For example,
a 3-dimensional Cartesian coordinate system could be registered with the
name cart3d using the call from C
int ierr;
int dim=3;
ierr = CCTK_CoordRegisterSystem(dim,"cart3d");
- CCTK_CoordRegisterData
Defines a coordinate in a given coordinate system, with a given
direction and name, and optionally associates it to a grid variable.
The directions of the coordinates range from 1 to the dimension of the
coordinate system. For example, to register the grid variable grid::y3d
to have the coordinate name y in the cart3d system
int ierr;
int dir=2;
ierr = CCTK_CoordRegisterData(dir,"grid::y3d","y","cart3d");
- CCTK_CoordRegisterRange
Assigns the global computational maximum and minimum for a coordinate
on a grid hierarchy, that is in a cctkGH. At this time the
maximum and minimum values have to be of type CCTK_REAL. For
example, if the y coordinate for the cart3d system ranges
between zero and one
CCTK_REAL lower=0;
CCTK_REAL upper=1;
int ierr;
ierr = CCTK_CoordRegisterRange(cctkGH, lower, upper, -1, "y", "cart3d");
Note that the API allows either the coordinate name or the direction to
be used, so that the following is also valid
CCTK_REAL lower=0;
CCTK_REAL upper=1;
int ierr;
ierr = CCTK_CoordRegisterRange(cctkGH, lower, upper, 2, NULL, "cart3d");
- CCTK_CoordRegisterPhysIndex
Implementing such things as symmetry properties for a grid leads to
the need to know the details of the physical section of a grid.
Such information is typically needed by I/O thorns. The following call
illustrates how to register the
indices 3 and 25 as supplying the physical range of the y
coordinate in the cart3d system
int loweri=3;
int upperi=25;
int ierr;
ierr = CCTK_CoordRegisterPhysIndex(cctkGH, loweri, upperi, -1, "y", "cart3d");
Next: Using Coordinates
Up: Coordinates
Previous: Coordinates
Contents
|