Actual source code: itregis.c

petsc-3.3-p7 2013-05-11
  2: #include <petsc-private/kspimpl.h>  /*I "petscksp.h" I*/

  4: EXTERN_C_BEGIN
  5: extern PetscErrorCode  KSPCreate_Richardson(KSP);
  6: extern PetscErrorCode  KSPCreate_Chebyshev(KSP);
  7: extern PetscErrorCode  KSPCreate_CG(KSP);
  8: extern PetscErrorCode  KSPCreate_CGNE(KSP);
  9: extern PetscErrorCode  KSPCreate_NASH(KSP);
 10: extern PetscErrorCode  KSPCreate_STCG(KSP);
 11: extern PetscErrorCode  KSPCreate_GLTR(KSP);
 12: extern PetscErrorCode  KSPCreate_TCQMR(KSP);
 13: extern PetscErrorCode  KSPCreate_GMRES(KSP);
 14: extern PetscErrorCode  KSPCreate_BCGS(KSP);
 15: extern PetscErrorCode  KSPCreate_IBCGS(KSP);
 16: extern PetscErrorCode  KSPCreate_FBCGS(KSP);
 17: extern PetscErrorCode  KSPCreate_IFBCGS(KSP);
 18: extern PetscErrorCode  KSPCreate_BCGSL(KSP);
 19: extern PetscErrorCode  KSPCreate_CGS(KSP);
 20: extern PetscErrorCode  KSPCreate_TFQMR(KSP);
 21: extern PetscErrorCode  KSPCreate_LSQR(KSP);
 22: extern PetscErrorCode  KSPCreate_PREONLY(KSP);
 23: extern PetscErrorCode  KSPCreate_CR(KSP);
 24: extern PetscErrorCode  KSPCreate_QCG(KSP);
 25: extern PetscErrorCode  KSPCreate_BiCG(KSP);
 26: extern PetscErrorCode  KSPCreate_FGMRES(KSP);
 27: extern PetscErrorCode  KSPCreate_MINRES(KSP);
 28: extern PetscErrorCode  KSPCreate_SYMMLQ(KSP);
 29: extern PetscErrorCode  KSPCreate_LGMRES(KSP);
 30: extern PetscErrorCode  KSPCreate_LCD(KSP);
 31: extern PetscErrorCode  KSPCreate_GCR(KSP);
 32: extern PetscErrorCode  KSPCreate_PGMRES(KSP);
 33: extern PetscErrorCode  KSPCreate_SpecEst(KSP);
 34: #if !defined(PETSC_USE_COMPLEX)
 35: extern PetscErrorCode  KSPCreate_DGMRES(KSP);
 36: #endif
 37: EXTERN_C_END
 38: 
 39: /*
 40:     This is used by KSPSetType() to make sure that at least one 
 41:     KSPRegisterAll() is called. In general, if there is more than one
 42:     DLL, then KSPRegisterAll() may be called several times.
 43: */
 44: extern PetscBool  KSPRegisterAllCalled;

 48: /*@C
 49:   KSPRegisterAll - Registers all of the Krylov subspace methods in the KSP package.

 51:   Not Collective

 53:   Level: advanced

 55: .keywords: KSP, register, all

 57: .seealso:  KSPRegisterDestroy()
 58: @*/
 59: PetscErrorCode  KSPRegisterAll(const char path[])
 60: {

 64:   KSPRegisterAllCalled = PETSC_TRUE;

 66:   KSPRegisterDynamic(KSPCG,         path,"KSPCreate_CG",        KSPCreate_CG);
 67:   KSPRegisterDynamic(KSPCGNE,       path,"KSPCreate_CGNE",      KSPCreate_CGNE);
 68:   KSPRegisterDynamic(KSPNASH,       path,"KSPCreate_NASH",      KSPCreate_NASH);
 69:   KSPRegisterDynamic(KSPSTCG,       path,"KSPCreate_STCG",      KSPCreate_STCG);
 70:   KSPRegisterDynamic(KSPGLTR,       path,"KSPCreate_GLTR",      KSPCreate_GLTR);
 71:   KSPRegisterDynamic(KSPRICHARDSON, path,"KSPCreate_Richardson",KSPCreate_Richardson);
 72:   KSPRegisterDynamic(KSPCHEBYSHEV,  path,"KSPCreate_Chebyshev", KSPCreate_Chebyshev);
 73:   KSPRegisterDynamic(KSPGMRES,      path,"KSPCreate_GMRES",     KSPCreate_GMRES);
 74:   KSPRegisterDynamic(KSPTCQMR,      path,"KSPCreate_TCQMR",     KSPCreate_TCQMR);
 75:   KSPRegisterDynamic(KSPBCGS,       path,"KSPCreate_BCGS",      KSPCreate_BCGS);
 76:   KSPRegisterDynamic(KSPIBCGS,      path,"KSPCreate_IBCGS",     KSPCreate_IBCGS);
 77:   KSPRegisterDynamic(KSPFBCGS,      path,"KSPCreate_FBCGS",     KSPCreate_FBCGS);
 78:   KSPRegisterDynamic(KSPIFBCGS,     path,"KSPCreate_IFBCGS",    KSPCreate_IFBCGS);
 79:   KSPRegisterDynamic(KSPBCGSL,      path,"KSPCreate_BCGSL",     KSPCreate_BCGSL);
 80:   KSPRegisterDynamic(KSPCGS,        path,"KSPCreate_CGS",       KSPCreate_CGS);
 81:   KSPRegisterDynamic(KSPTFQMR,      path,"KSPCreate_TFQMR",     KSPCreate_TFQMR);
 82:   KSPRegisterDynamic(KSPCR,         path,"KSPCreate_CR",        KSPCreate_CR);
 83:   KSPRegisterDynamic(KSPLSQR,       path,"KSPCreate_LSQR",      KSPCreate_LSQR);
 84:   KSPRegisterDynamic(KSPPREONLY,    path,"KSPCreate_PREONLY",   KSPCreate_PREONLY);
 85:   KSPRegisterDynamic(KSPQCG,        path,"KSPCreate_QCG",       KSPCreate_QCG);
 86:   KSPRegisterDynamic(KSPBICG,       path,"KSPCreate_BiCG",      KSPCreate_BiCG);
 87:   KSPRegisterDynamic(KSPFGMRES,     path,"KSPCreate_FGMRES",    KSPCreate_FGMRES);
 88:   KSPRegisterDynamic(KSPMINRES,     path,"KSPCreate_MINRES",    KSPCreate_MINRES);
 89:   KSPRegisterDynamic(KSPSYMMLQ,     path,"KSPCreate_SYMMLQ",    KSPCreate_SYMMLQ);
 90:   KSPRegisterDynamic(KSPLGMRES,     path,"KSPCreate_LGMRES",    KSPCreate_LGMRES);
 91:   KSPRegisterDynamic(KSPLCD,        path,"KSPCreate_LCD",       KSPCreate_LCD);
 92:   KSPRegisterDynamic(KSPGCR,        path,"KSPCreate_GCR",       KSPCreate_GCR);
 93:   KSPRegisterDynamic(KSPPGMRES,     path,"KSPCreate_PGMRES",    KSPCreate_PGMRES);
 94:   KSPRegisterDynamic(KSPSPECEST,    path,"KSPCreate_SpecEst",  KSPCreate_SpecEst);
 95: #if !defined(PETSC_USE_COMPLEX)
 96:   KSPRegisterDynamic(KSPDGMRES,     path,"KSPCreate_DGMRES", KSPCreate_DGMRES);
 97: #endif
 98:   return(0);
 99: }