aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/Carpet/src/Cycle.cc24
-rw-r--r--Carpet/Carpet/src/Initialise.cc6
-rw-r--r--Carpet/Carpet/src/carpet.hh3
-rw-r--r--Carpet/CarpetLib/src/ggf.cc18
-rw-r--r--Carpet/CarpetLib/src/ggf.hh5
-rw-r--r--Carpet/CarpetReduce/src/reduce.cc5
6 files changed, 52 insertions, 9 deletions
diff --git a/Carpet/Carpet/src/Cycle.cc b/Carpet/Carpet/src/Cycle.cc
index af3e564ee..46faba22f 100644
--- a/Carpet/Carpet/src/Cycle.cc
+++ b/Carpet/Carpet/src/Cycle.cc
@@ -8,7 +8,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Cycle.cc,v 1.6 2002/06/06 00:23:34 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Cycle.cc,v 1.7 2002/06/06 14:20:15 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Cycle_cc)
@@ -40,4 +40,26 @@ namespace Carpet {
}
}
+
+
+ void FlipTimeLevels (const cGH* cgh)
+ {
+ Checkpoint ("%*sFlipTimeLevels", 2*reflevel, "");
+
+ for (int group=0; group<CCTK_NumGroups(); ++group) {
+ if (reflevel<arrdata[group].hh->reflevels()
+ && CCTK_QueryGroupStorageI(cgh, group)) {
+ for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+
+ assert (group<(int)arrdata.size());
+ assert (var<(int)arrdata[group].data.size());
+ for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
+ arrdata[group].data[var]->cycle (reflevel, c, mglevel);
+ }
+
+ }
+ }
+ }
+ }
+
} // namespace Carpet
diff --git a/Carpet/Carpet/src/Initialise.cc b/Carpet/Carpet/src/Initialise.cc
index 005a12991..86d8cdeee 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.9 2002/03/26 13:22:27 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Initialise.cc,v 1.10 2002/06/06 14:20:15 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Initialise_cc)
@@ -67,8 +67,8 @@ namespace Carpet {
} 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;
+ // This circumvents a bug in CactusBase/Time
+ cgh->cctk_delta_time = base_delta_time / reflevelfact;
}
// Set up the initial data
diff --git a/Carpet/Carpet/src/carpet.hh b/Carpet/Carpet/src/carpet.hh
index 6fded25f4..40be26e61 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.16 2002/03/11 13:17:10 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.17 2002/06/06 14:20:15 schnetter Exp $
#include "Carpet/CarpetLib/src/gh.hh"
@@ -8,6 +8,7 @@ namespace Carpet {
void Regrid (const cGH* cgh);
void CycleTimeLevels (const cGH* cgh);
+ void FlipTimeLevels (const cGH* cgh);
void Restrict (const cGH* cgh);
void Recompose (const cGH* cgh,
diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc
index 433ad35ca..5f1c2a8e0 100644
--- a/Carpet/CarpetLib/src/ggf.cc
+++ b/Carpet/CarpetLib/src/ggf.cc
@@ -6,7 +6,7 @@
copyright : (C) 2000 by Erik Schnetter
email : schnetter@astro.psu.edu
- $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.15 2002/05/05 22:17:02 schnetter Exp $
+ $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.16 2002/06/06 14:20:15 schnetter Exp $
***************************************************************************/
@@ -166,6 +166,22 @@ void generic_gf<D>::cycle (int rl, int c, int ml) {
storage[tmax-tmin][rl][c][ml] = tmpdata;
}
+// Flip the time levels by exchanging the data sets
+template<int D>
+void generic_gf<D>::flip (int rl, int c, int ml) {
+ assert (rl>=0 && rl<h.reflevels());
+ assert (c>=0 && c<h.components(rl));
+ assert (ml>=0 && ml<h.mglevels(rl,c));
+ for (int t=0; t<(tmax-tmin)/2; ++t) {
+ const int tl1 = tmin + t;
+ const int tl2 = tmax - t;
+ assert (tl1 < tl2);
+ generic_data<D>* tmpdata = storage[tl1-tmin][rl][c][ml];
+ storage[tl1-tmin][rl][c][ml] = storage[tl2-tmin][rl][c][ml];
+ storage[tl2-tmin][rl][c][ml] = tmpdata;
+ }
+}
+
// Operations
diff --git a/Carpet/CarpetLib/src/ggf.hh b/Carpet/CarpetLib/src/ggf.hh
index df785cd79..00a19fe66 100644
--- a/Carpet/CarpetLib/src/ggf.hh
+++ b/Carpet/CarpetLib/src/ggf.hh
@@ -6,7 +6,7 @@
copyright : (C) 2000 by Erik Schnetter
email : schnetter@astro.psu.edu
- $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.hh,v 1.9 2002/05/05 22:17:02 schnetter Exp $
+ $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.hh,v 1.10 2002/06/06 14:20:16 schnetter Exp $
***************************************************************************/
@@ -97,6 +97,9 @@ public:
// Cycle the time levels by rotating the data sets
void cycle (int rl, int c, int ml);
+ // Flip the time levels by exchanging the data sets
+ void flip (int rl, int c, int ml);
+
// Helpers
diff --git a/Carpet/CarpetReduce/src/reduce.cc b/Carpet/CarpetReduce/src/reduce.cc
index 65cf19c1a..5b602f3b6 100644
--- a/Carpet/CarpetReduce/src/reduce.cc
+++ b/Carpet/CarpetReduce/src/reduce.cc
@@ -1,9 +1,10 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.9 2002/06/05 19:11:00 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.10 2002/06/06 14:20:16 schnetter Exp $
#include <assert.h>
#include <float.h>
#include <limits.h>
#include <math.h>
+#include <stdio.h>
#include <stdlib.h>
#include <complex>
@@ -18,7 +19,7 @@
#include "reduce.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.9 2002/06/05 19:11:00 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.10 2002/06/06 14:20:16 schnetter Exp $";
CCTK_FILEVERSION(CarpetReduce_reduce_cc)