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