xref: /petsc/src/mat/interface/matregis.c (revision 8a95e4e96d0f107b68e2efed3ebaa42f01f5322c)
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