Subversion Repositories slepc-dev

Rev

Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 dsic.upv.es!jroman 1
/*
2
   User interface for the SLEPC eigenproblem solvers.
1376 slepc 3
 
4
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1672 slepc 5
   SLEPc - Scalable Library for Eigenvalue Problem Computations
2116 eromero 6
   Copyright (c) 2002-2010, Universidad Politecnica de Valencia, Spain
1376 slepc 7
 
1672 slepc 8
   This file is part of SLEPc.
9
 
10
   SLEPc is free software: you can redistribute it and/or modify it under  the
11
   terms of version 3 of the GNU Lesser General Public License as published by
12
   the Free Software Foundation.
13
 
14
   SLEPc  is  distributed in the hope that it will be useful, but WITHOUT  ANY
15
   WARRANTY;  without even the implied warranty of MERCHANTABILITY or  FITNESS
16
   FOR  A  PARTICULAR PURPOSE. See the GNU Lesser General Public  License  for
17
   more details.
18
 
19
   You  should have received a copy of the GNU Lesser General  Public  License
20
   along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
1376 slepc 21
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6 dsic.upv.es!jroman 22
*/
1376 slepc 23
 
6 dsic.upv.es!jroman 24
#if !defined(__SLEPCEPS_H)
25
#define __SLEPCEPS_H
1885 jroman 26
#include "slepcsys.h"
6 dsic.upv.es!jroman 27
#include "slepcst.h"
1345 slepc 28
#include "slepcip.h"
476 dsic.upv.es!antodo 29
PETSC_EXTERN_CXX_BEGIN
6 dsic.upv.es!jroman 30
 
2375 jroman 31
extern PetscErrorCode EPSInitializePackage(const char[]);
6 dsic.upv.es!jroman 32
 
33
/*S
2375 jroman 34
    EPS - Abstract SLEPc object that manages all the eigenvalue
35
    problem solvers.
6 dsic.upv.es!jroman 36
 
2375 jroman 37
    Level: beginner
6 dsic.upv.es!jroman 38
 
39
.seealso:  EPSCreate(), ST
40
S*/
41
typedef struct _p_EPS* EPS;
42
 
1364 slepc 43
/*E
44
    EPSType - String with the name of a SLEPc eigensolver
45
 
2375 jroman 46
    Level: beginner
1364 slepc 47
 
48
.seealso: EPSSetType(), EPS
49
E*/
1502 slepc 50
#define EPSType      char*
6 dsic.upv.es!jroman 51
#define EPSPOWER     "power"
52
#define EPSSUBSPACE  "subspace"
53
#define EPSARNOLDI   "arnoldi"
646 dsic.upv.es!antodo 54
#define EPSLANCZOS   "lanczos"
1171 slepc 55
#define EPSKRYLOVSCHUR "krylovschur"
2073 jroman 56
#define EPSGD        "gd"
57
#define EPSJD        "jd"
6 dsic.upv.es!jroman 58
#define EPSLAPACK    "lapack"
59
/* the next ones are interfaces to external libraries */
60
#define EPSARPACK    "arpack"
61
#define EPSBLZPACK   "blzpack"
62
#define EPSTRLAN     "trlan"
1195 slepc 63
#define EPSBLOPEX    "blopex"
1187 slepc 64
#define EPSPRIMME    "primme"
6 dsic.upv.es!jroman 65
 
2375 jroman 66
/* Logging support */
67
extern PetscClassId EPS_CLASSID;
68
 
1364 slepc 69
/*E
70
    EPSProblemType - determines the type of eigenvalue problem
71
 
72
    Level: beginner
73
 
74
.seealso: EPSSetProblemType(), EPSGetProblemType()
75
E*/
1940 jroman 76
typedef enum { EPS_HEP=1,
77
               EPS_GHEP,
78
               EPS_NHEP,
79
               EPS_GNHEP,
80
               EPS_PGNHEP,
81
               EPS_GHIEP } EPSProblemType;
6 dsic.upv.es!jroman 82
 
1364 slepc 83
/*E
1560 slepc 84
    EPSExtraction - determines the type of extraction technique employed
1426 slepc 85
    by the eigensolver
86
 
87
    Level: beginner
88
 
1560 slepc 89
.seealso: EPSSetExtraction(), EPSGetExtraction()
1426 slepc 90
E*/
1940 jroman 91
typedef enum { EPS_RITZ=1,
92
               EPS_HARMONIC,
1987 eromero 93
               EPS_HARMONIC_RELATIVE,
94
               EPS_HARMONIC_RIGHT,
95
               EPS_HARMONIC_LARGEST,
1940 jroman 96
               EPS_REFINED,
97
               EPS_REFINED_HARMONIC } EPSExtraction;
1426 slepc 98
 
99
/*E
1364 slepc 100
    EPSWhich - determines which part of the spectrum is requested
101
 
102
    Level: intermediate
103
 
104
.seealso: EPSSetWhichEigenpairs(), EPSGetWhichEigenpairs()
105
E*/
1942 jroman 106
typedef enum { EPS_LARGEST_MAGNITUDE=1,
1940 jroman 107
               EPS_SMALLEST_MAGNITUDE,
108
               EPS_LARGEST_REAL,
109
               EPS_SMALLEST_REAL,
110
               EPS_LARGEST_IMAGINARY,
111
               EPS_SMALLEST_IMAGINARY,
112
               EPS_TARGET_MAGNITUDE,
113
               EPS_TARGET_REAL,
114
               EPS_TARGET_IMAGINARY,
2403 jroman 115
               EPS_ALL,
1945 jroman 116
               EPS_WHICH_USER } EPSWhich;
6 dsic.upv.es!jroman 117
 
1799 jroman 118
/*E
119
    EPSBalance - the type of balancing used for non-Hermitian problems
120
 
121
    Level: intermediate
122
 
123
.seealso: EPSSetBalance()
124
E*/
1940 jroman 125
typedef enum { EPS_BALANCE_NONE=1,
126
               EPS_BALANCE_ONESIDE,
127
               EPS_BALANCE_TWOSIDE,
128
               EPS_BALANCE_USER } EPSBalance;
1799 jroman 129
 
2083 eromero 130
/*E
131
    EPSConv - determines the convergence test
132
 
133
    Level: intermediate
134
 
135
.seealso: EPSSetConvergenceTest(), EPSSetConvergenceTestFunction()
136
E*/
137
typedef enum { EPS_CONV_ABS=1,
138
               EPS_CONV_EIG,
139
               EPS_CONV_NORM,
140
               EPS_CONV_USER } EPSConv;
141
 
2240 jroman 142
extern PetscErrorCode EPSCreate(MPI_Comm,EPS *);
2308 jroman 143
extern PetscErrorCode EPSDestroy(EPS*);
2348 jroman 144
extern PetscErrorCode EPSReset(EPS);
2240 jroman 145
extern PetscErrorCode EPSSetType(EPS,const EPSType);
146
extern PetscErrorCode EPSGetType(EPS,const EPSType*);
147
extern PetscErrorCode EPSSetProblemType(EPS,EPSProblemType);
148
extern PetscErrorCode EPSGetProblemType(EPS,EPSProblemType*);
149
extern PetscErrorCode EPSSetExtraction(EPS,EPSExtraction);
150
extern PetscErrorCode EPSGetExtraction(EPS,EPSExtraction*);
151
extern PetscErrorCode EPSSetBalance(EPS,EPSBalance,PetscInt,PetscReal);
152
extern PetscErrorCode EPSGetBalance(EPS,EPSBalance*,PetscInt*,PetscReal*);
153
extern PetscErrorCode EPSSetOperators(EPS,Mat,Mat);
154
extern PetscErrorCode EPSGetOperators(EPS,Mat*,Mat*);
155
extern PetscErrorCode EPSSetFromOptions(EPS);
156
extern PetscErrorCode EPSSetUp(EPS);
157
extern PetscErrorCode EPSSolve(EPS);
158
extern PetscErrorCode EPSView(EPS,PetscViewer);
2501 jroman 159
extern PetscErrorCode EPSPrintSolution(EPS,PetscViewer);
6 dsic.upv.es!jroman 160
 
2240 jroman 161
extern PetscErrorCode EPSSetTarget(EPS,PetscScalar);
162
extern PetscErrorCode EPSGetTarget(EPS,PetscScalar*);
2403 jroman 163
extern PetscErrorCode EPSSetInterval(EPS,PetscReal,PetscReal);
164
extern PetscErrorCode EPSGetInterval(EPS,PetscReal*,PetscReal*);
2240 jroman 165
extern PetscErrorCode EPSSetST(EPS,ST);
166
extern PetscErrorCode EPSGetST(EPS,ST*);
167
extern PetscErrorCode EPSSetIP(EPS,IP);
168
extern PetscErrorCode EPSGetIP(EPS,IP*);
169
extern PetscErrorCode EPSSetTolerances(EPS,PetscReal,PetscInt);
170
extern PetscErrorCode EPSGetTolerances(EPS,PetscReal*,PetscInt*);
171
extern PetscErrorCode EPSSetConvergenceTestFunction(EPS,PetscErrorCode (*)(EPS,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*),void*);
172
extern PetscErrorCode EPSSetConvergenceTest(EPS eps,EPSConv conv);
173
extern PetscErrorCode EPSGetConvergenceTest(EPS eps,EPSConv *conv);
174
extern PetscErrorCode EPSEigRelativeConverged(EPS,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*);
175
extern PetscErrorCode EPSAbsoluteConverged(EPS,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*);
176
extern PetscErrorCode EPSNormRelativeConverged(EPS,PetscScalar,PetscScalar,PetscReal,PetscReal*,void*);
177
extern PetscErrorCode EPSSetDimensions(EPS,PetscInt,PetscInt,PetscInt);
178
extern PetscErrorCode EPSGetDimensions(EPS,PetscInt*,PetscInt*,PetscInt*);
6 dsic.upv.es!jroman 179
 
2240 jroman 180
extern PetscErrorCode EPSGetConverged(EPS,PetscInt*);
181
extern PetscErrorCode EPSGetEigenpair(EPS,PetscInt,PetscScalar*,PetscScalar*,Vec,Vec);
182
extern PetscErrorCode EPSGetEigenvalue(EPS,PetscInt,PetscScalar*,PetscScalar*);
183
extern PetscErrorCode EPSGetEigenvector(EPS,PetscInt,Vec,Vec);
184
extern PetscErrorCode EPSGetEigenvectorLeft(EPS,PetscInt,Vec,Vec);
185
extern PetscErrorCode EPSComputeRelativeError(EPS,PetscInt,PetscReal*);
186
extern PetscErrorCode EPSComputeRelativeErrorLeft(EPS,PetscInt,PetscReal*);
187
extern PetscErrorCode EPSComputeResidualNorm(EPS,PetscInt,PetscReal*);
188
extern PetscErrorCode EPSComputeResidualNormLeft(EPS,PetscInt,PetscReal*);
189
extern PetscErrorCode EPSGetInvariantSubspace(EPS,Vec*);
190
extern PetscErrorCode EPSGetInvariantSubspaceLeft(EPS,Vec*);
191
extern PetscErrorCode EPSGetErrorEstimate(EPS,PetscInt,PetscReal*);
192
extern PetscErrorCode EPSGetErrorEstimateLeft(EPS,PetscInt,PetscReal*);
6 dsic.upv.es!jroman 193
 
2351 jroman 194
extern PetscErrorCode EPSMonitorSet(EPS,PetscErrorCode (*)(EPS,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*),void*,PetscErrorCode (*)(void**));
2240 jroman 195
extern PetscErrorCode EPSMonitorCancel(EPS);
196
extern PetscErrorCode EPSGetMonitorContext(EPS,void **);
197
extern PetscErrorCode EPSGetIterationNumber(EPS,PetscInt*);
198
extern PetscErrorCode EPSGetOperationCounters(EPS,PetscInt*,PetscInt*,PetscInt*);
6 dsic.upv.es!jroman 199
 
2240 jroman 200
extern PetscErrorCode EPSSetWhichEigenpairs(EPS,EPSWhich);
201
extern PetscErrorCode EPSGetWhichEigenpairs(EPS,EPSWhich*);
202
extern PetscErrorCode EPSSetLeftVectorsWanted(EPS,PetscBool);
203
extern PetscErrorCode EPSGetLeftVectorsWanted(EPS,PetscBool*);
204
extern PetscErrorCode EPSSetMatrixNorms(EPS,PetscReal,PetscReal,PetscBool);
205
extern PetscErrorCode EPSGetMatrixNorms(EPS,PetscReal*,PetscReal*,PetscBool*);
206
extern PetscErrorCode EPSSetTrueResidual(EPS,PetscBool);
207
extern PetscErrorCode EPSGetTrueResidual(EPS,PetscBool*);
208
extern PetscErrorCode EPSSetEigenvalueComparison(EPS,PetscErrorCode (*func)(EPS,PetscScalar,PetscScalar,PetscScalar,PetscScalar,PetscInt*,void*),void*);
209
extern PetscErrorCode EPSIsGeneralized(EPS,PetscBool*);
210
extern PetscErrorCode EPSIsHermitian(EPS,PetscBool*);
6 dsic.upv.es!jroman 211
 
2240 jroman 212
extern PetscErrorCode EPSMonitorFirst(EPS,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
213
extern PetscErrorCode EPSMonitorAll(EPS,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
214
extern PetscErrorCode EPSMonitorConverged(EPS,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
215
extern PetscErrorCode EPSMonitorLG(EPS,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
216
extern PetscErrorCode EPSMonitorLGAll(EPS,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscInt,void*);
6 dsic.upv.es!jroman 217
 
2240 jroman 218
extern PetscErrorCode EPSSetTrackAll(EPS,PetscBool);
219
extern PetscErrorCode EPSGetTrackAll(EPS,PetscBool*);
2041 eromero 220
 
2240 jroman 221
extern PetscErrorCode EPSSetDeflationSpace(EPS,PetscInt,Vec*);
222
extern PetscErrorCode EPSRemoveDeflationSpace(EPS);
223
extern PetscErrorCode EPSSetInitialSpace(EPS,PetscInt,Vec*);
224
extern PetscErrorCode EPSSetInitialSpaceLeft(EPS,PetscInt,Vec*);
780 dsic.upv.es!jroman 225
 
2240 jroman 226
extern PetscErrorCode EPSSetOptionsPrefix(EPS,const char*);
227
extern PetscErrorCode EPSAppendOptionsPrefix(EPS,const char*);
228
extern PetscErrorCode EPSGetOptionsPrefix(EPS,const char*[]);
6 dsic.upv.es!jroman 229
 
1364 slepc 230
/*E
231
    EPSConvergedReason - reason an eigensolver was said to
232
         have converged or diverged
233
 
1799 jroman 234
    Level: beginner
1364 slepc 235
 
236
.seealso: EPSSolve(), EPSGetConvergedReason(), EPSSetTolerances()
237
E*/
6 dsic.upv.es!jroman 238
typedef enum {/* converged */
239
              EPS_CONVERGED_TOL                =  2,
240
              /* diverged */
241
              EPS_DIVERGED_ITS                 = -3,
242
              EPS_DIVERGED_BREAKDOWN           = -4,
243
              EPS_CONVERGED_ITERATING          =  0} EPSConvergedReason;
244
 
2240 jroman 245
extern PetscErrorCode EPSGetConvergedReason(EPS,EPSConvergedReason *);
6 dsic.upv.es!jroman 246
 
2240 jroman 247
extern PetscErrorCode EPSSortEigenvalues(EPS,PetscInt,PetscScalar*,PetscScalar*,PetscInt*);
248
extern PetscErrorCode EPSSortEigenvaluesReal(EPS,PetscInt,PetscReal*,PetscInt*);
249
extern PetscErrorCode EPSCompareEigenvalues(EPS,PetscScalar,PetscScalar,PetscScalar,PetscScalar,PetscInt*);
250
extern PetscErrorCode EPSDenseNHEP(PetscInt,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*);
251
extern PetscErrorCode EPSDenseGNHEP(PetscInt,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*);
252
extern PetscErrorCode EPSDenseHEP(PetscInt,PetscScalar*,PetscInt,PetscReal*,PetscScalar*);
253
extern PetscErrorCode EPSDenseGHEP(PetscInt,PetscScalar*,PetscScalar*,PetscReal*,PetscScalar*);
254
extern PetscErrorCode EPSDenseHessenberg(PetscInt,PetscInt,PetscScalar*,PetscInt,PetscScalar*);
255
extern PetscErrorCode EPSDenseSchur(PetscInt,PetscInt,PetscScalar*,PetscInt,PetscScalar*,PetscScalar*,PetscScalar*);
256
extern PetscErrorCode EPSSortDenseSchur(EPS,PetscInt,PetscInt,PetscScalar*,PetscInt,PetscScalar*,PetscScalar*,PetscScalar*);
257
extern PetscErrorCode EPSSortDenseSchurGeneralized(EPS,PetscInt,PetscInt,PetscInt,PetscScalar*,PetscScalar*,PetscInt,PetscScalar*,PetscScalar*,PetscScalar*,PetscScalar*);
258
extern PetscErrorCode EPSDenseTridiagonal(PetscInt,PetscReal*,PetscReal*,PetscReal*,PetscScalar*);
676 dsic.upv.es!antodo 259
 
2240 jroman 260
extern PetscErrorCode EPSGetStartVector(EPS,PetscInt,Vec,PetscBool*);
261
extern PetscErrorCode EPSGetStartVectorLeft(EPS,PetscInt,Vec,PetscBool*);
6 dsic.upv.es!jroman 262
 
2375 jroman 263
extern PetscFList EPSList;
264
extern PetscBool  EPSRegisterAllCalled;
265
extern PetscErrorCode EPSRegisterAll(const char[]);
266
extern PetscErrorCode EPSRegisterDestroy(void);
267
extern PetscErrorCode EPSRegister(const char[],const char[],const char[],PetscErrorCode(*)(EPS));
268
 
269
/*MC
270
   EPSRegisterDynamic - Adds a method to the eigenproblem solver package.
271
 
272
   Synopsis:
273
   PetscErrorCode EPSRegisterDynamic(const char *name_solver,const char *path,const char *name_create,PetscErrorCode (*routine_create)(EPS))
274
 
275
   Not Collective
276
 
277
   Input Parameters:
278
+  name_solver - name of a new user-defined solver
279
.  path - path (either absolute or relative) the library containing this solver
280
.  name_create - name of routine to create the solver context
281
-  routine_create - routine to create the solver context
282
 
283
   Notes:
284
   EPSRegisterDynamic() may be called multiple times to add several user-defined solvers.
285
 
286
   If dynamic libraries are used, then the fourth input argument (routine_create)
287
   is ignored.
288
 
289
   Sample usage:
290
.vb
291
   EPSRegisterDynamic("my_solver",/home/username/my_lib/lib/libO/solaris/mylib.a,
292
               "MySolverCreate",MySolverCreate);
293
.ve
294
 
295
   Then, your solver can be chosen with the procedural interface via
296
$     EPSSetType(eps,"my_solver")
297
   or at runtime via the option
298
$     -eps_type my_solver
299
 
300
   Level: advanced
301
 
302
.seealso: EPSRegisterDestroy(), EPSRegisterAll()
303
M*/
1389 slepc 304
#if defined(PETSC_USE_DYNAMIC_LIBRARIES)
305
#define EPSRegisterDynamic(a,b,c,d) EPSRegister(a,b,c,0)
306
#else
307
#define EPSRegisterDynamic(a,b,c,d) EPSRegister(a,b,c,d)
308
#endif
309
 
6 dsic.upv.es!jroman 310
/* --------- options specific to particular eigensolvers -------- */
311
 
1364 slepc 312
/*E
313
    EPSPowerShiftType - determines the type of shift used in the Power iteration
314
 
315
    Level: advanced
316
 
317
.seealso: EPSPowerSetShiftType(), EPSPowerGetShiftType()
318
E*/
1940 jroman 319
typedef enum { EPS_POWER_SHIFT_CONSTANT,
320
               EPS_POWER_SHIFT_RAYLEIGH,
321
               EPS_POWER_SHIFT_WILKINSON } EPSPowerShiftType;
2321 jroman 322
extern const char *EPSPowerShiftTypes[];
444 dsic.upv.es!antodo 323
 
2240 jroman 324
extern PetscErrorCode EPSPowerSetShiftType(EPS,EPSPowerShiftType);
325
extern PetscErrorCode EPSPowerGetShiftType(EPS,EPSPowerShiftType*);
444 dsic.upv.es!antodo 326
 
2240 jroman 327
extern PetscErrorCode EPSArnoldiSetDelayed(EPS,PetscBool);
328
extern PetscErrorCode EPSArnoldiGetDelayed(EPS,PetscBool*);
1098 slepc 329
 
1364 slepc 330
/*E
331
    EPSLanczosReorthogType - determines the type of reorthogonalization
332
    used in the Lanczos method
333
 
334
    Level: advanced
335
 
336
.seealso: EPSLanczosSetReorthog(), EPSLanczosGetReorthog()
337
E*/
1940 jroman 338
typedef enum { EPS_LANCZOS_REORTHOG_LOCAL,
339
               EPS_LANCZOS_REORTHOG_FULL,
340
               EPS_LANCZOS_REORTHOG_SELECTIVE,
341
               EPS_LANCZOS_REORTHOG_PERIODIC,
342
               EPS_LANCZOS_REORTHOG_PARTIAL,
343
               EPS_LANCZOS_REORTHOG_DELAYED } EPSLanczosReorthogType;
2322 jroman 344
extern const char *EPSLanczosReorthogTypes[];
673 dsic.upv.es!antodo 345
 
2240 jroman 346
extern PetscErrorCode EPSLanczosSetReorthog(EPS,EPSLanczosReorthogType);
347
extern PetscErrorCode EPSLanczosGetReorthog(EPS,EPSLanczosReorthogType*);
673 dsic.upv.es!antodo 348
 
2240 jroman 349
extern PetscErrorCode EPSBlzpackSetBlockSize(EPS,PetscInt);
350
extern PetscErrorCode EPSBlzpackSetInterval(EPS,PetscReal,PetscReal);
351
extern PetscErrorCode EPSBlzpackSetNSteps(EPS,PetscInt);
6 dsic.upv.es!jroman 352
 
1364 slepc 353
/*E
354
    EPSPRIMMEMethod - determines the method selected in the PRIMME library
355
 
356
    Level: advanced
357
 
358
.seealso: EPSPRIMMESetMethod(), EPSPRIMMEGetMethod()
359
E*/
1940 jroman 360
typedef enum { EPS_PRIMME_DYNAMIC,
361
               EPS_PRIMME_DEFAULT_MIN_TIME,
362
               EPS_PRIMME_DEFAULT_MIN_MATVECS,
363
               EPS_PRIMME_ARNOLDI,
364
               EPS_PRIMME_GD,
365
               EPS_PRIMME_GD_PLUSK,
366
               EPS_PRIMME_GD_OLSEN_PLUSK,
367
               EPS_PRIMME_JD_OLSEN_PLUSK,
368
               EPS_PRIMME_RQI,
369
               EPS_PRIMME_JDQR,
370
               EPS_PRIMME_JDQMR,
371
               EPS_PRIMME_JDQMR_ETOL,
372
               EPS_PRIMME_SUBSPACE_ITERATION,
373
               EPS_PRIMME_LOBPCG_ORTHOBASIS,
374
               EPS_PRIMME_LOBPCG_ORTHOBASISW } EPSPRIMMEMethod;
2322 jroman 375
extern const char *EPSPRIMMEMethods[];
1187 slepc 376
 
2240 jroman 377
extern PetscErrorCode EPSPRIMMESetBlockSize(EPS eps,PetscInt bs);
378
extern PetscErrorCode EPSPRIMMESetMethod(EPS eps, EPSPRIMMEMethod method);
379
extern PetscErrorCode EPSPRIMMEGetBlockSize(EPS eps,PetscInt *bs);
380
extern PetscErrorCode EPSPRIMMEGetMethod(EPS eps, EPSPRIMMEMethod *method);
1187 slepc 381
 
2240 jroman 382
extern PetscErrorCode EPSGDSetKrylovStart(EPS eps,PetscBool krylovstart);
383
extern PetscErrorCode EPSGDGetKrylovStart(EPS eps,PetscBool *krylovstart);
384
extern PetscErrorCode EPSGDSetBlockSize(EPS eps,PetscInt blocksize);
385
extern PetscErrorCode EPSGDGetBlockSize(EPS eps,PetscInt *blocksize);
386
extern PetscErrorCode EPSGDSetRestart(EPS eps,PetscInt minv,PetscInt plusk);
387
extern PetscErrorCode EPSGDGetRestart(EPS eps,PetscInt *minv,PetscInt *plusk);
388
extern PetscErrorCode EPSGDSetInitialSize(EPS eps,PetscInt initialsize);
389
extern PetscErrorCode EPSGDGetInitialSize(EPS eps,PetscInt *initialsize);
2555 eromero 390
extern PetscErrorCode EPSGDSetBOrth(EPS eps,PetscBool borth);
391
extern PetscErrorCode EPSGDGetBOrth(EPS eps,PetscBool *borth);
1987 eromero 392
 
2240 jroman 393
extern PetscErrorCode EPSJDSetKrylovStart(EPS eps,PetscBool krylovstart);
394
extern PetscErrorCode EPSJDGetKrylovStart(EPS eps,PetscBool *krylovstart);
395
extern PetscErrorCode EPSJDSetBlockSize(EPS eps,PetscInt blocksize);
396
extern PetscErrorCode EPSJDGetBlockSize(EPS eps,PetscInt *blocksize);
397
extern PetscErrorCode EPSJDSetRestart(EPS eps,PetscInt minv,PetscInt plusk);
398
extern PetscErrorCode EPSJDGetRestart(EPS eps,PetscInt *minv,PetscInt *plusk);
399
extern PetscErrorCode EPSJDSetInitialSize(EPS eps,PetscInt initialsize);
400
extern PetscErrorCode EPSJDGetInitialSize(EPS eps,PetscInt *initialsize);
401
extern PetscErrorCode EPSJDSetFix(EPS eps,PetscReal fix);
402
extern PetscErrorCode EPSJDGetFix(EPS eps,PetscReal *fix);
1995 eromero 403
 
476 dsic.upv.es!antodo 404
PETSC_EXTERN_CXX_END
6 dsic.upv.es!jroman 405
#endif
406