Actual source code: snesregi.c
petsc-3.3-p7 2013-05-11
2: #include <petsc-private/snesimpl.h> /*I "petscsnes.h" I*/
4: EXTERN_C_BEGIN
5: extern PetscErrorCode SNESCreate_LS(SNES);
6: extern PetscErrorCode SNESCreate_TR(SNES);
7: extern PetscErrorCode SNESCreate_Test(SNES);
8: extern PetscErrorCode SNESCreate_NRichardson(SNES);
9: extern PetscErrorCode SNESCreate_KSPONLY(SNES);
10: extern PetscErrorCode SNESCreate_VIRS(SNES);
11: extern PetscErrorCode SNESCreate_VISS(SNES);
12: extern PetscErrorCode SNESCreate_NGMRES(SNES);
13: extern PetscErrorCode SNESCreate_QN(SNES);
14: extern PetscErrorCode SNESCreate_Shell(SNES);
15: extern PetscErrorCode SNESCreate_GS(SNES);
16: extern PetscErrorCode SNESCreate_NCG(SNES);
17: extern PetscErrorCode SNESCreate_FAS(SNES);
18: extern PetscErrorCode SNESCreate_MS(SNES);
19: EXTERN_C_END
21: const char *SNESConvergedReasons_Shifted[] = {" "," ","DIVERGED_LOCAL_MIN","DIVERGED_INNER","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT",
22: "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN",
23: "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE",
24: "CONVERGED_SNORM_RELATIVE","CONVERGED_ITS"," ","CONVERGED_TR_DELTA","SNESConvergedReason","",0};
25: const char *const*SNESConvergedReasons = SNESConvergedReasons_Shifted + 10;
27: const char *SNESNormTypes_Shifted[] = {"DEFAULT","NONE","FUNCTION","INITIALONLY","FINALONLY","INITIALFINALONLY","SNESNormType","SNES_NORM_",0};
28: const char *const*const SNESNormTypes = SNESNormTypes_Shifted + 1;
30: /*
31: This is used by SNESSetType() to make sure that at least one
32: SNESRegisterAll() is called. In general, if there is more than one
33: DLL then SNESRegisterAll() may be called several times.
34: */
35: extern PetscBool SNESRegisterAllCalled;
39: /*@C
40: SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package.
42: Not Collective
44: Level: advanced
46: .keywords: SNES, register, all
48: .seealso: SNESRegisterDestroy()
49: @*/
50: PetscErrorCode SNESRegisterAll(const char path[])
51: {
55: SNESRegisterAllCalled = PETSC_TRUE;
57: SNESRegisterDynamic(SNESLS, path,"SNESCreate_LS", SNESCreate_LS);
58: SNESRegisterDynamic(SNESTR, path,"SNESCreate_TR", SNESCreate_TR);
59: SNESRegisterDynamic(SNESTEST, path,"SNESCreate_Test", SNESCreate_Test);
60: SNESRegisterDynamic(SNESNRICHARDSON, path,"SNESCreate_NRichardson", SNESCreate_NRichardson);
61: SNESRegisterDynamic(SNESKSPONLY, path,"SNESCreate_KSPONLY", SNESCreate_KSPONLY);
62: SNESRegisterDynamic(SNESVIRS, path,"SNESCreate_VIRS", SNESCreate_VIRS);
63: SNESRegisterDynamic(SNESVISS, path,"SNESCreate_VISS", SNESCreate_VISS);
64: SNESRegisterDynamic(SNESNGMRES, path,"SNESCreate_NGMRES", SNESCreate_NGMRES);
65: SNESRegisterDynamic(SNESQN, path,"SNESCreate_QN", SNESCreate_QN);
66: SNESRegisterDynamic(SNESSHELL, path,"SNESCreate_Shell", SNESCreate_Shell);
67: SNESRegisterDynamic(SNESGS, path,"SNESCreate_GS", SNESCreate_GS);
68: SNESRegisterDynamic(SNESNCG, path,"SNESCreate_NCG", SNESCreate_NCG);
69: SNESRegisterDynamic(SNESFAS, path,"SNESCreate_FAS", SNESCreate_FAS);
70: SNESRegisterDynamic(SNESMS, path,"SNESCreate_MS", SNESCreate_MS);
71: return(0);
72: }