diff options
Diffstat (limited to 'CarpetDev/CarpetIOF5/src/poison.cc')
-rw-r--r-- | CarpetDev/CarpetIOF5/src/poison.cc | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/CarpetDev/CarpetIOF5/src/poison.cc b/CarpetDev/CarpetIOF5/src/poison.cc new file mode 100644 index 000000000..6029b55a8 --- /dev/null +++ b/CarpetDev/CarpetIOF5/src/poison.cc @@ -0,0 +1,77 @@ +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +#include <carpet.hh> +#include <loopcontrol.h> + +#include "iof5.hh" + + + +namespace CarpetIOF5 { + + using namespace std; + using namespace Carpet; + + + + extern "C" + void F5_Poison (CCTK_ARGUMENTS) + { + DECLARE_CCTK_PARAMETERS; + + assert (is_global_mode()); + CCTK_VInfo (CCTK_THORNSTRING, + "F5_Poison: iteration=%d", cctkGH->cctk_iteration); + + BEGIN_REFLEVEL_LOOP(cctkGH) { + BEGIN_LOCAL_MAP_LOOP(cctkGH, CCTK_GF) { + BEGIN_LOCAL_COMPONENT_LOOP(cctkGH, CCTK_GF) { + DECLARE_CCTK_ARGUMENTS; + LC_LOOP3(F5_Poison, i,j,k, + 0,0,0, cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) + { + int const ind3d = CCTK_GFINDEX3D(cctkGH, i,j,k); + x[ind3d] = nan; + y[ind3d] = nan; + z[ind3d] = nan; + r[ind3d] = nan; + } LC_ENDLOOP3(F5_Poison); + } END_LOCAL_COMPONENT_LOOP; + } END_LOCAL_MAP_LOOP; + } END_REFLEVEL_LOOP; + } + + + + extern "C" + void F5_Check (CCTK_ARGUMENTS) + { + DECLARE_CCTK_PARAMETERS; + + assert (is_global_mode()); + CCTK_VInfo (CCTK_THORNSTRING, + "F5_Check: iteration=%d", cctkGH->cctk_iteration); + + BEGIN_REFLEVEL_LOOP(cctkGH) { + BEGIN_LOCAL_MAP_LOOP(cctkGH, CCTK_GF) { + BEGIN_LOCAL_COMPONENT_LOOP(cctkGH, CCTK_GF) { + DECLARE_CCTK_ARGUMENTS; + LC_LOOP3(F5_Check, i,j,k, + 0,0,0, cctk_lsh[0],cctk_lsh[1],cctk_lsh[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) + { + int const ind3d = CCTK_GFINDEX3D(cctkGH, i,j,k); + assert (not isnan(x[ind3d])); + assert (not isnan(y[ind3d])); + assert (not isnan(z[ind3d])); + assert (not isnan(r[ind3d])); + } LC_ENDLOOP3(F5_Check); + } END_LOCAL_COMPONENT_LOOP; + } END_LOCAL_MAP_LOOP; + } END_REFLEVEL_LOOP; + } + +} // end namespace CarpetIOF5 |