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