Subversion Repositories slepc-dev

Rev

Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 dsic.upv.es!jroman 1
 
2
/*
3
      Spectral transformation module for eigenvalue problems.  
4
*/
5
#if !defined(__SLEPCST_H)
6
#define __SLEPCST_H
18 dsic.upv.es!jroman 7
#include "petscksp.h"
476 dsic.upv.es!antodo 8
PETSC_EXTERN_CXX_BEGIN
6 dsic.upv.es!jroman 9
 
476 dsic.upv.es!antodo 10
extern PetscCookie ST_COOKIE;
6 dsic.upv.es!jroman 11
 
12
typedef struct _p_ST* ST;
13
 
14
#define STSHELL     "shell"
15
#define STSHIFT     "shift"
16
#define STSINV      "sinvert"
344 dsic.upv.es!antodo 17
#define STCAYLEY    "cayley"
777 dsic.upv.es!antodo 18
#define STFOLD      "fold"
1004 slepc 19
#define STType const char*
6 dsic.upv.es!jroman 20
 
476 dsic.upv.es!antodo 21
EXTERN PetscErrorCode STCreate(MPI_Comm,ST*);
22
EXTERN PetscErrorCode STDestroy(ST);
23
EXTERN PetscErrorCode STSetType(ST,STType);
24
EXTERN PetscErrorCode STGetType(ST,STType*);
25
EXTERN PetscErrorCode STSetOperators(ST,Mat,Mat);
26
EXTERN PetscErrorCode STGetOperators(ST,Mat*,Mat*);
27
EXTERN PetscErrorCode STSetUp(ST);
28
EXTERN PetscErrorCode STSetFromOptions(ST);
29
EXTERN PetscErrorCode STView(ST,PetscViewer);
6 dsic.upv.es!jroman 30
 
476 dsic.upv.es!antodo 31
EXTERN PetscErrorCode STApply(ST,Vec,Vec);
32
EXTERN PetscErrorCode STApplyB(ST,Vec,Vec);
33
EXTERN PetscErrorCode STApplyNoB(ST,Vec,Vec);
780 dsic.upv.es!jroman 34
EXTERN PetscErrorCode STApplyTranspose(ST,Vec,Vec);
677 dsic.upv.es!antodo 35
EXTERN PetscErrorCode STComputeExplicitOperator(ST,Mat*);
1029 slepc 36
EXTERN PetscErrorCode STPostSolve(ST);
6 dsic.upv.es!jroman 37
 
842 dsic.upv.es!antodo 38
EXTERN PetscErrorCode STInitializePackage(char*);
6 dsic.upv.es!jroman 39
 
476 dsic.upv.es!antodo 40
EXTERN PetscErrorCode STSetKSP(ST,KSP);
41
EXTERN PetscErrorCode STGetKSP(ST,KSP*);
42
EXTERN PetscErrorCode STSetShift(ST,PetscScalar);
43
EXTERN PetscErrorCode STGetShift(ST,PetscScalar*);
6 dsic.upv.es!jroman 44
 
476 dsic.upv.es!antodo 45
EXTERN PetscErrorCode STSetOptionsPrefix(ST,char*);
46
EXTERN PetscErrorCode STAppendOptionsPrefix(ST,char*);
812 dsic.upv.es!antodo 47
EXTERN PetscErrorCode STGetOptionsPrefix(ST,const char*[]);
6 dsic.upv.es!jroman 48
 
476 dsic.upv.es!antodo 49
EXTERN PetscErrorCode STBackTransform(ST,PetscScalar*,PetscScalar*);
6 dsic.upv.es!jroman 50
 
1020 slepc 51
EXTERN PetscErrorCode STCheckNullSpace(ST,int,const Vec[]);
310 dsic.upv.es!antodo 52
 
476 dsic.upv.es!antodo 53
EXTERN PetscErrorCode STGetNumberLinearIterations(ST,int*);
54
EXTERN PetscErrorCode STResetNumberLinearIterations(ST);
163 dsic.upv.es!antodo 55
 
344 dsic.upv.es!antodo 56
typedef enum { STMATMODE_COPY, STMATMODE_INPLACE,
57
               STMATMODE_SHELL } STMatMode;
476 dsic.upv.es!antodo 58
EXTERN PetscErrorCode STSetMatMode(ST,STMatMode);
59
EXTERN PetscErrorCode STGetMatMode(ST,STMatMode*);
60
EXTERN PetscErrorCode STSetMatStructure(ST,MatStructure);
6 dsic.upv.es!jroman 61
 
386 dsic.upv.es!jroman 62
typedef enum { STINNER_HERMITIAN, STINNER_SYMMETRIC,
63
               STINNER_B_HERMITIAN, STINNER_B_SYMMETRIC } STBilinearForm;
476 dsic.upv.es!antodo 64
EXTERN PetscErrorCode STSetBilinearForm(ST,STBilinearForm);
382 dsic.upv.es!antodo 65
 
476 dsic.upv.es!antodo 66
EXTERN PetscErrorCode STInnerProduct(ST st,Vec,Vec,PetscScalar*);
769 dsic.upv.es!antodo 67
EXTERN PetscErrorCode STInnerProductBegin(ST st,Vec,Vec,PetscScalar*);
68
EXTERN PetscErrorCode STInnerProductEnd(ST st,Vec,Vec,PetscScalar*);
749 dsic.upv.es!antodo 69
EXTERN PetscErrorCode STMInnerProduct(ST st,PetscInt,Vec,const Vec[],PetscScalar*);
772 dsic.upv.es!antodo 70
EXTERN PetscErrorCode STMInnerProductBegin(ST st,PetscInt,Vec,const Vec[],PetscScalar*);
71
EXTERN PetscErrorCode STMInnerProductEnd(ST st,PetscInt,Vec,const Vec[],PetscScalar*);
476 dsic.upv.es!antodo 72
EXTERN PetscErrorCode STNorm(ST st,Vec,PetscReal*);
769 dsic.upv.es!antodo 73
EXTERN PetscErrorCode STNormBegin(ST st,Vec,PetscReal*);
74
EXTERN PetscErrorCode STNormEnd(ST st,Vec,PetscReal*);
386 dsic.upv.es!jroman 75
 
76
/* --------- options specific to particular spectral transformations-------- */
77
 
1024 slepc 78
EXTERN PetscErrorCode STShellGetContext(ST st,void **ctx);
79
EXTERN PetscErrorCode STShellSetContext(ST st,void *ctx);
80
EXTERN PetscErrorCode STShellSetApply(ST st,PetscErrorCode (*apply)(void*,Vec,Vec));
81
EXTERN PetscErrorCode STShellSetApplyTranspose(ST st,PetscErrorCode (*applytrans)(void*,Vec,Vec));
82
EXTERN PetscErrorCode STShellSetBackTransform(ST st,PetscErrorCode (*backtr)(void*,PetscScalar*,PetscScalar*));
83
EXTERN PetscErrorCode STShellSetName(ST,const char[]);
84
EXTERN PetscErrorCode STShellGetName(ST,char*[]);
6 dsic.upv.es!jroman 85
 
476 dsic.upv.es!antodo 86
EXTERN PetscErrorCode STCayleySetAntishift(ST,PetscScalar);
344 dsic.upv.es!antodo 87
 
792 dsic.upv.es!antodo 88
EXTERN PetscErrorCode STFoldSetLeftSide(ST st,PetscTruth left);
89
 
476 dsic.upv.es!antodo 90
PETSC_EXTERN_CXX_END
6 dsic.upv.es!jroman 91
#endif
92