Say I have a simple elliptic PDE: $$ -\nabla\cdot(K\nabla p) = f \;\;\;\text{in}\;\Omega $$

with the appropriate boundary conditions. I solve for $p$ using a FEM (a discontinuous Galerkin method to be exact). Let's denote this as $p^{DG}$.

Now I compute the velocity $\mathbf{u}^{DG} = -K\nabla p^{DG}$. This velocity will be used in the solution of a transport equation. Using this computed velocity is causing oscillations and instability in my solution of the transport equation, and a common technique in the area I'm working in right now is to project the velocity into the $H(div)$ space so that the normal component is continuous.

I've been reading up on this technique and am following the paper "Superconvergence and H(div) projection for discontinuous Galerkin methods." (Riviere and Bastian).

I think I understand conceptually how to do the projection, but am getting caught up on some of the details.

The paper states as follows: Say we have a regular triangulation $\mathcal{T}_{h}$ of the domain $\Omega$. For each $E\in\mathcal{T}_{h}$, we seek a reconstructed velocity/flux $\mathbf{u}^{*} \in BDM_{k-1}(E)$ (Brezzi, Douglas, Marini space) s.t.

  1. $\int_{e}\mathbf{u}^{*}\cdot\mathbf{n}_{e}z = \int_{e}\mathbf{u}^{DG}\cdot\mathbf{n}_{e}z, \;\;\;\;\;\;\;z\in\mathbb{P}_{k-1}(e), \;\forall e\in\partial E $

  2. $\int_{E}\mathbf{u}^{*}\cdot\nabla w = \int_{e}\mathbf{u}^{DG}\cdot\nabla w, \;\;\;\;\;\;w\in\mathbb{P}_{k-2}(E)$

  3. $\int_{E}\mathbf{u}^{*}\cdot\mathbf{S}(\phi) = \int_{E}\mathbf{u}^{DG}\cdot\mathbf{S}(\phi), \;\;\;\phi\in M_{k}(E) = \left\{\phi \in \mathbb{P}_{k}(E): \phi|_{\partial E} = 0\right\} \;\text{and} \;\mathbf{S}(\phi) = (\phi_{y}, -\phi_{x})$

1-3 should uniquely define $\mathbf{u}^{*}$. So on each element, I need to solve a small linear system. I am familiar with $L^{2}$ projections, which I think are much more straightforward. The main thing I am struggling with here is how to generate all the of the necessary equations.

For an example, say I have $k=3$. The $BDM_{2}(E)$ space has dimension 12. So I need to generate a 12x12 system.

Looking at (2), then $z \in \mathbb{P}_{1}(E)$. Since $E$ is triangular, I have exactly three basis functions and thus, I have 3 unique equations.

For (1), I am a bit confused. Since $k=3$, we have $w\in\mathbb{P}_{2}$. For discontinuous Galerkin (and CG), there are typically 6 quadratic polynomials on each element. So does this mean I get 6 equations from (1)? Do I just assign 2 of the polynomials arbitrarily to each edge...?

I understand (3) mostly. I need to generate some cubic bubble functions, but since I don't know how many equations I get from (1), I'm not sure how many bubble functions I need.

Can someone shed some light on this topic? Is the method above a "standard" way of doing it? There is a surprisingly small amount of resources available on this, which is probably the most frustrating part so far and I have worked much with $H(div)$ elements before. If anyone knows of some relevant sources here, I'd also be really grateful.

  • 1
    $\begingroup$ I am confused. Before the three conditions, you say that you are seeking $\mathbf u^\ast \in ({\mathbb P}_{k-1}(E))^2$ but later you say that you'd like to project into the space $BDM_2$ space. These are not the same. Which space do you look at for the reconstruction? (And, is $({\mathbb P}_{k-1}(E))^2$ continuous across edges?) $\endgroup$ Mar 28, 2015 at 20:17
  • $\begingroup$ @WolfgangBangerth Sorry, I meant to say week $\mathbf{u}^{*} \in BDM_{k-1}(E)$. I edited the question to reflect this. And in general, $(\mathbb{P}_{k-1}(E))^{2}$ would not be continuous across edges $\endgroup$ Mar 30, 2015 at 9:55
  • $\begingroup$ Could you clarify how your projected velocity $\mathbf{u}^{*}$ has normal derivative continuous across elements even though the projection is done on a element basis? I don't see how they could be coupled. $\endgroup$
    – balborian
    Jun 1, 2016 at 18:27

1 Answer 1


The projection you consider is local on every cell. With the spaces you cite, your condition 1 requires test functions of degree $k-1$ on each edge (constant, linear, and quadrature along the edge); for $k=3$, there are 3 linearly independent such shape functions per edge, for a total of 9. Your condition 2 requires test functions of degree $k-2$ for the cell; for $k=3$, you then need the constants and linears on the cell, of which there are 3. Your condition 3 requires test functions of degree $k$ with zero boundary values ("bubble functions"); for $k=3$, you have 3 such bubble functions.

So, in total that would suggest 15 conditions. That's too many for the BDM element you're considering which suggest that you need to modify the conditions you listed above (i.e., either they are stated wrongly in the paper, or you copied them wrongly, or there is something else fishy going on).

  • $\begingroup$ What you said makes sense to me. But I just double-checked and the equations seem to be correct in the paper I referenced, but also there are some other papers and texts that I found that present this exact scheme, including numerical results ("A comparative study on the weak Galerkin, discontinuous Galerkin, and mixed FEM" -Lin, et al). The paper by Lin also explains the $RT_{k}(E)$ projection, and I've found that their equations and procedure have been accurate for that. $\endgroup$ Mar 30, 2015 at 21:38
  • $\begingroup$ @JustinDong: The approach in general certainly makes sense. It's just that the numbers don't pan out. Is $BDM_2$ really 12 degrees of freedom per cell? If yes, the approach is easy to fix. You just need to reduce one of the spaces for the testfunctions a bit to reduce the number of equations. $\endgroup$ Mar 30, 2015 at 23:27
  • $\begingroup$ I'm fairly certain those dofs are correct: math.clemson.edu/~vjervin/papers/erv112.pdf. In any case, I'll experiment around with reducing some of the spaces. I'm starting with $RT$ projections and working up to $BDM$ since the procedures are similar. In either case though, are there specific conditions that the $z \in \mathbb{P}_{k-1}(e)$ have to adhere to? I use $z = 1, x, ...$ on each edge. I'm not sure if there is some convention even for the constant case. As using $z=1$ gives poor convergence (I wouldn't think scaling by a constant would matter...) $\endgroup$ Mar 31, 2015 at 16:10
  • $\begingroup$ It says $\forall z \in {\mathbb P}_{k-1}(e)$, so you can choose any $k$ functions as long as they are not linearly dependent. Choose whatever is convenient. $\endgroup$ Apr 1, 2015 at 3:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.