Supg parameter questions

Hi all,

I finally had the time to read up on SUPG (I have been using it with Q1 elements for 10 years but step 63 and other literature showed me that it was not so simple with Q2 elements :). If anybody is interested in a good textbook, I highly recommend the book by Donea & Huerta (see aspect manual bibliography)

Anyways, out of curiosity, I took one of the advection prm files in benchmark/advection/ and created a new one, which essentially models the advection of a heaviside function in 1D (see Fig 19 of Thieulot, PEPI 188, p47, 2011. ). see attached pic also.

(the red and blue lines are SUPG, and gamma= \tau v/h )

There is 1 composition and the temperature field in the domain and both are initially set to the same value and subjected to the same boundary condition (T=1 at x=0, T=0 at x=1).
I also set the heat conductivity coefficient to zero, so that the Peclet number is infinite for temperature also. I then expect the same \delta_K parameter (see section 2.12.1 of aspect manual) for both composition and temperature. For a 32x32 mesh:

\delta_K = h / 2 d |\beta|_K = 1/ 32x2x2x1 (rho=cp=v=1 so \beta_K=1) = 0.0078125

I run the simulation for up to t=0.5, which allows the front to move from x=0.25 to x=0.75, and voluntarily set CFL = 0.1 so as to see many timesteps in paraview (but it is irrelevant).

When I look at the vtu file, the ‘artificial_viscosity’ field (which I interpret to be delta_K) is constant in space and in time and equal to 0.022. Since it is not equal to the value computed above, what am I not understanding? also, since for temperature often k=/=0 (i.e. Pe is finite) but Pe is always infinite for compositions why is there only one artificial_viscosity field?

I also attach the prm file.


front_supg.prm (3.0 KB)

Hi Cedric,

great that somebody is looking into SUPG some more!

How does the ASPECT solution look like?

We are using the cell diameter instead of the length of the edge as h. With that I get h/p = 1/32*sqrt(2)/2 ~= 0.02209 (where p is the polynomial degree).
I am not 100% if this definition of h is the correct one, but I remember that I tried the minimum vertex distance (length of the shortest edge in this case) and the results produced more overshoots. Maybe this is worth trying for this test problem.

There is also the “artificial viscosity composition” visualization postprocessor. Did you try that as well?

Hi Timo,
thanks for your help. Indeed the value of \delta_K now makes sense. I have switched on the visualisation of the ‘artificial viscosity’ for the composition and it’s (reassuringly) equal to the one of temperature.

I hereby attach a pic of what the T/C1 field looks like by the end.


thanks. I will play with this at some point. Do you think we should increase the constant for a smaller overshoots or expose this as a parameter?

Not sure yet. I have made by own Q2 code and implemented your experiments in it as well as the Heaviside advection pb. I am trying to compare my results with those of ASPECT but I am using a Crank-Nicolson algo while ASPECT relies on the BDF2 with implicit advection. More soon.