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"

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

 25: #define DM               type(tDM)

 27: #define DMAdaptor        PetscFortranAddr
 28: #define PetscQuadrature  PetscFortranAddr
 29: #define PetscWeakForm    PetscFortranAddr
 30: #define PetscDS          PetscFortranAddr
 31: #define PetscFE          PetscFortranAddr
 32: #define PetscSpace       PetscFortranAddr
 33: #define PetscDualSpace   PetscFortranAddr
 34: #define PetscFV          PetscFortranAddr
 35: #define PetscLimiter     PetscFortranAddr
 36: #define PetscPartitioner PetscFortranAddr
 37: #define DMField          PetscFortranAddr

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

 53: #define DMPlexTransform type(tDMPlexTransform)

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

 66: #endif