<div dir="ltr">Hello,<div><br></div><div>suppose (for clarity) that I want to write a thorn that computes the constraint violations</div><div>as grid functions. Since this is a diagnostic, I don&#39;t need to compute it at every iteration, </div><div>so I will add a parameter &quot;compute every&quot; and I will schedule the computations in </div><div>CCTK_ANALYSIS. Then, I will be careful and make sure that compute_every is a </div><div>multiple of when all the refinement levels are synced up.</div><div><br></div><div>How are boundary conditions handled in this case?</div><div><br></div><div>I can call Boundary_SelectGroupForBC every &quot;compute_every&quot; and schedule the</div><div>corresponding functions in the scheduler. But, do I need to (1) allocate multiple timelevels</div><div>for my grid functions, (2) do anything about filling previous timelevels?</div><div><br></div><div>I am looking at WeylScal4 as an example. The thorn has parameters &quot;compute_every&quot;,</div><div>the grid functions have 3 time levels, and Boundary_SelectGroupForBC is called</div><div>every &quot;compute_every&quot;, but nothing is done to fill the previous timelevels. How does this</div><div>work?</div><div><br></div><div>Assuming that the boundary conditions are &#39;flat&#39;, is there any way to just work with one</div><div>timelevel?</div><div><br></div><div>Thanks,</div><div>Gabriele</div><div><br></div><div><br></div><div></div></div>