xref: /petsc/src/mat/impls/aij/seq/aij.h (revision eef2e97b0e9898b0e651e73e445c8c25945fe1ae)
1 
2 #include "matimpl.h"
3 #include "math.h"
4 
5 #if !defined(__AIJ_H)
6 #define __AIJ_H
7 
8 /*  The i[] and j[] arrays start at 1 not zero to support Fortran 77 */
9 /*  In Fortran j[i[k]+p-1] is the pth column in row k */
10 
11 /*
12     singlemalloc indicates that a, i and j where all obtained with
13   one big malloc
14 */
15 typedef struct {
16   int    sorted, roworiented, nonew, singlemalloc,assembled;
17   int    m,n;                    /* rows, columns */
18   int    nz,maxnz,mem;           /* nonzeros, allocated nonzeros, memory */
19   int    *diag,                  /* diagonal elements */
20          *i,*imax, *ilen,        /* j + i[k] - 1  is start of row k */
21          *j;                     /* ilen is actual lenght of row */
22   Scalar *a;
23   IS     row,col;
24   Scalar *solve_work;            /* work space used in MatSolve_AIJ */
25 } Mat_AIJ;
26 
27 #endif
28