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