Actual source code: snesregi.c

  1: #define PETSCSNES_DLL

 3:  #include private/snesimpl.h

  6: EXTERN PetscErrorCode  SNESCreate_LS(SNES);
  7: EXTERN PetscErrorCode  SNESCreate_TR(SNES);
  8: EXTERN PetscErrorCode  SNESCreate_Test(SNES);
  9: EXTERN PetscErrorCode  SNESCreate_Picard(SNES);

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

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

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

 30:    Not Collective

 32:    Level: advanced

 34: .keywords: SNES, register, all

 36: .seealso:  SNESRegisterDestroy()
 37: @*/
 38: PetscErrorCode  SNESRegisterAll(const char path[])
 39: {

 43:   SNESRegisterAllCalled = PETSC_TRUE;

 45:   SNESRegisterDynamic("ls",   path,"SNESCreate_LS",SNESCreate_LS);
 46:   SNESRegisterDynamic("tr",   path,"SNESCreate_TR",SNESCreate_TR);
 47:   SNESRegisterDynamic("test", path,"SNESCreate_Test", SNESCreate_Test);
 48:   SNESRegisterDynamic("picard", path,"SNESCreate_Picard",SNESCreate_Picard);

 50:   return(0);
 51: }