1 /*$Id: itregis.c,v 1.52 2000/05/10 16:42:00 bsmith Exp $*/ 2 3 #include "src/sles/ksp/kspimpl.h" /*I "petscksp.h" I*/ 4 5 EXTERN_C_BEGIN 6 EXTERN int KSPCreate_Richardson(KSP); 7 EXTERN int KSPCreate_Chebychev(KSP); 8 EXTERN int KSPCreate_CG(KSP); 9 EXTERN int KSPCreate_TCQMR(KSP); 10 EXTERN int KSPCreate_GMRES(KSP); 11 EXTERN int KSPCreate_BCGS(KSP); 12 EXTERN int KSPCreate_CGS(KSP); 13 EXTERN int KSPCreate_TFQMR(KSP); 14 EXTERN int KSPCreate_LSQR(KSP); 15 EXTERN int KSPCreate_PREONLY(KSP); 16 EXTERN int KSPCreate_CR(KSP); 17 EXTERN int KSPCreate_QCG(KSP); 18 EXTERN int KSPCreate_BiCG(KSP); 19 EXTERN int KSPCreate_FGMRES(KSP); 20 EXTERN int KSPCreate_MINRES(KSP); 21 EXTERN_C_END 22 23 /* 24 This is used by KSPSetType() to make sure that at least one 25 KSPRegisterAll() is called. In general, if there is more than one 26 DLL, then KSPRegisterAll() may be called several times. 27 */ 28 EXTERN PetscTruth KSPRegisterAllCalled; 29 30 #undef __FUNC__ 31 #define __FUNC__ /*<a name=""></a>*/"KSPRegisterAll" 32 /*@C 33 KSPRegisterAll - Registers all of the Krylov subspace methods in the KSP package. 34 35 Not Collective 36 37 Level: advanced 38 39 .keywords: KSP, register, all 40 41 .seealso: KSPRegisterDestroy() 42 @*/ 43 int KSPRegisterAll(char *path) 44 { 45 int ierr; 46 47 PetscFunctionBegin; 48 KSPRegisterAllCalled = PETSC_TRUE; 49 50 ierr = KSPRegisterDynamic(KSPCG, path,"KSPCreate_CG", KSPCreate_CG);CHKERRQ(ierr); 51 ierr = KSPRegisterDynamic(KSPRICHARDSON, path,"KSPCreate_Richardson",KSPCreate_Richardson);CHKERRQ(ierr); 52 ierr = KSPRegisterDynamic(KSPCHEBYCHEV, path,"KSPCreate_Chebychev", KSPCreate_Chebychev);CHKERRQ(ierr); 53 ierr = KSPRegisterDynamic(KSPGMRES, path,"KSPCreate_GMRES", KSPCreate_GMRES);CHKERRQ(ierr); 54 ierr = KSPRegisterDynamic(KSPTCQMR, path,"KSPCreate_TCQMR", KSPCreate_TCQMR);CHKERRQ(ierr); 55 ierr = KSPRegisterDynamic(KSPBCGS, path,"KSPCreate_BCGS", KSPCreate_BCGS);CHKERRQ(ierr); 56 ierr = KSPRegisterDynamic(KSPCGS, path,"KSPCreate_CGS", KSPCreate_CGS);CHKERRQ(ierr); 57 ierr = KSPRegisterDynamic(KSPTFQMR, path,"KSPCreate_TFQMR", KSPCreate_TFQMR);CHKERRQ(ierr); 58 ierr = KSPRegisterDynamic(KSPCR, path,"KSPCreate_CR", KSPCreate_CR);CHKERRQ(ierr); 59 ierr = KSPRegisterDynamic(KSPLSQR, path,"KSPCreate_LSQR", KSPCreate_LSQR);CHKERRQ(ierr); 60 ierr = KSPRegisterDynamic(KSPPREONLY, path,"KSPCreate_PREONLY", KSPCreate_PREONLY);CHKERRQ(ierr); 61 ierr = KSPRegisterDynamic(KSPQCG, path,"KSPCreate_QCG", KSPCreate_QCG);CHKERRQ(ierr); 62 ierr = KSPRegisterDynamic(KSPBICG, path,"KSPCreate_BiCG", KSPCreate_BiCG);CHKERRQ(ierr); 63 ierr = KSPRegisterDynamic(KSPFGMRES, path,"KSPCreate_FGMRES", KSPCreate_FGMRES);CHKERRQ(ierr); 64 ierr = KSPRegisterDynamic(KSPMINRES, path,"KSPCreate_MINRES", KSPCreate_MINRES);CHKERRQ(ierr); 65 PetscFunctionReturn(0); 66 } 67