I want to solve this simple advection equation using the finite element method.

$$\frac{dc}{dt}+v\cdot\nabla c = f$$

What's the best FEM discretization for this? I have tried using the standard/primitive least-squares finite element method for this but it seems I still get oscillations.

  • 2
    $\begingroup$ I would say the standard finite element method is a discontinuous Galerkin method; this is discussed in detail for your equation in Chapter 3 of DiPietro and Ern, Mathematical Aspects of Discontinuous Galerkin Methods, Springer 2012. $\endgroup$ – Christian Clason Sep 23 '15 at 9:08

One way or the other, you need to stabilize every discretization for this equation. Traditionally, this was done using methods such as artificial viscosity or its slightly smarter sibling SUPG. But there are many other alternatives to make things work if you'd like to stick with the FEM framework -- e.g., discontinuous Galerkin methods.

My summary of this issue can be found in lecture 31 here: http://www.math.tamu.edu/~bangerth/videos.html

| cite | improve this answer | |
  • $\begingroup$ Thanks for the link to the video, what you say makes sense. It seems to me that LSFEM without any stabilization exhibits the same "oscillations" as the SUPG formulation. That is, my solution violates the Discrete Maximum Principles and is not monotonic everywhere. Unlike SUPG, LSFEM is naturally an unconstrained minimization/optimization problem so could I enforce bounded/inequality constraints to "fix" my solution? Would this be mathematically sound? $\endgroup$ – Justin Sep 23 '15 at 23:11
  • $\begingroup$ I don't know. It's certainly possible to try something like this. It's a different question whether it works. $\endgroup$ – Wolfgang Bangerth Sep 24 '15 at 12:50
  • $\begingroup$ Okay, I guess I will just give it a try then. Thanks $\endgroup$ – Justin Sep 24 '15 at 18:39
  • $\begingroup$ I can't say anything about the mathematics, but you can prevent negative solution oscillations with a penalty in a Galerkin method. I never published anything on it, but I have tried it successfully. $\endgroup$ – Bill Barth Sep 24 '15 at 23:18
  • $\begingroup$ @BillBarth can you elaborate on this a little more? I know it's now going off topic so I can create another thread if necessary $\endgroup$ – Justin Sep 27 '15 at 9:22

I definitely advocate for discontinuous galerkin methods, as others have noted.

You might want to consider Space-Time Discontinuous Galerkin methods (I developed some codes for this at UIUC). Using this approach, you could potentially mesh your elements in a way that would allow for parallelizing your code and avoiding having to solve large matrices.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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