Actual source code: petscdm.h

      1: !
      2: !  Include file for Fortran use of the DM package in PETSc
      3: !
      4: #if !defined (PETSCDMDEF_H)
      5: #define PETSCDMDEF_H

      7: #include "petsc/finclude/petscis.h"
      8: #include "petsc/finclude/petscvec.h"
      9: #include "petsc/finclude/petscmat.h"
     10: #include "petsc/finclude/petscdt.h"

     12: #define DMType character*(80)
     13: #define DMBoundaryType               PetscEnum
     14: #define DMBlockingType               PetscEnum
     15: #define DMPointLocationType          PetscEnum
     16: #define DMAdaptationType             PetscEnum
     17: #define DMAdaptFlag                  PetscEnum
     18: #define PetscUnit                    PetscEnum
     19: #define DMAdaptationStrategy         PetscEnum
     20: #define DMDirection                  PetscEnum
     21: #define DMEnclosureType              PetscEnum
     22: #define DMPolytopeType               PetscEnum
     23: #define DMCopyLabelsMode             PetscEnum
     24: #define PetscDTSimplexQuadratureType PetscEnum
     25: #define DMReorderDefaultFlag         PetscEnum

     27: #define DM               type(tDM)
     28: #define DMAdaptor        type(tDMAdaptor)
     29: #define PetscQuadrature  type(tPetscQuadrature)
     30: #define PetscWeakForm    type(tPetscWeakForm)
     31: #define PetscDS          type(tPetscDS)
     32: #define PetscFE          type(tPetscFE)
     33: #define PetscSpace       type(tPetscSpace)
     34: #define PetscDualSpace   type(tPetscDualSpace)
     35: #define PetscFV          type(tPetscFV)
     36: #define PetscLimiter     type(tPetscLimiter)
     37: #define PetscPartitioner type(tPetscPartitioner)
     38: #define DMField          type(tDMField)

     40: #define DMDA        'da'
     41: #define DMCOMPOSITE 'composite'
     42: #define DMSLICED    'sliced'
     43: #define DMSHELL     'shell'
     44: #define DMPLEX      'plex'
     45: #define DMREDUNDANT 'redundant'
     46: #define DMPATCH     'patch'
     47: #define DMMOAB      'moab'
     48: #define DMNETWORK   'network'
     49: #define DMFOREST    'forest'
     50: #define DMP4EST     'p4est'
     51: #define DMP8EST     'p8est'
     52: #define DMSWARM     'swarm'

     54: #define DMPlexTransform type(tDMPlexTransform)

     56: #define DMPLEXREFINEREGULAR       'refine_regular'
     57: #define DMPLEXREFINEALFELD        'refine_alfeld'
     58: #define DMPLEXREFINEPOWELLSABIN   'refine_powell_sabin'
     59: #define DMPLEXREFINEBOUNDARYLAYER 'refine_boundary_layer'
     60: #define DMPLEXREFINESBR           'refine_sbr'
     61: #define DMPLEXREFINETOBOX         'refine_tobox'
     62: #define DMPLEXREFINETOSIMPLEX     'refine_tosimplex'
     63: #define DMPLEXREFINE1D            'refine_1d'
     64: #define DMPLEXEXTRUDE             'extrude'
     65: #define DMPLEXTRANSFORMFILTER     'transform_filter'

     67: #endif