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: #endif 15: #define MatPartitioning PetscFortranAddr 16: #define MatAIJIndices PetscFortranAddr 17: #define MatType character*(80) 18: #define MatSolverPackage character*(80) 19: #define MatOption PetscEnum 20: #define MatGetSubMatrixOption PetscEnum 21: #define MPChacoGlobalType PetscEnum 22: #define MPChacoLocalType PetscEnum 23: #define MPChacoEigenType PetscEnum 24: #define MPPTScotchStragegyType PetscEnum 25: #define MatAssemblyType PetscEnum 26: #define MatFactorType PetscEnum 27: #define MatFactorShiftType PetscEnum 28: #define MatOrderingType character*(80) 29: #define MatSORType PetscEnum 30: #define MatInfoType PetscEnum 31: #define MatReuse PetscEnum 32: #define MatOperation PetscEnum 33: #define MatColoringType character*(80) 34: #define MatInfo PetscLogDouble 35: #define MatFactorInfo PetscReal 36: #define MatDuplicateOption PetscEnum 37: #define MatStructure PetscEnum 38: #define MatPartitioningType character*(80) 39: #define MatCompositeType PetscEnum 40: #define MatStencil PetscInt 41: #define MatStencil_k 1 42: #define MatStencil_j 2 43: #define MatStencil_i 3 44: #define MatStencil_c 4 46: #define MATPARTITIONING_CURRENT 'current' 47: #define MATPARTITIONING_PARMETIS 'parmetis' 49: #define MATCOLORINGNATURAL 'natural' 50: #define MATCOLORINGSL 'sl' 51: #define MATCOLORINGLF 'lf' 52: #define MATCOLORINGID 'id' 54: #define MATORDERINGNATURAL 'natural' 55: #define MATORDERINGND 'nd' 56: #define MATORDERING1WD '1wd' 57: #define MATORDERINGRCM 'rcm' 58: #define MATORDERINGQMD 'qmd' 59: #define MATORDERINGROWLENGTH 'rowlength' 60: ! 61: ! Matrix types 62: ! 63: #define MATSAME 'same' 64: #define MATMAIJ 'maij' 65: #define MATSEQMAIJ 'seqmaij' 66: #define MATMPIMAIJ 'mpimaij' 67: #define MATIS 'is' 68: #define MATAIJ 'aij' 69: #define MATSEQAIJ 'seqaij' 70: #define MATMPIAIJ 'mpiaij' 71: #define MATAIJCRL 'aijcrl' 72: #define MATSEQAIJCRL 'seqaijcrl' 73: #define MATMPIAIJCRL 'mpiaijcrl' 74: #define MATAIJCUSP 'aijcusp' 75: #define MATSEQAIJCUSP 'seqaijcusp' 76: #define MATMPIAIJCUSP 'mpiaijcusp' 77: #define MATAIJPERM 'aijperm' 78: #define MATSEQAIJPERM 'seqaijperm' 79: #define MATMPIAIJPERM 'mpiaijperm' 80: #define MATSHELL 'shell' 81: #define MATDENSE 'dense' 82: #define MATSEQDENSE 'seqdense' 83: #define MATMPIDENSE 'mpidense' 84: #define MATBAIJ 'baij' 85: #define MATSEQBAIJ 'seqbaij' 86: #define MATMPIBAIJ 'mpibaij' 87: #define MATMPIADJ 'mpiadj' 88: #define MATSBAIJ 'sbaij' 89: #define MATSEQSBAIJ 'seqsbaij' 90: #define MATMPISBAIJ 'mpisbaij' 92: #define MATSEQBSTRM 'seqbstrm' 93: #define MATMPIBSTRM 'mpibstrm' 94: #define MATBSTRM 'bstrm' 95: #define MATSEQSBSTRM 'seqsbstrm' 96: #define MATMPISBSTRM 'mpisbstrm' 97: #define MATSBSTRM 'sbstrm' 99: #define MATDAAD 'daad' 100: #define MATMFFD 'mffd' 101: #define MATNORMAL 'normal' 102: #define MATLRC 'lrc' 103: #define MATSCATTER 'scatter' 104: #define MATBLOCKMAT 'blockmat' 105: #define MATCOMPOSITE 'composite' 106: #define MATFFT 'fft' 107: #define MATFFTW 'fftw' 108: #define MATSEQCUFFT 'seqcufft' 109: #define MATTRANSPOSEMAT 'transpose' 110: #define MATSCHURCOMPLEMENT 'schurcomplement' 111: #define MATPYTHON 'python' 112: #define MATHYPRESTRUCT 'hyprestruct' 113: #define MATHYPRESSTRUCT 'hypresstruct' 114: #define MATSUBMATRIX 'submatrix' 115: #define MATLOCALREF 'localref' 116: #define MATNEST 'nest' 117: ! 118: ! MatSolverPackages 119: ! 120: #define MATSOLVERSPOOLES 'spooles' 121: #define MATSOLVERSUPERLU 'superlu' 122: #define MATSOLVERSUPERLU_DIST 'superlu_dist' 123: #define MATSOLVERUMFPACK 'umfpack' 124: #define MATSOLVERCHOLMOD 'cholmod' 125: #define MATSOLVERESSL 'essl' 126: #define MATSOLVERLUSOL 'lusol' 127: #define MATSOLVERMUMPS 'mumps' 128: #define MATSOLVERPASTIX 'pastix' 129: #define MATSOLVERMATLAB 'matlab' 130: #define MATSOLVERPETSC 'petsc' 131: #define MATSOLVERPLAPACK 'plapack' 132: #define MATSOLVERBAS 'bas' 134: #define MATSOLVERBSTRM 'bstrm' 135: #define MATSOLVERSBSTRM 'sbstrm' 136: #endif