Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Dualization

Dualization is the process of using a primal mesh to construct a dual mesh. Dualization can be performed on 2D/3D surface meshes composed of quadrilateral elements, and 3D volumetric meshes composed of hexahedral elements. Both quadrilateral and hexahedral elements will be discussed.

Quadtree

With plot_quadtree_convention.py, we create the following index scheme:

With fig_quadtree.tex, we create the following image of the inverted tree:

With plot_quadtree.py, we plot a domain

  • A square domain L0
  • Single point at (2.6, 0.6) to trigger refinement.
Level 012
345

Circle from Segmentation

We illustrate the segmentation start point as it applies to quadtree formation.

  • For a segmentation at a given resolution of pixels, we immerse the segmentation into a single-cell (L0) quadtree domain.
  • We pad the segmentation margins with void (segmentation ID 0) such that the pixel count in all directions ( and )
    • is the same, and
    • is divisible by 2 for cell subdivisions.
  • For each cell in the quadtree, we process the cells recursively and ask this question: Does the cell contain more than one material? If yes, then subdivide; if no, then do not subdivide.
3456
13141516

Circle from Boundary

We illustrate the boundary start point as it applies to quadtree formation.

  • We define a boundary as directed series of connected, discrete points that create a closed-loop, non-intersecting path.
  • We immerse the boundary into a single-cell (L0) quadtree domain.
  • For each cell in the quadtree, we process the cells recursively and ask this question: Does the cell contain at least one boundary point? If yes, then subdivide; if no, then do not subdivide.

Consider a boundary of a circle defined by discrete (x, y) points.

Level 012
345

Circle from Tesellation

We illustrate the tesellation as it applies to quadtree formation.

  • We immerse the tesellation into a single-cell (L0) quadtree domain.
  • We create a boundary of the tesellation with points that lie on the boundary of the tesellation.
  • We immerse the boundary into a single-cell (L0) quadtree domain.
  • For each cell in the quadtree, we process the cells recursively and ask this question: Does the cell contain at least one boundary point? If yes, then subdivide; if no, then do not subdivide.

Quarter Plate

With Python, we produce a Quadtree with zero to five levels of refinement. Refinement is triggered based on whether or not a cell contains one or more seed points, shown as points along the quarter circle centered at (4, 0).

Level 012
345

Octree

Sphere

Consider a boundary of a sphere defined by a discrete triangular tesselation.

References

Source

quadtree_plot.py