#2554: init_3_timelevels produces nans on past timelevels of the initial slice
Reporter: Yosef Zlochower Status: open Milestone: Version: ET_2021_05 Type: bug Priority: minor Component: Carpet
Comment (by Roland Haas):
I am actually not sure if this ever worked as advertised. The code in question is:
```c++ initialise_3tl_flip_timelevels(cctkGH); initialise_3tl_evolve(cctkGH); initialise_3tl_evolve(cctkGH); // TODO: May want to restrict where possible (i.e. if the time // refinement factor is one) initialise_3tl_recycle(cctkGH); ```
which is bad because `initialise_3tl_evolve` steps all reflevel by one step, so that in step 1 when say reflevel 1 wants to do prolongation for the buffer zones there are only 2 valid timelevels on reflevel 0 (namley tl=0 and tl=1) and thus interpolation in time picks up nan from tl=2.
A fix is proposed in: [https://bitbucket.org/eschnett/carpet/commits/7147f842569c37719d1c97d5f6ddd7...) essentially moving the reflevel loop outside of `initialise_3tl_evolve`. Still has issues with the restriction involved but I don’t think those can be avoided.
Comments would be welcome.
-- Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2554/init_3_timelevels-...