Unstructured Grids and Cell Complexes (DMPlex)#
The DMPLEX class encapsulates an unstructured mesh, with interfaces for both topology and geometry. It is capable of parallel refinement and coarsening (using Pragmatic or ParMmg) and parallel redistribution for load balancing. It is designed to interface with the PetscFE and PetscFV trial discretization objects.
- Mesh Algorithms for PDE with Sieve I: Mesh Distribution, Matthew G. Knepley and Dmitry A. Karpeev, Scientific Programming, 17(3), 215-230, 2009.
- Efficient mesh management in Firedrake using PETSc-DMPlex, Michael Lange, Lawrence Mitchell, Matthew G. Knepley and Gerard J. Gorman, SISC, 38(5), S143-S155, 2016.
- Unstructured Overlapping Mesh Distribution in Parallel, Matthew G. Knepley, Michael Lange, Gerard J. Gorman, 2015.
Manual Pages by Level#
Beginner - Basic usage#
Intermediate - Setting options for algorithms and data structures#
Advanced - Setting more advanced options and customization#
Developer - Interfaces intended primarily for library developers, not for typical applications programmers#
No deprecated routines#
Single list of manual pages#
- DMComputeL2DiffLocal
- DMCreateNeumannOverlap
- DMGetEnclosurePoint
- DMGetEnclosureRelation
- DMGetFirstLabeledPoint
- DMPLEX
- DMPlexBuildCoordinatesFromCellList
- DMPlexBuildCoordinatesFromCellListParallel
- DMPlexBuildFromCellList
- DMPlexBuildFromCellListParallel
- DMPlexCSRAlgorithm
- DMPlexCellRefinerMapLocalizedCoordinates
- DMPlexCheck
- DMPlexCheckCellShape
- DMPlexCheckFaces
- DMPlexCheckGeometry
- DMPlexCheckInterfaceCones
- DMPlexCheckPointSF
- DMPlexCheckSkeleton
- DMPlexCheckSymmetry
- DMPlexComputeBdIntegral
- DMPlexComputeCellGeometryAffineFEM
- DMPlexComputeCellGeometryFEM
- DMPlexComputeCellGeometryFVM
- DMPlexComputeCellTypes
- DMPlexComputeCellwiseIntegralFEM
- DMPlexComputeClementInterpolant
- DMPlexComputeGeometryFVM
- DMPlexComputeGradientClementInterpolant
- DMPlexComputeGradientFVM
- DMPlexComputeInjectorFEM
- DMPlexComputeIntegralFEM
- DMPlexComputeInterpolatorGeneral
- DMPlexComputeInterpolatorNested
- DMPlexComputeL2DiffVec
- DMPlexComputeMassMatrixGeneral
- DMPlexComputeOrthogonalQuality
- DMPlexComputeProjection2Dto1D
- DMPlexComputeProjection3Dto1D
- DMPlexComputeProjection3Dto2D
- DMPlexConstructCohesiveCells
- DMPlexConstructGhostCells
- DMPlexCoordinatesLoad
- DMPlexCoordinatesToReference
- DMPlexCoordinatesView
- DMPlexCopyCoordinates
- DMPlexCreate
- DMPlexCreateBallMesh
- DMPlexCreateBasisRotation
- DMPlexCreateBoxMesh
- DMPlexCreateBoxSurfaceMesh
- DMPlexCreateCGNS
- DMPlexCreateCellVertexFromFile
- DMPlexCreateClosureIndex
- DMPlexCreateCoarsePointIS
- DMPlexCreateCohesiveSubmesh
- DMPlexCreateCoordinateSpace
- DMPlexCreateDefaultReferenceTree
- DMPlexCreateDoublet
- DMPlexCreateEGADSFromFile
- DMPlexCreateEGADSLiteFromFile
- DMPlexCreateEphemeral
- DMPlexCreateExodus
- DMPlexCreateExodusFromFile
- DMPlexCreateFluent
- DMPlexCreateFluentFromFile
- DMPlexCreateFromCellListParallelPetsc
- DMPlexCreateFromCellListPetsc
- DMPlexCreateFromDAG
- DMPlexCreateFromFile
- DMPlexCreateGlobalToNaturalSF
- DMPlexCreateGmsh
- DMPlexCreateGmshFromFile
- DMPlexCreateHexCylinderMesh
- DMPlexCreateHybridMesh
- DMPlexCreateHypercubicMesh
- DMPlexCreateLabelField
- DMPlexCreateMedFromFile
- DMPlexCreateNaturalVector
- DMPlexCreateNeighborCSR
- DMPlexCreateOverlapLabel
- DMPlexCreateOverlapLabelFromLabels
- DMPlexCreateOverlapMigrationSF
- DMPlexCreatePLYFromFile
- DMPlexCreatePartitionerGraph
- DMPlexCreatePointNumbering
- DMPlexCreatePointSF
- DMPlexCreateProcessSF
- DMPlexCreateRankField
- DMPlexCreateReferenceCell
- DMPlexCreateRigidBodies
- DMPlexCreateRigidBody
- DMPlexCreateSection
- DMPlexCreateSphereMesh
- DMPlexCreateSubmesh
- DMPlexCreateTPSMesh
- DMPlexCreateTwoSidedProcessSF
- DMPlexCreateWedgeBoxMesh
- DMPlexCreateWedgeCylinderMesh
- DMPlexDistribute
- DMPlexDistributeData
- DMPlexDistributeField
- DMPlexDistributeFieldIS
- DMPlexDistributeGetDefault
- DMPlexDistributeOverlap
- DMPlexDistributeOwnership
- DMPlexDistributeSetDefault
- DMPlexDistributionGetName
- DMPlexDistributionSetName
- DMPlexEqual
- DMPlexExtrude
- DMPlexFilter
- DMPlexFindVertices
- DMPlexGenerate
- DMPlexGetActivePoint
- DMPlexGetAdjacency
- DMPlexGetAdjacencyUseAnchors
- DMPlexGetAdjacencyUser
- DMPlexGetAnchors
- DMPlexGetCeedRestriction
- DMPlexGetCellCoordinates
- DMPlexGetCellFields
- DMPlexGetCellNumbering
- DMPlexGetCellType
- DMPlexGetCellTypeLabel
- DMPlexGetChart
- DMPlexGetClosureIndices
- DMPlexGetCone
- DMPlexGetConeOrientation
- DMPlexGetConeOrientations
- DMPlexGetConeRecursive
- DMPlexGetConeRecursiveVertices
- DMPlexGetConeSection
- DMPlexGetConeSize
- DMPlexGetConeTuple
- DMPlexGetCones
- DMPlexGetDataFVM
- DMPlexGetDepth
- DMPlexGetDepthLabel
- DMPlexGetDepthStratum
- DMPlexGetFaceFields
- DMPlexGetFaceGeometry
- DMPlexGetFullJoin
- DMPlexGetFullMeet
- DMPlexGetGatherDM
- DMPlexGetGeometryFVM
- DMPlexGetGhostCellStratum
- DMPlexGetGlobalToNaturalSF
- DMPlexGetGradientDM
- DMPlexGetHeightStratum
- DMPlexGetIsoperiodicFaceSF
- DMPlexGetJoin
- DMPlexGetLocalOffsets
- DMPlexGetLocalOffsetsSupport
- DMPlexGetMaxProjectionHeight
- DMPlexGetMaxSizes
- DMPlexGetMeet
- DMPlexGetMigrationSF
- DMPlexGetMinRadius
- DMPlexGetNumFaceVertices
- DMPlexGetOrdering
- DMPlexGetOrdering1D
- DMPlexGetOrientedCone
- DMPlexGetOrientedFace
- DMPlexGetOverlap
- DMPlexGetPartitionBalance
- DMPlexGetPartitioner
- DMPlexGetPointDepth
- DMPlexGetPointGlobal
- DMPlexGetPointGlobalField
- DMPlexGetPointHeight
- DMPlexGetPointLocal
- DMPlexGetPointLocalField
- DMPlexGetRedundantDM
- DMPlexGetReferenceTree
- DMPlexGetRefinementFunction
- DMPlexGetRefinementLimit
- DMPlexGetRefinementUniform
- DMPlexGetRegularRefinement
- DMPlexGetScale
- DMPlexGetSimplexOrBoxCells
- DMPlexGetSubdomainSection
- DMPlexGetSubpointIS
- DMPlexGetSubpointMap
- DMPlexGetSupport
- DMPlexGetSupportSection
- DMPlexGetSupportSize
- DMPlexGetTransformType
- DMPlexGetTransitiveClosure
- DMPlexGetTree
- DMPlexGetTreeChildren
- DMPlexGetTreeParent
- DMPlexGetVTKCellHeight
- DMPlexGetVertexNumbering
- DMPlexGlobalToLocalBasis
- DMPlexGlobalToNaturalBegin
- DMPlexGlobalToNaturalEnd
- DMPlexGlobalVectorLoad
- DMPlexGlobalVectorView
- DMPlexInflateToGeomModel
- DMPlexInsertBoundaryValues
- DMPlexInsertBoundaryValuesEssential
- DMPlexInsertBoundaryValuesEssentialBdField
- DMPlexInsertBoundaryValuesEssentialField
- DMPlexInsertBoundaryValuesRiemann
- DMPlexInsertCone
- DMPlexInsertConeOrientation
- DMPlexInsertSupport
- DMPlexInsertTimeDerivativeBoundaryValues
- DMPlexInterpolate
- DMPlexInterpolatePointSF
- DMPlexInterpolatedFlag
- DMPlexInvertCell
- DMPlexIsDistributed
- DMPlexIsInterpolated
- DMPlexIsInterpolatedCollective
- DMPlexIsSimplex
- DMPlexLabelAddCells
- DMPlexLabelAddFaceCells
- DMPlexLabelClearCells
- DMPlexLabelCohesiveComplete
- DMPlexLabelComplete
- DMPlexLabelsLoad
- DMPlexLabelsView
- DMPlexLocalToGlobalBasis
- DMPlexLocalVectorLoad
- DMPlexLocalVectorView
- DMPlexMarkBoundaryFaces
- DMPlexMatSetClosure
- DMPlexMetricAverage
- DMPlexMetricAverage2
- DMPlexMetricAverage3
- DMPlexMetricCreate
- DMPlexMetricCreateIsotropic
- DMPlexMetricCreateUniform
- DMPlexMetricDeterminantCreate
- DMPlexMetricEnforceSPD
- DMPlexMetricGetGradationFactor
- DMPlexMetricGetHausdorffNumber
- DMPlexMetricGetMaximumAnisotropy
- DMPlexMetricGetMaximumMagnitude
- DMPlexMetricGetMinimumMagnitude
- DMPlexMetricGetNormalizationOrder
- DMPlexMetricGetNumIterations
- DMPlexMetricGetTargetComplexity
- DMPlexMetricGetVerbosity
- DMPlexMetricIntersection
- DMPlexMetricIntersection2
- DMPlexMetricIntersection3
- DMPlexMetricIsIsotropic
- DMPlexMetricIsUniform
- DMPlexMetricNoInsertion
- DMPlexMetricNoMovement
- DMPlexMetricNoSurf
- DMPlexMetricNoSwapping
- DMPlexMetricNormalize
- DMPlexMetricRestrictAnisotropyFirst
- DMPlexMetricSetGradationFactor
- DMPlexMetricSetHausdorffNumber
- DMPlexMetricSetIsotropic
- DMPlexMetricSetMaximumAnisotropy
- DMPlexMetricSetMaximumMagnitude
- DMPlexMetricSetMinimumMagnitude
- DMPlexMetricSetNoInsertion
- DMPlexMetricSetNoMovement
- DMPlexMetricSetNoSurf
- DMPlexMetricSetNoSwapping
- DMPlexMetricSetNormalizationOrder
- DMPlexMetricSetNumIterations
- DMPlexMetricSetRestrictAnisotropyFirst
- DMPlexMetricSetTargetComplexity
- DMPlexMetricSetUniform
- DMPlexMetricSetVerbosity
- DMPlexMigrate
- DMPlexMonitorThroughput
- DMPlexNaturalToGlobalBegin
- DMPlexNaturalToGlobalEnd
- DMPlexOrient
- DMPlexOrientPoint
- DMPlexPartitionLabelAdjacency
- DMPlexPartitionLabelClosure
- DMPlexPartitionLabelCreateSF
- DMPlexPartitionLabelInvert
- DMPlexPartitionLabelPropagate
- DMPlexPermute
- DMPlexPointGlobalFieldRead
- DMPlexPointGlobalFieldRef
- DMPlexPointGlobalRead
- DMPlexPointGlobalRef
- DMPlexPointLocalFieldRead
- DMPlexPointLocalFieldRef
- DMPlexPointLocalRead
- DMPlexPointLocalRef
- DMPlexPreallocateOperator
- DMPlexRebalanceSharedPoints
- DMPlexReconstructGradientsFVM
- DMPlexReferenceToCoordinates
- DMPlexReferenceTreeGetChildSymmetry
- DMPlexRefineRegularGetAffineFaceTransforms
- DMPlexRefineRegularGetAffineTransforms
- DMPlexRemapGeometry
- DMPlexReorderCell
- DMPlexReorderDefaultFlag
- DMPlexReorderGetDefault
- DMPlexReorderSetDefault
- DMPlexRestoreCellCoordinates
- DMPlexRestoreCellFields
- DMPlexRestoreClosureIndices
- DMPlexRestoreConeRecursive
- DMPlexRestoreFaceFields
- DMPlexRestoreFaceGeometry
- DMPlexRestoreJoin
- DMPlexRestoreMeet
- DMPlexRestoreOrientedCone
- DMPlexRestoreTransitiveClosure
- DMPlexRewriteSF
- DMPlexSectionLoad
- DMPlexSectionView
- DMPlexSetActivePoint
- DMPlexSetAdjacencyUseAnchors
- DMPlexSetAdjacencyUser
- DMPlexSetAnchors
- DMPlexSetCellType
- DMPlexSetChart
- DMPlexSetClosurePermutationTensor
- DMPlexSetCone
- DMPlexSetConeOrientation
- DMPlexSetConeSize
- DMPlexSetGlobalToNaturalSF
- DMPlexSetIsoperiodicFaceSF
- DMPlexSetIsoperiodicFaceTransform
- DMPlexSetMaxProjectionHeight
- DMPlexSetMigrationSF
- DMPlexSetMinRadius
- DMPlexSetOptionsPrefix
- DMPlexSetOverlap
- DMPlexSetPartitionBalance
- DMPlexSetPartitioner
- DMPlexSetReferenceTree
- DMPlexSetRefinementFunction
- DMPlexSetRefinementLimit
- DMPlexSetRefinementUniform
- DMPlexSetRegularRefinement
- DMPlexSetScale
- DMPlexSetSubpointMap
- DMPlexSetSupport
- DMPlexSetSupportSize
- DMPlexSetTransformType
- DMPlexSetTree
- DMPlexSetVTKCellHeight
- DMPlexShape
- DMPlexShearGeometry
- DMPlexSnapToGeomModel
- DMPlexStratify
- DMPlexStratifyMigrationSF
- DMPlexSymmetrize
- DMPlexTPSType
- DMPlexTetgenSetOptions
- DMPlexTopologyLoad
- DMPlexTopologyView
- DMPlexTransferVecTree
- DMPlexTransform
- DMPlexTransformCellTransform
- DMPlexTransformCreate
- DMPlexTransformDestroy
- DMPlexTransformExtrudeGetLayers
- DMPlexTransformExtrudeGetNormal
- DMPlexTransformExtrudeGetSymmetric
- DMPlexTransformExtrudeGetTensor
- DMPlexTransformExtrudeGetThickness
- DMPlexTransformExtrudeSetLayers
- DMPlexTransformExtrudeSetNormal
- DMPlexTransformExtrudeSetNormalFunction
- DMPlexTransformExtrudeSetSymmetric
- DMPlexTransformExtrudeSetTensor
- DMPlexTransformExtrudeSetThickness
- DMPlexTransformExtrudeSetThicknesses
- DMPlexTransformGetCellVertices
- DMPlexTransformGetSourcePoint
- DMPlexTransformGetSubcellOrientation
- DMPlexTransformGetSubcellVertices
- DMPlexTransformGetTargetPoint
- DMPlexTransformGetType
- DMPlexTransformMapCoordinates
- DMPlexTransformRegister
- DMPlexTransformRegisterAll
- DMPlexTransformRegisterDestroy
- DMPlexTransformSetDimensions
- DMPlexTransformSetFromOptions
- DMPlexTransformSetType
- DMPlexTransformView
- DMPlexTriangleSetOptions
- DMPlexUninterpolate
- DMPlexVTKWriteAll
- DMPlexVecGetClosure
- DMPlexVecRestoreClosure
- DMPlexVecSetClosure
- DMPlexVecView1D
- PETSCVIEWEREXODUSII
- PETSC_VIEWER_EXODUSII_
- PetscPartitionerDMPlexPartition
- PetscViewerExodusIIGetId
- PetscViewerExodusIIGetOrder
- PetscViewerExodusIIOpen
- PetscViewerExodusIISetOrder