Class documentation of Concepts

Loading...
Searching...
No Matches
Introduction and Poster

We present a very terse introduction into the basic classes and the mathematical ideas. This is also available on a color poster which prints nicely in A0-A4.

Concept Oriented Design

The numerical methods which should be implemented are already formulated in an abstract way based on hierarchical structured mathematical concepts. Therefore, represent each concept by a module and combine the modules according to the numerical algorithm. This defines concept oriented design.

Mathematical Concepts

Fundamental Classes

Find $u \in H^1_{\Gamma_D}(\Omega)$ such that $\forall v \in H^1_{\Gamma_D}(\Omega)$:

\[\underbrace{\int_\Omega \nabla u \cdot \nabla v \, dx +
\int_\Omega u v \, dx}_{=: a(u,v) \text{ bilinear form}} =
\underbrace{\int_\Omega f v \, dx + \int_{\Gamma_N} g_N v \,
ds}_{=: l(v) \text{ linear form}}.\]

Find $u_N \in V_N := S^{\vec p, 1}_{\Gamma_D}(\Omega, {\cal T})$ such that $\forall v \in V_N$:

\[a(u,v) = l(v).\]

Using a basis $\{\Phi_i\}_{i=1}^N$ of $V_N$ makes it possible to obtain a stiffness matrix $[\boldsymbol A]_{ij} = a(\Phi_i, \Phi_j)$ and a load vector $[\vec l]_i = l(\Phi_i)$. The resulting linear system $\boldsymbol A \vec u_N = \vec l$ can be solved with a linear solver (e.g. conjugate gradients).

Bilinear form $a(.\,,.)$ and linear form $l(.)$: UML class diagram for bilinear form (large)

Mesh ${\cal T}$ and space $V_N$: UML class diagram for mesh and space (large)

Assembling using T matrices: $\left . \Phi_i \right |_K = \displaystyle \sum_{j=1}^{m_K} [\boldsymbol
T_K]_{ji} \phi_j^K$

\[ \vec l = l(\vec \Phi) = \sum_{\tilde K} \boldsymbol T_{\tilde
K}^\top l(\vec \phi^{\tilde K}) = \sum_{\tilde K} \boldsymbol T_{\tilde
K}^\top \vec l_{\tilde K} \]

\[ \boldsymbol A = a(\vec \Phi, \vec \Phi) = \sum_{K, \tilde K} \boldsymbol
T_{\tilde K}^\top a(\vec \phi^K, \vec \phi^{\tilde K}) \boldsymbol T_K =
\sum_{K, \tilde K} \boldsymbol T_{\tilde K}^\top \boldsymbol A_{\tilde K K}
\boldsymbol T_K \]

Assembling the global matrix and the load vector and solving the linear system: UML class diagram for (bi)linear forms, matrices (large)

The T matrices are built columnwise: each column in a T matrix corresponds to a global degree of freedom: UML class diagram for T matrices (large)

The constraints of hanging nodes are eliminated using S matrices: $\left . \phi_j^K \right |_{K'} = \displaystyle
\sum_{l=1}^{m_{k'}} [\boldsymbol S_{K' K}]_{lj} \phi_l^{K'}$ for a $K' \subset K$ generated by a subdivision. $\boldsymbol T_{K'} =
\boldsymbol S_{K' K} \tilde{\boldsymbol T}_K + \tilde{\boldsymbol T}_{K'}$ builds the T matrix for $K'$. The S matrices for quads and hexahedra can be built with tensor products from 1D S matrices. This makes anisotropic refinements possible. S matrices in 1D are computed by solving a linear system. In higher dimensions, tensor product and composition is used: UML class diagram for S matrices (large)

Result: Exponential Convergence

Solving the Maxwell Eigen value problem in a perfect conductor boundary condition domain $\Omega = (-1,1)^3
\setminus (-1,0)^3$ (so called Fichera corner) with $\varepsilon =
\mu = 1$ using weighted regularization [1]. Exponential convergence of Eigenvalues in Fichera corner

See also
[1] M. Costabel, M. Dauge. Weighted regularization of Maxwell equations in polyhedral domains. Numer. Math. 93(2) (2002) 239-277.
Author
Philipp Frauenfelder, 2004