| extern PetscCookie ST_COOKIE; |
| /*S |
| ST - Abstract SLEPc object that manages spectral transformations. |
| This object is accessed only in advanced applications. |
| Level: beginner |
| .seealso: STCreate(), EPS |
| S*/ |
| typedef struct _p_ST* ST; |
| /*E |
| STType - String with the name of a SLEPc spectral transformation |
| Level: beginner |
| .seealso: STSetType(), ST |
| E*/ |
| #define STType const char* |
| #define STSHELL "shell" |
| #define STSHIFT "shift" |
| #define STSINV "sinvert" |
| #define STCAYLEY "cayley" |
| #define STFOLD "fold" |
| #define STType const char* |
| EXTERN PetscErrorCode STCreate(MPI_Comm,ST*); |
| EXTERN PetscErrorCode STDestroy(ST); |
| EXTERN PetscErrorCode STGetOperationCounters(ST,int*,int*); |
| EXTERN PetscErrorCode STResetOperationCounters(ST); |
| /*E |
| STMatMode - determines how to handle the coefficient matrix associated |
| to the spectral transformation |
| Level: intermediate |
| .seealso: STSetMatMode(), STGetMatMode() |
| E*/ |
| typedef enum { STMATMODE_COPY, STMATMODE_INPLACE, |
| STMATMODE_SHELL } STMatMode; |
| EXTERN PetscErrorCode STSetMatMode(ST,STMatMode); |
| S*/ |
| typedef struct _p_EPS* EPS; |
| /*E |
| EPSType - String with the name of a SLEPc eigensolver |
| Level: beginner |
| .seealso: EPSSetType(), EPS |
| E*/ |
| #define EPSType const char* |
| #define EPSPOWER "power" |
| #define EPSSUBSPACE "subspace" |
| #define EPSBLOPEX "blopex" |
| #define EPSPRIMME "primme" |
| /*E |
| EPSProblemType - determines the type of eigenvalue problem |
| Level: beginner |
| .seealso: EPSSetProblemType(), EPSGetProblemType() |
| E*/ |
| typedef enum { EPS_HEP=1, EPS_GHEP, |
| EPS_NHEP, EPS_GNHEP, EPS_PGNHEP } EPSProblemType; |
| /*E |
| EPSClass - determines if the eigensolver is one- or two-sided |
| Level: intermediate |
| .seealso: EPSSetClass(), EPSGetClass() |
| E*/ |
| typedef enum { EPS_ONE_SIDE, EPS_TWO_SIDE } EPSClass; |
| /*E |
| EPSWhich - determines which part of the spectrum is requested |
| Level: intermediate |
| .seealso: EPSSetWhichEigenpairs(), EPSGetWhichEigenpairs() |
| E*/ |
| typedef enum { EPS_LARGEST_MAGNITUDE, EPS_SMALLEST_MAGNITUDE, |
| EPS_LARGEST_REAL, EPS_SMALLEST_REAL, |
| EPS_LARGEST_IMAGINARY, EPS_SMALLEST_IMAGINARY } EPSWhich; |
| EXTERN PetscErrorCode EPSAppendOptionsPrefix(EPS,const char*); |
| EXTERN PetscErrorCode EPSGetOptionsPrefix(EPS,const char*[]); |
| /*E |
| EPSConvergedReason - reason an eigensolver was said to |
| have converged or diverged |
| Level: beginner |
| .seealso: EPSSolve(), EPSGetConvergedReason(), EPSSetTolerances() |
| E*/ |
| typedef enum {/* converged */ |
| EPS_CONVERGED_TOL = 2, |
| /* diverged */ |
| /* --------- options specific to particular eigensolvers -------- */ |
| /*E |
| EPSPowerShiftType - determines the type of shift used in the Power iteration |
| Level: advanced |
| .seealso: EPSPowerSetShiftType(), EPSPowerGetShiftType() |
| E*/ |
| typedef enum { EPSPOWER_SHIFT_CONSTANT, EPSPOWER_SHIFT_RAYLEIGH, |
| EPSPOWER_SHIFT_WILKINSON } EPSPowerShiftType; |
| EXTERN PetscErrorCode EPSArnoldiSetDelayed(EPS,PetscTruth); |
| EXTERN PetscErrorCode EPSArnoldiGetDelayed(EPS,PetscTruth*); |
| /*E |
| EPSLanczosReorthogType - determines the type of reorthogonalization |
| used in the Lanczos method |
| Level: advanced |
| .seealso: EPSLanczosSetReorthog(), EPSLanczosGetReorthog() |
| E*/ |
| typedef enum { EPSLANCZOS_REORTHOG_LOCAL, |
| EPSLANCZOS_REORTHOG_FULL, |
| EPSLANCZOS_REORTHOG_SELECTIVE, |
| EXTERN PetscErrorCode EPSBlzpackSetInterval(EPS,PetscReal,PetscReal); |
| EXTERN PetscErrorCode EPSBlzpackSetNSteps(EPS,int); |
| /*E |
| EPSPRIMMEMethod - determines the method selected in the PRIMME library |
| Level: advanced |
| .seealso: EPSPRIMMESetMethod(), EPSPRIMMEGetMethod() |
| E*/ |
| typedef enum { |
| EPSPRIMME_DYNAMIC, |
| EPSPRIMME_DEFAULT_MIN_TIME, |
| EPSPRIMME_LOBPCG_ORTHOBASIS_WINDOW |
| } EPSPRIMMEMethod; |
| /*E |
| EPSPRIMMEPrecond - determines the type of preconditioning |
| used in the PRIMME library |
| Level: advanced |
| .seealso: EPSPRIMMESetPrecond(), EPSPRIMMEGetPrecond() |
| E*/ |
| typedef enum { |
| EPSPRIMME_NONE, |
| EPSPRIMME_DIAGONAL |
| extern PetscCookie IP_COOKIE; |
| /*E |
| IPOrthogonalizationType - determines what type of orthogonalization to use |
| Level: advanced |
| .seealso: IPSetOrthogonalization(), IPGetOrthogonalization(), IPOrthogonalize() |
| E*/ |
| typedef enum { IP_MGS_ORTH, IP_CGS_ORTH } IPOrthogonalizationType; |
| /*E |
| IPOrthogonalizationRefinementType - determines what type of refinement |
| to use during orthogonalization |
| Level: advanced |
| .seealso: IPSetOrthogonalization(), IPGetOrthogonalization(), IPOrthogonalize() |
| E*/ |
| typedef enum { IP_ORTH_REFINE_NEVER, IP_ORTH_REFINE_IFNEEDED, |
| IP_ORTH_REFINE_ALWAYS } IPOrthogonalizationRefinementType; |
| /*S |
| IP - Abstraction of a vector inner product, that can be defined |
| in different ways. Using this object is not required for application |
| programmers. |
| Level: beginner |
| .seealso: IPCreate() |
| S*/ |
| typedef struct _p_IP* IP; |
| EXTERN PetscErrorCode IPInitializePackage(char *path); |
| EXTERN PetscErrorCode IPBiOrthogonalize(IP,int,Vec*,Vec*,Vec,PetscScalar*,PetscReal*); |
| EXTERN PetscErrorCode IPQRDecomposition(IP,Vec*,int,int,PetscScalar*,int,Vec); |
| /*E |
| IPBilinearForm - determines the type of bilinear/sesquilinear form |
| Level: developer |
| .seealso: IPSetBilinearForm(), IPGetBilinearForm() |
| E*/ |
| typedef enum { IPINNER_HERMITIAN, IPINNER_SYMMETRIC } IPBilinearForm; |
| EXTERN PetscErrorCode IPSetBilinearForm(IP,Mat,IPBilinearForm); |
| EXTERN PetscErrorCode IPGetBilinearForm(IP,Mat*,IPBilinearForm*); |
| S*/ |
| typedef struct _p_SVD* SVD; |
| /*E |
| SVDType - String with the name of a SLEPc singular value solver |
| Level: beginner |
| .seealso: SVDSetType(), SVD |
| E*/ |
| #define SVDType const char* |
| #define SVDCROSS "cross" |
| #define SVDCYCLIC "cyclic" |
| #define SVDLANCZOS "lanczos" |
| #define SVDTRLANCZOS "trlanczos" |
| /*E |
| SVDTransposeMode - determines how to handle the transpose of the matrix |
| Level: advanced |
| .seealso: SVDSetTransposeMode(), SVDGetTransposeMode() |
| E*/ |
| typedef enum { SVD_TRANSPOSE_EXPLICIT, SVD_TRANSPOSE_IMPLICIT } SVDTransposeMode; |
| /*E |
| SVDWhich - determines whether largest or smallest singular triplets |
| are to be computed |
| Level: intermediate |
| .seealso: SVDSetWhichSingularTriplets(), SVDGetWhichSingularTriplets() |
| E*/ |
| typedef enum { SVD_LARGEST, SVD_SMALLEST } SVDWhich; |
| /*E |
| SVDConvergedReason - reason a singular value solver was said to |
| have converged or diverged |
| Level: beginner |
| .seealso: SVDSolve(), SVDGetConvergedReason(), SVDSetTolerances() |
| E*/ |
| typedef enum {/* converged */ |
| SVD_CONVERGED_TOL = 2, |
| /* diverged */ |