This is perhaps a more focused version of this question.

Using standard notation, I have a code that works and solves the following PDE using a Raviart Thomas mixed method.

$$\begin{align} 0 &= \mathbf{q} + \mathbf{\nabla}u && x\in \Omega\\ 0 &= \mathbf{\nabla} \cdot \mathbf{q} && x\in \Omega\\ g &= \mathbf{q}\cdot \mathbf{\eta} & &x\in \partial\Omega_N\\ 0 &= u&& x\in \partial\Omega_D \end{align} $$

Assume that the measure of $\partial \Omega_D$ is strictly positive.

My question is this. Where can I find a reference that discusses how to solve this problem using Raviart Thomas Elements?

Note that the on page 404 and continuing onto the next page of "Mixed Finite Elements and Applications", by Brezzi, Boffin and Fortin more or less assumes that we have a way of generating an exact solution to this problem easily. Indeed, my $\mathbf{q}$ is their $\widetilde{\mathbf{u}}$.

I am interested in reading and citing a source that discusses this problem.

Thank you.

  • 2
    $\begingroup$ Can you say what concretely your question is? "How to solve this problem" is just a rather large number of smaller issues! $\endgroup$ Nov 17, 2017 at 2:10
  • $\begingroup$ I am interested in a reference in the literature or a book that doesn't sweep this problem under the rug. $\endgroup$
    – fred
    Nov 17, 2017 at 12:45
  • $\begingroup$ What I mean is what is "this problem"? $\endgroup$ Nov 17, 2017 at 13:17
  • $\begingroup$ By problem, I mean using a mixed method (preferably RT elements) to solve the above PDE with those boundary conditions. $\endgroup$
    – fred
    Nov 17, 2017 at 13:57

1 Answer 1


In this case, the essential boundary condition is Neumann and natural is Dirichlet. Since Neumann is essential and is nonhomogeneous, you can use the concept of lift, referred by a couple of authors, for example Demkowicz book about HP finite elements.

Follow explanation from Demokowicz book.The $\tilde {\mathbf{q}}(x)$ is a lift on Neumann data $g$. Lift $\tilde {\mathbf{q}}(x)$ coincide with the data on boundary if $x \in \partial \Omega _N$. In other words, lift is an extension of $g$ to the whole domain.

With lift at hand, we can subtract it from the solution, and the difference will vanish on the Neumann boundary. The collection of such sums is identified as the algebraic sum of lift $\tilde {\mathbf{q}}(x)$ and space $H^\textrm{div}_0(\Omega)=\{\mathbf{q} \in H^\textrm{div} \,|\, \eta \mathbf{q}(x)=0\;x\in\partial\Omega_N \}$, and called an affine space: \begin{equation} \tilde {\mathbf{q}} + H^\textrm{div}_0(\Omega) = \left\{ \tilde {\mathbf{q}} + \mathbf{q}: \mathbf{q} \in H^\textrm{div}_0(\Omega) \right\} \end{equation}

The final variational formulation can be expressed in variational formulation \begin{equation} \left\{ \begin{array}{l} \mathbf{q} \in \tilde {\mathbf{q}} + H^\textrm{div}_0(\Omega) \\ u \in L^2(\Omega) \\ (\mathbf{q},\tau) + (u,\nabla \cdot \boldsymbol\tau) = 0\quad\forall \boldsymbol\tau \in H^\textrm{div}_0(\Omega) \\ (\nabla \cdot \mathbf{q}, v) = 0\quad\forall v \in L^2(\Omega) \end{array} \right. \end{equation}

That can be formulated in another way, more convenient for implementation. Once we have found particular function $\tilde{\mathbf{q}}(x)$ that satisfies the nonhomogeneous Neumann data, we can simply make substitution $\mathbf{q} = \tilde{\mathbf{q}} + \mathbf{w}$ where $\mathbf{w} \in H^\textrm{div}_0(\Omega) $ satisfies homogenous boundary data, that corresponds to formulation \begin{equation} \left\{ \begin{array}{l} \mathbf{w} \in H^\textrm{div}_0(\Omega) \\ u \in L^2(\Omega) \\ (\mathbf{w},\boldsymbol\tau) + (u,\nabla \cdot \boldsymbol\tau) = -(\tilde{\mathbf{q}},\boldsymbol\tau) \quad\forall \boldsymbol\tau \in H^\textrm{div}_0(\Omega) \\ (\nabla \cdot \mathbf{w}, v) = -(\nabla \cdot \tilde{\mathbf{q}}, v) \quad\forall v \in L^2(\Omega) \end{array} \right. \end{equation}

At that point, one can see that there is no difference what we do in classical elements and mix formulation, only we need to identify what is essential boundary condition, which has to be satisfied a priori. Practically we eliminate DOFs, and calculating residuals.

However, is small technical difference, in classical finite element formulation DOFs have physical meaning, and we used to express $\tilde{\mathbf{q}}$ in the space of finite elements by setting nodal values.

In this case like here, for convenience one like to approximate $\tilde{\mathbf{q}}$ on finite element base functions. That simplify implementation. It can be noticed that for RT elements, attention can be focussed on faces on Neumann boundary. For each face where Neumann boundary is applied, small face-by-face problem can be solved to find $\tilde{\mathbf{q}}^h$ as a linear combination of finite element base functions \begin{equation} <\eta\cdot\gamma(\boldsymbol\tau^{h,f}),\eta\cdot\gamma (\tilde{\mathbf{q}}^{h,f})-g>_{\partial\Omega^{h,f}_N} = 0 \quad\forall \gamma(\boldsymbol\tau)^{h,f} \end{equation} where $f$ is face index where boundary condition is applied and $\gamma$ is a trace operator, and trace of base function on face is piecewise polynomial for RT element.


I have not found implementation or paper for a general transient nonlinear problem with nonhomogenous Neumann bc like this, but we manage to implement this with hierarchical spaces in MoFEM (I am the one developers of that code), which can handle such problems easily. So you can look how is done.

Practical implementation for finding lift is here, http://mofem.eng.gla.ac.uk/mofem/html/struct_mix_transport_1_1_mix_transport_element_1_1_op_evaluate_bc_on_fluxes.html#ad175a300e635a0f472a947373a2e7b43

This is applied to time dependent nonlinear problem of fluid flow in unsaturated soil http://mofem.eng.gla.ac.uk/mofem/html/mix_us_flow.html

  • $\begingroup$ I think that you should mention explicitly in the post your relation with MOFEM $\endgroup$
    – nicoguaro
    Nov 17, 2017 at 12:37
  • $\begingroup$ Thank you for writing this up. I think the "H^div" in the affine space definition needs to be modified to the subset of H^div whose whose normal trace vanishes on the Neumann boundary. I started to edit it, but it felt weird to edit an answer to a question I asked. $\endgroup$
    – fred
    Nov 17, 2017 at 13:15
  • $\begingroup$ In the Demkowicz book he says something like "the concept of lift is decidedly nontrivial" and that comment is partly why I ask this question. $\endgroup$
    – fred
    Nov 17, 2017 at 13:20
  • $\begingroup$ @fred Please feel free to do the changes. I have very busy rest of the day, in the end, you have better mathematical insight than me. $\endgroup$
    – likask
    Nov 17, 2017 at 14:05

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.