Discontinuous Galerkin method

From HandWiki

In applied mathematics, discontinuous Galerkin methods (DG methods) form a class of numerical methods for solving differential equations. They combine features of the finite element and the finite volume framework and have been successfully applied to hyperbolic, elliptic, parabolic and mixed form problems arising from a wide range of applications. DG methods have in particular received considerable interest for problems with a dominant first-order part, e.g. in electrodynamics, fluid mechanics and plasma physics. Discontinuous Galerkin methods were first proposed and analyzed in the early 1970s as a technique to numerically solve partial differential equations. In 1973 Reed and Hill introduced a DG method to solve the hyperbolic neutron transport equation.

The origin of the DG method for elliptic problems cannot be traced back to a single publication as features such as jump penalization in the modern sense were developed gradually. However, among the early influential contributors were Babuška, J.-L. Lions, Joachim Nitsche and Miloš Zlámal. DG methods for elliptic problems were already developed in a paper by Garth Baker in the setting of 4th order equations in 1977. A more complete account of the historical development and an introduction to DG methods for elliptic problems is given in a publication by Arnold, Brezzi, Cockburn and Marini. A number of research directions and challenges on DG methods are collected in the proceedings volume edited by Cockburn, Karniadakis and Shu.

Overview

Much like the continuous Galerkin (CG) method, the discontinuous Galerkin (DG) method is a finite element method formulated relative to a weak formulation of a particular model system. Unlike traditional CG methods that are conforming, the DG method works over a trial space of functions that are only piecewise continuous, and thus often comprise more inclusive function spaces than the finite-dimensional inner product subspaces utilized in conforming methods.

As an example, consider the continuity equation for a scalar unknown [math]\displaystyle{ \rho }[/math] in a spatial domain [math]\displaystyle{ \Omega }[/math] without "sources" or "sinks" :

[math]\displaystyle{ \frac{\partial \rho} {\partial t} + \nabla \cdot \mathbf{J} = 0, }[/math]

where [math]\displaystyle{ \mathbf{J} }[/math] is the flux of [math]\displaystyle{ \rho }[/math].

Now consider the finite-dimensional space of discontinuous piecewise polynomial functions over the spatial domain [math]\displaystyle{ \Omega }[/math] restricted to a discrete triangulation [math]\displaystyle{ \Omega_h }[/math], written as

[math]\displaystyle{ S_h^p(\Omega_h)=\{v_{|\Omega_{e_i}}\in P^p(\Omega_{e_i}), \ \ \forall\Omega_{e_i}\in \Omega_h\} }[/math]

for [math]\displaystyle{ P^p(\Omega_{e_i}) }[/math] the space of polynomials with degrees less than or equal to [math]\displaystyle{ p }[/math] over element [math]\displaystyle{ \Omega_{e_i} }[/math] indexed by [math]\displaystyle{ i }[/math]. Then for finite element shape functions [math]\displaystyle{ N_j\in P^p }[/math] the solution is represented by

[math]\displaystyle{ \rho_h^i = \sum_{j=1}^{\text{dofs}} \rho_j^i (t)N_j^i (\boldsymbol{x}), \quad \forall \boldsymbol{x} \in \Omega_{e_i}. }[/math]

Then similarly choosing a test function

[math]\displaystyle{ \varphi_h^i(\boldsymbol{x})=\sum_{j=1}^{\text{dofs}} \varphi_j^i N_j^i(\boldsymbol{x}), \quad \forall \boldsymbol{x}\in\Omega_{e_i}, }[/math]

multiplying the continuity equation by [math]\displaystyle{ \varphi_h^i }[/math] and integrating by parts in space, the semidiscrete DG formulation becomes:

[math]\displaystyle{ \frac{d}{dt}\int_{\Omega_{e_i}}\rho_h^i\varphi_h^i \, d\boldsymbol{x} + \int_{\partial\Omega_{e_{i}}} \varphi_h^i \mathbf{J}_h \cdot\boldsymbol{n} \, d\boldsymbol{x} = \int_{\Omega_{e_i}}\mathbf{J}_h\cdot\nabla\varphi_h^i \, d\boldsymbol{x}. }[/math]

Scalar hyperbolic conservation law

A scalar hyperbolic conservation law is of the form

[math]\displaystyle{ \begin{align} \partial_t u + \partial_x f(u) &= 0 \quad \text{for} \quad t\gt 0,\, x\in \R \\ u(0,x) &= u_0(x)\,, \end{align} }[/math]

where one tries to solve for the unknown scalar function [math]\displaystyle{ u \equiv u(t,x) }[/math], and the functions [math]\displaystyle{ f,u_0 }[/math] are typically given.

Space discretization

The [math]\displaystyle{ x }[/math]-space will be discretized as

[math]\displaystyle{ \R = \bigcup_k I_k \,, \quad I_k := \left( x_k, x_{k+1} \right) \quad \text{for} \quad x_k\lt x_{k+1}\,. }[/math]

Furthermore, we need the following definitions

[math]\displaystyle{ h_k := | I_k | \,, \quad h := \sup_k h_k \,, \quad \hat{x}_k := x_k + \frac{h_k}{2}\,. }[/math]

Basis for function space

We derive the basis representation for the function space of our solution [math]\displaystyle{ u }[/math]. The function space is defined as

[math]\displaystyle{ S_h^p := \left\lbrace v \in L^2(\R)  : v\Big|_{I_k} \in \Pi_p \right\rbrace \quad \text{for} \quad p \in \N_0 \,, }[/math]

where [math]\displaystyle{ {v|}_{I_k} }[/math] denotes the restriction of [math]\displaystyle{ v }[/math] onto the interval [math]\displaystyle{ I_k }[/math], and [math]\displaystyle{ \Pi_p }[/math] denotes the space of polynomials of maximal degree [math]\displaystyle{ p }[/math]. The index [math]\displaystyle{ h }[/math] should show the relation to an underlying discretization given by [math]\displaystyle{ \left(x_k\right)_k }[/math]. Note here that [math]\displaystyle{ v }[/math] is not uniquely defined at the intersection points [math]\displaystyle{ (x_k)_k }[/math].

At first we make use of a specific polynomial basis on the interval [math]\displaystyle{ [-1,1] }[/math], the Legendre polynomials [math]\displaystyle{ (P_n)_{n\in\N_0} }[/math], i.e.,

[math]\displaystyle{ P_0(x) = 1 \,,\quad P_1(x)=x \,,\quad P_2(x) = \frac{1}{2} (3x^2-1) \,,\quad \dots }[/math]

Note especially the orthogonality relations

[math]\displaystyle{ \left\langle P_i,P_j \right\rangle_{L^2([-1,1])} = \frac{2}{2i+1} \delta_{ij} \quad \forall \, i,j \in \N_0 \,. }[/math]

Transformation onto the interval [math]\displaystyle{ [0,1] }[/math], and normalization is achieved by functions [math]\displaystyle{ (\varphi_i)_i }[/math]

[math]\displaystyle{ \varphi_i (x) := \sqrt{2i+1} P_i(2x-1) \quad \text{for} \quad x\in [0,1]\,, }[/math]

which fulfill the orthonormality relation

[math]\displaystyle{ \left\langle \varphi_i,\varphi_j \right\rangle_{L^2([0,1])} = \delta_{ij} \quad \forall \, i,j \in \N_0 \,. }[/math]

Transformation onto an interval [math]\displaystyle{ I_k }[/math] is given by [math]\displaystyle{ \left( \bar{\varphi}_{ki}\right)_i }[/math]

[math]\displaystyle{ \bar{\varphi}_{ki} := \frac{1}{\sqrt{h_k}} \varphi_i \left( \frac{x-x_k}{h_k} \right) \quad \text{for} \quad x\in I_k\,, }[/math]

which fulfill

[math]\displaystyle{ \left\langle \bar{\varphi}_{ki},\bar{\varphi}_{kj} \right\rangle_{L^2(I_k)} = \delta_{ij} \quad \forall \, i,j \in \N_0 \forall \, k \,. }[/math]

For [math]\displaystyle{ L^\infty }[/math]-normalization we define [math]\displaystyle{ \varphi_{ki}:= \sqrt{h_k} \bar{\varphi}_{ki} }[/math], and for [math]\displaystyle{ L^1 }[/math]-normalization we define [math]\displaystyle{ \tilde{\varphi}_{ki}:= \frac{1}{\sqrt{h_k}} \bar{\varphi}_{ki} }[/math], s.t.

[math]\displaystyle{ \| \varphi_{ki} \|_{L^\infty (I_k) } = \| \varphi_i \|_{L^\infty ([0,1]) } =: c_{i,\infty} \quad \text{and} \quad \| \tilde{\varphi}_{ki} \|_{L^1 (I_k) } = \| \varphi_i \|_{L^1 ([0,1]) } =: c_{i,1} \,. }[/math]

Finally, we can define the basis representation of our solutions [math]\displaystyle{ u_h }[/math]

[math]\displaystyle{ \begin{align} u_h(t,x) :=& \sum_{i=0}^p u_{ki}(t) \varphi_{ki} (x) \quad \text{for} \quad x \in (x_k,x_{k+1}) \\ u_{ki} (t) =& \left\langle u_h(t, \cdot ),\tilde{\varphi}_{ki} \right\rangle_{L^2(I_k)} \,. \end{align} }[/math]

Note here, that [math]\displaystyle{ u_h }[/math] is not defined at the interface positions.

Besides, prism bases are employed for planar-like structures, and are capable for 2-D/3-D hybridation.

DG-scheme

The conservation law is transformed into its weak form by multiplying with test functions, and integration over test intervals

[math]\displaystyle{ \begin{align} \partial_t u + \partial_x f(u) &= 0 \\ \Rightarrow \quad \left\langle \partial_t u , v \right\rangle_{L^2(I_k)} + \left\langle \partial_x f(u) , v \right\rangle_{L^2(I_k)} &= 0 \quad \text{for} \quad \forall \, v \in S_h^p \\ \Leftrightarrow \quad \left\langle \partial_t u , \tilde{\varphi}_{ki} \right\rangle_{L^2(I_k)} + \left\langle \partial_x f(u) , \tilde{\varphi}_{ki} \right\rangle_{L^2(I_k)} &= 0 \quad \text{for} \quad \forall \, k \; \forall\, i \leq p \,. \end{align} }[/math]

By using partial integration one is left with

[math]\displaystyle{ \begin{align} \frac{\mathrm d}{\mathrm d t} u_{ki}(t) + f(u(t, x_{k+1} )) \tilde{\varphi}_{ki}(x_{k+1}) - f(u(t, x_k )) \tilde{\varphi}_{ki}(x_k) - \left\langle f(u(t,\,\cdot\,)) , \tilde{\varphi}_{ki}' \right\rangle_{L^2(I_k)} =0 \quad \text{for} \quad \forall \, k \; \forall\, i \leq p \,. \end{align} }[/math]

The fluxes at the interfaces are approximated by numerical fluxes [math]\displaystyle{ g }[/math] with

[math]\displaystyle{ g_k := g(u_k^-,u_k^+) \,, \quad u_k^\pm := u(t,x_k^\pm) \,, }[/math]

where [math]\displaystyle{ u_k^{\pm} }[/math] denotes the left- and right-hand sided limits. Finally, the DG-Scheme can be written as

[math]\displaystyle{ \begin{align} \frac{\mathrm d}{\mathrm d t} u_{ki}(t) + g_{k+1} \tilde{\varphi}_{ki}(x_{k+1}) - g_k \tilde{\varphi}_{ki}(x_k) - \left\langle f(u(t,\,\cdot\,)) , \tilde{\varphi}_{ki}' \right\rangle_{L^2(I_k)} =0 \quad \text{for} \quad \forall \, k \; \forall\, i \leq p \,. \end{align} }[/math]

Scalar elliptic equation

A scalar elliptic equation is of the form

[math]\displaystyle{ \begin{align} -\partial_{xx} u &= f(x) \quad \text{for} \quad x\in (a,b) \\ u(x) &= g(x)\,\quad\text{for}\,\quad x=a,b \end{align} }[/math]

This equation is the steady-state heat equation, where [math]\displaystyle{ u }[/math] is the temperature. Space discretization is the same as above. We recall that the interval [math]\displaystyle{ (a,b) }[/math] is partitioned into [math]\displaystyle{ N+1 }[/math] intervals of length [math]\displaystyle{ h }[/math].

We introduce jump [math]\displaystyle{ [{}\cdot{}] }[/math] and average [math]\displaystyle{ \{{}\cdot{}\} }[/math] of functions at the node [math]\displaystyle{ x_k }[/math]:

[math]\displaystyle{ [v]\Big|_{x_k} = v(x_k^+)-v(x_k^-), \quad \{v\}\Big|_{x_k} = 0.5 (v(x_k^+)+v(x_k^-)) }[/math]

The interior penalty discontinuous Galerkin (IPDG) method is: find [math]\displaystyle{ u_h }[/math] satisfying

[math]\displaystyle{ A(u_h,v_h) + A_{\partial}(u_h,v_h) = \ell(v_h) + \ell_\partial(v_h) }[/math]

where the bilinear forms [math]\displaystyle{ A }[/math] and [math]\displaystyle{ A_\partial }[/math] are

[math]\displaystyle{ A(u_h,v_h) = \sum_{k=1}^{N+1} \int_{x_{k-1}}^{x_k}\partial_x u_h \partial_x v_h -\sum_{k=1}^N \{ \partial_x u_h\}_{x_k} [v_h]_{x_k} +\varepsilon\sum_{k=1}^N \{ \partial_x v_h\}_{x_k} [u_h]_{x_k} +\frac{\sigma}{h} \sum_{k=1}^N [u_h]_{x_k} [v_h]_{x_k} }[/math]

and

[math]\displaystyle{ A_\partial(u_h,v_h) = \partial_x u_h(a) v_h(a) -\partial_x u_h(b) v_h(b) -\varepsilon \partial_x v_h(a) u_h(a) + \varepsilon\partial_x v_h(b) u_h(b) +\frac{\sigma}{h} \big(u_h(a) v_h(a) + u_h(b) v_h(b)\big) }[/math]

The linear forms [math]\displaystyle{ \ell }[/math] and [math]\displaystyle{ \ell_\partial }[/math] are

[math]\displaystyle{ \ell(v_h) = \int_a^b f v_h }[/math]

and

[math]\displaystyle{ \ell_\partial(v_h) = -\varepsilon \partial_x v_h(a) g(a) + \varepsilon\partial_x v_h(b) g(b) +\frac{\sigma}{h} \big( g(a) v_h(a) + g(b) v_h(b) \big) }[/math]

The penalty parameter [math]\displaystyle{ \sigma }[/math] is a positive constant. Increasing its value will reduce the jumps in the discontinuous solution. The term [math]\displaystyle{ \varepsilon }[/math] is chosen to be equal to [math]\displaystyle{ -1 }[/math] for the symmetric interior penalty Galerkin method; it is equal to [math]\displaystyle{ +1 }[/math] for the non-symmetric interior penalty Galerkin method.

Direct discontinuous Galerkin method

The direct discontinuous Galerkin (DDG) method is a new discontinuous Galerkin method for solving diffusion problems. In 2009, Liu and Yan first proposed the DDG method for solving diffusion equations.[1][2] The advantages of this method compared with Discontinuous Galerkin method is that the direct discontinuous Galerkin method derives the numerical format by directly taking the numerical flux of the function and the first derivative term without introducing intermediate variables. We still can get a reasonable numerical results by using this method, and the derivation process is more simple, the amount of calculation is greatly reduced.

The direct discontinuous finite element method is a branch of the Discontinuous Galerkin methods. It mainly includes transforming the problem into variational form, regional unit splitting, constructing basis functions, forming and solving discontinuous finite element equations, and convergence and error analysis.

For example, consider a nonlinear diffusion equation, which is one-dimensional:

[math]\displaystyle{ U_t - {(a(U)\cdot U_x)}_x = 0 \ \ in \ (0,1) \times (0,T) }[/math], in which [math]\displaystyle{ U(x,0) = U_0(x)\ \ on\ (0,1) }[/math]

Space discretization

Firstly, define [math]\displaystyle{ \left \{ I_j =\left ( x_{j-\frac{1}{2}},\ x_{j+\frac{1}{2}} \right ), j=1...N\right \} }[/math], and [math]\displaystyle{ \Delta x_j=x_{j+\frac{1}{2}}-x_{j-\frac{1}{2}} }[/math]. Therefore we have done the space discretization of [math]\displaystyle{ x }[/math]. Also, define [math]\displaystyle{ \Delta x=\max_{1\leq j\lt N}\ \Delta x_j }[/math].

We want to find an approximation [math]\displaystyle{ u }[/math] to [math]\displaystyle{ U }[/math] such that [math]\displaystyle{ \forall t\in \left [ 0,T \right ] }[/math], [math]\displaystyle{ u \in \mathbb{V}_{\Delta x} }[/math],

[math]\displaystyle{ \mathbb{V}_{\Delta x} := \left \{ v\in L^2\left ( 0,1 \right ):{v|}_{I_j}\in P^k\left ( I_j \right ), \ j=1,...,N \right \} }[/math], [math]\displaystyle{ P^k\left ( I_j \right ) }[/math] is the polynomials space in [math]\displaystyle{ I_j }[/math] with degree at most [math]\displaystyle{ k }[/math].

Formulation of the scheme

Flux: [math]\displaystyle{ h:= h\left ( U,U_x \right )=a\left ( U \right )U_x }[/math].

[math]\displaystyle{ U }[/math]: the exact solution of the equation.

Multiply the equation with a smooth function [math]\displaystyle{ v\in H^1\left (0,1 \right ) }[/math] so that we obtain the following equations:

[math]\displaystyle{ \int _{I_j} U_tvdx-h_{j+\frac{1}{2}}v_{j+\frac{1}{2}}+h_{j-\frac{1}{2}} v_{j-\frac{1}{2}} +\int a\left ( U \right )U_xv_xdx=0 }[/math],

[math]\displaystyle{ \int _{I_j} U\left ( x,0 \right )v\left ( x \right )dx=\int _{I_j}U_0\left ( x \right )v\left ( x \right )dx }[/math]

Here [math]\displaystyle{ v }[/math] is arbitrary, the exact solution [math]\displaystyle{ U }[/math] of the equation is replaced by the approximate solution [math]\displaystyle{ u }[/math], that is to say, the numerical solution we need is obtained by solving the differential equations.

The numerical flux

Choosing a proper numerical flux is critical for the accuracy of DDG method.

The numerical flux needs to satisfy the following conditions:

♦ It is consistent with [math]\displaystyle{ h={b\left ( u \right )}_x=a\left ( u \right )u_x }[/math]

♦ The numerical flux is conservative in the single value on [math]\displaystyle{ x_{j+\frac{1}{2}} }[/math].

♦ It has the [math]\displaystyle{ L^2 }[/math]-stability;

♦ It can improve the accuracy of the method.

Thus, a general scheme for numerical flux is given:

[math]\displaystyle{ \widehat{h}=D_xb(u)=\beta_0\frac{\left [ b\left ( u \right ) \right ]}{\Delta x}+\overline{{b\left ( u \right )}_x}+\sum_{m=1}^{\frac{k}{2}}\beta_m{\left ( \Delta x \right )}^{2m-1}\left [ \partial _x^{2m}b\left ( u \right ) \right ] }[/math]

In this flux, [math]\displaystyle{ k }[/math] is the maximum order of polynomials in two neighboring computing units. [math]\displaystyle{ \left [\cdot \right ] }[/math] is the jump of a function. Note that in non-uniform grids, [math]\displaystyle{ \Delta x }[/math] should be [math]\displaystyle{ \left ( \frac{\Delta x_j+\Delta x_{j+1}}{2} \right ) }[/math] and [math]\displaystyle{ \frac{1}{N} }[/math] in uniform grids.

Error estimates

Denote that the error between the exact solution [math]\displaystyle{ U }[/math] and the numerical solution [math]\displaystyle{ u }[/math] is [math]\displaystyle{ e= u-U }[/math] .

We measure the error with the following norm:

[math]\displaystyle{ \left | \left | \left | v(\cdot ,t) \right | \right | \right | ={\left (\int_{0}^{1}v^2dx+\left ( 1-\gamma \right )\int_{0}^{t}\sum_{j=1}^{N}\int_{I_j} v_x^2 dxd\tau +\alpha \int_{0}^{t}\sum_{j=1}^{N} {\left [ v \right ] }^2/\Delta x\cdot d\tau \right )}^{0.5} }[/math]

and we have [math]\displaystyle{ \left | \left | \left | U(\cdot ,T) \right | \right | \right |\leq \left | \left | \left | U(\cdot ,0) \right | \right | \right | }[/math],[math]\displaystyle{ \left | \left | \left | u(\cdot ,T) \right | \right | \right |\leq \left | \left | \left | U(\cdot ,0) \right | \right | \right | }[/math]

See also

References

  1. Hailiang Liu, Jue Yan, The Direct Discontinuous Galerkin (DDG) Methods For Diffusion Problems,SIAM J. NUMER. ANAL. Vol. 47, No. 1, pp. 675–698.
  2. Hailiang Liu, Jue Yan, The Direct Discontinuous Galerkin (DDG) Method for Diffusion with Interface Corrections, Commun. Comput. Phys. Vol. 8, No. 3, pp. 541-564.