aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <>2003-06-18 16:24:00 +0000
committerschnetter <>2003-06-18 16:24:00 +0000
commitd6e2a5e25e182a86ebb712d68eabe1d533e60ff6 (patch)
treec48a4a122dfec847afa10475dd19ac1b94617e39
parent1696dd853f584c4219569fdbd7129832bb4946f8 (diff)
Major update after a quiet time.
Major update after a quiet time. Carpet: The flesh now has new cGH fields cctk_levoff[], cctk_levoffdenom[], and cctk_timefac that describe the spatial offset and temporal refinement factor between the base and the current refinement level. These fields are now set and used; they change how coordinates are handled. CarpetIOASCII: Fix bugs regarding choosing the output hyperslab and the output coordinates. ID*, *Toy*: New WaveToy examples with various formulations and different integrations methods. Currently, none of them converge to second order except the standard WaveToy formulation. These updates require the recent flesh, base thorn (and MoL) updates. darcs-hash:20030618162427-07bb3-70761f74bce6ae246b5a2943a385647657d46d34.gz
-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