/usr/lib/slepcdir/3.7.4/x86_64-linux-gnu-complex/include/slepcst.h is in libslepc-complex-3.7.4-dev 3.7.4+dfsg1-2build8.
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 | /*
Spectral transformation module for eigenvalue problems.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SLEPc - Scalable Library for Eigenvalue Problem Computations
Copyright (c) 2002-2016, 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(__SLEPCST_H)
#define __SLEPCST_H
#include <slepcsys.h>
#include <slepcbv.h>
#include <petscksp.h>
PETSC_EXTERN PetscErrorCode STInitializePackage(void);
/*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;
/*J
STType - String with the name of a SLEPc spectral transformation
Level: beginner
.seealso: STSetType(), ST
J*/
typedef const char* STType;
#define STSHELL "shell"
#define STSHIFT "shift"
#define STSINVERT "sinvert"
#define STCAYLEY "cayley"
#define STPRECOND "precond"
/* Logging support */
PETSC_EXTERN PetscClassId ST_CLASSID;
PETSC_EXTERN PetscErrorCode STCreate(MPI_Comm,ST*);
PETSC_EXTERN PetscErrorCode STDestroy(ST*);
PETSC_EXTERN PetscErrorCode STReset(ST);
PETSC_EXTERN PetscErrorCode STSetType(ST,STType);
PETSC_EXTERN PetscErrorCode STGetType(ST,STType*);
PETSC_EXTERN PetscErrorCode STSetOperators(ST,PetscInt,Mat*);
PETSC_EXTERN PetscErrorCode STGetOperators(ST,PetscInt,Mat*);
PETSC_EXTERN PetscErrorCode STGetTOperators(ST,PetscInt,Mat*);
PETSC_EXTERN PetscErrorCode STGetNumMatrices(ST,PetscInt*);
PETSC_EXTERN PetscErrorCode STSetUp(ST);
PETSC_EXTERN PetscErrorCode STSetFromOptions(ST);
PETSC_EXTERN PetscErrorCode STView(ST,PetscViewer);
PETSC_EXTERN PetscErrorCode STApply(ST,Vec,Vec);
PETSC_EXTERN PetscErrorCode STMatMult(ST,PetscInt,Vec,Vec);
PETSC_EXTERN PetscErrorCode STMatMultTranspose(ST,PetscInt,Vec,Vec);
PETSC_EXTERN PetscErrorCode STMatSolve(ST,Vec,Vec);
PETSC_EXTERN PetscErrorCode STMatSolveTranspose(ST,Vec,Vec);
PETSC_EXTERN PetscErrorCode STGetBilinearForm(ST,Mat*);
PETSC_EXTERN PetscErrorCode STApplyTranspose(ST,Vec,Vec);
PETSC_EXTERN PetscErrorCode STComputeExplicitOperator(ST,Mat*);
PETSC_EXTERN PetscErrorCode STMatSetUp(ST,PetscScalar,PetscScalar*);
PETSC_EXTERN PetscErrorCode STPostSolve(ST);
PETSC_EXTERN PetscErrorCode STSetKSP(ST,KSP);
PETSC_EXTERN PetscErrorCode STGetKSP(ST,KSP*);
PETSC_EXTERN PetscErrorCode STSetShift(ST,PetscScalar);
PETSC_EXTERN PetscErrorCode STGetShift(ST,PetscScalar*);
PETSC_EXTERN PetscErrorCode STSetDefaultShift(ST,PetscScalar);
PETSC_EXTERN PetscErrorCode STScaleShift(ST,PetscScalar);
PETSC_EXTERN PetscErrorCode STSetBalanceMatrix(ST,Vec);
PETSC_EXTERN PetscErrorCode STGetBalanceMatrix(ST,Vec*);
PETSC_EXTERN PetscErrorCode STSetTransform(ST,PetscBool);
PETSC_EXTERN PetscErrorCode STGetTransform(ST,PetscBool*);
PETSC_EXTERN PetscErrorCode STSetOptionsPrefix(ST,const char*);
PETSC_EXTERN PetscErrorCode STAppendOptionsPrefix(ST,const char*);
PETSC_EXTERN PetscErrorCode STGetOptionsPrefix(ST,const char*[]);
PETSC_EXTERN PetscErrorCode STBackTransform(ST,PetscInt,PetscScalar*,PetscScalar*);
PETSC_EXTERN PetscErrorCode STCheckNullSpace(ST,BV);
PETSC_EXTERN PetscErrorCode STMatCreateVecs(ST,Vec*,Vec*);
PETSC_EXTERN PetscErrorCode STMatGetSize(ST,PetscInt*,PetscInt*);
PETSC_EXTERN PetscErrorCode STMatGetLocalSize(ST,PetscInt*,PetscInt*);
/*E
STMatMode - Determines how to handle the coefficient matrix associated
to the spectral transformation
Level: intermediate
.seealso: STSetMatMode(), STGetMatMode()
E*/
typedef enum { ST_MATMODE_COPY,
ST_MATMODE_INPLACE,
ST_MATMODE_SHELL } STMatMode;
PETSC_EXTERN PetscErrorCode STSetMatMode(ST,STMatMode);
PETSC_EXTERN PetscErrorCode STGetMatMode(ST,STMatMode*);
PETSC_EXTERN PetscErrorCode STSetMatStructure(ST,MatStructure);
PETSC_EXTERN PetscErrorCode STGetMatStructure(ST,MatStructure*);
PETSC_EXTERN PetscFunctionList STList;
PETSC_EXTERN PetscErrorCode STRegister(const char[],PetscErrorCode(*)(ST));
/* --------- options specific to particular spectral transformations-------- */
PETSC_EXTERN PetscErrorCode STShellGetContext(ST st,void **ctx);
PETSC_EXTERN PetscErrorCode STShellSetContext(ST st,void *ctx);
PETSC_EXTERN PetscErrorCode STShellSetApply(ST st,PetscErrorCode (*apply)(ST,Vec,Vec));
PETSC_EXTERN PetscErrorCode STShellSetApplyTranspose(ST st,PetscErrorCode (*applytrans)(ST,Vec,Vec));
PETSC_EXTERN PetscErrorCode STShellSetBackTransform(ST st,PetscErrorCode (*backtr)(ST,PetscInt,PetscScalar*,PetscScalar*));
PETSC_EXTERN PetscErrorCode STCayleyGetAntishift(ST,PetscScalar*);
PETSC_EXTERN PetscErrorCode STCayleySetAntishift(ST,PetscScalar);
PETSC_EXTERN PetscErrorCode STPrecondGetMatForPC(ST,Mat*);
PETSC_EXTERN PetscErrorCode STPrecondSetMatForPC(ST,Mat);
PETSC_EXTERN PetscErrorCode STPrecondGetKSPHasMat(ST,PetscBool*);
PETSC_EXTERN PetscErrorCode STPrecondSetKSPHasMat(ST,PetscBool);
#endif
|