xref: /petsc/src/mat/impls/aij/seq/aij.h (revision 4e10411d4d517257dfd776dc5658f7125d1d744f)
1b8a66259SBarry Smith 
2b8a66259SBarry Smith #include "matimpl.h"
3b8a66259SBarry Smith #include "math.h"
4b8a66259SBarry Smith 
52d40f771SBarry Smith #if !defined(__AIJ_H)
62d40f771SBarry Smith #define __AIJ_H
72d40f771SBarry Smith 
82d40f771SBarry Smith /*  The i[] and j[] arrays start at 1 not zero to support Fortran 77 */
92d40f771SBarry Smith /*  In Fortran j[i[k]+p-1] is the pth column in row k */
102d40f771SBarry Smith 
112d40f771SBarry Smith /*
122d40f771SBarry Smith     singlemalloc indicates that a, i and j where all obtained with
132d40f771SBarry Smith   one big malloc
142d40f771SBarry Smith */
15b8a66259SBarry Smith typedef struct {
16a0a613f7SBarry Smith   int    sorted, roworiented, nonew, singlemalloc,assembled;
171a1c3055SLois Curfman McInnes   int    m,n;                    /* rows, columns */
181a1c3055SLois Curfman McInnes   int    nz,maxnz,mem;           /* nonzeros, allocated nonzeros, memory */
191a1c3055SLois Curfman McInnes   int    *diag,                  /* diagonal elements */
202d40f771SBarry Smith          *i,*imax, *ilen,        /* j + i[k] - 1  is start of row k */
21b8a66259SBarry Smith          *j;                     /* ilen is actual lenght of row */
222d40f771SBarry Smith   Scalar *a;
2300cb8706SBarry Smith   IS     row,col;
24*4e10411dSBarry Smith   Scalar *solve_work;            /* work space used in MatSolve_AIJ */
251fb19edaSLois Curfman McInnes } Mat_AIJ;
26b8a66259SBarry Smith 
272d40f771SBarry Smith #endif
28