This examples solves the Laplace problem with dense matrices. More...
Functions | |
int | main () |
This examples solves the Laplace problem with dense matrices.
Let \(\Omega\in\mathbb{R}^3\) be a bounded domain with Lipschitz boundary \(\Gamma = \partial\Omega\). We solve the Laplace problem
\begin{eqnarray*} -\Delta u &=& 0,\quad \textrm{in}\,\Omega, \\ u &=& g,\quad\textrm{on}\,\Gamma. \end{eqnarray*}
The solution \(u\) can be computed by a single layer potential ansatz
\begin{eqnarray*} u(\mathbf{x}) &=& \tilde{\mathcal{V}}(\rho) = \int_\Gamma \frac{\rho(\mathbf{y})}{4\pi\|\mathbf{x} - \mathbf{y}\|}\,\mathrm{d}\sigma(\mathbf{y}),\quad\mathbf{x}\in\Omega. \end{eqnarray*}
Applying the Dirichlet trace operator yields the integral equation
\begin{eqnarray*} \mathcal{V}(\rho) = \gamma_0\tilde{\mathcal{V}}(\rho) &=& g \end{eqnarray*}
on \(\Gamma\).
Let \(\langle\cdot,\cdot\rangle\) denote the \(L^2\)-scalar product. Discretizing \(\rho^h = \in\mathbb{S}^0_{p,m}(\Gamma)\) with discontinuous tensorized B-splines with polynomial degree \(p\) and refine \(m\) times uniformly yields the variational formulation: Find \(\rho^h = \in\mathbb{S}^0_{p,m}(\Gamma)\) such that
\begin{eqnarray*} \langle\mathcal{V}(\rho^h), \varphi\rangle &=& \langle g, \varphi\rangle, \quad\forall \varphi\in\mathbb{S}^0_{p,m}(\Gamma). \end{eqnarray*}
This system is solved by the Eigen framework. The computed density \(\rho^h\) is then inserted in the single layer potential ansatz to compute the numerical solution of the Laplace problem.
See [3] for details.
int main | ( | ) |
The procedure is as follows:
Load geometry from file "sphere.dat"
Define evaluation points \(\mathbf{x}_i\) for potential field
Define analytical solution \(g\) using a lambda function
Build ansatz space \(\mathbb{S}^0_{p,m}(\Gamma)\) with discontinuous tensorized B-splines.
Set up linear form \(\langle g, \varphi\rangle\)
Assemble system matrix \(\langle\mathcal{V}(\rho^h), \varphi\rangle\)
Solve system with Eigen
Evaluate single layer potential \(u(\mathbf{x}_i) = \tilde{\mathcal{V}}(\rho^h)\)
Compute error to analytical solution
Definition at line 75 of file LaplaceSingleLayerFull.cpp.