A Hands-On Introduction to Discrete Differential Operators on Polygon Meshes

Laplacians on Polygon Meshes

Photo of Sven D.
                Wagner

Sven D. Wagner

TU Dortmund

Photo of Astrid
                Bunge

Astrid Bunge

AutoForm Engineering

Photo of Mario
                Botsch

Mario Botsch

TU Dortmund

🚀 by Decker

Problem Setting

Solve PDEs on general surface meshes

images/vw.pngSo far: Triangles images/poly_bunny.pngNow: Polygons!

Why?

Artist-Made Polygon Meshes

Adaptive Refinement

Adaptive Refinement

Cutting & Fracturing

Cutting Simulation

Triangulate the Polygons?

Virtual Simplicial Refinement

Prolongation Operator

images/poly11.svg \[ {\Huge \downarrow} \; \mat{P} \] images/poly31.svg

  • Insert virtual vertex as affine combination \[ \small \matrix{ \sum_i w_i \vec{x}_{i}\\ \vec{x}_{1}\\ \vec{x}_{2}\\ \vec{x}_{3}\\ \vec{x}_{4}\\ \vec{x}_{5}\\ \vec{x}_{6} } = \underbrace{ \matrix{ w_1 & w_2 & w_3 & w_4 & w_5 & w_6\\ 1 & & & & & \\ & 1 & & & & \\ & & 1 & & & \\ & & & 1 & & \\ & & & & 1 & \\ & & & & & 1 } }_{\mat{P}} \matrix{ \vec{x}_{1}\\ \vec{x}_{2}\\ \vec{x}_{3}\\ \vec{x}_{4}\\ \vec{x}_{5}\\ \vec{x}_{6} } \]

Bunge et al. 2020

Restriction Operator

images/poly11.svg \[ {\Huge \uparrow} \; \mat{R} = \mat{P}\T \] images/poly41.svg

  • Redistribute values back to original nodes \[ \mat{R} = \mat{P}\T \]

Bunge et al. 2020

Polygon Shape Functions

images/poly11.svg \[\downarrow\] images/poly31.svg \[\downarrow\] images/poly41.svg

  1. Insert center vertex through prolongation weights
  1. Compute standard linear shape functions \(\psi_j(\vec{x})\) on refined polygon
05_polygon_laplacian-deck-code-4973f68d.tex.svg
05_polygon_laplacian-deck-code-04353188.tex.svg
05_polygon_laplacian-deck-code-85226b30.tex.svg
  1. Coarse shape function for polygon \((\vec{x}_1, \dots, \vec{x}_n)\) with virtual vertex \(\vec{x}_0\) become \[ \varphi_i(\vec{x}) = \psi_i(\vec{x}) + w_i\psi_0(\vec{x}) \,,\quad i \in \{1, \dots, n\} \]

Polygon Shape Functions

  • Piecewise linear functions
  • Interpolate nodal data: \(\varphi_i\of{\vec{x}_j} = \delta_{ij}\)
  • Partition of unity: \(\sum_i \varphi_i\of{\vec{x}} = 1\)
  • Barycentric property: \(\sum_i \varphi_i\of{\vec{x}} \vec{x}_i = \vec{x}\)
  • \(C^0\) across elements, not \(C^1\) within elements

images/basis/L.0.jpg images/basis/L.1.jpg images/basis/L.2.jpg images/basis/L.3.jpg images/basis/L.4.jpg images/basis/L.5.jpg

Easiest Choice of Virtual Vertex

05_polygon_laplacian-deck-code-eab07178.tex.svg

Easiest Choice of Virtual Vertex

05_polygon_laplacian-deck-code-4a18b326.tex.svg

Laplace Matrix & Mass Matrix

images/poly41.svg
  • “Sandwiched” Laplace matrix for polygons \[\mat{L} = \mat{P}\T \, \mat{L}^\func{tri} \, \mat{P} \]
  • “Sandwiched” mass matrix for polygons \[\mat{M} = \mat{P}\T \, \mat{M}^\func{tri} \, \mat{P} \]

Virtual refinement is completely hidden in matrix assembly step!

Properties

Poisson System on 2D Voronoi Meshes

13.5053,	28.5194,	58.8386,	119.78,	241.153
LVR, 0.00768401,0.00193955,0.00057802,0.000152567,3.41754E-05

<!--
{
  "options": {
    "scales": {
      "x": {
        "title": {
          "text": "inverse mean edge length",
          "display": true
        },
        "type": "logarithmic"
      },
      "y": { 
        "title": {
          "text": "L2 error",
          "display": true
        },
        "type": "logarithmic"
      }
    }
  }
}
-->

images/VoronoiPlane.svg

References

Bunge, Astrid, Philipp Herholz, Misha Kazhdan, and Mario Botsch. 2020. “Polygon Laplacian Made Simple.” Computer Graphics Forum 39 (2).