#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