diff options
Diffstat (limited to 'Carpet/Carpet/src/UnusedMask.cc')
-rw-r--r-- | Carpet/Carpet/src/UnusedMask.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Carpet/Carpet/src/UnusedMask.cc b/Carpet/Carpet/src/UnusedMask.cc new file mode 100644 index 000000000..6cf71caea --- /dev/null +++ b/Carpet/Carpet/src/UnusedMask.cc @@ -0,0 +1,46 @@ +#include <cctk.h> +#include <cctk_Arguments.h> +#include <cctk_Parameters.h> + +#include <carpet.hh> + +#include <loopcontrol.h> + +namespace Carpet { + + using namespace std; + + void + CarpetUnusedMask (CCTK_ARGUMENTS) + { + DECLARE_CCTK_ARGUMENTS; + DECLARE_CCTK_PARAMETERS; + + dh const & dd = *vdd.AT(map); + ibbox const & ext = dd.light_boxes.AT(mglevel).AT(reflevel).AT(component).exterior; + ibset const & unused_region = dd.local_boxes.AT(mglevel).AT(reflevel).AT(local_component).unused_region; + + assert(dim == 3); + // Zero out + LOOP_OVER_BSET (cctkGH, ext, box, imin, imax) { +#pragma omp parallel + LC_LOOP3(unused_mask_zero, i, j, k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) { + CCTK_INT i3D = CCTK_GFINDEX3D(cctkGH, i, j, k); + carpet_unusedpoints_mask[i3D] = 0; + } LC_ENDLOOP3(unused_mask_zero); + } END_LOOP_OVER_BSET; + + // Set it where unused + LOOP_OVER_BSET (cctkGH, unused_region, box, imin, imax) { +#pragma omp parallel + LC_LOOP3(unused_mask_set, i, j, k, imin[0],imin[1],imin[2], imax[0],imax[1],imax[2], + cctk_lsh[0],cctk_lsh[1],cctk_lsh[2]) { + CCTK_INT i3D = CCTK_GFINDEX3D(cctkGH, i, j, k); + carpet_unusedpoints_mask[i3D] = 1; + } LC_ENDLOOP3(unused_mask_set); + } END_LOOP_OVER_BSET; + + } // CarpetUnusedMask + +} |