/usr/lib/slepcdir/3.4.2/include/slepcqep.h is in libslepc3.4.2-dev 3.4.2.dfsg-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | /*
User interface for SLEPc's quadratic eigenvalue solvers.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SLEPc - Scalable Library for Eigenvalue Problem Computations
Copyright (c) 2002-2013, Universitat Politecnica de Valencia, Spain
This file is part of SLEPc.
SLEPc is free software: you can redistribute it and/or modify it under the
terms of version 3 of the GNU Lesser General Public License as published by
the Free Software Foundation.
SLEPc is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
more details.
You should have received a copy of the GNU Lesser General Public License
along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*/
#if !defined(__SLEPCQEP_H)
#define __SLEPCQEP_H
#include <slepceps.h>
PETSC_EXTERN PetscErrorCode QEPInitializePackage(void);
/*S
QEP - Abstract SLEPc object that manages all the quadratic eigenvalue
problem solvers.
Level: beginner
.seealso: QEPCreate()
S*/
typedef struct _p_QEP* QEP;
/*J
QEPType - String with the name of a quadratic eigensolver
Level: beginner
.seealso: QEPSetType(), QEP
J*/
typedef const char* QEPType;
#define QEPLINEAR "linear"
#define QEPQARNOLDI "qarnoldi"
#define QEPQLANCZOS "qlanczos"
/* Logging support */
PETSC_EXTERN PetscClassId QEP_CLASSID;
/*E
QEPProblemType - Determines the type of the quadratic eigenproblem
Level: intermediate
.seealso: QEPSetProblemType(), QEPGetProblemType()
E*/
typedef enum { QEP_GENERAL=1,
QEP_HERMITIAN, /* M, C, K Hermitian */
QEP_GYROSCOPIC /* M, K Hermitian, M>0, C skew-Hermitian */
} QEPProblemType;
/*E
QEPWhich - Determines which part of the spectrum is requested
Level: intermediate
.seealso: QEPSetWhichEigenpairs(), QEPGetWhichEigenpairs()
E*/
typedef enum { QEP_LARGEST_MAGNITUDE=1,
QEP_SMALLEST_MAGNITUDE,
QEP_LARGEST_REAL,
QEP_SMALLEST_REAL,
QEP_LARGEST_IMAGINARY,
QEP_SMALLEST_IMAGINARY,
QEP_TARGET_MAGNITUDE,
QEP_TARGET_REAL,
QEP_TARGET_IMAGINARY} QEPWhich;
PETSC_EXTERN PetscErrorCode QEPCreate(MPI_Comm,QEP*);
PETSC_EXTERN PetscErrorCode QEPDestroy(QEP*);
PETSC_EXTERN PetscErrorCode QEPReset(QEP);
PETSC_EXTERN PetscErrorCode QEPSetType(QEP,QEPType);
PETSC_EXTERN PetscErrorCode QEPGetType(QEP,QEPType*);
PETSC_EXTERN PetscErrorCode QEPSetProblemType(QEP,QEPProblemType);
PETSC_EXTERN PetscErrorCode QEPGetProblemType(QEP,QEPProblemType*);
PETSC_EXTERN PetscErrorCode QEPSetOperators(QEP,Mat,Mat,Mat);
PETSC_EXTERN PetscErrorCode QEPGetOperators(QEP,Mat*,Mat*,Mat*);
PETSC_EXTERN PetscErrorCode QEPSetTarget(QEP,PetscScalar);
PETSC_EXTERN PetscErrorCode QEPGetTarget(QEP,PetscScalar*);
PETSC_EXTERN PetscErrorCode QEPSetST(QEP,ST);
PETSC_EXTERN PetscErrorCode QEPGetST(QEP,ST*);
PETSC_EXTERN PetscErrorCode QEPSetFromOptions(QEP);
PETSC_EXTERN PetscErrorCode QEPSetUp(QEP);
PETSC_EXTERN PetscErrorCode QEPSolve(QEP);
PETSC_EXTERN PetscErrorCode QEPView(QEP,PetscViewer);
PETSC_EXTERN PetscErrorCode QEPPrintSolution(QEP,PetscViewer);
PETSC_EXTERN PetscErrorCode QEPSetIP(QEP,IP);
PETSC_EXTERN PetscErrorCode QEPGetIP(QEP,IP*);
PETSC_EXTERN PetscErrorCode QEPSetDS(QEP,DS);
PETSC_EXTERN PetscErrorCode QEPGetDS(QEP,DS*);
PETSC_EXTERN PetscErrorCode QEPSetTolerances(QEP,PetscReal,PetscInt);
PETSC_EXTERN PetscErrorCode QEPGetTolerances(QEP,PetscReal*,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPSetConvergenceTest(QEP,PetscErrorCode (*)(QEP,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*),void*);
PETSC_EXTERN PetscErrorCode QEPConvergedDefault(QEP,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*);
PETSC_EXTERN PetscErrorCode QEPConvergedAbsolute(QEP,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*);
PETSC_EXTERN PetscErrorCode QEPSetDimensions(QEP,PetscInt,PetscInt,PetscInt);
PETSC_EXTERN PetscErrorCode QEPGetDimensions(QEP,PetscInt*,PetscInt*,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPSetScaleFactor(QEP,PetscReal);
PETSC_EXTERN PetscErrorCode QEPGetScaleFactor(QEP,PetscReal*);
PETSC_EXTERN PetscErrorCode QEPGetConverged(QEP,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPGetEigenpair(QEP,PetscInt,PetscScalar*,PetscScalar*,Vec,Vec);
PETSC_EXTERN PetscErrorCode QEPComputeRelativeError(QEP,PetscInt,PetscReal*);
PETSC_EXTERN PetscErrorCode QEPComputeResidualNorm(QEP,PetscInt,PetscReal*);
PETSC_EXTERN PetscErrorCode QEPGetErrorEstimate(QEP,PetscInt,PetscReal*);
PETSC_EXTERN PetscErrorCode QEPMonitor(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt);
PETSC_EXTERN PetscErrorCode QEPMonitorSet(QEP,PetscErrorCode (*)(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*),void*,PetscErrorCode (*)(void**));
PETSC_EXTERN PetscErrorCode QEPMonitorCancel(QEP);
PETSC_EXTERN PetscErrorCode QEPGetMonitorContext(QEP,void **);
PETSC_EXTERN PetscErrorCode QEPGetIterationNumber(QEP,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPGetOperationCounters(QEP,PetscInt*,PetscInt*,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPSetInitialSpace(QEP,PetscInt,Vec*);
PETSC_EXTERN PetscErrorCode QEPSetInitialSpaceLeft(QEP,PetscInt,Vec*);
PETSC_EXTERN PetscErrorCode QEPSetWhichEigenpairs(QEP,QEPWhich);
PETSC_EXTERN PetscErrorCode QEPGetWhichEigenpairs(QEP,QEPWhich*);
PETSC_EXTERN PetscErrorCode QEPSetLeftVectorsWanted(QEP,PetscBool);
PETSC_EXTERN PetscErrorCode QEPGetLeftVectorsWanted(QEP,PetscBool*);
PETSC_EXTERN PetscErrorCode QEPSetEigenvalueComparison(QEP,PetscErrorCode (*func)(QEP,PetscScalar,PetscScalar,PetscScalar,PetscScalar,PetscInt*,void*),void*);
PETSC_EXTERN PetscErrorCode QEPMonitorAll(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
PETSC_EXTERN PetscErrorCode QEPMonitorFirst(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
PETSC_EXTERN PetscErrorCode QEPMonitorConverged(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
PETSC_EXTERN PetscErrorCode QEPMonitorLG(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
PETSC_EXTERN PetscErrorCode QEPMonitorLGAll(QEP,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
PETSC_EXTERN PetscErrorCode QEPSetTrackAll(QEP,PetscBool);
PETSC_EXTERN PetscErrorCode QEPGetTrackAll(QEP,PetscBool*);
PETSC_EXTERN PetscErrorCode QEPSetOptionsPrefix(QEP,const char*);
PETSC_EXTERN PetscErrorCode QEPAppendOptionsPrefix(QEP,const char*);
PETSC_EXTERN PetscErrorCode QEPGetOptionsPrefix(QEP,const char*[]);
/*E
QEPConvergedReason - Reason an eigensolver was said to
have converged or diverged
Level: beginner
.seealso: QEPSolve(), QEPGetConvergedReason(), QEPSetTolerances()
E*/
typedef enum {/* converged */
QEP_CONVERGED_TOL = 2,
/* diverged */
QEP_DIVERGED_ITS = -3,
QEP_DIVERGED_BREAKDOWN = -4,
QEP_CONVERGED_ITERATING = 0} QEPConvergedReason;
PETSC_EXTERN PetscErrorCode QEPGetConvergedReason(QEP,QEPConvergedReason *);
PETSC_EXTERN PetscErrorCode QEPSortEigenvalues(QEP,PetscInt,PetscScalar*,PetscScalar*,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPCompareEigenvalues(QEP,PetscScalar,PetscScalar,PetscScalar,PetscScalar,PetscInt*);
PETSC_EXTERN PetscFunctionList QEPList;
PETSC_EXTERN PetscBool QEPRegisterAllCalled;
PETSC_EXTERN PetscErrorCode QEPRegisterAll(void);
PETSC_EXTERN PetscErrorCode QEPRegister(const char[],PetscErrorCode(*)(QEP));
PETSC_EXTERN PetscErrorCode QEPSetWorkVecs(QEP,PetscInt);
/* --------- options specific to particular eigensolvers -------- */
PETSC_EXTERN PetscErrorCode QEPLinearSetCompanionForm(QEP,PetscInt);
PETSC_EXTERN PetscErrorCode QEPLinearGetCompanionForm(QEP,PetscInt*);
PETSC_EXTERN PetscErrorCode QEPLinearSetExplicitMatrix(QEP,PetscBool);
PETSC_EXTERN PetscErrorCode QEPLinearGetExplicitMatrix(QEP,PetscBool*);
PETSC_EXTERN PetscErrorCode QEPLinearSetEPS(QEP,EPS);
PETSC_EXTERN PetscErrorCode QEPLinearGetEPS(QEP,EPS*);
#endif
|