1: #pragma once 3: #include <../src/mat/impls/aij/seq/aij.h> 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;