Actual source code: petscsles.h
1: /* $Id: petscsles.h,v 1.37 2001/03/22 20:30:52 bsmith Exp $ */
2: /*
3: Defines PETSc interface to the linear solvers. The details of Krylov methods
4: and preconditioners are handled in the petscksp.h and petscpc.h files
5: */
8: #include petscpc.h
9: #include petscksp.h
11: /* Logging support */
12: extern int SLES_COOKIE;
13: extern int SLES_SetUp, SLES_Solve;
15: /*S
16: SLES - Abstract PETSc object that manages all linear solvers. Essentially contains a
17: PC, preconditioner and a KSP, Krylov solver.
19: Level: beginner
21: Concepts: linear solvers
23: .seealso: SLESCreate(), SLESGetKSP(), SLESGetPC(), TS, SNES, KSP, PC
24: S*/
25: typedef struct _p_SLES* SLES;
27: EXTERN int SLESInitializePackage(char *);
29: EXTERN int SLESCreate(MPI_Comm,SLES*);
30: EXTERN int SLESDestroy(SLES);
32: EXTERN int SLESGetPC(SLES,PC*);
33: EXTERN int SLESGetKSP(SLES,KSP*);
34: EXTERN int SLESSetOperators(SLES,Mat,Mat,MatStructure);
35: EXTERN int SLESSolve(SLES,Vec,Vec,int*);
36: EXTERN int SLESSolveTranspose(SLES,Vec,Vec,int*);
37: EXTERN int SLESSetFromOptions(SLES);
38: EXTERN int SLESSetTypesFromOptions(SLES);
39: EXTERN int SLESView(SLES,PetscViewer);
40: EXTERN int SLESSetUp(SLES,Vec,Vec);
41: EXTERN int SLESSetUpOnBlocks(SLES);
42: EXTERN int SLESSetDiagonalScale(SLES,PetscTruth);
43: EXTERN int SLESGetDiagonalScale(SLES,PetscTruth*);
44: EXTERN int SLESSetDiagonalScaleFix(SLES);
46: EXTERN int SLESSetOptionsPrefix(SLES,char*);
47: EXTERN int SLESAppendOptionsPrefix(SLES,char*);
48: EXTERN int SLESGetOptionsPrefix(SLES,char**);
50: EXTERN int PCBJacobiGetSubSLES(PC,int*,int*,SLES**);
51: EXTERN int PCASMGetSubSLES(PC,int*,int*,SLES**);
52: EXTERN int PCSLESGetSLES(PC,SLES *);
54: #endif