<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"><<a href="mailto:knarf@cct.lsu.edu" target="_blank">knarf@cct.lsu.edu</a>></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>
> Yes, I chose the action "terminate" to make the nan mask. But if Con2Prim<br>
> of GRHydro finds NaN first, then the run is terminated before making the<br>
> output of the nan mask.<br>
<br>
</div>Hi,<br>
<br>
Can you try setting GRHydro::GRHydro_c2p_failed_action = "terminate"?<br>
"abort" is default, and does what you described. "terminate" 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 = "terminate" but it also has no information on the location of NaNs. I found an older NaNChecker works to locate NaNs. I couldn'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>< CCTK_INT FUNCTION \<br>
< GetRefinementLevel \<br>< (CCTK_POINTER_TO_CONST IN cctkGH)<br>< USES FUNCTION GetRefinementLevel<br>< <br>< <br>diff -r NaNChecker.ET/param.ccl NaNChecker.old/param.ccl<br>
54,64d53<br>< <br>< BOOLEAN ignore_restricted_points "do not check grid points whose values will be restricted away" STEERABLE = ALWAYS<br>< {<br>< } "no"<br>< <br>< STRING restriction_mask "grid function to use to decide which points are restricted away, points where the mask is zero are ignored" STEERABLE = ALWAYS<br>
< {<br>< "CarpetReduce[:][:]weight" :: "Carpet's reduction mask"<br>< "CarpetEvolutionMask[:][:]evolution_mask" :: "takes prolongation stencil into account"<br>< ".*[:][:].*" :: "any grid function with points masked out set to zero"<br>
< } "CarpetReduce::weight"<br>diff -r NaNChecker.ET/schedule.ccl NaNChecker.old/schedule.ccl<br>8c8<br>< schedule NaNChecker_ResetCounter at BASEGRID<br>---<br>> schedule NaNChecker_ResetCounter at INITIAL<br>
20,30c20<br>< schedule NaNChecker_NaNCheck_Prepare IN NaNChecker_NaNCheck<br>< {<br>< LANG: C<br>< OPTIONS: level<br>< } "Prepare data structures to check for NaNs"<br>< <br>< schedule GROUP NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POSTSTEP<br>
< {<br>< } "Check for NaNs and count them in NaNChecker::NaNsFound"<br>< <br>< schedule NaNChecker_NaNCheck_Check IN NaNChecker_NaNCheck AFTER NaNChecker_NaNCheck_Prepare<br>---<br>> schedule NaNChecker_NaNCheck at POSTSTEP<br>
34,49d23<br>< } "Check for NaNs"<br>< <br>< schedule NaNChecker_NaNCheck_Finish IN NaNChecker_NaNCheck AFTER NaNChecker_NaNCheck_Check<br>< {<br>< LANG: C<br>< OPTIONS: level<br>
< } "Count NaNs in NaNChecker::NaNsFound"<br>< <br>< schedule NaNChecker_TakeAction at POSTSTEP after zzz_NaNChecker_NaNCheck<br>< {<br>< LANG: C<br>< OPTIONS: global loop-level<br>
< } "Output NaNChecker::NaNmask and take action according to NaNChecker::action_if_found"<br>< <br>< schedule GROUP NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POST_RECOVER_VARIABLES<br>< {<br>
52c26<br>< schedule NaNChecker_TakeAction at POST_RECOVER_VARIABLES after zzz_NaNChecker_NaNCheck<br>---<br>> 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>< SRCS = NaNCheck.cc<br>---<br>> 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>< namespace NaNChecker {<br>32d30<br>< } // 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>