aboutsummaryrefslogtreecommitdiff
path: root/Carpet
diff options
context:
space:
mode:
authorschnetter <>2002-01-09 20:15:00 +0000
committerschnetter <>2002-01-09 20:15:00 +0000
commit313504329f18e0bba86b7cf05c7a95a167e085f5 (patch)
treeedfd6f9dc82cda3ccb38ed8c59bcc1c317694c65 /Carpet
parent89251e522c0570f83ed6c145ed4e860c27d79dc5 (diff)
Made multiple multigrid levels for the special case of a single
Made multiple multigrid levels for the special case of a single multigrid level "work". That is, it runs wavetoy. darcs-hash:20020109201510-07bb3-1459e6d1a6ceca29b86c91fbbac6139e30581931.gz
Diffstat (limited to 'Carpet')
-rw-r--r--Carpet/Carpet/src/Evolve.cc34
-rw-r--r--Carpet/Carpet/src/Initialise.cc100
-rw-r--r--Carpet/Carpet/src/Recompose.cc7
-rw-r--r--Carpet/Carpet/src/SetupGH.cc16
-rw-r--r--Carpet/Carpet/src/Shutdown.cc18
-rw-r--r--Carpet/Carpet/src/Storage.cc4
-rw-r--r--Carpet/Carpet/src/carpet_public.hh62
-rw-r--r--Carpet/Carpet/src/helpers.cc65
-rw-r--r--Carpet/Carpet/src/variables.cc28
9 files changed, 183 insertions, 151 deletions
diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc
index 6c68cbd82..14bf0d799 100644
--- a/Carpet/Carpet/src/Evolve.cc
+++ b/Carpet/Carpet/src/Evolve.cc
@@ -9,7 +9,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.7 2002/01/09 17:45:39 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.8 2002/01/09 21:15:10 schnetter Exp $";
@@ -66,15 +66,16 @@ namespace Carpet {
Waypoint ("Evolving iteration %d...", cgh->cctk_iteration);
- BEGIN_MGLEVEL_LOOP(cgh) {
- if ((cgh->cctk_iteration-1) % mglevelfact == 0) {
+ BEGIN_REFLEVEL_LOOP(cgh) {
+ const int do_every = maxreflevelfact/reflevelfact;
+ if ((cgh->cctk_iteration-1) % do_every == 0) {
- Waypoint ("Evolving multigrid level %d...", mglevel);
-
- BEGIN_REFLEVEL_LOOP(cgh) {
+ BEGIN_MGLEVEL_LOOP(cgh) {
const int do_every = mglevelfact * maxreflevelfact/reflevelfact;
if ((cgh->cctk_iteration-1) % do_every == 0) {
+ Waypoint ("Evolving multigrid level %d...", mglevel);
+
// Cycle time levels
CycleTimeLevels (cgh);
@@ -110,19 +111,20 @@ namespace Carpet {
// Checking
PoisonCheck (cgh, currenttimebutnotifonly);
- // Recompose grid hierarchy
- Recompose (cgh);
-
}
- } END_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP(cgh);
+
+ // Recompose grid hierarchy
+ Recompose (cgh);
}
- } END_MGLEVEL_LOOP(cgh);
+ } END_REFLEVEL_LOOP(cgh);
- BEGIN_MGLEVEL_LOOP(cgh) {
- if (cgh->cctk_iteration % mglevelfact == 0) {
+ BEGIN_REVERSE_REFLEVEL_LOOP(cgh) {
+ const int do_every = maxreflevelfact/reflevelfact;
+ if (cgh->cctk_iteration % do_every == 0) {
- BEGIN_REVERSE_REFLEVEL_LOOP(cgh) {
+ BEGIN_MGLEVEL_LOOP(cgh) {
const int do_every = mglevelfact * maxreflevelfact/reflevelfact;
if (cgh->cctk_iteration % do_every == 0) {
@@ -148,10 +150,10 @@ namespace Carpet {
CheckChecksums (cgh, alltimes);
}
- } END_REVERSE_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP(cgh);
}
- } END_MGLEVEL_LOOP(cgh);
+ } END_REVERSE_REFLEVEL_LOOP(cgh);
} // main loop
diff --git a/Carpet/Carpet/src/Initialise.cc b/Carpet/Carpet/src/Initialise.cc
index a10a3bb3d..aeafbb3d5 100644
--- a/Carpet/Carpet/src/Initialise.cc
+++ b/Carpet/Carpet/src/Initialise.cc
@@ -9,7 +9,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Initialise.cc,v 1.4 2002/01/09 17:45:39 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Initialise.cc,v 1.5 2002/01/09 21:15:10 schnetter Exp $";
@@ -42,41 +42,47 @@ namespace Carpet {
CCTKi_InitGHExtensions (cgh);
// Check parameters
+ set_mglevel (cgh, 0);
Waypoint ("PARAMCHECK");
CCTK_ScheduleTraverse ("CCTK_PARAMCHECK", cgh, CallFunction);
CCTKi_FinaliseParamWarn();
+ set_mglevel (cgh, -1);
Waypoint ("Initialising iteration %d...", cgh->cctk_iteration);
BEGIN_REFLEVEL_LOOP(cgh) {
- // Checking
- Poison (cgh, alltimes);
-
- // Set up the grid
- Waypoint ("%*sScheduling BASEGRID", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_BASEGRID", cgh, CallFunction);
- if (reflevel==0) {
- base_delta_time = cgh->cctk_delta_time;
- } else {
+ BEGIN_MGLEVEL_LOOP(cgh) {
+
+ // Checking
+ Poison (cgh, alltimes);
+
+ // Set up the grid
+ Waypoint ("%*sScheduling BASEGRID", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_BASEGRID", cgh, CallFunction);
+ if (reflevel==0) {
+ base_delta_time = cgh->cctk_delta_time;
+ } else {
// assert (abs(cgh->cctk_delta_time - base_delta_time / reflevelfactor)
// < 1e-6 * base_delta_time);
// This circumvents a bug in CactusBase/Time
cgh->cctk_delta_time = base_delta_time / reflevelfact;
- }
-
- // Set up the initial data
- Waypoint ("%*sScheduling INITIAL", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_INITIAL", cgh, CallFunction);
- Waypoint ("%*sScheduling POSTINITIAL", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_POSTINITIAL", cgh, CallFunction);
-
- // Poststep
- Waypoint ("%*sScheduling POSTSTEP", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction);
-
- // Checking
- PoisonCheck (cgh, alltimes);
+ }
+
+ // Set up the initial data
+ Waypoint ("%*sScheduling INITIAL", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_INITIAL", cgh, CallFunction);
+ Waypoint ("%*sScheduling POSTINITIAL", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_POSTINITIAL", cgh, CallFunction);
+
+ // Poststep
+ Waypoint ("%*sScheduling POSTSTEP", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction);
+
+ // Checking
+ PoisonCheck (cgh, alltimes);
+
+ } END_MGLEVEL_LOOP(cgh);
// Recompose grid hierarchy
Recompose (cgh);
@@ -85,28 +91,32 @@ namespace Carpet {
BEGIN_REVERSE_REFLEVEL_LOOP(cgh) {
- // Restrict
- Restrict (cgh);
-
- // Checking
- CalculateChecksums (cgh, allbutcurrenttime);
-
- // Recover
- Waypoint ("%*sScheduling RECOVER_VARIABLES", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_RECOVER_VARIABLES", cgh, CallFunction);
- Waypoint ("%*sScheduling CPINITIAL", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_CPINITIAL", cgh, CallFunction);
-
- // Analysis
- Waypoint ("%*sScheduling ANALYSIS", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_ANALYSIS", cgh, CallFunction);
-
- // Output
- Waypoint ("%*sOutputGH", 2*reflevel, "");
- CCTK_OutputGH (cgh);
+ BEGIN_MGLEVEL_LOOP(cgh) {
+
+ // Restrict
+ Restrict (cgh);
+
+ // Checking
+ CalculateChecksums (cgh, allbutcurrenttime);
+
+ // Recover
+ Waypoint ("%*sScheduling RECOVER_VARIABLES", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_RECOVER_VARIABLES", cgh, CallFunction);
+ Waypoint ("%*sScheduling CPINITIAL", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_CPINITIAL", cgh, CallFunction);
+
+ // Analysis
+ Waypoint ("%*sScheduling ANALYSIS", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_ANALYSIS", cgh, CallFunction);
+
+ // Output
+ Waypoint ("%*sOutputGH", 2*reflevel, "");
+ CCTK_OutputGH (cgh);
- // Checking
- CheckChecksums (cgh, allbutcurrenttime);
+ // Checking
+ CheckChecksums (cgh, allbutcurrenttime);
+
+ } END_MGLEVEL_LOOP(cgh);
} END_REVERSE_REFLEVEL_LOOP(cgh);
diff --git a/Carpet/Carpet/src/Recompose.cc b/Carpet/Carpet/src/Recompose.cc
index 544e2406e..a389a2429 100644
--- a/Carpet/Carpet/src/Recompose.cc
+++ b/Carpet/Carpet/src/Recompose.cc
@@ -15,7 +15,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Recompose.cc,v 1.16 2002/01/09 17:45:39 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Recompose.cc,v 1.17 2002/01/09 21:15:10 schnetter Exp $";
@@ -83,8 +83,6 @@ namespace Carpet {
void RegisterRecomposeRegions (const gh<dim>::rexts& bbsss,
const gh<dim>::rprocs& pss)
{
- assert (mglevel == 0);
-
// Check the regions
CheckRegions (bbsss, pss);
// Save the region information for the next regridding
@@ -97,10 +95,9 @@ namespace Carpet {
void Recompose (const cGH* cgh)
{
+ assert (mglevel == -1);
assert (component == -1);
- if (mglevel > 0) return;
-
Waypoint ("%*sRecompose", 2*reflevel, "");
// Check whether to recompose
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index faa8a4561..ddae9d662 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -12,7 +12,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.19 2002/01/09 17:45:40 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.20 2002/01/09 21:15:10 schnetter Exp $";
@@ -243,7 +243,7 @@ namespace Carpet {
// Initialise current position
reflevel = 0;
- mglevel = 0;
+ mglevel = -1;
component = -1;
// Invent a refinement structure
@@ -273,16 +273,20 @@ namespace Carpet {
iteration.resize(maxreflevels, 0);
// Set current position (this time for real)
- set_mglevel (cgh, 0);
set_reflevel (cgh, 0);
+ set_mglevel (cgh, -1);
set_component (cgh, -1);
// Enable storage for all groups if desired
// XXX
if (true || enable_all_storage) {
- for (int group=0; group<CCTK_NumGroups(); ++group) {
- EnableGroupStorage (cgh, CCTK_GroupName(group));
- }
+ BEGIN_REFLEVEL_LOOP(cgh) {
+ BEGIN_MGLEVEL_LOOP(cgh) {
+ for (int group=0; group<CCTK_NumGroups(); ++group) {
+ EnableGroupStorage (cgh, CCTK_GroupName(group));
+ }
+ } END_MGLEVEL_LOOP(cgh);
+ } END_REFLEVEL_LOOP(cgh);
}
Waypoint ("done with SetupGH.");
diff --git a/Carpet/Carpet/src/Shutdown.cc b/Carpet/Carpet/src/Shutdown.cc
index b768b5e30..78b6e5bc3 100644
--- a/Carpet/Carpet/src/Shutdown.cc
+++ b/Carpet/Carpet/src/Shutdown.cc
@@ -9,7 +9,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Shutdown.cc,v 1.4 2001/12/14 16:39:08 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Shutdown.cc,v 1.5 2002/01/09 21:15:10 schnetter Exp $";
@@ -28,17 +28,17 @@ namespace Carpet {
const int convlev = 0;
cGH* cgh = fc->GH[convlev];
+ set_mglevel (cgh, 0);
+
// Terminate
- BEGIN_REFLEVEL_LOOP(cgh) {
- Waypoint ("%*sScheduling TERMINATE", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_TERMINATE", cgh, CallFunction);
- } END_REFLEVEL_LOOP(cgh);
+ Waypoint ("%*sScheduling TERMINATE", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_TERMINATE", cgh, CallFunction);
// Shutdown
- BEGIN_REFLEVEL_LOOP(cgh) {
- Waypoint ("%*sScheduling SHUTDOWN", 2*reflevel, "");
- CCTK_ScheduleTraverse ("CCTK_SHUTDOWN", cgh, CallFunction);
- } END_REFLEVEL_LOOP(cgh);
+ Waypoint ("%*sScheduling SHUTDOWN", 2*reflevel, "");
+ CCTK_ScheduleTraverse ("CCTK_SHUTDOWN", cgh, CallFunction);
+
+ set_mglevel (cgh, -1);
CCTK_PRINTSEPARATOR;
printf ("Done.\n");
diff --git a/Carpet/Carpet/src/Storage.cc b/Carpet/Carpet/src/Storage.cc
index 18b49cc74..96bd542b8 100644
--- a/Carpet/Carpet/src/Storage.cc
+++ b/Carpet/Carpet/src/Storage.cc
@@ -9,7 +9,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Storage.cc,v 1.7 2001/12/14 16:39:08 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Storage.cc,v 1.8 2002/01/09 21:15:10 schnetter Exp $";
@@ -83,7 +83,7 @@ namespace Carpet {
} // for
// Reinitialise Cactus variables
- set_component (cgh, component);
+ if (component!=-1) set_component (cgh, component);
PoisonGroup (cgh, group, alltimes);
// storage was not enabled previously
diff --git a/Carpet/Carpet/src/carpet_public.hh b/Carpet/Carpet/src/carpet_public.hh
index c16fd743a..3257002f1 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.14 2002/01/09 17:45:40 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.15 2002/01/09 21:15:11 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
@@ -32,6 +32,12 @@ namespace Carpet {
// Handle from CCTK_RegisterGHExtension
extern int GHExtension;
+ // Refinement factor
+ extern int reffact;
+
+ // Refinement factor on finest grid
+ extern int maxreflevelfact;
+
// Multigrid levels
extern int mglevels;
@@ -44,26 +50,20 @@ namespace Carpet {
// Multigrid factor on coarsest grid
extern int maxmglevelfact;
- // Refinement factor
- extern int reffact;
-
- // Refinement factor on finest grid
- extern int maxreflevelfact;
-
// Current iteration per refinement level
extern vector<int> iteration;
// Current position on the grid hierarchy
- extern int mglevel;
extern int reflevel;
+ extern int mglevel;
extern int component;
- // Current multigrid factor
- extern int mglevelfact;
-
// Current refinement factor
extern int reflevelfact;
+ // Current multigrid factor
+ extern int mglevelfact;
+
// Time step on base grid
extern CCTK_REAL base_delta_time;
@@ -154,24 +154,6 @@ namespace Carpet {
- // Multigrid level iterator
-
-#define BEGIN_MGLEVEL_LOOP(cgh) \
- do { \
- int _mgl; \
- assert (mglevel==0); \
- for (int _ml=mglevels-1; _ml>=0; --_ml) { \
- set_mglevel ((cGH*)(cgh), _ml); \
- {
-#define END_MGLEVEL_LOOP(cgh) \
- } \
- } \
- assert (mglevel==0); \
- _mgl = 0; \
- } while (0)
-
-
-
// Refinement level iterator
#define BEGIN_REFLEVEL_LOOP(cgh) \
@@ -209,12 +191,33 @@ namespace Carpet {
+ // Multigrid level iterator
+
+#define BEGIN_MGLEVEL_LOOP(cgh) \
+ do { \
+ int _mgl; \
+ assert (reflevel>=0 && reflevel<hh->reflevels()); \
+ assert (mglevel==-1); \
+ for (int _ml=mglevels-1; _ml>=0; --_ml) { \
+ set_mglevel ((cGH*)(cgh), _ml); \
+ {
+#define END_MGLEVEL_LOOP(cgh) \
+ } \
+ } \
+ set_mglevel ((cGH*)(cgh), -1); \
+ assert (mglevel==-1); \
+ _mgl = 0; \
+ } while (0)
+
+
+
// Component iterator
#define BEGIN_COMPONENT_LOOP(cgh) \
do { \
int _cl; \
assert (reflevel>=0 && reflevel<hh->reflevels()); \
+ assert (mglevel>=0 && mglevel<mglevels); \
assert (component==-1); \
for (int _c=0; _c<hh->components(reflevel); ++_c) { \
set_component ((cGH*)(cgh), _c); \
@@ -233,6 +236,7 @@ namespace Carpet {
do { \
int _lcl; \
assert (reflevel>=0 && reflevel<hh->reflevels()); \
+ assert (mglevel>=0 && mglevel<mglevels); \
assert (component==-1); \
for (int _c=0; _c<hh->components(reflevel); ++_c) { \
if (hh->is_local(reflevel,_c)) { \
diff --git a/Carpet/Carpet/src/helpers.cc b/Carpet/Carpet/src/helpers.cc
index 15a8c9f27..5e8b6ebbd 100644
--- a/Carpet/Carpet/src/helpers.cc
+++ b/Carpet/Carpet/src/helpers.cc
@@ -12,7 +12,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.16 2002/01/09 17:45:40 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.17 2002/01/09 21:15:11 schnetter Exp $";
@@ -176,45 +176,60 @@ namespace Carpet {
- void set_mglevel (cGH* cgh, const int ml)
+ void set_reflevel (cGH* cgh, const int rl)
{
// Check
- assert (ml>=0 && ml<mglevels);
- assert (reflevel == 0);
+ assert (rl>=0 && rl<maxreflevels && rl<hh->reflevels());
+ assert (mglevel == -1);
assert (component == -1);
- mglevel = ml;
- mglevelfact = ipow(mgfact, mglevel);
- cgh->cctk_convlevel = mglevel;
+ // Change
+ reflevel = rl;
+ reflevelfact = ipow(reffact, reflevel);
+ vect<int,dim>::ref(cgh->cctk_levfac) = reflevelfact;
}
- void set_reflevel (cGH* cgh, const int rl)
+ void set_mglevel (cGH* cgh, const int ml)
{
// Check
- assert (rl>=0 && rl<maxreflevels && rl<hh->reflevels());
+ assert (ml==-1 || (ml>=0 && ml<mglevels));
assert (component == -1);
// Change
- reflevel = rl;
- const bbox<int,dim>& base = hh->baseextent;
- reflevelfact = ipow(reffact, reflevel);
- cgh->cctk_delta_time = base_delta_time / reflevelfact * mglevelfact;
- assert (all(base.shape() % base.stride() == 0));
- assert (all((base.shape() / base.stride()) % mglevelfact == 0));
- vect<int,dim>::ref(cgh->cctk_gsh)
- = (((base.shape() / base.stride() - 1) / mglevelfact
- + dd->lghosts + dd->ughosts)
- * reflevelfact + 1);
- vect<int,dim>::ref(cgh->cctk_levfac) = reflevelfact;
- for (int group=0; group<CCTK_NumGroups(); ++group) {
- const bbox<int,dim>& base = arrdata[group].hh->baseextent;
- vect<int,dim>::ref((int*)arrdata[group].info.gsh)
+ mglevel = ml;
+ mglevelfact = ipow(mgfact, mglevel);
+ cgh->cctk_convlevel = mglevel;
+
+ // Set gsh
+ if (mglevel == -1) {
+
+ cgh->cctk_delta_time = 0xdeadbeef;
+ vect<int,dim>::ref(cgh->cctk_gsh) = 0xdeadbeef;
+ for (int group=0; group<CCTK_NumGroups(); ++group) {
+ vect<int,dim>::ref((int*)arrdata[group].info.gsh) = 0xdeadbeef;
+ }
+
+ } else {
+
+ const bbox<int,dim>& base = hh->baseextent;
+ cgh->cctk_delta_time = base_delta_time / reflevelfact * mglevelfact;
+ assert (all(base.shape() % base.stride() == 0));
+ assert (all((base.shape() / base.stride()) % mglevelfact == 0));
+ vect<int,dim>::ref(cgh->cctk_gsh)
= (((base.shape() / base.stride() - 1) / mglevelfact
- + arrdata[group].dd->lghosts + arrdata[group].dd->ughosts)
+ + dd->lghosts + dd->ughosts)
* reflevelfact + 1);
- }
+ for (int group=0; group<CCTK_NumGroups(); ++group) {
+ const bbox<int,dim>& base = arrdata[group].hh->baseextent;
+ vect<int,dim>::ref((int*)arrdata[group].info.gsh)
+ = (((base.shape() / base.stride() - 1) / mglevelfact
+ + arrdata[group].dd->lghosts + arrdata[group].dd->ughosts)
+ * reflevelfact + 1);
+ }
+
+ } // if mglevel != -1
}
diff --git a/Carpet/Carpet/src/variables.cc b/Carpet/Carpet/src/variables.cc
index a8a2a7c75..23c637099 100644
--- a/Carpet/Carpet/src/variables.cc
+++ b/Carpet/Carpet/src/variables.cc
@@ -5,7 +5,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.5 2002/01/09 17:45:40 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.6 2002/01/09 21:15:11 schnetter Exp $";
@@ -18,15 +18,6 @@ namespace Carpet {
// Handle from CCTK_RegisterGHExtension
int GHExtension;
- // Multigrid levels
- int mglevels;
-
- // Multigrid factor
- int mgfact;
-
- // Multigrid factor on coarsest grid
- int maxmglevelfact;
-
// Maximum number of refinement levels
int maxreflevels;
@@ -36,20 +27,29 @@ namespace Carpet {
// Refinement factor on finest grid
int maxreflevelfact;
+ // Multigrid levels
+ int mglevels;
+
+ // Multigrid factor
+ int mgfact;
+
+ // Multigrid factor on coarsest grid
+ int maxmglevelfact;
+
// Current iteration per refinement level
vector<int> iteration;
// Current position on the grid hierarchy
- int mglevel;
int reflevel;
+ int mglevel;
int component;
- // multigrid factor of current level: ipow(multigrid_factor, mglevel)
- int mglevelfact;
-
// refinement factor of current level: ipow(refinement_factor, reflevel)
int reflevelfact;
+ // multigrid factor of current level: ipow(multigrid_factor, mglevel)
+ int mglevelfact;
+
// Time step on base grid
CCTK_REAL base_delta_time;