#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 have concrete behavior to look for to making debugging easier.
-- Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2639/carpetlib-internal...
trac@lists.einsteintoolkit.org