You are not setting any values on the boundary. Is that intentional?<div><br></div><div>Can you look at the mask everywhere, to ensure that no value is a nan? The max and min intrinsics may not pick up nans.</div><div><br>
</div><div>To get things working for initial data, you may need to set the mask in the preregridinitial bin as well, or you need to ensure that carpet doesn&#39;t use the AMR mechanism at this time, or that another refinement mechanism sets up a sufficiently refined grid structure. (Once the grid structure is too coarse, things go wrong, and calculating derivative may lead to nans, so that level_mask cannot be calculated any more...)</div>
<div><br></div><div>Maybe you need a secondary mechanism while setting level_mask, to ensure there is a minimum amount of refinement present around certain features? I can&#39;t tell, this depends on your physical system.</div>
<div><br></div><div>-erik<br><br><div class="gmail_quote">On Wed, Dec 14, 2011 at 4:07 PM, Hal Finkel <span dir="ltr">&lt;<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Thu, 2011-12-08 at 22:38 +0100, Eloisa Bentivegna wrote:<br>
&gt; Hello,<br>
&gt;<br>
&gt; I&#39;d like to revive a discussion that went over the list a few months ago, regarding Carpet&#39;s AMR capability.<br>
&gt;<br>
&gt; I understand that the refinement has to be triggered through the level_mask grid function. The example that Hal gave is below.<br>
&gt;<br>
&gt; On Aug 30, 2011, at 9:37 PM, Hal Finkel wrote:<br>
&gt;<br>
&gt; &gt; lvlmskSet =<br>
&gt; &gt; {<br>
&gt; &gt;        Name -&gt; &quot;SFBubble_SetLevelMask&quot;,<br>
&gt; &gt;        Schedule -&gt; {&quot;AT preregrid&quot;},<br>
&gt; &gt;        Where -&gt; Interior,<br>
&gt; &gt;        Shorthands -&gt; { adchix, adchiy, adchiz },<br>
&gt; &gt;        Equations -&gt;<br>
&gt; &gt;        {<br>
&gt; &gt;                adchix -&gt; fabs[dx PD[chi,1]],<br>
&gt; &gt;                adchiy -&gt; fabs[dy PD[chi,2]],<br>
&gt; &gt;                adchiz -&gt; fabs[dz PD[chi,3]],<br>
&gt; &gt;<br>
&gt; &gt;                &quot;level_mask&quot; -&gt; (<br>
&gt; &gt;                        Max[<br>
&gt; &gt;                                adchix, adchiy, adchiz<br>
&gt; &gt;                        ]/dchimax<br>
&gt; &gt;                ) /. Max[a_, b_, c_] -&gt; fmax[a, fmax[b, c]]<br>
&gt; &gt;        }<br>
&gt; &gt; };<br>
<br>
</div>FWIW, it looks like some time over the last few months this stopped<br>
working: setting level_mask in this way does not lead to regridding<br>
(even if it is &gt; n in some places), and outputting the result using<br>
CarpetIOScalar has an odd result:<br>
<br>
carpetregrid2::level_mask.maximum.asc starts with:<br>
0 0 -1.79769313486232e+308<br>
1 1 1.30685299729774<br>
2 2 1.31094960089828<br>
...<br>
<br>
carpetregrid2::level_mask.minimum.asc starts with:<br>
0 0 1.79769313486232e+308<br>
1 1 0<br>
2 2 0<br>
...<br>
<br>
carpetregrid2::level_mask.average.asc has:<br>
0 0 -nan<br>
1 1 -nan<br>
2 2 -nan<br>
...<br>
<br>
What is going on here?<br>
<br>
It might also be worth noting, that to get level_mask to work with Kranc<br>
in the above example, I added the following after the call to<br>
CreateKrancThornTT:<br>
<br>
Module[{fp = OpenAppend[dirname &lt;&gt; &quot;/schedule.ccl&quot;]},<br>
        WriteString[fp, &quot;\[NewLine]&quot; &lt;&gt; &quot;STORAGE:<br>
CarpetRegrid2::level_mask&quot;];<br>
        Close[fp]<br>
];<br>
<br>
 -Hal<br>
<div class="im HOEnZb"><br>
&gt;<br>
&gt; My questions are:<br>
&gt;<br>
&gt; 1) Is preregrid the right location to set this function?<br>
&gt; 2) Does this suffice? I assume that once regridding is triggered, the new levels will have to be populated (via interpolation?). Is level_mask treated like all other grid functions?<br>
&gt; 3) In the case above, the loop only goes over interior points, since the mask is set to be the derivative of a grid function. This implies that a sync is necessary before the mask can be used for regridding. Is the user thorn a good place to request this?<br>

&gt;<br>
&gt; Thanks,<br>
&gt; Eloisa<br>
<br>
</div><div class="im HOEnZb">--<br>
Hal Finkel<br>
Postdoctoral Appointee<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Erik Schnetter &lt;<a href="mailto:schnetter@cct.lsu.edu" target="_blank">schnetter@cct.lsu.edu</a>&gt;   <a href="http://www.cct.lsu.edu/~eschnett/" target="_blank">http://www.cct.lsu.edu/~eschnett/</a><br>
<br>
</div>