Actual source code: snesregi.c

petsc-3.3-p7 2013-05-11
  2: #include <petsc-private/snesimpl.h>     /*I  "petscsnes.h"  I*/

  4: EXTERN_C_BEGIN
  5: extern PetscErrorCode  SNESCreate_LS(SNES);
  6: extern PetscErrorCode  SNESCreate_TR(SNES);
  7: extern PetscErrorCode  SNESCreate_Test(SNES);
  8: extern PetscErrorCode  SNESCreate_NRichardson(SNES);
  9: extern PetscErrorCode  SNESCreate_KSPONLY(SNES);
 10: extern PetscErrorCode  SNESCreate_VIRS(SNES);
 11: extern PetscErrorCode  SNESCreate_VISS(SNES);
 12: extern PetscErrorCode  SNESCreate_NGMRES(SNES);
 13: extern PetscErrorCode  SNESCreate_QN(SNES);
 14: extern PetscErrorCode  SNESCreate_Shell(SNES);
 15: extern PetscErrorCode  SNESCreate_GS(SNES);
 16: extern PetscErrorCode  SNESCreate_NCG(SNES);
 17: extern PetscErrorCode  SNESCreate_FAS(SNES);
 18: extern PetscErrorCode  SNESCreate_MS(SNES);
 19: EXTERN_C_END

 21: const char *SNESConvergedReasons_Shifted[]  = {" "," ","DIVERGED_LOCAL_MIN","DIVERGED_INNER","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT",
 22:                                                "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN",
 23:                                                "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE",
 24:                                                "CONVERGED_SNORM_RELATIVE","CONVERGED_ITS"," ","CONVERGED_TR_DELTA","SNESConvergedReason","",0};
 25: const char *const*SNESConvergedReasons = SNESConvergedReasons_Shifted + 10;

 27: const char *SNESNormTypes_Shifted[]        = {"DEFAULT","NONE","FUNCTION","INITIALONLY","FINALONLY","INITIALFINALONLY","SNESNormType","SNES_NORM_",0};
 28: const char *const*const SNESNormTypes = SNESNormTypes_Shifted + 1;

 30: /*
 31:       This is used by SNESSetType() to make sure that at least one 
 32:     SNESRegisterAll() is called. In general, if there is more than one
 33:     DLL then SNESRegisterAll() may be called several times.
 34: */
 35: extern PetscBool  SNESRegisterAllCalled;

 39: /*@C
 40:    SNESRegisterAll - Registers all of the nonlinear solver methods in the SNES package.

 42:    Not Collective

 44:    Level: advanced

 46: .keywords: SNES, register, all

 48: .seealso:  SNESRegisterDestroy()
 49: @*/
 50: PetscErrorCode  SNESRegisterAll(const char path[])
 51: {

 55:   SNESRegisterAllCalled = PETSC_TRUE;

 57:   SNESRegisterDynamic(SNESLS,          path,"SNESCreate_LS",          SNESCreate_LS);
 58:   SNESRegisterDynamic(SNESTR,          path,"SNESCreate_TR",          SNESCreate_TR);
 59:   SNESRegisterDynamic(SNESTEST,        path,"SNESCreate_Test",        SNESCreate_Test);
 60:   SNESRegisterDynamic(SNESNRICHARDSON, path,"SNESCreate_NRichardson", SNESCreate_NRichardson);
 61:   SNESRegisterDynamic(SNESKSPONLY,     path,"SNESCreate_KSPONLY",     SNESCreate_KSPONLY);
 62:   SNESRegisterDynamic(SNESVIRS,        path,"SNESCreate_VIRS",        SNESCreate_VIRS);
 63:   SNESRegisterDynamic(SNESVISS,        path,"SNESCreate_VISS",        SNESCreate_VISS);
 64:   SNESRegisterDynamic(SNESNGMRES,      path,"SNESCreate_NGMRES",      SNESCreate_NGMRES);
 65:   SNESRegisterDynamic(SNESQN,          path,"SNESCreate_QN",          SNESCreate_QN);
 66:   SNESRegisterDynamic(SNESSHELL,       path,"SNESCreate_Shell",       SNESCreate_Shell);
 67:   SNESRegisterDynamic(SNESGS,          path,"SNESCreate_GS",          SNESCreate_GS);
 68:   SNESRegisterDynamic(SNESNCG,         path,"SNESCreate_NCG",         SNESCreate_NCG);
 69:   SNESRegisterDynamic(SNESFAS,         path,"SNESCreate_FAS",         SNESCreate_FAS);
 70:   SNESRegisterDynamic(SNESMS,          path,"SNESCreate_MS",          SNESCreate_MS);
 71:   return(0);
 72: }