Actual source code: snesregi.c
2: #include <private/snesimpl.h> /*I "petscsnes.h" I*/
15: const char *SNESConvergedReasons_Shifted[] = {" "," ","DIVERGED_LOCAL_MIN"," ","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT",
16: "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN",
17: "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE",
18: "CONVERGED_PNORM_RELATIVE","CONVERGED_ITS"," ","CONVERGED_TR_DELTA","SNESConvergedReason","",0};
19: const char *const*SNESConvergedReasons = SNESConvergedReasons_Shifted + 10;
21: /*
22: This is used by SNESSetType() to make sure that at least one
23: SNESRegisterAll() is called. In general, if there is more than one
24: DLL then SNESRegisterAll() may be called several times.
25: */
30: /*@C
31: SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package.
33: Not Collective
35: Level: advanced
37: .keywords: SNES, register, all
39: .seealso: SNESRegisterDestroy()
40: @*/
41: PetscErrorCode SNESRegisterAll(const char path[])
42: {
46: SNESRegisterAllCalled = PETSC_TRUE;
48: SNESRegisterDynamic(SNESLS, path,"SNESCreate_LS", SNESCreate_LS);
49: SNESRegisterDynamic(SNESTR, path,"SNESCreate_TR", SNESCreate_TR);
50: SNESRegisterDynamic(SNESTEST, path,"SNESCreate_Test", SNESCreate_Test);
51: SNESRegisterDynamic(SNESPICARD, path,"SNESCreate_Picard", SNESCreate_Picard);
52: SNESRegisterDynamic(SNESKSPONLY,path,"SNESCreate_KSPONLY",SNESCreate_KSPONLY);
53: SNESRegisterDynamic(SNESVI, path,"SNESCreate_VI", SNESCreate_VI);
54: SNESRegisterDynamic(SNESNGMRES, path,"SNESCreate_NGMRES", SNESCreate_NGMRES);
55: SNESRegisterDynamic(SNESSORQN, path,"SNESCreate_SORQN", SNESCreate_SORQN);
56: return(0);
57: }