Actual source code: epsregis.c

slepc-3.15.2 2021-09-20
Report Typos and Errors
  1: /*
  2:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3:    SLEPc - Scalable Library for Eigenvalue Problem Computations
  4:    Copyright (c) 2002-2021, Universitat Politecnica de Valencia, Spain

  6:    This file is part of SLEPc.
  7:    SLEPc is distributed under a 2-clause BSD license (see LICENSE).
  8:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  9: */

 11: #include <slepc/private/epsimpl.h>

 13: SLEPC_EXTERN PetscErrorCode EPSCreate_Power(EPS);
 14: SLEPC_EXTERN PetscErrorCode EPSCreate_Subspace(EPS);
 15: SLEPC_EXTERN PetscErrorCode EPSCreate_Arnoldi(EPS);
 16: SLEPC_EXTERN PetscErrorCode EPSCreate_Lanczos(EPS);
 17: SLEPC_EXTERN PetscErrorCode EPSCreate_KrylovSchur(EPS);
 18: SLEPC_EXTERN PetscErrorCode EPSCreate_GD(EPS);
 19: SLEPC_EXTERN PetscErrorCode EPSCreate_JD(EPS);
 20: SLEPC_EXTERN PetscErrorCode EPSCreate_RQCG(EPS);
 21: SLEPC_EXTERN PetscErrorCode EPSCreate_LOBPCG(EPS);
 22: SLEPC_EXTERN PetscErrorCode EPSCreate_CISS(EPS);
 23: SLEPC_EXTERN PetscErrorCode EPSCreate_LyapII(EPS);
 24: SLEPC_EXTERN PetscErrorCode EPSCreate_LAPACK(EPS);
 25: #if defined(SLEPC_HAVE_ARPACK)
 26: SLEPC_EXTERN PetscErrorCode EPSCreate_ARPACK(EPS);
 27: #endif
 28: #if defined(SLEPC_HAVE_BLZPACK)
 29: SLEPC_EXTERN PetscErrorCode EPSCreate_BLZPACK(EPS);
 30: #endif
 31: #if defined(SLEPC_HAVE_TRLAN)
 32: SLEPC_EXTERN PetscErrorCode EPSCreate_TRLAN(EPS);
 33: #endif
 34: #if defined(SLEPC_HAVE_BLOPEX)
 35: SLEPC_EXTERN PetscErrorCode EPSCreate_BLOPEX(EPS);
 36: #endif
 37: #if defined(SLEPC_HAVE_PRIMME)
 38: SLEPC_EXTERN PetscErrorCode EPSCreate_PRIMME(EPS);
 39: #endif
 40: #if defined(SLEPC_HAVE_FEAST)
 41: SLEPC_EXTERN PetscErrorCode EPSCreate_FEAST(EPS);
 42: #endif
 43: #if defined(SLEPC_HAVE_SCALAPACK)
 44: SLEPC_EXTERN PetscErrorCode EPSCreate_ScaLAPACK(EPS);
 45: #endif
 46: #if defined(SLEPC_HAVE_ELPA)
 47: SLEPC_EXTERN PetscErrorCode EPSCreate_ELPA(EPS);
 48: #endif
 49: #if defined(SLEPC_HAVE_ELEMENTAL)
 50: SLEPC_EXTERN PetscErrorCode EPSCreate_Elemental(EPS);
 51: #endif
 52: #if defined(SLEPC_HAVE_EVSL)
 53: SLEPC_EXTERN PetscErrorCode EPSCreate_EVSL(EPS);
 54: #endif

 56: /*@C
 57:   EPSRegisterAll - Registers all the eigenvalue solvers in the EPS package.

 59:   Not Collective

 61:   Level: advanced

 63: .seealso:  EPSRegister()
 64: @*/
 65: PetscErrorCode EPSRegisterAll(void)
 66: {

 70:   if (EPSRegisterAllCalled) return(0);
 71:   EPSRegisterAllCalled = PETSC_TRUE;
 72:   EPSRegister(EPSPOWER,EPSCreate_Power);
 73:   EPSRegister(EPSSUBSPACE,EPSCreate_Subspace);
 74:   EPSRegister(EPSARNOLDI,EPSCreate_Arnoldi);
 75:   EPSRegister(EPSLANCZOS,EPSCreate_Lanczos);
 76:   EPSRegister(EPSKRYLOVSCHUR,EPSCreate_KrylovSchur);
 77:   EPSRegister(EPSGD,EPSCreate_GD);
 78:   EPSRegister(EPSJD,EPSCreate_JD);
 79:   EPSRegister(EPSRQCG,EPSCreate_RQCG);
 80:   EPSRegister(EPSLOBPCG,EPSCreate_LOBPCG);
 81:   EPSRegister(EPSCISS,EPSCreate_CISS);
 82:   EPSRegister(EPSLYAPII,EPSCreate_LyapII);
 83:   EPSRegister(EPSLAPACK,EPSCreate_LAPACK);
 84: #if defined(SLEPC_HAVE_ARPACK)
 85:   EPSRegister(EPSARPACK,EPSCreate_ARPACK);
 86: #endif
 87: #if defined(SLEPC_HAVE_BLZPACK)
 88:   EPSRegister(EPSBLZPACK,EPSCreate_BLZPACK);
 89: #endif
 90: #if defined(SLEPC_HAVE_TRLAN)
 91:   EPSRegister(EPSTRLAN,EPSCreate_TRLAN);
 92: #endif
 93: #if defined(SLEPC_HAVE_BLOPEX)
 94:   EPSRegister(EPSBLOPEX,EPSCreate_BLOPEX);
 95: #endif
 96: #if defined(SLEPC_HAVE_PRIMME)
 97:   EPSRegister(EPSPRIMME,EPSCreate_PRIMME);
 98: #endif
 99: #if defined(SLEPC_HAVE_FEAST)
100:   EPSRegister(EPSFEAST,EPSCreate_FEAST);
101: #endif
102: #if defined(SLEPC_HAVE_SCALAPACK)
103:   EPSRegister(EPSSCALAPACK,EPSCreate_ScaLAPACK);
104: #endif
105: #if defined(SLEPC_HAVE_ELPA)
106:   EPSRegister(EPSELPA,EPSCreate_ELPA);
107: #endif
108: #if defined(SLEPC_HAVE_ELEMENTAL)
109:   EPSRegister(EPSELEMENTAL,EPSCreate_Elemental);
110: #endif
111: #if defined(SLEPC_HAVE_EVSL)
112:   EPSRegister(EPSEVSL,EPSCreate_EVSL);
113: #endif
114:   return(0);
115: }

117: /*@C
118:   EPSMonitorRegisterAll - Registers all the monitors in the EPS package.

120:   Not Collective

122:   Level: advanced
123: @*/
124: PetscErrorCode EPSMonitorRegisterAll(void)
125: {

129:   if (EPSMonitorRegisterAllCalled) return(0);
130:   EPSMonitorRegisterAllCalled = PETSC_TRUE;

132:   EPSMonitorRegister("first_approximation",PETSCVIEWERASCII,PETSC_VIEWER_DEFAULT,EPSMonitorFirst,NULL,NULL);
133:   EPSMonitorRegister("first_approximation",PETSCVIEWERDRAW,PETSC_VIEWER_DRAW_LG,EPSMonitorFirstDrawLG,EPSMonitorFirstDrawLGCreate,NULL);
134:   EPSMonitorRegister("all_approximations",PETSCVIEWERASCII,PETSC_VIEWER_DEFAULT,EPSMonitorAll,NULL,NULL);
135:   EPSMonitorRegister("all_approximations",PETSCVIEWERDRAW,PETSC_VIEWER_DRAW_LG,EPSMonitorAllDrawLG,EPSMonitorAllDrawLGCreate,NULL);
136:   EPSMonitorRegister("convergence_history",PETSCVIEWERASCII,PETSC_VIEWER_DEFAULT,EPSMonitorConverged,EPSMonitorConvergedCreate,EPSMonitorConvergedDestroy);
137:   EPSMonitorRegister("convergence_history",PETSCVIEWERDRAW,PETSC_VIEWER_DRAW_LG,EPSMonitorConvergedDrawLG,EPSMonitorConvergedDrawLGCreate,EPSMonitorConvergedDestroy);
138:   return(0);
139: }