<div dir="ltr">Zach<div><br></div><div>Instead of describing a complex schedule in a schedule.ccl file, you can write a C++ code that calls the respective schedule items. In this C++ code, you can freely switch between global/local mode, iterate over refinement levels and components, iterate over variables, etc. This may be easier and more efficient.</div><div><br></div><div>-erik</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 19, 2015 at 12:16 PM, Zach Etienne <span dir="ltr"><<a href="mailto:zachetie@gmail.com" target="_blank">zachetie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><div><br></div><div>Back when I was at Illinois, I wrote a decent volume integration thorn, which was nicely extensible, but required a very messy schedule.ccl to perform all the ~40 integrations we used, with basically no options in [].par files to modify or reduce the list of volume integrals (because it would have made the schedule.ccl file *even* messier).</div><div><br></div><div>I am now trying to write a new version, which I would like to contribute, open-sourced, to the ET. In this version, the schedule.ccl file is very simple, and by simply specifying desired volume integrals in the [].par file, the scheduling of these volume integrals is *supposed* to be done automatically. Easier said than done.</div><div><br></div><div>Here's the output from the scheduling when the code is run:</div><div><br></div><div> while (VolumeIntegrals::IntegralCounter)</div><div> GROUP VolumeIntegralGroup: Evaluate all volume integrals</div><div> GROUP VolumeIntegrandGroup: Evaluate all volume integrands</div><div> VolumeIntegrals::ComputeIntegrand: [local] Compute Integrand</div><div> GROUP VolumeIntegralSumGroup: Evaluate all volume integral sums</div><div> VolumeIntegrals::DoSum: [global] Do Sum</div><div> VolumeIntegrals::DecrementIntegralCounter: Decrement IntegralCounter variable</div><div> end while</div></div><div><br></div><div>Contrary to what is indicated above, the code in the loop actually evaluates only the function in the [local] context, ignoring my [global] requests, and giving a segfault (see full output from this loop below my sig). Is there any way I can make this work, or am I doomed to repeat the messy schedule.ccl of the past?</div><div><br clear="all"><div><div><div dir="ltr"><div>-Zach</div><div><br></div>* * *<br>Zachariah Etienne<br>Assistant Professor of Mathematics<div>West Virginia University<br></div><div><br></div><div><div>INFO (Carpet): [ml=0][rl=3][m=0][c=0,lc=0][tl=0] Local mode call at CCTK_ANALYSIS to VolumeIntegrals::InitializeIntegralCounter</div><div>INFO (Carpet): [ml=0][rl=3][m=0][c=0,lc=0][tl=0] Leaving local mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][tl=0] Leaving singlemap mode</div><div>INFO (Carpet): [ml=0][rl=3][tl=0] Entering singlemap mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][tl=0] Entering local mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][c=0,lc=0][tl=0] Local mode call at VolumeIntegrandGroup to VolumeIntegrals::ComputeIntegrand</div><div>INFO (Carpet): [ml=0][rl=3][m=0][c=0,lc=0][tl=0] Leaving local mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][tl=0] Leaving singlemap mode</div><div>INFO (Carpet): [ml=0][rl=3][tl=0] Leaving level mode</div><div>INFO (Carpet): [ml=0][tl=0] Global mode call at VolumeIntegralSumGroup to VolumeIntegrals::DoSum</div><div>INFO (Carpet): [ml=0][tl=0] Entering level mode</div><div>INFO (Carpet): [ml=0][rl=0][tl=0] Entering singlemap mode</div><div>INFO (Carpet): [ml=0][rl=0][m=0][tl=0] Entering local mode</div><div>INFO (Carpet): [ml=0][rl=0][m=0][c=0,lc=0][tl=0] Leaving local mode</div><div>INFO (Carpet): [ml=0][rl=0][m=0][tl=0] Leaving singlemap mode</div><div>INFO (Carpet): [ml=0][rl=0][tl=0] Leaving level mode</div><div>INFO (Carpet): [ml=0][tl=0] Entering level mode</div><div>INFO (Carpet): [ml=0][rl=1][tl=0] Entering singlemap mode</div><div>INFO (Carpet): [ml=0][rl=1][m=0][tl=0] Entering local mode</div><div>INFO (Carpet): [ml=0][rl=1][m=0][c=0,lc=0][tl=0] Leaving local mode</div><div>INFO (Carpet): [ml=0][rl=1][m=0][tl=0] Leaving singlemap mode</div><div>INFO (Carpet): [ml=0][rl=1][tl=0] Leaving level mode</div><div>INFO (Carpet): [ml=0][tl=0] Entering level mode</div><div>INFO (Carpet): [ml=0][rl=2][tl=0] Entering singlemap mode</div><div>INFO (Carpet): [ml=0][rl=2][m=0][tl=0] Entering local mode</div><div>INFO (Carpet): [ml=0][rl=2][m=0][c=0,lc=0][tl=0] Leaving local mode</div><div>INFO (Carpet): [ml=0][rl=2][m=0][tl=0] Leaving singlemap mode</div><div>INFO (Carpet): [ml=0][rl=2][tl=0] Leaving level mode</div><div>INFO (Carpet): [ml=0][tl=0] Entering level mode</div><div>INFO (Carpet): [ml=0][rl=3][tl=0] Entering singlemap mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][tl=0] Entering local mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][c=0,lc=0][tl=0] Leaving local mode</div><div>INFO (Carpet): [ml=0][rl=3][m=0][tl=0] Leaving singlemap mode</div><div>INFO (Carpet): [ml=0][rl=3][tl=0] Leaving level mode</div><div>APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)</div></div><div><br></div><div><br></div></div></div></div>
</div></div>
<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@einsteintoolkit.org">Users@einsteintoolkit.org</a><br>
<a href="http://lists.einsteintoolkit.org/mailman/listinfo/users" target="_blank">http://lists.einsteintoolkit.org/mailman/listinfo/users</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Erik Schnetter <<a href="mailto:schnetter@cct.lsu.edu" target="_blank">schnetter@cct.lsu.edu</a>><br><a href="http://www.perimeterinstitute.ca/personal/eschnetter/" target="_blank">http://www.perimeterinstitute.ca/personal/eschnetter/</a></div>
</div>