DMPlexExtrude#
Extrude a volumetric mesh from the input surface mesh
Synopsis#
Input Parameters#
dm - The surface mesh
layers - The number of extruded layers
thickness - The total thickness of the extruded layers, or
PETSC_DETERMINE
tensor - Flag to create tensor produt cells
symmetric - Flag to extrude symmetrically about the surface
periodic - Flag to extrude periodically
normal - Surface normal vector, or
NULL
thicknesses - Thickness of each layer, or
NULL
Output Parameter#
edm - The volumetric mesh
Options Database Keys#
-dm_plex_transform_extrude_thickness
- The total thickness of extruded layers-dm_plex_transform_extrude_use_tensor
- Use tensor cells when extruding-dm_plex_transform_extrude_symmetric
- Extrude layers symmetrically about the surface-dm_plex_transform_extrude_periodic
- Extrude layers periodically-dm_plex_transform_extrude_normal <n0,…,nd> - Specify the extrusion direction
-dm_plex_transform_extrude_thicknesses <t0,…,tl> - Specify thickness of each layer
Notes#
Extrusion is implemented as a DMPlexTransform
, so that new mesh points are produced from old mesh points. In the example below,
we begin with an edge (v0, v3). It is extruded for two layers. The original vertex v0 produces two edges, e1 and e2, and three vertices,
v0, v2, and v2. Similarly, vertex v3 produces e3, e4, v3, v4, and v5. The original edge produces itself, e5 and e6, as well as face1 and
face2. The new mesh points are given the same labels as the original points which produced them. Thus, if v0 had a label value 1, then so
would v1, v2, e1 and e2.
v2----- e6 -----v5
| |
e2 face2 e4
| |
v1----- e5 -----v4
| |
e1 face1 e3
| |
v0--- original ----v3
See Also#
DMPlex: Unstructured Grids, DM
, DMPLEX
, DMExtrude()
, DMPlexTransform
, DMPlexTransformExtrudeSetThickness()
, DMPlexTransformExtrudeSetTensor()
Level#
intermediate
Location#
src/dm/impls/plex/plexextrude.c
Index of all DMPlex routines
Table of Contents for all manual pages
Index of all manual pages