Actual source code: petscmat.h
petsc-3.8.4 2018-03-24
1: !
2: !
3: ! Include file for Fortran use of the Mat package in PETSc
4: !
5: #if !defined (__PETSCMATDEF_H)
8: #include "petsc/finclude/petscvec.h"
10: #define Mat type(tMat)
11: #define MatNullSpace type(tMatNullSpace)
12: #define MatFDColoring type(tMatFDColoring)
14: #define MatColoring PetscFortranAddr
15: #define MatPartitioning PetscFortranAddr
16: #define MatCoarsen PetscFortranAddr
17: #define MatAIJIndices PetscFortranAddr
18: #define MatType character*(80)
19: #define MatSolverPackage character*(80)
20: #define MatOption PetscEnum
21: #define MatCreateSubMatrixOption PetscEnum
22: #define MPChacoGlobalType PetscEnum
23: #define MPChacoLocalType PetscEnum
24: #define MPChacoEigenType PetscEnum
25: #define MPPTScotchStragegyType PetscEnum
26: #define MatAssemblyType PetscEnum
27: #define MatFactorType PetscEnum
28: #define MatFactorError PetscEnum
29: #define MatFactorShiftType PetscEnum
30: #define MatFactorSchurStatus PetscEnum
31: #define MatOrderingType character*(80)
32: #define MatSORType PetscEnum
33: #define MatInfoType PetscEnum
34: #define MatReuse PetscEnum
35: #define MatOperation PetscEnum
36: #define MatColoringType character*(80)
37: #define MatInfo PetscLogDouble
38: #define MatFactorInfo PetscReal
39: #define MatDuplicateOption PetscEnum
40: #define MatStructure PetscEnum
41: #define MatPartitioningType character*(80)
42: #define MatCoarsenType character*(80)
43: #define MatCompositeType PetscEnum
44: #define MatStencil PetscInt
45: #define MatStencil_k 1
46: #define MatStencil_j 2
47: #define MatStencil_i 3
48: #define MatStencil_c 4
50: #define MATPARTITIONING_CURRENT 'current'
51: #define MATPARTITIONING_PARMETIS 'parmetis'
53: #define MATCOARSEN_MIS 'mis'
55: #define MATCOLORINGNATURAL 'natural'
56: #define MATCOLORINGSL 'sl'
57: #define MATCOLORINGLF 'lf'
58: #define MATCOLORINGID 'id'
59: #define MATCOLORINGGREEDY 'greedy'
60: #define MATCOLORINGJP 'jp'
62: #define MATORDERINGNATURAL 'natural'
63: #define MATORDERINGND 'nd'
64: #define MATORDERING1WD '1wd'
65: #define MATORDERINGRCM 'rcm'
66: #define MATORDERINGQMD 'qmd'
67: #define MATORDERINGROWLENGTH 'rowlength'
68: #define MATORDERINGWBM 'wbm'
69: #define MATORDERINGSPECTRAL 'spectral'
70: #define MATORDERINGAMD 'amd'
71: !
72: ! Matrix types
73: !
74: #define MATSAME 'same'
75: #define MATMAIJ 'maij'
76: #define MATSEQMAIJ 'seqmaij'
77: #define MATMPIMAIJ 'mpimaij'
78: #define MATIS 'is'
79: #define MATAIJ 'aij'
80: #define MATSEQAIJ 'seqaij'
81: #define MATMPIAIJ 'mpiaij'
82: #define MATAIJCRL 'aijcrl'
83: #define MATSEQAIJCRL 'seqaijcrl'
84: #define MATMPIAIJCRL 'mpiaijcrl'
85: #define MATAIJCUSP 'aijcusp'
86: #define MATSEQAIJCUSP 'seqaijcusp'
87: #define MATMPIAIJCUSP 'mpiaijcusp'
88: #define MATAIJCUSPARSE 'aijcusparse'
89: #define MATSEQAIJCUSPARSE 'seqaijcusparse'
90: #define MATMPIAIJCUSPARSE 'mpiaijcusparse'
91: #define MATAIJVIENNACL 'aijviennacl'
92: #define MATSEQAIJVIENNACL 'seqaijviennacl'
93: #define MATMPIAIJVIENNACL 'mpiaijviennacl'
94: #define MATAIJPERM 'aijperm'
95: #define MATSEQAIJPERM 'seqaijperm'
96: #define MATMPIAIJPERM 'mpiaijperm'
97: #define MATAIJMKL 'aijmkl'
98: #define MATSEQAIJMKL 'seqaijmkl'
99: #define MATMPIAIJMKL 'mpiaijmkl'
100: #define MATBAIJMKL 'baijmkl'
101: #define MATSEQBAIJMKL 'seqbaijmkl'
102: #define MATMPIBAIJMKL 'mpibaijmkl'
103: #define MATSHELL 'shell'
104: #define MATDENSE 'dense'
105: #define MATSEQDENSE 'seqdense'
106: #define MATMPIDENSE 'mpidense'
107: #define MATELEMENTAL 'elemental'
108: #define MATBAIJ 'baij'
109: #define MATSEQBAIJ 'seqbaij'
110: #define MATMPIBAIJ 'mpibaij'
111: #define MATMPIADJ 'mpiadj'
112: #define MATSBAIJ 'sbaij'
113: #define MATSEQSBAIJ 'seqsbaij'
114: #define MATMPISBAIJ 'mpisbaij'
116: #define MATDAAD 'daad'
117: #define MATMFFD 'mffd'
118: #define MATNORMAL 'normal'
119: #define MATNORMALHERMITIAN 'normalh'
120: #define MATLRC 'lrc'
121: #define MATSCATTER 'scatter'
122: #define MATBLOCKMAT 'blockmat'
123: #define MATCOMPOSITE 'composite'
124: #define MATFFT 'fft'
125: #define MATFFTW 'fftw'
126: #define MATSEQCUFFT 'seqcufft'
127: #define MATTRANSPOSEMAT 'transpose'
128: #define MATSCHURCOMPLEMENT 'schurcomplement'
129: #define MATPYTHON 'python'
130: #define MATHYPRESTRUCT 'hyprestruct'
131: #define MATHYPRESSTRUCT 'hypresstruct'
132: #define MATSUBMATRIX 'submatrix'
133: #define MATLOCALREF 'localref'
134: #define MATNEST 'nest'
135: #define MATPREALLOCATOR 'preallocator'
136: #define MATDUMMY 'dummy'
138: !
139: ! MatMFFDType values
140: !
141: #define MATMFFD_DS 'ds'
142: #define MATMFFD_WP 'wp'
144: !
145: ! MatSolverPackages
146: !
147: #define MATSOLVERSUPERLU 'superlu'
148: #define MATSOLVERSUPERLU_DIST 'superlu_dist'
149: #define MATSOLVERSTRUMPACK 'strumpack'
150: #define MATSOLVERUMFPACK 'umfpack'
151: #define MATSOLVERCHOLMOD 'cholmod'
152: #define MATSOLVERSPARSEELEMENTAL 'sparseelemental'
153: #define MATSOLVERKLU 'klu'
154: #define MATSOLVERELEMENTAL 'elemental'
155: #define MATSOLVERESSL 'essl'
156: #define MATSOLVERLUSOL 'lusol'
157: #define MATSOLVERMUMPS 'mumps'
158: #define MATSOLVERMKL_PARDISO 'mkl_pardiso'
159: #define MATSOLVERMKL_CPARDISO 'mkl_cpardiso'
160: #define MATSOLVERPASTIX 'pastix'
161: #define MATSOLVERMATLAB 'matlab'
162: #define MATSOLVERPETSC 'petsc'
163: #define MATSOLVERBAS 'bas'
164: #define MATSOLVERCUSPARSE 'cusparse'
166: !
167: ! GPU Storage Formats for CUSP and CUSPARSE
168: !
169: #define MatCUSPARSEStorageFormat PetscEnum
170: #define MatCUSPARSEFormatOperation PetscEnum
172: #define MatCUSPStorageFormat PetscEnum
173: #define MatCUSPFormatOperation PetscEnum
175: #endif