Actual source code: spooles.h
1: /* $Id: spooles.h,v 1.46 2001/08/07 03:02:47 balay Exp $ */
3: #include src/mat/matimpl.h
8: EXTERN_C_BEGIN
9: #include "misc.h"
10: #include "FrontMtx.h"
11: #include "SymbFac.h"
12: #include "MPI/spoolesMPI.h"
13: EXTERN_C_END
15: typedef struct {
16: int msglvl,pivotingflag,symflag,seed,FrontMtxInfo,typeflag;
17: int ordering,maxdomainsize,maxzeros,maxsize,
18: patchAndGoFlag,storeids,storevalues;
19: PetscTruth useQR;
20: double tau,toosmall,fudge;
21: FILE *msgFile ;
22: } Spooles_options;
24: typedef struct {
25: /* Followings are used for seq and MPI Spooles */
26: InpMtx *mtxA ; /* coefficient matrix */
27: ETree *frontETree ; /* defines numeric and symbolic factorizations */
28: FrontMtx *frontmtx ; /* numeric L, D, U factor matrices */
29: IV *newToOldIV, *oldToNewIV ; /* permutation vectors */
30: IVL *symbfacIVL ; /* symbolic factorization */
31: SubMtxManager *mtxmanager ; /* working array */
32: MatStructure flg;
33: double cpus[20] ;
34: int *oldToNew,stats[20];
35: Spooles_options options;
36: Graph *graph;
38: /* Followings are used for MPI Spooles */
39: IV *ownersIV,*ownedColumnsIV,*vtxmapIV;
40: SolveMap *solvemap ;
41: DenseMtx *mtxY, *mtxX;
42: double *entX;
43: int *rowindX,rstart,firsttag,nmycol;
44: Vec vec_spooles;
45: IS iden,is_petsc;
46: VecScatter scat;
47: } Mat_Spooles;
49: EXTERN int SetSpoolesOptions(Mat, Spooles_options *);
50: EXTERN int MatFactorInfo_Spooles(Mat,PetscViewer);
52: EXTERN int MatDestroy_SeqAIJ_Spooles(Mat);
53: EXTERN int MatSolve_SeqAIJ_Spooles(Mat,Vec,Vec);
54: EXTERN int MatFactorNumeric_SeqAIJ_Spooles(Mat,Mat*);
56: EXTERN int MatDestroy_MPIAIJ_Spooles(Mat);
57: EXTERN int MatSolve_MPIAIJ_Spooles(Mat,Vec,Vec);
58: EXTERN int MatFactorNumeric_MPIAIJ_Spooles(Mat,Mat*);
60: EXTERN int MatGetInertia_SeqSBAIJ_Spooles(Mat,int*,int*,int*);
61: #endif