diff options
author | schnetter <> | 2004-08-07 17:47:00 +0000 |
---|---|---|
committer | schnetter <> | 2004-08-07 17:47:00 +0000 |
commit | 57797b68e4ff8e77228ea3238d7875d5d467b1a5 (patch) | |
tree | 9e60d5b16486d46e293e2d512e9bd7ecbce0b087 | |
parent | bd98f737a458649127b4ef25252fdcefb22926ad (diff) |
Re-introduce the parameter Carpet::prolongate_initial_data with the
Re-introduce the parameter Carpet::prolongate_initial_data with the
default "yes". If set to "no", newly created refinement levels are
not initialised through prolongation, which saves quite some time.
Remove the unused optional argument checkpoing_recovery from
Carpet::Regrid.
darcs-hash:20040807174712-07bb3-78054ad80959a2e26238531d9ea54eaac161ffce.gz
-rw-r--r-- | Carpet/Carpet/param.ccl | 9 | ||||
-rw-r--r-- | Carpet/Carpet/src/Evolve.cc | 6 | ||||
-rw-r--r-- | Carpet/Carpet/src/Initialise.cc | 4 | ||||
-rw-r--r-- | Carpet/Carpet/src/Recompose.cc | 11 | ||||
-rw-r--r-- | Carpet/Carpet/src/SetupGH.cc | 6 | ||||
-rw-r--r-- | Carpet/Carpet/src/carpet.hh | 4 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/dh.cc | 18 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/dh.hh | 4 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/gf.cc | 12 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/ggf.cc | 127 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/ggf.hh | 8 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/gh.cc | 7 | ||||
-rw-r--r-- | Carpet/CarpetLib/src/gh.hh | 5 |
13 files changed, 116 insertions, 105 deletions
diff --git a/Carpet/Carpet/param.ccl b/Carpet/Carpet/param.ccl index c216f8519..3cd8c1a54 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.39 2004/06/26 12:56:01 schnetter Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.40 2004/08/07 19:47:12 schnetter Exp $ shares: Cactus @@ -283,12 +283,9 @@ BOOLEAN init_each_timelevel "Call initial data routines once for each timelevel" { } "no" -#BOOLEAN prolongate_initial_data "Prolongate the refined regions during initial data generation" STEERABLE=always -#{ -#} "no" -BOOLEAN prolongate_initial_data "unused" STEERABLE=always +BOOLEAN prolongate_initial_data "Prolongate the refined regions during initial data generation" STEERABLE=always { -} "no" +} "yes" diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc index 92e33fb3d..4bdcffdc1 100644 --- a/Carpet/Carpet/src/Evolve.cc +++ b/Carpet/Carpet/src/Evolve.cc @@ -31,7 +31,7 @@ #include "carpet.hh" extern "C" { - static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.51 2004/08/02 11:43:15 schnetter Exp $"; + static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.52 2004/08/07 19:47:12 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_Evolve_cc); } @@ -157,7 +157,7 @@ namespace Carpet { enter_level_mode (cgh, rl); Checkpoint ("Regrid"); - did_regrid |= Regrid (cgh); + did_regrid |= Regrid (cgh, true); leave_level_mode (cgh); leave_global_mode (cgh); @@ -171,7 +171,7 @@ namespace Carpet { enter_global_mode (cgh, ml); enter_level_mode (cgh, rl); - do_global_mode = rl==0; + do_global_mode = reflevel==0; do_meta_mode = do_global_mode && mglevel==mglevels-1; Waypoint ("Postregrid at iteration %d time %g%s%s", diff --git a/Carpet/Carpet/src/Initialise.cc b/Carpet/Carpet/src/Initialise.cc index fc8cd9626..5b864ebdd 100644 --- a/Carpet/Carpet/src/Initialise.cc +++ b/Carpet/Carpet/src/Initialise.cc @@ -12,7 +12,7 @@ #include "carpet.hh" extern "C" { - static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Initialise.cc,v 1.50 2004/08/02 12:18:14 schnetter Exp $"; + static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Initialise.cc,v 1.51 2004/08/07 19:47:12 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_Initialise_cc); } @@ -255,7 +255,7 @@ namespace Carpet { // Regrid Checkpoint ("Regrid"); - did_regrid |= Regrid (cgh); + did_regrid |= Regrid (cgh, prolongate_initial_data); leave_level_mode (cgh); leave_global_mode (cgh); diff --git a/Carpet/Carpet/src/Recompose.cc b/Carpet/Carpet/src/Recompose.cc index 316b16724..a6e9c301a 100644 --- a/Carpet/Carpet/src/Recompose.cc +++ b/Carpet/Carpet/src/Recompose.cc @@ -27,7 +27,7 @@ #include "modes.hh" extern "C" { - static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Recompose.cc,v 1.69 2004/08/02 12:18:14 schnetter Exp $"; + static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Recompose.cc,v 1.70 2004/08/07 19:47:11 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_Recompose_cc); } @@ -118,8 +118,8 @@ namespace Carpet { } - - bool Regrid (const cGH* cgh, bool checkpoint_recovery) + + bool Regrid (const cGH* cgh, const bool do_init) { assert (is_level_mode()); @@ -140,8 +140,7 @@ namespace Carpet { gh<dim>::rprocs pss = vhh.at(map)->processors; // Check whether to recompose - CCTK_INT const do_recompose = Carpet_Regrid (cgh, &bbsss, &obss, &pss, - checkpoint_recovery); + CCTK_INT const do_recompose = Carpet_Regrid (cgh, &bbsss, &obss, &pss, false); assert (do_recompose >= 0); did_change = did_change || do_recompose; @@ -158,7 +157,7 @@ namespace Carpet { OutputGridStructure (cgh, map, bbsss, obss, pss); // Recompose - vhh.at(map)->recompose (bbsss, obss, pss); + vhh.at(map)->recompose (bbsss, obss, pss, do_init); OutputGrids (cgh, map, *vhh.at(map)); diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc index 70c1480fe..8bccd5015 100644 --- a/Carpet/Carpet/src/SetupGH.cc +++ b/Carpet/Carpet/src/SetupGH.cc @@ -24,7 +24,7 @@ #include "carpet.hh" extern "C" { - static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.83 2004/08/02 12:18:14 schnetter Exp $"; + static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.84 2004/08/07 19:47:11 schnetter Exp $"; CCTK_FILEVERSION(Carpet_Carpet_SetupGH_cc); } @@ -567,7 +567,7 @@ namespace Carpet { #endif // Recompose grid hierarchy - vhh.at(m)->recompose (bbsss, obss, pss); + vhh.at(m)->recompose (bbsss, obss, pss, false); CCTK_INFO ("Grid structure (grid points):"); const int rl = 0; @@ -821,7 +821,7 @@ namespace Carpet { assert (groupname); Checkpoint ("Recomposing grid array group \"%s\"", groupname); free (groupname); - arrdata.at(group).at(0).hh->recompose (bbsss, obss, pss); + arrdata.at(group).at(0).hh->recompose (bbsss, obss, pss, false); break; } // case of scalar or array diff --git a/Carpet/Carpet/src/carpet.hh b/Carpet/Carpet/src/carpet.hh index b30efc845..60018cc5a 100644 --- a/Carpet/Carpet/src/carpet.hh +++ b/Carpet/Carpet/src/carpet.hh @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.30 2004/06/21 12:28:59 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.31 2004/08/07 19:47:11 schnetter Exp $ #ifndef CARPET_HH #define CARPET_HH @@ -34,7 +34,7 @@ namespace Carpet { int CallFunction (void* function, cFunctionData* attribute, void* data); // Other functions - bool Regrid (const cGH* cgh, bool checkpoint_recovery = false); + bool Regrid (const cGH* cgh, const bool do_init); void CycleTimeLevels (const cGH* cgh); void FlipTimeLevels (const cGH* cgh); void Restrict (const cGH* cgh); diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc index 8a615432b..7cc9ff96b 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.55 2004/06/08 22:58:01 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.56 2004/08/07 19:47:11 schnetter Exp $ #include <assert.h> @@ -31,7 +31,7 @@ dh<D>::dh (gh<D>& h, assert (buffer_width>=0); h.add(this); CHECKPOINT; - recompose (); + recompose (false); } // Destructors @@ -51,7 +51,7 @@ int dh<D>::prolongation_stencil_size () const { // Modifiers template<int D> -void dh<D>::recompose () { +void dh<D>::recompose (const bool do_prolongate) { DECLARE_CCTK_PARAMETERS; CHECKPOINT; @@ -583,7 +583,7 @@ void dh<D>::recompose () { } for (comm_state<D> state; !state.done(); state.step()) { for (typename list<ggf<D>*>::iterator f=gfs.begin(); f!=gfs.end(); ++f) { - (*f)->recompose_fill (state, rl); + (*f)->recompose_fill (state, rl, do_prolongate); } } for (typename list<ggf<D>*>::reverse_iterator f=gfs.rbegin(); f!=gfs.rend(); ++f) { @@ -591,12 +591,12 @@ void dh<D>::recompose () { } for (comm_state<D> state; !state.done(); state.step()) { for (typename list<ggf<D>*>::iterator f=gfs.begin(); f!=gfs.end(); ++f) { - (*f)->recompose_bnd_prolongate (state, rl); + (*f)->recompose_bnd_prolongate (state, rl, do_prolongate); } } for (comm_state<D> state; !state.done(); state.step()) { for (typename list<ggf<D>*>::iterator f=gfs.begin(); f!=gfs.end(); ++f) { - (*f)->recompose_sync (state, rl); + (*f)->recompose_sync (state, rl, do_prolongate); } } } // for rl @@ -610,7 +610,7 @@ void dh<D>::recompose () { for (int rl=0; rl<h.reflevels(); ++rl) { (*f)->recompose_allocate (rl); for (comm_state<D> state; !state.done(); state.step()) { - (*f)->recompose_fill (state, rl); + (*f)->recompose_fill (state, rl, do_prolongate); } if ((*f)->vectorlength == 1) { (*f)->recompose_free (rl); @@ -632,10 +632,10 @@ void dh<D>::recompose () { } } for (comm_state<D> state; !state.done(); state.step()) { - (*f)->recompose_bnd_prolongate (state, rl); + (*f)->recompose_bnd_prolongate (state, rl, do_prolongate); } for (comm_state<D> state; !state.done(); state.step()) { - (*f)->recompose_sync (state, rl); + (*f)->recompose_sync (state, rl, do_prolongate); } } // for rl diff --git a/Carpet/CarpetLib/src/dh.hh b/Carpet/CarpetLib/src/dh.hh index c8d6b3bc0..22a9bd425 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.19 2004/04/20 11:55:52 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.20 2004/08/07 19:47:11 schnetter Exp $ #ifndef DH_HH #define DH_HH @@ -123,7 +123,7 @@ public: int prolongation_stencil_size () const; // Modifiers - void recompose (); + void recompose (const bool do_prolongate); // Grid function management void add (ggf<D>* f); diff --git a/Carpet/CarpetLib/src/gf.cc b/Carpet/CarpetLib/src/gf.cc index 51a110a19..69537d537 100644 --- a/Carpet/CarpetLib/src/gf.cc +++ b/Carpet/CarpetLib/src/gf.cc @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gf.cc,v 1.20 2004/04/24 20:42:34 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gf.cc,v 1.21 2004/08/07 19:47:11 schnetter Exp $ #include <assert.h> @@ -27,16 +27,20 @@ gf<T,D>::gf (const int varindex, const operator_type transport_operator, this->recompose_crop (); for (int rl=0; rl<this->h.reflevels(); ++rl) { this->recompose_allocate (rl); +#if 0 for (comm_state<D> state; !state.done(); state.step()) { - this->recompose_fill (state, rl); + this->recompose_fill (state, rl, false); } +#endif this->recompose_free (rl); +#if 0 for (comm_state<D> state; !state.done(); state.step()) { - this->recompose_bnd_prolongate (state, rl); + this->recompose_bnd_prolongate (state, rl, false); } for (comm_state<D> state; !state.done(); state.step()) { - this->recompose_sync (state, rl); + this->recompose_sync (state, rl, false); } +#endif } // for rl } diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc index 466bb0689..bcb6263ed 100644 --- a/Carpet/CarpetLib/src/ggf.cc +++ b/Carpet/CarpetLib/src/ggf.cc @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.44 2004/05/29 11:36:22 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.45 2004/08/07 19:47:11 schnetter Exp $ #include <assert.h> #include <math.h> @@ -103,7 +103,8 @@ void ggf<D>::recompose_allocate (const int rl) } template<int D> -void ggf<D>::recompose_fill (comm_state<D>& state, const int rl) +void ggf<D>::recompose_fill (comm_state<D>& state, const int rl, + const bool do_prolongate) { // Initialise the new storage for (int c=0; c<h.components(rl); ++c) { @@ -133,43 +134,45 @@ void ggf<D>::recompose_fill (comm_state<D>& state, const int rl) } // for cc } // if rl - // Initialise from coarser level, if possible - if (rl>0) { - if (transport_operator != op_none) { - const int numtl = prolongation_order_time+1; - assert (tmax-tmin+1 >= numtl); - vector<int> tls(numtl); - vector<CCTK_REAL> times(numtl); - for (int i=0; i<numtl; ++i) { - tls.at(i) = tmax - i; - times.at(i) = t.time(tls.at(i),rl-1,ml); - } - for (int cc=0; cc<(int)storage.at(tl-tmin).at(rl-1).size(); ++cc) { - vector<const gdata<D>*> gsrcs(numtl); + if (do_prolongate) { + // Initialise from coarser level, if possible + if (rl>0) { + if (transport_operator != op_none) { + const int numtl = prolongation_order_time+1; + assert (tmax-tmin+1 >= numtl); + vector<int> tls(numtl); + vector<CCTK_REAL> times(numtl); for (int i=0; i<numtl; ++i) { - gsrcs.at(i) - = storage.at(tls.at(i)-tmin).at(rl-1).at(cc).at(ml); - assert (gsrcs.at(i)->extent() == gsrcs.at(0)->extent()); + tls.at(i) = tmax - i; + times.at(i) = t.time(tls.at(i),rl-1,ml); } - const CCTK_REAL time = t.time(tl,rl,ml); - - // TODO: choose larger regions first - // TODO: prefer regions from the same processor - const iblist& list - = d.boxes.at(rl).at(c).at(ml).recv_ref_coarse.at(cc); - for (typename iblist::const_iterator iter=list.begin(); iter!=list.end(); ++iter) { - ibset ovlp = work & *iter; - ovlp.normalize(); - work -= ovlp; - for (typename ibset::const_iterator r=ovlp.begin(); r!=ovlp.end(); ++r) { - storage.at(tl-tmin).at(rl).at(c).at(ml)->interpolate_from - (state, gsrcs, times, *r, time, - d.prolongation_order_space, prolongation_order_time); - } // for r - } // for iter - } // for cc - } // if transport_operator - } // if rl + for (int cc=0; cc<(int)storage.at(tl-tmin).at(rl-1).size(); ++cc) { + vector<const gdata<D>*> gsrcs(numtl); + for (int i=0; i<numtl; ++i) { + gsrcs.at(i) + = storage.at(tls.at(i)-tmin).at(rl-1).at(cc).at(ml); + assert (gsrcs.at(i)->extent() == gsrcs.at(0)->extent()); + } + const CCTK_REAL time = t.time(tl,rl,ml); + + // TODO: choose larger regions first + // TODO: prefer regions from the same processor + const iblist& list + = d.boxes.at(rl).at(c).at(ml).recv_ref_coarse.at(cc); + for (typename iblist::const_iterator iter=list.begin(); iter!=list.end(); ++iter) { + ibset ovlp = work & *iter; + ovlp.normalize(); + work -= ovlp; + for (typename ibset::const_iterator r=ovlp.begin(); r!=ovlp.end(); ++r) { + storage.at(tl-tmin).at(rl).at(c).at(ml)->interpolate_from + (state, gsrcs, times, *r, time, + d.prolongation_order_space, prolongation_order_time); + } // for r + } // for iter + } // for cc + } // if transport_operator + } // if rl + } // if do_prolongate // Note that work need not be empty here; in this case, not // everything could be initialised. This is okay on outer @@ -196,37 +199,43 @@ void ggf<D>::recompose_free (const int rl) } template<int D> -void ggf<D>::recompose_bnd_prolongate (comm_state<D>& state, const int rl) +void ggf<D>::recompose_bnd_prolongate (comm_state<D>& state, const int rl, + const bool do_prolongate) +{ + if (do_prolongate) { + // Set boundaries + if (rl>0) { + for (int c=0; c<h.components(rl); ++c) { + for (int ml=0; ml<h.mglevels(rl,c); ++ml) { + for (int tl=tmin; tl<=tmax; ++tl) { + + // TODO: assert that reflevel 0 boundaries are copied + const CCTK_REAL time = t.time(tl,rl,ml); + ref_bnd_prolongate (state,tl,rl,c,ml,time); + + } // for tl + } // for ml + } // for c + } // if rl + } // if do_prolongate +} + +template<int D> +void ggf<D>::recompose_sync (comm_state<D>& state, const int rl, + const bool do_prolongate) { - // Set boundaries - if (rl>0) { + if (do_prolongate) { + // Set boundaries for (int c=0; c<h.components(rl); ++c) { for (int ml=0; ml<h.mglevels(rl,c); ++ml) { for (int tl=tmin; tl<=tmax; ++tl) { - // TODO: assert that reflevel 0 boundaries are copied - const CCTK_REAL time = t.time(tl,rl,ml); - ref_bnd_prolongate (state,tl,rl,c,ml,time); + sync (state,tl,rl,c,ml); } // for tl } // for ml } // for c - } // if rl -} - -template<int D> -void ggf<D>::recompose_sync (comm_state<D>& state, const int rl) -{ - // Set boundaries - for (int c=0; c<h.components(rl); ++c) { - for (int ml=0; ml<h.mglevels(rl,c); ++ml) { - for (int tl=tmin; tl<=tmax; ++tl) { - - sync (state,tl,rl,c,ml); - - } // for tl - } // for ml - } // for c + } // if do_prolongate } diff --git a/Carpet/CarpetLib/src/ggf.hh b/Carpet/CarpetLib/src/ggf.hh index 6cb0b431f..b6a551cf3 100644 --- a/Carpet/CarpetLib/src/ggf.hh +++ b/Carpet/CarpetLib/src/ggf.hh @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.hh,v 1.24 2004/06/08 22:58:01 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.hh,v 1.25 2004/08/07 19:47:11 schnetter Exp $ #ifndef GGF_HH #define GGF_HH @@ -94,10 +94,10 @@ public: // void recompose (); void recompose_crop (); void recompose_allocate (int rl); - void recompose_fill (comm_state<D>& state, int rl); + void recompose_fill (comm_state<D>& state, int rl, bool do_prolongate); void recompose_free (int rl); - void recompose_bnd_prolongate (comm_state<D>& state, int rl); - void recompose_sync (comm_state<D>& state, int rl); + void recompose_bnd_prolongate (comm_state<D>& state, int rl, bool do_prolongate); + void recompose_sync (comm_state<D>& state, int rl, bool do_prolongate); // Cycle the time levels by rotating the data sets void cycle (int rl, int c, int ml); diff --git a/Carpet/CarpetLib/src/gh.cc b/Carpet/CarpetLib/src/gh.cc index b68be34d8..32df39bf0 100644 --- a/Carpet/CarpetLib/src/gh.cc +++ b/Carpet/CarpetLib/src/gh.cc @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gh.cc,v 1.28 2004/04/18 13:29:43 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gh.cc,v 1.29 2004/08/07 19:47:11 schnetter Exp $ #include <assert.h> #include <stdlib.h> @@ -36,7 +36,8 @@ gh<D>::~gh () { } template<int D> void gh<D>::recompose (const rexts& exts, const rbnds& outer_bounds, - const rprocs& procs) + const rprocs& procs, + const bool do_prolongate) { DECLARE_CCTK_PARAMETERS; @@ -171,7 +172,7 @@ void gh<D>::recompose (const rexts& exts, } for (typename list<dh<D>*>::iterator d=dhs.begin(); d!=dhs.end(); ++d) { - (*d)->recompose (); + (*d)->recompose (do_prolongate); } } diff --git a/Carpet/CarpetLib/src/gh.hh b/Carpet/CarpetLib/src/gh.hh index 69f9f31c0..edf149000 100644 --- a/Carpet/CarpetLib/src/gh.hh +++ b/Carpet/CarpetLib/src/gh.hh @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gh.hh,v 1.17 2004/04/18 13:29:43 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/gh.hh,v 1.18 2004/08/07 19:47:11 schnetter Exp $ #ifndef GH_HH #define GH_HH @@ -85,7 +85,8 @@ public: // Modifiers void recompose (const rexts& exts, const rbnds& outer_bounds, - const rprocs& procs); + const rprocs& procs, + const bool do_prolongate); // Accessors int reflevels () const { |