1
2 #include <petsc/private/snesimpl.h> /*I "petscsnes.h" I*/
3
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);
23
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;
29
30 const char *SNESNormSchedules_Shifted[] = {"DEFAULT","NONE","ALWAYS","INITIALONLY","FINALONLY","INITIALFINALONLY","SNESNormSchedule","SNES_NORM_",NULL};
31 const char *const *const SNESNormSchedules = SNESNormSchedules_Shifted + 1;
32
33 const char *SNESFunctionTypes_Shifted[] = {"DEFAULT","UNPRECONDITIONED","PRECONDITIONED","SNESFunctionType","SNES_FUNCTION_",NULL};
34 const char *const *const SNESFunctionTypes = SNESFunctionTypes_Shifted + 1;
35
36 /*@C
37 SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package.
38
39 Not Collective
40
41 Level: advanced
42
43 .seealso: SNESRegisterDestroy()
44 @*/
SNESRegisterAll(void)45 PetscErrorCode SNESRegisterAll(void)
46 {
47 PetscErrorCode ierr;
48
49 PetscFunctionBegin;
50 if (SNESRegisterAllCalled) PetscFunctionReturn(0);
51 SNESRegisterAllCalled = PETSC_TRUE;
52
53 ierr = SNESRegister(SNESNEWTONLS, SNESCreate_NEWTONLS);CHKERRQ(ierr);
54 ierr = SNESRegister(SNESNEWTONTR, SNESCreate_NEWTONTR);CHKERRQ(ierr);
55 ierr = SNESRegister(SNESNRICHARDSON, SNESCreate_NRichardson);CHKERRQ(ierr);
56 ierr = SNESRegister(SNESKSPONLY, SNESCreate_KSPONLY);CHKERRQ(ierr);
57 ierr = SNESRegister(SNESKSPTRANSPOSEONLY, SNESCreate_KSPTRANSPOSEONLY);CHKERRQ(ierr);
58 ierr = SNESRegister(SNESVINEWTONRSLS, SNESCreate_VINEWTONRSLS);CHKERRQ(ierr);
59 ierr = SNESRegister(SNESVINEWTONSSLS, SNESCreate_VINEWTONSSLS);CHKERRQ(ierr);
60 ierr = SNESRegister(SNESNGMRES, SNESCreate_NGMRES);CHKERRQ(ierr);
61 ierr = SNESRegister(SNESQN, SNESCreate_QN);CHKERRQ(ierr);
62 ierr = SNESRegister(SNESSHELL, SNESCreate_Shell);CHKERRQ(ierr);
63 ierr = SNESRegister(SNESNGS, SNESCreate_NGS);CHKERRQ(ierr);
64 ierr = SNESRegister(SNESNCG, SNESCreate_NCG);CHKERRQ(ierr);
65 ierr = SNESRegister(SNESFAS, SNESCreate_FAS);CHKERRQ(ierr);
66 ierr = SNESRegister(SNESMS, SNESCreate_MS);CHKERRQ(ierr);
67 ierr = SNESRegister(SNESNASM, SNESCreate_NASM);CHKERRQ(ierr);
68 ierr = SNESRegister(SNESANDERSON, SNESCreate_Anderson);CHKERRQ(ierr);
69 ierr = SNESRegister(SNESASPIN, SNESCreate_ASPIN);CHKERRQ(ierr);
70 ierr = SNESRegister(SNESCOMPOSITE, SNESCreate_Composite);CHKERRQ(ierr);
71 ierr = SNESRegister(SNESPATCH, SNESCreate_Patch);CHKERRQ(ierr);
72 PetscFunctionReturn(0);
73 }
74