Actual source code: snesregi.c
1: #define PETSCSNES_DLL
3: #include private/snesimpl.h
6: EXTERN PetscErrorCode SNESCreate_LS(SNES);
7: EXTERN PetscErrorCode SNESCreate_TR(SNES);
8: EXTERN PetscErrorCode SNESCreate_Test(SNES);
9: EXTERN PetscErrorCode SNESCreate_Picard(SNES);
12: const char *SNESConvergedReasons_Shifted[] = {" "," ","DIVERGED_LOCAL_MIN"," ","DIVERGED_LS_FAILURE","DIVERGED_MAX_IT",
13: "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN",
14: "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE",
15: "CONVERGED_PNORM_RELATIVE","CONVERGED_ITS"," ","CONVERGED_TR_DELTA","SNESConvergedReason","",0};
16: const char **SNESConvergedReasons = SNESConvergedReasons_Shifted + 10;
18: /*
19: This is used by SNESSetType() to make sure that at least one
20: SNESRegisterAll() is called. In general, if there is more than one
21: DLL then SNESRegisterAll() may be called several times.
22: */
27: /*@C
28: SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package.
30: Not Collective
32: Level: advanced
34: .keywords: SNES, register, all
36: .seealso: SNESRegisterDestroy()
37: @*/
38: PetscErrorCode SNESRegisterAll(const char path[])
39: {
43: SNESRegisterAllCalled = PETSC_TRUE;
45: SNESRegisterDynamic("ls", path,"SNESCreate_LS",SNESCreate_LS);
46: SNESRegisterDynamic("tr", path,"SNESCreate_TR",SNESCreate_TR);
47: SNESRegisterDynamic("test", path,"SNESCreate_Test", SNESCreate_Test);
48: SNESRegisterDynamic("picard", path,"SNESCreate_Picard",SNESCreate_Picard);
50: return(0);
51: }