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