0
$\begingroup$

If we use CG elements (continuous Galerkin), the boundary integration in FEM can be easily converted to sum over quadrature points using node basis functions of the edges. However, in DG elements (discontinuous Galerkin), there is no shared node basis and each elements have its own node basis. So each edge has multiple set of nodes belonging to different cells.

  1. How the boundary integration can be done in DG case?
  2. There is a concept of topology used to describe elements. By assigning DOF to node, edge, element. This topology is very different in CG vs DG. Is it possible to generalize, this transformation of integration to finite sum, using this topology?
$\endgroup$

1 Answer 1

1
$\begingroup$

Discontinuous Galerkin is the name, not for a single method, but for an extremely broad family of methods. Consider the BVP $$\nabla \cdot a\nabla u = f \text{ in } \Omega \text{ and } u=0 \text{ on } \partial \Omega.$$ Assume $\bar{\Omega} = \cup_k \bar{K}_k$ is a triangulation of $\bar{\Omega}$. Multiply the BVP by a piecewise smooth test function $v$ and formally integrate by parts to arrive at: $$\tag{1} \sum_k \int_{\partial K_k} \left(\nabla u(x)\right) a(x) \nu_k(x) v(x) \, dx - \sum_k \int_{K_k} (\nu(x)^T a(x) \nabla u(x))^T \, dx = \int_{\Omega} fv. $$ Here, $\nu_k(x)$ is the outer-pointing normal to $\partial K_k$. Implied in the BVP is that $u$ is continuous, so the jump $[u]$ of $u$ must be zero along $\Gamma = \cup_k \partial K_k \cap \Omega$: $$\tag{2} \int_\Gamma [u]v \, dx =0 \text{ on } \Gamma.$$ Furthermore, $u=0$ on $\partial \Omega$.

I have now answered your question 1, because I have integrated by parts. Nevertheless, I suspect that you are still not satisfied. In my humble opinion, this is because of the still large distance between (1),(2) and a MATLAB implementation.

In DG, the basis functions are not indexed by $\phi_{j}$, where $j$ indicates a vertex, but indeed by $\phi_{i,k}$, where $i \in \{1,2,3\}$ indicates a vertex and $k$ indicates a face. If there are $k=1\ldots K$ faces, then there are $3K$ basis functions in DG. If you combine (1), (2), as well as the b.c. $u=0$ on $\partial \Omega$, you obtain a fully-determined linear system for the coefficients $u_{i,k}$ of $u(x) = \sum_{i,k} u_{i,k} \phi_{i,k}(x)$.

The programming of this is tedious.

$\endgroup$
3
  • $\begingroup$ Thanks, but what if we need to integrate over a line (not necessarily on the boundary)? So is the values on the edge an average of 2 elements sharing the edge? $\endgroup$
    – Roy
    Commented Jan 12, 2021 at 9:51
  • 1
    $\begingroup$ I'm not sure what you're trying to integrate over what edge. The flux across an edge can be recovered from (1) because the boundary terms enumerate all the edges. You might prefer to have the one edge integral on the left of the = in (1), and put the rest on the right side of the =. Note also that if you only want local information, you can restrict your attention to test functions $v(x)$ that are in the neighborhood of that edge; this removes a lot of faraway boundary terms. $\endgroup$ Commented Jan 18, 2021 at 17:11
  • 1
    $\begingroup$ Also, from my point of view, there are two values on each edge. People often prefer to think of single-valued functions on edges by taking the average. Certainly, the continuity condition (2) will force single-valuedness. Thus, at convergence, you would be taking the average of two identical functions across that edge. $\endgroup$ Commented Jan 18, 2021 at 17:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .