<div dir="ltr">Hi<br><div><div class="gmail_extra"><br><div class="gmail_quote">2014-04-30 1:15 GMT+09:00 Frank Loeffler <span dir="ltr">&lt;<a href="mailto:knarf@cct.lsu.edu" target="_blank">knarf@cct.lsu.edu</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="">On Tue, Apr 29, 2014 at 06:40:19PM +0900, Hee Il Kim wrote:<br>
&gt; Yes, I chose the action &quot;terminate&quot; to make the nan mask. But if Con2Prim<br>
&gt; of GRHydro finds NaN first, then the run is terminated before making the<br>
&gt; output of the nan mask.<br>
<br>
</div>Hi,<br>
<br>
Can you try setting GRHydro::GRHydro_c2p_failed_action = &quot;terminate&quot;?<br>
&quot;abort&quot; is default, and does what you described. &quot;terminate&quot; should<br>
allow the mask to be written.<br>
<span class=""><font color="#888888"><br>
Frank<br>
<br></font></span></blockquote><div> <br>The output could be made by GRHydro::GRHydro_c2p_failed_action = &quot;terminate&quot; but it also has no information on the location of NaNs. I found an older NaNChecker works to locate NaNs. I couldn&#39;t find any version info, so I attached below a diff file.  <br>
<br></div><div>Hee Il<br><br><br><br>#### diff -r NaNChecker.ET NaNChecker.old ####<br></div><div><br>Only in NaNChecker.ET/doc: .svn<br>diff -r NaNChecker.ET/interface.ccl NaNChecker.old/interface.ccl<br>31,36d30<br>&lt; CCTK_INT FUNCTION                         \<br>
&lt;     GetRefinementLevel                    \<br>&lt;         (CCTK_POINTER_TO_CONST IN cctkGH)<br>&lt; USES FUNCTION GetRefinementLevel<br>&lt; <br>&lt; <br>diff -r NaNChecker.ET/param.ccl NaNChecker.old/param.ccl<br>
54,64d53<br>&lt; <br>&lt; BOOLEAN ignore_restricted_points &quot;do not check grid points whose values will be restricted away&quot; STEERABLE = ALWAYS<br>&lt; {<br>&lt; } &quot;no&quot;<br>&lt; <br>&lt; STRING  restriction_mask &quot;grid function to use to decide which points are restricted away, points where the mask is zero are ignored&quot; STEERABLE = ALWAYS<br>
&lt; {<br>&lt;   &quot;CarpetReduce[:][:]weight&quot; :: &quot;Carpet&#39;s reduction mask&quot;<br>&lt;   &quot;CarpetEvolutionMask[:][:]evolution_mask&quot; :: &quot;takes prolongation stencil into account&quot;<br>&lt;   &quot;.*[:][:].*&quot; :: &quot;any grid function with points masked out set to zero&quot;<br>
&lt; } &quot;CarpetReduce::weight&quot;<br>diff -r NaNChecker.ET/schedule.ccl NaNChecker.old/schedule.ccl<br>8c8<br>&lt;   schedule NaNChecker_ResetCounter at BASEGRID<br>---<br>&gt;   schedule NaNChecker_ResetCounter at INITIAL<br>
20,30c20<br>&lt;   schedule NaNChecker_NaNCheck_Prepare IN NaNChecker_NaNCheck<br>&lt;   {<br>&lt;     LANG:    C<br>&lt;     OPTIONS: level<br>&lt;   } &quot;Prepare data structures to check for NaNs&quot;<br>&lt; <br>&lt;   schedule GROUP NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POSTSTEP<br>
&lt;   {<br>&lt;   } &quot;Check for NaNs and count them in NaNChecker::NaNsFound&quot;<br>&lt; <br>&lt;   schedule NaNChecker_NaNCheck_Check IN NaNChecker_NaNCheck AFTER NaNChecker_NaNCheck_Prepare<br>---<br>&gt;   schedule NaNChecker_NaNCheck at POSTSTEP<br>
34,49d23<br>&lt;   } &quot;Check for NaNs&quot;<br>&lt; <br>&lt;   schedule NaNChecker_NaNCheck_Finish IN NaNChecker_NaNCheck AFTER NaNChecker_NaNCheck_Check<br>&lt;   {<br>&lt;     LANG:    C<br>&lt;     OPTIONS: level<br>
&lt;   } &quot;Count NaNs in NaNChecker::NaNsFound&quot;<br>&lt; <br>&lt;   schedule NaNChecker_TakeAction at POSTSTEP after zzz_NaNChecker_NaNCheck<br>&lt;   {<br>&lt;     LANG:    C<br>&lt;     OPTIONS: global loop-level<br>
&lt;   } &quot;Output NaNChecker::NaNmask and take action according to NaNChecker::action_if_found&quot;<br>&lt; <br>&lt;   schedule GROUP NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POST_RECOVER_VARIABLES<br>&lt;   {<br>
52c26<br>&lt;   schedule NaNChecker_TakeAction at POST_RECOVER_VARIABLES after zzz_NaNChecker_NaNCheck<br>---<br>&gt;   schedule NaNChecker_TakeAction at POSTSTEP after NaNChecker_NaNCheck<br>diff -r NaNChecker.ET/src/make.code.defn NaNChecker.old/src/make.code.defn<br>
5c5<br>&lt; SRCS = NaNCheck.cc<br>---<br>&gt; SRCS = NaNCheck.c<br>Only in NaNChecker.old/src: NaNCheck.c<br>Only in NaNChecker.ET/src: NaNCheck.cc<br>diff -r NaNChecker.ET/src/NaNCheck.h NaNChecker.old/src/NaNCheck.h<br>
16d15<br>&lt; namespace NaNChecker {<br>32d30<br>&lt; } // end namespace NaNChecker<br>Only in NaNChecker.ET/src: .svn<br>Only in NaNChecker.ET: .svn<br>Only in NaNChecker.ET: test<br><br></div><div><br></div></div><br></div>
</div></div>