aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/Carpet/param.ccl13
-rw-r--r--Carpet/Carpet/schedule.ccl8
-rw-r--r--Carpet/Carpet/src/Comm.cc36
-rw-r--r--Carpet/Carpet/src/Evolve.cc8
-rw-r--r--Carpet/Carpet/src/Restrict.cc14
-rw-r--r--Carpet/Carpet/src/SetupGH.cc10
-rw-r--r--Carpet/Carpet/src/Storage.cc8
-rw-r--r--Carpet/Carpet/src/carpet_public.h12
-rw-r--r--Carpet/Carpet/src/carpet_public.hh5
-rw-r--r--Carpet/Carpet/src/helpers.cc17
-rw-r--r--Carpet/Carpet/src/variables.cc5
-rw-r--r--Carpet/CarpetLib/param.ccl7
-rw-r--r--Carpet/CarpetLib/src/data.cc4
-rw-r--r--Carpet/CarpetLib/src/dh.cc28
-rw-r--r--Carpet/CarpetLib/src/dh.hh7
15 files changed, 114 insertions, 68 deletions
diff --git a/Carpet/Carpet/param.ccl b/Carpet/Carpet/param.ccl
index ab662af64..43f4be299 100644
--- a/Carpet/Carpet/param.ccl
+++ b/Carpet/Carpet/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn Carpet
-# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.30 2003/06/24 15:18:51 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.31 2003/07/20 21:03:43 schnetter Exp $
shares: Cactus
@@ -37,7 +37,8 @@ CCTK_INT global_nz "Grid size in z direction"
CCTK_INT global_nsize "Grid size in each spatial direction"
{
- -1:* :: "must be nonnegative, or -1 to use the individual parameters"
+ 0:* :: "must be nonnegative"
+ -1 :: "use the per-dimension parameters"
} -1
@@ -59,7 +60,8 @@ CCTK_INT ghost_size_z "Ghost zones in z direction"
CCTK_INT ghost_size "Ghost zones in each spatial direction"
{
- -1:* :: "must be nonnegative, or -1 to use the individual parameters"
+ 0:* :: "must be nonnegative"
+ -1 :: "use the per-dimension parameters"
} -1
@@ -100,6 +102,11 @@ CCTK_INT prolongation_order_time "Order of prolongation operator in time"
2 :: "second order (quadratic)"
} 1
+CCTK_INT buffer_width "Width of the buffer zone inside the fine grid"
+{
+ 0:* :: "Should be the radius of the numerical domain of dependence of the time integrator, minus the number of ghost zones"
+} 0
+
CCTK_STRING base_extents "Extents of base grid components, in grid point units of the finest level"
diff --git a/Carpet/Carpet/schedule.ccl b/Carpet/Carpet/schedule.ccl
index f401492ef..228dced2b 100644
--- a/Carpet/Carpet/schedule.ccl
+++ b/Carpet/Carpet/schedule.ccl
@@ -1,7 +1,13 @@
# Schedule definitions for thorn Carpet
-# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/schedule.ccl,v 1.4 2001/12/14 16:39:05 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/schedule.ccl,v 1.5 2003/07/20 21:03:43 schnetter Exp $
schedule CarpetStartup at STARTUP as Driver_Startup
{
LANG: C
} "Startup routine"
+
+
+
+schedule group PostRestrict
+{
+} "Apply boundary conditions after restricting"
diff --git a/Carpet/Carpet/src/Comm.cc b/Carpet/Carpet/src/Comm.cc
index 72d8f725c..c445bb3e9 100644
--- a/Carpet/Carpet/src/Comm.cc
+++ b/Carpet/Carpet/src/Comm.cc
@@ -10,7 +10,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Comm.cc,v 1.19 2003/07/14 15:45:37 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Comm.cc,v 1.20 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Comm_cc);
}
@@ -29,7 +29,8 @@ namespace Carpet {
const int group = CCTK_GroupIndex(groupname);
assert (group>=0 && group<CCTK_NumGroups());
- Checkpoint ("%*sSyncGroup %s", 2*reflevel, "", groupname);
+ Checkpoint ("%*sSyncGroup %s time=%g", 2*reflevel, "",
+ groupname, cgh->cctk_time);
const int grouptype = CCTK_GroupTypeI(group);
@@ -67,26 +68,27 @@ namespace Carpet {
assert (group<(int)arrdata.size());
for (int var=0; var<(int)arrdata[group].data.size(); ++var) {
if (grouptype == CCTK_GF) {
- if (arrdata[group].do_transfer) {
- if (reflevel>0) {
- // use the current time here (which may be modified by the
- // user)
- const CCTK_REAL time = (cgh->cctk_time - cctk_initial_time) / delta_time;
- if (false) {
+ if (do_prolongate) {
+ if (arrdata[group].do_transfer) {
+ if (reflevel>0) {
+ // use the current time here (which may be modified by the
+ // user)
+ const CCTK_REAL time = (cgh->cctk_time - cctk_initial_time) / delta_time;
+#if 0
const CCTK_REAL time1 = tt->time (tl, reflevel, mglevel);
const CCTK_REAL time2 = (cgh->cctk_time - cctk_initial_time) / delta_time;
assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(cgh->cctk_delta_time))) < 1e-12);
+#endif
+ for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
+ arrdata[group].data[var]->ref_bnd_prolongate
+ (tl, reflevel, c, mglevel, time);
+ }
}
-
- for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
- arrdata[group].data[var]->ref_bnd_prolongate
- (tl, reflevel, c, mglevel, time);
- }
+ } else {
+ Checkpoint ("%*s(no prolongating for group %s)",
+ 2*reflevel, "", groupname);
}
- } else {
- Checkpoint ("%*s(no prolongating for group %s)",
- 2*reflevel, "", groupname);
- }
+ } // if do_prolongate
for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
arrdata[group].data[var]->sync (tl, reflevel, c, mglevel);
}
diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc
index 967b505b5..833121d9e 100644
--- a/Carpet/Carpet/src/Evolve.cc
+++ b/Carpet/Carpet/src/Evolve.cc
@@ -18,7 +18,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.26 2003/07/11 09:27:11 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.27 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Evolve_cc);
}
@@ -166,7 +166,7 @@ namespace Carpet {
CCTK_ScheduleTraverse ("CCTK_EVOL", cgh, CallFunction);
Waypoint ("%*sScheduling POSTSTEP", 2*reflevel, "");
CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction);
-
+
// Checking
PoisonCheck (cgh, currenttimebutnotifonly);
@@ -201,8 +201,8 @@ namespace Carpet {
do_global_mode ? " (global time)" : "");
Restrict (cgh);
- Waypoint ("%*sScheduling POSTRESTRICT", 2*reflevel, "");
- CCTK_ScheduleTraverse ("POSTRESTRICT", cgh, CallFunction);
+ Waypoint ("%*sScheduling PostRestrict", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("PostRestrict", cgh, CallFunction);
// Checking
CalculateChecksums (cgh, currenttime);
diff --git a/Carpet/Carpet/src/Restrict.cc b/Carpet/Carpet/src/Restrict.cc
index 0b62258dc..e392af3ca 100644
--- a/Carpet/Carpet/src/Restrict.cc
+++ b/Carpet/Carpet/src/Restrict.cc
@@ -10,7 +10,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Restrict.cc,v 1.18 2003/07/16 21:46:38 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Restrict.cc,v 1.19 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Restrict_cc);
}
@@ -46,18 +46,6 @@ namespace Carpet {
assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(cgh->cctk_delta_time))) < 1e-12);
}
- if (mglevel > 0) {
-
- for (int c=0; c<hh->components(reflevel); ++c) {
- arrdata[group].data[var]->mg_restrict
- (tl, reflevel, c, mglevel, time);
- }
- for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
- arrdata[group].data[var]->sync (tl, reflevel, c, mglevel);
- }
-
- } // if not finest multigrid level
-
if (reflevel < hh->reflevels()-1) {
for (int c=0; c<hh->components(reflevel); ++c) {
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 42ba5829a..e1fd46355 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -19,7 +19,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.50 2003/07/09 21:59:07 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.51 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_SetupGH_cc);
}
@@ -196,7 +196,8 @@ namespace Carpet {
tt = new th<dim>(hh, 1.0);
// Allocate data hierarchy
- dd = new dh<dim>(*hh, lghosts, ughosts, prolongation_order_space);
+ dd = new dh<dim>(*hh, lghosts, ughosts,
+ prolongation_order_space, buffer_width);
if (max_refinement_levels > 1) {
const int prolongation_stencil_size = dd->prolongation_stencil_size();
@@ -279,7 +280,7 @@ namespace Carpet {
}
arrdata[group].dd
- = new dh<dim>(*arrdata[group].hh, alghosts, aughosts, 0);
+ = new dh<dim>(*arrdata[group].hh, alghosts, aughosts, 0, 0);
// Set refinement structure for scalars and arrays:
@@ -417,6 +418,9 @@ namespace Carpet {
mglevel = -1;
component = -1;
+ // Enable prolongating
+ do_prolongate = true;
+
// Set initial refinement structure
diff --git a/Carpet/Carpet/src/Storage.cc b/Carpet/Carpet/src/Storage.cc
index 600f568af..b950c4029 100644
--- a/Carpet/Carpet/src/Storage.cc
+++ b/Carpet/Carpet/src/Storage.cc
@@ -10,7 +10,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Storage.cc,v 1.24 2003/07/16 21:46:38 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Storage.cc,v 1.25 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Storage_cc);
}
@@ -61,7 +61,7 @@ namespace Carpet {
assert (var>=0);
const int vartype = CCTK_VarTypeI(var);
const char * vartypename = CCTK_VarTypeName(vartype);
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
"(Allocating storage for Cactus group \"%s\".) Note: This group (which has the variable type %s) will be neither prolongated nor restricted.",
groupname, vartypename);
}
@@ -143,8 +143,8 @@ namespace Carpet {
return 0;
}
- // XXX
- CCTK_WARN (1, "Cannot disable storage -- storage management is not yet consistent for FMR");
+ // TODO
+ CCTK_WARN (2, "Cannot disable storage -- storage management is not yet consistent for FMR");
return 1;
const int n0 = CCTK_FirstVarIndexI(group);
diff --git a/Carpet/Carpet/src/carpet_public.h b/Carpet/Carpet/src/carpet_public.h
index 938c7a364..02a8902e3 100644
--- a/Carpet/Carpet/src/carpet_public.h
+++ b/Carpet/Carpet/src/carpet_public.h
@@ -1,4 +1,4 @@
-/* $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.h,v 1.9 2003/05/27 12:01:11 schnetter Exp $ */
+/* $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.h,v 1.10 2003/07/20 21:03:43 schnetter Exp $ */
#ifndef CARPET_PUBLIC_H
#define CARPET_PUBLIC_H
@@ -9,6 +9,11 @@
+/* Tell thorns that the Carpet routines exist */
+#define HAVE_CARPET
+
+
+
#ifdef __cplusplus
namespace Carpet {
extern "C" {
@@ -20,6 +25,11 @@ namespace Carpet {
+ /* Prolongation management */
+ int CarpetEnableProlongating (const int flag);
+
+
+
/* Call a schedule group */
int CallScheduleGroup (cGH * const cgh, const char * const group);
diff --git a/Carpet/Carpet/src/carpet_public.hh b/Carpet/Carpet/src/carpet_public.hh
index 0cee399c4..c7e0aa216 100644
--- a/Carpet/Carpet/src/carpet_public.hh
+++ b/Carpet/Carpet/src/carpet_public.hh
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.32 2003/07/14 15:41:34 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.33 2003/07/20 21:03:43 schnetter Exp $
// It is assumed that the number of components of all arrays is equal
// to the number of components of the grid functions, and that their
@@ -73,6 +73,9 @@ namespace Carpet {
// Is this the time for a global mode call?
extern bool do_global_mode;
+ // Is prolongation enabled?
+ extern bool do_prolongate;
+
// Current times on the refinement levels
extern vector<CCTK_REAL> refleveltimes;
extern CCTK_REAL delta_time;
diff --git a/Carpet/Carpet/src/helpers.cc b/Carpet/Carpet/src/helpers.cc
index c6ef56165..7631b5db7 100644
--- a/Carpet/Carpet/src/helpers.cc
+++ b/Carpet/Carpet/src/helpers.cc
@@ -15,7 +15,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.39 2003/07/09 21:59:08 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.40 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_helpers_cc);
}
@@ -428,6 +428,21 @@ namespace Carpet {
+ // Enable or disable prolongating
+ int CarpetEnableProlongating (const int flag)
+ {
+ assert (flag==0 || flag==1);
+ do_prolongate = flag;
+ if (do_prolongate) {
+ Checkpoint ("Prolongating enabled");
+ } else {
+ Checkpoint ("Prolongating disabled");
+ }
+ return 0;
+ }
+
+
+
// This is a temporary measure to call a schedule group from a level
// mode function.
int CallScheduleGroup (cGH * const cgh, const char * const group)
diff --git a/Carpet/Carpet/src/variables.cc b/Carpet/Carpet/src/variables.cc
index 09037bdd9..da18966bb 100644
--- a/Carpet/Carpet/src/variables.cc
+++ b/Carpet/Carpet/src/variables.cc
@@ -6,7 +6,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.16 2003/06/18 18:28:07 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.17 2003/07/20 21:03:43 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_variables_cc);
}
@@ -55,6 +55,9 @@ namespace Carpet {
// Is this the time for a global mode call?
bool do_global_mode;
+ // Is prolongation enabled?
+ bool do_prolongate;
+
// Current times on the refinement levels
vector<CCTK_REAL> refleveltimes;
CCTK_REAL delta_time;
diff --git a/Carpet/CarpetLib/param.ccl b/Carpet/CarpetLib/param.ccl
index 707da6619..4316c4dd7 100644
--- a/Carpet/CarpetLib/param.ccl
+++ b/Carpet/CarpetLib/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn CarpetLib
-# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/param.ccl,v 1.4 2003/07/16 21:45:58 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/param.ccl,v 1.5 2003/07/20 21:03:43 schnetter Exp $
private:
@@ -14,8 +14,3 @@ BOOLEAN barriers "Insert barriers at strategic places for debugging purposes (sl
BOOLEAN output_bboxes "Output bounding box information to the screen"
{
} "no"
-
-CCTK_INT buffer_width "Width of the buffer zone between the prolongation destination and the restriction source"
-{
- 0:* :: "2 seems to be the minimum for second-order convergence"
-} 2
diff --git a/Carpet/CarpetLib/src/data.cc b/Carpet/CarpetLib/src/data.cc
index 155e220db..9a3c6c010 100644
--- a/Carpet/CarpetLib/src/data.cc
+++ b/Carpet/CarpetLib/src/data.cc
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/data.cc,v 1.26 2003/06/24 14:00:58 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/data.cc,v 1.27 2003/07/20 21:03:43 schnetter Exp $
#include <assert.h>
@@ -206,7 +206,7 @@ void data<T,D>
assert (rank == proc());
T Tdummy;
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
"There is no interpolator available for variable type %s, dimension %d, spatial interpolation order %d, temporal interpolation order %d. The interpolation will not be done.",
typestring(Tdummy), D, order_space, order_time);
}
diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc
index 4c9fd616d..40688562c 100644
--- a/Carpet/CarpetLib/src/dh.cc
+++ b/Carpet/CarpetLib/src/dh.cc
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.39 2003/07/17 15:40:28 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.40 2003/07/20 21:03:43 schnetter Exp $
#include <assert.h>
@@ -18,13 +18,17 @@ using namespace std;
// Constructors
template<int D>
-dh<D>::dh (gh<D>& h, const ivect& lghosts, const ivect& ughosts,
- int prolongation_order_space)
+dh<D>::dh (gh<D>& h,
+ const ivect& lghosts, const ivect& ughosts,
+ const int prolongation_order_space, const int buffer_width)
: h(h),
lghosts(lghosts), ughosts(ughosts),
- prolongation_order_space(prolongation_order_space)
+ prolongation_order_space(prolongation_order_space),
+ buffer_width(buffer_width)
{
assert (all(lghosts>=0 && ughosts>=0));
+ assert (prolongation_order_space>=0);
+ assert (buffer_width>=0);
h.add(this);
CHECKPOINT;
recompose(false);
@@ -218,7 +222,10 @@ void dh<D>::recompose (const int initialise_upto) {
// coarsify boundaries of fine component
for (typename ibset::const_iterator bi=bndsf.begin();
bi!=bndsf.end(); ++bi) {
- const ibbox& bndf = *bi;
+ // TODO
+// const ibbox& bndf = *bi;
+ const ibbox& bndf = ((*bi).expand(buffer_width, buffer_width)
+ & boxes[rl+1][cc][ml].exterior);
// (the prolongation may use the exterior of the
// coarse grid, and must fill all of the boundary of
// the fine grid)
@@ -282,6 +289,7 @@ void dh<D>::recompose (const int initialise_upto) {
boxes[rl ][c ][ml].recv_ref_fine [cc].push_back(recv);
}
#else
+ // TODO
ivect buf[2];
for (int f=0; f<2; ++f) {
for (int d=0; d<D; ++d) {
@@ -289,9 +297,11 @@ void dh<D>::recompose (const int initialise_upto) {
? 0 : buffer_width);
}
}
- const ibbox recv = (intrf.contracted_for(intr)
+ const ibbox recv = (intrf
.expand(-buf[0], -buf[1])
+ .contracted_for(intr)
& intr);
+// const ibbox recv = intrf.contracted_for(intr) & intr;
const ibbox send = recv.expanded_for(intrf);
assert (send.empty() == recv.empty());
if (! send.empty()) {
@@ -452,7 +462,8 @@ void dh<D>::recompose (const int initialise_upto) {
const int this_sz = li->size();
intr -= *li;
const int new_sz = intr.size();
- assert (new_sz + this_sz == old_sz);
+ // TODO
+// assert (new_sz + this_sz == old_sz);
}
}
#if 0
@@ -489,7 +500,8 @@ void dh<D>::recompose (const int initialise_upto) {
const int this_sz = li->size();
bnds -= *li;
const int new_sz = bnds.size();
- assert (new_sz + this_sz == old_sz);
+ // TODO
+// assert (new_sz + this_sz == old_sz);
}
}
}
diff --git a/Carpet/CarpetLib/src/dh.hh b/Carpet/CarpetLib/src/dh.hh
index 98c7c75e3..4a23d5cba 100644
--- a/Carpet/CarpetLib/src/dh.hh
+++ b/Carpet/CarpetLib/src/dh.hh
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.14 2003/05/02 14:23:12 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.15 2003/07/20 21:03:43 schnetter Exp $
#ifndef DH_HH
#define DH_HH
@@ -95,17 +95,18 @@ public: // should be readonly
ivect lghosts, ughosts; // ghost zones
int prolongation_order_space; // order of spatial prolongation operator
+ int buffer_width; // buffer inside refined grids
rboxes boxes;
rbases bases;
- list<ggf<D>*> gfs; // list of all grid functions
+ list<ggf<D>*> gfs; // list of all grid functions
public:
// Constructors
dh (gh<D>& h, const ivect& lghosts, const ivect& ughosts,
- int prolongation_order_space);
+ int prolongation_order_space, int buffer_width);
// Destructors
virtual ~dh ();