aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschnetter <>2001-12-17 12:34:00 +0000
committerschnetter <>2001-12-17 12:34:00 +0000
commit04dff66c4ada038cbb2a6205a4d4b12caa14d309 (patch)
treeb75cb72dcf6520b1143e7c19f21d168fe33cdaa6
parent0aba64d1198104490116ee2196ddd381337ba586 (diff)
Fixed test cases for axial symmetry (changed parameter files.)
Fixed test cases for axial symmetry (changed parameter files.) Extented Carpet to handle multiple grid components per processor. Currently works on one processor only. darcs-hash:20011217123400-07bb3-47796190d04061ea23798717f6714978bf7e1f55.gz
-rw-r--r--Carpet/Carpet/options/carpet-lilypond-gcc35
-rw-r--r--Carpet/Carpet/src/Recompose.cc106
-rw-r--r--Carpet/Carpet/src/SetupGH.cc12
-rw-r--r--Carpet/Carpet/src/carpet_public.hh7
-rw-r--r--Carpet/Carpet/src/helpers.cc68
-rw-r--r--Carpet/Carpet/src/variables.cc5
-rw-r--r--Carpet/CarpetIOASCII/param.ccl6
-rw-r--r--Carpet/CarpetIOASCII/src/ioascii.cc11
-rw-r--r--CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par13
-rw-r--r--CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par4
10 files changed, 127 insertions, 110 deletions
diff --git a/Carpet/Carpet/options/carpet-lilypond-gcc3 b/Carpet/Carpet/options/carpet-lilypond-gcc3
index 5900a6881..6bc774255 100644
--- a/Carpet/Carpet/options/carpet-lilypond-gcc3
+++ b/Carpet/Carpet/options/carpet-lilypond-gcc3
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/options/Attic/carpet-lilypond-gcc3,v 1.1 2001/12/07 18:24:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/options/Attic/carpet-lilypond-gcc3,v 1.2 2001/12/17 13:34:00 schnetter Exp $
#CPP = /home/eschnett/gcc/bin/cpp -traditional -DTMPL_EXPLICIT -DCARPET_REAL
CPP = cpp -traditional -DTMPL_EXPLICIT -DCARPET_REAL
@@ -7,7 +7,8 @@ CXX = /home/eschnett/gcc/bin/g++
F77 = /home/eschnett/gcc/bin/g77
F90 = /home/eschnett/gcc/bin/g77
-CXXFLAGS = -DTMPL_EXPLICIT -DCARPET_REAL -ftemplate-depth-30 -Wl,-rpath,/home/eschnett/gcc/lib
+CXXFLAGS = -DTMPL_EXPLICIT -DCARPET_REAL -ftemplate-depth-30
+LDFLAGS = -Wl,-rpath,/home/eschnett/gcc/lib
C_OPTIMISE_FLAGS = -O2 -funroll-loops -march=pentiumpro
CXX_OPTIMISE_FLAGS = -O2 -funroll-loops -march=pentiumpro
diff --git a/Carpet/Carpet/src/Recompose.cc b/Carpet/Carpet/src/Recompose.cc
index 1fded5cb8..2122d179f 100644
--- a/Carpet/Carpet/src/Recompose.cc
+++ b/Carpet/Carpet/src/Recompose.cc
@@ -15,7 +15,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Recompose.cc,v 1.12 2001/12/14 16:39:07 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Recompose.cc,v 1.13 2001/12/17 13:34:01 schnetter Exp $";
@@ -31,8 +31,10 @@ namespace Carpet {
- static void SplitRegions_AlongZ (const cGH* cgh, gh<dim>::cexts& bbss);
- static void SplitRegions_AsSpecified (const cGH* cgh, gh<dim>::cexts& bbss);
+ static void SplitRegions_AlongZ (const cGH* cgh,
+ vector<bbox<int,dim> >& bbs);
+ static void SplitRegions_AsSpecified (const cGH* cgh,
+ vector<bbox<int,dim> >& bbs);
static void MakeProcessors_RoundRobin (const cGH* cgh,
const gh<dim>::rexts& bbss,
@@ -40,32 +42,34 @@ namespace Carpet {
- static bool RegionsOK (const gh<dim>::rexts& bbsss,
- const gh<dim>::rprocs& pss);
+ static void CheckRegions (const gh<dim>::rexts& bbsss,
+ const gh<dim>::rprocs& pss);
static void Adapt (const cGH* cgh, int reflevels, gh<dim>* hh);
static void Output (const cGH* cgh, const gh<dim>* hh, const char* descr);
- bool RegionsOK (const gh<dim>::rexts& bbsss, const gh<dim>::rprocs& pss)
+ void CheckRegions (const gh<dim>::rexts& bbsss, const gh<dim>::rprocs& pss)
{
// At least one level
- if (bbsss.size() == 0) return false;
+ assert (bbsss.size() > 0);
for (int rl=0; rl<(int)bbsss.size(); ++rl) {
// No empty levels
- if (bbsss[rl].size() == 0) return false;
+ assert (bbsss[rl].size() > 0);
for (int c=0; c<(int)bbsss[rl].size(); ++c) {
- // At least one multigrid level
- if (bbsss[rl][c].size() == 0) return false;
+ // Just one multigrid level
+ assert (bbsss[rl][c].size() == 1);
+ for (int ml=0; ml<(int)bbsss[rl][c].size(); ++ml) {
+ assert (all(bbsss[rl][c][ml].stride()
+ == floor(pow((double)reffact,maxreflevels-rl-1)+0.5)));
+ }
}
}
- if (pss.size() != bbsss.size()) return false;
+ assert (pss.size() == bbsss.size());
for (int rl=0; rl<(int)bbsss.size(); ++rl) {
- if (pss[rl].size() != bbsss[rl].size()) return false;
+ assert (pss[rl].size() == bbsss[rl].size());
}
-
- return true;
}
@@ -74,7 +78,7 @@ namespace Carpet {
const gh<dim>::rprocs& pss)
{
// Check the regions
- assert (RegionsOK(bbsss,pss));
+ CheckRegions (bbsss, pss);
// Save the region information for the next regridding
next_bbsss = bbsss;
next_pss = pss;
@@ -85,8 +89,6 @@ namespace Carpet {
void Recompose (const cGH* cgh)
{
- DECLARE_CCTK_PARAMETERS;
-
assert (component == -1);
Waypoint ("%*sRecompose", 2*reflevel, "");
@@ -94,7 +96,7 @@ namespace Carpet {
if (!do_recompose) return;
// Check the regions
- assert (RegionsOK(next_bbsss, next_pss));
+ CheckRegions (next_bbsss, next_pss);
// Recompose
hh->recompose (next_bbsss, next_pss);
@@ -125,15 +127,13 @@ namespace Carpet {
- // This routine is a leftover. It determines "automatically" how
- // scalars and arrays should be refined. The user really should have
- // a possibility to define how arrays are to be refined.
+ // This routine is a leftover. It determines "automatically" how
+ // scalars and arrays should be refined. The user really should
+ // have a possibility to define how arrays are to be refined.
static void Adapt (const cGH* cgh, const int reflevels, gh<dim>* hh)
{
- DECLARE_CCTK_PARAMETERS;
-
- const int nprocs = CCTK_nProcs(cgh);
- const int mglevels = 1; // for now
+ const int nprocs = CCTK_nProcs(cgh);
+ const int mglevels = 1; // for now
vector<vector<bbox<int,dim> > > bbss(reflevels);
// note: what this routine calls "ub" is "ub+str" elsewhere
vect<int,dim> rstr = hh->baseextent.stride();
@@ -174,8 +174,14 @@ namespace Carpet {
assert (cub[dim-1] <= rub[dim-1]);
bbs[c] = bbox<int,dim>(clb, cub-cstr, cstr);
}
- bbss[rl] = bbs;
+// bbss[rl] = bbs;
+ bbss[rl].clear();
+ assert (Carpet::hh->components(rl) % nprocs == 0);
+ for (int cc=0; cc<(int)Carpet::hh->components(rl)/nprocs; ++cc) {
+ bbss[rl].insert(bbss[rl].end(), bbs.begin(), bbs.end());
+ }
}
+
vector<vector<vector<bbox<int,dim> > > > bbsss
= hh->make_multigrid_boxes(bbss, mglevels);
@@ -239,14 +245,14 @@ namespace Carpet {
- void SplitRegions (const cGH* cgh, gh<dim>::cexts& bbss)
+ void SplitRegions (const cGH* cgh, vector<bbox<int,dim> >& bbs)
{
DECLARE_CCTK_PARAMETERS;
if (CCTK_EQUALS (processor_topology, "automatic")) {
- SplitRegions_AlongZ (cgh, bbss);
+ SplitRegions_AlongZ (cgh, bbs);
} else if (CCTK_EQUALS (processor_topology, "manual")) {
- SplitRegions_AsSpecified (cgh, bbss);
+ SplitRegions_AsSpecified (cgh, bbs);
} else {
abort();
}
@@ -254,22 +260,22 @@ namespace Carpet {
- void SplitRegions_AlongZ (const cGH* cgh, gh<dim>::cexts& bbss)
+ void SplitRegions_AlongZ (const cGH* cgh, vector<bbox<int,dim> >& bbs)
{
// Something to do?
- if (bbss.size() == 0) return;
+ if (bbs.size() == 0) return;
+
+ const int nprocs = CCTK_nProcs(cgh);
- const int nprocs = CCTK_nProcs(cgh);
- const int mglevels = 1; // arbitrary value
+ if (nprocs==1) return;
- assert (bbss.size() == 1);
- assert (bbss[0].size() == 1);
+ assert (bbs.size() == 1);
- const vect<int,dim> rstr = bbss[0][0].stride();
- const vect<int,dim> rlb = bbss[0][0].lower();
- const vect<int,dim> rub = bbss[0][0].upper() + rstr;
+ const vect<int,dim> rstr = bbs[0].stride();
+ const vect<int,dim> rlb = bbs[0].lower();
+ const vect<int,dim> rub = bbs[0].upper() + rstr;
- vector<bbox<int,dim> > bbs(nprocs);
+ bbs.resize(nprocs);
for (int c=0; c<nprocs; ++c) {
vect<int,dim> cstr = rstr;
vect<int,dim> clb = rlb;
@@ -285,27 +291,26 @@ namespace Carpet {
assert (cub[dim-1] <= rub[dim-1]);
bbs[c] = bbox<int,dim>(clb, cub-cstr, cstr);
}
- bbss = hh->make_reflevel_multigrid_boxes(bbs, mglevels);
}
- void SplitRegions_AsSpecified (const cGH* cgh, gh<dim>::cexts& bbss)
+ void SplitRegions_AsSpecified (const cGH* cgh, vector<bbox<int,dim> >& bbs)
{
DECLARE_CCTK_PARAMETERS;
// Something to do?
- if (bbss.size() == 0) return;
+ if (bbs.size() == 0) return;
+
+ const int nprocs = CCTK_nProcs(cgh);
- const int nprocs = CCTK_nProcs(cgh);
- const int mglevels = 1; // arbitrary value
+ if (nprocs==1) return;
- assert (bbss.size() == 1);
- assert (bbss[0].size() == 1);
+ assert (bbs.size() == 1);
- const vect<int,dim> rstr = bbss[0][0].stride();
- const vect<int,dim> rlb = bbss[0][0].lower();
- const vect<int,dim> rub = bbss[0][0].upper() + rstr;
+ const vect<int,dim> rstr = bbs[0].stride();
+ const vect<int,dim> rlb = bbs[0].lower();
+ const vect<int,dim> rub = bbs[0].upper() + rstr;
const vect<int,dim> nprocs_dir
(processor_topology_3d_x, processor_topology_3d_y,
@@ -317,7 +322,7 @@ namespace Carpet {
}
assert (prod(nprocs_dir) == nprocs);
- vector<bbox<int,dim> > bbs(nprocs);
+ bbs.resize(nprocs);
assert (dim==3);
for (int k=0; k<nprocs_dir[2]; ++k) {
for (int j=0; j<nprocs_dir[1]; ++j) {
@@ -340,7 +345,6 @@ namespace Carpet {
}
}
}
- bbss = hh->make_reflevel_multigrid_boxes(bbs, mglevels);
}
diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc
index 1efb5e3b3..431514da7 100644
--- a/Carpet/Carpet/src/SetupGH.cc
+++ b/Carpet/Carpet/src/SetupGH.cc
@@ -11,7 +11,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.16 2001/12/14 16:39:08 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/SetupGH.cc,v 1.17 2001/12/17 13:34:01 schnetter Exp $";
@@ -39,7 +39,8 @@ namespace Carpet {
// Refinement information
maxreflevels = max_refinement_levels;
- maxreflevelfact = floor(pow((double)refinement_factor, maxreflevels-1) + 0.5);
+ reffact = refinement_factor;
+ maxreflevelfact = floor(pow((double)reffact, maxreflevels-1) + 0.5);
// Ghost zones
vect<int,dim> lghosts, ughosts;
@@ -243,13 +244,14 @@ namespace Carpet {
vector<bbox<int,dim> > bbs(1);
bbs[0] = hh->baseextent;
+ SplitRegions (cgh, bbs);
+
vector<vector<bbox<int,dim> > > bbss(1);
bbss[0] = bbs;
- SplitRegions (cgh, bbss);
-
gh<dim>::rexts bbsss;
- bbsss = hh->make_multigrid_boxes(bbss, 1);
+ const int mglevels = 1;
+ bbsss = hh->make_multigrid_boxes(bbss, mglevels);
gh<dim>::rprocs pss;
MakeProcessors (cgh, bbsss, pss);
diff --git a/Carpet/Carpet/src/carpet_public.hh b/Carpet/Carpet/src/carpet_public.hh
index bcb483926..d5deb2b17 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.9 2001/12/14 16:39:09 schnetter Exp $
+// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet_public.hh,v 1.10 2001/12/17 13:34:01 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
@@ -35,6 +35,9 @@ namespace Carpet {
// Maximum number of refinement levels
extern int maxreflevels;
+ // Refinement factor
+ extern int reffact;
+
// Refinement factor on finest grid
extern int maxreflevelfact;
@@ -125,7 +128,7 @@ namespace Carpet {
void RegisterRecomposeRegions (const gh<dim>::rexts& bbsss,
const gh<dim>::rprocs& pss);
- void SplitRegions (const cGH* cgh, gh<dim>::cexts& bbss);
+ void SplitRegions (const cGH* cgh, vector<bbox<int,dim> >& bbs);
void MakeProcessors (const cGH* cgh, const gh<dim>::rexts& bbsss,
gh<dim>::rprocs& pss);
diff --git a/Carpet/Carpet/src/helpers.cc b/Carpet/Carpet/src/helpers.cc
index fb36ba70c..fcc294cb6 100644
--- a/Carpet/Carpet/src/helpers.cc
+++ b/Carpet/Carpet/src/helpers.cc
@@ -11,7 +11,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.13 2001/12/14 16:39:10 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/helpers.cc,v 1.14 2001/12/17 13:34:01 schnetter Exp $";
@@ -294,37 +294,35 @@ namespace Carpet {
// Local mode -- a component is active
// Set Cactus parameters
- for (int d=0; d<dim; ++d) {
+ {
+ assert (reflevel < (int)dd->boxes.size());
+ assert (component < (int)dd->boxes[reflevel].size());
+ assert (mglevel < (int)dd->boxes[reflevel][component].size());
const bbox<int,dim>& ext
= dd->boxes[reflevel][component][mglevel].exterior;
- cgh->cctk_lsh[d] = (ext.shape() / ext.stride())[d];
- cgh->cctk_lbnd[d] = (ext.lower() / ext.stride())[d];
- cgh->cctk_ubnd[d] = (ext.upper() / ext.stride())[d];
- assert (cgh->cctk_lsh[d]>=0 && cgh->cctk_lsh[d]<=cgh->cctk_gsh[d]);
- assert (cgh->cctk_lbnd[d]>=0 && cgh->cctk_ubnd[d]<cgh->cctk_gsh[d]);
- assert (cgh->cctk_lbnd[d]<=cgh->cctk_ubnd[d]+1);
-#if 0
- // No outer boundaries on the finer grids
- cgh->cctk_bbox[2*d ]
- = reflevel==0 && cgh->cctk_lbnd[d] == 0;
- cgh->cctk_bbox[2*d+1]
- = reflevel==0 && cgh->cctk_ubnd[d] == cgh->cctk_gsh[d]-1;
-#else
- // Do allow outer boundaries on the finer grids (but this is
- // generally inconsistent -- c. f. periodicity)
- const bbox<int,dim>& base = hh->baseextent;
- cgh->cctk_bbox[2*d ] = (ext.lower() < base.lower())[d];
- cgh->cctk_bbox[2*d+1] = (ext.upper() > base.upper())[d];
-#endif
- for (int stg=0; stg<CCTK_NSTAGGER; ++stg) {
- // TODO: support staggering
- cgh->cctk_lssh[CCTK_LSSH_IDX(stg,d)] = cgh->cctk_lsh[d];
+ for (int d=0; d<dim; ++d) {
+ cgh->cctk_lsh[d] = (ext.shape() / ext.stride())[d];
+ cgh->cctk_lbnd[d] = (ext.lower() / ext.stride())[d];
+ cgh->cctk_ubnd[d] = (ext.upper() / ext.stride())[d];
+ assert (cgh->cctk_lsh[d]>=0 && cgh->cctk_lsh[d]<=cgh->cctk_gsh[d]);
+ assert (cgh->cctk_lbnd[d]>=0 && cgh->cctk_ubnd[d]<cgh->cctk_gsh[d]);
+ assert (cgh->cctk_lbnd[d]<=cgh->cctk_ubnd[d]+1);
+ // Do allow outer boundaries on the finer grids
+ cgh->cctk_bbox[2*d ] = cgh->cctk_lbnd[d] == 0;
+ cgh->cctk_bbox[2*d+1] = cgh->cctk_ubnd[d] == cgh->cctk_gsh[d]-1;
+ for (int stg=0; stg<CCTK_NSTAGGER; ++stg) {
+ // TODO: support staggering
+ cgh->cctk_lssh[CCTK_LSSH_IDX(stg,d)] = cgh->cctk_lsh[d];
+ }
}
}
for (int group=0; group<CCTK_NumGroups(); ++group) {
+ assert (reflevel < (int)arrdata[group].dd->boxes.size());
+ assert (component < (int)arrdata[group].dd->boxes[reflevel].size());
+ assert (mglevel < (int)arrdata[group].dd->boxes[reflevel][component].size());
+ const bbox<int,dim>& ext
+ = arrdata[group].dd->boxes[reflevel][component][mglevel].exterior;
for (int d=0; d<dim; ++d) {
- const bbox<int,dim>& ext
- = arrdata[group].dd->boxes[reflevel][component][mglevel].exterior;
((int*)arrdata[group].info.lsh)[d]
= (ext.shape() / ext.stride())[d];
((int*)arrdata[group].info.lbnd)[d]
@@ -336,21 +334,11 @@ namespace Carpet {
assert (arrdata[group].info.lbnd[d]>=0
&& arrdata[group].info.ubnd[d]<arrdata[group].info.gsh[d]);
assert (arrdata[group].info.lbnd[d]<=arrdata[group].info.ubnd[d]+1);
- // No outer boundaries on the finer grids
- ((int*)arrdata[group].info.bbox)[2*d ]
- = reflevel==0 && arrdata[group].info.lbnd[d] == 0;
- ((int*)arrdata[group].info.bbox)[2*d+1]
- = (reflevel==0
- && arrdata[group].info.ubnd[d] == arrdata[group].info.gsh[d]-1);
-#if 0
- // Do allow outer boundaries on the finer grids (but this is
- // generally inconsistent -- c. f. periodicity)
- const bbox<int,dim>& base = arrdata[group].hh->baseextent;
+ // Do allow outer boundaries on the finer grids
((int*)arrdata[group].info.bbox)[2*d ]
- = (ext.lower() < base.lower())[d];
+ = arrdata[group].info.lbnd[d] == 0;
((int*)arrdata[group].info.bbox)[2*d+1]
- = (ext.upper() > base.upper())[d];
-#endif
+ = arrdata[group].info.ubnd[d] == arrdata[group].info.gsh[d]-1;
}
}
@@ -359,7 +347,7 @@ namespace Carpet {
const int group = CCTK_GroupIndexFromVarI(n);
assert (group>=0);
- const int var = n - CCTK_FirstVarIndexI(group);
+ const int var = n - CCTK_FirstVarIndexI(group);
assert (var>=0);
const int num_tl = CCTK_NumTimeLevelsFromVarI(n);
assert (num_tl>0);
diff --git a/Carpet/Carpet/src/variables.cc b/Carpet/Carpet/src/variables.cc
index 91ee10bb6..b1d4e5a0d 100644
--- a/Carpet/Carpet/src/variables.cc
+++ b/Carpet/Carpet/src/variables.cc
@@ -5,7 +5,7 @@
#include "carpet.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.2 2001/07/09 09:00:15 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/variables.cc,v 1.3 2001/12/17 13:34:02 schnetter Exp $";
@@ -21,6 +21,9 @@ namespace Carpet {
// Maximum number of refinement levels
int maxreflevels;
+ // Refinement factor
+ int reffact;
+
// Refinement factor on finest grid
int maxreflevelfact;
diff --git a/Carpet/CarpetIOASCII/param.ccl b/Carpet/CarpetIOASCII/param.ccl
index 2bf869427..f30df8d85 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.3 2001/12/14 17:59:54 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/param.ccl,v 1.4 2001/12/17 13:34:02 schnetter Exp $
@@ -45,6 +45,10 @@ BOOLEAN separate_grids "Separate grid levels in the output file by additional em
{
} "yes"
+BOOLEAN separate_components "Separate grid components in the output file by additional empty lines"
+{
+} "no"
+
CCTK_STRING outdir1D "Name of 1D ASCII output directory, overrides outdir" STEERABLE = ALWAYS
diff --git a/Carpet/CarpetIOASCII/src/ioascii.cc b/Carpet/CarpetIOASCII/src/ioascii.cc
index ce063b4f2..6db6e7f05 100644
--- a/Carpet/CarpetIOASCII/src/ioascii.cc
+++ b/Carpet/CarpetIOASCII/src/ioascii.cc
@@ -25,7 +25,7 @@
#include "ioascii.hh"
-static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/src/ioascii.cc,v 1.24 2001/12/14 17:59:54 schnetter Exp $";
+static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/src/ioascii.cc,v 1.25 2001/12/17 13:34:03 schnetter Exp $";
@@ -337,6 +337,15 @@ int CarpetIOASCII<outdim>
data->write_ascii (file, cgh->cctk_iteration, offset1, dirs,
tl, reflevel, component, mglevel);
+ // Append EOL after every component
+ if (CCTK_MyProc(cgh)==0) {
+ if (separate_components) {
+ assert (file.good());
+ file << endl;
+ }
+ }
+ assert (file.good());
+
} END_COMPONENT_LOOP(cgh);
// Append EOL after every complete set of components
diff --git a/CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par b/CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par
index 1467a7c8f..2bc29484d 100644
--- a/CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par
+++ b/CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par
@@ -7,9 +7,9 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par,v 1.4 2001/03/17 00:36:14 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/par/wavetoyf77_rad.par,v 1.5 2001/12/17 13:34:49 schnetter Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDScalarWave WaveToyF77"
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDScalarWave WaveToyF77"
Cactus::cctk_itlast = 120
@@ -26,16 +26,19 @@ grid::dxyz = 0.3
IO::outdir = "wavetoyf77_rad"
IOBasic::outinfo_every = 10
-#IOBasic::outinfo_vars = "wavetoy::phi"
+IOBasic::outinfo_vars = "wavetoy::phi"
-#IOBasic::outScalar_every = 2
-#IOBasic::outScalar_vars = "wavetoy::phi"
+IOBasic::outScalar_every = 2
+IOBasic::outScalar_vars = "wavetoy::phi"
IOASCII::out1D_every = 2
IOASCII::out1D_vars = "wavetoy::phi grid::coordinates"
+IOASCII::separate_grids = no
IOFlexIO::out3D_every = 10
IOFlexIO::out3D_vars = "wavetoy::phi"
+IOFlexIO::out3D_format = IEEE
+IOFlexIO::out3D_extension = ".amr"
WaveToyF77::bound = radiation
diff --git a/CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par b/CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par
index cb248f61f..186517d16 100644
--- a/CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par
+++ b/CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par
@@ -1,4 +1,4 @@
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par,v 1.4 2001/12/14 18:00:08 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/test/wavetoyf77_periodic_coarse_rl3.par,v 1.5 2001/12/17 13:34:50 schnetter Exp $
!DESC "WaveToy with periodic boundaries, 2 refinement levels"
@@ -22,7 +22,7 @@ Carpet::max_refinement_levels = 3
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
-CarpetRegrid::refinement_levels = 2
+CarpetRegrid::refinement_levels = 3
grid::type = byrange
grid::xmin = -5.4