<div class="gmail_quote">On Fri, Apr 6, 2012 at 18:47, Matthew Knepley <span dir="ltr">&lt;<a href="mailto:knepley@mcs.anl.gov">knepley@mcs.anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Following on the recent question on the list about max temperatures in CitcomS.<br>
I wanted to ask about the SUPG solver for the energy equation.<br>
<br>
My basic questions are:<br>
<br>
- Do you always expect to have some &quot;small&quot; temperature oscillation from the SUPG method?<br>
- If so, in your opinion when is it reasonable to use the Lenardic filter to prevent these small<br>
oscillations from growing?<br>
- If not, what strategy would you use to eliminate the temperature overshoots when decreasing<br>
the time-step doesn&#39;t eliminate them?<br>
<br>
For example, the slab benchmark in the manual gets temperature overshoots if you run that<br>
forward in time. Decreasing the time-step helps, but doesn&#39;t eliminate them.<br>
<br>
I&#39;ve attempted to read some recent papers related to SUPG (after reading the earlier Brooks<br>
and Hughes papers), and I&#39;m finding it difficult to understand the method well enough to know<br>
what its limitations are in non-steady-state problems (with or without strong flow gradients).<br></blockquote><div><br></div><div>Amazingly, the first Google hit looks good: <a href="http://rzbl04.biblio.etc.tu-bs.de:8080/docportal/servlets/MCRFileNodeServlet/DocPortal_derivate_00001549/Document.pdf" target="_blank">http://rzbl04.biblio.etc.tu-bs.de:8080/docportal/servlets/MCRFileNodeServlet/DocPortal_derivate_00001549/Document.pdf</a></div>

<div><br></div><div>SUPG just introduces some diffusion in the streamline direction to prevent oscillation. Its a little</div><div>goofy because you have the tune the amount of diffusion carefully. It does not guarantee monotonicity.</div>

<div>The right thing to do is implement a monotonic method like TVD or WENO. There are now easy, open</div><div>source implementations in <a href="http://numerics.kaust.edu.sa/pyclaw/" target="_blank">http://numerics.kaust.edu.sa/pyclaw/</a>. </div>
</blockquote><div><br></div><div>I agree that a non-oscillatory method is a better choice. SUPG is only first order accurate for transport-dominated flows and it&#39;s still oscillatory (though more accurate than other common first order schemes). Godunov&#39;s theorem says that to have a robustly non-oscillatory method that is greater than first order accurate, you have to use a nonlinear spatial discretization. The TVD and WENO families of finite volume methods, as well as limited discontinuous Galerkin methods embrace this. For structured grids, WENO tends to be the most robust and easy method to implement. For unstructured grids, DG is a good choice.</div>
<div><br></div><div>Discontinuity capturing methods for continuous finite element methods tend to be less robust than the finite volume and DG counterparts. The better choices typically use an indicator based on the residual of an entropy equation. The performance becomes sensitive to the choice of entropy function and they still don&#39;t generally guarantee non-oscillatory solutions.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>You can use a low-pass filter (Lenardic)</div>
<div>to get rid of the oscillations, but the implications for accuracy are not good and forget about conserving</div><div>anything.</div></blockquote><div><br></div><div>The Lenardic filter is actually globally conservative (but not locally) and is intended to sharpen interfaces. A low-pass filter would tend to prevent oscillations by making the field smoother. My understanding is that the Lenardic filter is intended for material interfaces, not for thermal diffusion. Is it really used for thermodynamics?</div>
<div><br></div><div>I assume you are familiar with this study showing how the filter affects tracer dynamics?</div><div><br></div><div><a href="http://jupiter.ethz.ch/~pjt/papers/Tackley2003GC_TracerRatioMethod.pdf">http://jupiter.ethz.ch/~pjt/papers/Tackley2003GC_TracerRatioMethod.pdf</a></div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br></div><div>I have said the simplest thing. Jed knows more about this.</div>
<div><br></div><div>    Matt</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">