aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetReduce
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@cct.lsu.edu>2011-11-09 16:53:20 -0500
committerBarry Wardell <barry.wardell@gmail.com>2011-12-14 19:54:53 +0000
commit6e464ee12e243b73cfdb1d47e693ce84c8dfd553 (patch)
tree40e2d37e21729d239e80d0048ec933c022f14175 /Carpet/CarpetReduce
parent137ab5323ed4fdf28ff07dbccd52e9d27372442e (diff)
CarpetMask: Keep track of the volume that is masked out
Keep track of the volume that is masked out by CarpetMask, and take this volume into account when checking in CarpetReduce that the integral over the simulation domain equals the domain volume.
Diffstat (limited to 'Carpet/CarpetReduce')
-rw-r--r--Carpet/CarpetReduce/interface.ccl4
-rw-r--r--Carpet/CarpetReduce/schedule.ccl11
-rw-r--r--Carpet/CarpetReduce/src/mask_allocate.c3
-rw-r--r--Carpet/CarpetReduce/src/mask_test.c25
-rw-r--r--Carpet/CarpetReduce/test/nonstaggered_excl.par69
-rw-r--r--Carpet/CarpetReduce/test/nonstaggered_excl/weight..asc8
-rw-r--r--Carpet/CarpetReduce/test/nonstaggered_excl/weight.d.asc41
-rw-r--r--Carpet/CarpetReduce/test/nonstaggered_excl/weight.x.asc41
-rw-r--r--Carpet/CarpetReduce/test/nonstaggered_excl/weight.y.asc71
-rw-r--r--Carpet/CarpetReduce/test/nonstaggered_excl/weight.z.asc59
10 files changed, 325 insertions, 7 deletions
diff --git a/Carpet/CarpetReduce/interface.ccl b/Carpet/CarpetReduce/interface.ccl
index fdbf627b3..f75460de5 100644
--- a/Carpet/CarpetReduce/interface.ccl
+++ b/Carpet/CarpetReduce/interface.ccl
@@ -17,6 +17,8 @@ uses include header: typeprops.hh
uses include header: loopcontrol.h
+includes header: bits.h IN CarpetReduce_bits.h
+
CCTK_INT FUNCTION \
@@ -90,3 +92,5 @@ INT iweight TYPE=gf TAGS='prolongation="none" InterpNumTimelevels=1 checkpoint="
REAL weight TYPE=gf TAGS='prolongation="none" InterpNumTimelevels=1 checkpoint="no"' "Weight function"
REAL one TYPE=gf TAGS='prolongation="none" InterpNumTimelevels=1 checkpoint="no"' "Constant one"
+
+CCTK_REAL excised_cells TYPE=scalar TAGS='checkpoint="no"' "Excised (ignored) volume in the simulation domain, in terms of coarse grid cells"
diff --git a/Carpet/CarpetReduce/schedule.ccl b/Carpet/CarpetReduce/schedule.ccl
index cecc8500a..910f7872d 100644
--- a/Carpet/CarpetReduce/schedule.ccl
+++ b/Carpet/CarpetReduce/schedule.ccl
@@ -9,6 +9,7 @@ schedule CarpetReduceStartup at STARTUP
# Should this move to a new thorn MaskBase?
STORAGE: weight
+STORAGE: excised_cells
@@ -50,7 +51,11 @@ SCHEDULE MaskBase_InitMask IN MaskBase_SetupMaskAll AFTER MaskBase_AllocateMask
OPTIONS: global loop-local
} "Initialise the weight function"
-SCHEDULE GROUP SetupIMask IN MaskBase_SetupMaskAll AFTER MaskBase_InitMask
+SCHEDULE GROUP SetupIMaskInternal IN MaskBase_SetupMaskAll AFTER MaskBase_InitMask
+{
+} "Set up the integer weight function (schedule other routines in here)"
+
+SCHEDULE GROUP SetupIMask IN MaskBase_SetupMaskAll AFTER SetupIMaskInternal
{
} "Set up the integer weight function (schedule other routines in here)"
@@ -73,14 +78,14 @@ SCHEDULE MaskBase_TestMask IN MaskBase_SetupMaskAll AFTER SetupMask
# Should this move to CoordBase?
-SCHEDULE CoordBase_SetupMask IN SetupIMask
+SCHEDULE CoordBase_SetupMask IN SetupIMaskInternal
{
LANG: C
OPTIONS: global loop-local
} "Set up the outer boundaries of the weight function"
# Should this move to CarpetMask?
-SCHEDULE CarpetMaskSetup IN SetupIMask
+SCHEDULE CarpetMaskSetup IN SetupIMaskInternal
{
LANG: C
OPTIONS: global loop-singlemap
diff --git a/Carpet/CarpetReduce/src/mask_allocate.c b/Carpet/CarpetReduce/src/mask_allocate.c
index 1219b7b95..c1c28afeb 100644
--- a/Carpet/CarpetReduce/src/mask_allocate.c
+++ b/Carpet/CarpetReduce/src/mask_allocate.c
@@ -17,4 +17,7 @@ MaskBase_AllocateMask (CCTK_ARGUMENTS)
CCTK_EnableGroupStorage (cctkGH, "CarpetReduce::iweight");
CCTK_EnableGroupStorage (cctkGH, "CarpetReduce::one");
+
+ /* Initialise excised cell count */
+ * excised_cells = 0.0;
}
diff --git a/Carpet/CarpetReduce/src/mask_test.c b/Carpet/CarpetReduce/src/mask_test.c
index 82fa4f306..8725291a8 100644
--- a/Carpet/CarpetReduce/src/mask_test.c
+++ b/Carpet/CarpetReduce/src/mask_test.c
@@ -31,7 +31,7 @@ MaskBase_TestMask (CCTK_ARGUMENTS)
assert (weight_var >= 0);
assert (one_var >= 0);
- CCTK_REAL sum_weight;
+ CCTK_REAL sum_weight, all_excised_cells;
{
int const ierr = CCTK_Reduce (cctkGH,
@@ -41,6 +41,16 @@ MaskBase_TestMask (CCTK_ARGUMENTS)
1, one_var);
assert (ierr >= 0);
}
+ {
+ int const ierr = CCTK_ReduceLocalScalar (cctkGH,
+ proc,
+ sum,
+ excised_cells,
+ &all_excised_cells,
+ CCTK_VARIABLE_REAL);
+ assert (ierr >= 0);
+ *excised_cells = all_excised_cells;
+ }
@@ -102,9 +112,14 @@ MaskBase_TestMask (CCTK_ARGUMENTS)
} /* for m */
+ /* Don't count excised regions towards the domain volume */
+ domain_volume -= * excised_cells;
+
if (verbose) {
CCTK_VInfo (CCTK_THORNSTRING,
- "Simulation domain volume: %.17g", (double)domain_volume);
+ "Simulation domain volume: %.17g", (double)domain_volume);
+ CCTK_VInfo (CCTK_THORNSTRING,
+ "Additional excised volume: %.17g", (double)*excised_cells);
}
int const there_is_a_problem =
@@ -113,9 +128,11 @@ MaskBase_TestMask (CCTK_ARGUMENTS)
if (there_is_a_problem) {
if (!verbose) {
CCTK_VInfo (CCTK_THORNSTRING,
- "Simulation domain volume: %.15g", (double)domain_volume);
+ "Simulation domain volume: %.17g", (double)domain_volume);
+ CCTK_VInfo (CCTK_THORNSTRING,
+ "Additional excised volume: %.17g", (double)*excised_cells);
CCTK_VInfo (CCTK_THORNSTRING,
- "Reduction weight sum: %.15g", (double)sum_weight);
+ "Reduction weight sum: %.17g", (double)sum_weight);
}
CCTK_VWarn (CCTK_WARN_ALERT, __LINE__, __FILE__, CCTK_THORNSTRING,
"Simulation domain volume and reduction weight sum differ");
diff --git a/Carpet/CarpetReduce/test/nonstaggered_excl.par b/Carpet/CarpetReduce/test/nonstaggered_excl.par
new file mode 100644
index 000000000..3e96a09a0
--- /dev/null
+++ b/Carpet/CarpetReduce/test/nonstaggered_excl.par
@@ -0,0 +1,69 @@
+ActiveThorns = "IOUtil Boundary CartGrid3D CoordBase SymBase MoL InitBase"
+ActiveThorns = "Carpet CarpetLib CarpetInterp GSL LoopControl CarpetReduce CarpetSlab"
+
+#---Geometry---
+
+CoordBase::domainsize = minmax
+CoordBase::spacing = numcells
+CartGrid3D::type = coordbase
+driver::ghost_size = 3
+Carpet::domain_from_coordbase = yes
+Carpet::convergence_level = 0
+
+CoordBase::ncells_x = 11
+CoordBase::xmin = -1
+CoordBase::xmax = 1
+CoordBase::boundary_size_x_lower = 0
+CoordBase::boundary_size_x_upper = 0
+CoordBase::boundary_staggered_x_lower = True
+CoordBase::boundary_staggered_x_upper = True
+CoordBase::boundary_shiftout_x_lower = 0
+CoordBase::boundary_shiftout_x_upper = 0
+
+CoordBase::ncells_y = 14
+CoordBase::ymin = -1
+CoordBase::ymax = 1
+CoordBase::boundary_size_y_lower = 3
+CoordBase::boundary_size_y_upper = 3
+CoordBase::boundary_staggered_y_lower = False
+CoordBase::boundary_staggered_y_upper = False
+CoordBase::boundary_shiftout_y_lower = 1
+CoordBase::boundary_shiftout_y_upper = 1
+
+CoordBase::ncells_z = 14
+CoordBase::zmin = 0
+CoordBase::zmax = 1
+CoordBase::boundary_size_z_lower = 2
+CoordBase::boundary_size_z_upper = 2
+CoordBase::boundary_staggered_z_lower = False
+CoordBase::boundary_staggered_z_upper = False
+CoordBase::boundary_shiftout_z_lower = 0
+CoordBase::boundary_shiftout_z_upper = 0
+
+#---Evolution---
+
+Cactus::terminate = iteration
+Cactus::cctk_itlast = 2
+
+#---exlude sphere---
+ActiveThorns = "SphericalSurface CarpetMask"
+SphericalSurface::nsurfaces = 1
+SphericalSurface::set_spherical[0] = yes
+SphericalSurface::radius[0] = 0.5
+CarpetMask::excluded_surface[0] = 0 # -1 to ignore
+
+
+#---Output---
+
+ActiveThorns = "CarpetIOASCII CarpetIOBasic"
+IO::out_dir = $parfile
+IO::parfile_write = "no"
+IO::out_fileinfo = "none"
+IOBasic::outInfo_every = 1
+Cactus::cctk_full_warnings = yes
+Carpet::print_timestats_every = 0
+CarpetReduce::verbose = yes
+IOASCII::out1D_every = 1
+IOASCII::out0D_every = 1
+IOASCII::out1D_vars = "CarpetReduce::weight"
+IOASCII::out0D_vars = "CarpetReduce::weight"
diff --git a/Carpet/CarpetReduce/test/nonstaggered_excl/weight..asc b/Carpet/CarpetReduce/test/nonstaggered_excl/weight..asc
new file mode 100644
index 000000000..3901e710d
--- /dev/null
+++ b/Carpet/CarpetReduce/test/nonstaggered_excl/weight..asc
@@ -0,0 +1,8 @@
+# 0D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 5 10 1 0 0 0 0 0
+
+1 0 0 0 0 5 10 1 1 0 0 0 0
+
+2 0 0 0 0 5 10 1 2 0 0 0 0
+
diff --git a/Carpet/CarpetReduce/test/nonstaggered_excl/weight.d.asc b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.d.asc
new file mode 100644
index 000000000..ed836c621
--- /dev/null
+++ b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.d.asc
@@ -0,0 +1,41 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 0 0 0 -0.909090909090909 -1.42857142857143 -0.0714285714285714 0
+0 0 0 0 0 1 1 1 0 -0.727272727272727 -1.28571428571429 0 0
+0 0 0 0 0 2 2 2 0 -0.545454545454545 -1.14285714285714 0.0714285714285714 0
+0 0 0 0 0 3 3 3 0 -0.363636363636364 -1 0.142857142857143 0.5
+0 0 0 0 0 4 4 4 0 -0.181818181818182 -0.857142857142857 0.214285714285714 1
+0 0 0 0 0 5 5 5 0 0 -0.714285714285714 0.285714285714286 1
+0 0 0 0 0 6 6 6 0 0.181818181818182 -0.571428571428571 0.357142857142857 1
+0 0 0 0 0 7 7 7 0 0.363636363636364 -0.428571428571429 0.428571428571429 1
+0 0 0 0 0 8 8 8 0 0.545454545454545 -0.285714285714286 0.5 1
+0 0 0 0 0 9 9 9 0 0.727272727272727 -0.142857142857143 0.571428571428571 1
+0 0 0 0 0 10 10 10 0 0.909090909090909 0 0.642857142857143 1
+
+
+1 0 0 0 0 0 0 0 1 -0.909090909090909 -1.42857142857143 -0.0714285714285714 0
+1 0 0 0 0 1 1 1 1 -0.727272727272727 -1.28571428571429 0 0
+1 0 0 0 0 2 2 2 1 -0.545454545454545 -1.14285714285714 0.0714285714285714 0
+1 0 0 0 0 3 3 3 1 -0.363636363636364 -1 0.142857142857143 0.5
+1 0 0 0 0 4 4 4 1 -0.181818181818182 -0.857142857142857 0.214285714285714 1
+1 0 0 0 0 5 5 5 1 0 -0.714285714285714 0.285714285714286 1
+1 0 0 0 0 6 6 6 1 0.181818181818182 -0.571428571428571 0.357142857142857 1
+1 0 0 0 0 7 7 7 1 0.363636363636364 -0.428571428571429 0.428571428571429 1
+1 0 0 0 0 8 8 8 1 0.545454545454545 -0.285714285714286 0.5 1
+1 0 0 0 0 9 9 9 1 0.727272727272727 -0.142857142857143 0.571428571428571 1
+1 0 0 0 0 10 10 10 1 0.909090909090909 0 0.642857142857143 1
+
+
+2 0 0 0 0 0 0 0 2 -0.909090909090909 -1.42857142857143 -0.0714285714285714 0
+2 0 0 0 0 1 1 1 2 -0.727272727272727 -1.28571428571429 0 0
+2 0 0 0 0 2 2 2 2 -0.545454545454545 -1.14285714285714 0.0714285714285714 0
+2 0 0 0 0 3 3 3 2 -0.363636363636364 -1 0.142857142857143 0.5
+2 0 0 0 0 4 4 4 2 -0.181818181818182 -0.857142857142857 0.214285714285714 1
+2 0 0 0 0 5 5 5 2 0 -0.714285714285714 0.285714285714286 1
+2 0 0 0 0 6 6 6 2 0.181818181818182 -0.571428571428571 0.357142857142857 1
+2 0 0 0 0 7 7 7 2 0.363636363636364 -0.428571428571429 0.428571428571429 1
+2 0 0 0 0 8 8 8 2 0.545454545454545 -0.285714285714286 0.5 1
+2 0 0 0 0 9 9 9 2 0.727272727272727 -0.142857142857143 0.571428571428571 1
+2 0 0 0 0 10 10 10 2 0.909090909090909 0 0.642857142857143 1
+
+
diff --git a/Carpet/CarpetReduce/test/nonstaggered_excl/weight.x.asc b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.x.asc
new file mode 100644
index 000000000..821556042
--- /dev/null
+++ b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.x.asc
@@ -0,0 +1,41 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 10 1 0 -0.909090909090909 0 0 0.5
+0 0 0 0 0 1 10 1 0 -0.727272727272727 0 0 0.5
+0 0 0 0 0 2 10 1 0 -0.545454545454545 0 0 0.5
+0 0 0 0 0 3 10 1 0 -0.363636363636364 0 0 0
+0 0 0 0 0 4 10 1 0 -0.181818181818182 0 0 0
+0 0 0 0 0 5 10 1 0 0 0 0 0
+0 0 0 0 0 6 10 1 0 0.181818181818182 0 0 0
+0 0 0 0 0 7 10 1 0 0.363636363636364 0 0 0
+0 0 0 0 0 8 10 1 0 0.545454545454545 0 0 0.5
+0 0 0 0 0 9 10 1 0 0.727272727272727 0 0 0.5
+0 0 0 0 0 10 10 1 0 0.909090909090909 0 0 0.5
+
+
+1 0 0 0 0 0 10 1 1 -0.909090909090909 0 0 0.5
+1 0 0 0 0 1 10 1 1 -0.727272727272727 0 0 0.5
+1 0 0 0 0 2 10 1 1 -0.545454545454545 0 0 0.5
+1 0 0 0 0 3 10 1 1 -0.363636363636364 0 0 0
+1 0 0 0 0 4 10 1 1 -0.181818181818182 0 0 0
+1 0 0 0 0 5 10 1 1 0 0 0 0
+1 0 0 0 0 6 10 1 1 0.181818181818182 0 0 0
+1 0 0 0 0 7 10 1 1 0.363636363636364 0 0 0
+1 0 0 0 0 8 10 1 1 0.545454545454545 0 0 0.5
+1 0 0 0 0 9 10 1 1 0.727272727272727 0 0 0.5
+1 0 0 0 0 10 10 1 1 0.909090909090909 0 0 0.5
+
+
+2 0 0 0 0 0 10 1 2 -0.909090909090909 0 0 0.5
+2 0 0 0 0 1 10 1 2 -0.727272727272727 0 0 0.5
+2 0 0 0 0 2 10 1 2 -0.545454545454545 0 0 0.5
+2 0 0 0 0 3 10 1 2 -0.363636363636364 0 0 0
+2 0 0 0 0 4 10 1 2 -0.181818181818182 0 0 0
+2 0 0 0 0 5 10 1 2 0 0 0 0
+2 0 0 0 0 6 10 1 2 0.181818181818182 0 0 0
+2 0 0 0 0 7 10 1 2 0.363636363636364 0 0 0
+2 0 0 0 0 8 10 1 2 0.545454545454545 0 0 0.5
+2 0 0 0 0 9 10 1 2 0.727272727272727 0 0 0.5
+2 0 0 0 0 10 10 1 2 0.909090909090909 0 0 0.5
+
+
diff --git a/Carpet/CarpetReduce/test/nonstaggered_excl/weight.y.asc b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.y.asc
new file mode 100644
index 000000000..6260ee906
--- /dev/null
+++ b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.y.asc
@@ -0,0 +1,71 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 5 0 1 0 0 -1.42857142857143 0 0
+0 0 0 0 0 5 1 1 0 0 -1.28571428571429 0 0
+0 0 0 0 0 5 2 1 0 0 -1.14285714285714 0 0
+0 0 0 0 0 5 3 1 0 0 -1 0 0.25
+0 0 0 0 0 5 4 1 0 0 -0.857142857142857 0 0.5
+0 0 0 0 0 5 5 1 0 0 -0.714285714285714 0 0.5
+0 0 0 0 0 5 6 1 0 0 -0.571428571428571 0 0.5
+0 0 0 0 0 5 7 1 0 0 -0.428571428571429 0 0
+0 0 0 0 0 5 8 1 0 0 -0.285714285714286 0 0
+0 0 0 0 0 5 9 1 0 0 -0.142857142857143 0 0
+0 0 0 0 0 5 10 1 0 0 0 0 0
+0 0 0 0 0 5 11 1 0 0 0.142857142857143 0 0
+0 0 0 0 0 5 12 1 0 0 0.285714285714286 0 0
+0 0 0 0 0 5 13 1 0 0 0.428571428571429 0 0
+0 0 0 0 0 5 14 1 0 0 0.571428571428571 0 0.5
+0 0 0 0 0 5 15 1 0 0 0.714285714285714 0 0.5
+0 0 0 0 0 5 16 1 0 0 0.857142857142857 0 0.5
+0 0 0 0 0 5 17 1 0 0 1 0 0.25
+0 0 0 0 0 5 18 1 0 0 1.14285714285714 0 0
+0 0 0 0 0 5 19 1 0 0 1.28571428571429 0 0
+0 0 0 0 0 5 20 1 0 0 1.42857142857143 0 0
+
+
+1 0 0 0 0 5 0 1 1 0 -1.42857142857143 0 0
+1 0 0 0 0 5 1 1 1 0 -1.28571428571429 0 0
+1 0 0 0 0 5 2 1 1 0 -1.14285714285714 0 0
+1 0 0 0 0 5 3 1 1 0 -1 0 0.25
+1 0 0 0 0 5 4 1 1 0 -0.857142857142857 0 0.5
+1 0 0 0 0 5 5 1 1 0 -0.714285714285714 0 0.5
+1 0 0 0 0 5 6 1 1 0 -0.571428571428571 0 0.5
+1 0 0 0 0 5 7 1 1 0 -0.428571428571429 0 0
+1 0 0 0 0 5 8 1 1 0 -0.285714285714286 0 0
+1 0 0 0 0 5 9 1 1 0 -0.142857142857143 0 0
+1 0 0 0 0 5 10 1 1 0 0 0 0
+1 0 0 0 0 5 11 1 1 0 0.142857142857143 0 0
+1 0 0 0 0 5 12 1 1 0 0.285714285714286 0 0
+1 0 0 0 0 5 13 1 1 0 0.428571428571429 0 0
+1 0 0 0 0 5 14 1 1 0 0.571428571428571 0 0.5
+1 0 0 0 0 5 15 1 1 0 0.714285714285714 0 0.5
+1 0 0 0 0 5 16 1 1 0 0.857142857142857 0 0.5
+1 0 0 0 0 5 17 1 1 0 1 0 0.25
+1 0 0 0 0 5 18 1 1 0 1.14285714285714 0 0
+1 0 0 0 0 5 19 1 1 0 1.28571428571429 0 0
+1 0 0 0 0 5 20 1 1 0 1.42857142857143 0 0
+
+
+2 0 0 0 0 5 0 1 2 0 -1.42857142857143 0 0
+2 0 0 0 0 5 1 1 2 0 -1.28571428571429 0 0
+2 0 0 0 0 5 2 1 2 0 -1.14285714285714 0 0
+2 0 0 0 0 5 3 1 2 0 -1 0 0.25
+2 0 0 0 0 5 4 1 2 0 -0.857142857142857 0 0.5
+2 0 0 0 0 5 5 1 2 0 -0.714285714285714 0 0.5
+2 0 0 0 0 5 6 1 2 0 -0.571428571428571 0 0.5
+2 0 0 0 0 5 7 1 2 0 -0.428571428571429 0 0
+2 0 0 0 0 5 8 1 2 0 -0.285714285714286 0 0
+2 0 0 0 0 5 9 1 2 0 -0.142857142857143 0 0
+2 0 0 0 0 5 10 1 2 0 0 0 0
+2 0 0 0 0 5 11 1 2 0 0.142857142857143 0 0
+2 0 0 0 0 5 12 1 2 0 0.285714285714286 0 0
+2 0 0 0 0 5 13 1 2 0 0.428571428571429 0 0
+2 0 0 0 0 5 14 1 2 0 0.571428571428571 0 0.5
+2 0 0 0 0 5 15 1 2 0 0.714285714285714 0 0.5
+2 0 0 0 0 5 16 1 2 0 0.857142857142857 0 0.5
+2 0 0 0 0 5 17 1 2 0 1 0 0.25
+2 0 0 0 0 5 18 1 2 0 1.14285714285714 0 0
+2 0 0 0 0 5 19 1 2 0 1.28571428571429 0 0
+2 0 0 0 0 5 20 1 2 0 1.42857142857143 0 0
+
+
diff --git a/Carpet/CarpetReduce/test/nonstaggered_excl/weight.z.asc b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.z.asc
new file mode 100644
index 000000000..af1ff88b8
--- /dev/null
+++ b/Carpet/CarpetReduce/test/nonstaggered_excl/weight.z.asc
@@ -0,0 +1,59 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 5 10 0 0 0 0 -0.0714285714285714 0
+0 0 0 0 0 5 10 1 0 0 0 0 0
+0 0 0 0 0 5 10 2 0 0 0 0.0714285714285714 0
+0 0 0 0 0 5 10 3 0 0 0 0.142857142857143 0
+0 0 0 0 0 5 10 4 0 0 0 0.214285714285714 0
+0 0 0 0 0 5 10 5 0 0 0 0.285714285714286 0
+0 0 0 0 0 5 10 6 0 0 0 0.357142857142857 0
+0 0 0 0 0 5 10 7 0 0 0 0.428571428571429 0
+0 0 0 0 0 5 10 8 0 0 0 0.5 0
+0 0 0 0 0 5 10 9 0 0 0 0.571428571428571 1
+0 0 0 0 0 5 10 10 0 0 0 0.642857142857143 1
+0 0 0 0 0 5 10 11 0 0 0 0.714285714285714 1
+0 0 0 0 0 5 10 12 0 0 0 0.785714285714286 1
+0 0 0 0 0 5 10 13 0 0 0 0.857142857142857 1
+0 0 0 0 0 5 10 14 0 0 0 0.928571428571429 1
+0 0 0 0 0 5 10 15 0 0 0 1 0.5
+0 0 0 0 0 5 10 16 0 0 0 1.07142857142857 0
+
+
+1 0 0 0 0 5 10 0 1 0 0 -0.0714285714285714 0
+1 0 0 0 0 5 10 1 1 0 0 0 0
+1 0 0 0 0 5 10 2 1 0 0 0.0714285714285714 0
+1 0 0 0 0 5 10 3 1 0 0 0.142857142857143 0
+1 0 0 0 0 5 10 4 1 0 0 0.214285714285714 0
+1 0 0 0 0 5 10 5 1 0 0 0.285714285714286 0
+1 0 0 0 0 5 10 6 1 0 0 0.357142857142857 0
+1 0 0 0 0 5 10 7 1 0 0 0.428571428571429 0
+1 0 0 0 0 5 10 8 1 0 0 0.5 0
+1 0 0 0 0 5 10 9 1 0 0 0.571428571428571 1
+1 0 0 0 0 5 10 10 1 0 0 0.642857142857143 1
+1 0 0 0 0 5 10 11 1 0 0 0.714285714285714 1
+1 0 0 0 0 5 10 12 1 0 0 0.785714285714286 1
+1 0 0 0 0 5 10 13 1 0 0 0.857142857142857 1
+1 0 0 0 0 5 10 14 1 0 0 0.928571428571429 1
+1 0 0 0 0 5 10 15 1 0 0 1 0.5
+1 0 0 0 0 5 10 16 1 0 0 1.07142857142857 0
+
+
+2 0 0 0 0 5 10 0 2 0 0 -0.0714285714285714 0
+2 0 0 0 0 5 10 1 2 0 0 0 0
+2 0 0 0 0 5 10 2 2 0 0 0.0714285714285714 0
+2 0 0 0 0 5 10 3 2 0 0 0.142857142857143 0
+2 0 0 0 0 5 10 4 2 0 0 0.214285714285714 0
+2 0 0 0 0 5 10 5 2 0 0 0.285714285714286 0
+2 0 0 0 0 5 10 6 2 0 0 0.357142857142857 0
+2 0 0 0 0 5 10 7 2 0 0 0.428571428571429 0
+2 0 0 0 0 5 10 8 2 0 0 0.5 0
+2 0 0 0 0 5 10 9 2 0 0 0.571428571428571 1
+2 0 0 0 0 5 10 10 2 0 0 0.642857142857143 1
+2 0 0 0 0 5 10 11 2 0 0 0.714285714285714 1
+2 0 0 0 0 5 10 12 2 0 0 0.785714285714286 1
+2 0 0 0 0 5 10 13 2 0 0 0.857142857142857 1
+2 0 0 0 0 5 10 14 2 0 0 0.928571428571429 1
+2 0 0 0 0 5 10 15 2 0 0 1 0.5
+2 0 0 0 0 5 10 16 2 0 0 1.07142857142857 0
+
+