Actual source code: snesregi.c

  2: #include <private/snesimpl.h>     /*I  "petscsnes.h"  I*/


 15: const char *SNESConvergedReasons_Shifted[]  = {" "," ","DIVERGED_LOCAL_MIN"," ","DIVERGED_LINE_SEARCH","DIVERGED_MAX_IT",
 16:                                                "DIVERGED_FNORM_NAN","DIVERGED_LINEAR_SOLVE","DIVERGED_FUNCTION_COUNT","DIVERGED_FUNCTION_DOMAIN",
 17:                                                "CONVERGED_ITERATING"," ","CONVERGED_FNORM_ABS","CONVERGED_FNORM_RELATIVE",
 18:                                                "CONVERGED_PNORM_RELATIVE","CONVERGED_ITS"," ","CONVERGED_TR_DELTA","SNESConvergedReason","",0};
 19: const char *const*SNESConvergedReasons = SNESConvergedReasons_Shifted + 10;

 21: /*
 22:       This is used by SNESSetType() to make sure that at least one 
 23:     SNESRegisterAll() is called. In general, if there is more than one
 24:     DLL then SNESRegisterAll() may be called several times.
 25: */

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

 33:    Not Collective

 35:    Level: advanced

 37: .keywords: SNES, register, all

 39: .seealso:  SNESRegisterDestroy()
 40: @*/
 41: PetscErrorCode  SNESRegisterAll(const char path[])
 42: {

 46:   SNESRegisterAllCalled = PETSC_TRUE;

 48:   SNESRegisterDynamic(SNESLS,     path,"SNESCreate_LS",     SNESCreate_LS);
 49:   SNESRegisterDynamic(SNESTR,     path,"SNESCreate_TR",     SNESCreate_TR);
 50:   SNESRegisterDynamic(SNESTEST,   path,"SNESCreate_Test",   SNESCreate_Test);
 51:   SNESRegisterDynamic(SNESPICARD, path,"SNESCreate_Picard", SNESCreate_Picard);
 52:   SNESRegisterDynamic(SNESKSPONLY,path,"SNESCreate_KSPONLY",SNESCreate_KSPONLY);
 53:   SNESRegisterDynamic(SNESVI,     path,"SNESCreate_VI",     SNESCreate_VI);
 54:   SNESRegisterDynamic(SNESNGMRES, path,"SNESCreate_NGMRES", SNESCreate_NGMRES);
 55:   SNESRegisterDynamic(SNESSORQN,  path,"SNESCreate_SORQN", SNESCreate_SORQN);
 56:   return(0);
 57: }