Astrid Bunge
TU Dortmund
Marc Alexa
TU Berlin
Mario Botsch
TU Dortmund
Solve PDEs on surface meshes and volume meshes
\[ \small \begin{eqnarray*} \mat{L}_{ij} &=& -\int \grad \varphi_i \cdot \grad \varphi_j &=& \begin{cases} \frac{\cot\alpha_{ij}+\cot\beta_{ij}}{2} & \text{if } j\in\set{N}\of{i} \,, \\[0.5em] \displaystyle -\sum_{k\in\set{N}\of{i}} \mat{L}_{ik} & \text{if } j=i \,, \\[0.3em] 0 & \text{otherwise}. \end{cases} \\[1em] \mat{M}_{ij} &=& \int \varphi_i \, \varphi_j &=& \begin{cases} \frac{\abs{t_{ijk}} + \abs{t_{jih}}}{12} & \text{if } j\in\set{N}\of{i}\,, \\[0.5em] \displaystyle \sum_{k\in\set{N}\of{i}} \mat{M}_{ik} & \text{if }j=i \,,\\[0.3em] 0 & \text{otherwise}. \end{cases} \end{eqnarray*} \]
Which property does the cotangent Laplacian not satisfy?
7.28224, 14.5124, 28.9698, 57.8831, 115.709
Cotan Laplacian, 0.0184139, 0.00457148, 0.00115444, 0.000291485, 7.33316E-05
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
}
},
"y": {
"title": {
"text": "L2 error",
"display": true
}
}
}
}
}
-->
7.28224, 14.5124, 28.9698, 57.8831, 115.709
Cotan Laplacian, 0.0184139, 0.00457148, 0.00115444, 0.000291485, 7.33316E-05
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
For which property is the polynomial term \(\pi_1\of{\vec{x}}\) crucial? \[\varphi_i(\vec{x}) = \sum_k w_k \, \psi_k\of{\vec{x}} + \pi_1\of{\vec{x}}\]
\[ \small \begin{eqnarray*} \mat{L}_{ij} &=& -\int \grad \varphi_i \cdot \grad \varphi_j &=& \color{red}{\xcancel{ \begin{cases} \frac{\cot\alpha_{ij}+\cot\beta_{ij}}{2} & \text{if } j\in\set{N}\of{i} \,, \\[0.5em] \displaystyle -\sum_{k\in\set{N}\of{i}} \mat{L}_{ik} & \text{if } j=i \,, \\[0.3em] 0 & \text{otherwise}. \end{cases} }} \\[1em] \mat{M}_{ij} &=& \int \varphi_i \, \varphi_j &=& \color{red}{\xcancel{ \begin{cases} \frac{\abs{t_{ijk}} + \abs{t_{jih}}}{12} & \text{if } j\in\set{N}\of{i}\,, \\[0.5em] \displaystyle \sum_{k\in\set{N}\of{i}} \mat{M}_{ik} & \text{if }j=i \,,\\[0.3em] 0 & \text{otherwise}. \end{cases} }} \end{eqnarray*} \]
On triangles, harmonic coordinates reproduce barycentric coordinates
13.5053, 28.5194, 58.8386, 119.78, 241.153
Harmonic, 0.00951959, 0.00236579, 0.000699382, 0.000188646, 5.46139E-05
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
Expected convergence rate 😄 Expensive to compute, evaluate, and integrate 😢
\(\laplace \vec{u} \;\approx\; -\mat{M}_0^{-1} \underbrace{\mat{d}\T \mat{M}_1 \mat{d}}_{-\mat{L}} \, \vec{u}\)
While \(\mat{\tilde{M}}_f = \frac{1}{|f|}\mat{B}_f \mat{B}_f ^{\mathsf{T}}\) is symmetric PSD by construction it may have a kernel.
Which property is lost for \(-\mat{L}\) when \(\mat{M}_f\) is only semi-definite?
13.5053, 28.5194, 58.8386, 119.78, 241.153
Alexa11; λ=2, 0.00838748, 0.00209687, 0.000476346, 0.000127937, 3.30444E-05
Alexa11; λ=1, 0.00456036, 0.0010483, 0.000382806, 8.53325E-05, 1.84683E-05
Alexa11; λ=0.5, 0.00800984, 0.00193734, 0.000621653, 0.000143936, 3.19937E-05
Alexa11; λ=0.1, 0.0144414, 0.00337097, 0.000947331, 0.000221091, 5.14271E-05
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
Which part of the integrals causes problems for non-planar polygons? \[\iint_f \grad u(\vec{x}) \d{A} = \oint_{\partial f} u(\vec{x}) \vec{t}(\vec{x}) \times \vec{n}(\vec{x}) \d{\vec{x}} \]
\[\mat{\tilde{M}}_f = \abs{\bar{f}} \, \mat{V}_f^{\sharp \mathsf{T}} \, \mat{V}_f^{\sharp}\]
13.5053, 28.5194, 58.8386, 119.78, 241.153
deGoes20; λ=2, 0.00965471, 0.00245388, 0.000542276, 0.000145297, 3.74297E-05
deGoes20; λ=1, 0.00435302, 0.000996788, 0.000354402, 7.95537E-05, 1.73643E-05
deGoes20; λ=0.5, 0.00747841, 0.00182759, 0.00059557, 0.000138136, 3.05869E-05
deGoes20; λ=0.1, 0.0139834, 0.00327528, 0.00092799, 0.000217473, 5.03785E-05
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
\[ {\Huge \downarrow} \; \mat{P} \]
\[ {\Huge \uparrow} \; \mat{R} = \mat{P}\T \]
\[\downarrow\] \[\downarrow\]
Solve linear system for affine prolongation weights 👍
For which (planar) elements would the virtual vertex lead to flipped virtual triangles?
Virtual refinement is completely hidden in matrix assembly step!
13.5053, 28.5194, 58.8386, 119.78, 241.153
Bunge20, 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"
}
}
}
}
-->
Main idea: Consider the integral of differential in a small region
How do we get diamond cells on an arbitrary polygon mesh?
\[ \grad u|_D \;=\; \frac{1}{2 \abs{D}} \sum_{(i,j) \in \partial D} \vec{e}_{ij}^\perp \frac{u_i+u_j}{2} \]
\[\downarrow\] \[\downarrow\]
13.5053, 28.5194, 58.8386, 119.78, 241.153
Diamond, 0.00610683,0.00155889,0.000413685,0.000105977,2.46064E-05
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
Locking due to high Poisson ratio 😢
Given a quad, how many virtual degrees of freedom do we need for the quadratic Lagrange elements?
Given a quad, how many virtual degrees of freedom do we need for the quadratic Lagrange elements?
13.5053, 28.5194, 58.8386, 119.78, 241.153
Quadratic Virtual Refinement, 0.000249856,1.9939E-05,2.01787E-06,2.2815E-07,2.72628E-08
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
13.5053, 28.5194, 58.8386, 119.78, 241.153
Harmonic, 0.00951959, 0.00236579, 0.000699382, 0.000188646, 5.46139E-05
Alexa11; λ=2, 0.00838748, 0.00209687, 0.000476346, 0.000127937, 3.30444E-05
Alexa11; λ=1, 0.00456036, 0.0010483, 0.000382806, 8.53325E-05, 1.84683E-05
Alexa11; λ=0.5, 0.00800984, 0.00193734, 0.000621653, 0.000143936, 3.19937E-05
Alexa11; λ=0.1, 0.0144414, 0.00337097, 0.000947331, 0.000221091, 5.14271E-05
deGoes20; λ=2, 0.00965471, 0.00245388, 0.000542276, 0.000145297, 3.74297E-05
deGoes20; λ=1, 0.00435302, 0.000996788, 0.000354402, 7.95537E-05, 1.73643E-05
deGoes20; λ=0.5,0.00747841, 0.00182759, 0.00059557, 0.000138136, 3.05869E-05
deGoes20; λ=0.1,0.0139834, 0.00327528, 0.00092799, 0.000217473, 5.03785E-05
Linear Virtual Refinement, 0.00768401, 0.00193955, 0.00057802, 0.000152567, 3.41754E-05
Diamond, 0.00610683,0.00155889,0.000413685,0.000105977,2.46064E-05
Quadratic Virtual Refinement, 0.000249856,1.9939E-05,2.01787E-06,2.2815E-07,2.72628E-08
<!--
{
"options": {
"scales": {
"x": {
"title": {
"text": "inverse mean edge length",
"display": true
},
"type": "logarithmic"
},
"y": {
"title": {
"text": "L2 error",
"display": true
},
"type": "logarithmic"
}
}
}
}
-->
\[ \small \min_{\{w_{ij}\}} \sum_{i \in \mathcal C} \sum_{\sigma \in \mathcal T^*} \int_\sigma \norm{\nabla_\sigma^+ \varphi_i - \nabla_\sigma^- \varphi_i}^2 \mathrm{d}\sigma \]
💾 Source code of all methods available on github 💾