Actual source code: petscmatdef.h

  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_TYPES)
 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 MatAssemblyType PetscEnum
 21: #define MatFactorType PetscEnum
 22: #define MatOrderingType character*(80)
 23: #define MatSORType PetscEnum
 24: #define MatInfoType PetscEnum
 25: #define MatReuse PetscEnum
 26: #define MatOperation PetscEnum
 27: #define MatColoringType character*(80)
 28: #define MatInfo PetscLogDouble
 29: #define MatFactorInfo PetscReal
 30: #define MatDuplicateOption PetscEnum
 31: #define MatStructure PetscEnum
 32: #define MatPartitioningType character*(80)
 33: #define MatCompositeType PetscEnum
 34: #define MatStencil PetscInt
 35: #define MatStencil_k 1
 36: #define MatStencil_j 2
 37: #define MatStencil_i 3
 38: #define MatStencil_c 4

 40: #define MATPARTITIONING_CURRENT 'current'
 41: #define MATPARTITIONING_PARMETIS 'parmetis'

 43: #define MATCOLORING_NATURAL 'natural'
 44: #define MATCOLORING_SL 'sl'
 45: #define MATCOLORING_LF 'lf'
 46: #define MATCOLORING_ID 'id'

 48: #define MATORDERING_NATURAL 'natural'
 49: #define MATORDERING_ND 'nd'
 50: #define MATORDERING_1WD '1wd'
 51: #define MATORDERING_RCM 'rcm'
 52: #define MATORDERING_QMD 'qmd'
 53: #define MATORDERING_ROWLENGTH 'rowlength'
 54: #define MATORDERING_DSC_ND 'dsc_nd'
 55: #define MATORDERING_DSC_MMD 'dsc_mmd'
 56: #define MATORDERING_DSC_MDF 'dsc_mdf'

 58: !
 59: !  Matrix types
 60: !
 61: #define MATSAME            'same'
 62: #define MATSEQMAIJ         'seqmaij'
 63: #define MATMPIMAIJ         'mpimaij'
 64: #define MATMAIJ            'maij'
 65: #define MATIS              'is'
 66: #define MATMPIROWBS        'mpirowbs'
 67: #define MATSEQAIJ          'seqaij'
 68: #define MATMPIAIJ          'mpiaij'
 69: #define MATAIJ             'aij'
 70: #define MATSHELL           'shell'
 71: #define MATSEQDENSE        'seqdense'
 72: #define MATMPIDENSE        'mpidense'
 73: #define MATDENSE           'dense'
 74: #define MATSEQBAIJ         'seqbaij'
 75: #define MATMPIBAIJ         'mpibaij'
 76: #define MATBAIJ            'baij'
 77: #define MATMPIADJ          'mpiadj'
 78: #define MATSEQSBAIJ        'seqsbaij'
 79: #define MATMPISBAIJ        'mpisbaij'
 80: #define MATSBAIJ           'sbaij'
 81: #define MATDAAD            'daad'
 82: #define MATMFFD            'mffd'
 83: #define MATNORMAL          'normal'
 84: #define MATLRC             'lrc'
 85: #define MATSEQCSRPERM      'seqcsrperm'
 86: #define MATMPICSRPERM      'mpicsrperm'
 87: #define MATCSRPERM         'csrperm'
 88: #define MATSEQCRL          'seqcrl'
 89: #define MATMPICRL          'mpicrl'
 90: #define MATCRL             'crl'
 91: #define MATSCATTER         'scatter'
 92: #define MATBLOCKMAT        'blockmat'
 93: #define MATCOMPOSITE       'composite'
 94: #define MATSEQFFTW         'seqfftw'
 95: #define MATTRANSPOSEMAT    'transpose'
 96: #define MATSCHURCOMPLEMENT 'schurcomplement'
 97: #define MATPYTHON          'python'
 98: !
 99: ! MatSolverPackages
100: !
101: #define MAT_SOLVER_SPOOLES      'spooles'
102: #define MAT_SOLVER_SUPERLU      'superlu'
103: #define MAT_SOLVER_SUPERLU_DIST 'superlu_dist'
104: #define MAT_SOLVER_UMFPACK      'umfpack'
105: #define MAT_SOLVER_ESSL         'essl'
106: #define MAT_SOLVER_LUSOL        'lusol'
107: #define MAT_SOLVER_MUMPS        'mumps'
108: #define MAT_SOLVER_DSCPACK      'dscpack'
109: #define MAT_SOLVER_MATLAB       'matlab'
110: #define MAT_SOLVER_PETSC        'petsc'

112: #endif