aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/Carpet/src/CallFunction.cc17
-rw-r--r--Carpet/Carpet/src/Checksum.cc201
-rw-r--r--Carpet/Carpet/src/Comm.cc62
-rw-r--r--Carpet/Carpet/src/Evolve.cc34
-rw-r--r--Carpet/Carpet/src/Initialise.cc98
-rw-r--r--Carpet/Carpet/src/Poison.cc34
-rw-r--r--Carpet/Carpet/src/Restrict.cc6
-rw-r--r--Carpet/Carpet/src/SetupGH.cc17
-rw-r--r--Carpet/Carpet/src/Shutdown.cc10
-rw-r--r--Carpet/Carpet/src/Storage.cc28
-rw-r--r--Carpet/Carpet/src/carpet_public.hh146
-rw-r--r--Carpet/Carpet/src/helpers.cc69
-rw-r--r--Carpet/Carpet/src/variables.cc12
-rw-r--r--Carpet/CarpetIOASCII/param.ccl8
-rw-r--r--Carpet/CarpetIOASCII/src/ioascii.cc160
-rw-r--r--Carpet/CarpetInterp/src/interp.cc68
-rw-r--r--Carpet/CarpetLib/src/ggf.cc4
-rw-r--r--Carpet/CarpetReduce/src/reduce.cc90
-rw-r--r--Carpet/CarpetSlab/src/slab.cc178
-rw-r--r--CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc377
-rw-r--r--CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc4
-rw-r--r--CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc386
-rw-r--r--CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh4
-rw-r--r--CarpetExtra/FOWaveToyF77/interface.ccl6
-rw-r--r--CarpetExtra/IDFOScalarWave/interface.ccl8
-rw-r--r--CarpetExtra/IDFOScalarWave/schedule.ccl4
-rw-r--r--CarpetExtra/IDScalarWaveExpl/schedule.ccl2
-rw-r--r--CarpetExtra/IDScalarWaveExpl/src/initialdata.F773
-rw-r--r--CarpetExtra/IDScalarWaveFO/param.ccl12
-rw-r--r--CarpetExtra/IDScalarWaveFO/schedule.ccl3
-rw-r--r--CarpetExtra/IDScalarWaveFO/src/initialdata.F7770
-rw-r--r--CarpetExtra/IDScalarWaveMoL/param.ccl32
-rw-r--r--CarpetExtra/IDScalarWaveMoL/schedule.ccl2
-rw-r--r--CarpetExtra/IDScalarWaveMoL/src/errors.F773
-rw-r--r--CarpetExtra/IDScalarWaveMoL/src/initialdata.F7748
-rw-r--r--CarpetExtra/SpaceTimeToy/interface.ccl11
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par12
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par12
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par12
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par12
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par12
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par12
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d.gnu22
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par2
-rw-r--r--CarpetExtra/SpaceTimeToy/param.ccl12
-rw-r--r--CarpetExtra/SpaceTimeToy/schedule.ccl51
-rw-r--r--CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F7776
-rw-r--r--CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par4
-rw-r--r--CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par4
-rw-r--r--CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par4
-rw-r--r--CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par4
-rw-r--r--CarpetExtra/WaveToyExpl/interface.ccl8
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par2
-rw-r--r--CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par2
-rw-r--r--CarpetExtra/WaveToyExpl/schedule.ccl8
-rw-r--r--CarpetExtra/WaveToyExpl/src/finalboundaries.F776
-rw-r--r--CarpetExtra/WaveToyExpl/src/finalstep.F773
-rw-r--r--CarpetExtra/WaveToyExpl/src/initsymbound.F773
-rw-r--r--CarpetExtra/WaveToyExpl/src/intboundaries.F776
-rw-r--r--CarpetExtra/WaveToyExpl/src/intinit.F773
-rw-r--r--CarpetExtra/WaveToyExpl/src/intstep.F773
-rw-r--r--CarpetExtra/WaveToyExpl/src/startup.F773
-rw-r--r--CarpetExtra/WaveToyFO/interface.ccl10
-rw-r--r--CarpetExtra/WaveToyFO/schedule.ccl29
-rw-r--r--CarpetExtra/WaveToyFO/src/boundaries.F778
-rw-r--r--CarpetExtra/WaveToyFO/src/calcrhs.F7775
-rw-r--r--CarpetExtra/WaveToyFO/src/initsymbound.F773
-rw-r--r--CarpetExtra/WaveToyFO/src/make.code.defn4
-rw-r--r--CarpetExtra/WaveToyFO/src/registervars.F775
-rw-r--r--CarpetExtra/WaveToyFO/src/startup.F773
-rw-r--r--CarpetExtra/WaveToyMoL/interface.ccl15
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d.gnu24
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par30
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par32
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par32
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par34
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par38
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par34
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par34
-rw-r--r--CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par34
-rw-r--r--CarpetExtra/WaveToyMoL/param.ccl6
-rw-r--r--CarpetExtra/WaveToyMoL/schedule.ccl40
-rw-r--r--CarpetExtra/WaveToyMoL/src/boundaries.F778
-rw-r--r--CarpetExtra/WaveToyMoL/src/calcrhs.F7724
-rw-r--r--CarpetExtra/WaveToyMoL/src/initsymbound.F775
-rw-r--r--CarpetExtra/WaveToyMoL/src/make.code.defn4
-rw-r--r--CarpetExtra/WaveToyMoL/src/registervars.F775
-rw-r--r--CarpetExtra/WaveToyMoL/src/startup.F773
103 files changed, 1438 insertions, 1646 deletions
diff --git a/Carpet/Carpet/src/CallFunction.cc b/Carpet/Carpet/src/CallFunction.cc
index b1cd011d5..d16675e53 100644
--- a/Carpet/Carpet/src/CallFunction.cc
+++ b/Carpet/Carpet/src/CallFunction.cc
@@ -1,6 +1,8 @@
#include <assert.h>
#include <stdlib.h>
+#include <algorithm>
+
#include "cctk.h"
#include "cctki_GHExtensions.h"
@@ -9,7 +11,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/CallFunction.cc,v 1.8 2003/05/08 15:35:49 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/CallFunction.cc,v 1.9 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_CallFunction_cc);
}
@@ -32,10 +34,17 @@ namespace Carpet {
// Global operation: call once
if (do_global_mode) {
- Waypoint ("%*sGlobal mode call at %s to %s::%s", 2*reflevel, "",
+ assert (component == -1);
+ const int saved_mglevel = mglevel;
+ if (mglevel!=-1) set_mglevel (cgh, -1);
+ const int saved_reflevel = reflevel;
+ if (reflevel!=-1) set_reflevel (cgh, -1);
+ Waypoint ("Global mode call at %s to %s::%s",
attribute->where, attribute->thorn, attribute->routine);
const int res = CCTK_CallFunction (function, attribute, data);
assert (res==0);
+ if (reflevel!=saved_reflevel) set_reflevel (cgh, saved_reflevel);
+ if (mglevel!=saved_mglevel) set_mglevel (cgh, saved_mglevel);
}
} else if (attribute->level) {
@@ -49,7 +58,7 @@ namespace Carpet {
} else {
// Local operation: call once per component
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, CCTK_GF) {
Waypoint ("%*sLocal mode call on component %d at %s to %s::%s",
2*reflevel, "", component,
@@ -57,7 +66,7 @@ namespace Carpet {
const int res = CCTK_CallFunction (function, attribute, data);
assert (res==0);
- } END_LOCAL_COMPONENT_LOOP(cgh);
+ } END_LOCAL_COMPONENT_LOOP;
}
diff --git a/Carpet/Carpet/src/Checksum.cc b/Carpet/Carpet/src/Checksum.cc
index 78b59cde6..ad3972a35 100644
--- a/Carpet/Carpet/src/Checksum.cc
+++ b/Carpet/Carpet/src/Checksum.cc
@@ -9,7 +9,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Checksum.cc,v 1.8 2002/10/24 10:39:38 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Checksum.cc,v 1.9 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Checksum_cc);
}
@@ -31,55 +31,61 @@ namespace Carpet {
checksums.resize(CCTK_NumVars());
for (int group=0; group<CCTK_NumGroups(); ++group) {
- for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
-
- const int n = CCTK_FirstVarIndexI(group) + var;
- const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
- assert (num_tl>0);
- const int min_tl = mintl(where, num_tl);
- const int max_tl = maxtl(where, num_tl);
-
- checksums[n].resize(maxreflevels);
- checksums[n][reflevel].resize(num_tl);
- for (int tl=min_tl; tl<=max_tl; ++tl) {
- checksums[n][reflevel][tl].resize(hh->components(reflevel));
- BEGIN_COMPONENT_LOOP(cgh) {
- checksums[n][reflevel][tl][component].valid = false;
- } END_COMPONENT_LOOP(cgh);
- }
+ const int grouptype = CCTK_GroupTypeI(group);
+ if (grouptype == CCTK_GF || reflevel==0) {
+ for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+
+ const int n = CCTK_FirstVarIndexI(group) + var;
+ const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
+ assert (num_tl>0);
+ const int min_tl = mintl(where, num_tl);
+ const int max_tl = maxtl(where, num_tl);
+
+ checksums[n].resize(maxreflevels);
+ checksums[n][reflevel].resize(num_tl);
+ for (int tl=min_tl; tl<=max_tl; ++tl) {
+ checksums[n][reflevel][tl].resize(hh->components(reflevel));
+ BEGIN_COMPONENT_LOOP(cgh, grouptype) {
+ checksums[n][reflevel][tl][component].valid = false;
+ } END_COMPONENT_LOOP;
+ }
+ }
}
}
for (int group=0; group<CCTK_NumGroups(); ++group) {
- if (CCTK_QueryGroupStorageI(cgh, group)) {
- for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
-
- const int n = CCTK_FirstVarIndexI(group) + var;
- const int sz = CCTK_VarTypeSize(CCTK_VarTypeI(n));
- assert (sz>0);
- const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
- assert (num_tl>0);
- const int min_tl = mintl(where, num_tl);
- const int max_tl = maxtl(where, num_tl);
-
- for (int tl=min_tl; tl<=max_tl; ++tl) {
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
- const int gpdim = arrdata[group].info.dim;
- int np = 1;
- for (int d=0; d<gpdim; ++d) {
- np *= *CCTK_ArrayGroupSizeI(cgh, d, group);
- }
- const void* data = cgh->data[n][tl];
- int chk = 0;
- for (int i=0; i<np*sz/(int)sizeof chk; ++i) {
- chk += ((const int*)data)[i];
- }
- checksums[n][reflevel][tl][component].sum = chk;
- checksums[n][reflevel][tl][component].valid = true;
- } END_LOCAL_COMPONENT_LOOP(cgh);
- } // for tl
- } // for var
- } // if has storage
+ const int grouptype = CCTK_GroupTypeI(group);
+ if (grouptype == CCTK_GF || reflevel==0) {
+ if (CCTK_QueryGroupStorageI(cgh, group)) {
+ for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+
+ const int n = CCTK_FirstVarIndexI(group) + var;
+ const int sz = CCTK_VarTypeSize(CCTK_VarTypeI(n));
+ assert (sz>0);
+ const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
+ assert (num_tl>0);
+ const int min_tl = mintl(where, num_tl);
+ const int max_tl = maxtl(where, num_tl);
+
+ for (int tl=min_tl; tl<=max_tl; ++tl) {
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, grouptype) {
+ const int gpdim = arrdata[group].info.dim;
+ int np = 1;
+ for (int d=0; d<gpdim; ++d) {
+ np *= *CCTK_ArrayGroupSizeI(cgh, d, group);
+ }
+ const void* data = cgh->data[n][tl];
+ int chk = 0;
+ for (int i=0; i<np*sz/(int)sizeof chk; ++i) {
+ chk += ((const int*)data)[i];
+ }
+ checksums[n][reflevel][tl][component].sum = chk;
+ checksums[n][reflevel][tl][component].valid = true;
+ } END_LOCAL_COMPONENT_LOOP;
+ } // for tl
+ } // for var
+ } // if has storage
+ } // if reflevel
} // for group
}
@@ -95,56 +101,59 @@ namespace Carpet {
assert ((int)checksums.size()==CCTK_NumVars());
for (int group=0; group<CCTK_NumGroups(); ++group) {
- if (CCTK_QueryGroupStorageI(cgh, group)) {
- for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
-
- const int n = CCTK_FirstVarIndexI(group) + var;
- const int sz = CCTK_VarTypeSize(CCTK_VarTypeI(n));
- assert (sz>0);
- const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
- assert (num_tl>0);
- const int min_tl = mintl(where, num_tl);
- const int max_tl = maxtl(where, num_tl);
-
- assert ((int)checksums[n].size()==maxreflevels);
- assert ((int)checksums[n][reflevel].size()==num_tl);
-
- for (int tl=min_tl; tl<=max_tl; ++tl) {
-
- bool unexpected_change = false;
-
- assert ((int)checksums[n][reflevel][tl].size()
- == hh->components(reflevel));
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
- if (checksums[n][reflevel][tl][component].valid) {
- const int gpdim = arrdata[group].info.dim;
- int np = 1;
- for (int d=0; d<gpdim; ++d) {
- np *= *CCTK_ArrayGroupSizeI(cgh, d, group);
- }
- const void* data = cgh->data[n][tl];
- int chk = 0;
- for (int i=0; i<np*sz/(int)sizeof chk; ++i) {
- chk += ((const int*)data)[i];
- }
- unexpected_change
- = (unexpected_change
- || chk != checksums[n][reflevel][tl][component].sum);
- }
- } END_LOCAL_COMPONENT_LOOP(cgh);
-
- if (unexpected_change) {
- char* fullname = CCTK_FullName(n);
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Timelevel %d of the variable \"%s\" has changed unexpectedly.",
- tl, fullname);
- free (fullname);
- }
-
- } // for tl
-
- } // for var
- } // if has storage
+ const int grouptype = CCTK_GroupTypeI(group);
+ if (grouptype == CCTK_GF || reflevel==0) {
+ if (CCTK_QueryGroupStorageI(cgh, group)) {
+ for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+
+ const int n = CCTK_FirstVarIndexI(group) + var;
+ const int sz = CCTK_VarTypeSize(CCTK_VarTypeI(n));
+ assert (sz>0);
+ const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
+ assert (num_tl>0);
+ const int min_tl = mintl(where, num_tl);
+ const int max_tl = maxtl(where, num_tl);
+
+ assert ((int)checksums[n].size()==maxreflevels);
+ assert ((int)checksums[n][reflevel].size()==num_tl);
+
+ for (int tl=min_tl; tl<=max_tl; ++tl) {
+
+ bool unexpected_change = false;
+
+ assert ((int)checksums[n][reflevel][tl].size()
+ == hh->components(reflevel));
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, grouptype) {
+ if (checksums[n][reflevel][tl][component].valid) {
+ const int gpdim = arrdata[group].info.dim;
+ int np = 1;
+ for (int d=0; d<gpdim; ++d) {
+ np *= *CCTK_ArrayGroupSizeI(cgh, d, group);
+ }
+ const void* data = cgh->data[n][tl];
+ int chk = 0;
+ for (int i=0; i<np*sz/(int)sizeof chk; ++i) {
+ chk += ((const int*)data)[i];
+ }
+ unexpected_change
+ = (unexpected_change
+ || chk != checksums[n][reflevel][tl][component].sum);
+ }
+ } END_LOCAL_COMPONENT_LOOP;
+
+ if (unexpected_change) {
+ char* fullname = CCTK_FullName(n);
+ CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Timelevel %d of the variable \"%s\" has changed unexpectedly.",
+ tl, fullname);
+ free (fullname);
+ }
+
+ } // for tl
+
+ } // for var
+ } // if has storage
+ } // if reflevel
} // for group
}
diff --git a/Carpet/Carpet/src/Comm.cc b/Carpet/Carpet/src/Comm.cc
index c3f59803b..f893b3c71 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.16 2003/05/21 14:30:24 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Comm.cc,v 1.17 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Comm_cc);
}
@@ -24,19 +24,31 @@ namespace Carpet {
int SyncGroup (cGH* cgh, const char* groupname)
{
- if (hh->local_components(reflevel) != 1 && component != -1) {
- CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Cannot synchronise in local mode "
- "(Tried to synchronise group \"%s\")",
- groupname);
- }
- if (hh->local_components(reflevel) != 1) assert (component == -1);
-
- Checkpoint ("%*sSyncGroup %s", 2*reflevel, "", groupname);
+ DECLARE_CCTK_PARAMETERS;
const int group = CCTK_GroupIndex(groupname);
assert (group>=0 && group<CCTK_NumGroups());
+ Checkpoint ("%*sSyncGroup %s", 2*reflevel, "", groupname);
+
+ const int grouptype = CCTK_GroupTypeI(group);
+
+ if (grouptype == CCTK_GF) {
+ if (reflevel == -1) {
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Cannot synchronise grid functions in global mode "
+ "(Tried to synchronise group \"%s\")",
+ groupname);
+ }
+ if (hh->local_components(reflevel) != 1 && component != -1) {
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Cannot synchronise grid functions in local mode "
+ "(Tried to synchronise group \"%s\")",
+ groupname);
+ }
+ if (hh->local_components(reflevel) != 1) assert (component == -1);
+ }
+
if (! CCTK_QueryGroupStorageI(cgh, group)) {
CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
"Cannot synchronise group \"%s\" because it has no storage",
@@ -44,6 +56,8 @@ namespace Carpet {
return -1;
}
+ if (CCTK_NumVarsInGroupI(group)==0) return 0;
+
const int n0 = CCTK_FirstVarIndexI(group);
assert (n0>=0);
const int num_tl = CCTK_NumTimeLevelsFromVarI(n0);
@@ -52,19 +66,19 @@ namespace Carpet {
assert (group<(int)arrdata.size());
for (int var=0; var<(int)arrdata[group].data.size(); ++var) {
- if (CCTK_GroupTypeI(group) == CCTK_GF) {
+ 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) {
+ 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);
+ }
+
for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
- // use the current time here (which may be modified by the
- // user)
- const CCTK_REAL time = cgh->cctk_time / base_delta_time;
- if (false) {
- const CCTK_REAL time1 = tt->time (tl, reflevel, mglevel);
- const CCTK_REAL time2 = cgh->cctk_time / base_delta_time;
- assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(base_delta_time))) < 1e-12);
- }
-
arrdata[group].data[var]->ref_bnd_prolongate
(tl, reflevel, c, mglevel, time);
}
@@ -73,9 +87,11 @@ namespace Carpet {
Checkpoint ("%*s(no prolongating for group %s)",
2*reflevel, "", groupname);
}
- }
- for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
- arrdata[group].data[var]->sync (tl, reflevel, c, mglevel);
+ for (int c=0; c<arrdata[group].hh->components(reflevel); ++c) {
+ arrdata[group].data[var]->sync (tl, reflevel, c, mglevel);
+ }
+ } else { // grouptype != CCTK_GF
+ arrdata[group].data[var]->sync (0, 0, 0, 0);
}
}
diff --git a/Carpet/Carpet/src/Evolve.cc b/Carpet/Carpet/src/Evolve.cc
index b20b7d1cd..ebf6f4a66 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.21 2003/05/08 15:35:49 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Evolve.cc,v 1.22 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Evolve_cc);
}
@@ -139,13 +139,11 @@ namespace Carpet {
// Advance level times
tt->advance_time (reflevel, mglevel);
-
- // TODO: set cctk_time in set_mglevel
- cgh->cctk_time
- = tt->time (0, reflevel, mglevel) * base_delta_time;
+ cgh->cctk_time = cctk_initial_time + tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
// Cycle time levels
@@ -170,14 +168,14 @@ namespace Carpet {
CalculateChecksums (cgh, currenttime);
}
- } END_MGLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
// Regrid
Waypoint ("%*sRegrid", 2*reflevel, "");
Regrid (cgh);
}
- } END_REFLEVEL_LOOP(cgh);
+ } END_REFLEVEL_LOOP;
@@ -191,13 +189,11 @@ namespace Carpet {
do_global_mode = cgh->cctk_iteration >= next_global_mode_iter_loop2;
next_global_mode_iter_loop2 = cgh->cctk_iteration + 1;
-
- cgh->cctk_time
- = tt->time (0, reflevel, mglevel) * base_delta_time;
// Restrict
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
Restrict (cgh);
@@ -205,10 +201,10 @@ namespace Carpet {
CCTK_ScheduleTraverse ("POSTRESTRICT", cgh, CallFunction);
}
- } END_MGLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
}
- } END_REVERSE_REFLEVEL_LOOP(cgh);
+ } END_REVERSE_REFLEVEL_LOOP;
@@ -223,11 +219,9 @@ namespace Carpet {
do_global_mode = cgh->cctk_iteration >= next_global_mode_iter_loop3;
next_global_mode_iter_loop3 = cgh->cctk_iteration + 1;
- cgh->cctk_time
- = tt->time (0, reflevel, mglevel) * base_delta_time;
-
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
// Checkpoint
@@ -246,10 +240,10 @@ namespace Carpet {
CheckChecksums (cgh, alltimes);
}
- } END_MGLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
}
- } END_REFLEVEL_LOOP(cgh);
+ } END_REFLEVEL_LOOP;
} // main loop
diff --git a/Carpet/Carpet/src/Initialise.cc b/Carpet/Carpet/src/Initialise.cc
index 91b8599a3..49b1b8da1 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.29 2003/05/27 12:01:11 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Initialise.cc,v 1.30 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Initialise_cc);
}
@@ -42,7 +42,6 @@ namespace Carpet {
// Initialise stuff
cgh->cctk_iteration = 0;
- cgh->cctk_time = cctk_initial_time;
do_global_mode = true;
// Enable storage and communtication
@@ -65,10 +64,12 @@ namespace Carpet {
BEGIN_MGLEVEL_LOOP(cgh) {
+ cgh->cctk_time = cctk_initial_time + tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
do_global_mode = reflevel == 0;
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
// Checking
@@ -78,20 +79,6 @@ namespace Carpet {
Waypoint ("%*sScheduling BASEGRID", 2*reflevel, "");
CCTK_ScheduleTraverse ("CCTK_BASEGRID", cgh, CallFunction);
- // Allow the time step to be changed
- if (reflevel==0) {
- // Initialise time and time step on coarse grid
- base_delta_time = cgh->cctk_delta_time;
- for (int d=0; d<dim; ++d) {
- base_origin_space[d] = cgh->cctk_origin_space[d];
- }
- } 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 * mglevelfact;
- }
-
if (! init_each_timelevel) {
// Set up the initial data
@@ -103,7 +90,7 @@ namespace Carpet {
} else {
// init_each_timelevel
- bool const orig_do_global_mode = do_global_mode;
+ bool const saved_do_global_mode = do_global_mode;
tt->set_delta
(reflevel, mglevel, - tt->get_delta (reflevel, mglevel));
@@ -115,18 +102,18 @@ namespace Carpet {
for (int tl=-2; tl<=0; ++tl) {
- do_global_mode = orig_do_global_mode && tl==0;
+ do_global_mode = saved_do_global_mode && tl==0;
// Advance level times
tt->advance_time (reflevel, mglevel);
- cgh->cctk_time
- = tt->time (0, reflevel, mglevel) * base_delta_time;
+ cgh->cctk_time = cctk_initial_time + tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
// Cycle time levels
CycleTimeLevels (cgh);
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
// Set up the initial data
@@ -137,7 +124,7 @@ namespace Carpet {
} // for tl
- do_global_mode = orig_do_global_mode;
+ do_global_mode = saved_do_global_mode;
} // init_each_timelevel
@@ -148,13 +135,13 @@ namespace Carpet {
// Checking
PoisonCheck (cgh, alltimes);
- } END_MGLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
// Regrid
Waypoint ("%*sRegrid", 2*reflevel, "");
Regrid (cgh, reflevel);
- } END_REFLEVEL_LOOP(cgh);
+ } END_REFLEVEL_LOOP;
@@ -164,18 +151,20 @@ namespace Carpet {
do_global_mode = reflevel == 0;
- // Restrict
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
+
+ // Restrict
Restrict (cgh);
Waypoint ("%*sScheduling POSTRESTRICT", 2*reflevel, "");
CCTK_ScheduleTraverse ("POSTRESTRICT", cgh, CallFunction);
- } END_MGLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
- } END_REVERSE_REFLEVEL_LOOP(cgh);
+ } END_REVERSE_REFLEVEL_LOOP;
@@ -192,8 +181,9 @@ namespace Carpet {
do_global_mode = reflevel == 0;
- Waypoint ("%*sCurrent time is %g%s", 2*reflevel, "",
+ Waypoint ("%*sCurrent time is %g, delta is %g%s", 2*reflevel, "",
cgh->cctk_time,
+ cgh->cctk_delta_time / cgh->cctk_timefac,
do_global_mode ? " (global time)" : "");
// Checking
@@ -216,9 +206,9 @@ namespace Carpet {
// Checking
CheckChecksums (cgh, allbutcurrenttime);
- } END_MGLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
- } END_REFLEVEL_LOOP(cgh);
+ } END_REFLEVEL_LOOP;
Waypoint ("done with Initialise.");
@@ -239,7 +229,6 @@ namespace Carpet {
BEGIN_REFLEVEL_LOOP(cgh) {
BEGIN_MGLEVEL_LOOP(cgh) {
- cgh->cctk_time = cctk_initial_time;
// Cycle time levels (ignore arrays)
cout << "3TL rl=" << reflevel << " cycling" << endl;
@@ -247,10 +236,10 @@ namespace Carpet {
// Advance level times
tt->advance_time (reflevel, mglevel);
- cgh->cctk_time += cgh->cctk_delta_time;
+ cgh->cctk_time = cctk_initial_time + tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
cout << "3TL rl=" << reflevel << " ml=" << mglevel
<< " time=" << tt->get_time (reflevel, mglevel)
- << " time=" << cgh->cctk_time / base_delta_time << endl;
+ << " time=" << cgh->cctk_time / cgh->cctk_delta_time << endl;
// Evolve forward
Waypoint ("%*sScheduling PRESTEP", 2*reflevel, "");
@@ -271,11 +260,11 @@ namespace Carpet {
tt->advance_time (rl, mglevel);
}
cgh->cctk_delta_time *= -1;
- cgh->cctk_time += cgh->cctk_delta_time;
- cgh->cctk_time += cgh->cctk_delta_time;
+ delta_time *= -1;
+ cgh->cctk_time = cctk_initial_time - tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
cout << "3TL rl=" << reflevel << " ml=" << mglevel
<< " time=" << tt->get_time (reflevel, mglevel)
- << " time=" << cgh->cctk_time / base_delta_time << endl;
+ << " time=" << cgh->cctk_time / cgh->cctk_delta_time << endl;
// Evolve backward
Waypoint ("%*sScheduling PRESTEP", 2*reflevel, "");
@@ -296,14 +285,14 @@ namespace Carpet {
tt->advance_time (rl, mglevel);
}
cgh->cctk_delta_time *= -1;
- cgh->cctk_time += cgh->cctk_delta_time;
- cgh->cctk_time += cgh->cctk_delta_time;
+ delta_time *= -1;
+ cgh->cctk_time = cctk_initial_time + tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
cout << "3TL rl=" << reflevel << " ml=" << mglevel
<< " time=" << tt->get_time (reflevel, mglevel)
- << " time=" << cgh->cctk_time / base_delta_time << endl;
+ << " time=" << cgh->cctk_time / cgh->cctk_delta_time << endl;
- } END_MGLEVEL_LOOP(cgh);
- } END_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
+ } END_REFLEVEL_LOOP;
cout << "Hourglass structure in place" << endl;
@@ -315,7 +304,7 @@ namespace Carpet {
BEGIN_REVERSE_REFLEVEL_LOOP(cgh) {
BEGIN_MGLEVEL_LOOP(cgh) {
- cgh->cctk_time = cctk_initial_time + cgh->cctk_delta_time;
+ cgh->cctk_time = cctk_initial_time + cgh->cctk_delta_time / cgh->cctk_timefac;
// Restrict
cout << "3TL rl=" << reflevel << " restricting" << endl;
@@ -335,11 +324,11 @@ namespace Carpet {
tt->advance_time (rl, mglevel);
}
cgh->cctk_delta_time *= -1;
- cgh->cctk_time += cgh->cctk_delta_time;
- cgh->cctk_time += cgh->cctk_delta_time;
+ delta_time *= -1;
+ cgh->cctk_time = cctk_initial_time - tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
cout << "3TL rl=" << reflevel << " ml=" << mglevel
<< " time=" << tt->get_time (reflevel, mglevel)
- << " time=" << cgh->cctk_time / base_delta_time << endl;
+ << " time=" << cgh->cctk_time / cgh->cctk_delta_time << endl;
// Cycle time levels
cout << "3TL rl=" << reflevel << " cycling" << endl;
@@ -347,10 +336,10 @@ namespace Carpet {
// Advance level times
tt->advance_time (reflevel, mglevel);
- cgh->cctk_time += cgh->cctk_delta_time;
+ cgh->cctk_time = cctk_initial_time - tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
cout << "3TL rl=" << reflevel << " ml=" << mglevel
<< " time=" << tt->get_time (reflevel, mglevel)
- << " time=" << cgh->cctk_time / base_delta_time << endl;
+ << " time=" << cgh->cctk_time / cgh->cctk_delta_time << endl;
// Evolve backward
Waypoint ("%*sScheduling PRESTEP", 2*reflevel, "");
@@ -371,18 +360,17 @@ namespace Carpet {
tt->advance_time (rl, mglevel);
}
cgh->cctk_delta_time *= -1;
- cgh->cctk_time += cgh->cctk_delta_time;
- cgh->cctk_time += cgh->cctk_delta_time;
+ delta_time *= -1;
+ cgh->cctk_time = cctk_initial_time + tt->time (0, reflevel, mglevel) * cgh->cctk_delta_time;
cout << "3TL rl=" << reflevel << " ml=" << mglevel
<< " time=" << tt->get_time (reflevel, mglevel)
- << " time=" << cgh->cctk_time / base_delta_time << endl;
+ << " time=" << cgh->cctk_time / cgh->cctk_delta_time << endl;
- } END_MGLEVEL_LOOP(cgh);
- } END_REVERSE_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
+ } END_REVERSE_REFLEVEL_LOOP;
// Reset stuff
cgh->cctk_iteration = 0;
- cgh->cctk_time = cctk_initial_time;
CCTK_INFO ("Finished initialising three timelevels");
}
diff --git a/Carpet/Carpet/src/Poison.cc b/Carpet/Carpet/src/Poison.cc
index a698e1574..8cf7df051 100644
--- a/Carpet/Carpet/src/Poison.cc
+++ b/Carpet/Carpet/src/Poison.cc
@@ -8,7 +8,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Poison.cc,v 1.11 2003/05/23 23:51:17 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Poison.cc,v 1.12 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Poison_cc);
}
@@ -38,6 +38,7 @@ namespace Carpet {
void PoisonGroup (cGH* cgh, const int group, const checktimes where)
{
DECLARE_CCTK_PARAMETERS;
+ int ierr;
assert (group>=0 && group<CCTK_NumGroups());
@@ -63,23 +64,20 @@ namespace Carpet {
const int min_tl = mintl(where, num_tl);
const int max_tl = maxtl(where, num_tl);
- int np = 1;
const int gpdim = CCTK_GroupDimI(group);
- for (int d=0; d<gpdim; ++d) {
- np *= *CCTK_ArrayGroupSizeI(cgh, d, group);
- }
- if (CCTK_GroupTypeI(group) == CCTK_GF) {
+ const int grouptype = CCTK_GroupTypeI(group);
+
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, grouptype) {
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
- for (int n=var0; n<var0+nvar; ++n) {
- for (int tl=min_tl; tl<=max_tl; ++tl) {
- memset (cgh->data[n][tl], poison_value, np*sz);
- } // for tl
- } // for var
- } END_LOCAL_COMPONENT_LOOP(cgh);
+ vector<int> lsh(gpdim);
+ ierr = CCTK_GrouplshGI (cgh, gpdim, &lsh[0], group);
+ assert (!ierr);
- } else {
+ int np = 1;
+ for (int d=0; d<gpdim; ++d) {
+ np *= lsh[d];
+ }
for (int n=var0; n<var0+nvar; ++n) {
for (int tl=min_tl; tl<=max_tl; ++tl) {
@@ -87,7 +85,7 @@ namespace Carpet {
} // for tl
} // for var
- } // group type != gf
+ } END_LOCAL_COMPONENT_LOOP;
}
@@ -104,6 +102,8 @@ namespace Carpet {
if (CCTK_QueryGroupStorageI(cgh, group)) {
for (int var=0; var<CCTK_NumVarsInGroupI(group); ++var) {
+ const int grouptype = CCTK_GroupTypeI(group);
+
const int n = CCTK_FirstVarIndexI(group) + var;
const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
@@ -113,7 +113,7 @@ namespace Carpet {
for (int tl=min_tl; tl<=max_tl; ++tl) {
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, grouptype) {
vect<int,dim> size(1);
const int gpdim = arrdata[group].info.dim;
for (int d=0; d<gpdim; ++d) {
@@ -161,7 +161,7 @@ namespace Carpet {
fullname, numpoison, tl);
free (fullname);
}
- } END_LOCAL_COMPONENT_LOOP(cgh);
+ } END_LOCAL_COMPONENT_LOOP;
} // for tl
diff --git a/Carpet/Carpet/src/Restrict.cc b/Carpet/Carpet/src/Restrict.cc
index c96ec56a7..810174f18 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.15 2003/05/14 08:33:37 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Restrict.cc,v 1.16 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Restrict_cc);
}
@@ -42,8 +42,8 @@ namespace Carpet {
const CCTK_REAL time = tt->time (tl, reflevel, mglevel);
if (tl==0) {
const CCTK_REAL time1 = tt->time (tl, reflevel, mglevel);
- const CCTK_REAL time2 = cgh->cctk_time / base_delta_time;
- assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(base_delta_time))) < 1e-12);
+ const CCTK_REAL time2 = cgh->cctk_time / cgh->cctk_delta_time;
+ assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(cgh->cctk_delta_time))) < 1e-12);
}
if (mglevel > 0) {
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 786320839..809a1e43a 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.45 2003/05/23 23:51:17 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.46 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_SetupGH_cc);
}
@@ -461,8 +461,15 @@ namespace Carpet {
// Initialise time step on coarse grid
- base_delta_time = 1.0;
- base_origin_space = vect<CCTK_REAL,dim>((CCTK_REAL)0);
+ cgh->cctk_timefac = 1;
+ for (int d=0; d<dim; ++d) {
+ cgh->cctk_levoff[d] = 0;
+ cgh->cctk_levoffdenom[d] = 1;
+ }
+
+ refleveltimes.resize (maxreflevels);
+ cgh->cctk_time = 0xdeadbeef;
+ cgh->cctk_delta_time = 0xdeadbeef;
@@ -473,8 +480,8 @@ namespace Carpet {
for (int group=0; group<CCTK_NumGroups(); ++group) {
EnableGroupStorage (cgh, CCTK_GroupName(group));
}
- } END_MGLEVEL_LOOP(cgh);
- } END_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
+ } END_REFLEVEL_LOOP;
}
Waypoint ("done with SetupGH.");
diff --git a/Carpet/Carpet/src/Shutdown.cc b/Carpet/Carpet/src/Shutdown.cc
index 67759e342..24e41a912 100644
--- a/Carpet/Carpet/src/Shutdown.cc
+++ b/Carpet/Carpet/src/Shutdown.cc
@@ -10,7 +10,7 @@
#include "carpet.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Shutdown.cc,v 1.9 2003/05/08 15:35:49 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Shutdown.cc,v 1.10 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Shutdown_cc);
}
@@ -34,7 +34,6 @@ namespace Carpet {
Waypoint ("Current time is %g", cgh->cctk_time);
BEGIN_REFLEVEL_LOOP(cgh) {
-
BEGIN_MGLEVEL_LOOP(cgh) {
do_global_mode = reflevel == 0;
@@ -47,14 +46,13 @@ namespace Carpet {
Waypoint ("%*sScheduling TERMINATE", 2*reflevel, "");
CCTK_ScheduleTraverse ("CCTK_TERMINATE", cgh, CallFunction);
- } END_MGLEVEL_LOOP(cgh);
-
- } END_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
+ } END_REFLEVEL_LOOP;
do_global_mode = true;
// Shutdown
- Waypoint ("%*sScheduling SHUTDOWN", 2*reflevel, "");
+ Waypoint ("Scheduling SHUTDOWN");
CCTK_ScheduleTraverse ("CCTK_SHUTDOWN", cgh, CallFunction);
CCTK_PRINTSEPARATOR;
diff --git a/Carpet/Carpet/src/Storage.cc b/Carpet/Carpet/src/Storage.cc
index 86ddd3817..ef2477333 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.20 2003/05/27 12:01:11 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Storage.cc,v 1.21 2003/06/18 18:24:27 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_Storage_cc);
}
@@ -44,7 +44,10 @@ namespace Carpet {
const int grouptype = CCTK_GroupTypeI(group);
// No storage change in local mode
- assert (! (component!=-1 && grouptype==CCTK_GF));
+ if (grouptype == CCTK_GF) {
+ assert (reflevel == -1
+ || hh->local_components(reflevel) == 1 || component == -1);
+ }
if (CCTK_QueryGroupStorageI(cgh, group)) {
// storage was enabled previously
@@ -94,11 +97,12 @@ namespace Carpet {
for (int var=0; var<(int)arrdata[group].data.size(); ++var) {
const int n = n0 + var;
switch (CCTK_VarTypeI(n)) {
-#define TYPECASE(N,T) \
- case N: \
- arrdata[group].data[var] = new gf<T,dim> \
- (CCTK_VarName(n), *arrdata[group].tt, *arrdata[group].dd, \
- tmin, tmax, my_prolongation_order_time); \
+#define TYPECASE(N,T) \
+ case N: \
+ assert (! arrdata[group].data[var]); \
+ arrdata[group].data[var] = new gf<T,dim> \
+ (CCTK_VarName(n), *arrdata[group].tt, *arrdata[group].dd, \
+ tmin, tmax, my_prolongation_order_time); \
break;
#include "typecase"
#undef TYPECASE
@@ -115,7 +119,7 @@ namespace Carpet {
} // for
- PoisonGroup (cgh, group, alltimes);
+// PoisonGroup (cgh, group, alltimes);
// storage was not enabled previously
return 0;
@@ -152,9 +156,11 @@ namespace Carpet {
for (int var=0; var<(int)arrdata[group].data.size(); ++var) {
const int n = n0 + var;
switch (CCTK_VarTypeI(n)) {
-#define TYPECASE(N,T) \
- case N: \
- delete (gf<T,dim>*)arrdata[group].data[var]; \
+#define TYPECASE(N,T) \
+ case N: \
+ assert (arrdata[group].data[var]); \
+ delete (gf<T,dim>*)arrdata[group].data[var]; \
+ arrdata[group].data[var] = 0; \
break;
#include "typecase"
#undef TYPECASE
diff --git a/Carpet/Carpet/src/carpet_public.hh b/Carpet/Carpet/src/carpet_public.hh
index f74274b8f..11aa9390b 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.28 2003/05/23 23:51:17 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.29 2003/06/18 18:24:28 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,13 +73,9 @@ namespace Carpet {
// Is this the time for a global mode call?
extern bool do_global_mode;
-
-
- // Time step on base grid
- extern CCTK_REAL base_delta_time;
-
- // Spatial origin on base grid
- extern vect<CCTK_REAL,dim> base_origin_space;
+ // Current times on the refinement levels
+ extern vector<CCTK_REAL> refleveltimes;
+ extern CCTK_REAL delta_time;
@@ -163,99 +159,117 @@ namespace Carpet {
// Refinement level iterator
-#define BEGIN_REFLEVEL_LOOP(cgh) \
- do { \
- int _rll; \
- assert (reflevel==-1); \
- for (int _rl=0; _rl<hh->reflevels(); ++_rl) { \
- set_reflevel ((cGH*)(cgh), _rl); \
+#define BEGIN_REFLEVEL_LOOP(cgh) \
+ do { \
+ int _rll; \
+ cGH * const _cgh = const_cast<cGH*>(cgh); \
+ assert (reflevel==-1); \
+ for (int _rl=0; _rl<hh->reflevels(); ++_rl) { \
+ set_reflevel (_cgh, _rl); \
{
-#define END_REFLEVEL_LOOP(cgh) \
- } \
- } \
- set_reflevel ((cGH*)(cgh), -1); \
- assert (reflevel==-1); \
- _rll = 0; \
+#define END_REFLEVEL_LOOP \
+ } \
+ } \
+ set_reflevel (_cgh, -1); \
+ _rll = 0; \
} while (0)
// Reverse refinement level iterator
-#define BEGIN_REVERSE_REFLEVEL_LOOP(cgh) \
- do { \
- int _rrll; \
- assert (reflevel==-1); \
- for (int _rl=hh->reflevels()-1; _rl>=0; --_rl) { \
- set_reflevel ((cGH*)(cgh), _rl); \
+#define BEGIN_REVERSE_REFLEVEL_LOOP(cgh) \
+ do { \
+ int _rrll; \
+ cGH * const _cgh = const_cast<cGH*>(cgh); \
+ assert (reflevel==-1); \
+ for (int _rl=hh->reflevels()-1; _rl>=0; --_rl) { \
+ set_reflevel (_cgh, _rl); \
{
-#define END_REVERSE_REFLEVEL_LOOP(cgh) \
- } \
- } \
- set_reflevel ((cGH*)(cgh), -1); \
- assert (reflevel==-1); \
- _rrll = 0; \
+#define END_REVERSE_REFLEVEL_LOOP \
+ } \
+ } \
+ set_reflevel (_cgh, -1); \
+ _rrll = 0; \
} while (0)
// 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 BEGIN_MGLEVEL_LOOP(cgh) \
+ do { \
+ int _mgl; \
+ cGH * const _cgh = const_cast<cGH*>(cgh); \
+ assert (reflevel>=0 && reflevel<hh->reflevels()); \
+ assert (mglevel==-1); \
+ for (int _ml=mglevels-1; _ml>=0; --_ml) { \
+ set_mglevel (_cgh, _ml); \
{
-#define END_MGLEVEL_LOOP(cgh) \
- } \
- } \
- set_mglevel ((cGH*)(cgh), -1); \
- assert (mglevel==-1); \
- _mgl = 0; \
+#define END_MGLEVEL_LOOP \
+ } \
+ } \
+ set_mglevel (_cgh, -1); \
+ _mgl = 0; \
} while (0)
// Component iterator
-#define BEGIN_COMPONENT_LOOP(cgh) \
+#define BEGIN_COMPONENT_LOOP(cgh, grouptype) \
do { \
int _cl; \
- assert (reflevel>=0 && reflevel<hh->reflevels()); \
- assert (mglevel>=0 && mglevel<mglevels); \
- assert (hh->local_components(reflevel)==1 || component==-1); \
- int const _saved_component = component; \
- for (int _c=0; _c<hh->components(reflevel); ++_c) { \
- set_component ((cGH*)(cgh), _c); \
+ cGH * const _cgh = const_cast<cGH*>(cgh); \
+ int const _grouptype = (grouptype); \
+ int _mincl, _maxcl; \
+ if (_grouptype == CCTK_GF) { \
+ assert (reflevel>=0 && reflevel<hh->reflevels()); \
+ assert (mglevel>=0 && mglevel<mglevels); \
+ assert (hh->local_components(reflevel)==1 || component==-1); \
+ _mincl=0; \
+ _maxcl=hh->components(reflevel); \
+ } else { \
+ _mincl=component; \
+ _maxcl=component; \
+ } \
+ for (int _c=_mincl; _c<_maxcl; ++_c) { \
+ if (_grouptype==CCTK_GF) set_component (_cgh, _c); \
{
-#define END_COMPONENT_LOOP(cgh) \
+#define END_COMPONENT_LOOP \
} \
} \
- set_component ((cGH*)(cgh), _saved_component); \
+ if (_grouptype==CCTK_GF) set_component (_cgh, -1); \
_cl = 0; \
} while (0)
-#define BEGIN_LOCAL_COMPONENT_LOOP(cgh) \
+#define BEGIN_LOCAL_COMPONENT_LOOP(cgh, grouptype) \
do { \
int _lcl; \
- assert (reflevel>=0 && reflevel<hh->reflevels()); \
- assert (mglevel>=0 && mglevel<mglevels); \
- assert (hh->local_components(reflevel)==1 || component==-1); \
- int const _saved_component = component; \
- for (int _c=0; _c<hh->components(reflevel); ++_c) { \
- if (hh->is_local(reflevel,_c)) { \
- set_component ((cGH*)(cgh), _c); \
- {
-#define END_LOCAL_COMPONENT_LOOP(cgh) \
- } \
+ cGH * const _cgh = const_cast<cGH*>(cgh); \
+ int const _grouptype = (grouptype); \
+ int _mincl, _maxcl; \
+ if (_grouptype == CCTK_GF) { \
+ assert (reflevel>=0 && reflevel<hh->reflevels()); \
+ assert (mglevel>=0 && mglevel<mglevels); \
+ assert (hh->local_components(reflevel)==1 || component==-1); \
+ _mincl=0; \
+ _maxcl=hh->components(reflevel); \
+ } else { \
+ _mincl=component; \
+ _maxcl=component; \
+ } \
+ for (int _c=_mincl; _c<_maxcl; ++_c) { \
+ if (_grouptype==CCTK_GF || hh->is_local(reflevel,_c)) { \
+ if (_grouptype==CCTK_GF) set_component (_cgh, _c); \
+ {
+#define END_LOCAL_COMPONENT_LOOP \
+ } \
} \
} \
- set_component ((cGH*)(cgh), _saved_component); \
+ if (_grouptype==CCTK_GF) set_component (_cgh, -1); \
_lcl = 0; \
} while (0)
diff --git a/Carpet/Carpet/src/helpers.cc b/Carpet/Carpet/src/helpers.cc
index 1d9eea288..430966caf 100644
--- a/Carpet/Carpet/src/helpers.cc
+++ b/Carpet/Carpet/src/helpers.cc
@@ -5,6 +5,7 @@
#include <mpi.h>
#include "cctk.h"
+#include "cctk_FortranString.h"
#include "cctk_Parameters.h"
#include "Carpet/CarpetLib/src/defs.hh"
@@ -14,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.35 2003/05/27 12:01:11 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.36 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_helpers_cc);
}
@@ -216,6 +217,15 @@ namespace Carpet {
assert (reflevel>=0 && reflevel<hh->reflevels());
assert (component == -1);
+ // Save
+ if (mglevel == -1) {
+ assert (cgh->cctk_time == 0xdeadbeef);
+ assert (cgh->cctk_delta_time == 0xdeadbeef);
+ } else {
+ refleveltimes[reflevel] = cgh->cctk_time;
+ delta_time = cgh->cctk_delta_time;
+ }
+
// Change
mglevel = ml;
mglevelfact = ipow(mgfact, mglevel);
@@ -227,10 +237,13 @@ namespace Carpet {
mglevelfact = 0xdeadbeef;
cgh->cctk_convlevel = 0xdeadbeef;
- cgh->cctk_delta_time = 0xdeadbeef;
+ cgh->cctk_timefac = 0;
for (int d=0; d<dim; ++d) {
- cgh->cctk_origin_space[d] = 0xdeadbeef;
+ cgh->cctk_levoff[d] = 0xdeadbeef;
+ cgh->cctk_levoffdenom[d] = 0xdeadbeef;
}
+ cgh->cctk_time = 0xdeadbeef;
+ cgh->cctk_delta_time = 0xdeadbeef;
vect<int,dim>::ref(cgh->cctk_gsh) = 0xdeadbeef;
for (int group=0; group<CCTK_NumGroups(); ++group) {
@@ -244,17 +257,18 @@ namespace Carpet {
mglevelfact = ipow(mgfact, mglevel);
cgh->cctk_convlevel = mglevel;
- // TODO: set cctk_time here as well
- cgh->cctk_delta_time = base_delta_time / reflevelfact * mglevelfact;
+ const bbox<int,dim>& baseext = dd->bases[reflevel][mglevel].exterior;
- {
- const bbox<int,dim>& baseext = dd->bases[reflevel][mglevel].exterior;
- for (int d=0; d<dim; ++d) {
- cgh->cctk_origin_space[d] = base_origin_space[d] + cgh->cctk_delta_space[d] / maxreflevelfact * baseext.lower()[d];
- }
+ assert (mglevelfact==1);
+ cgh->cctk_timefac = reflevelfact / mglevelfact;
+ cgh->cctk_time = refleveltimes[reflevel];
+ cgh->cctk_delta_time = delta_time;
+ for (int d=0; d<dim; ++d) {
+ assert (baseext.lower()[d] * reflevelfact % maxreflevelfact == 0);
+ cgh->cctk_levoff[d] = baseext.lower()[d] * reflevelfact / maxreflevelfact;
+ cgh->cctk_levoffdenom[d] = 1;
}
- const bbox<int,dim>& baseext = dd->bases[reflevel][mglevel].exterior;
vect<int,dim>::ref(cgh->cctk_gsh) = baseext.shape() / baseext.stride();
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_GroupTypeI(group) == CCTK_GF) {
@@ -355,15 +369,6 @@ namespace Carpet {
}
-#if 0
- cout << "set_component: reflevel=" << reflevel << endl;
- cout << "set_component: gsh=[" << cgh->cctk_gsh[0] << "," << cgh->cctk_gsh[1] << "," << cgh->cctk_gsh[2] << "]" << endl;
- cout << "set_component: lsh=[" << cgh->cctk_lsh[0] << "," << cgh->cctk_lsh[1] << "," << cgh->cctk_lsh[2] << "]" << endl;
- cout << "set_component: lbnd=[" << cgh->cctk_lbnd[0] << "," << cgh->cctk_lbnd[1] << "," << cgh->cctk_lbnd[2] << "]" << endl;
- cout << "set_component: origin_space=[" << cgh->cctk_origin_space[0] << "," << cgh->cctk_origin_space[1] << "," << cgh->cctk_origin_space[2] << "]" << endl;
- cout << "set_component: delta_space=[" << cgh->cctk_delta_space[0] << "," << cgh->cctk_delta_space[1] << "," << cgh->cctk_delta_space[2] << "]" << endl;
-#endif
-
for (int group=0; group<CCTK_NumGroups(); ++group) {
if (CCTK_GroupTypeI(group) == CCTK_GF) {
@@ -435,6 +440,14 @@ namespace Carpet {
return 0;
}
+ extern "C" void CCTK_FCALL CCTK_FNAME(CallScheduleGroup)
+ (int * const ierr, cGH * const cgh, ONE_FORTSTRING_ARG)
+ {
+ ONE_FORTSTRING_CREATE (group);
+ *ierr = CallScheduleGroup (cgh, group);
+ free (group);
+ }
+
// This is a temporary measure to call a local mode function from a
@@ -448,16 +461,16 @@ namespace Carpet {
// we are in global mode
BEGIN_REFLEVEL_LOOP(cgh) {
BEGIN_MGLEVEL_LOOP(cgh) {
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, CCTK_GF) {
function (cgh);
- } END_LOCAL_COMPONENT_LOOP(cgh);
- } END_MGLEVEL_LOOP(cgh);
- } END_REFLEVEL_LOOP(cgh);
+ } END_LOCAL_COMPONENT_LOOP;
+ } END_MGLEVEL_LOOP;
+ } END_REFLEVEL_LOOP;
} else {
// we are in level mode
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, CCTK_GF) {
function (cgh);
- } END_LOCAL_COMPONENT_LOOP(cgh);
+ } END_LOCAL_COMPONENT_LOOP;
}
return 0;
}
@@ -469,8 +482,8 @@ namespace Carpet {
BEGIN_REFLEVEL_LOOP(cgh) {
BEGIN_MGLEVEL_LOOP(cgh) {
function (cgh);
- } END_MGLEVEL_LOOP(cgh);
- } END_REFLEVEL_LOOP(cgh);
+ } END_MGLEVEL_LOOP;
+ } END_REFLEVEL_LOOP;
return 0;
}
diff --git a/Carpet/Carpet/src/variables.cc b/Carpet/Carpet/src/variables.cc
index 648d84b92..886146a10 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.14 2003/05/12 16:24:25 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.15 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_Carpet_variables_cc);
}
@@ -55,13 +55,9 @@ namespace Carpet {
// Is this the time for a global mode call?
bool do_global_mode;
-
-
- // Time step on base grid
- CCTK_REAL base_delta_time;
-
- // Spatial origin on base grid
- vect<CCTK_REAL,dim> base_origin_space;
+ // Current times on the refinement levels
+ vector<CCTK_REAL> refleveltimes;
+ CCTK_REAL delta_time;
diff --git a/Carpet/CarpetIOASCII/param.ccl b/Carpet/CarpetIOASCII/param.ccl
index 69cc43294..be609ca6a 100644
--- a/Carpet/CarpetIOASCII/param.ccl
+++ b/Carpet/CarpetIOASCII/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn CarpetIOASCII
-# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/param.ccl,v 1.7 2002/10/24 12:00:34 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/param.ccl,v 1.8 2003/06/18 18:24:28 schnetter Exp $
@@ -51,6 +51,12 @@ BOOLEAN out3D_outer_ghosts "Output outer boundary ghost zones as well"
+BOOLEAN output_all_timelevels "Output all timelevels instead of only the current"
+{
+} "no"
+
+
+
BOOLEAN separate_grids "Separate grid levels in the output file by additional empty lines"
{
} "yes"
diff --git a/Carpet/CarpetIOASCII/src/ioascii.cc b/Carpet/CarpetIOASCII/src/ioascii.cc
index 3c2796570..247705e62 100644
--- a/Carpet/CarpetIOASCII/src/ioascii.cc
+++ b/Carpet/CarpetIOASCII/src/ioascii.cc
@@ -30,7 +30,7 @@
#include "ioascii.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/src/ioascii.cc,v 1.48 2003/05/13 16:32:10 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/src/ioascii.cc,v 1.49 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetIOASCII_ioascii_cc);
}
@@ -166,7 +166,8 @@ namespace CarpetIOASCII {
assert (n0>=0 && n0<CCTK_NumVars());
const int var = n - n0;
assert (var>=0 && var<CCTK_NumVars());
- const int tl = 0;
+ const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
+ assert (num_tl>=1);
// Check for storage
if (! CCTK_QueryGroupStorageI(cgh, group)) {
@@ -176,6 +177,9 @@ namespace CarpetIOASCII {
return 0;
}
+ const int grouptype = CCTK_GroupTypeI(group);
+ const int rl = grouptype==CCTK_GF ? reflevel : 0;
+
// Get grid hierarchy extentsion from IOUtil
const ioGH * const iogh = (const ioGH *)CCTK_GHExtension (cgh, "IO");
assert (iogh);
@@ -359,80 +363,88 @@ namespace CarpetIOASCII {
// Traverse all components on this refinement and multigrid
// level
- BEGIN_COMPONENT_LOOP(cgh) {
+ BEGIN_COMPONENT_LOOP(cgh, grouptype) {
const ggf<dim>* ff = 0;
assert (var < (int)arrdata[group].data.size());
ff = (ggf<dim>*)arrdata[group].data[var];
- const gdata<dim>* const data
- = (*ff) (tl, reflevel, component, mglevel);
- bbox<int,dim> ext = data->extent();
-
- vect<int,dim> lo = ext.lower();
- vect<int,dim> hi = ext.upper();
- vect<int,dim> str = ext.stride();
-
- // Ignore ghost zones if desired
- for (int d=0; d<dim; ++d) {
- bool output_lower_ghosts
- = cgh->cctk_bbox[2*d] ? out3D_outer_ghosts : out3D_ghosts;
- bool output_upper_ghosts
- = cgh->cctk_bbox[2*d+1] ? out3D_outer_ghosts : out3D_ghosts;
-
- if (! output_lower_ghosts) {
- lo[d] += cgh->cctk_nghostzones[d] * str[d];
- }
- if (! output_upper_ghosts) {
- hi[d] -= cgh->cctk_nghostzones[d] * str[d];
- }
- }
- ext = bbox<int,dim>(lo,hi,str);
-
- // coordinates
- const CCTK_REAL coord_time = cgh->cctk_time;
- vect<CCTK_REAL,dim> global_lower, global_upper;
- vect<CCTK_REAL,dim> coord_delta;
- if (CCTK_GroupTypeI(group) == CCTK_GF) {
+ const int mintl = output_all_timelevels ? 1-num_tl : 0;
+ const int maxtl = 0;
+ for (int tl=mintl; tl<=maxtl; ++tl) {
+
+ const gdata<dim>* const data
+ = (*ff) (tl, rl, component, mglevel);
+ bbox<int,dim> ext = data->extent();
+
+ vect<int,dim> lo = ext.lower();
+ vect<int,dim> hi = ext.upper();
+ vect<int,dim> str = ext.stride();
+
+ // Ignore ghost zones if desired
for (int d=0; d<dim; ++d) {
- const int ierr = CCTK_CoordRange
- (cgh, &global_lower[d], &global_upper[d], d+1, 0, "cart3d");
- assert (!ierr);
- coord_delta[d] = cgh->cctk_delta_space[d] / maxreflevelfact;
+ bool output_lower_ghosts
+ = cgh->cctk_bbox[2*d] ? out3D_outer_ghosts : out3D_ghosts;
+ bool output_upper_ghosts
+ = cgh->cctk_bbox[2*d+1] ? out3D_outer_ghosts : out3D_ghosts;
+
+ if (! output_lower_ghosts) {
+ lo[d] += cgh->cctk_nghostzones[d] * str[d];
+ }
+ if (! output_upper_ghosts) {
+ hi[d] -= cgh->cctk_nghostzones[d] * str[d];
+ }
+ }
+ ext = bbox<int,dim>(lo,hi,str);
+
+ // coordinates
+ const CCTK_REAL coord_time = cgh->cctk_time;
+ vect<CCTK_REAL,dim> global_lower;
+ vect<CCTK_REAL,dim> coord_delta;
+ if (grouptype == CCTK_GF) {
+ for (int d=0; d<dim; ++d) {
+ global_lower[d] = cgh->cctk_origin_space[d];
+ coord_delta[d] = cgh->cctk_delta_space[d] / maxreflevelfact;
+ }
+ } else {
+ for (int d=0; d<dim; ++d) {
+ global_lower[d] = 0.0;
+ coord_delta[d] = 1.0 / (cgh->cctk_gsh[d] - 1);
+ }
}
- } else {
+ // Note: don't permute the "coord_delta" and
+ // "data->extent().lower()"
+ // (it seems that for gcc 2.95 you then pick up the
+ // integer operator*)
+ const vect<CCTK_REAL,dim> coord_lower = global_lower + coord_delta * vect<CCTK_REAL,dim>(lo);
+ const vect<CCTK_REAL,dim> coord_upper = global_lower + coord_delta * vect<CCTK_REAL,dim>(hi);
+
+ vect<int,dim> offset1;
for (int d=0; d<dim; ++d) {
- global_lower[d] = 0;
- global_upper[d] = 1;
- coord_delta[d] = 1.0 / (cgh->cctk_gsh[d] - 1);
+ assert (cgh->cctk_levoffdenom[d]==1);
+ offset1[d] = (cgh->cctk_levoff[d] + offset[d]) * ext.stride()[d];
}
- }
- // Note: don't permute the "coord_delta" and "data->extent().lower()"
- // (it seems that for gcc 2.95 you'll then pick up the
- // integer operator*)
- const vect<CCTK_REAL,dim> coord_lower = global_lower + coord_delta * vect<CCTK_REAL,dim>(lo);
- const vect<CCTK_REAL,dim> coord_upper = global_lower + coord_delta * vect<CCTK_REAL,dim>(hi);
-
- const vect<int,dim> offset1 = ext.lower() + offset * ext.stride();
-#if 0
- cout << "IOA reflevel=" << reflevel << " global=" << global_lower << " coord=" << coord_lower << " offset=" << offset << endl;
-#endif
-
- WriteASCII (file, data, ext, n, cgh->cctk_iteration, offset1, dirs,
- tl, reflevel, component, mglevel,
- coord_time, coord_lower, coord_upper);
-
- // Append EOL after every component
- if (CCTK_MyProc(cgh)==0) {
- if (separate_components) {
- assert (file.good());
- file << endl;
- }
- }
- assert (file.good());
+ for (int d=0; d<outdim; ++d) {
+ offset1[dirs[d]] = ext.lower()[dirs[d]];
+ }
+
+ WriteASCII (file, data, ext, n, cgh->cctk_iteration, offset1, dirs,
+ tl, rl, component, mglevel,
+ coord_time, coord_lower, coord_upper);
+
+ // Append EOL after every component
+ if (CCTK_MyProc(cgh)==0) {
+ if (separate_components) {
+ assert (file.good());
+ file << endl;
+ }
+ }
+ assert (file.good());
+
+ } // for tl
- } END_COMPONENT_LOOP(cgh);
+ } END_COMPONENT_LOOP;
// Append EOL after every complete set of components
if (CCTK_MyProc(cgh)==0) {
@@ -601,29 +613,15 @@ namespace CarpetIOASCII {
{
assert (dir>=1 && dir<=dim);
-#if 0
- CCTK_REAL lower, upper;
- CCTK_CoordRange (cgh, &lower, &upper, dir, 0, "cart3d");
-
- assert (reflevel!=-1 && mglevel!=-1);
- const int npoints = (hh->baseextent.shape()[dir-1] - hh->baseextent.stride()[dir-1]) / hh->bases[reflevel][mglevel].stride()[dir-1] + 1;
-
- const CCTK_REAL rindex = (coord - lower) / (upper - lower) * (npoints-1);
- int cindex = (int)floor(rindex + 0.5 + 1e-6);
-#endif
-
assert (reflevel!=-1 && mglevel!=-1);
const int npoints = cgh->cctk_gsh[dir-1];
- const CCTK_REAL lower = cgh->cctk_origin_space[dir-1];
const CCTK_REAL delta = cgh->cctk_delta_space[dir-1] / cgh->cctk_levfac[dir-1];
+ const CCTK_REAL lower = cgh->cctk_origin_space[dir-1] + delta * cgh->cctk_levoff[dir-1] / cgh->cctk_levoffdenom[dir-1];
const CCTK_REAL upper = lower + (npoints-1) * delta;
const CCTK_REAL rindex = (coord - lower) / delta;
- int cindex = (int)floor(rindex + 0.5 + 1e-6);
-#if 0
- cout << "CTO rl=" << reflevel << " gsh=" << npoints << " l,u,d=" << lower << "," << upper << "," << delta << " coord=" << coord << " cindex=" << cindex << endl;
-#endif
+ int cindex = (int)floor(rindex + 0.75);
if (cindex<0 || cindex>=npoints) {
CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
diff --git a/Carpet/CarpetInterp/src/interp.cc b/Carpet/CarpetInterp/src/interp.cc
index 13f848729..c38bcc99f 100644
--- a/Carpet/CarpetInterp/src/interp.cc
+++ b/Carpet/CarpetInterp/src/interp.cc
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetInterp/src/interp.cc,v 1.9 2003/05/21 16:03:32 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetInterp/src/interp.cc,v 1.10 2003/06/18 18:24:28 schnetter Exp $
#include <assert.h>
#include <math.h>
@@ -19,7 +19,7 @@
#include "interp.hh"
extern "C" {
- static char const * const rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetInterp/src/interp.cc,v 1.9 2003/05/21 16:03:32 schnetter Exp $";
+ static char const * const rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetInterp/src/interp.cc,v 1.10 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetInterp_interp_cc);
}
@@ -104,12 +104,12 @@ namespace CarpetInterp {
const char * coord_system_name
= CCTK_CoordSystemName (coord_system_handle);
assert (coord_system_name);
- rvect clower, cupper, cdelta;
+ rvect lower, upper, delta;
for (int d=0; d<dim; ++d) {
ierr = CCTK_CoordRange
- (cgh, &clower[d], &cupper[d], d+1, 0, coord_system_name);
+ (cgh, &lower[d], &upper[d], d+1, 0, coord_system_name);
assert (!ierr);
- cdelta[d] = cgh->cctk_delta_space[d];
+ delta[d] = (upper[d] - lower[d]) / (hh->baseextent.shape()[d] - hh->baseextent.stride()[d]);
}
assert (interp_coords);
@@ -127,6 +127,7 @@ namespace CarpetInterp {
int const minrl = reflevel==-1 ? 0 : reflevel;
int const maxrl = reflevel==-1 ? hh->reflevels() : reflevel+1;
+ int const ml = 0;
int maxncomps = 0;
for (int rl=minrl; rl<maxrl; ++rl) {
maxncomps = max(maxncomps, hh->components(rl));
@@ -138,10 +139,9 @@ namespace CarpetInterp {
// TODO: interpolate in time
for (int rl=minrl; rl<maxrl; ++rl) {
int const tl = 0;
- int const ml = 0;
CCTK_REAL const time1 = tt->time (tl, rl, ml);
- CCTK_REAL const time2 = cgh->cctk_time / base_delta_time;
- assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(base_delta_time))) < 1e-12);
+ CCTK_REAL const time2 = cgh->cctk_time / cgh->cctk_delta_time;
+ assert (fabs((time1 - time2) / (fabs(time1) + fabs(time2) + fabs(cgh->cctk_delta_time))) < 1e-12);
}
@@ -157,7 +157,7 @@ namespace CarpetInterp {
assert (interp_coords_type_code == CCTK_VARIABLE_REAL);
rvect pos;
for (int d=0; d<dim; ++d) {
- pos[d] = ((CCTK_REAL const *)interp_coords[d])[n];
+ pos[d] = static_cast<CCTK_REAL const *>(interp_coords[d])[n];
}
// Find the component that this grid point belongs to
@@ -165,17 +165,12 @@ namespace CarpetInterp {
home[n] = -1;
for (int rl=maxrl-1; rl>=minrl; --rl) {
- bbox<int,dim> const& baseext = dd->bases[rl][0].exterior;
- rvect const lower = clower + cdelta / maxreflevelfact * rvect(baseext.lower());
- rvect const delta = cdelta / maxreflevelfact;
-
CCTK_REAL (* const rfloor) (CCTK_REAL const) = floor;
- int const stride = maxreflevelfact / reflevelfact;
- ivect const ipos = ivect(map(rfloor, (pos - lower) / delta / stride + 0.5)) * stride;
+ ivect const ipos = ivect(map(rfloor, (pos - lower) / delta + 0.5));
// TODO: use something faster than a linear search
for (int c=0; c<hh->components(rl); ++c) {
- if (hh->extents[reflevel][c][mglevel].contains(ipos)) {
+ if (hh->extents[rl][c][ml].contains(ipos)) {
rlev[n] = rl;
home[n] = c;
goto found;
@@ -228,7 +223,7 @@ namespace CarpetInterp {
assert (dim==3);
for (int d=0; d<dim; ++d) {
allcoords[ind_prc(myproc,rl,c)][ivect(tmpcnts[ind_rc(rl,c)],d,0)]
- = ((CCTK_REAL const *)interp_coords[d])[n];
+ = static_cast<CCTK_REAL const *>(interp_coords[d])[n];
}
++ tmpcnts[c + (rl-minrl)*maxncomps];
}
@@ -287,15 +282,15 @@ namespace CarpetInterp {
if (reflevel>=minrl && reflevel<maxrl) {
BEGIN_MGLEVEL_LOOP(cgh) {
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, CCTK_GF) {
// Find out about the local geometry
ivect lsh;
rvect coord_origin, coord_delta;
for (int d=0; d<dim; ++d) {
lsh[d] = cgh->cctk_lsh[d];
- coord_origin[d] = cgh->cctk_origin_space[d];
coord_delta[d] = cgh->cctk_delta_space[d] / cgh->cctk_levfac[d];
+ coord_origin[d] = cgh->cctk_origin_space[d] + (1.0 * cgh->cctk_levoff[d] / cgh->cctk_levoffdenom[d] + cgh->cctk_lbnd[d]) * coord_delta[d];
}
@@ -354,29 +349,24 @@ namespace CarpetInterp {
tmp_output_arrays[m]
= &alloutputs[ind_prc(p,reflevel,component)][ivect(0,m,0)];
}
- ierr = CCTK_InterpLocalUniform (N_dims,
- local_interp_handle,
- param_table_handle,
- &coord_origin[0],
- &coord_delta[0],
- allhomecnts[ind_prc(p,reflevel,component)],
- interp_coords_type_code,
- &tmp_interp_coords[0],
- N_input_arrays,
- &lsh[0],
- &input_array_type_codes[0],
- &input_arrays[0],
- N_output_arrays,
- output_array_type_codes,
- &tmp_output_arrays[0]);
+
+ ierr = CCTK_InterpLocalUniform
+ (N_dims, local_interp_handle, param_table_handle,
+ &coord_origin[0], &coord_delta[0],
+ allhomecnts[ind_prc(p,reflevel,component)],
+ interp_coords_type_code, &tmp_interp_coords[0],
+ N_input_arrays, &lsh[0],
+ &input_array_type_codes[0], &input_arrays[0],
+ N_output_arrays,
+ output_array_type_codes, &tmp_output_arrays[0]);
assert (!ierr);
} // for processors
- } END_LOCAL_COMPONENT_LOOP(cgh);
- } END_MGLEVEL_LOOP(cgh);
- }
- } END_REFLEVEL_LOOP(cgh);
+ } END_LOCAL_COMPONENT_LOOP;
+ } END_MGLEVEL_LOOP;
+ } // if reflevel active
+ } END_REFLEVEL_LOOP;
if (saved_reflevel!=-1) {
set_reflevel ((cGH*)cgh, saved_reflevel);
}
@@ -407,7 +397,7 @@ namespace CarpetInterp {
for (int m=0; m<N_output_arrays; ++m) {
assert (interp_coords_type_code == CCTK_VARIABLE_REAL);
assert (dim==3);
- ((CCTK_REAL *)output_arrays[m])[n] =
+ static_cast<CCTK_REAL *>(output_arrays[m])[n] =
alloutputs[ind_prc(myproc,rl,c)][ivect(tmpcnts[ind_rc(rl,c)],m,0)];
}
++ tmpcnts[ind_rc(rl,c)];
diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc
index 067542fc8..ba33f8a48 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.24 2003/05/02 14:23:12 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.25 2003/06/18 18:24:28 schnetter Exp $
#include <assert.h>
#include <stdlib.h>
@@ -482,7 +482,7 @@ void ggf<D>::ref_restrict (int tl, int rl, int c, int ml,
// if (t.get_time(rl,ml) != t.get_time(rl+1,ml)) {
// printf("WARNING: Time on rl %d is %d, time on rl %d is %d\n",rl,t.get_time(rl,ml),rl+1,t.get_time(rl+1,ml));
// }
- //assert (t.get_time(rl,ml) == t.get_time(rl+1,ml));
+ assert (t.get_time(rl,ml) == t.get_time(rl+1,ml));
const vector<int> tl2s(1,tl);
intercat (tl ,rl ,c,ml, &dh<D>::dboxes::recv_ref_fine,
tl2s,rl+1, ml, &dh<D>::dboxes::send_ref_coarse,
diff --git a/Carpet/CarpetReduce/src/reduce.cc b/Carpet/CarpetReduce/src/reduce.cc
index 1a5bc0271..3996385f1 100644
--- a/Carpet/CarpetReduce/src/reduce.cc
+++ b/Carpet/CarpetReduce/src/reduce.cc
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.23 2003/05/21 14:31:03 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.24 2003/06/18 18:24:28 schnetter Exp $
#include <assert.h>
#include <float.h>
@@ -22,7 +22,7 @@
#include "reduce.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.23 2003/05/21 14:31:03 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetReduce/src/reduce.cc,v 1.24 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetReduce_reduce_cc);
}
@@ -716,7 +716,11 @@ namespace CarpetReduce {
Initialise (cgh, proc, num_outvals, &myoutvals[0], outtype, &mycounts[0],
red);
- if (reduce_arrays) {
+ int const saved_component = component;
+ if (component!=-1) {
+ set_component ((cGH*)cgh, -1);
+ }
+ BEGIN_LOCAL_COMPONENT_LOOP(cgh, reduce_arrays ? CCTK_ARRAY : CCTK_GF) {
assert (grpdim<=dim);
int lsh[dim], bbox[2*dim], nghostzones[dim];
@@ -727,34 +731,34 @@ namespace CarpetReduce {
ierr = CCTK_GroupnghostzonesVI(cgh, grpdim, nghostzones, vi);
assert (!ierr);
for (int d=0; d<grpdim; ++d) {
- assert (lsh[d]>=0);
- assert (nghostzones[d]>=0 && 2*nghostzones[d]<=lsh[d]);
+ assert (lsh[d]>=0);
+ assert (nghostzones[d]>=0 && 2*nghostzones[d]<=lsh[d]);
}
vector<const void*> inarrays (num_invars);
for (int n=0; n<num_invars; ++n) {
- inarrays[n] = CCTK_VarDataPtrI(cgh, 0, invars[n]);
- assert (inarrays[n]);
+ inarrays[n] = CCTK_VarDataPtrI(cgh, 0, invars[n]);
+ assert (inarrays[n]);
}
const int intype = CCTK_VarTypeI(vi);
for (int n=0; n<num_invars; ++n) {
- assert (CCTK_VarTypeI(invars[n]) == intype);
+ assert (CCTK_VarTypeI(invars[n]) == intype);
}
vect<int,dim> mylsh, mynghostzones;
vect<vect<int,2>,dim> mybbox;
for (int d=0; d<grpdim; ++d) {
- mylsh[d] = lsh[d];
+ mylsh[d] = lsh[d];
mybbox[d][0] = bbox[2*d ];
mybbox[d][1] = bbox[2*d+1];
- mynghostzones[d] = nghostzones[d];
+ mynghostzones[d] = nghostzones[d];
}
for (int d=grpdim; d<dim; ++d) {
- mylsh[d] = 1;
+ mylsh[d] = 1;
mybbox[d][0] = 0;
mybbox[d][1] = 0;
- mynghostzones[d] = 0;
+ mynghostzones[d] = 0;
}
Reduce (cgh, proc, &mylsh[0], &mybbox[0][0], &mynghostzones[0],
@@ -762,64 +766,10 @@ namespace CarpetReduce {
num_outvals, &myoutvals[0], outtype,
&mycounts[0], red);
- } else { // ! reduce_arrays
-
- int const saved_component = component;
- if (component!=-1) {
- set_component ((cGH*)cgh, -1);
- }
- BEGIN_LOCAL_COMPONENT_LOOP(cgh) {
-
- assert (grpdim<=dim);
- int lsh[dim], bbox[2*dim], nghostzones[dim];
- ierr = CCTK_GrouplshVI(cgh, grpdim, lsh, vi);
- assert (!ierr);
- ierr = CCTK_GroupbboxVI(cgh, 2*grpdim, bbox, vi);
- assert (!ierr);
- ierr = CCTK_GroupnghostzonesVI(cgh, grpdim, nghostzones, vi);
- assert (!ierr);
- for (int d=0; d<grpdim; ++d) {
- assert (lsh[d]>=0);
- assert (nghostzones[d]>=0 && 2*nghostzones[d]<=lsh[d]);
- }
-
- vector<const void*> inarrays (num_invars);
- for (int n=0; n<num_invars; ++n) {
- inarrays[n] = CCTK_VarDataPtrI(cgh, 0, invars[n]);
- assert (inarrays[n]);
- }
-
- const int intype = CCTK_VarTypeI(vi);
- for (int n=0; n<num_invars; ++n) {
- assert (CCTK_VarTypeI(invars[n]) == intype);
- }
-
- vect<int,dim> mylsh, mynghostzones;
- vect<vect<int,2>,dim> mybbox;
- for (int d=0; d<grpdim; ++d) {
- mylsh[d] = lsh[d];
- mybbox[d][0] = bbox[2*d ];
- mybbox[d][1] = bbox[2*d+1];
- mynghostzones[d] = nghostzones[d];
- }
- for (int d=grpdim; d<dim; ++d) {
- mylsh[d] = 1;
- mybbox[d][0] = 0;
- mybbox[d][1] = 0;
- mynghostzones[d] = 0;
- }
-
- Reduce (cgh, proc, &mylsh[0], &mybbox[0][0], &mynghostzones[0],
- num_invars, &inarrays[0], intype,
- num_outvals, &myoutvals[0], outtype,
- &mycounts[0], red);
-
- } END_LOCAL_COMPONENT_LOOP(cgh);
- if (saved_component!=-1) {
- set_component ((cGH*)cgh, saved_component);
- }
-
- } // ! reduce_arrays
+ } END_LOCAL_COMPONENT_LOOP;
+ if (saved_component!=-1) {
+ set_component ((cGH*)cgh, saved_component);
+ }
Finalise (cgh, proc, num_outvals, outvals, outtype,
&myoutvals[0], &mycounts[0],
diff --git a/Carpet/CarpetSlab/src/slab.cc b/Carpet/CarpetSlab/src/slab.cc
index 3d25430e1..6f522d671 100644
--- a/Carpet/CarpetSlab/src/slab.cc
+++ b/Carpet/CarpetSlab/src/slab.cc
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/slab.cc,v 1.8 2003/05/21 14:31:29 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/slab.cc,v 1.9 2003/06/18 18:24:28 schnetter Exp $
#include <assert.h>
#include <stdlib.h>
@@ -21,7 +21,7 @@
#include "slab.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/slab.cc,v 1.8 2003/05/21 14:31:29 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/slab.cc,v 1.9 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetSlab_slab_cc);
}
@@ -43,20 +43,6 @@ namespace CarpetSlab {
const int stride[/*hdim*/],
const int length[/*hdim*/])
{
- if (reflevel == -1) {
- CCTK_WARN (0, "It is not possible to use hyperslabbing in global mode");
- }
-
- // Check global state
- assert (reflevel>=0);
- assert (mglevel>=0);
-
- // Save global state
- int saved_component = component;
- if (component!=-1) {
- set_component ((cGH*)cgh, -1);
- }
-
// Check Cactus grid hierarchy
assert (cgh);
@@ -82,6 +68,11 @@ namespace CarpetSlab {
const int typesize = CCTK_VarTypeSize(gp.vartype);
assert (typesize>0);
+ if (gp.grouptype==CCTK_GF && reflevel==-1) {
+ CCTK_WARN (0, "It is not possible to use hyperslabbing for a grid function in global mode");
+ }
+ const int rl = gp.grouptype==CCTK_GF ? reflevel : 0;
+
// Check dimension
assert (hdim>=0 && hdim<=gp.dim);
@@ -148,98 +139,85 @@ namespace CarpetSlab {
memset (hdata, 0, totalsize * typesize);
}
- if (hh->components(reflevel) > 0) {
-
- // Only temporarily
- component = 0;
+ // Get sample data
+ const gdata<dim>* mydata;
+ mydata = (*myff)(tl, rl, 0, 0);
+
+ // Stride of data in memory
+ const vect<int,dim> str = mydata->extent().stride();
+
+ // Stride of collected data
+ vect<int,dim> hstr = str;
+ for (int dd=0; dd<hdim; ++dd) {
+ hstr[dirs[dd]-1] *= stride[dd];
+ }
+
+ // Lower bound of collected data
+ vect<int,dim> hlb(0);
+ for (int d=0; d<gp.dim; ++d) {
+ hlb[d] = origin[d] * str[d];
+ }
+
+ // Upper bound of collected data
+ vect<int,dim> hub = hlb;
+ for (int dd=0; dd<hdim; ++dd) {
+ hub[dirs[dd]-1] += (length[dd]-1) * hstr[dirs[dd]-1];
+ }
+
+ // Calculate extent to collect
+ const bbox<int,dim> hextent (hlb, hub, hstr);
+ assert (hextent.num_points() == totalsize);
+
+ // Create collector data object
+ void* myhdata = rank==collect_proc ? hdata : 0;
+ gdata<dim>* const alldata = mydata->make_typed();
+ alldata->allocate (hextent, collect_proc, myhdata);
+
+ // Done with the temporary stuff
+ mydata = 0;
+
+ // Loop over all components, copying data from them
+ BEGIN_LOCAL_COMPONENT_LOOP (cgh, gp.grouptype) {
- // Get sample data
- const gdata<dim>* mydata;
- mydata = (*myff)(tl, reflevel, component, mglevel);
+ const int c = gp.grouptype==CCTK_GF ? component : 0;
- // Stride of data in memory
- const vect<int,dim> str = mydata->extent().stride();
+ // Get data object
+ mydata = (*myff)(tl, rl, c, mglevel);
- // Stride of collected data
- vect<int,dim> hstr = str;
- for (int dd=0; dd<hdim; ++dd) {
- hstr[dirs[dd]-1] *= stride[dd];
- }
+ // Calculate overlapping extents
+ const bboxset<int,dim> myextents
+ = ((mydd->boxes[rl][c][mglevel].sync_not
+ | mydd->boxes[rl][c][mglevel].interior)
+ & hextent);
- // Lower bound of collected data
- vect<int,dim> hlb(0);
- for (int d=0; d<gp.dim; ++d) {
- hlb[d] = origin[d] * str[d];
+ // Loop over overlapping extents
+ for (bboxset<int,dim>::const_iterator ext_iter = myextents.begin();
+ ext_iter != myextents.end();
+ ++ext_iter) {
+
+ // Copy data
+ alldata->copy_from (mydata, *ext_iter);
+
}
- // Upper bound of collected data
- vect<int,dim> hub = hlb;
- for (int dd=0; dd<hdim; ++dd) {
- hub[dirs[dd]-1] += (length[dd]-1) * hstr[dirs[dd]-1];
+ } END_LOCAL_COMPONENT_LOOP;
+
+ // Copy result to all processors
+ if (dest_proc == -1) {
+ for (int proc=0; proc<CCTK_nProcs(cgh); ++proc) {
+ if (proc != collect_proc) {
+
+ void* myhdata = rank==proc ? hdata : 0;
+ gdata<dim>* const tmpdata = mydata->make_typed();
+ tmpdata->allocate (alldata->extent(), proc, myhdata);
+ tmpdata->copy_from (alldata, alldata->extent());
+ delete tmpdata;
+
+ }
}
-
- // Calculate extent to collect
- const bbox<int,dim> hextent (hlb, hub, hstr);
- assert (hextent.num_points() == totalsize);
-
- // Create collector data object
- void* myhdata = rank==collect_proc ? hdata : 0;
- gdata<dim>* const alldata = mydata->make_typed();
- alldata->allocate (hextent, collect_proc, myhdata);
-
- // Done with the temporary stuff
- mydata = 0;
- component = -1;
-
- // Loop over all components, copying data from them
- assert (component == -1);
- for (component=0; component<hh->components(reflevel); ++component) {
-
- // Get data object
- mydata = (*myff)(tl, reflevel, component, mglevel);
-
- // Calculate overlapping extents
- const bboxset<int,dim> myextents
- = ((mydd->boxes[reflevel][component][mglevel].sync_not
- | mydd->boxes[reflevel][component][mglevel].interior)
- & hextent);
-
- // Loop over overlapping extents
- for (bboxset<int,dim>::const_iterator ext_iter = myextents.begin();
- ext_iter != myextents.end();
- ++ext_iter) {
-
- // Copy data
- alldata->copy_from (mydata, *ext_iter);
-
- }
-
- } // Loop over components
- component = -1;
-
- // Copy result to all processors
- if (dest_proc == -1) {
- for (int proc=0; proc<CCTK_nProcs(cgh); ++proc) {
- if (proc != collect_proc) {
-
- void* myhdata = rank==proc ? hdata : 0;
- gdata<dim>* const tmpdata = mydata->make_typed();
- tmpdata->allocate (alldata->extent(), proc, myhdata);
- tmpdata->copy_from (alldata, alldata->extent());
- delete tmpdata;
-
- }
- }
- } // Copy result
-
- delete alldata;
-
- } // if components>0
+ } // Copy result
- // Restore global state
- if (saved_component!=-1) {
- set_component ((cGH*)cgh, saved_component);
- }
+ delete alldata;
// Success
return hdata;
diff --git a/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc b/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc
index 4b18c8688..b58557176 100644
--- a/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc
+++ b/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc
@@ -34,7 +34,7 @@
#include "ioflexio.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc,v 1.25 2003/05/08 15:35:49 schnetter Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc,v 1.26 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetIOFlexIO_ioflexio_cc);
}
@@ -137,6 +137,9 @@ namespace CarpetIOFlexIO {
return 0;
}
+ const int grouptype = CCTK_GroupTypeI(group);
+ const int rl = grouptype==CCTK_GF ? reflevel : 0;
+
// Get grid hierarchy extentsion from IOUtil
const ioGH * const iogh = (const ioGH *)CCTK_GHExtension (cgh, "IO");
assert (iogh);
@@ -229,7 +232,7 @@ namespace CarpetIOFlexIO {
origin[d] = lower[d];
delta[d] = cgh->cctk_delta_space[d];
}
- timestep = base_delta_time;
+ timestep = cgh->cctk_delta_time;
amrwriter->setTopLevelParameters
(gpdim, origin, delta, timestep, maxreflevels);
@@ -254,7 +257,7 @@ namespace CarpetIOFlexIO {
}
// Traverse all components on this refinement and multigrid level
- BEGIN_COMPONENT_LOOP(cgh) {
+ BEGIN_COMPONENT_LOOP(cgh, grouptype) {
const ggf<dim>* ff = 0;
@@ -262,7 +265,7 @@ namespace CarpetIOFlexIO {
ff = (ggf<dim>*)arrdata[group].data[var];
const gdata<dim>* const data
- = (*ff) (tl, reflevel, component, mglevel);
+ = (*ff) (tl, rl, component, mglevel);
// Make temporary copy on processor 0
bbox<int,dim> ext = data->extent();
@@ -301,7 +304,7 @@ namespace CarpetIOFlexIO {
// Delete temporary copy
delete tmp;
- } END_COMPONENT_LOOP(cgh);
+ } END_COMPONENT_LOOP;
// Close the file
if (CCTK_MyProc(cgh)==0) {
@@ -404,220 +407,202 @@ namespace CarpetIOFlexIO {
assert (var>=0 && var<CCTK_NumVars());
const int tl = 0;
- switch (CCTK_GroupTypeI(group)) {
-
- case CCTK_SCALAR: {
- // Don't input scalars
- CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Cannout input variable \"%s\" because it is a scalar",
- varname);
+ // Check for storage
+ if (! CCTK_QueryGroupStorageI(cgh, group)) {
+ CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Cannot input variable \"%s\" because it has no storage",
+ varname);
return 0;
}
- case CCTK_ARRAY:
- case CCTK_GF: {
-
- // Check for storage
- if (! CCTK_QueryGroupStorageI(cgh, group)) {
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Cannot input variable \"%s\" because it has no storage",
- varname);
- return 0;
- }
-
- // Find the input directory
- const char* myindir = GetStringParameter("indir3D", "");
+ const int grouptype = CCTK_GroupTypeI(group);
+ const int rl = grouptype==CCTK_GF ? reflevel : 0;
+
+ // Find the input directory
+ const char* myindir = GetStringParameter("indir3D", "");
+
+ // Invent a file name
+ const char* extension = 0;
+ if (CCTK_Equals(in3D_format, "IEEE")) {
+ extension = ".raw";
+#ifdef HDF5
+ } else if (CCTK_Equals(in3D_format, "HDF4")) {
+ extension = ".hdf";
+ } else if (CCTK_Equals(in3D_format, "HDF5")) {
+ extension = ".h5";
+#endif
+ } else {
+ assert (0);
+ }
+ extension = GetStringParameter ("in3D_extension", extension);
+
+ ostringstream filenamebuf;
+ filenamebuf << myindir << "/" << alias << extension;
+ string filenamestr = filenamebuf.str();
+ const char * const filename = filenamestr.c_str();
+
+ IObase* reader = 0;
+ AmrGridReader* amrreader = 0;
+ int ndatasets = -1;
+
+ const int gpdim = CCTK_GroupDimI(group);
+
+ int rank;
+ int dims[dim];
+ int nbytes;
+
+ // Read the file only on the root processor
+ if (CCTK_MyProc(cgh)==0) {
- // Invent a file name
- const char* extension = 0;
+ // Open the file
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Opening file \"%s\"", filename);
if (CCTK_Equals(in3D_format, "IEEE")) {
- extension = ".raw";
+ reader = new IEEEIO(filename, IObase::Read);
#ifdef HDF5
} else if (CCTK_Equals(in3D_format, "HDF4")) {
- extension = ".hdf";
+ reader = new HDFIO(filename, IObase::Read);
} else if (CCTK_Equals(in3D_format, "HDF5")) {
- extension = ".h5";
+ reader = new H5IO(filename, IObase::Read);
#endif
} else {
- assert (0);
+ assert (0);
}
- extension = GetStringParameter ("in3D_extension", extension);
-
- ostringstream filenamebuf;
- filenamebuf << myindir << "/" << alias << extension;
- string filenamestr = filenamebuf.str();
- const char * const filename = filenamestr.c_str();
+ if (!reader->isValid()) {
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Could not open file \"%s\" for reading", filename);
+ }
+ assert (reader->isValid());
- IObase* reader = 0;
- AmrGridReader* amrreader = 0;
- int ndatasets = -1;
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR info");
+ amrreader = new AmrGridReader(*reader);
- const int gpdim = CCTK_GroupDimI(group);
+ // Read information about dataset
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading dataset info");
+ IObase::DataType numbertype;
+ reader->readInfo (numbertype, rank, dims);
+ nbytes = IObase::nBytes(numbertype,rank,dims);
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "type=%d rank=%d dims=[%d,%d,%d] nbytes=%d", (int)numbertype, rank, dims[0], dims[1], dims[2], nbytes);
- int rank;
- int dims[dim];
- int nbytes;
+ // Check rank
+ assert (rank==gpdim);
- // Read the file only on the root processor
- if (CCTK_MyProc(cgh)==0) {
-
- // Open the file
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Opening file \"%s\"", filename);
- if (CCTK_Equals(in3D_format, "IEEE")) {
- reader = new IEEEIO(filename, IObase::Read);
-#ifdef HDF5
- } else if (CCTK_Equals(in3D_format, "HDF4")) {
- reader = new HDFIO(filename, IObase::Read);
- } else if (CCTK_Equals(in3D_format, "HDF5")) {
- reader = new H5IO(filename, IObase::Read);
-#endif
- } else {
- assert (0);
- }
- if (!reader->isValid()) {
- CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Could not open file \"%s\" for reading", filename);
- }
- assert (reader->isValid());
-
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR info");
- amrreader = new AmrGridReader(*reader);
-
- // Read information about dataset
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading dataset info");
- IObase::DataType numbertype;
- reader->readInfo (numbertype, rank, dims);
- nbytes = IObase::nBytes(numbertype,rank,dims);
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "type=%d rank=%d dims=[%d,%d,%d] nbytes=%d", (int)numbertype, rank, dims[0], dims[1], dims[2], nbytes);
-
- // Check rank
- assert (rank==gpdim);
-
- // Check datatype
- // TODO: Check datatype correctly
- assert (CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL8
- || (sizeof(CCTK_REAL) == sizeof(CCTK_REAL8)
- && CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL));
-
- // TODO: check grid spacing
-
- // Number of datasets
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading number of datasets");
- ndatasets = reader->nDatasets();
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "ndatasets=%d", ndatasets);
- assert (ndatasets>=0);
- }
+ // Check datatype
+ // TODO: Check datatype correctly
+ assert (CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL8
+ || (sizeof(CCTK_REAL) == sizeof(CCTK_REAL8)
+ && CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL));
- // Broadcast rank, dimensions, and nbytes
- MPI_Bcast (&rank, 1, MPI_INT, 0, dist::comm);
- assert (rank>=1);
- MPI_Bcast (&dims, rank, MPI_INT, 0, dist::comm);
- for (int d=0; d<rank; ++d) assert (dims[d]>=0);
- MPI_Bcast (&nbytes, 1, MPI_INT, 0, dist::comm);
- assert (nbytes>=0);
+ // TODO: check grid spacing
- // Broadcast number of datasets
- MPI_Bcast (&ndatasets, 1, MPI_INT, 0, dist::comm);
+ // Number of datasets
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading number of datasets");
+ ndatasets = reader->nDatasets();
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "ndatasets=%d", ndatasets);
assert (ndatasets>=0);
+ }
+
+ // Broadcast rank, dimensions, and nbytes
+ MPI_Bcast (&rank, 1, MPI_INT, 0, dist::comm);
+ assert (rank>=1);
+ MPI_Bcast (&dims, rank, MPI_INT, 0, dist::comm);
+ for (int d=0; d<rank; ++d) assert (dims[d]>=0);
+ MPI_Bcast (&nbytes, 1, MPI_INT, 0, dist::comm);
+ assert (nbytes>=0);
+
+ // Broadcast number of datasets
+ MPI_Bcast (&ndatasets, 1, MPI_INT, 0, dist::comm);
+ assert (ndatasets>=0);
+
+ // Read all datasets
+ // TODO: read only some datasets
+ for (int dataset=0; dataset<ndatasets; ++dataset) {
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Handling dataset #%d", dataset);
- // Read all datasets
- // TODO: read only some datasets
- for (int dataset=0; dataset<ndatasets; ++dataset) {
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Handling dataset #%d", dataset);
-
- // Read grid
- AmrGrid* amrgrid = 0;
- int amr_origin[dim];
- int amr_dims[dim];
-
- if (CCTK_MyProc(cgh)==0) {
-
- // Read data
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR data");
- amrgrid = amrreader->getGrid(dataset);
- assert (amrgrid!=0);
- assert (amrgrid->data!=0);
-
- // If iorigin attribute is absent, assume file has unigrid
- // data. Initialize iorigin to 0.
- IObase::DataType atype;
- int alength;
- if (reader->readAttributeInfo("iorigin", atype, alength) < 0) {
- for (int d=0; d<gpdim; ++d) {
- amrgrid->iorigin[d] = 0;
- }
- }
-
- for (int d=0; d<gpdim; ++d) {
- amr_origin[d] = amrgrid->iorigin[d];
- amr_dims[d] = amrgrid->dims[d];
- }
- for (int d=gpdim; d<dim; ++d) {
- amr_origin[d] = 0;
- amr_dims[d] = 1;
- }
-
- } // MyProc == 0
- MPI_Bcast (amr_origin, dim, MPI_INT, 0, dist::comm);
- MPI_Bcast (amr_dims, dim, MPI_INT, 0, dist::comm);
-
- // Traverse all components on this refinement and multigrid
- // level
- BEGIN_COMPONENT_LOOP(cgh) {
-
- ggf<dim>* ff = 0;
-
- assert (var < (int)arrdata[group].data.size());
- ff = (ggf<dim>*)arrdata[group].data[var];
-
- gdata<dim>* const data
- = (*ff) (tl, reflevel, component, mglevel);
-
- // Create temporary data storage on processor 0
- const vect<int,dim> str = vect<int,dim>(reflevelfact);
- const vect<int,dim> lb = vect<int,dim>(amr_origin) * str;
- const vect<int,dim> ub
- = lb + (vect<int,dim>(amr_dims) - 1) * str;
- const bbox<int,dim> ext(lb,ub,str);
- gdata<dim>* const tmp = data->make_typed ();
-
- if (CCTK_MyProc(cgh)==0) {
- tmp->allocate (ext, 0, amrgrid->data);
- } else {
- tmp->allocate (ext, 0, 0);
- }
-
- // Copy into grid function
- data->copy_from (tmp, ext);
-
- // Delete temporary copy
- delete tmp;
-
- } END_COMPONENT_LOOP(cgh);
-
- if (CCTK_MyProc(cgh)==0) {
- free (amrgrid->data);
- free (amrgrid);
- amrgrid = 0;
- }
-
- } // loop over datasets
+ // Read grid
+ AmrGrid* amrgrid = 0;
+ int amr_origin[dim];
+ int amr_dims[dim];
- // Close the file
if (CCTK_MyProc(cgh)==0) {
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Deleting AMR info");
- delete amrreader;
- amrreader = 0;
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Closing file");
- delete reader;
- reader = 0;
- }
+
+ // Read data
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR data");
+ amrgrid = amrreader->getGrid(dataset);
+ assert (amrgrid!=0);
+ assert (amrgrid->data!=0);
+
+ // If iorigin attribute is absent, assume file has unigrid
+ // data. Initialize iorigin to 0.
+ IObase::DataType atype;
+ int alength;
+ if (reader->readAttributeInfo("iorigin", atype, alength) < 0) {
+ for (int d=0; d<gpdim; ++d) {
+ amrgrid->iorigin[d] = 0;
+ }
+ }
+
+ for (int d=0; d<gpdim; ++d) {
+ amr_origin[d] = amrgrid->iorigin[d];
+ amr_dims[d] = amrgrid->dims[d];
+ }
+ for (int d=gpdim; d<dim; ++d) {
+ amr_origin[d] = 0;
+ amr_dims[d] = 1;
+ }
+
+ } // MyProc == 0
+ MPI_Bcast (amr_origin, dim, MPI_INT, 0, dist::comm);
+ MPI_Bcast (amr_dims, dim, MPI_INT, 0, dist::comm);
+
+ // Traverse all components on this refinement and multigrid
+ // level
+ BEGIN_COMPONENT_LOOP(cgh, grouptype) {
+
+ ggf<dim>* ff = 0;
+
+ assert (var < (int)arrdata[group].data.size());
+ ff = (ggf<dim>*)arrdata[group].data[var];
+
+ gdata<dim>* const data = (*ff) (tl, rl, component, mglevel);
+
+ // Create temporary data storage on processor 0
+ const vect<int,dim> str = vect<int,dim>(reflevelfact);
+ const vect<int,dim> lb = vect<int,dim>(amr_origin) * str;
+ const vect<int,dim> ub
+ = lb + (vect<int,dim>(amr_dims) - 1) * str;
+ const bbox<int,dim> ext(lb,ub,str);
+ gdata<dim>* const tmp = data->make_typed ();
+
+ if (CCTK_MyProc(cgh)==0) {
+ tmp->allocate (ext, 0, amrgrid->data);
+ } else {
+ tmp->allocate (ext, 0, 0);
+ }
+
+ // Copy into grid function
+ data->copy_from (tmp, ext);
+
+ // Delete temporary copy
+ delete tmp;
+
+ } END_COMPONENT_LOOP;
- break;
- } // ARRAY or GROUP
+ if (CCTK_MyProc(cgh)==0) {
+ free (amrgrid->data);
+ free (amrgrid);
+ amrgrid = 0;
+ }
- default:
- assert (0);
+ } // loop over datasets
+
+ // Close the file
+ if (CCTK_MyProc(cgh)==0) {
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Deleting AMR info");
+ delete amrreader;
+ amrreader = 0;
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Closing file");
+ delete reader;
+ reader = 0;
}
return 0;
diff --git a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
index a413d45e9..3c928787f 100644
--- a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
+++ b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc
@@ -48,7 +48,7 @@
#include "ioflexio.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc,v 1.2 2003/05/16 15:17:13 hawke Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/checkpointrestart.cc,v 1.3 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetIOFlexIO_checkpointrestart_cc);
}
@@ -255,7 +255,7 @@ namespace CarpetCheckpointRestart {
free (fullname);
}
// write the var
- retval += WriteVarAs(cgh,writer,amrwriter,request->vindex,group);
+ retval += WriteVarAs(cgh,writer,amrwriter,request->vindex);
}
} /* end of loop over all variables */
diff --git a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc
index c7bd5fe72..0806e1ea0 100644
--- a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc
+++ b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc
@@ -43,7 +43,7 @@
#include "ioflexio.hh"
extern "C" {
- static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc,v 1.1 2003/05/16 14:02:18 hawke Exp $";
+ static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.cc,v 1.2 2003/06/18 18:24:28 schnetter Exp $";
CCTK_FILEVERSION(Carpet_CarpetIOFlexIO_ioflexio_cc);
}
@@ -168,19 +168,23 @@ namespace CarpetIOFlexIO {
- int WriteVarAs (const cGH* const cgh, IObase* writer, AMRwriter* amrwriter, int varindex, int group)
+ int WriteVarAs (const cGH* const cgh, IObase* writer, AMRwriter* amrwriter, int varindex)
{
DECLARE_CCTK_PARAMETERS;
- /* I have got no idea why this stuff below is needed... ask Eric Schnetter */
+ /* I have got no idea why this stuff below is needed... ask Erik Schnetter */
+ const int group = CCTK_GroupIndexFromVarI (varindex);
const int n0 = CCTK_FirstVarIndexI(group);
assert (n0>=0 && n0<CCTK_NumVars());
const int var = varindex - n0;
assert (var>=0 && var<CCTK_NumVars());
const int tl = 0;
-
+
+ const int grouptype = CCTK_GroupTypeI(group);
+ assert (! (grouptype != CCTK_GF && reflevel>0));
+
if (CCTK_MyProc(cgh)==0) {
// Set datatype
@@ -214,7 +218,7 @@ namespace CarpetIOFlexIO {
origin[d] = lower[d];
delta[d] = cgh->cctk_delta_space[d];
}
- timestep = base_delta_time;
+ timestep = cgh->cctk_delta_time;
amrwriter->setTopLevelParameters
(gpdim, origin, delta, timestep, maxreflevels);
@@ -239,7 +243,7 @@ namespace CarpetIOFlexIO {
}
// Traverse all components on this refinement and multigrid level
- BEGIN_COMPONENT_LOOP(cgh) {
+ BEGIN_COMPONENT_LOOP(cgh, grouptype) {
const ggf<dim>* ff = 0;
@@ -289,7 +293,7 @@ namespace CarpetIOFlexIO {
// Delete temporary copy
delete tmp;
- } END_COMPONENT_LOOP(cgh);
+ } END_COMPONENT_LOOP;
return 0;
@@ -318,6 +322,9 @@ namespace CarpetIOFlexIO {
return 0;
}
+ const int grouptype = CCTK_GroupTypeI(group);
+ if (grouptype != CCTK_GF && reflevel>0) return 0;
+
// Get grid hierarchy extentsion from IOUtil
const ioGH * const iogh = (const ioGH *)CCTK_GHExtension (cgh, "IO");
assert (iogh);
@@ -394,7 +401,7 @@ namespace CarpetIOFlexIO {
amrwriter = new AMRwriter(*writer);
}
- WriteVarAs(cgh,writer,amrwriter,n,group);
+ WriteVarAs(cgh,writer,amrwriter,n);
// Close the file
if (CCTK_MyProc(cgh)==0) {
@@ -497,220 +504,201 @@ namespace CarpetIOFlexIO {
assert (var>=0 && var<CCTK_NumVars());
const int tl = 0;
- switch (CCTK_GroupTypeI(group)) {
-
- case CCTK_SCALAR: {
- // Don't input scalars
- CCTK_VWarn (2, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Cannout input variable \"%s\" because it is a scalar",
- varname);
+ // Check for storage
+ if (! CCTK_QueryGroupStorageI(cgh, group)) {
+ CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Cannot input variable \"%s\" because it has no storage",
+ varname);
return 0;
}
- case CCTK_ARRAY:
- case CCTK_GF: {
-
- // Check for storage
- if (! CCTK_QueryGroupStorageI(cgh, group)) {
- CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Cannot input variable \"%s\" because it has no storage",
- varname);
- return 0;
- }
-
- // Find the input directory
- const char* myindir = GetStringParameter("indir3D", "");
+ const int grouptype = CCTK_GroupTypeI(group);
+ if (grouptype != CCTK_GF && reflevel>0) return 0;
+
+ // Find the input directory
+ const char* myindir = GetStringParameter("indir3D", "");
+
+ // Invent a file name
+ const char* extension = 0;
+ if (CCTK_Equals(in3D_format, "IEEE")) {
+ extension = ".raw";
+#ifdef HDF5
+ } else if (CCTK_Equals(in3D_format, "HDF4")) {
+ extension = ".hdf";
+ } else if (CCTK_Equals(in3D_format, "HDF5")) {
+ extension = ".h5";
+#endif
+ } else {
+ assert (0);
+ }
+ extension = GetStringParameter ("in3D_extension", extension);
+
+ ostringstream filenamebuf;
+ filenamebuf << myindir << "/" << alias << extension;
+ string filenamestr = filenamebuf.str();
+ const char * const filename = filenamestr.c_str();
+
+ IObase* reader = 0;
+ AmrGridReader* amrreader = 0;
+ int ndatasets = -1;
+
+ const int gpdim = CCTK_GroupDimI(group);
+
+ int rank;
+ int dims[dim];
+ int nbytes;
+
+ // Read the file only on the root processor
+ if (CCTK_MyProc(cgh)==0) {
- // Invent a file name
- const char* extension = 0;
+ // Open the file
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Opening file \"%s\"", filename);
if (CCTK_Equals(in3D_format, "IEEE")) {
- extension = ".raw";
+ reader = new IEEEIO(filename, IObase::Read);
#ifdef HDF5
} else if (CCTK_Equals(in3D_format, "HDF4")) {
- extension = ".hdf";
+ reader = new HDFIO(filename, IObase::Read);
} else if (CCTK_Equals(in3D_format, "HDF5")) {
- extension = ".h5";
+ reader = new H5IO(filename, IObase::Read);
#endif
} else {
- assert (0);
+ assert (0);
}
- extension = GetStringParameter ("in3D_extension", extension);
-
- ostringstream filenamebuf;
- filenamebuf << myindir << "/" << alias << extension;
- string filenamestr = filenamebuf.str();
- const char * const filename = filenamestr.c_str();
+ if (!reader->isValid()) {
+ CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
+ "Could not open file \"%s\" for reading", filename);
+ }
+ assert (reader->isValid());
- IObase* reader = 0;
- AmrGridReader* amrreader = 0;
- int ndatasets = -1;
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR info");
+ amrreader = new AmrGridReader(*reader);
- const int gpdim = CCTK_GroupDimI(group);
+ // Read information about dataset
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading dataset info");
+ IObase::DataType numbertype;
+ reader->readInfo (numbertype, rank, dims);
+ nbytes = IObase::nBytes(numbertype,rank,dims);
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "type=%d rank=%d dims=[%d,%d,%d] nbytes=%d", (int)numbertype, rank, dims[0], dims[1], dims[2], nbytes);
- int rank;
- int dims[dim];
- int nbytes;
+ // Check rank
+ assert (rank==gpdim);
- // Read the file only on the root processor
- if (CCTK_MyProc(cgh)==0) {
-
- // Open the file
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Opening file \"%s\"", filename);
- if (CCTK_Equals(in3D_format, "IEEE")) {
- reader = new IEEEIO(filename, IObase::Read);
-#ifdef HDF5
- } else if (CCTK_Equals(in3D_format, "HDF4")) {
- reader = new HDFIO(filename, IObase::Read);
- } else if (CCTK_Equals(in3D_format, "HDF5")) {
- reader = new H5IO(filename, IObase::Read);
-#endif
- } else {
- assert (0);
- }
- if (!reader->isValid()) {
- CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING,
- "Could not open file \"%s\" for reading", filename);
- }
- assert (reader->isValid());
-
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR info");
- amrreader = new AmrGridReader(*reader);
-
- // Read information about dataset
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading dataset info");
- IObase::DataType numbertype;
- reader->readInfo (numbertype, rank, dims);
- nbytes = IObase::nBytes(numbertype,rank,dims);
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "type=%d rank=%d dims=[%d,%d,%d] nbytes=%d", (int)numbertype, rank, dims[0], dims[1], dims[2], nbytes);
-
- // Check rank
- assert (rank==gpdim);
-
- // Check datatype
- // TODO: Check datatype correctly
- assert (CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL8
- || (sizeof(CCTK_REAL) == sizeof(CCTK_REAL8)
- && CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL));
-
- // TODO: check grid spacing
-
- // Number of datasets
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading number of datasets");
- ndatasets = reader->nDatasets();
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "ndatasets=%d", ndatasets);
- assert (ndatasets>=0);
- }
+ // Check datatype
+ // TODO: Check datatype correctly
+ assert (CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL8
+ || (sizeof(CCTK_REAL) == sizeof(CCTK_REAL8)
+ && CCTK_VarTypeI(n) == CCTK_VARIABLE_REAL));
- // Broadcast rank, dimensions, and nbytes
- MPI_Bcast (&rank, 1, MPI_INT, 0, dist::comm);
- assert (rank>=1);
- MPI_Bcast (&dims, rank, MPI_INT, 0, dist::comm);
- for (int d=0; d<rank; ++d) assert (dims[d]>=0);
- MPI_Bcast (&nbytes, 1, MPI_INT, 0, dist::comm);
- assert (nbytes>=0);
+ // TODO: check grid spacing
- // Broadcast number of datasets
- MPI_Bcast (&ndatasets, 1, MPI_INT, 0, dist::comm);
+ // Number of datasets
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading number of datasets");
+ ndatasets = reader->nDatasets();
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "ndatasets=%d", ndatasets);
assert (ndatasets>=0);
+ }
+
+ // Broadcast rank, dimensions, and nbytes
+ MPI_Bcast (&rank, 1, MPI_INT, 0, dist::comm);
+ assert (rank>=1);
+ MPI_Bcast (&dims, rank, MPI_INT, 0, dist::comm);
+ for (int d=0; d<rank; ++d) assert (dims[d]>=0);
+ MPI_Bcast (&nbytes, 1, MPI_INT, 0, dist::comm);
+ assert (nbytes>=0);
+
+ // Broadcast number of datasets
+ MPI_Bcast (&ndatasets, 1, MPI_INT, 0, dist::comm);
+ assert (ndatasets>=0);
+
+ // Read all datasets
+ // TODO: read only some datasets
+ for (int dataset=0; dataset<ndatasets; ++dataset) {
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Handling dataset #%d", dataset);
- // Read all datasets
- // TODO: read only some datasets
- for (int dataset=0; dataset<ndatasets; ++dataset) {
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Handling dataset #%d", dataset);
-
- // Read grid
- AmrGrid* amrgrid = 0;
- int amr_origin[dim];
- int amr_dims[dim];
-
- if (CCTK_MyProc(cgh)==0) {
-
- // Read data
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR data");
- amrgrid = amrreader->getGrid(dataset);
- assert (amrgrid!=0);
- assert (amrgrid->data!=0);
-
- // If iorigin attribute is absent, assume file has unigrid
- // data. Initialize iorigin to 0.
- IObase::DataType atype;
- int alength;
- if (reader->readAttributeInfo("iorigin", atype, alength) < 0) {
- for (int d=0; d<gpdim; ++d) {
- amrgrid->iorigin[d] = 0;
- }
- }
-
- for (int d=0; d<gpdim; ++d) {
- amr_origin[d] = amrgrid->iorigin[d];
- amr_dims[d] = amrgrid->dims[d];
- }
- for (int d=gpdim; d<dim; ++d) {
- amr_origin[d] = 0;
- amr_dims[d] = 1;
- }
-
- } // MyProc == 0
- MPI_Bcast (amr_origin, dim, MPI_INT, 0, dist::comm);
- MPI_Bcast (amr_dims, dim, MPI_INT, 0, dist::comm);
-
- // Traverse all components on this refinement and multigrid
- // level
- BEGIN_COMPONENT_LOOP(cgh) {
-
- ggf<dim>* ff = 0;
-
- assert (var < (int)arrdata[group].data.size());
- ff = (ggf<dim>*)arrdata[group].data[var];
-
- gdata<dim>* const data
- = (*ff) (tl, reflevel, component, mglevel);
-
- // Create temporary data storage on processor 0
- const vect<int,dim> str = vect<int,dim>(reflevelfact);
- const vect<int,dim> lb = vect<int,dim>(amr_origin) * str;
- const vect<int,dim> ub
- = lb + (vect<int,dim>(amr_dims) - 1) * str;
- const bbox<int,dim> ext(lb,ub,str);
- gdata<dim>* const tmp = data->make_typed ();
-
- if (CCTK_MyProc(cgh)==0) {
- tmp->allocate (ext, 0, amrgrid->data);
- } else {
- tmp->allocate (ext, 0, 0);
- }
-
- // Copy into grid function
- data->copy_from (tmp, ext);
-
- // Delete temporary copy
- delete tmp;
-
- } END_COMPONENT_LOOP(cgh);
-
- if (CCTK_MyProc(cgh)==0) {
- free (amrgrid->data);
- free (amrgrid);
- amrgrid = 0;
- }
-
- } // loop over datasets
+ // Read grid
+ AmrGrid* amrgrid = 0;
+ int amr_origin[dim];
+ int amr_dims[dim];
- // Close the file
if (CCTK_MyProc(cgh)==0) {
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Deleting AMR info");
- delete amrreader;
- amrreader = 0;
- if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Closing file");
- delete reader;
- reader = 0;
- }
+
+ // Read data
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Reading AMR data");
+ amrgrid = amrreader->getGrid(dataset);
+ assert (amrgrid!=0);
+ assert (amrgrid->data!=0);
+
+ // If iorigin attribute is absent, assume file has unigrid
+ // data. Initialize iorigin to 0.
+ IObase::DataType atype;
+ int alength;
+ if (reader->readAttributeInfo("iorigin", atype, alength) < 0) {
+ for (int d=0; d<gpdim; ++d) {
+ amrgrid->iorigin[d] = 0;
+ }
+ }
+
+ for (int d=0; d<gpdim; ++d) {
+ amr_origin[d] = amrgrid->iorigin[d];
+ amr_dims[d] = amrgrid->dims[d];
+ }
+ for (int d=gpdim; d<dim; ++d) {
+ amr_origin[d] = 0;
+ amr_dims[d] = 1;
+ }
+
+ } // MyProc == 0
+ MPI_Bcast (amr_origin, dim, MPI_INT, 0, dist::comm);
+ MPI_Bcast (amr_dims, dim, MPI_INT, 0, dist::comm);
- break;
- } // ARRAY or GROUP
+ // Traverse all components on this refinement and multigrid
+ // level
+ BEGIN_COMPONENT_LOOP(cgh, grouptype) {
+
+ ggf<dim>* ff = 0;
+
+ assert (var < (int)arrdata[group].data.size());
+ ff = (ggf<dim>*)arrdata[group].data[var];
+
+ gdata<dim>* const data = (*ff) (tl, reflevel, component, mglevel);
+
+ // Create temporary data storage on processor 0
+ const vect<int,dim> str = vect<int,dim>(reflevelfact);
+ const vect<int,dim> lb = vect<int,dim>(amr_origin) * str;
+ const vect<int,dim> ub = lb + (vect<int,dim>(amr_dims) - 1) * str;
+ const bbox<int,dim> ext(lb,ub,str);
+ gdata<dim>* const tmp = data->make_typed ();
+
+ if (CCTK_MyProc(cgh)==0) {
+ tmp->allocate (ext, 0, amrgrid->data);
+ } else {
+ tmp->allocate (ext, 0, 0);
+ }
+
+ // Copy into grid function
+ data->copy_from (tmp, ext);
+
+ // Delete temporary copy
+ delete tmp;
+
+ } END_COMPONENT_LOOP;
- default:
- assert (0);
+ if (CCTK_MyProc(cgh)==0) {
+ free (amrgrid->data);
+ free (amrgrid);
+ amrgrid = 0;
+ }
+
+ } // loop over datasets
+
+ // Close the file
+ if (CCTK_MyProc(cgh)==0) {
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Deleting AMR info");
+ delete amrreader;
+ amrreader = 0;
+ if (verbose) CCTK_VInfo (CCTK_THORNSTRING, "Closing file");
+ delete reader;
+ reader = 0;
}
return 0;
diff --git a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh
index bd235fd66..858832243 100644
--- a/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh
+++ b/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh
@@ -1,4 +1,4 @@
-// $Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh,v 1.1 2003/05/16 14:02:18 hawke Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIOCheckpoint/src/ioflexio.hh,v 1.2 2003/06/18 18:24:28 schnetter Exp $
#ifndef CARPETIOFLEXIO_HH
#define CARPETIOFLEXIO_HH
@@ -73,7 +73,7 @@ namespace CarpetIOFlexIO {
const char* GetStringParameter (const char* const parametername,
const char* const fallback);
- int WriteVarAs (const cGH* const cgh, IObase* writer,AMRwriter* amrwriter, int varindex, int group);
+ int WriteVarAs (const cGH* const cgh, IObase* writer,AMRwriter* amrwriter, int varindex);
} // namespace CarpetIOFlexIO
diff --git a/CarpetExtra/FOWaveToyF77/interface.ccl b/CarpetExtra/FOWaveToyF77/interface.ccl
index a9abf3646..25a26046d 100644
--- a/CarpetExtra/FOWaveToyF77/interface.ccl
+++ b/CarpetExtra/FOWaveToyF77/interface.ccl
@@ -1,8 +1,8 @@
# Interface definition for thorn WaveToyF77
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/interface.ccl,v 1.2 2002/02/18 14:36:02 shawley Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/interface.ccl,v 1.3 2003/06/18 18:24:28 schnetter Exp $
-implements: wavetoy
-inherits: boundary grid idscalarwave
+implements: FOwavetoy
+inherits: boundary grid idFOscalarwave
public:
diff --git a/CarpetExtra/IDFOScalarWave/interface.ccl b/CarpetExtra/IDFOScalarWave/interface.ccl
index 93e1b7e6b..bb329f723 100644
--- a/CarpetExtra/IDFOScalarWave/interface.ccl
+++ b/CarpetExtra/IDFOScalarWave/interface.ccl
@@ -1,7 +1,7 @@
# Interface definition for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/interface.ccl,v 1.2 2002/02/18 14:45:39 shawley Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/interface.ccl,v 1.3 2003/06/18 18:24:28 schnetter Exp $
-implements: idscalarwave
-inherits: wavetoy grid
-friend: wavetoy
+implements: idFOscalarwave
+inherits: FOwavetoy grid
+friend: FOwavetoy
diff --git a/CarpetExtra/IDFOScalarWave/schedule.ccl b/CarpetExtra/IDFOScalarWave/schedule.ccl
index 680bc6d22..2d6f28652 100644
--- a/CarpetExtra/IDFOScalarWave/schedule.ccl
+++ b/CarpetExtra/IDFOScalarWave/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/schedule.ccl,v 1.2 2002/02/18 14:58:21 shawley Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/schedule.ccl,v 1.3 2003/06/18 18:24:28 schnetter Exp $
schedule IDFOScalarWave_CheckParameters at PARAMCHECK
{
@@ -8,6 +8,6 @@ schedule IDFOScalarWave_CheckParameters at PARAMCHECK
schedule IDFOScalarWave_InitialData as WaveToy_InitialData at INITIAL
{
- STORAGE: wavetoy::scalarevolve wavetoy::scalarevolve_derivs
+ STORAGE: FOwavetoy::scalarevolve FOwavetoy::scalarevolve_derivs
LANG: Fortran
} "Initial data for 3D wave equation"
diff --git a/CarpetExtra/IDScalarWaveExpl/schedule.ccl b/CarpetExtra/IDScalarWaveExpl/schedule.ccl
index f3cf87be0..b485852ac 100644
--- a/CarpetExtra/IDScalarWaveExpl/schedule.ccl
+++ b/CarpetExtra/IDScalarWaveExpl/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn IDScalarWaveExpl
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveExpl/schedule.ccl,v 1.2 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveExpl/schedule.ccl,v 1.1 2003/06/18 18:24:29 schnetter Exp $
SCHEDULE IDScalarWaveExpl_InitialData AT initial
{
diff --git a/CarpetExtra/IDScalarWaveExpl/src/initialdata.F77 b/CarpetExtra/IDScalarWaveExpl/src/initialdata.F77
index 33a19b6cb..052a616c0 100644
--- a/CarpetExtra/IDScalarWaveExpl/src/initialdata.F77
+++ b/CarpetExtra/IDScalarWaveExpl/src/initialdata.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveExpl/src/initialdata.F77,v 1.2 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveExpl/src/initialdata.F77,v 1.1 2003/06/18 18:24:29 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine IDScalarWaveExpl_InitialData (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/IDScalarWaveFO/param.ccl b/CarpetExtra/IDScalarWaveFO/param.ccl
index e6bc7b617..2283a5aca 100644
--- a/CarpetExtra/IDScalarWaveFO/param.ccl
+++ b/CarpetExtra/IDScalarWaveFO/param.ccl
@@ -1,15 +1,5 @@
# Parameter definitions for thorn IDScalarWaveFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/param.ccl,v 1.3 2004/05/07 22:51:08 schnetter Exp $
-
-RESTRICTED:
-
-KEYWORD initial_data "Type of initial data"
-{
- "plane" :: "Plane wave"
- "noise" :: "Noise"
-} "plane"
-
-PRIVATE:
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/param.ccl,v 1.1 2003/06/18 18:24:29 schnetter Exp $
CCTK_REAL wave_number[3] "Wave number"
{
diff --git a/CarpetExtra/IDScalarWaveFO/schedule.ccl b/CarpetExtra/IDScalarWaveFO/schedule.ccl
index 8e615a685..4b68757d8 100644
--- a/CarpetExtra/IDScalarWaveFO/schedule.ccl
+++ b/CarpetExtra/IDScalarWaveFO/schedule.ccl
@@ -1,7 +1,8 @@
# Schedule definitions for thorn IDScalarWaveFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/schedule.ccl,v 1.3 2004/01/11 12:20:39 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/schedule.ccl,v 1.1 2003/06/18 18:24:29 schnetter Exp $
SCHEDULE IDScalarWaveFO_InitialData AT initial
{
LANG: Fortran
+ STORAGE: WaveToyFO::scalarevolve[1]
} "Initial data for the scalar field"
diff --git a/CarpetExtra/IDScalarWaveFO/src/initialdata.F77 b/CarpetExtra/IDScalarWaveFO/src/initialdata.F77
index e2808d54f..15d6e0934 100644
--- a/CarpetExtra/IDScalarWaveFO/src/initialdata.F77
+++ b/CarpetExtra/IDScalarWaveFO/src/initialdata.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/src/initialdata.F77,v 1.5 2004/05/07 22:51:08 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/src/initialdata.F77,v 1.1 2003/06/18 18:24:29 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine IDScalarWaveFO_InitialData (CCTK_ARGUMENTS)
@@ -14,48 +13,31 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveFO/src/ini
parameter (pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068d0)
CCTK_REAL omega
integer i, j, k
-
- if (CCTK_EQUALS(initial_data, "plane")) then
- omega = sqrt(wave_number(1)**2 + wave_number(2)**2 + wave_number(3)**2)
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
- phi(i,j,k) = amplitude * cos (2*pi *
- $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
- $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
- $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
- $ + omega*(cctk_time-time_offset)))
- psix(i,j,k) = amplitude * wave_number(1) / omega * cos (2*pi *
- $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
- $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
- $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
- $ + omega*(cctk_time-time_offset)))
- psiy(i,j,k) = amplitude * wave_number(2) / omega * cos (2*pi *
- $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
- $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
- $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
- $ + omega*(cctk_time-time_offset)))
- psiz(i,j,k) = amplitude * wave_number(3) / omega * cos (2*pi *
- $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
- $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
- $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
- $ + omega*(cctk_time-time_offset)))
- end do
- end do
- end do
-
- else if (CCTK_EQUALS(initial_data, "noise")) then
-
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
- call random_number (phi(i,j,k))
- call random_number (psix(i,j,k))
- call random_number (psiy(i,j,k))
- call random_number (psiz(i,j,k))
- end do
+ omega = sqrt(wave_number(1)**2 + wave_number(2)**2 + wave_number(3)**2)
+ do k=1,cctk_lsh(3)
+ do j=1,cctk_lsh(2)
+ do i=1,cctk_lsh(1)
+ phi(i,j,k) = amplitude * cos (2*pi *
+ $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
+ $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
+ $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
+ $ + omega*(cctk_time-time_offset)))
+ psix(i,j,k) = - amplitude * (2*pi)**2 * wave_number(1) * omega * cos (2*pi *
+ $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
+ $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
+ $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
+ $ + omega*(cctk_time-time_offset)))
+ psiy(i,j,k) = - amplitude * (2*pi)**2 * wave_number(2) * omega * cos (2*pi *
+ $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
+ $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
+ $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
+ $ + omega*(cctk_time-time_offset)))
+ psiz(i,j,k) = - amplitude * (2*pi)**2 * wave_number(3) * omega * cos (2*pi *
+ $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
+ $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
+ $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
+ $ + omega*(cctk_time-time_offset)))
end do
end do
-
- end if
+ end do
end
diff --git a/CarpetExtra/IDScalarWaveMoL/param.ccl b/CarpetExtra/IDScalarWaveMoL/param.ccl
index b7d933e69..67d341ef5 100644
--- a/CarpetExtra/IDScalarWaveMoL/param.ccl
+++ b/CarpetExtra/IDScalarWaveMoL/param.ccl
@@ -1,15 +1,5 @@
# Parameter definitions for thorn IDScalarWaveMoL
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/param.ccl,v 1.2 2003/08/14 17:22:09 schnetter Exp $
-
-KEYWORD initial_data "Initial data"
-{
- "plane wave" :: "Plane wave"
- "Gaussian pulse" :: "Gaussian pulse"
-} "plane wave"
-
-
-
-# Plane wave specification
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/param.ccl,v 1.1 2003/06/18 18:24:29 schnetter Exp $
CCTK_REAL wave_number[3] "Wave number"
{
@@ -21,30 +11,12 @@ CCTK_REAL phase_offset[3] "Phase offset"
*:* :: ""
} 0.0
-
-
-# Gaussian pulse specification
-
-CCTK_REAL pulse_direction[3] "Pulse width"
-{
- *:* :: ""
-} 0.0
-
-CCTK_REAL pulse_offset[3] "Pulse offset"
-{
- *:* :: ""
-} 0.0
-
-
-
-# Generic specifications
-
CCTK_REAL time_offset "Time offset"
{
*:* :: ""
} 0.0
-CCTK_REAL amplitude "Amplitude"
+CCTK_REAL amplitude "Wave amplitude"
{
*:* :: ""
} 1.0
diff --git a/CarpetExtra/IDScalarWaveMoL/schedule.ccl b/CarpetExtra/IDScalarWaveMoL/schedule.ccl
index 4cb14d4d9..85b47361e 100644
--- a/CarpetExtra/IDScalarWaveMoL/schedule.ccl
+++ b/CarpetExtra/IDScalarWaveMoL/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn IDScalarWaveMoL
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/schedule.ccl,v 1.2 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/schedule.ccl,v 1.1 2003/06/18 18:24:29 schnetter Exp $
SCHEDULE IDScalarWaveMoL_InitialData AT initial
{
diff --git a/CarpetExtra/IDScalarWaveMoL/src/errors.F77 b/CarpetExtra/IDScalarWaveMoL/src/errors.F77
index a47394f84..8bfeac41c 100644
--- a/CarpetExtra/IDScalarWaveMoL/src/errors.F77
+++ b/CarpetExtra/IDScalarWaveMoL/src/errors.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/src/errors.F77,v 1.2 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/src/errors.F77,v 1.1 2003/06/18 18:24:29 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine IDScalarWaveMoL_Errors (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/IDScalarWaveMoL/src/initialdata.F77 b/CarpetExtra/IDScalarWaveMoL/src/initialdata.F77
index f8385b48a..1e7f5923c 100644
--- a/CarpetExtra/IDScalarWaveMoL/src/initialdata.F77
+++ b/CarpetExtra/IDScalarWaveMoL/src/initialdata.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/src/initialdata.F77,v 1.3 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/src/initialdata.F77,v 1.1 2003/06/18 18:24:29 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine IDScalarWaveMoL_InitialData (CCTK_ARGUMENTS)
@@ -13,37 +12,22 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWaveMoL/src/in
CCTK_REAL pi
parameter (pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068d0)
CCTK_REAL omega
- CCTK_REAL tmp
integer i, j, k
- if (CCTK_EQUALS(initial_data, "plane wave")) then
- omega = sqrt(wave_number(1)**2 + wave_number(2)**2
- $ + wave_number(3)**2)
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
- tmp = wave_number(1)*(x(i,j,k)-phase_offset(1))
- $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
- $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
- $ + omega*(cctk_time-time_offset)
- phi(i,j,k) = amplitude * cos (2*pi * tmp)
- psi(i,j,k) = - amplitude * 2*pi * omega * sin (2*pi * tmp)
- end do
+ omega = sqrt(wave_number(1)**2 + wave_number(2)**2 + wave_number(3)**2)
+ do k=1,cctk_lsh(3)
+ do j=1,cctk_lsh(2)
+ do i=1,cctk_lsh(1)
+ phi(i,j,k) = amplitude * cos (2*pi *
+ $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
+ $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
+ $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
+ $ + omega*(cctk_time-time_offset)))
+ psi(i,j,k) = - amplitude * 2*pi * omega * sin (2*pi *
+ $ ( wave_number(1)*(x(i,j,k)-phase_offset(1))
+ $ + wave_number(2)*(y(i,j,k)-phase_offset(2))
+ $ + wave_number(3)*(z(i,j,k)-phase_offset(3))
+ $ + omega*(cctk_time-time_offset)))
end do
end do
- else if (CCTK_EQUALS(initial_data, "Gaussian pulse")) then
- omega = sqrt(pulse_direction(1)**2 + pulse_direction(2)**2
- $ + pulse_direction(3)**2)
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
- tmp = pulse_direction(1)*(x(i,j,k)-pulse_offset(1))
- $ + pulse_direction(2)*(y(i,j,k)-pulse_offset(2))
- $ + pulse_direction(3)*(z(i,j,k)-pulse_offset(3))
- $ + omega*(cctk_time-time_offset)
- phi(i,j,k) = amplitude * exp (-0.5d0 * tmp**2)
- psi(i,j,k) = - tmp * omega * phi(i,j,k)
- end do
- end do
- end do
- end if
+ end do
end
diff --git a/CarpetExtra/SpaceTimeToy/interface.ccl b/CarpetExtra/SpaceTimeToy/interface.ccl
index aadf4a350..3d91b639b 100644
--- a/CarpetExtra/SpaceTimeToy/interface.ccl
+++ b/CarpetExtra/SpaceTimeToy/interface.ccl
@@ -1,8 +1,15 @@
# Interface definition for thorn SpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/interface.ccl,v 1.5 2001/12/07 18:27:09 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/interface.ccl,v 1.6 2003/06/18 18:24:29 schnetter Exp $
implements: spacetimetoy
-inherits: hydrotoy boundary grid
+inherits: hydrotoy boundary driver grid
+
+
+
+CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER IN GH, \
+ CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, \
+ CCTK_STRING IN group_name, CCTK_STRING IN bc_name)
+USES FUNCTION Boundary_SelectGroupForBC
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par
index a69d8ea8a..f6cd458a7 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par,v 1.7 2002/10/24 21:11:05 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par,v 1.8 2003/06/18 18:24:29 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReducd CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy HydroToy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy HydroToy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
@@ -45,10 +45,10 @@ IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
IOASCII::out1D_every = 1 # 2
IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
-IOFlexIO::out3D_every = 24
-IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-IOFlexIO::out3D_format = IEEE
-IOFlexIO::out3D_extension = ".vcamr"
+#IOFlexIO::out3D_every = 24
+#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
+#IOFlexIO::out3D_format = IEEE
+#IOFlexIO::out3D_extension = ".vcamr"
SpaceTimeToy::icn_iterations = 2
SpaceTimeToy::bound = radiation
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par
index 12e017779..dbcabb184 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par,v 1.9 2002/10/24 21:11:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par,v 1.10 2003/06/18 18:24:29 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
@@ -45,10 +45,10 @@ IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
IOASCII::out1D_every = 1 # 2
IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
-IOFlexIO::out3D_every = 12
-IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-IOFlexIO::out3D_format = IEEE
-IOFlexIO::out3D_extension = ".vcamr"
+#IOFlexIO::out3D_every = 12
+#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
+#IOFlexIO::out3D_format = IEEE
+#IOFlexIO::out3D_extension = ".vcamr"
SpaceTimeToy::icn_iterations = 2
SpaceTimeToy::bound = radiation
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par
index 9fc6be4d7..ed2f6bf8b 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par,v 1.9 2002/10/24 21:11:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par,v 1.10 2003/06/18 18:24:29 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
@@ -51,10 +51,10 @@ IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
IOASCII::out1D_every = 1 # 2
IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
-IOFlexIO::out3D_every = 24
-IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-IOFlexIO::out3D_format = IEEE
-IOFlexIO::out3D_extension = ".vcamr"
+#IOFlexIO::out3D_every = 24
+#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
+#IOFlexIO::out3D_format = IEEE
+#IOFlexIO::out3D_extension = ".vcamr"
SpaceTimeToy::icn_iterations = 2
SpaceTimeToy::bound = radiation
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par
index 84a1a725a..30ecdcf97 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par,v 1.10 2002/10/24 21:11:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par,v 1.11 2003/06/18 18:24:29 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
@@ -51,10 +51,10 @@ IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
IOASCII::out1D_every = 1 # 2
IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
-IOFlexIO::out3D_every = 48
-IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-IOFlexIO::out3D_format = IEEE
-IOFlexIO::out3D_extension = ".vcamr"
+#IOFlexIO::out3D_every = 48
+#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
+#IOFlexIO::out3D_format = IEEE
+#IOFlexIO::out3D_extension = ".vcamr"
SpaceTimeToy::icn_iterations = 2
SpaceTimeToy::bound = radiation
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par
index 9bd3fb198..4cfe64a4b 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine.par,v 1.1 2003/06/18 18:24:29 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy HydroToy"
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par
index ca19dbbcc..b427b8d6d 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_fine_rl2.par,v 1.1 2003/06/18 18:24:29 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par
index d256f4a26..dbbf89dd5 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par,v 1.9 2002/10/24 21:11:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par,v 1.10 2003/06/18 18:24:29 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
@@ -51,10 +51,10 @@ IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
IOASCII::out1D_every = 1 # 2
IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
-IOFlexIO::out3D_every = 48
-IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-IOFlexIO::out3D_format = IEEE
-IOFlexIO::out3D_extension = ".vcamr"
+#IOFlexIO::out3D_every = 48
+#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
+#IOFlexIO::out3D_format = IEEE
+#IOFlexIO::out3D_extension = ".vcamr"
SpaceTimeToy::icn_iterations = 2
SpaceTimeToy::bound = radiation
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par
index 7805e8cf8..a845e9765 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par,v 1.8 2002/10/24 21:11:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par,v 1.9 2003/06/18 18:24:29 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
@@ -51,10 +51,10 @@ IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
IOASCII::out1D_every = 1 # 2
IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
-IOFlexIO::out3D_every = 96
-IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-IOFlexIO::out3D_format = IEEE
-IOFlexIO::out3D_extension = ".vcamr"
+#IOFlexIO::out3D_every = 96
+#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
+#IOFlexIO::out3D_format = IEEE
+#IOFlexIO::out3D_extension = ".vcamr"
SpaceTimeToy::icn_iterations = 2
SpaceTimeToy::bound = radiation
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d.gnu b/CarpetExtra/SpaceTimeToy/par/st1d.gnu
index 1c7eee34b..3a11278d9 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d.gnu
+++ b/CarpetExtra/SpaceTimeToy/par/st1d.gnu
@@ -1,24 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d.gnu,v 1.2 2003/06/30 17:28:51 schnetter Exp $
-
-set grid
-
-dt=0.05
-f(x)=cos(2*pi*(x+t*dt))
-
-t=200
-
-
-p [0:1] "st1d_1l_0020/phi.xl" i t u 10:13 w l, "st1d_1l_0040/phi.xl" i t u 10:13 w l, "st1d_1l_0080/phi.xl" i t u 10:13 w l, f(x)
-
-p [0:1] "st1d_1l_0020/phi.xl" i t u 10:($13-f($10)) w l, "st1d_1l_0040/phi.xl" i t u 10:(4*($13-f($10))) w l, "st1d_1l_0080/phi.xl" i t u 10:(16*($13-f($10))) w l
-
-
-
-p [0:1] "st1d_2l_0020/phi.xl" i 2*t u 10:13 w l, "st1d_2l_0040/phi.xl" i 2*t u 10:13 w l, "st1d_2l_0080/phi.xl" i 2*t u 10:13 w l, "st1d_2l_0160/phi.xl" i 2*t u 10:13 w l, "st1d_2l_0320/phi.xl" i 2*t u 10:13 w l, f(x)
-
-p [0:1] "st1d_2l_0020/phi.xl" i 2*t u 10:($13-f($10)) w l, "st1d_2l_0040/phi.xl" i 2*t u 10:(4*($13-f($10))) w l, "st1d_2l_0080/phi.xl" i 2*t u 10:(16*($13-f($10))) w l, "st1d_2l_0160/phi.xl" i 2*t u 10:(64*($13-f($10))) w l, "st1d_2l_0320/phi.xl" i 2*t u 10:(256*($13-f($10))) w l
-
-
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d.gnu,v 1.1 2003/06/18 18:24:29 schnetter Exp $
set grid
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par b/CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par
index 96da55975..3102a06ce 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_1l_0020.par,v 1.1 2003/06/18 18:24:29 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 3200
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par b/CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par
index ca8d2fa85..d33fd27fe 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_1l_0040.par,v 1.1 2003/06/18 18:24:29 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 6400
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par b/CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par
index a2535989b..12150c5d5 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_1l_0080.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 12800
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par
index 0d4263611..9f5388d92 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0020.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 3200
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par
index 90261f6aa..9c4400c3d 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0040.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 6400
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par
index ab4ff726c..f16a0f9a5 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0080.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 12800
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par
index cb222029e..de72cf54c 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0160.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 25600
diff --git a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par
index 054046275..7c22efff2 100644
--- a/CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par
+++ b/CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par,v 1.2 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/st1d_2l_0320.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 51200
diff --git a/CarpetExtra/SpaceTimeToy/param.ccl b/CarpetExtra/SpaceTimeToy/param.ccl
index 0213a9f61..d129baa51 100644
--- a/CarpetExtra/SpaceTimeToy/param.ccl
+++ b/CarpetExtra/SpaceTimeToy/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn SpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/param.ccl,v 1.3 2001/08/26 13:59:49 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/param.ccl,v 1.4 2003/06/18 18:24:29 schnetter Exp $
shares: hydrotoy
@@ -7,14 +7,10 @@ USES BOOLEAN hydrotoy_active
private:
-KEYWORD bound "Type of boundary condition to use"
+STRING bound "Type of boundary condition to use"
{
- "none" :: "No boundary condition"
- "flat" :: "Flat boundary condition"
- "radiation" :: "Radiation boundary condition"
- "robin" :: "Robin boundary condition"
- "zero" :: "Zero boundary condition"
-} "zero"
+ ".*" :: "Must be a registered boundary condition"
+} "Static"
CCTK_INT icn_iterations "Number of ICN iterations to take after the initial Euler step"
{
diff --git a/CarpetExtra/SpaceTimeToy/schedule.ccl b/CarpetExtra/SpaceTimeToy/schedule.ccl
index 3b1230e77..e39f9a31d 100644
--- a/CarpetExtra/SpaceTimeToy/schedule.ccl
+++ b/CarpetExtra/SpaceTimeToy/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn SpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/schedule.ccl,v 1.5 2002/04/29 11:28:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/schedule.ccl,v 1.6 2003/06/18 18:24:29 schnetter Exp $
STORAGE: spacetimeevolve[3]
STORAGE: icn_state
@@ -28,16 +28,57 @@ schedule SpaceTimeToy_EulerStep at EVOL \
{
LANG: Fortran
STORAGE: spacetimetemps hydrotemps
- SYNC: spacetimeevolve
} "Initial Euler step"
-
-schedule SpaceTimeToy_ICNStep at EVOL \
+
+schedule SpaceTimeToy_Boundaries at EVOL \
+ after SpaceTimeToy_EulerStep
+{
+ LANG: Fortran
+ SYNC: spacetimeevolve
+} "Select boundary conditions after initial Euler step"
+
+schedule GROUP ApplyBCs at EVOL \
+ after SpaceTimeToy_Boundaries
+{
+} "Apply boundary conditions after initial Euler step"
+
+
+
+schedule GROUP SpaceTimeToy_ICNLoop at EVOL \
after SpaceTimeToy_EulerStep \
after HydroToy_EulerPredictor \
before HydroToy_EulerCorrector \
while SpaceTimeToy::do_iterate
{
+} "All ICN steps"
+
+schedule SpaceTimeToy_ICNStep in SpaceTimeToy_ICNLoop
+{
LANG: Fortran
STORAGE: spacetimetemps hydrotemps
- SYNC: spacetimeevolve
} "One ICN step"
+
+schedule SpaceTimeToy_Boundaries in SpaceTimeToy_ICNLoop \
+ after SpaceTimeToy_ICNStep
+{
+ LANG: Fortran
+ SYNC: spacetimeevolve
+} "Select boundary conditions after ICN step"
+
+schedule GROUP ApplyBCs in SpaceTimeToy_ICNLoop \
+ after SpaceTimeToy_Boundaries
+{
+} "Apply boundary conditions after ICN step"
+
+
+
+schedule SpaceTimeToy_Boundaries in POSTRESTRICT
+{
+ LANG: Fortran
+ SYNC: spacetimeevolve
+} "Select boundary conditions after restricting"
+
+schedule GROUP ApplyBCs in POSTRESTRICT \
+ after SpaceTimeToy_Boundaries
+{
+} "Apply boundary conditions after restricting"
diff --git a/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77 b/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77
index 304837390..c1f3f4b0b 100644
--- a/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77
+++ b/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77
@@ -1,9 +1,10 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77,v 1.9 2001/08/26 13:59:58 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77,v 1.10 2003/06/18 18:24:30 schnetter Exp $
-#include "cctk.h"
-#include "cctk_Parameters.h"
+#include "cctk.h"
+#include "cctk_Faces.h"
#include "cctk_Arguments.h"
+#include "cctk_Parameters.h"
@@ -64,9 +65,6 @@ c Copy
c Evolve
call SpaceTimeToy_Step (CCTK_PASS_FTOF)
-c Apply boundaries
- call SpaceTimeToy_Boundaries (CCTK_PASS_FTOF)
-
c Initialise ICN iterations
icn_iteration = 0
do_iterate = 1
@@ -138,9 +136,6 @@ c Average
c Evolve
call SpaceTimeToy_Step (CCTK_PASS_FTOF)
-c Apply boundaries
- call SpaceTimeToy_Boundaries (CCTK_PASS_FTOF)
-
c Step ICN iterations
icn_iteration = icn_iteration + 1
if (icn_iteration .eq. icn_iterations) then
@@ -200,45 +195,44 @@ c Evolve
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
- CCTK_REAL zero, one
- parameter (zero=0, one=1)
+ character fbound*1000
+ CCTK_INT fboundlen
- CCTK_REAL finf
- parameter (finf=1)
- integer npow
- parameter (npow=1)
+ integer options
- integer sw(3)
+ CCTK_INT boundary_width
+ CCTK_INT options1
+
+ integer d
integer ierr
- sw(1) = cctk_nghostzones(1)
- sw(2) = cctk_nghostzones(2)
- sw(3) = cctk_nghostzones(3)
-
-c Apply boundary condition
- if (CCTK_EQUALS(bound, "flat")) then
- call BndFlatGN (ierr, cctkGH, sw, "spacetimetoy::spacetimeevolve")
- else if (CCTK_EQUALS(bound, "zero")) then
- call BndScalarGN (ierr, cctkGH, sw, zero,
- $ "spacetimetoy::spacetimeevolve")
- else if (CCTK_EQUALS(bound, "radiation")) then
- call BndRadiativeGN (ierr, cctkGH, sw, zero, one,
- $ "spacetimetoy::spacetimeevolve", "spacetimetoy::spacetimeevolve")
- else if (CCTK_EQUALS(bound, "robin")) then
- call BndRobinGN (ierr, cctkGH, sw, finf, npow,
- $ "spacetimetoy::spacetimeevolve")
- else if (CCTK_EQUALS(bound, "none")) then
- ierr = 0
- else
- call CCTK_WARN (0, "internal error")
- end if
- if (ierr .lt. 0) then
- call CCTK_WARN (0, "Error while applying boundary condition")
+ external Boundary_SelectGroupForBC
+ CCTK_INT Boundary_SelectGroupForBC
+
+ boundary_width = cctk_nghostzones(1)
+ do d=1,3
+ if (cctk_nghostzones(d) .ne. boundary_width) then
+ call CCTK_WARN (0, "internal error")
+ end if
+ end do
+
+ call Util_TableCreateFromString (options, "")
+ if (options .lt. 0) call CCTK_WARN (0, "internal error")
+
+ call CCTK_FortranString (fboundlen, bound, fbound)
+
+ options1 = options
+ ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, options1, "spacetimetoy::spacetimeevolve", fbound)
+ if (ierr .lt. 0) then
+ call CCTK_WARN (0, "Error while selecting boundary condition")
end if
+ call Util_TableDestroy (ierr, options)
+ if (ierr .lt. 0) call CCTK_WARN (0, "internal error")
+
call Cart3dSymGN (ierr, cctkGH, "spacetimetoy::spacetimeevolve")
- if (ierr .lt. 0) then
+ if (ierr .lt. 0) then
call CCTK_WARN (0, "Error while applying symmetry condition")
end if
-
+
end
diff --git a/CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par b/CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par
index e20b1db74..ad8212fed 100644
--- a/CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par
+++ b/CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par
@@ -1,8 +1,8 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par,v 1.3 2002/10/24 21:11:06 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/doubletoy_periodic_coarse.par,v 1.4 2003/06/18 18:24:30 schnetter Exp $
!DESC "DoubleToy with periodic boundaries, no refinement"
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy"
Carpet::poison_new_timelevels = yes
Carpet::check_for_poison = yes
diff --git a/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par b/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par
index 881a8caeb..2def19864 100644
--- a/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par
+++ b/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par
@@ -1,8 +1,8 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par,v 1.3 2002/10/24 21:11:07 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse.par,v 1.4 2003/06/18 18:24:30 schnetter Exp $
!DESC "SpaceTimeToy with periodic boundaries, no refinement"
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
diff --git a/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par b/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par
index 1094894d3..bb9308218 100644
--- a/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par
+++ b/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par
@@ -1,8 +1,8 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par,v 1.3 2002/10/24 21:11:07 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl2.par,v 1.4 2003/06/18 18:24:30 schnetter Exp $
!DESC "SpaceTimeToy with periodic boundaries, 1 refinement level"
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
diff --git a/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par b/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par
index 6f4162589..c84f00c0d 100644
--- a/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par
+++ b/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par
@@ -1,8 +1,8 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par,v 1.3 2002/10/24 21:11:07 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/test/spacetimetoy_periodic_coarse_rl3.par,v 1.4 2003/06/18 18:24:30 schnetter Exp $
!DESC "WaveToy with periodic boundaries, 2 refinement levels"
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
Carpet::poison_new_timelevels = yes
#Carpet::check_for_poison = yes
diff --git a/CarpetExtra/WaveToyExpl/interface.ccl b/CarpetExtra/WaveToyExpl/interface.ccl
index 231d8e0ee..f565d69c8 100644
--- a/CarpetExtra/WaveToyExpl/interface.ccl
+++ b/CarpetExtra/WaveToyExpl/interface.ccl
@@ -1,17 +1,17 @@
# Interface definition for thorn WaveToyExpl
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/interface.ccl,v 1.3 2004/05/21 17:43:57 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/interface.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
IMPLEMENTS: WaveToyExpl
-INHERITS: grid
+INHERITS: boundary grid
-CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, \
+CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER IN GH, \
CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, \
CCTK_STRING IN group_name, CCTK_STRING IN bc_name)
-REQUIRES FUNCTION Boundary_SelectGroupForBC
+USES FUNCTION Boundary_SelectGroupForBC
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par b/CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par
index 5f559808e..99c59e571 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_1l_0020.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 3200
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par b/CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par
index 9e17b21d3..8137ed8c4 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_1l_0040.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 6400
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par b/CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par
index 317a31c3e..da7d1b8f3 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_1l_0080.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 12800
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par
index 1655ca90c..8665f42be 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0020.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 3200
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par
index 9a03d1161..c2ebfca19 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0040.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 6400
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par
index 19f8e285f..5ffce558f 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0080.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 12800
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par
index c35b6f512..4862fe62a 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0160.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 25600
diff --git a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par
index 03637dfb0..0dc9290c1 100644
--- a/CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par
+++ b/CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par,v 1.2 2004/03/23 12:00:28 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/par/ew1d_2l_0320.par,v 1.1 2003/06/18 18:24:30 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 51200
diff --git a/CarpetExtra/WaveToyExpl/schedule.ccl b/CarpetExtra/WaveToyExpl/schedule.ccl
index 8ef598e24..08dc51abc 100644
--- a/CarpetExtra/WaveToyExpl/schedule.ccl
+++ b/CarpetExtra/WaveToyExpl/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn WaveToyExpl
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/schedule.ccl,v 1.3 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/schedule.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
STORAGE: scalarevolve[3]
STORAGE: scalarevolveint[3]
@@ -60,18 +60,18 @@ SCHEDULE GROUP ApplyBCs AS WaveToyExpl_ApplyFinalBoundaries AT evol AFTER WaveTo
-SCHEDULE WaveToyExpl_IntBoundaries AT POSTRESTRICT
+SCHEDULE WaveToyExpl_IntBoundaries IN postrestrict
{
LANG: Fortran
SYNC: scalarevolveint
} "Select boundary conditions after restricting"
-SCHEDULE WaveToyExpl_FinalBoundaries AT POSTRESTRICT
+SCHEDULE WaveToyExpl_FinalBoundaries IN postrestrict
{
LANG: Fortran
SYNC: scalarevolve
} "Select boundary conditions after restricting"
-SCHEDULE GROUP ApplyBCs AS WaveToyExpl_ApplyBoundaries AT POSTRESTRICT AFTER (WaveToyMoL_IntBoundaries, WaveToyMoL_FinalBoundaries)
+SCHEDULE GROUP ApplyBCs AS WaveToyExpl_ApplyBoundaries IN postrestrict AFTER (WaveToyMoL_IntBoundaries, WaveToyMoL_FinalBoundaries)
{
} "Apply boundary conditions after restricting"
diff --git a/CarpetExtra/WaveToyExpl/src/finalboundaries.F77 b/CarpetExtra/WaveToyExpl/src/finalboundaries.F77
index c00960fc3..1f128821e 100644
--- a/CarpetExtra/WaveToyExpl/src/finalboundaries.F77
+++ b/CarpetExtra/WaveToyExpl/src/finalboundaries.F77
@@ -1,8 +1,8 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/finalboundaries.F77,v 1.2 2003/10/27 15:31:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/finalboundaries.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
+#include "cctk_Faces.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_FinalBoundaries (CCTK_ARGUMENTS)
@@ -10,6 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/finalb
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external Boundary_SelectGroupForBC
+ CCTK_INT Boundary_SelectGroupForBC
CCTK_INT bndwidth
parameter (bndwidth = 1)
character fbound*100
diff --git a/CarpetExtra/WaveToyExpl/src/finalstep.F77 b/CarpetExtra/WaveToyExpl/src/finalstep.F77
index b4304d60e..39c19b42e 100644
--- a/CarpetExtra/WaveToyExpl/src/finalstep.F77
+++ b/CarpetExtra/WaveToyExpl/src/finalstep.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/finalstep.F77,v 1.2 2003/10/27 15:31:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/finalstep.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_FinalStep (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/WaveToyExpl/src/initsymbound.F77 b/CarpetExtra/WaveToyExpl/src/initsymbound.F77
index 2f4f182fc..5237b2644 100644
--- a/CarpetExtra/WaveToyExpl/src/initsymbound.F77
+++ b/CarpetExtra/WaveToyExpl/src/initsymbound.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/initsymbound.F77,v 1.2 2003/10/27 15:31:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/initsymbound.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_InitSymBound (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/WaveToyExpl/src/intboundaries.F77 b/CarpetExtra/WaveToyExpl/src/intboundaries.F77
index 838729f73..b5263c267 100644
--- a/CarpetExtra/WaveToyExpl/src/intboundaries.F77
+++ b/CarpetExtra/WaveToyExpl/src/intboundaries.F77
@@ -1,8 +1,8 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intboundaries.F77,v 1.3 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intboundaries.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
+#include "cctk_Faces.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_IntBoundaries (CCTK_ARGUMENTS)
@@ -10,6 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intbou
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external Boundary_SelectGroupForBC
+ CCTK_INT Boundary_SelectGroupForBC
CCTK_INT bndwidth
parameter (bndwidth = 1)
character fbound*100
diff --git a/CarpetExtra/WaveToyExpl/src/intinit.F77 b/CarpetExtra/WaveToyExpl/src/intinit.F77
index b2ebbaea2..58b406dec 100644
--- a/CarpetExtra/WaveToyExpl/src/intinit.F77
+++ b/CarpetExtra/WaveToyExpl/src/intinit.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intinit.F77,v 1.2 2003/10/27 15:31:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intinit.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_IntInit (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/WaveToyExpl/src/intstep.F77 b/CarpetExtra/WaveToyExpl/src/intstep.F77
index 909842c2a..02ecc5e75 100644
--- a/CarpetExtra/WaveToyExpl/src/intstep.F77
+++ b/CarpetExtra/WaveToyExpl/src/intstep.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intstep.F77,v 1.2 2003/10/27 15:31:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/intstep.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_IntStep (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/WaveToyExpl/src/startup.F77 b/CarpetExtra/WaveToyExpl/src/startup.F77
index ce33d9a1c..5dbf2c4a6 100644
--- a/CarpetExtra/WaveToyExpl/src/startup.F77
+++ b/CarpetExtra/WaveToyExpl/src/startup.F77
@@ -1,7 +1,6 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/startup.F77,v 1.2 2003/10/27 15:31:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyExpl/src/startup.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyExpl_Startup
diff --git a/CarpetExtra/WaveToyFO/interface.ccl b/CarpetExtra/WaveToyFO/interface.ccl
index 91a6628a4..893aec679 100644
--- a/CarpetExtra/WaveToyFO/interface.ccl
+++ b/CarpetExtra/WaveToyFO/interface.ccl
@@ -1,24 +1,24 @@
# Interface definition for thorn WaveToyFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/interface.ccl,v 1.4 2004/09/04 18:15:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/interface.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
IMPLEMENTS: WaveToyFO
-INHERITS: grid
+INHERITS: boundary grid MethodOfLines
-CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, \
+CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER IN GH, \
CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, \
CCTK_STRING IN group_name, CCTK_STRING IN bc_name)
-REQUIRES FUNCTION Boundary_SelectGroupForBC
+USES FUNCTION Boundary_SelectGroupForBC
CCTK_INT FUNCTION MoLRegisterEvolvedGroup(CCTK_INT IN EvolvedIndex, \
CCTK_INT IN RHSIndex)
-REQUIRES FUNCTION MoLRegisterEvolvedGroup
+USES FUNCTION MoLRegisterEvolvedGroup
diff --git a/CarpetExtra/WaveToyFO/schedule.ccl b/CarpetExtra/WaveToyFO/schedule.ccl
index 85ec91def..4b014b0b3 100644
--- a/CarpetExtra/WaveToyFO/schedule.ccl
+++ b/CarpetExtra/WaveToyFO/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn WaveToyFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/schedule.ccl,v 1.6 2004/05/06 14:21:18 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/schedule.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
STORAGE: scalarevolve[3]
STORAGE: scalarevolvedot
@@ -17,7 +17,7 @@ SCHEDULE WaveToyFO_InitSymBound AT basegrid
OPTIONS: global
} "Schedule symmetries"
-SCHEDULE WaveToyFO_RegisterVars IN MoL_Register
+SCHEDULE WaveToyFO_RegisterVars IN FO_Register
{
LANG: Fortran
OPTIONS: global
@@ -25,44 +25,29 @@ SCHEDULE WaveToyFO_RegisterVars IN MoL_Register
-SCHEDULE WaveToyFO_CalcRHS IN MoL_CalcRHS
+SCHEDULE WaveToyFO_CalcRHS IN FO_CalcRHS
{
LANG: Fortran
} "Calculate RHS for FO"
-SCHEDULE WaveToyFO_RHSBoundaries IN MoL_CalcRHS AFTER WaveToyFO_CalcRHS
-{
- LANG: Fortran
- SYNC: scalarevolvedot
- OPTIONS: level
-} "Select RHS boundary conditions in FO"
-
-SCHEDULE GROUP ApplyBCs IN MoL_CalcRHS AFTER WaveToyFO_RHSBoundaries
-{
-} "Apply RHSboundary conditions in FO"
-
-
-
-SCHEDULE WaveToyFO_Boundaries IN MoL_PostStep
+SCHEDULE WaveToyFO_Boundaries IN FO_PostStep
{
LANG: Fortran
SYNC: scalarevolve
- OPTIONS: level
} "Select boundary conditions in FO"
-SCHEDULE GROUP ApplyBCs IN MoL_PostStep AFTER WaveToyFO_Boundaries
+SCHEDULE GROUP ApplyBCs IN FO_PostStep AFTER WaveToyFO_Boundaries
{
} "Apply boundary conditions in FO"
-SCHEDULE WaveToyFO_Boundaries AT POSTRESTRICT
+SCHEDULE WaveToyFO_Boundaries IN postrestrict
{
LANG: Fortran
SYNC: scalarevolve
- OPTIONS: level
} "Select boundary conditions after restricting"
-SCHEDULE GROUP ApplyBCs AT POSTRESTRICT AFTER WaveToyFO_Boundaries
+SCHEDULE GROUP ApplyBCs IN postrestrict AFTER WaveToyFO_Boundaries
{
} "Apply boundary conditions after restricting"
diff --git a/CarpetExtra/WaveToyFO/src/boundaries.F77 b/CarpetExtra/WaveToyFO/src/boundaries.F77
index d2a0b03e2..b5ed40ddb 100644
--- a/CarpetExtra/WaveToyFO/src/boundaries.F77
+++ b/CarpetExtra/WaveToyFO/src/boundaries.F77
@@ -1,8 +1,8 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundaries.F77,v 1.3 2004/05/06 14:21:18 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundaries.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
+#include "cctk_Faces.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_Boundaries (CCTK_ARGUMENTS)
@@ -10,6 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundari
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external Boundary_SelectGroupForBC
+ CCTK_INT Boundary_SelectGroupForBC
CCTK_INT bndwidth
parameter (bndwidth = 1)
character fbound*100
@@ -20,4 +22,6 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundari
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, bndwidth, -1,
$ "WaveToyFO::scalarevolve", fbound);
if (ierr.ne.0) call CCTK_WARN (0, "internal error")
+ call CartSymGN (ierr, cctkGH, "WaveToyFO::scalarevolve")
+ if (ierr.ne.0) call CCTK_WARN (0, "internal error")
end
diff --git a/CarpetExtra/WaveToyFO/src/calcrhs.F77 b/CarpetExtra/WaveToyFO/src/calcrhs.F77
index 55734ed1e..46366f5bb 100644
--- a/CarpetExtra/WaveToyFO/src/calcrhs.F77
+++ b/CarpetExtra/WaveToyFO/src/calcrhs.F77
@@ -1,65 +1,23 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs.F77,v 1.8 2004/08/28 19:10:33 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
-
-
-
- function WaveToyFO_Deriv (fm2, fm1, f0, fp1, fp2, dx, dir)
- implicit none
- CCTK_REAL WaveToyFO_Deriv
- CCTK_REAL fm2, fm1, f0, fp1, fp2
- CCTK_REAL dx
- integer dir
-
- if (dir .eq. 0) then
- WaveToyFO_Deriv = (fp1 - fm1) / (2 * dx)
- else if (dir .eq. -1) then
-c Use first order one-sided derivatives here.
-c These are less dissipative than second order one-sided derivatives.
-c (Sic.)
- WaveToyFO_Deriv = (f0 - fm1) / dx
-c$$$ WaveToyFO_Deriv = (+ 3*f0 - 4*fm1 + fm2) / (2*dx)
- else if (dir .eq. +1) then
- WaveToyFO_Deriv = (fp1 - f0) / dx
-c$$$ WaveToyFO_Deriv = (- 3*f0 + 4*fp1 - fp2) / (2*dx)
- else
- call CCTK_WARN (0, "internal error")
- end if
-
- end
-
-
-
-#define CHOOSEDIR(i,imin,imax) ((min(i+1,imax) - (i+1)) + (max(i-1,imin) - (i-1)))
-
-#define DIFFX(var,i,j,k) WaveToyFO_Deriv(var((i)-2,j,k), var((i)-1,j,k), var(i,j,k), var((i)+1,j,k), var((i)+2,j,k), dx(1), idir(1))
-#define DIFFY(var,i,j,k) WaveToyFO_Deriv(var(i,(j)-2,k), var(i,(j)-1,k), var(i,j,k), var(i,(j)+1,k), var(i,(j)+2,k), dx(2), idir(2))
-#define DIFFZ(var,i,j,k) WaveToyFO_Deriv(var(i,j,(k)-2), var(i,j,(k)-1), var(i,j,k), var(i,j,(k)+1), var(i,j,(k)+2), dx(3), idir(3))
-
-
-
+
subroutine WaveToyFO_CalcRHS (CCTK_ARGUMENTS)
implicit none
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
-
CCTK_REAL dx(3)
integer bndwidth(3)
- integer imin(3), imax(3), idir(3)
+ integer imin(3), imax(3)
integer i, j, k
integer d
-
- external WaveToyFO_Deriv
- CCTK_REAL WaveToyFO_Deriv
-
+ integer ierr
do d=1,3
- bndwidth(d) = 0
+ bndwidth(d) = 1
end do
-
do d=1,3
if (cctk_bbox(2*d).ne.0) then
imin(d) = 1+bndwidth(d)
@@ -72,27 +30,20 @@ c$$$ WaveToyFO_Deriv = (- 3*f0 + 4*fp1 - fp2) / (2*dx)
imax(d) = cctk_lsh(d)-cctk_nghostzones(d)
end if
end do
-
do d=1,3
- dx(d) = CCTK_DELTA_SPACE(d)
+ dx(d) = CCTK_DELTA_SPACE(3)
end do
-
do k=imin(3),imax(3)
- idir(3) = CHOOSEDIR(k,imin(3),imax(3))
do j=imin(2),imax(2)
- idir(2) = CHOOSEDIR(j,imin(2),imax(2))
do i=imin(1),imax(1)
- idir(1) = CHOOSEDIR(i,imin(1),imax(1))
-
- phidot(i,j,k) = DIFFX (psix,i,j,k)
- $ + DIFFY (psiy,i,j,k)
- $ + DIFFZ (psiz,i,j,k)
- psixdot(i,j,k) = DIFFX (phi,i,j,k)
- psiydot(i,j,k) = DIFFY (phi,i,j,k)
- psizdot(i,j,k) = DIFFZ (phi,i,j,k)
-
+ phidot(i,j,k) =
+ $ ( (psix(i+1,j,k) - psix(i-1,j,k)) / (2*dx(1))
+ $ + (psix(i,j+1,k) - psix(i,j-1,k)) / (2*dx(2))
+ $ + (psix(i,j,k+1) - psix(i,j,k-1)) / (2*dx(3)))
+ psixdot(i,j,k) = (phi(i+1,j,k) - phi(i-1,j,k)) / (2*dx(1))
+ psiydot(i,j,k) = (phi(i,j+1,k) - phi(i,j-1,k)) / (2*dx(2))
+ psizdot(i,j,k) = (phi(i,j,k+1) - phi(i,j,k-1)) / (2*dx(3))
end do
end do
end do
-
end
diff --git a/CarpetExtra/WaveToyFO/src/initsymbound.F77 b/CarpetExtra/WaveToyFO/src/initsymbound.F77
index 00ab7ef85..5c1c7eef5 100644
--- a/CarpetExtra/WaveToyFO/src/initsymbound.F77
+++ b/CarpetExtra/WaveToyFO/src/initsymbound.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/initsymbound.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/initsymbound.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_InitSymBound (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/WaveToyFO/src/make.code.defn b/CarpetExtra/WaveToyFO/src/make.code.defn
index 6e92555b6..9251b378b 100644
--- a/CarpetExtra/WaveToyFO/src/make.code.defn
+++ b/CarpetExtra/WaveToyFO/src/make.code.defn
@@ -1,8 +1,8 @@
# Main make.code.defn file for thorn WaveToyFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/make.code.defn,v 1.4 2004/09/04 18:15:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/make.code.defn,v 1.1 2003/06/18 18:24:30 schnetter Exp $
# Source files in this directory
-SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 rhsboundaries.F77 startup.F77
+SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 startup.F77
# Subdirectories containing source files
SUBDIRS =
diff --git a/CarpetExtra/WaveToyFO/src/registervars.F77 b/CarpetExtra/WaveToyFO/src/registervars.F77
index 6f3bd41af..0f6391afe 100644
--- a/CarpetExtra/WaveToyFO/src/registervars.F77
+++ b/CarpetExtra/WaveToyFO/src/registervars.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/registervars.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/registervars.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_RegisterVars (CCTK_ARGUMENTS)
@@ -10,6 +9,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/register
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external MolRegisterEvolvedGroup
+ CCTK_INT MolRegisterEvolvedGroup
integer group, groupdot
integer ierr
call CCTK_GroupIndex(group, "WaveToyFO::scalarevolve")
diff --git a/CarpetExtra/WaveToyFO/src/startup.F77 b/CarpetExtra/WaveToyFO/src/startup.F77
index ae38706af..166796537 100644
--- a/CarpetExtra/WaveToyFO/src/startup.F77
+++ b/CarpetExtra/WaveToyFO/src/startup.F77
@@ -1,7 +1,6 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/startup.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/startup.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_Startup
diff --git a/CarpetExtra/WaveToyMoL/interface.ccl b/CarpetExtra/WaveToyMoL/interface.ccl
index 65e4cb5a0..4cf1fea82 100644
--- a/CarpetExtra/WaveToyMoL/interface.ccl
+++ b/CarpetExtra/WaveToyMoL/interface.ccl
@@ -1,24 +1,24 @@
# Interface definition for thorn WaveToyMoL
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/interface.ccl,v 1.4 2004/05/21 17:43:57 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/interface.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
IMPLEMENTS: WaveToyMoL
-INHERITS: grid
+INHERITS: boundary grid MethodOfLines
-CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, \
+CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER IN GH, \
CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, \
CCTK_STRING IN group_name, CCTK_STRING IN bc_name)
-REQUIRES FUNCTION Boundary_SelectGroupForBC
+USES FUNCTION Boundary_SelectGroupForBC
CCTK_INT FUNCTION MoLRegisterEvolvedGroup(CCTK_INT IN EvolvedIndex, \
CCTK_INT IN RHSIndex)
-REQUIRES FUNCTION MoLRegisterEvolvedGroup
+USES FUNCTION MoLRegisterEvolvedGroup
@@ -35,8 +35,3 @@ CCTK_REAL scalarevolvedot TYPE=gf
{
phidot psidot
} "Time derivative of the scalar field"
-
-CCTK_REAL scalarevolveerrorestimate TYPE=gf
-{
- error
-} "Error estimate"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d.gnu b/CarpetExtra/WaveToyMoL/par/sw1d.gnu
index 834756543..ab708d483 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d.gnu
+++ b/CarpetExtra/WaveToyMoL/par/sw1d.gnu
@@ -1,26 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d.gnu,v 1.2 2003/06/30 17:28:51 schnetter Exp $
-
-set grid
-
-dt=0.05
-f(x)=cos(2*pi*(x+t*dt))
-
-t=200
-
-
-p [0:1] "sw1d_1l_0020/phi.xl" i t u 10:13 w l, "sw1d_1l_0040/phi.xl" i t u 10:13 w l, "sw1d_1l_0080/phi.xl" i t u 10:13 w l, f(x)
-
-p [0:1] "sw1d_1l_0020/phi.xl" i t u 10:($13-f($10)) w l, "sw1d_1l_0040/phi.xl" i t u 10:(4*($13-f($10))) w l, "sw1d_1l_0080/phi.xl" i t u 10:(16*($13-f($10))) w l
-
-
-
-p [0:1] "sw1d_2l_0020/phi.xl" i 2*t u 10:13 w l, "sw1d_2l_0040/phi.xl" i 2*t u 10:13 w l, "sw1d_2l_0080/phi.xl" i 2*t u 10:13 w l, "sw1d_2l_0160/phi.xl" i 2*t u 10:13 w l, "sw1d_2l_0320/phi.xl" i 2*t u 10:13 w l, f(x)
-
-p [0:1] "sw1d_2l_0020/phi.xl" i 2*t u 10:($13-f($10)) w l, "sw1d_2l_0040/phi.xl" i 2*t u 10:(4*($13-f($10))) w l, "sw1d_2l_0080/phi.xl" i 2*t u 10:(16*($13-f($10))) w l, "sw1d_2l_0160/phi.xl" i 2*t u 10:(64*($13-f($10))) w l, "sw1d_2l_0320/phi.xl" i 2*t u 10:(256*($13-f($10))) w l
-
-
-
-
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d.gnu,v 1.1 2003/06/18 18:24:31 schnetter Exp $
set grid
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par b/CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par
index 7cd2fb167..3fcee519c 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par
@@ -1,15 +1,23 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par,v 1.4 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_1l_0020.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 3200
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 32
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 24
-driver::global_ny = 5
-driver::global_nz = 5
+driver::global_ny = 7
+driver::global_nz = 7
driver::ghost_size = 2
#Carpet::verbose = yes
@@ -24,20 +32,12 @@ Carpet::init_each_timelevel = yes
CarpetRegrid::refinement_levels = 1
CarpetRegrid::refined_regions = manual-gridpoint-list
-CarpetRegrid::gridpoints = "[[ ([28,4,4]:[68,12,12]:[2,2,2]) ]]"
+CarpetRegrid::gridpoints = "[[ ([28,6,6]:[68,16,16]:[2,2,2]) ]]"
CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 16
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,7 +77,7 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_1l_0020"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par b/CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par
index 9c9f93248..aa73052ce 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par,v 1.4 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_1l_0040.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 6400
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 64
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 44
driver::global_ny = 5
@@ -29,15 +37,7 @@ CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 32
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,23 +77,23 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_1l_0040"
-IOBasic::outInfo_every = 32
+IOBasic::outInfo_every = 64
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 32
+IOBasic::outScalar_every = 64
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 32
+IOASCII::out1D_every = 64
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 32
+#IOASCII::out3D_every = 64
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par b/CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par
index c8a040c7c..62164e592 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par,v 1.4 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_1l_0080.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 12800
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 128
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 84
driver::global_ny = 5
@@ -29,15 +37,7 @@ CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 64
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,23 +77,23 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_1l_0080"
-IOBasic::outInfo_every = 64
+IOBasic::outInfo_every = 128
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 64
+IOBasic::outScalar_every = 128
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 64
+IOASCII::out1D_every = 128
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 64
+#IOASCII::out3D_every = 128
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par
index 13f2de3ee..def16c101 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par,v 1.5 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0020.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 3200
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 32
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 24
driver::global_ny = 5
@@ -24,20 +32,12 @@ Carpet::init_each_timelevel = yes
CarpetRegrid::refinement_levels = 2
CarpetRegrid::refined_regions = manual-gridpoint-list
-CarpetRegrid::gridpoints = "[[ ([30,4,4]:[66,12,12]:[2,2,2]) ]]"
+CarpetRegrid::gridpoints = "[[ ([28,4,4]:[68,12,12]:[2,2,2]) ]]"
CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 16
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,23 +77,23 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_2l_0020"
-IOBasic::outInfo_every = 16
+IOBasic::outInfo_every = 32
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 16
+IOBasic::outScalar_every = 32
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 16
+IOASCII::out1D_every = 32
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 16
+#IOASCII::out3D_every = 32
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par
index 5f215164d..ddd962a72 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par,v 1.6 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0040.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 6400
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 64
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 44
driver::global_ny = 5
@@ -24,21 +32,11 @@ Carpet::init_each_timelevel = yes
CarpetRegrid::refinement_levels = 2
CarpetRegrid::refined_regions = manual-gridpoint-list
-CarpetRegrid::gridpoints = "[[ ([50,4,4]:[126,12,12]:[2,2,2]) ]]"
+CarpetRegrid::gridpoints = "[[ ([48,4,4]:[128,12,12]:[2,2,2]) ]]"
CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "CoordBase LocalInterp Slab SymBase"
-
-ActiveThorns = "NaNChecker"
-
-NaNChecker::check_every = 32
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
@@ -72,28 +70,30 @@ IDScalarWaveMoL::wave_number[0] = 1.0
#ActiveThorns = "Dissipation"
-
+#
+#Dissipation::epsdis = 0.1
+#Dissipation::timelevel = "n+1"
#Dissipation::vars = "WaveToyMoL::scalarevolve"
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_2l_0040"
-IOBasic::outInfo_every = 32
+IOBasic::outInfo_every = 64
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 32
+IOBasic::outScalar_every = 64
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 32
+IOASCII::out1D_every = 64
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 32
+#IOASCII::out3D_every = 64
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par
index 5bfcdf1cc..a5ea971e1 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par,v 1.5 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0080.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 12800
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 128
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 84
driver::global_ny = 5
@@ -24,20 +32,12 @@ Carpet::init_each_timelevel = yes
CarpetRegrid::refinement_levels = 2
CarpetRegrid::refined_regions = manual-gridpoint-list
-CarpetRegrid::gridpoints = "[[ ([90,4,4]:[246,12,12]:[2,2,2]) ]]"
+CarpetRegrid::gridpoints = "[[ ([88,4,4]:[248,12,12]:[2,2,2]) ]]"
CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 64
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,23 +77,23 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_2l_0080"
-IOBasic::outInfo_every = 64
+IOBasic::outInfo_every = 128
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 64
+IOBasic::outScalar_every = 128
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 64
+IOASCII::out1D_every = 128
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 64
+#IOASCII::out3D_every = 128
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par
index c47ead004..3ce5d2885 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par,v 1.5 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0160.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 25600
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 256
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 164
driver::global_ny = 5
@@ -24,20 +32,12 @@ Carpet::init_each_timelevel = yes
CarpetRegrid::refinement_levels = 2
CarpetRegrid::refined_regions = manual-gridpoint-list
-CarpetRegrid::gridpoints = "[[ ([170,4,4]:[486,12,12]:[2,2,2]) ]]"
+CarpetRegrid::gridpoints = "[[ ([168,4,4]:[488,12,12]:[2,2,2]) ]]"
CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 128
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,23 +77,23 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_2l_0160"
-IOBasic::outInfo_every = 128
+IOBasic::outInfo_every = 256
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 128
+IOBasic::outScalar_every = 256
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 128
+IOASCII::out1D_every = 256
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 128
+#IOASCII::out3D_every = 256
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par
index 4836c42b9..fefe6be21 100644
--- a/CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par
+++ b/CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par
@@ -1,11 +1,19 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par,v 1.5 2004/07/07 16:15:31 tradke Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/par/sw1d_2l_0320.par,v 1.1 2003/06/18 18:24:31 schnetter Exp $
Cactus::cctk_initial_time = 0
Cactus::cctk_itlast = 51200
-ActiveThorns = "IOUtil Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
+ActiveThorns = "LocalInterp NaNChecker Slab"
+
+NaNChecker::check_every = 512
+NaNChecker::check_vars = "all"
+NaNChecker::action_if_found = terminate
+
+
+
+ActiveThorns = "Carpet CarpetLib CarpetRegrid CarpetInterp CarpetReduce CarpetSlab"
driver::global_nx = 324
driver::global_ny = 5
@@ -24,20 +32,12 @@ Carpet::init_each_timelevel = yes
CarpetRegrid::refinement_levels = 2
CarpetRegrid::refined_regions = manual-gridpoint-list
-CarpetRegrid::gridpoints = "[[ ([330,4,4]:[966,12,12]:[2,2,2]) ]]"
+CarpetRegrid::gridpoints = "[[ ([328,4,4]:[968,12,12]:[2,2,2]) ]]"
CarpetRegrid::outerbounds = "[[ [[0,0],[1,1],[1,1]] ]]"
-ActiveThorns = "LocalInterp NaNChecker Slab"
-
-NaNChecker::check_every = 256
-NaNChecker::check_vars = "all"
-NaNChecker::action_if_found = terminate
-
-
-
-ActiveThorns = "Boundary CoordBase SymBase CartGrid3D Periodic"
+ActiveThorns = "Boundary CartGrid3D Periodic"
grid::domain = full
grid::type = byrange
@@ -77,23 +77,23 @@ IDScalarWaveMoL::wave_number[0] = 1.0
-ActiveThorns = "IOBasic CarpetIOASCII"
+ActiveThorns = "IOUtil IOBasic CarpetIOASCII"
IO::out_dir = "sw1d_2l_0320"
-IOBasic::outInfo_every = 256
+IOBasic::outInfo_every = 512
IOBasic::outInfo_vars = "WaveToyMoL::phi IDScalarWaveMoL::phierror"
-IOBasic::outScalar_every = 256
+IOBasic::outScalar_every = 512
IOBasic::outScalar_reductions = "minimum maximum norm1 norm2 norm_inf"
IOBasic::outScalar_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
#IOASCII::output_all_timelevels = yes
-IOASCII::out1D_every = 256
+IOASCII::out1D_every = 512
IO::out_yline_x = 0.5
IO::out_zline_x = 0.5
IOASCII::out1D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
-#IOASCII::out3D_every = 256
+#IOASCII::out3D_every = 512
#IOASCII::out3D_vars = "WaveToyMoL::scalarevolve IDScalarWaveMoL::scalarevolveerror"
diff --git a/CarpetExtra/WaveToyMoL/param.ccl b/CarpetExtra/WaveToyMoL/param.ccl
index 37879c4d8..f4c10772a 100644
--- a/CarpetExtra/WaveToyMoL/param.ccl
+++ b/CarpetExtra/WaveToyMoL/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn WaveToyMoL
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/param.ccl,v 1.2 2004/04/07 17:08:21 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/param.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
SHARES: MethodOfLines
@@ -18,7 +18,3 @@ STRING bound "Type of boundary condition to use"
{
.* :: "must be a registered boundary condition"
} "None"
-
-BOOLEAN estimate_error "Estimate the truncation error"
-{
-} "no"
diff --git a/CarpetExtra/WaveToyMoL/schedule.ccl b/CarpetExtra/WaveToyMoL/schedule.ccl
index ffce79084..92eae59c1 100644
--- a/CarpetExtra/WaveToyMoL/schedule.ccl
+++ b/CarpetExtra/WaveToyMoL/schedule.ccl
@@ -1,31 +1,26 @@
# Schedule definitions for thorn WaveToyMoL
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/schedule.ccl,v 1.5 2004/04/07 17:08:21 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/schedule.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
STORAGE: scalarevolve[3]
STORAGE: scalarevolvedot
-if (estimate_error) {
- STORAGE: scalarevolveerrorestimate
-}
-
SCHEDULE WaveToyMol_Startup AT startup
{
LANG: Fortran
- OPTIONS: meta
} "Register banner"
SCHEDULE WaveToyMoL_InitSymBound AT basegrid
{
LANG: Fortran
- OPTIONS: meta
+ OPTIONS: global
} "Schedule symmetries"
SCHEDULE WaveToyMoL_RegisterVars IN MoL_Register
{
LANG: Fortran
- OPTIONS: meta
+ OPTIONS: global
} "Register variables for MoL"
@@ -38,7 +33,6 @@ SCHEDULE WaveToyMoL_CalcRHS IN MoL_CalcRHS
SCHEDULE WaveToyMoL_Boundaries IN MoL_PostStep
{
LANG: Fortran
- OPTIONS: level
SYNC: scalarevolve
} "Select boundary conditions in MoL"
@@ -48,22 +42,12 @@ SCHEDULE GROUP ApplyBCs IN MoL_PostStep AFTER WaveToyMoL_Boundaries
-if (estimate_error) {
-
- SCHEDULE WaveToyMoL_EstimateError AT poststep
- {
- LANG: Fortran
- } "Estimate the truncation error"
-
- SCHEDULE WaveToyMoL_EstimateErrorBoundaries AT poststep AFTER WaveToyMoL_EstimateError
- {
- LANG: Fortran
- OPTIONS: level
- SYNC: scalarevolveerrorestimate
- } "Select boundary conditions for the truncation error"
-
- SCHEDULE GROUP ApplyBCs AT poststep AFTER WaveToyMoL_EstimateError
- {
- } "Apply boundary conditions"
-
-}
+SCHEDULE WaveToyMoL_Boundaries IN postrestrict
+{
+ LANG: Fortran
+ SYNC: scalarevolve
+} "Select boundary conditions after restricting"
+
+SCHEDULE GROUP ApplyBCs IN postrestrict AFTER WaveToyMoL_Boundaries
+{
+} "Apply boundary conditions after restricting"
diff --git a/CarpetExtra/WaveToyMoL/src/boundaries.F77 b/CarpetExtra/WaveToyMoL/src/boundaries.F77
index 6b86f6383..64ad28fca 100644
--- a/CarpetExtra/WaveToyMoL/src/boundaries.F77
+++ b/CarpetExtra/WaveToyMoL/src/boundaries.F77
@@ -1,8 +1,8 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/boundaries.F77,v 1.3 2004/04/07 17:08:21 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/boundaries.F77,v 1.1 2003/06/18 18:24:31 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
+#include "cctk_Faces.h"
#include "cctk_Parameters.h"
subroutine WaveToyMoL_Boundaries (CCTK_ARGUMENTS)
@@ -10,6 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/boundar
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external Boundary_SelectGroupForBC
+ CCTK_INT Boundary_SelectGroupForBC
CCTK_INT bndwidth
parameter (bndwidth = 1)
character fbound*100
@@ -20,4 +22,6 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/boundar
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, bndwidth, -1,
$ "WaveToyMoL::scalarevolve", fbound);
if (ierr.ne.0) call CCTK_WARN (0, "internal error")
+ call CartSymGN (ierr, cctkGH, "WaveToyMoL::scalarevolve")
+ if (ierr.ne.0) call CCTK_WARN (0, "internal error")
end
diff --git a/CarpetExtra/WaveToyMoL/src/calcrhs.F77 b/CarpetExtra/WaveToyMoL/src/calcrhs.F77
index b3df37eb2..777979b81 100644
--- a/CarpetExtra/WaveToyMoL/src/calcrhs.F77
+++ b/CarpetExtra/WaveToyMoL/src/calcrhs.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/calcrhs.F77,v 1.3 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/calcrhs.F77,v 1.1 2003/06/18 18:24:31 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyMoL_CalcRHS (CCTK_ARGUMENTS)
@@ -10,15 +9,26 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/calcrhs
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
- CCTK_INT bndwidth
- parameter (bndwidth = 1)
- integer imin(3), imax(3)
CCTK_REAL dx(3)
+ integer bndwidth(3)
+ integer imin(3), imax(3)
integer i, j, k
integer d
+ integer ierr
+ do d=1,3
+ bndwidth(d) = 1
+ end do
do d=1,3
- imin(d) = 1+bndwidth
- imax(d) = cctk_lsh(d)-bndwidth
+ if (cctk_bbox(2*d).ne.0) then
+ imin(d) = 1+bndwidth(d)
+ else
+ imin(d) = 1+cctk_nghostzones(d)
+ end if
+ if (cctk_bbox(2*d+1).ne.0) then
+ imax(d) = cctk_lsh(d)-bndwidth(d)
+ else
+ imax(d) = cctk_lsh(d)-cctk_nghostzones(d)
+ end if
end do
do d=1,3
dx(d) = CCTK_DELTA_SPACE(3)
diff --git a/CarpetExtra/WaveToyMoL/src/initsymbound.F77 b/CarpetExtra/WaveToyMoL/src/initsymbound.F77
index 554eb16f0..af12a8009 100644
--- a/CarpetExtra/WaveToyMoL/src/initsymbound.F77
+++ b/CarpetExtra/WaveToyMoL/src/initsymbound.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/initsymbound.F77,v 1.3 2004/04/07 17:08:21 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/initsymbound.F77,v 1.1 2003/06/18 18:24:31 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyMoL_InitSymBound (CCTK_ARGUMENTS)
@@ -20,6 +19,4 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/initsym
if (ierr.ne.0) call CCTK_WARN (0, "internal error")
call SetCartSymVN (ierr, cctkGH, sym, "WaveToyMoL::phidot")
if (ierr.ne.0) call CCTK_WARN (0, "internal error")
- call SetCartSymVN (ierr, cctkGH, sym, "WaveToyMoL::error")
- if (ierr.ne.0) call CCTK_WARN (0, "internal error")
end
diff --git a/CarpetExtra/WaveToyMoL/src/make.code.defn b/CarpetExtra/WaveToyMoL/src/make.code.defn
index 59782e596..969543b4a 100644
--- a/CarpetExtra/WaveToyMoL/src/make.code.defn
+++ b/CarpetExtra/WaveToyMoL/src/make.code.defn
@@ -1,8 +1,8 @@
# Main make.code.defn file for thorn WaveToyMoL
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/make.code.defn,v 1.2 2004/04/07 17:08:21 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/make.code.defn,v 1.1 2003/06/18 18:24:31 schnetter Exp $
# Source files in this directory
-SRCS = boundaries.F77 calcrhs.F77 estimateerror.F77 initsymbound.F77 registervars.F77 startup.F77
+SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 startup.F77
# Subdirectories containing source files
SUBDIRS =
diff --git a/CarpetExtra/WaveToyMoL/src/registervars.F77 b/CarpetExtra/WaveToyMoL/src/registervars.F77
index 51710f60a..df31c718a 100644
--- a/CarpetExtra/WaveToyMoL/src/registervars.F77
+++ b/CarpetExtra/WaveToyMoL/src/registervars.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/registervars.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/registervars.F77,v 1.1 2003/06/18 18:24:31 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyMoL_RegisterVars (CCTK_ARGUMENTS)
@@ -10,6 +9,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/registe
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external MoLRegisterEvolvedGroup
+ CCTK_INT MoLRegisterEvolvedGroup
integer group, groupdot
integer ierr
call CCTK_GroupIndex(group, "wavetoymol::scalarevolve")
diff --git a/CarpetExtra/WaveToyMoL/src/startup.F77 b/CarpetExtra/WaveToyMoL/src/startup.F77
index 703d0d922..82d75c57e 100644
--- a/CarpetExtra/WaveToyMoL/src/startup.F77
+++ b/CarpetExtra/WaveToyMoL/src/startup.F77
@@ -1,7 +1,6 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/startup.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyMoL/src/startup.F77,v 1.1 2003/06/18 18:24:31 schnetter Exp $
#include "cctk.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyMoL_Startup