Date: 2021-09-20T09:44:00+00:00

Actual source code: svdregis.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/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: }