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_VINEWTONRSLS(SNES); 9 PETSC_EXTERN PetscErrorCode SNESCreate_VINEWTONSSLS(SNES); 10 PETSC_EXTERN PetscErrorCode SNESCreate_NGMRES(SNES); 11 PETSC_EXTERN PetscErrorCode SNESCreate_QN(SNES); 12 PETSC_EXTERN PetscErrorCode SNESCreate_Shell(SNES); 13 PETSC_EXTERN PetscErrorCode SNESCreate_NGS(SNES); 14 PETSC_EXTERN PetscErrorCode SNESCreate_NCG(SNES); 15 PETSC_EXTERN PetscErrorCode SNESCreate_FAS(SNES); 16 PETSC_EXTERN PetscErrorCode SNESCreate_MS(SNES); 17 PETSC_EXTERN PetscErrorCode SNESCreate_NASM(SNES); 18 PETSC_EXTERN PetscErrorCode SNESCreate_Anderson(SNES); 19 PETSC_EXTERN PetscErrorCode SNESCreate_ASPIN(SNES); 20 PETSC_EXTERN PetscErrorCode SNESCreate_Composite(SNES); 21 22 const char *SNESConvergedReasons_Shifted[] = {" ","DIVERGED_DTOL","DIVERGED_LOCAL_MIN","DIVERGED_INNER","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT", 23 "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN", 24 "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE", 25 "CONVERGED_SNORM_RELATIVE","CONVERGED_ITS"," ","CONVERGED_TR_DELTA","SNESConvergedReason","",0}; 26 const char *const *SNESConvergedReasons = SNESConvergedReasons_Shifted + 10; 27 28 const char *SNESNormSchedules_Shifted[] = {"DEFAULT","NONE","ALWAYS","INITIALONLY","FINALONLY","INITIALFINALONLY","SNESNormSchedule","SNES_NORM_",0}; 29 const char *const *const SNESNormSchedules = SNESNormSchedules_Shifted + 1; 30 31 const char *SNESFunctionTypes_Shifted[] = {"DEFAULT","UNPRECONDITIONED","PRECONDITIONED","SNESFunctionType","SNES_FUNCTION_",0}; 32 const char *const *const SNESFunctionTypes = SNESFunctionTypes_Shifted + 1; 33 34 /*@C 35 SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package. 36 37 Not Collective 38 39 Level: advanced 40 41 .keywords: SNES, register, all 42 43 .seealso: SNESRegisterDestroy() 44 @*/ 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(SNESVINEWTONRSLS, SNESCreate_VINEWTONRSLS);CHKERRQ(ierr); 58 ierr = SNESRegister(SNESVINEWTONSSLS, SNESCreate_VINEWTONSSLS);CHKERRQ(ierr); 59 ierr = SNESRegister(SNESNGMRES, SNESCreate_NGMRES);CHKERRQ(ierr); 60 ierr = SNESRegister(SNESQN, SNESCreate_QN);CHKERRQ(ierr); 61 ierr = SNESRegister(SNESSHELL, SNESCreate_Shell);CHKERRQ(ierr); 62 ierr = SNESRegister(SNESNGS, SNESCreate_NGS);CHKERRQ(ierr); 63 ierr = SNESRegister(SNESNCG, SNESCreate_NCG);CHKERRQ(ierr); 64 ierr = SNESRegister(SNESFAS, SNESCreate_FAS);CHKERRQ(ierr); 65 ierr = SNESRegister(SNESMS, SNESCreate_MS);CHKERRQ(ierr); 66 ierr = SNESRegister(SNESNASM, SNESCreate_NASM);CHKERRQ(ierr); 67 ierr = SNESRegister(SNESANDERSON, SNESCreate_Anderson);CHKERRQ(ierr); 68 ierr = SNESRegister(SNESASPIN, SNESCreate_ASPIN);CHKERRQ(ierr); 69 ierr = SNESRegister(SNESCOMPOSITE, SNESCreate_Composite);CHKERRQ(ierr); 70 PetscFunctionReturn(0); 71 } 72