#2639: CarpetLib internal error with PreSync and analysis thorns
| Reporter: | Samuel Cupp |
| Status: | new |
| Milestone: | |
| Version: | development version |
| Type: | bug |
| Priority: | major |
| Component: | Carpet |
Comment (by Samuel Cupp):
I’ve made some progress in tracking down the source of this error. The if(time within times min/max) statement tracks back to checking if
const CCTK_REAL time = cctkGH->cctk_time (carpet/Carpet/src/Comm.cc:253)
is inside
times.AT(i) = t.get_time(ml2, rl2, tl2s.AT(i)) (carpet/CarpetLib/src/ggf.cc:540)
which has the length of
tl2s: tl2s.resize(prolongation_order_time + 1) (carpet/CarpetLib/src/ggf.cc:379)
In this parfile, the first several reflevels are not subcycling, so they should all step at the same iterations. I’m printing out a lot of stuff since its inside these functions, so the first times I’m seeing for reflevel 0 are 0.15, and 0.3 (presumably its also running at the rk4 half-step, which is why i’m getting two times for each iteration on a single level). If I run it with PreSync off, I see these same times appear for all the ones moving in lockstep, and it then goes into smaller time discretizations once it reaches the subcycled reflevels.
However, this does not happen with PreSync. Instead, when it gets to reflevel 1, cctk_time returns a value of 1 instead of 0.15, which is not inside the bounds of that vector of times, causing the error. So somehow PreSync is affecting what cctkGH->cctk_time is.
I’m going to try to construct a simpler test case that still reproduces this now that I
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2639/carpetlib-internal-error-with-presync-and