Actual source code: snesregi.c
petsc-3.14.6 2021-03-30
2: #include <petsc/private/snesimpl.h>
4: PETSC_EXTERN PetscErrorCode SNESCreate_NEWTONLS(SNES);
5: PETSC_EXTERN PetscErrorCode SNESCreate_NEWTONTR(SNES);
6: PETSC_EXTERN PetscErrorCode SNESCreate_NRichardson(SNES);
7: PETSC_EXTERN PetscErrorCode SNESCreate_KSPONLY(SNES);
8: PETSC_EXTERN PetscErrorCode SNESCreate_KSPTRANSPOSEONLY(SNES);
9: PETSC_EXTERN PetscErrorCode SNESCreate_VINEWTONRSLS(SNES);
10: PETSC_EXTERN PetscErrorCode SNESCreate_VINEWTONSSLS(SNES);
11: PETSC_EXTERN PetscErrorCode SNESCreate_NGMRES(SNES);
12: PETSC_EXTERN PetscErrorCode SNESCreate_QN(SNES);
13: PETSC_EXTERN PetscErrorCode SNESCreate_Shell(SNES);
14: PETSC_EXTERN PetscErrorCode SNESCreate_NGS(SNES);
15: PETSC_EXTERN PetscErrorCode SNESCreate_NCG(SNES);
16: PETSC_EXTERN PetscErrorCode SNESCreate_FAS(SNES);
17: PETSC_EXTERN PetscErrorCode SNESCreate_MS(SNES);
18: PETSC_EXTERN PetscErrorCode SNESCreate_NASM(SNES);
19: PETSC_EXTERN PetscErrorCode SNESCreate_Anderson(SNES);
20: PETSC_EXTERN PetscErrorCode SNESCreate_ASPIN(SNES);
21: PETSC_EXTERN PetscErrorCode SNESCreate_Composite(SNES);
22: PETSC_EXTERN PetscErrorCode SNESCreate_Patch(SNES);
24: const char *SNESConvergedReasons_Shifted[] = {" ","DIVERGED_TR_DELTA","DIVERGED_JACOBIAN_DOMAIN","DIVERGED_DTOL","DIVERGED_LOCAL_MIN","DIVERGED_INNER","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT",
25: "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN",
26: "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE",
27: "CONVERGED_SNORM_RELATIVE","CONVERGED_ITS"," ","SNESConvergedReason","",NULL};
28: const char *const *SNESConvergedReasons = SNESConvergedReasons_Shifted + 12;
30: const char *SNESNormSchedules_Shifted[] = {"DEFAULT","NONE","ALWAYS","INITIALONLY","FINALONLY","INITIALFINALONLY","SNESNormSchedule","SNES_NORM_",NULL};
31: const char *const *const SNESNormSchedules = SNESNormSchedules_Shifted + 1;
33: const char *SNESFunctionTypes_Shifted[] = {"DEFAULT","UNPRECONDITIONED","PRECONDITIONED","SNESFunctionType","SNES_FUNCTION_",NULL};
34: const char *const *const SNESFunctionTypes = SNESFunctionTypes_Shifted + 1;
36: /*@C
37: SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package.
39: Not Collective
41: Level: advanced
43: .seealso: SNESRegisterDestroy()
44: @*/
45: PetscErrorCode SNESRegisterAll(void)
46: {
50: if (SNESRegisterAllCalled) return(0);
51: SNESRegisterAllCalled = PETSC_TRUE;
53: SNESRegister(SNESNEWTONLS, SNESCreate_NEWTONLS);
54: SNESRegister(SNESNEWTONTR, SNESCreate_NEWTONTR);
55: SNESRegister(SNESNRICHARDSON, SNESCreate_NRichardson);
56: SNESRegister(SNESKSPONLY, SNESCreate_KSPONLY);
57: SNESRegister(SNESKSPTRANSPOSEONLY, SNESCreate_KSPTRANSPOSEONLY);
58: SNESRegister(SNESVINEWTONRSLS, SNESCreate_VINEWTONRSLS);
59: SNESRegister(SNESVINEWTONSSLS, SNESCreate_VINEWTONSSLS);
60: SNESRegister(SNESNGMRES, SNESCreate_NGMRES);
61: SNESRegister(SNESQN, SNESCreate_QN);
62: SNESRegister(SNESSHELL, SNESCreate_Shell);
63: SNESRegister(SNESNGS, SNESCreate_NGS);
64: SNESRegister(SNESNCG, SNESCreate_NCG);
65: SNESRegister(SNESFAS, SNESCreate_FAS);
66: SNESRegister(SNESMS, SNESCreate_MS);
67: SNESRegister(SNESNASM, SNESCreate_NASM);
68: SNESRegister(SNESANDERSON, SNESCreate_Anderson);
69: SNESRegister(SNESASPIN, SNESCreate_ASPIN);
70: SNESRegister(SNESCOMPOSITE, SNESCreate_Composite);
71: SNESRegister(SNESPATCH, SNESCreate_Patch);
72: return(0);
73: }