1eaa2832dSBarry Smith 2af0996ceSBarry Smith #include <petsc/private/snesimpl.h> /*I "petscsnes.h" I*/ 3fb2e594dSBarry Smith 48cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_NEWTONLS(SNES); 58cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_NEWTONTR(SNES); 68cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_NRichardson(SNES); 78cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_KSPONLY(SNES); 81ef27442SStefano Zampini PETSC_EXTERN PetscErrorCode SNESCreate_KSPTRANSPOSEONLY(SNES); 98cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_VINEWTONRSLS(SNES); 108cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_VINEWTONSSLS(SNES); 118cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_NGMRES(SNES); 128cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_QN(SNES); 138cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_Shell(SNES); 14be95d8f1SBarry Smith PETSC_EXTERN PetscErrorCode SNESCreate_NGS(SNES); 158cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_NCG(SNES); 168cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_FAS(SNES); 178cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_MS(SNES); 188cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_NASM(SNES); 198cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_Anderson(SNES); 208cc058d9SJed Brown PETSC_EXTERN PetscErrorCode SNESCreate_ASPIN(SNES); 21eed5f15bSPeter Brune PETSC_EXTERN PetscErrorCode SNESCreate_Composite(SNES); 22561742edSMatthew G. Knepley PETSC_EXTERN PetscErrorCode SNESCreate_Patch(SNES); 23eaa2832dSBarry Smith 24*1c6b2ff8SBarry Smith const char *SNESConvergedReasons_Shifted[] = {" ","DIVERGED_TR_DELTA","DIVERGED_JACOBIAN_DOMAIN","DIVERGED_DTOL","DIVERGED_LOCAL_MIN","DIVERGED_INNER","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT", 2564075487SBarry Smith "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN", 269dcbbd2bSBarry Smith "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE", 27*1c6b2ff8SBarry Smith "CONVERGED_SNORM_RELATIVE","CONVERGED_ITS"," ","SNESConvergedReason","",0}; 28*1c6b2ff8SBarry Smith const char *const *SNESConvergedReasons = SNESConvergedReasons_Shifted + 12; 299dcbbd2bSBarry Smith 30365a6726SPeter Brune const char *SNESNormSchedules_Shifted[] = {"DEFAULT","NONE","ALWAYS","INITIALONLY","FINALONLY","INITIALFINALONLY","SNESNormSchedule","SNES_NORM_",0}; 31365a6726SPeter Brune const char *const *const SNESNormSchedules = SNESNormSchedules_Shifted + 1; 32fdacfa88SPeter Brune 3347073ea2SPeter Brune const char *SNESFunctionTypes_Shifted[] = {"DEFAULT","UNPRECONDITIONED","PRECONDITIONED","SNESFunctionType","SNES_FUNCTION_",0}; 3447073ea2SPeter Brune const char *const *const SNESFunctionTypes = SNESFunctionTypes_Shifted + 1; 3547073ea2SPeter Brune 3683f0b094SBarry Smith /*@C 3782bf6240SBarry Smith SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package. 38eaa2832dSBarry Smith 39fee21e36SBarry Smith Not Collective 40fee21e36SBarry Smith 4136851e7fSLois Curfman McInnes Level: advanced 4236851e7fSLois Curfman McInnes 4382bf6240SBarry Smith .seealso: SNESRegisterDestroy() 44eaa2832dSBarry Smith @*/ 45607a6623SBarry Smith PetscErrorCode SNESRegisterAll(void) 46eaa2832dSBarry Smith { 47dfbe8321SBarry Smith PetscErrorCode ierr; 4882bf6240SBarry Smith 493a40ed3dSBarry Smith PetscFunctionBegin; 500f51fdf8SToby Isaac if (SNESRegisterAllCalled) PetscFunctionReturn(0); 514c49b128SBarry Smith SNESRegisterAllCalled = PETSC_TRUE; 5282bf6240SBarry Smith 53bdf89e91SBarry Smith ierr = SNESRegister(SNESNEWTONLS, SNESCreate_NEWTONLS);CHKERRQ(ierr); 54bdf89e91SBarry Smith ierr = SNESRegister(SNESNEWTONTR, SNESCreate_NEWTONTR);CHKERRQ(ierr); 55bdf89e91SBarry Smith ierr = SNESRegister(SNESNRICHARDSON, SNESCreate_NRichardson);CHKERRQ(ierr); 56bdf89e91SBarry Smith ierr = SNESRegister(SNESKSPONLY, SNESCreate_KSPONLY);CHKERRQ(ierr); 571ef27442SStefano Zampini ierr = SNESRegister(SNESKSPTRANSPOSEONLY, SNESCreate_KSPTRANSPOSEONLY);CHKERRQ(ierr); 58bdf89e91SBarry Smith ierr = SNESRegister(SNESVINEWTONRSLS, SNESCreate_VINEWTONRSLS);CHKERRQ(ierr); 59bdf89e91SBarry Smith ierr = SNESRegister(SNESVINEWTONSSLS, SNESCreate_VINEWTONSSLS);CHKERRQ(ierr); 60bdf89e91SBarry Smith ierr = SNESRegister(SNESNGMRES, SNESCreate_NGMRES);CHKERRQ(ierr); 61bdf89e91SBarry Smith ierr = SNESRegister(SNESQN, SNESCreate_QN);CHKERRQ(ierr); 62bdf89e91SBarry Smith ierr = SNESRegister(SNESSHELL, SNESCreate_Shell);CHKERRQ(ierr); 63be95d8f1SBarry Smith ierr = SNESRegister(SNESNGS, SNESCreate_NGS);CHKERRQ(ierr); 64bdf89e91SBarry Smith ierr = SNESRegister(SNESNCG, SNESCreate_NCG);CHKERRQ(ierr); 65bdf89e91SBarry Smith ierr = SNESRegister(SNESFAS, SNESCreate_FAS);CHKERRQ(ierr); 66bdf89e91SBarry Smith ierr = SNESRegister(SNESMS, SNESCreate_MS);CHKERRQ(ierr); 67bdf89e91SBarry Smith ierr = SNESRegister(SNESNASM, SNESCreate_NASM);CHKERRQ(ierr); 68bdf89e91SBarry Smith ierr = SNESRegister(SNESANDERSON, SNESCreate_Anderson);CHKERRQ(ierr); 69bdf89e91SBarry Smith ierr = SNESRegister(SNESASPIN, SNESCreate_ASPIN);CHKERRQ(ierr); 70eed5f15bSPeter Brune ierr = SNESRegister(SNESCOMPOSITE, SNESCreate_Composite);CHKERRQ(ierr); 71561742edSMatthew G. Knepley ierr = SNESRegister(SNESPATCH, SNESCreate_Patch);CHKERRQ(ierr); 723a40ed3dSBarry Smith PetscFunctionReturn(0); 73eaa2832dSBarry Smith } 74