aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/Carpet/src/carpet.cc31
-rw-r--r--Carpet/CarpetLib/src/dh.cc15
-rw-r--r--Carpet/CarpetLib/src/dh.hh14
-rw-r--r--Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F776
-rw-r--r--Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F776
-rw-r--r--Carpet/CarpetLib/src/prolongate_3d_real8_o3.F776
-rw-r--r--CarpetExtra/WaveToyF77/par/convtest.gnuplot8
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par22
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par22
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par22
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par22
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par22
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par22
-rw-r--r--CarpetExtra/WaveToyF77/src/WaveToy.F7711
14 files changed, 144 insertions, 85 deletions
diff --git a/Carpet/Carpet/src/carpet.cc b/Carpet/Carpet/src/carpet.cc
index f39e26126..b0a034ef2 100644
--- a/Carpet/Carpet/src/carpet.cc
+++ b/Carpet/Carpet/src/carpet.cc
@@ -35,7 +35,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Attic/carpet.cc,v 1.18 2001/03/24 22:38:48 eschnett Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Attic/carpet.cc,v 1.19 2001/03/28 18:56:04 eschnett Exp $";
@@ -178,7 +178,17 @@ namespace Carpet {
tt = new th<dim>(*hh, maxreflevelfact);
// Allocate data hierarchy
- dd = new dh<dim>(*hh, lghosts, ughosts);
+ dd = new dh<dim>(*hh, lghosts, ughosts, prolongation_order_space);
+
+ const int prolongation_stencil_size = dd->prolongation_stencil_size();
+ const int min_nghosts
+ = ((prolongation_stencil_size + refinement_factor - 2)
+ / (refinement_factor-1));
+ if (any(min(lghosts,ughosts) < min_nghosts)) {
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "There are not enough ghost zones for the desired spatial prolongation order. With Carpet::prolongation_order_space=%d, you need at least %d ghost zones.",
+ prolongation_order_space, min_nghosts);
+ }
// Allocate space for groups
scdata.resize(CCTK_NumGroups());
@@ -216,7 +226,7 @@ namespace Carpet {
multigrid_factor, vertex_centered,
arrext);
- arrdata[group].tt = new th<dim> (*hh, maxreflevelfact);
+ arrdata[group].tt = new th<dim> (*arrdata[group].hh, maxreflevelfact);
vect<int,dim> alghosts, aughosts;
for (int d=0; d<dim; ++d) {
@@ -224,7 +234,20 @@ namespace Carpet {
aughosts[d] = (*CCTK_GroupGhostsizesI(group))[d];
}
- arrdata[group].dd = new dh<dim>(*hh, alghosts, aughosts);
+ arrdata[group].dd = new dh<dim>(*arrdata[group].hh, alghosts, aughosts,
+ prolongation_order_space);
+
+ const int prolongation_stencil_size
+ = arrdata[group].dd->prolongation_stencil_size();
+ const int min_nghosts
+ = ((prolongation_stencil_size + refinement_factor - 2)
+ / (refinement_factor-1));
+ if (any(min(alghosts,aughosts) < min_nghosts)) {
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "There are not enough ghost zones for the desired spatial prolongation order for the grid function group \"%s\". With Carpet::prolongation_order_space=%d, you need at least %d ghost zones.",
+ CCTK_GroupName(group),
+ prolongation_order_space, min_nghosts);
+ }
arrdata[group].data.resize(CCTK_NumVarsInGroupI(group));
for (int var=0; var<(int)scdata[group].size(); ++var) {
diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc
index 8524b1d5a..ec51bfd65 100644
--- a/Carpet/CarpetLib/src/dh.cc
+++ b/Carpet/CarpetLib/src/dh.cc
@@ -1,12 +1,12 @@
/***************************************************************************
dh.cc - Data Hierarchy
- a grid hierarchy plus ghost zones
+ A grid hierarchy plus ghost zones
-------------------
begin : Sun Jun 11 2000
copyright : (C) 2000 by Erik Schnetter
email : schnetter@astro.psu.edu
- $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.11 2001/03/27 22:26:31 eschnett Exp $
+ $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.12 2001/03/28 18:56:09 eschnett Exp $
***************************************************************************/
@@ -38,10 +38,13 @@ using namespace std;
// Constructors
template<int D>
-dh<D>::dh (gh<D>& h, const ivect& lghosts, const ivect& ughosts)
- : h(h), lghosts(lghosts), ughosts(ughosts)
+dh<D>::dh (gh<D>& h, const ivect& lghosts, const ivect& ughosts,
+ int prolongation_order)
+ : h(h), lghosts(lghosts), ughosts(ughosts),
+ prolongation_order(prolongation_order)
{
assert (all(lghosts>=0 && ughosts>=0));
+ assert (prolongation_order>=0);
CHECKPOINT;
h.add(this);
recompose();
@@ -196,7 +199,9 @@ void dh<D>::recompose () {
// (the prolongation may use the exterior of the
// coarse grid, and must fill all of the boundary of
// the fine grid)
- const ibbox recv = extr.contracted_for(bndf) & bndf;
+ const int pss = prolongation_stencil_size();
+ const ibbox recv = (extr.expand(-pss,-pss).contracted_for(bndf)
+ & bndf);
const ibbox send = recv.expanded_for(extr);
assert (send.is_contained_in(extr));
boxes[rl+1][cc][ml].recv_ref_bnd_coarse[c ].push_back(recv);
diff --git a/Carpet/CarpetLib/src/dh.hh b/Carpet/CarpetLib/src/dh.hh
index 09b185ec5..2267db505 100644
--- a/Carpet/CarpetLib/src/dh.hh
+++ b/Carpet/CarpetLib/src/dh.hh
@@ -1,12 +1,12 @@
/***************************************************************************
dh.hh - Data Hierarchy
- A grid hierarchy plus ghost zones
+ A grid hierarchy plus ghost zones
-------------------
begin : Sun Jun 11 2000
copyright : (C) 2000 by Erik Schnetter
email : schnetter@astro.psu.edu
- $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.5 2001/03/27 22:26:31 eschnett Exp $
+ $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.6 2001/03/28 18:56:09 eschnett Exp $
***************************************************************************/
@@ -101,6 +101,7 @@ public: // should be readonly
// Fields
gh<D> &h; // hierarchy
ivect lghosts, ughosts; // ghost zones
+ int prolongation_order; // order of spatial prolongation operator
rboxes boxes;
rbases bases;
@@ -110,11 +111,18 @@ public: // should be readonly
public:
// Constructors
- dh (gh<D>& h, const ivect& lghosts, const ivect& ughosts);
+ dh (gh<D>& h, const ivect& lghosts, const ivect& ughosts,
+ int prolongation_order);
// Destructors
~dh ();
+ // Helpers
+ int prolongation_stencil_size () const {
+ assert (prolongation_order>=0);
+ return prolongation_order/2;
+ }
+
// Modifiers
void recompose ();
diff --git a/Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F77 b/Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F77
index 5b0f6b930..4f17e67c0 100644
--- a/Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F77
+++ b/Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F77
@@ -1,5 +1,5 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F77,v 1.2 2001/03/26 02:27:47 eschnett Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/prolongate_3d_real8_2tl_o3.F77,v 1.3 2001/03/28 18:56:09 eschnett Exp $
#include "cctk.h"
@@ -62,8 +62,8 @@ c bbox(:,3) is stride
$ .or. mod(regbbox(d,1), regbbox(d,3)).ne.0) then
call CCTK_WARN (0, "Internal error: array origins are not integer multiples of the strides")
end if
- if (regbbox(d,1)-1.lt.srcbbox(d,1)
- $ .or. regbbox(d,2)+1.gt.srcbbox(d,2)
+ if (regbbox(d,1)-regbbox(d,3).lt.srcbbox(d,1)
+ $ .or. regbbox(d,2)+regbbox(d,3).gt.srcbbox(d,2)
$ .or. regbbox(d,1).lt.dstbbox(d,1)
$ .or. regbbox(d,2).gt.dstbbox(d,2)) then
call CCTK_WARN (0, "Internal error: region extent is not contained in array extents")
diff --git a/Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F77 b/Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F77
index 3d9b1506e..7c16e8d35 100644
--- a/Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F77
+++ b/Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F77
@@ -1,5 +1,5 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F77,v 1.2 2001/03/26 02:27:47 eschnett Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/prolongate_3d_real8_3tl_o3.F77,v 1.3 2001/03/28 18:56:09 eschnett Exp $
#include "cctk.h"
@@ -64,8 +64,8 @@ c bbox(:,3) is stride
$ .or. mod(regbbox(d,1), regbbox(d,3)).ne.0) then
call CCTK_WARN (0, "Internal error: array origins are not integer multiples of the strides")
end if
- if (regbbox(d,1)-1.lt.srcbbox(d,1)
- $ .or. regbbox(d,2)+1.gt.srcbbox(d,2)
+ if (regbbox(d,1)-regbbox(d,3).lt.srcbbox(d,1)
+ $ .or. regbbox(d,2)+regbbox(d,3).gt.srcbbox(d,2)
$ .or. regbbox(d,1).lt.dstbbox(d,1)
$ .or. regbbox(d,2).gt.dstbbox(d,2)) then
call CCTK_WARN (0, "Internal error: region extent is not contained in array extents")
diff --git a/Carpet/CarpetLib/src/prolongate_3d_real8_o3.F77 b/Carpet/CarpetLib/src/prolongate_3d_real8_o3.F77
index d6510695c..5ee417885 100644
--- a/Carpet/CarpetLib/src/prolongate_3d_real8_o3.F77
+++ b/Carpet/CarpetLib/src/prolongate_3d_real8_o3.F77
@@ -1,5 +1,5 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/prolongate_3d_real8_o3.F77,v 1.2 2001/03/26 02:27:47 eschnett Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/prolongate_3d_real8_o3.F77,v 1.3 2001/03/28 18:56:09 eschnett Exp $
#include "cctk.h"
@@ -57,8 +57,8 @@ c bbox(:,3) is stride
$ .or. mod(regbbox(d,1), regbbox(d,3)).ne.0) then
call CCTK_WARN (0, "Internal error: array origins are not integer multiples of the strides")
end if
- if (regbbox(d,1)-1.lt.srcbbox(d,1)
- $ .or. regbbox(d,2)+1.gt.srcbbox(d,2)
+ if (regbbox(d,1)-regbbox(d,3).lt.srcbbox(d,1)
+ $ .or. regbbox(d,2)+regbbox(d,3).gt.srcbbox(d,2)
$ .or. regbbox(d,1).lt.dstbbox(d,1)
$ .or. regbbox(d,2).gt.dstbbox(d,2)) then
call CCTK_WARN (0, "Internal error: region extent is not contained in array extents")
diff --git a/CarpetExtra/WaveToyF77/par/convtest.gnuplot b/CarpetExtra/WaveToyF77/par/convtest.gnuplot
index 007ffda6f..acd6d1526 100644
--- a/CarpetExtra/WaveToyF77/par/convtest.gnuplot
+++ b/CarpetExtra/WaveToyF77/par/convtest.gnuplot
@@ -9,17 +9,17 @@ omega=sqrt(kx**2 + ky**2 + kz**2)
# without refinement
# solutions
-p "wavetoyf77_periodic/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "wavetoyf77_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l
+p "wavetoyf77_periodic/phi.zl" u ($8-1):($1==time&&$3==0?$9:0/0) w lp, "wavetoyf77_periodic_coarse/phi.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l
# errors
-p "wavetoyf77_periodic/phi.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.3*$8-9) + omega*(0.15*time))*pi):0/0) w lp, "wavetoyf77_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*$8)-9) + omega*(0.15*time))*pi):0/0) w lp
+p "wavetoyf77_periodic/phi.zl" u ($8-1):($1==time&&$3==0?$9-cos((kz*(0.3*($8-1)-9) + omega*(0.15*time))*pi):0/0) w lp, "wavetoyf77_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*($8-1))-9) + omega*(0.15*time))*pi):0/0) w lp
# with refinement
# solutions
-p "wavetoyf77_periodic_rl2/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "wavetoyf77_periodic_coarse_rl2/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l
+p "wavetoyf77_periodic_rl2/phi.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "wavetoyf77_periodic_coarse_rl2/phi.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l
# errors
-p "wavetoyf77_periodic_rl2/phi.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.15*$8-9) + omega*(0.075*time))*pi):0/0) w lp, "wavetoyf77_periodic_coarse_rl2/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*$8)-9) + omega*(0.075*time))*pi):0/0) w lp
+p "wavetoyf77_periodic_rl2/phi.zl" u ($8-2):($1==time&&$3==0?$9-cos((kz*(0.15*($8-2)-9) + omega*(0.075*time))*pi):0/0) w lp, "wavetoyf77_periodic_coarse_rl2/phi.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*($8-2))-9) + omega*(0.075*time))*pi):0/0) w lp
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par
index e5ff3f880..11ca8fa40 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par,v 1.3 2001/03/16 22:42:31 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic.par,v 1.4 2001/03/28 18:56:09 eschnett Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetLib CarpetSlab IDScalarWave WaveToyF77"
@@ -15,17 +15,19 @@ Cactus::cctk_itlast = 120
Time::dtfac = 0.5
-driver::global_nx = 32
-driver::global_ny = 46
-driver::global_nz = 62
+driver::global_nx = 34
+driver::global_ny = 48
+driver::global_nz = 64
+
+driver::ghost_size = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.5
-grid::ymax = 6.9
-grid::zmax = 9.3
+grid::xmin = -5.1
+grid::ymin = -6.9
+grid::zmin = -9.3
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
IO::outdir = "wavetoyf77_periodic"
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par
index 11ab69ece..87b45a39b 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par,v 1.4 2001/03/17 00:36:14 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse.par,v 1.5 2001/03/28 18:56:09 eschnett Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDScalarWave WaveToyF77"
@@ -15,17 +15,19 @@ Cactus::cctk_itlast = 60
Time::dtfac = 0.5
-driver::global_nx = 17
-driver::global_ny = 24
-driver::global_nz = 32
+driver::global_nx = 19
+driver::global_ny = 26
+driver::global_nz = 34
+
+driver::ghost_size = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.8
-grid::ymax = 7.2
-grid::zmax = 9.6
+grid::xmin = -5.4
+grid::ymin = -7.2
+grid::zmin = -9.6
+grid::xmax = 5.4
+grid::ymax = 7.8
+grid::zmax = 10.2
grid::mode = periodic
IO::outdir = "wavetoyf77_periodic_coarse"
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par
index db3d76f2c..98f33031f 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par,v 1.5 2001/03/24 22:38:49 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl2.par,v 1.6 2001/03/28 18:56:09 eschnett Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDScalarWave WaveToyF77"
@@ -15,21 +15,23 @@ Cactus::cctk_itlast = 120
Time::dtfac = 0.5
-driver::global_nx = 17
-driver::global_ny = 24
-driver::global_nz = 32
+driver::global_nx = 19
+driver::global_ny = 26
+driver::global_nz = 34
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 2
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.8
-grid::ymax = 7.2
-grid::zmax = 9.6
+grid::xmin = -5.4
+grid::ymin = -7.2
+grid::zmin = -9.6
+grid::xmax = 5.4
+grid::ymax = 7.8
+grid::zmax = 10.2
grid::mode = periodic
IO::outdir = "wavetoyf77_periodic_coarse_rl2"
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par
index ea72c8295..d38ff4d12 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par,v 1.6 2001/03/26 02:29:49 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_coarse_rl3.par,v 1.7 2001/03/28 18:56:09 eschnett Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDScalarWave WaveToyF77"
@@ -15,21 +15,23 @@ Cactus::cctk_itlast = 240
Time::dtfac = 0.5
-driver::global_nx = 17
-driver::global_ny = 24
-driver::global_nz = 32
+driver::global_nx = 19
+driver::global_ny = 26
+driver::global_nz = 34
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 3
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.8
-grid::ymax = 7.2
-grid::zmax = 9.6
+grid::xmin = -5.4
+grid::ymin = -7.2
+grid::zmin = -9.6
+grid::xmax = 5.4
+grid::ymax = 7.8
+grid::zmax = 10.2
grid::mode = periodic
IO::outdir = "wavetoyf77_periodic_coarse_rl3"
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par
index b8141e51c..eb4ce80be 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par,v 1.6 2001/03/24 22:38:49 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl2.par,v 1.7 2001/03/28 18:56:09 eschnett Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDScalarWave WaveToyF77"
@@ -15,21 +15,23 @@ Cactus::cctk_itlast = 240
Time::dtfac = 0.5
-driver::global_nx = 32
-driver::global_ny = 46
-driver::global_nz = 62
+driver::global_nx = 34
+driver::global_ny = 48
+driver::global_nz = 64
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 2
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.5
-grid::ymax = 6.9
-grid::zmax = 9.3
+grid::xmin = -5.1
+grid::ymin = -6.9
+grid::zmin = -9.3
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
IO::outdir = "wavetoyf77_periodic_rl2"
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par
index da79cfcbc..01926b4e9 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par,v 1.6 2001/03/26 02:29:49 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_periodic_rl3.par,v 1.7 2001/03/28 18:56:09 eschnett Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDScalarWave WaveToyF77"
@@ -15,21 +15,23 @@ Cactus::cctk_itlast = 480
Time::dtfac = 0.5
-driver::global_nx = 32
-driver::global_ny = 46
-driver::global_nz = 62
+driver::global_nx = 34
+driver::global_ny = 48
+driver::global_nz = 64
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 3
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.5
-grid::ymax = 6.9
-grid::zmax = 9.3
+grid::xmin = -5.1
+grid::ymin = -6.9
+grid::zmin = -9.3
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
IO::outdir = "wavetoyf77_periodic_rl3"
diff --git a/CarpetExtra/WaveToyF77/src/WaveToy.F77 b/CarpetExtra/WaveToyF77/src/WaveToy.F77
index adcdea62a..76d15e183 100644
--- a/CarpetExtra/WaveToyF77/src/WaveToy.F77
+++ b/CarpetExtra/WaveToyF77/src/WaveToy.F77
@@ -77,6 +77,17 @@ c -----------------
c Do the evolution
c ----------------
+ do k = 1, cctk_lsh(3)
+ do j = 1, cctk_lsh(2)
+ do i = 1, cctk_lsh(1)
+ if (phi(i,j,k).gt.1.0d10) then
+ print *,"problem",i,j,k
+ end if
+ phi_n(i,j,k) = 1.0d100
+ end do
+ end do
+ end do
+
do k = kstart, kend
do j = jstart, jend
do i = istart, iend