<html>#2554: init_3_timelevels produces nans on past timelevels of the initial slice
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Yosef Zlochower</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>open</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td>ET_2021_05</td></tr>
<tr><td style='text-align:right'>     Type:</td><td>bug</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>minor</td></tr>
<tr><td style='text-align:right'>Component:</td><td>Carpet</td></tr>
</table>

<p>Comment (by Roland Haas):</p>
<p>I am actually not sure if this ever worked as advertised. The code in question is:</p>
<div class="codehilite language-c++"><pre><span></span>   <span class="n">initialise_3tl_flip_timelevels</span><span class="p">(</span><span class="n">cctkGH</span><span class="p">);</span>
   <span class="n">initialise_3tl_evolve</span><span class="p">(</span><span class="n">cctkGH</span><span class="p">);</span>
   <span class="n">initialise_3tl_evolve</span><span class="p">(</span><span class="n">cctkGH</span><span class="p">);</span>
   <span class="c1">// TODO: May want to restrict where possible (i.e. if the time</span>
   <span class="c1">// refinement factor is one)</span>
   <span class="n">initialise_3tl_recycle</span><span class="p">(</span><span class="n">cctkGH</span><span class="p">);</span>
</pre></div>


<p>which is bad because <code>initialise_3tl_evolve</code> 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.</p>
<p>A fix is proposed in: <a data-is-external-link="true" href="https://bitbucket.org/eschnett/carpet/commits/7147f842569c37719d1c97d5f6ddd7e2587a7be4" rel="nofollow">https://bitbucket.org/eschnett/carpet/commits/7147f842569c37719d1c97d5f6ddd7e2587a7be4</a> essentially moving the reflevel loop outside of <code>initialise_3tl_evolve</code>. Still has issues with the restriction involved but I don’t think those can be avoided.</p>
<p>Comments would be welcome.</p>
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2554/init_3_timelevels-produces-nans-on-past'>https://bitbucket.org/einsteintoolkit/tickets/issues/2554/init_3_timelevels-produces-nans-on-past</a></p>
</html>