- CCTK_NumCoordSystems
Returns the number of coordinate systems registered with the flesh. For example,
int num;
num = CCTK_NumCoordSystems();
- CCTK_CoordSystemName
Provides the name of a registered coordinate system, given the integer
handle (or index) for the system in the flesh's coordinate data base.
Note that the handle ranges between zero and the number of coordinate systems minus one:
31#31.
It is important to remember that the handle given to a coordinate system
depends on the order in which systems are registered, and can be different
from one simulation to the next.
For example, to print the names of all registered coordinate systems:
for (i=0; i<CCTK_NumCoordSystems(); i++)
printf("%s ",CCTK_CoordSystemNName(i));
- CCTK_CoordSystemDim
Provides the dimension of a coordinate system. For example, if
the cart3d system was registered as having 3 dimensions, the
variable dim below will now be set to 3,
int dim;
dim = CCTK_CoordSystemDim("cart3d");
- CCTK_CoordSystemHandle
Provides the integer handle for a given coordinate system name. The handle describes
the index for the coordinate system in the flesh coordinate database, and its value
will range between zero and the number of registered systems minus one. For example,
the handle for the cart3d coordinate system can be found using
int handle;
handle = CCTK_CoordSystemHandle("cart3d");
- CCTK_CoordSystemName
The inverse to the previous function call. This provides the name for a given coordinate system handle.
For example, to find the first coordinate system in the flesh database
int handle = 0;
const char *name = CCTK_CoordSystemName(handle);
- CCTK_CoordIndex
Provides the grid variable index for a given coordinate. Note that it is
not necessary for a registered coordinate to have an associated grid variable,
and if no such grid variable is found, a negative integer will be returned.
For example, to find the grid variable index associated with the y
coordinate of the cart3d system, either of the two following
calls could be made
int index;
index = CCTK_CoordIndex(2,NULL,"cart3d");
int index;
index = CCTK_CoordIndex(-1,"y","cart3d");
- CCTK_CoordDir
Provides the direction for a given coordinate. Directions are integers
ranging from one to the number of dimensions for the coordinate system.
For example, to return the direction of the y coordinate in
the cart3d system
int dir;
dir = CCTK_CoordDir("y","cart3d");
The return of a negative integer indicates that the coordinate direction
could not be found.
- CCTK_CoordRange
Provides the global range (that is, the minimum and maximum values across
the complete grid) of a coordinate on a given grid hierarchy. The minimum and maximum values must be of type CCTK_REAL. The
coordinate can be specified either by name or by its direction. Note that
this call takes the addresses of the minimum and maximum values.
For example, the range of the y coordinate of the cart3d
coordinate system can be found using
CCTK_REAL lower, upper;
int ierr;
ierr = CCTK_CoordRange(cctkGH, &lower, &upper, -1, "y", "cart3d");
or alternatively, using the direction
CCTK_REAL lower, upper;
int ierr;
ierr = CCTK_CoordRange(cctkGH, &lower, &upper, 2, NULL, "cart3d");
- CCTK_CoordLocalRange
Provides the local range of a coordinate on a processor for a given
grid hierarchy. WARNING: This utility only works for regular
cartesian grids. For example, the local processor range of the
y coordinate of the cart3d coordinate system can be found using
CCTK_REAL lower, upper;
int ierr;
ierr = CCTK_CoordLocalRange(cctkGH, &lower, &upper, -1, "y", "cart3d");
or alternatively, using the direction
CCTK_REAL lower, upper;
int ierr;
ierr = CCTK_CoordLocalRange(cctkGH, &lower, &upper, 2, NULL, "cart3d");
- CCTK_CoordRangePhysIndex
For a given coordinate, provides the indices describing the physical
range of the coordinate. A negative return value signifies that no such range
was registered for the coordinate.
This index range provides a mechanism for describing
grid points which should not be considered part of the simulation results (for example,
grid points used for different boundary conditions). The physical range of the
y coordinate of the cart3d system can be found using
int ilower, iupper;
int ierr;
ierr = CCTK_CoordRangePhysIndex(cctkGH,&ilower,&iupper, -1, "y", "cart3d");
or using the coordinate direction
int ilower, iupper;
int ierr;
ierr = CCTK_CoordRangePhysIndex(cctkGH,&ilower,&iupper, 2, NULL, "cart3d");
- CCTK_CoordSystemImplementation
This call returns the name of the implementation which registered a coordinate system.
Note that there is no guarantee that a thorn, which registered a coordinate system, is
the same thorn which registers each of the coordinates in the system, although this
should usually be the case.