<div dir="ltr"><div>Dear Sir,</div><div><br></div><div>Thankyou very much for the swift response. I have created a ticket (<span class="gmail-issue-id">Issue #2451) and referenced this thread therein. <br></span></div><div><span class="gmail-issue-id"><br></span></div><div><span class="gmail-issue-id">I will tryout the quick workaround suggested.</span></div><div><span class="gmail-issue-id"><br></span></div><div><span class="gmail-issue-id">Thanking you,</span></div><div><span class="gmail-issue-id"><br></span></div><div><span class="gmail-issue-id">Yours sincerely<br></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 26, 2020 at 7:11 PM Roland Haas &lt;<a href="mailto:rhaas@illinois.edu">rhaas@illinois.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello all,<br>
<br>
a simple reproducer is attached (modified qlm-ks.par test of QLM).<br>
<br>
To make it fail I need more than 1 refinement level active. It fails on<br>
both 1 and 4 MPI ranks (that I have tested on).<br>
<br>
Adding a bit of debug output:<br>
<br>
std::cerr &lt;&lt; &quot;active1: &quot; &lt;&lt; active0 &lt;&lt; &quot; outputslab: &quot; &lt;&lt; outputslab &lt;&lt; std::endl;<br>
<br>
I get:<br>
<br>
active1: bboxset&lt;CCTK_INT4,3&gt;(set&lt;bbox&gt;:{([12,12,12]:[136,136,136]:[4,4,4]/[3,3,3]:[34,34,34]/[32,32,32]/32768)},stride:[4,4,4],offset:[0,0,0]) outputslab: ([0,0,0]:[38,75,0]:[1,1,1]/[0,0,0]:[38,75,0]/[39,76,1]/2964)<br>
cactus_sim: /data/rhaas/postdoc/gr/cactus/ET_trunk/arrangements/Carpet/CarpetLib/src/bboxset2.hh:262: CarpetLib::bboxset2::bboxset&lt;T, D&gt; CarpetLib::bboxset2::bboxset&lt;T, D&gt;::binary_operator(const F&amp;, const CarpetLib::bboxset2::bboxset&lt;T, D&gt;&amp;) const [with F = CarpetLib::bboxset2::bboxset&lt;T, D&gt;::operator&amp;&lt;int, 3&gt;::&lt;lambda(const bboxset1&amp;, const bboxset1&amp;)&gt;; T = int; int D = 3]: Assertion `all(stride == other.stride)&#39; failed.<br>
<br>
which seems to indicate the issue is really that one should not try to<br>
use &quot;active&quot; for anything other than grid functions by adding a:<br>
<br>
if (groupdata.grouptype == CCTK_GF)<br>
<br>
before the block of code that I suggested be commented out (&quot;active&quot;<br>
only makes sense for grid functions, since it refers to [basically] the<br>
non-buffer points due to mesh refinement).<br>
<br>
@Vaishak: please create a ticket with all files and text included, so<br>
that a fix can be properly proposed and reviewed?<br>
<br>
Yours,<br>
Roland<br>
<br>
&gt; Hello Vaishak,<br>
&gt; <br>
&gt; &gt; I am currently facing an issue when attempting to output QuasiLocalMeasures<br>
&gt; &gt; variables in HDF5 (in a BBH simulation similar to the gallery one) files<br>
&gt; &gt; instead of ASCII. I only face this issue when I request any<br>
&gt; &gt; QuasiLocalMeasures variables to be output in IOHDF5.<br>
&gt; &gt; <br>
&gt; &gt; I feel I might have done something silly here. Requesting your help.<br>
&gt; &gt; <br>
&gt; &gt; I am getting the same error message as in 005361<br>
&gt; &gt; &lt;<a href="http://lists.einsteintoolkit.org/pipermail/users/2017-March/005361.html" rel="noreferrer" target="_blank">http://lists.einsteintoolkit.org/pipermail/users/2017-March/005361.html</a>&gt; (<br>
&gt; &gt; <a href="http://lists.einsteintoolkit.org/pipermail/users/2017-March/005361.html" rel="noreferrer" target="_blank">http://lists.einsteintoolkit.org/pipermail/users/2017-March/005361.html</a>). .  <br>
&gt; Hmm, ok. So in your case your output from QLM is:<br>
&gt; <br>
&gt; IOHDF5::out2D_vars                      = &quot;<br>
&gt; [...]<br>
&gt;   QuasiLocalMeasures::qlm_newman_penrose<br>
&gt; [...]<br>
&gt; <br>
&gt; which is declared in interface.ccl as a:<br>
&gt; <br>
&gt; COMPLEX qlm_newman_penrose[num_surfaces] TYPE=array DIM=2 SIZE=SphericalSurface::maxntheta, SphericalSurface::maxnphi DISTRIB=constant TAGS=&#39;Checkpoint=&quot;no&quot;,convergence_power=1&#39;<br>
&gt; <br>
&gt; ie a DISTRIB=constant vector of 2-dimensional grid arrays.<br>
&gt; <br>
&gt; As Erik suggested in the year 2017 to Gwyneth, it may be best to take<br>
&gt; the content of your email and create a ticket at:<br>
&gt; <br>
&gt; <a href="https://bitbucket.org/einsteintoolkit/tickets/issues/new" rel="noreferrer" target="_blank">https://bitbucket.org/einsteintoolkit/tickets/issues/new</a><br>
&gt; <br>
&gt; which lets you upload attachments after the ticket has been created<br>
&gt; through the &quot;More v&quot; menu (next to the &quot;Edit&quot; button).<br>
&gt; <br>
&gt; &gt; I am attaching the parameter file, the backtrace and the out and err files<br>
&gt; &gt; from the run.  <br>
&gt; Thank you! These are very helpful.<br>
&gt; <br>
&gt; My own, unverified guess, is that is that is something connected to<br>
&gt; being a DISTRIB=constant 2D array which, if I remember correctly, are<br>
&gt; implemented by setting up a 3D array where the last dimension is the<br>
&gt; MPI rank number.<br>
&gt; <br>
&gt; Then in CarpetIOHDF5::WriteHDF5&lt;2&gt; in line 1395 bboxsset::operator&amp; is<br>
&gt; called:<br>
&gt; <br>
&gt; const ibset active1 = active0 &amp; outputslab;<br>
&gt; <br>
&gt; where outputslab is an actual 2D set while active0 has the (pseudo) 3D<br>
&gt; shape due to DISTRIB=constant.<br>
&gt; <br>
&gt; At least that would be my initial assumption. The good thing is that<br>
&gt; this should be trivial to test since one only has to request any output.<br>
&gt; <br>
&gt; If you want a quick (possible) workaround, then you can edit <br>
&gt; <br>
&gt; CarpetIOHDF5/src/OutputSlice.cc and in the WriteHDF5 function comment<br>
&gt; out the block of code after &quot;string active&quot; in line 1378ff:<br>
&gt; <br>
&gt; --8&lt;--<br>
&gt;     string active;<br>
&gt; #if 0 // comment out block, leaving active an empty string<br>
&gt;     {<br>
&gt;       // Determine extent of hyperslab that is output<br>
&gt;       ivect lo = gfext.lower();<br>
&gt;       ivect up = gfext.upper();<br>
&gt;       ivect str = gfext.stride();<br>
&gt;       for (int d = 0; d &lt; dim; ++d) {<br>
&gt;         bool isoutdir = false;<br>
&gt;         for (int e = 0; e &lt; outdim; ++e)<br>
&gt;           isoutdir |= d == dirs[e];<br>
&gt;         if (!isoutdir) {<br>
&gt;           lo[d] = org[d];<br>
&gt;           up[d] = org[d];<br>
&gt;         }<br>
&gt;       }<br>
&gt;       const ibbox outputslab(lo, up, str);<br>
&gt;       // Intersect active region with this hyperslab<br>
&gt;       const ibset &amp;active0 = <a href="http://vdd.at" rel="noreferrer" target="_blank">vdd.at</a>(m)-&gt;<a href="http://level_boxes.at" rel="noreferrer" target="_blank">level_boxes.at</a>(ml).at(rl).active;<br>
&gt;       const ibset active1 = active0 &amp; outputslab;<br>
&gt;       // Reduce dimensionality of active region<br>
&gt;       bboxset&lt;int, outdim&gt; active2;<br>
&gt;       for (const ibbox &amp;box0 : active1.iterator()) {<br>
&gt;         const vect&lt;int, outdim&gt; lo = box0.lower()[dirs];<br>
&gt;         const vect&lt;int, outdim&gt; up = box0.upper()[dirs];<br>
&gt;         const vect&lt;int, outdim&gt; str = box0.stride()[dirs];<br>
&gt;         const CarpetLib::bbox&lt;int, outdim&gt; box(lo, up, str);<br>
&gt;         active2 += box;<br>
&gt;       }<br>
&gt;       ostringstream buf;<br>
&gt;       buf &lt;&lt; active2;<br>
&gt;       active = buf.str();<br>
&gt;     }<br>
&gt; #endif<br>
&gt; --8&lt;--<br>
&gt; <br>
&gt; ASCII output is not affected by this since computing of &quot;active&quot; is not<br>
&gt; done there as the &quot;active&quot; region is stored only as an attribute in<br>
&gt; HDF5 files (and ASCII files have no way of storing attributes).<br>
&gt; <br>
&gt; Yours,<br>
&gt; Roland<br>
&gt; <br>
<br>
<br>
-- <br>
My email is as private as my paper mail. I therefore support encrypting<br>
and signing email messages. Get my PGP key from <a href="http://pgp.mit.edu" rel="noreferrer" target="_blank">http://pgp.mit.edu</a> .<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr">Vaishak P<br><br>PhD Scholar,<br>Shyama Prasad Mukherjee Fellow<br>
Inter-University Center for Astronomy and Astrophysics (IUCAA)<br>
Pune, India<div><br></div></div></div></div></div>