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: #define SLES_COOKIE PETSC_COOKIE+10
13: /*S
14: SLES - Abstract PETSc object that manages all linear solvers. Essentially contains a
15: PC, preconditioner and a KSP, Krylov solver.
17: Level: beginner
19: Concepts: linear solvers
21: .seealso: SLESCreate(), SLESGetKSP(), SLESGetPC(), TS, SNES, KSP, PC
22: S*/
23: typedef struct _p_SLES* SLES;
25: EXTERN int SLESCreate(MPI_Comm,SLES*);
26: EXTERN int SLESDestroy(SLES);
28: EXTERN int SLESGetPC(SLES,PC*);
29: EXTERN int SLESGetKSP(SLES,KSP*);
30: EXTERN int SLESSetOperators(SLES,Mat,Mat,MatStructure);
31: EXTERN int SLESSolve(SLES,Vec,Vec,int*);
32: EXTERN int SLESSolveTranspose(SLES,Vec,Vec,int*);
33: EXTERN int SLESSetFromOptions(SLES);
34: EXTERN int SLESSetTypesFromOptions(SLES);
35: EXTERN int SLESView(SLES,PetscViewer);
36: EXTERN int SLESSetUp(SLES,Vec,Vec);
37: EXTERN int SLESSetUpOnBlocks(SLES);
38: EXTERN int SLESSetDiagonalScale(SLES,PetscTruth);
39: EXTERN int SLESGetDiagonalScale(SLES,PetscTruth*);
40: EXTERN int SLESSetDiagonalScaleFix(SLES);
42: EXTERN int SLESSetOptionsPrefix(SLES,char*);
43: EXTERN int SLESAppendOptionsPrefix(SLES,char*);
44: EXTERN int SLESGetOptionsPrefix(SLES,char**);
46: EXTERN int PCBJacobiGetSubSLES(PC,int*,int*,SLES**);
47: EXTERN int PCASMGetSubSLES(PC,int*,int*,SLES**);
48: EXTERN int PCSLESGetSLES(PC,SLES *);
50: #endif