I think I see know what is going wrong. The commented-out code works fine the first time, but it overshoots slightly. Carpet then apparently does not exit the simulation for some reason. The next time, the commented out code reverses direction, since it tries to get back to the final time.
I am fine with the patch. Overshooting over the final time is not a bad thing, and is to be expected when one uses variable time steps.
On a side node, I have used RK4 with adaptive time stepping in the past (outside Cactus), and I also naively tried to reduce the time step size to exactly hit certain target times for output. This turned out to cost a lot of performance, since it increased the number of time steps and confused the automatic step size calculations. I have since come to the conclusion that having output (or having simulations finish) at irregular times is acceptable.
Do others want to comment on this?
-erik
On Thu, Mar 3, 2011 at 10:15 AM, David Radice david.radice@aei.mpg.de wrote:
Erik,
thanks for the reply.
On Thu, 2011-03-03 at 09:55 -0500, Erik Schnetter wrote:
Are you using mesh refinement in these simulations? Carpet's time stepping algorithm doesn't support changing the time step size. (It is fine if you use unigrid.) If you do, this may explain your symptoms, because the different time levels on the different refinement levels would become seriously inconsistent.
I am using Carpet, but with unigrid. The timestepping is done with MoL, RK3.
This issue disappears either by using a terminate condition based on the number of iterations or by applying that patch. (I checked that courant_wave_speed > 0).
David
-- David Radice Max Planck Institute for Gravitational Physics Albert Einstein Institute Am Muehlenberg 1 D-14476 Potsdam Germany
Tel : +49 331 567 7242 Fax : +49 331 567 7499 Room : 1.64 E-Mail : david.radice@aei.mpg.de