Actual source code: petscmatdef.h

petsc-3.5.4 2015-05-23
Report Typos and Errors
  1: !
  2: !
  3: !  Include file for Fortran use of the Mat package in PETSc
  4: !
  5: #if !defined (__PETSCMATDEF_H)

 8:  #include finclude/petscvecdef.h

 10: #if !defined(PETSC_USE_FORTRAN_DATATYPES)
 11: #define Mat PetscFortranAddr
 12: #define MatNullSpace PetscFortranAddr
 13: #define MatFDColoring PetscFortranAddr
 14: #define MatColoring PetscFortranAddr
 15: #endif
 16: #define MatPartitioning PetscFortranAddr
 17: #define MatCoarsen PetscFortranAddr
 18: #define MatAIJIndices PetscFortranAddr
 19: #define MatType character*(80)
 20: #define MatSolverPackage character*(80)
 21: #define MatOption PetscEnum
 22: #define MatGetSubMatrixOption PetscEnum
 23: #define MPChacoGlobalType PetscEnum
 24: #define MPChacoLocalType PetscEnum
 25: #define MPChacoEigenType PetscEnum
 26: #define MPPTScotchStragegyType PetscEnum
 27: #define MatAssemblyType PetscEnum
 28: #define MatFactorType PetscEnum
 29: #define MatFactorShiftType PetscEnum
 30: #define MatOrderingType character*(80)
 31: #define MatSORType PetscEnum
 32: #define MatInfoType PetscEnum
 33: #define MatReuse PetscEnum
 34: #define MatOperation PetscEnum
 35: #define MatColoringType character*(80)
 36: #define MatInfo PetscLogDouble
 37: #define MatFactorInfo PetscReal
 38: #define MatDuplicateOption PetscEnum
 39: #define MatStructure PetscEnum
 40: #define MatPartitioningType character*(80)
 41: #define MatCoarsenType character*(80)
 42: #define MatCompositeType PetscEnum
 43: #define MatStencil PetscInt
 44: #define MatStencil_k 1
 45: #define MatStencil_j 2
 46: #define MatStencil_i 3
 47: #define MatStencil_c 4

 49: #define MATPARTITIONING_CURRENT 'current'
 50: #define MATPARTITIONING_PARMETIS 'parmetis'

 52: #define MATCOARSEN_MIS 'mis'

 54: #define MATCOLORINGNATURAL 'natural'
 55: #define MATCOLORINGSL      'sl'
 56: #define MATCOLORINGLF      'lf'
 57: #define MATCOLORINGID      'id'
 58: #define MATCOLORINGGREEDY  'greedy'
 59: #define MATCOLORINGJP      'jp'

 61: #define MATORDERINGNATURAL   'natural'
 62: #define MATORDERINGND        'nd'
 63: #define MATORDERING1WD       '1wd'
 64: #define MATORDERINGRCM       'rcm'
 65: #define MATORDERINGQMD       'qmd'
 66: #define MATORDERINGROWLENGTH 'rowlength'
 67: #define MATORDERINGWBM       'wbm'
 68: #define MATORDERINGSPECTRAL  'spectral'
 69: #define MATORDERINGAMD       'amd'
 70: !
 71: !  Matrix types
 72: !
 73: #define MATSAME            'same'
 74: #define MATMAIJ            'maij'
 75: #define MATSEQMAIJ         'seqmaij'
 76: #define MATMPIMAIJ         'mpimaij'
 77: #define MATIS              'is'
 78: #define MATAIJ             'aij'
 79: #define MATSEQAIJ          'seqaij'
 80: #define MATMPIAIJ          'mpiaij'
 81: #define MATAIJCRL          'aijcrl'
 82: #define MATSEQAIJCRL       'seqaijcrl'
 83: #define MATMPIAIJCRL       'mpiaijcrl'
 84: #define MATAIJCUSP         'aijcusp'
 85: #define MATSEQAIJCUSP      'seqaijcusp'
 86: #define MATMPIAIJCUSP      'mpiaijcusp'
 87: #define MATAIJCUSPARSE     'aijcusparse'
 88: #define MATSEQAIJCUSPARSE  'seqaijcusparse'
 89: #define MATMPIAIJCUSPARSE  'mpiaijcusparse'
 90: #define MATAIJPERM         'aijperm'
 91: #define MATSEQAIJPERM      'seqaijperm'
 92: #define MATMPIAIJPERM      'mpiaijperm'
 93: #define MATSHELL           'shell'
 94: #define MATDENSE           'dense'
 95: #define MATSEQDENSE        'seqdense'
 96: #define MATMPIDENSE        'mpidense'
 97: #define MATELEMENTAL       'elemental'
 98: #define MATBAIJ            'baij'
 99: #define MATSEQBAIJ         'seqbaij'
100: #define MATMPIBAIJ         'mpibaij'
101: #define MATMPIADJ          'mpiadj'
102: #define MATSBAIJ           'sbaij'
103: #define MATSEQSBAIJ        'seqsbaij'
104: #define MATMPISBAIJ        'mpisbaij'

106: #define MATSEQBSTRM        'seqbstrm'
107: #define MATMPIBSTRM        'mpibstrm'
108: #define MATBSTRM           'bstrm'
109: #define MATSEQSBSTRM       'seqsbstrm'
110: #define MATMPISBSTRM       'mpisbstrm'
111: #define MATSBSTRM          'sbstrm'

113: #define MATDAAD            'daad'
114: #define MATMFFD            'mffd'
115: #define MATNORMAL          'normal'
116: #define MATLRC             'lrc'
117: #define MATSCATTER         'scatter'
118: #define MATBLOCKMAT        'blockmat'
119: #define MATCOMPOSITE       'composite'
120: #define MATFFT             'fft'
121: #define MATFFTW            'fftw'
122: #define MATSEQCUFFT        'seqcufft'
123: #define MATTRANSPOSEMAT    'transpose'
124: #define MATSCHURCOMPLEMENT 'schurcomplement'
125: #define MATPYTHON          'python'
126: #define MATHYPRESTRUCT     'hyprestruct'
127: #define MATHYPRESSTRUCT    'hypresstruct'
128: #define MATSUBMATRIX       'submatrix'
129: #define MATLOCALREF        'localref'
130: #define MATNEST            'nest'
131: !
132: ! MatSolverPackages
133: !
134: #define MATSOLVERSUPERLU      'superlu'
135: #define MATSOLVERSUPERLU_DIST 'superlu_dist'
136: #define MATSOLVERUMFPACK      'umfpack'
137: #define MATSOLVERCHOLMOD      'cholmod'
138: #define MATSOLVERESSL         'essl'
139: #define MATSOLVERLUSOL        'lusol'
140: #define MATSOLVERMUMPS        'mumps'
141: #define MATSOLVERPASTIX       'pastix'
142: #define MATSOLVERMATLAB       'matlab'
143: #define MATSOLVERPETSC        'petsc'
144: #define MATSOLVERBAS          'bas'
145: #define MATSOLVERCUSPARSE     'cusparse'
146: #define MATSOLVERBSTRM        'bstrm'
147: #define MATSOLVERSBSTRM       'sbstrm'

149: !
150: ! GPU Storage Formats for CUSP and CUSPARSE
151: !
152: #define MatCUSPARSEStorageFormat PetscEnum
153: #define MatCUSPARSEFormatOperation PetscEnum

155: #define MatCUSPStorageFormat PetscEnum
156: #define MatCUSPFormatOperation PetscEnum

158: #endif