Actual source code: slepcip.h
1: /*
2: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3: SLEPc - Scalable Library for Eigenvalue Problem Computations
4: Copyright (c) 2002-2009, Universidad Politecnica de Valencia, Spain
6: This file is part of SLEPc.
7:
8: SLEPc is free software: you can redistribute it and/or modify it under the
9: terms of version 3 of the GNU Lesser General Public License as published by
10: the Free Software Foundation.
12: SLEPc is distributed in the hope that it will be useful, but WITHOUT ANY
13: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14: FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
15: more details.
17: You should have received a copy of the GNU Lesser General Public License
18: along with SLEPc. If not, see <http://www.gnu.org/licenses/>.
19: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
20: */
24: #include slepc.h
29: /*E
30: IPOrthogonalizationType - determines what type of orthogonalization to use
32: Level: advanced
34: .seealso: IPSetOrthogonalization(), IPGetOrthogonalization(), IPOrthogonalize()
35: E*/
36: typedef enum { IP_MGS_ORTH, IP_CGS_ORTH } IPOrthogonalizationType;
38: /*E
39: IPOrthogonalizationRefinementType - determines what type of refinement
40: to use during orthogonalization
42: Level: advanced
44: .seealso: IPSetOrthogonalization(), IPGetOrthogonalization(), IPOrthogonalize()
45: E*/
46: typedef enum { IP_ORTH_REFINE_NEVER, IP_ORTH_REFINE_IFNEEDED,
47: IP_ORTH_REFINE_ALWAYS } IPOrthogonalizationRefinementType;
49: /*S
50: IP - Abstraction of a vector inner product, that can be defined
51: in different ways. Using this object is not required for application
52: programmers.
54: Level: beginner
56: .seealso: IPCreate()
57: S*/
58: typedef struct _p_IP* IP;
60: EXTERN PetscErrorCode IPInitializePackage(char *path);
61: EXTERN PetscErrorCode IPCreate(MPI_Comm,IP*);
62: EXTERN PetscErrorCode IPSetOptionsPrefix(IP,const char *);
63: EXTERN PetscErrorCode IPAppendOptionsPrefix(IP,const char *);
64: EXTERN PetscErrorCode IPGetOptionsPrefix(IP,const char *[]);
65: EXTERN PetscErrorCode IPSetFromOptions(IP);
66: EXTERN PetscErrorCode IPSetOrthogonalization(IP,IPOrthogonalizationType,IPOrthogonalizationRefinementType,PetscReal);
67: EXTERN PetscErrorCode IPGetOrthogonalization(IP,IPOrthogonalizationType*,IPOrthogonalizationRefinementType*,PetscReal*);
68: EXTERN PetscErrorCode IPView(IP,PetscViewer);
69: EXTERN PetscErrorCode IPDestroy(IP);
71: EXTERN PetscErrorCode IPOrthogonalize(IP,PetscInt,PetscTruth*,Vec*,Vec,PetscScalar*,PetscReal*,PetscTruth*,Vec,PetscScalar*);
72: EXTERN PetscErrorCode IPOrthogonalizeCGS(IP,PetscInt,PetscTruth*,Vec*,Vec,PetscScalar*,PetscReal*,PetscReal*,Vec);
73: EXTERN PetscErrorCode IPBiOrthogonalize(IP,PetscInt,Vec*,Vec*,Vec,PetscScalar*,PetscReal*);
74: EXTERN PetscErrorCode IPQRDecomposition(IP,Vec*,PetscInt,PetscInt,PetscScalar*,PetscInt,Vec);
76: /*E
77: IPBilinearForm - determines the type of bilinear/sesquilinear form
79: Level: developer
81: .seealso: IPSetBilinearForm(), IPGetBilinearForm()
82: E*/
83: typedef enum { IPINNER_HERMITIAN, IPINNER_SYMMETRIC } IPBilinearForm;
84: EXTERN PetscErrorCode IPSetBilinearForm(IP,Mat,IPBilinearForm);
85: EXTERN PetscErrorCode IPGetBilinearForm(IP,Mat*,IPBilinearForm*);
86: EXTERN PetscErrorCode IPApplyMatrix(IP,Vec,Vec);
88: EXTERN PetscErrorCode IPInnerProduct(IP ip,Vec,Vec,PetscScalar*);
89: EXTERN PetscErrorCode IPInnerProductBegin(IP ip,Vec,Vec,PetscScalar*);
90: EXTERN PetscErrorCode IPInnerProductEnd(IP ip,Vec,Vec,PetscScalar*);
91: EXTERN PetscErrorCode IPMInnerProduct(IP ip,Vec,PetscInt,const Vec[],PetscScalar*);
92: EXTERN PetscErrorCode IPMInnerProductBegin(IP ip,Vec,PetscInt,const Vec[],PetscScalar*);
93: EXTERN PetscErrorCode IPMInnerProductEnd(IP ip,Vec,PetscInt,const Vec[],PetscScalar*);
94: EXTERN PetscErrorCode IPNorm(IP ip,Vec,PetscReal*);
95: EXTERN PetscErrorCode IPNormBegin(IP ip,Vec,PetscReal*);
96: EXTERN PetscErrorCode IPNormEnd(IP ip,Vec,PetscReal*);
98: EXTERN PetscErrorCode IPGetOperationCounters(IP,PetscInt*);
99: EXTERN PetscErrorCode IPResetOperationCounters(IP);
102: #endif