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 MPScotchGlobalType PetscEnum 25: #define MPScotchLocalType PetscEnum 26: #define MatAssemblyType PetscEnum 27: #define MatFactorType PetscEnum 28: #define MatFactorShiftType PetscEnum 29: #define MatOrderingType character*(80) 30: #define MatSORType PetscEnum 31: #define MatInfoType PetscEnum 32: #define MatReuse PetscEnum 33: #define MatOperation PetscEnum 34: #define MatColoringType character*(80) 35: #define MatInfo PetscLogDouble 36: #define MatFactorInfo PetscReal 37: #define MatDuplicateOption PetscEnum 38: #define MatStructure PetscEnum 39: #define MatPartitioningType character*(80) 40: #define MatCompositeType PetscEnum 41: #define MatStencil PetscInt 42: #define MatStencil_k 1 43: #define MatStencil_j 2 44: #define MatStencil_i 3 45: #define MatStencil_c 4 47: #define MATPARTITIONING_CURRENT 'current' 48: #define MATPARTITIONING_PARMETIS 'parmetis' 50: #define MATCOLORING_NATURAL 'natural' 51: #define MATCOLORING_SL 'sl' 52: #define MATCOLORING_LF 'lf' 53: #define MATCOLORING_ID 'id' 55: #define MATORDERING_NATURAL 'natural' 56: #define MATORDERING_ND 'nd' 57: #define MATORDERING_1WD '1wd' 58: #define MATORDERING_RCM 'rcm' 59: #define MATORDERING_QMD 'qmd' 60: #define MATORDERING_ROWLENGTH 'rowlength' 61: #define MATORDERING_DSC_ND 'dsc_nd' 62: #define MATORDERING_DSC_MMD 'dsc_mmd' 63: #define MATORDERING_DSC_MDF 'dsc_mdf' 65: ! 66: ! Matrix types 67: ! 68: #define MATSAME 'same' 69: #define MATSEQMAIJ 'seqmaij' 70: #define MATMPIMAIJ 'mpimaij' 71: #define MATMAIJ 'maij' 72: #define MATIS 'is' 73: #define MATSEQAIJ 'seqaij' 74: #define MATMPIAIJ 'mpiaij' 75: #define MATAIJ 'aij' 76: #define MATSHELL 'shell' 77: #define MATSEQDENSE 'seqdense' 78: #define MATMPIDENSE 'mpidense' 79: #define MATDENSE 'dense' 80: #define MATSEQBAIJ 'seqbaij' 81: #define MATMPIBAIJ 'mpibaij' 82: #define MATBAIJ 'baij' 83: #define MATMPIADJ 'mpiadj' 84: #define MATSEQSBAIJ 'seqsbaij' 85: #define MATMPISBAIJ 'mpisbaij' 86: #define MATSBAIJ 'sbaij' 87: #define MATDAAD 'daad' 88: #define MATMFFD 'mffd' 89: #define MATNORMAL 'normal' 90: #define MATLRC 'lrc' 91: #define MATSEQCSRPERM 'seqcsrperm' 92: #define MATMPICSRPERM 'mpicsrperm' 93: #define MATCSRPERM 'csrperm' 94: #define MATSEQCRL 'seqcrl' 95: #define MATMPICRL 'mpicrl' 96: #define MATCRL 'crl' 97: #define MATSCATTER 'scatter' 98: #define MATBLOCKMAT 'blockmat' 99: #define MATCOMPOSITE 'composite' 100: #define MATSEQFFTW 'seqfftw' 101: #define MATTRANSPOSEMAT 'transpose' 102: #define MATSCHURCOMPLEMENT 'schurcomplement' 103: #define MATPYTHON 'python' 104: #define MATHYPRESTRUCT 'hyprestruct' 105: #define MATHYPRESSTRUCT 'hypresstruct' 106: ! 107: ! MatSolverPackages 108: ! 109: #define MAT_SOLVER_SPOOLES 'spooles' 110: #define MAT_SOLVER_SUPERLU 'superlu' 111: #define MAT_SOLVER_SUPERLU_DIST 'superlu_dist' 112: #define MAT_SOLVER_UMFPACK 'umfpack' 113: #define MAT_SOLVER_ESSL 'essl' 114: #define MAT_SOLVER_LUSOL 'lusol' 115: #define MAT_SOLVER_MUMPS 'mumps' 116: #define MAT_SOLVER_DSCPACK 'dscpack' 117: #define MAT_SOLVER_MATLAB 'matlab' 118: #define MAT_SOLVER_PETSC 'petsc' 119: #define MAT_SOLVER_BAS 'bas' 120: #endif