Actual source code: petscmatdef.h
petsc-3.4.2 2013-07-02

      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 MatCoarsen PetscFortranAddr
     17: #define MatAIJIndices PetscFortranAddr
     18: #define MatType character*(80)
     19: #define MatSolverPackage character*(80)
     20: #define MatOption PetscEnum
     21: #define MatGetSubMatrixOption PetscEnum
     22: #define MPChacoGlobalType PetscEnum
     23: #define MPChacoLocalType PetscEnum
     24: #define MPChacoEigenType PetscEnum
     25: #define MPPTScotchStragegyType 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 MatCoarsenType character*(80)
     41: #define MatCompositeType PetscEnum
     42: #define MatStencil PetscInt
     43: #define MatStencil_k 1
     44: #define MatStencil_j 2
     45: #define MatStencil_i 3
     46: #define MatStencil_c 4

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

     51: #define MATCOARSEN_MIS 'mis'

     53: #define MATCOLORINGNATURAL 'natural'
     54: #define MATCOLORINGSL 'sl'
     55: #define MATCOLORINGLF 'lf'
     56: #define MATCOLORINGID 'id'

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

    100: #define MATSEQBSTRM        'seqbstrm'
    101: #define MATMPIBSTRM        'mpibstrm'
    102: #define MATBSTRM           'bstrm'
    103: #define MATSEQSBSTRM       'seqsbstrm'
    104: #define MATMPISBSTRM       'mpisbstrm'
    105: #define MATSBSTRM          'sbstrm'

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

    143: !
    144: ! GPU Storage Formats for CUSP and CUSPARSE
    145: !
    146: #define MatCUSPARSEStorageFormat PetscEnum
    147: #define MatCUSPARSEFormatOperation PetscEnum

    149: #define MatCUSPStorageFormat PetscEnum
    150: #define MatCUSPFormatOperation PetscEnum

    152: #endif