The Data_Index Class is used to describe a data index in the CÆSAR Code Package. A Data_Index is part of the overall data structure strategy in CÆSAR, which is made up of the following classes: Base_Structure, Data_Index, Assembled_Vector, Distributed_Vector, Overlapped_Vector, and Collected_Array. A description of the overall data structure strategy can be found in the Data_Structures Module.
The form of a Data_Index object is given by:
Array ( One_Axis [, Many_Axis] )or
Array ( One_Axis [, Many_Axis_ragged_right] ) --> not implementedwhere One_Axis refers to the axis which is spread across the processors.
Data_Index public procedures:
|Initialize||Initializes a Data_Index object.|
|Finalize||Finalizes a Data_Index object.|
|Valid_State||Returns false iff a Data_Index object is in an invalid state.|
|Initialized||Returns true iff a Data_Index object has been initialized.|
|Get_Values||Gets the values from a Data_Index object and returns them in a bare naked vector (also has an assignment interface).|
|Initialize_Shell_Partition||Sets up the Base_Structure and Data_Index objects for a poor partitioning, used for testing.|
|Output||Writes out the Data_Index object.|
Data_Index public defined type:
|Dimensionality||The number of dimensions that the index has. ``Ragged_Right'' indices are signified by a Dimensionality of -1, and are equivalent to a Dimensionality of 2 where the number of columns per row varies. (Ragged_Right is not yet implemented.)|
|Index1, Index2||The index values, which are modified: 1. to reflect off-PE locations with a negative number corresponding to the location in Off_PE_Index of the original value; and 2. to have a local numbering instead of a global numbering.|
|Many_Structure||Basic data structure corresponding to the columns in the index array. The index array can be thought of as a ``Many of One'' relationship (e.g. Many Faces of Each Cell, or Faces_of_Cells), with each row of the array signifying all the ``Many'' items that correspond to that ``One'' row.|
|NOff_PE||The number of Off-PE values.|
|Off_PE_Index||The values of the index which are not local to this PE.|
|Off_PE_Trace||The trace for the communication associated with the Off_PE_Index.|
|One_Structure||Basic data structure corresponding to the rows in the index array. The index array can be thought of as a ``Many of One'' relationship (e.g. Many Faces of Each Cell, or Faces_of_Cells), with each row of the array signifying all the ``Many'' items that correspond to that ``One'' row.|
|Trace||The trace for the communication associated with the index.|
The Data_Index Class code listing contains additional documentation. The Data_Index Class also contains a Unit Test Program.