00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef INC_FINLEY_INDEXLIST
00022 #define INC_FINLEY_INDEXLIST
00023
00024 #include "Finley.h"
00025 #include "ElementFile.h"
00026 #include "Mesh.h"
00027
00028
00029
00030 #define INDEXLIST_LENGTH 85
00031
00032 typedef struct Finley_IndexList {
00033 index_t index[INDEXLIST_LENGTH];
00034 dim_t n;
00035 struct Finley_IndexList *extension;
00036 } Finley_IndexList;
00037 void Finley_IndexList_insertElements(Finley_IndexList* index_list, Finley_ElementFile* elements,
00038 bool_t reduce_row_order, index_t* row_map,
00039 bool_t reduce_col_order, index_t* col_map);
00040 void Finley_IndexList_insertIndex(Finley_IndexList*, index_t);
00041 void Finley_IndexList_toArray(Finley_IndexList*, index_t*, index_t, index_t, index_t);
00042 dim_t Finley_IndexList_count(Finley_IndexList*, index_t, index_t);
00043 void Finley_IndexList_free(Finley_IndexList*);
00044 Paso_Pattern* Finley_IndexList_createPattern(dim_t n0, dim_t n,Finley_IndexList* index_list,index_t range_min,index_t range_max, index_t index_offset);
00045 void Finley_IndexList_insertElementsWithRowRange(Finley_IndexList* index_list, index_t firstRow, index_t lastRow,
00046 Finley_ElementFile* elements, index_t* row_map, index_t* col_map);
00047 void Finley_IndexList_insertElementsWithRowRangeNoMainDiagonal(Finley_IndexList* index_list, index_t firstRow, index_t lastRow,
00048 Finley_ElementFile* elements, index_t* row_map, index_t* col_map);
00049
00050
00051
00052
00053 #endif