~vcs-imports/escript-finley/trunk

« back to all changes in this revision

Viewing changes to dudley/src/IndexList.h

  • Committer: jfenwick
  • Date: 2010-10-11 01:48:14 UTC
  • Revision ID: svn-v4:77569008-7704-0410-b7a0-a92fef0b09fd:trunk:3259
Merging dudley and scons updates from branches

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
/*******************************************************
 
3
*
 
4
* Copyright (c) 2003-2010 by University of Queensland
 
5
* Earth Systems Science Computational Center (ESSCC)
 
6
* http://www.uq.edu.au/esscc
 
7
*
 
8
* Primary Business: Queensland, Australia
 
9
* Licensed under the Open Software License version 3.0
 
10
* http://www.opensource.org/licenses/osl-3.0.php
 
11
*
 
12
*******************************************************/
 
13
 
 
14
/**************************************************************/
 
15
 
 
16
/* Dudley: Converting an element list into a matrix shape     */
 
17
 
 
18
/**************************************************************/
 
19
 
 
20
#ifndef INC_DUDLEY_INDEXLIST
 
21
#define INC_DUDLEY_INDEXLIST
 
22
 
 
23
#include "Dudley.h"
 
24
#include "ElementFile.h"
 
25
#include "Mesh.h"
 
26
 
 
27
/* structure to build system matrix */
 
28
 
 
29
#define INDEXLIST_LENGTH 85
 
30
 
 
31
typedef struct Dudley_IndexList {
 
32
    index_t index[INDEXLIST_LENGTH];
 
33
    dim_t n;
 
34
    struct Dudley_IndexList *extension;
 
35
} Dudley_IndexList;
 
36
void Dudley_IndexList_insertElements(Dudley_IndexList * index_list, Dudley_ElementFile * elements,
 
37
                                     bool_t reduce_row_order, index_t * row_map,
 
38
                                     bool_t reduce_col_order, index_t * col_map);
 
39
void Dudley_IndexList_insertIndex(Dudley_IndexList *, index_t);
 
40
void Dudley_IndexList_toArray(Dudley_IndexList *, index_t *, index_t, index_t, index_t);
 
41
dim_t Dudley_IndexList_count(Dudley_IndexList *, index_t, index_t);
 
42
void Dudley_IndexList_free(Dudley_IndexList *);
 
43
Paso_Pattern *Dudley_IndexList_createPattern(dim_t n0, dim_t n, Dudley_IndexList * index_list, index_t range_min,
 
44
                                             index_t range_max, index_t index_offset);
 
45
void Dudley_IndexList_insertElementsWithRowRange(Dudley_IndexList * index_list, index_t firstRow, index_t lastRow,
 
46
                                                 Dudley_ElementFile * elements, index_t * row_map, index_t * col_map);
 
47
void Dudley_IndexList_insertElementsWithRowRangeNoMainDiagonal(Dudley_IndexList * index_list, index_t firstRow,
 
48
                                                               index_t lastRow, Dudley_ElementFile * elements,
 
49
                                                               index_t * row_map, index_t * col_map);
 
50
 
 
51
#endif                          /* #ifndef INC_DUDLEY_INDEXLIST */