petsc-3.15.0 2021-03-30
Report Typos and Errors

# DMPlexExtrude

Creates a (d+1)-D mesh by extruding a d-D mesh in the normal direction using prismatic cells.

### Synopsis

    #include "petscdmplex.h"
    #include "petscdmplex.h"
    PetscErrorCode DMPlexExtrude(DM idm, PetscInt layers, PetscReal height, PetscBool orderHeight, const PetscReal extNormal[], PetscBool interpolate, DM* dm)

Collective on idm

### Input Parameters

| idm | - The mesh to be extruded
| layers | - The number of layers, or PETSC_DETERMINE to use the default
| height | - The total height of the extrusion, or PETSC_DETERMINE to use the default
| orderHeight | - If PETSC_TRUE, orders the extruded cells in the height first. Otherwise, orders the cell on the layers first
| extNormal | - The normal direction in which the mesh should be extruded, or NULL to extrude using the surface normal
| interpolate | - Flag to create intermediate mesh pieces (edges, faces)

### Output Parameter

| dm | - The DM object

### Notes

The mesh created has prismatic cells, and the vertex ordering in the cone of the cell is that of the tensor prismatic cells. Not currently supported in Fortran.

### Options Database Keys

| -dm_plex_extrude_layers <k> | - Sets the number of layers k
| -dm_plex_extrude_height <h> | - Sets the total height of the extrusion
| -dm_plex_extrude_heights <h0,h1,...> | - Sets the height of each layer
| -dm_plex_extrude_order_height | - If true, order cells by height first
| -dm_plex_extrude_normal <n0,...,nd> | - Sets the normal vector along which to extrude

### See Also

DMPlexCreateWedgeCylinderMesh(), DMPlexCreateWedgeBoxMesh(), DMSetType(), DMCreate()

### Level

advanced

### Location

src/dm/impls/plex/plexcreate.c
Index of all DMPLEX routines
Table of Contents for all manual pages
Index of all manual pages