Actual source code: sbaij.h
4: #include src/mat/matimpl.h
5: #include src/mat/impls/baij/seq/baij.h
7: /*
8: MATSEQSBAIJ format - Block compressed row storage. The i[] and j[]
9: arrays start at 0.
10: */
12: typedef struct {
13: SEQBAIJHEADER
15: PetscInt *inew; /* pointer to beginning of each row of reordered matrix */
16: PetscInt *jnew; /* column values: jnew + i[k] is start of row k */
17: MatScalar *anew; /* nonzero diagonal and superdiagonal elements of reordered matrix */
18: PetscScalar *solves_work; /* work space used in MatSolves */
19: PetscInt solves_work_n;/* size of solves_work */
20: PetscInt *a2anew; /* map used for symm permutation */
21: PetscTruth permute; /* if true, a non-trivial permutation is used for factorization */
23: /* carry MatFactorInfo from symbolic factor to numeric factor */
24: PetscInt factor_levels;
25: PetscReal factor_damping;
26: PetscReal factor_shift;
27: PetscReal factor_zeropivot;
28: } Mat_SeqSBAIJ;
30: EXTERN PetscErrorCode MatICCFactorSymbolic_SeqSBAIJ(Mat,IS,MatFactorInfo*,Mat *);
31: EXTERN PetscErrorCode MatDuplicate_SeqSBAIJ(Mat,MatDuplicateOption,Mat*);
32: EXTERN PetscErrorCode MatMarkDiagonal_SeqSBAIJ(Mat);
34: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_1_NaturalOrdering(Mat,Mat*);
35: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_1_NaturalOrdering(Mat,Vec,Vec);
37: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_2_NaturalOrdering(Mat,Mat*);
38: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_2_NaturalOrdering(Mat,Vec,Vec);
40: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_3_NaturalOrdering(Mat,Mat*);
41: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_3_NaturalOrdering(Mat,Vec,Vec);
43: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_4_NaturalOrdering(Mat,Mat*);
44: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_4_NaturalOrdering(Mat,Vec,Vec);
46: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_5_NaturalOrdering(Mat,Mat*);
47: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_5_NaturalOrdering(Mat,Vec,Vec);
49: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_6_NaturalOrdering(Mat,Mat*);
50: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_6_NaturalOrdering(Mat,Vec,Vec);
52: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_7_NaturalOrdering(Mat,Mat*);
53: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_7_NaturalOrdering(Mat,Vec,Vec);
55: EXTERN PetscErrorCode MatCholeskyFactorNumeric_SeqSBAIJ_N_NaturalOrdering(Mat,Mat*);
56: EXTERN PetscErrorCode MatSolve_SeqSBAIJ_N_NaturalOrdering(Mat,Vec,Vec);
58: EXTERN PetscErrorCode MatRelax_SeqSBAIJ(Mat,Vec,PetscReal,MatSORType,PetscReal,PetscInt,PetscInt,Vec);
59: EXTERN PetscErrorCode MatLoad_SeqSBAIJ(PetscViewer,const MatType,Mat*);
61: #endif