Actual source code: svdregis.c

slepc-3.15.0 2021-03-31
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/svdimpl.h>

 13: SLEPC_EXTERN PetscErrorCode SVDCreate_Cross(SVD);
 14: SLEPC_EXTERN PetscErrorCode SVDCreate_Cyclic(SVD);
 15: SLEPC_EXTERN PetscErrorCode SVDCreate_LAPACK(SVD);
 16: SLEPC_EXTERN PetscErrorCode SVDCreate_Lanczos(SVD);
 17: SLEPC_EXTERN PetscErrorCode SVDCreate_TRLanczos(SVD);
 18: SLEPC_EXTERN PetscErrorCode SVDCreate_Randomized(SVD);
 19: #if defined(SLEPC_HAVE_SCALAPACK)
 20: SLEPC_EXTERN PetscErrorCode SVDCreate_ScaLAPACK(SVD);
 21: #endif
 22: #if defined(SLEPC_HAVE_ELEMENTAL)
 23: SLEPC_EXTERN PetscErrorCode SVDCreate_Elemental(SVD);
 24: #endif
 25: #if defined(SLEPC_HAVE_PRIMME)
 26: SLEPC_EXTERN PetscErrorCode SVDCreate_PRIMME(SVD);
 27: #endif

 29: /*@C
 30:    SVDRegisterAll - Registers all the singular value solvers in the SVD package.

 32:    Not Collective

 34:    Level: advanced

 36: .seealso:  SVDRegister()
 37: @*/
 38: PetscErrorCode SVDRegisterAll(void)
 39: {

 43:   if (SVDRegisterAllCalled) return(0);
 44:   SVDRegisterAllCalled = PETSC_TRUE;
 45:   SVDRegister(SVDCROSS,SVDCreate_Cross);
 46:   SVDRegister(SVDCYCLIC,SVDCreate_Cyclic);
 47:   SVDRegister(SVDLAPACK,SVDCreate_LAPACK);
 48:   SVDRegister(SVDLANCZOS,SVDCreate_Lanczos);
 49:   SVDRegister(SVDTRLANCZOS,SVDCreate_TRLanczos);
 50:   SVDRegister(SVDRANDOMIZED,SVDCreate_Randomized);
 51: #if defined(SLEPC_HAVE_SCALAPACK)
 52:   SVDRegister(SVDSCALAPACK,SVDCreate_ScaLAPACK);
 53: #endif
 54: #if defined(SLEPC_HAVE_ELEMENTAL)
 55:   SVDRegister(SVDELEMENTAL,SVDCreate_Elemental);
 56: #endif
 57: #if defined(SLEPC_HAVE_PRIMME)
 58:   SVDRegister(SVDPRIMME,SVDCreate_PRIMME);
 59: #endif
 60:   return(0);
 61: }

 63: /*@C
 64:   SVDMonitorRegisterAll - Registers all the monitors in the SVD package.

 66:   Not Collective

 68:   Level: advanced
 69: @*/
 70: PetscErrorCode SVDMonitorRegisterAll(void)
 71: {

 75:   if (SVDMonitorRegisterAllCalled) return(0);
 76:   SVDMonitorRegisterAllCalled = PETSC_TRUE;

 78:   SVDMonitorRegister("first_approximation",PETSCVIEWERASCII,PETSC_VIEWER_DEFAULT,SVDMonitorFirst,NULL,NULL);
 79:   SVDMonitorRegister("first_approximation",PETSCVIEWERDRAW,PETSC_VIEWER_DRAW_LG,SVDMonitorFirstDrawLG,SVDMonitorFirstDrawLGCreate,NULL);
 80:   SVDMonitorRegister("all_approximations",PETSCVIEWERASCII,PETSC_VIEWER_DEFAULT,SVDMonitorAll,NULL,NULL);
 81:   SVDMonitorRegister("all_approximations",PETSCVIEWERDRAW,PETSC_VIEWER_DRAW_LG,SVDMonitorAllDrawLG,SVDMonitorAllDrawLGCreate,NULL);
 82:   SVDMonitorRegister("convergence_history",PETSCVIEWERASCII,PETSC_VIEWER_DEFAULT,SVDMonitorConverged,SVDMonitorConvergedCreate,SVDMonitorConvergedDestroy);
 83:   SVDMonitorRegister("convergence_history",PETSCVIEWERDRAW,PETSC_VIEWER_DRAW_LG,SVDMonitorConvergedDrawLG,SVDMonitorConvergedDrawLGCreate,SVDMonitorConvergedDestroy);
 84:   return(0);
 85: }