1: ! 2: ! 3: ! Include file for Fortran use of the Mat package in PETSc 4: ! 5: #if !defined (__PETSCMATDEF_H) 8: #include petsc/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 MATAIJVIENNACL 'aijviennacl' 91: #define MATSEQAIJVIENNACL 'seqaijviennacl' 92: #define MATMPIAIJVIENNACL 'mpiaijviennacl' 93: #define MATAIJPERM 'aijperm' 94: #define MATSEQAIJPERM 'seqaijperm' 95: #define MATMPIAIJPERM 'mpiaijperm' 96: #define MATSHELL 'shell' 97: #define MATDENSE 'dense' 98: #define MATSEQDENSE 'seqdense' 99: #define MATMPIDENSE 'mpidense' 100: #define MATELEMENTAL 'elemental' 101: #define MATBAIJ 'baij' 102: #define MATSEQBAIJ 'seqbaij' 103: #define MATMPIBAIJ 'mpibaij' 104: #define MATMPIADJ 'mpiadj' 105: #define MATSBAIJ 'sbaij' 106: #define MATSEQSBAIJ 'seqsbaij' 107: #define MATMPISBAIJ 'mpisbaij' 109: #define MATSEQBSTRM 'seqbstrm' 110: #define MATMPIBSTRM 'mpibstrm' 111: #define MATBSTRM 'bstrm' 112: #define MATSEQSBSTRM 'seqsbstrm' 113: #define MATMPISBSTRM 'mpisbstrm' 114: #define MATSBSTRM 'sbstrm' 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' 137: ! 138: ! MatMFFDType values 139: ! 140: #define MATMFFD_DS 'ds' 141: #define MATMFFD_WP 'wp' 143: ! 144: ! MatSolverPackages 145: ! 146: #define MATSOLVERSUPERLU 'superlu' 147: #define MATSOLVERSUPERLU_DIST 'superlu_dist' 148: #define MATSOLVERUMFPACK 'umfpack' 149: #define MATSOLVERCHOLMOD 'cholmod' 150: #define MATSOLVERCLIQUE 'clique' 151: #define MATSOLVERKLU 'klu' 152: #define MATSOLVERELEMENTAL 'elemental' 153: #define MATSOLVERESSL 'essl' 154: #define MATSOLVERLUSOL 'lusol' 155: #define MATSOLVERMUMPS 'mumps' 156: #define MATSOLVERMKL_PARDISO 'mkl_pardiso' 157: #define MATSOLVERMKL_CPARDISO 'mkl_cpardiso' 158: #define MATSOLVERPASTIX 'pastix' 159: #define MATSOLVERMATLAB 'matlab' 160: #define MATSOLVERPETSC 'petsc' 161: #define MATSOLVERBAS 'bas' 162: #define MATSOLVERCUSPARSE 'cusparse' 163: #define MATSOLVERBSTRM 'bstrm' 164: #define MATSOLVERSBSTRM 'sbstrm' 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