[Users] Debugging patch for SetMask_SphericalSurface

Erik Schnetter schnetter at cct.lsu.edu
Mon Aug 2 13:51:11 CDT 2010


Christian

The enclosed patch may help debug SetMask_SphericalSurface.  It checks
a few consistency conditions.

-erik

-- 
Erik Schnetter <schnetter at cct.lsu.edu>   http://www.cct.lsu.edu/~eschnett/



$ svn diff
Index: param.ccl
===================================================================
--- param.ccl	(revision 107)
+++ param.ccl	(working copy)
@@ -2,7 +2,7 @@

 STRING SetMask_MaskName "Full variable name of the mask to be set"
 {
-  ".+" :: "Any full Cactus variable name, GF of type CCTK_BYTE"
+  ".+" :: "Any full Cactus variable name, GF of type CCTK_INT"
 } "HydroBase::hydro_excision_mask"

 #BOOLEAN SetMask_ResetAll "'yes' (default): Overwrite complete mask,
'no': Only set excision points"
Index: src/SetMask.c
===================================================================
--- src/SetMask.c	(revision 107)
+++ src/SetMask.c	(working copy)
@@ -10,9 +10,18 @@
   DECLARE_CCTK_ARGUMENTS;
   DECLARE_CCTK_PARAMETERS;

-  CCTK_INT *mask = (CCTK_INT*) CCTK_VarDataPtr(cctkGH, 0, SetMask_MaskName);
+  int varindex = CCTK_VarIndex(SetMask_MaskName);
+  if (varindex<0)
+    CCTK_WARN(0, "No such variable");
+  int grouptype = CCTK_GroupTypeFromVarI(varindex);
+  if (grouptype!=CCTK_GF)
+    CCTK_WARN(0, "Wrong group type, must be GF");
+  int vartype = CCTK_VarTypeI(varindex);
+  if (vartype!=CCTK_VARIABLE_INT)
+    CCTK_WARN(0, "Wrong variable type, must be CCTK_INT");
+  CCTK_INT *mask = (CCTK_INT*) CCTK_VarDataPtrI(cctkGH, 0, varindex);
   if (!mask)
-    CCTK_WARN(0, "No such variable, or no storage enabled");
+    CCTK_WARN(0, "No storage enabled");

   for (int smi = 0; smi < 10; smi++)
   {


More information about the Users mailing list