1 #ifndef CRL_H 2 #define CRL_H 3 4 #include <../src/mat/impls/aij/seq/aij.h> 5 6 typedef struct { 7 PetscInt nz; 8 PetscInt m; /* number of rows */ 9 PetscInt rmax; /* maximum number of columns in a row */ 10 PetscInt ncols; /* number of columns in each row */ 11 PetscInt *icols; /* columns of nonzeros, stored one column at a time */ 12 PetscScalar *acols; /* values of nonzeros, stored as icols */ 13 /* these are only needed for the parallel case */ 14 Vec xwork, fwork; 15 VecScatter xscat; /* gathers the locally needed part of global vector */ 16 PetscScalar *array; /* array used to create xwork */ 17 } Mat_AIJCRL; 18 19 #endif 20