Cool plot. Is that Mars?
I’ve been thinking about this dt issue as well recently, and have made comparisons using both global time stepping and sub-cycling. My experience is mostly with ForestClaw (an octree version of GeoClaw). Short story : it isn’t clear (to me, at least) what to do about these large wave speeds!
(background, for others following) With global time stepping, the time step size (fixed for all grids, but allowed to vary from one step to the next), would be governed by the finest grids in an idealized case (assuming constant u). But in SWE, it is often governed by the coarsest levels, since that is where the wave speeds are the fastest. In this case, you would typically end up with very small CFLs on finest level. This may not be the end of the world, however, since accuracy on the coarsest levels may be less important (?).
But a few places where the finest level grids have really large speeds can blow out the CFL everywhere. And then once the small step is taken (and it might be dramatically smaller), the next step will try to compensate and take a larger step. But this could again blow out the CFL, forcing a small time the next time, and so on. In ForestClaw, I retake a time step if the CFL exceeds 1, and I can mostly get over these rough spots. But when these large speeds are encountered on the finest levels, this can force virtually every step to be retaken, slowing down the code (painful to watch). If I don’t retake the time step, and hope for the best, the code can blow up dramatically.
I haven’t implemented the “dt to go” variable time ratios that GeoClaw has, but have tried a strategy in which I simply switch from sub-cycling to a global time step, suitable for one of the finer levels. The idea is to start with a time step suitable for the coarsest levels, reduce this time step size on successive levels, up to a level where I switch, and then on that level and all finer levels, use a time step suitable for the level where I switch. This generally reduces the number of steps taking on the finest levels. This, combined with retaking time steps seems to get over the “rough patches”. I have thrown up my hands at trying something more sophisticated (:-)).
I’ve attached a plot of what various CFLs. vs. grid sizes. This plot compares idealized cases (constant u), and what happens with in an actual case (the Tohoku tsunami in this case, resolved down to 1/3 arc second). ForestClaw runs on an octree grid, so the levels are powers of 2. This was a more general case, before large wave speeds on the finest grids were encountered.
-----------------------------------Donna Calhoun
Associate Professor
Department of Mathematics, Mathematics Bldg 241A
Boise State University
1910 University Drive
Boise, ID 83725-1555