/[escript]/trunk/finley/src/IndexList.h
ViewVC logotype

Diff of /trunk/finley/src/IndexList.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4443 by caltinay, Fri Jun 7 02:23:49 2013 UTC revision 4444 by caltinay, Mon Jun 10 07:55:05 2013 UTC
# Line 14  Line 14 
14  *****************************************************************************/  *****************************************************************************/
15    
16    
17  /************************************************************************************/  /****************************************************************************
18    
19  /* Finley: Converting an element list into a matrix shape     */    Finley: Converting an element list into a matrix shape
20    
21  /************************************************************************************/  *****************************************************************************/
22    
23  #ifndef INC_FINLEY_INDEXLIST  #ifndef __FINLEY_INDEXLIST_H__
24  #define INC_FINLEY_INDEXLIST  #define __FINLEY_INDEXLIST_H__
25    
26  #include "Finley.h"  #include "Finley.h"
 #include "ElementFile.h"  
 #include "Mesh.h"  
27    
28  /* structure to build system matrix */  #include <list>
29    
30    struct Paso_Pattern;
31    
32    // helpers to build system matrix
33    
34    namespace finley {
35    
36    class ElementFile;
37    
38    typedef std::list<int> IndexList;
39    
40    void IndexList_insertIndex(IndexList&, int);
41    void IndexList_toArray(const IndexList&, int*, int, int, int);
42    int IndexList_count(const IndexList&,  int, int);
43    
44    Paso_Pattern* IndexList_createPattern(int n0, int n,
45            const IndexList* index_list, int range_min, int range_max,
46            int index_offset);
47    
48  #define INDEXLIST_LENGTH 85  void IndexList_insertElements(IndexList* index_list, ElementFile* elements,
49                                  bool reduce_row_order, int* row_map,
50                                  bool reduce_col_order, int* col_map);
51    
52  typedef struct Finley_IndexList {  void IndexList_insertElementsWithRowRangeNoMainDiagonal(IndexList* index_list,
53    int index[INDEXLIST_LENGTH];          int firstRow, int lastRow, ElementFile* elements, int* row_map,
54    int n;          int* col_map);
   struct Finley_IndexList *extension;  
 } Finley_IndexList;  
   
 void Finley_IndexList_insertElements(Finley_IndexList* index_list, ElementFile* elements,  
                                      bool_t reduce_row_order, int* row_map,  
                                      bool_t reduce_col_order, int* col_map);  
 void Finley_IndexList_insertIndex(Finley_IndexList*, int);  
 void Finley_IndexList_toArray(Finley_IndexList*, int*, int, int, int);  
 dim_t Finley_IndexList_count(Finley_IndexList*,  int, int);  
 void Finley_IndexList_free(Finley_IndexList*);  
 Paso_Pattern* Finley_IndexList_createPattern(int n0, int n, Finley_IndexList* index_list, int range_min, int range_max, int index_offset);  
 void Finley_IndexList_insertElementsWithRowRange(Finley_IndexList* index_list, int firstRow, int lastRow,  
                                                  ElementFile* elements, int* row_map, int* col_map);  
 void Finley_IndexList_insertElementsWithRowRangeNoMainDiagonal(Finley_IndexList* index_list, int firstRow, int lastRow,  
                                                                ElementFile* elements, int* row_map, int* col_map);  
55    
56    } // namespace finley
57    
58  #endif /* #ifndef INC_FINLEY_INDEXLIST */  #endif // __FINLEY_INDEXLIST_H__
59    

Legend:
Removed from v.4443  
changed lines
  Added in v.4444

  ViewVC Help
Powered by ViewVC 1.1.26