Actual source code: petscmatdef.h
petsc-3.7.1 2016-05-15
Report Typos and Errors

      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'
    136: !
    137: ! MatSolverPackages
    138: !
    139: #define MATSOLVERSUPERLU      'superlu'
    140: #define MATSOLVERSUPERLU_DIST 'superlu_dist'
    141: #define MATSOLVERUMFPACK      'umfpack'
    142: #define MATSOLVERCHOLMOD      'cholmod'
    143: #define MATSOLVERCLIQUE       'clique'
    144: #define MATSOLVERKLU          'klu'
    145: #define MATSOLVERELEMENTAL    'elemental'
    146: #define MATSOLVERESSL         'essl'
    147: #define MATSOLVERLUSOL        'lusol'
    148: #define MATSOLVERMUMPS        'mumps'
    149: #define MATSOLVERMKL_PARDISO  'mkl_pardiso'
    150: #define MATSOLVERMKL_CPARDISO 'mkl_cpardiso'
    151: #define MATSOLVERPASTIX       'pastix'
    152: #define MATSOLVERMATLAB       'matlab'
    153: #define MATSOLVERPETSC        'petsc'
    154: #define MATSOLVERBAS          'bas'
    155: #define MATSOLVERCUSPARSE     'cusparse'
    156: #define MATSOLVERBSTRM        'bstrm'
    157: #define MATSOLVERSBSTRM       'sbstrm'

    159: !
    160: ! GPU Storage Formats for CUSP and CUSPARSE
    161: !
    162: #define MatCUSPARSEStorageFormat PetscEnum
    163: #define MatCUSPARSEFormatOperation PetscEnum

    165: #define MatCUSPStorageFormat PetscEnum
    166: #define MatCUSPFormatOperation PetscEnum

    168: #endif