Hi

2014-04-30 1:15 GMT+09:00 Frank Loeffler <knarf@cct.lsu.edu>:
On Tue, Apr 29, 2014 at 06:40:19PM +0900, Hee Il Kim wrote:
> Yes, I chose the action "terminate" to make the nan mask. But if Con2Prim
> of GRHydro finds NaN first, then the run is terminated before making the
> output of the nan mask.

Hi,

Can you try setting GRHydro::GRHydro_c2p_failed_action = "terminate"?
"abort" is default, and does what you described. "terminate" should
allow the mask to be written.

Frank

 
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. 

Hee Il



#### diff -r NaNChecker.ET NaNChecker.old ####

Only in NaNChecker.ET/doc: .svn
diff -r NaNChecker.ET/interface.ccl NaNChecker.old/interface.ccl
31,36d30
< CCTK_INT FUNCTION                         \
<     GetRefinementLevel                    \
<         (CCTK_POINTER_TO_CONST IN cctkGH)
< USES FUNCTION GetRefinementLevel
<
<
diff -r NaNChecker.ET/param.ccl NaNChecker.old/param.ccl
54,64d53
<
< BOOLEAN ignore_restricted_points "do not check grid points whose values will be restricted away" STEERABLE = ALWAYS
< {
< } "no"
<
< STRING  restriction_mask "grid function to use to decide which points are restricted away, points where the mask is zero are ignored" STEERABLE = ALWAYS
< {
<   "CarpetReduce[:][:]weight" :: "Carpet's reduction mask"
<   "CarpetEvolutionMask[:][:]evolution_mask" :: "takes prolongation stencil into account"
<   ".*[:][:].*" :: "any grid function with points masked out set to zero"
< } "CarpetReduce::weight"
diff -r NaNChecker.ET/schedule.ccl NaNChecker.old/schedule.ccl
8c8
<   schedule NaNChecker_ResetCounter at BASEGRID
---
>   schedule NaNChecker_ResetCounter at INITIAL
20,30c20
<   schedule NaNChecker_NaNCheck_Prepare IN NaNChecker_NaNCheck
<   {
<     LANG:    C
<     OPTIONS: level
<   } "Prepare data structures to check for NaNs"
<
<   schedule GROUP NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POSTSTEP
<   {
<   } "Check for NaNs and count them in NaNChecker::NaNsFound"
<
<   schedule NaNChecker_NaNCheck_Check IN NaNChecker_NaNCheck AFTER NaNChecker_NaNCheck_Prepare
---
>   schedule NaNChecker_NaNCheck at POSTSTEP
34,49d23
<   } "Check for NaNs"
<
<   schedule NaNChecker_NaNCheck_Finish IN NaNChecker_NaNCheck AFTER NaNChecker_NaNCheck_Check
<   {
<     LANG:    C
<     OPTIONS: level
<   } "Count NaNs in NaNChecker::NaNsFound"
<
<   schedule NaNChecker_TakeAction at POSTSTEP after zzz_NaNChecker_NaNCheck
<   {
<     LANG:    C
<     OPTIONS: global loop-level
<   } "Output NaNChecker::NaNmask and take action according to NaNChecker::action_if_found"
<
<   schedule GROUP NaNChecker_NaNCheck as zzz_NaNChecker_NaNCheck at POST_RECOVER_VARIABLES
<   {
52c26
<   schedule NaNChecker_TakeAction at POST_RECOVER_VARIABLES after zzz_NaNChecker_NaNCheck
---
>   schedule NaNChecker_TakeAction at POSTSTEP after NaNChecker_NaNCheck
diff -r NaNChecker.ET/src/make.code.defn NaNChecker.old/src/make.code.defn
5c5
< SRCS = NaNCheck.cc
---
> SRCS = NaNCheck.c
Only in NaNChecker.old/src: NaNCheck.c
Only in NaNChecker.ET/src: NaNCheck.cc
diff -r NaNChecker.ET/src/NaNCheck.h NaNChecker.old/src/NaNCheck.h
16d15
< namespace NaNChecker {
32d30
< } // end namespace NaNChecker
Only in NaNChecker.ET/src: .svn
Only in NaNChecker.ET: .svn
Only in NaNChecker.ET: test