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