<div class="gmail_quote">On Thu, Oct 27, 2011 at 08:28, behzad baghapour <span dir="ltr"><<a href="mailto:behzad.baghapour@gmail.com">behzad.baghapour@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div id=":2oa">Actually I want to update the domain according to the global CFL number; e.g. dt = CFL * dx / Lambda; separately for each cell <br>( dx is the dimension of the cell and Lambda is the local maximum eigenvalue of the field )<br>
</div></blockquote><div><br></div><div>TS does not know about "CFL" because it's not even a universal quantity. It gives you a step size, call it pseudo_dt. You can sweep over the grid to compute global_dt = min_e dx_e / lambda_e (the most restrictive step size according to CFL=1). Now you can define the global CFL number = pseudo_dt / global_dt and use this however you like.</div>
<div><br></div><div>You might have some cheap estimate of global_dt in which case you could use it instead of making the sweep on each step to have an exact definition. Or you can do it while computing the residual and cache the result in your application context.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div id=":2oa">
<br>So, here shift is the maximum time step and I should adjust other cells to this maximum value?</div></blockquote></div><br><div>It really is the minimum time step since the global CFL is computed for the fastest wave in the smallest cell (smallest value of dx/lambda). In your slower, larger cells, the number dx/lambda will be larger.</div>