Actual source code: snesregi.c

      1: #define PETSCSNES_DLL

     3:  #include src/snes/snesimpl.h

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

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

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

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

     29:    Not Collective

     31:    Level: advanced

     33: .keywords: SNES, register, all

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

     42:   SNESRegisterAllCalled = PETSC_TRUE;

     44:   SNESRegisterDynamic("ls",   path,"SNESCreate_LS",SNESCreate_LS);
     45:   SNESRegisterDynamic("tr",   path,"SNESCreate_TR",SNESCreate_TR);
     46:   SNESRegisterDynamic("test", path,"SNESCreate_Test", SNESCreate_Test);

     48:   return(0);
     49: }