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

DMPlexCellRefinerRefine

Return a description of the refinement for a given cell type

Synopsis

#include "petscdmplex.h"   
PetscErrorCode DMPlexCellRefinerRefine(DMPlexCellRefiner cr, DMPolytopeType source, PetscInt *Nt, DMPolytopeType *target[], PetscInt *size[], PetscInt *cone[], PetscInt *ornt[])

Input Parameter

source - The cell type for a source point

Output Parameter

Nt - The number of cell types generated by refinement
target - The cell types generated
size - The number of subcells of each type, ordered by dimension
cone - A list of the faces for each subcell of the same type as source
ornt - A list of the face orientations for each subcell of the same type as source

Note: The cone array gives the cone of each subcell listed by the first three outputs. For each cone point, we need the cell type, point identifier, and orientation within the subcell. The orientation is with respect to the canonical division (described in these outputs) of the cell in the original mesh. The point identifier is given by

  the number of cones to be taken, or 0 for the current cell
  the cell cone point number at each level from which it is subdivided
  the replica number r of the subdivision.
The orientation is with respect to the canonical cone orientation. For example, the prescription for edge division is
  Nt     = 2
  target = {DM_POLYTOPE_POINT, DM_POLYTOPE_SEGMENT}
  size   = {1, 2}
  cone   = {DM_POLYTOPE_POINT, 1, 0, 0, DM_POLYTOPE_POINT, 0, 0,  DM_POLYTOPE_POINT, 0, 0, DM_POLYTOPE_POINT, 1, 1, 0}
  ornt   = {                         0,                       0,                        0,                          0}

See Also

DMPlexCellRefinerCreate(), DMPlexRefineUniform()

Level

developer

Location

src/dm/impls/plex/plexrefine.c

Implementations

DMPlexCellRefinerRefine_None in src/dm/impls/plex/plexrefine.c
DMPlexCellRefinerRefine_Regular in src/dm/impls/plex/plexrefine.c
DMPlexCellRefinerRefine_ToBox in src/dm/impls/plex/plexrefine.c
DMPlexCellRefinerRefine_ToSimplex in src/dm/impls/plex/plexrefine.c
DMPlexCellRefinerRefine_Alfeld2D in src/dm/impls/plex/plexrefine.c
DMPlexCellRefinerRefine_Alfeld3D in src/dm/impls/plex/plexrefine.c
DMPlexCellRefinerRefine_BL in src/dm/impls/plex/plexrefine.c

Index of all DMPLEX routines
Table of Contents for all manual pages
Index of all manual pages