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