#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:

   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/7147f842569c37719d1c97d5f6ddd7e2587a7be4 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-produces-nans-on-past