diff options
36 files changed, 603 insertions, 497 deletions
diff --git a/Carpet/Carpet/doc/TODO b/Carpet/Carpet/doc/TODO index 2f4cfbfe2..00eba8d0a 100644 --- a/Carpet/Carpet/doc/TODO +++ b/Carpet/Carpet/doc/TODO @@ -1,5 +1,5 @@ -*-Text-*- -$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/doc/TODO,v 1.4 2001/03/30 00:50:06 eschnett Exp $ +$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/doc/TODO,v 1.5 2001/04/23 08:10:11 schnetter Exp $ CarpetSlab: Add support for diagonal lines @@ -10,3 +10,8 @@ Carpet: Distribute processes in all directions, not only z Carpet: Test suite Carpet: Finish documentation + +CarpetIOASCII: put more information into output files + +Carpet: Allow en-/disabling storage for grid functions with one time +level diff --git a/Carpet/Carpet/param.ccl b/Carpet/Carpet/param.ccl index 142e17700..f777c7292 100644 --- a/Carpet/Carpet/param.ccl +++ b/Carpet/Carpet/param.ccl @@ -1,5 +1,5 @@ # Parameter definitions for thorn Carpet -# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.8 2001/03/30 00:21:20 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/param.ccl,v 1.9 2001/04/23 08:10:11 schnetter Exp $ shares: Cactus @@ -86,6 +86,12 @@ CCTK_INT prolongation_order_time "Order of prolongation operator in time" +BOOLEAN enable_all_storage "Enable storage for all grid functions" +{ +} "no" + + + BOOLEAN poison_new_timelevels "Try to catch uninitialised grid elements by setting new timelevels to values that will catch your attention" { } "no" diff --git a/Carpet/Carpet/src/carpet.cc b/Carpet/Carpet/src/carpet.cc index 8a6d84b13..345a61e7f 100644 --- a/Carpet/Carpet/src/carpet.cc +++ b/Carpet/Carpet/src/carpet.cc @@ -4,7 +4,7 @@ // processors own the same number of components. // Scalar variables currently exist in one single incarnation for all -// refinement levels and all components. +// components. #include <assert.h> #include <math.h> @@ -35,7 +35,7 @@ #include "carpet.hh" -static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Attic/carpet.cc,v 1.23 2001/04/17 17:07:09 schnetter Exp $"; +static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/Attic/carpet.cc,v 1.24 2001/04/23 08:10:12 schnetter Exp $"; @@ -47,17 +47,21 @@ namespace Carpet { static void CycleTimeLevels (cGH* cgh); static void Restrict (cGH* cgh); - // where=0: all time levels but next time level - // where=1: only next time level - // but never if there is only one time level - // where=2: all time levels + enum checktimes { currenttime, + currenttimebutnotifonly, + allbutlasttime, + allbutcurrenttime, + alltimes }; - static void Poison (cGH* cgh, int where); - static void PoisonGroup (cGH* cgh, int group, int where); - static void PoisonCheck (cGH* cgh, int where); + static void Poison (cGH* cgh, checktimes where); + static void PoisonGroup (cGH* cgh, int group, checktimes where); + static void PoisonCheck (cGH* cgh, checktimes where); - static void CalculateChecksums (cGH* cgh, int where); - static void CheckChecksums (cGH* cgh, int where); + static void CalculateChecksums (cGH* cgh, checktimes where); + static void CheckChecksums (cGH* cgh, checktimes where); + + static int mintl (checktimes where, int num_tl); + static int maxtl (checktimes where, int num_tl); // Debugging output static void Checkpoint (const char* fmt, ...); @@ -76,9 +80,6 @@ namespace Carpet { // Refinement factor on finest grid int maxreflevelfact; - // Active time level - int activetimelevel; // 0 for current, 1 for next - // Current iteration per refinement level vector<int> iteration; @@ -200,7 +201,7 @@ namespace Carpet { const int prolongation_stencil_size = dd->prolongation_stencil_size(); const int min_nghosts - = ((prolongation_stencil_size + refinement_factor - 2) + = ((prolongation_stencil_size + refinement_factor - 1) / (refinement_factor-1)); if (any(min(lghosts,ughosts) < min_nghosts)) { CCTK_VWarn (0, __LINE__, __FILE__, CCTK_THORNSTRING, @@ -226,8 +227,8 @@ namespace Carpet { scdata[group].data[var].resize(maxreflevels); for (int rl=0; rl<maxreflevels; ++rl) { scdata[group].data[var][rl].resize(CCTK_NumTimeLevelsFromVarI(n)); - for (int ti=0; ti<(int)scdata[group].data[var].size(); ++ti) { - scdata[group].data[var][rl][ti] = 0; + for (int tl=0; tl<(int)scdata[group].data[var].size(); ++tl) { + scdata[group].data[var][rl][tl] = 0; } } } @@ -306,9 +307,6 @@ namespace Carpet { // Initialise time step on coarse grid base_delta_time = 0; - // Active time level - activetimelevel = 0; - // Current iteration iteration.resize(maxreflevels, 0); @@ -317,6 +315,14 @@ namespace Carpet { set_mglevel (cgh, 0); set_component (cgh, -1); + // Enable storage for all groups if desired + // XXX + if (true || enable_all_storage) { + for (int group=0; group<CCTK_NumGroups(); ++group) { + EnableGroupStorage (cgh, CCTK_GroupName(group)); + } + } + Checkpoint ("done with SetupGH."); // We register only once, ergo we get only one handle, ergo there @@ -350,32 +356,46 @@ namespace Carpet { CCTKi_InitGHExtensions (cgh); // Check parameters + Checkpoint ("PARAMCHECK"); CCTK_ScheduleTraverse ("CCTK_PARAMCHECK", cgh, CallFunction); CCTKi_FinaliseParamWarn(); BEGIN_REFLEVEL_LOOP(cgh) { - Poison (cgh, 0); + // Checking + Poison (cgh, allbutlasttime); // Set up the grid + Checkpoint ("%*sScheduling BASEGRID", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_BASEGRID", cgh, CallFunction); if (reflevel==0) { base_delta_time = cgh->cctk_delta_time; } else { // assert (abs(cgh->cctk_delta_time - base_delta_time / reflevelfactor) // < 1e-6 * base_delta_time); - // This fixes a bug in CactusBase/Time + // This circumvents a bug in CactusBase/Time cgh->cctk_delta_time = base_delta_time / reflevelfact; } // Set up the initial data + Checkpoint ("%*sScheduling INITIAL", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_INITIAL", cgh, CallFunction); + Checkpoint ("%*sScheduling POSTINITIAL", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_POSTINITIAL", cgh, CallFunction); // Recover + Checkpoint ("%*sScheduling RECOVER_VARIABLES", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_RECOVER_VARIABLES", cgh, CallFunction); + Checkpoint ("%*sScheduling CPINITIAL", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_CPINITIAL", cgh, CallFunction); + // Poststep + Checkpoint ("%*sScheduling POSTSTEP", 2*reflevel, ""); + CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction); + + // Checking + PoisonCheck (cgh, allbutlasttime); + } END_REFLEVEL_LOOP(cgh); BEGIN_REVERSE_REFLEVEL_LOOP(cgh) { @@ -383,22 +403,20 @@ namespace Carpet { // Restrict Restrict (cgh); - } END_REVERSE_REFLEVEL_LOOP(cgh); - - BEGIN_REVERSE_REFLEVEL_LOOP(cgh) { - - // Poststep - CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction); - - PoisonCheck (cgh, 0); - CalculateChecksums (cgh, 0); + // Checking + CalculateChecksums (cgh, allbutlasttime); // Analysis + Checkpoint ("%*sScheduling ANALYSIS", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_ANALYSIS", cgh, CallFunction); // Output + Checkpoint ("%*sOutputGH", 2*reflevel, ""); CCTK_OutputGH (cgh); + // Checking + CheckChecksums (cgh, allbutlasttime); + } END_REVERSE_REFLEVEL_LOOP(cgh); Checkpoint ("done with Initialise."); @@ -422,43 +440,17 @@ namespace Carpet { || (cctk_final_time >= cctk_initial_time && cgh->cctk_time < cctk_final_time)) { - // Next iteration + // Advance time ++cgh->cctk_iteration; + cgh->cctk_time += base_delta_time / maxreflevelfact; Checkpoint ("Evolving iteration %d...", cgh->cctk_iteration); BEGIN_REFLEVEL_LOOP(cgh) { if ((cgh->cctk_iteration-1) % (maxreflevelfact/reflevelfact) == 0) { - // Prestep - CCTK_ScheduleTraverse ("CCTK_PRESTEP", cgh, CallFunction); - - // Move activity to next time level - assert (activetimelevel == 0); - ++activetimelevel; - - // Evolve - CCTK_ScheduleTraverse ("CCTK_EVOL", cgh, CallFunction); - - // Move activity back to current time level - --activetimelevel; - assert (activetimelevel == 0); - - } - } END_REFLEVEL_LOOP(cgh); - - // Advance time - cgh->cctk_time += base_delta_time / maxreflevelfact; - - BEGIN_REVERSE_REFLEVEL_LOOP(cgh) { - if (cgh->cctk_iteration % (maxreflevelfact/reflevelfact) == 0) { - - CheckChecksums (cgh, 0); - // Cycle time levels - PoisonCheck (cgh, 1); CycleTimeLevels (cgh); - Poison (cgh, 1); // Advance level times tt->advance_time (reflevel, mglevel); @@ -476,29 +468,48 @@ namespace Carpet { } } - // Restrict - Restrict (cgh); + // Checking + CalculateChecksums (cgh, allbutcurrenttime); + Poison (cgh, currenttimebutnotifonly); + + // Evolve + Checkpoint ("%*sScheduling PRESTEP", 2*reflevel, ""); + CCTK_ScheduleTraverse ("CCTK_PRESTEP", cgh, CallFunction); + Checkpoint ("%*sScheduling EVOL", 2*reflevel, ""); + CCTK_ScheduleTraverse ("CCTK_EVOL", cgh, CallFunction); + Checkpoint ("%*sScheduling POSTSTEP", 2*reflevel, ""); + CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction); - CalculateChecksums (cgh, 0); + // Checking + PoisonCheck (cgh, currenttimebutnotifonly); } - } END_REVERSE_REFLEVEL_LOOP(cgh); + } END_REFLEVEL_LOOP(cgh); BEGIN_REVERSE_REFLEVEL_LOOP(cgh) { if (cgh->cctk_iteration % (maxreflevelfact/reflevelfact) == 0) { - // Poststep - CCTK_ScheduleTraverse ("CCTK_POSTSTEP", cgh, CallFunction); + // Restrict + Restrict (cgh); + + // Checking + CalculateChecksums (cgh, currenttime); // Checkpoint + Checkpoint ("%*sScheduling CHECKPOINT", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_CHECKPOINT", cgh, CallFunction); // Analysis + Checkpoint ("%*sScheduling ANALYSIS", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_ANALYSIS", cgh, CallFunction); // Output + Checkpoint ("%*sOutputGH", 2*reflevel, ""); CCTK_OutputGH (cgh); + // Checking + CheckChecksums (cgh, alltimes); + } } END_REVERSE_REFLEVEL_LOOP(cgh); @@ -522,11 +533,13 @@ namespace Carpet { // Terminate BEGIN_REFLEVEL_LOOP(cgh) { + Checkpoint ("%*sScheduling TERMINATE", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_TERMINATE", cgh, CallFunction); } END_REFLEVEL_LOOP(cgh); // Shutdown BEGIN_REFLEVEL_LOOP(cgh) { + Checkpoint ("%*sScheduling SHUTDOWN", 2*reflevel, ""); CCTK_ScheduleTraverse ("CCTK_SHUTDOWN", cgh, CallFunction); } END_REFLEVEL_LOOP(cgh); @@ -551,7 +564,7 @@ namespace Carpet { assert (mglevel>=0); assert (reflevel>=0); -// Checkpoint ("%*sstarting CallFunction...", 2*reflevel, ""); +// Checkpoint ("%*sStarting CallFunction...", 2*reflevel, ""); cGH* cgh = (cGH*)data; @@ -607,12 +620,15 @@ namespace Carpet { } const int n0 = CCTK_FirstVarIndexI(group); + assert (n0>=0); const int num_tl = CCTK_NumTimeLevelsFromVarI(n0); - const int tl = min(activetimelevel, num_tl-1); + assert (num_tl>0); + const int tl = 0; switch (CCTK_GroupTypeI(group)) { case CCTK_SCALAR: + // TODO: Check whether the local values are consistent break; case CCTK_ARRAY: @@ -671,38 +687,38 @@ namespace Carpet { const int group = CCTK_GroupIndex(groupname); assert (group>=0 && group<CCTK_NumGroups()); - // The return indicates whether storage was enabled previously. - const int retval = CCTK_QueryGroupStorageI (cgh, group); + if (CCTK_QueryGroupStorageI(cgh, group)) { + // storage was enabled previously + return 1; + } // There is a difference between the Cactus time levels and the // Carpet time levels. If there are n time levels, then the // Cactus time levels are numbered 0 ... n-1, with the current - // time level being max(0,n-2). In Carpet, the time levels are - // numbered 1-max(1,n-1) ... min(1,n-1), where the current time - // level is always 0. + // time level being n-1. In Carpet, the time levels are numbered + // -(n-1) ... 0, where the current time level is always 0. const int n0 = CCTK_FirstVarIndexI(group); + assert (n0>=0); const int num_tl = CCTK_NumTimeLevelsFromVarI(n0); - const int tmin = min(0, 2 - num_tl); - const int tmax = tmin + num_tl - 1; + assert (num_tl>0); + const int tmin = 1 - num_tl; + const int tmax = 0; switch (CCTK_GroupTypeI(group)) { case CCTK_SCALAR: - if (scdata[group].data.size()==0 - || scdata[group].data[0].size()==0 - || scdata[group].data[0][0].size()==0 - || scdata[group].data[0][0][0] != 0) { - // group already has storage - break; - } + assert (scdata[group].data.size()==0 + || scdata[group].data[0].size()==0 + || scdata[group].data[0][0].size()==0 + || scdata[group].data[0][0][0] == 0); for (int var=0; var<(int)scdata[group].data.size(); ++var) { for (int rl=0; rl<(int)scdata[group].data[var].size(); ++rl) { - for (int ti=0; ti<(int)scdata[group].data[var][rl].size(); ++ti) { + for (int tl=0; tl<(int)scdata[group].data[var][rl].size(); ++tl) { const int n = n0 + var; switch (CCTK_VarTypeI(n)) { #define TYPECASE(N,T) \ case N: \ - scdata[group].data[var][rl][ti] = new T; \ + scdata[group].data[var][rl][tl] = new T; \ break; #include "typecase" #undef TYPECASE @@ -715,11 +731,8 @@ namespace Carpet { break; case CCTK_ARRAY: - if (arrdata[group].data.size()==0 - || arrdata[group].data[0] != 0) { - // group already has storage - break; - } + assert (arrdata[group].data.size()==0 + || arrdata[group].data[0] == 0); for (int var=0; var<(int)arrdata[group].data.size(); ++var) { const int n = n0 + var; switch (CCTK_VarTypeI(n)) { @@ -738,11 +751,8 @@ namespace Carpet { break; case CCTK_GF: - if (gfdata[group].data.size()==0 - || gfdata[group].data[0] != 0) { - // group already has storage - break; - } + assert (gfdata[group].data.size()==0 + || gfdata[group].data[0] == 0); for (int var=0; var<(int)gfdata[group].data.size(); ++var) { const int n = n0 + var; switch (CCTK_VarTypeI(n)) { @@ -763,10 +773,12 @@ namespace Carpet { abort(); } + // Reinitialise Cactus variables set_component (cgh, component); - PoisonGroup (cgh, group, 2); + PoisonGroup (cgh, group, alltimes); - return retval; + // storage was not enabled previously + return 0; } @@ -778,11 +790,14 @@ namespace Carpet { const int group = CCTK_GroupIndex(groupname); assert (group>=0 && group<CCTK_NumGroups()); - // The return indicates whether storage was enabled previously. - const int retval = CCTK_QueryGroupStorageI (cgh, group); + if (! CCTK_QueryGroupStorageI(cgh, group)) { + // storage was disabled previously + return 0; + } // XXX - return retval; + CCTK_WARN (1, "Cannot disable storage -- storage management is not yet consistent for FMR"); + return 1; const int n0 = CCTK_FirstVarIndexI(group); @@ -799,18 +814,18 @@ namespace Carpet { for (int var=0; var<(int)scdata[group].data.size(); ++var) { const int n = n0 + var; for (int rl=0; rl<(int)scdata[group].data[var].size(); ++rl) { - for (int ti=0; ti<(int)scdata[group].data[var][rl].size(); ++ti) { + for (int tl=0; tl<(int)scdata[group].data[var][rl].size(); ++tl) { switch (CCTK_VarTypeI(n)) { #define TYPECASE(N,T) \ case N: \ - delete (T*)scdata[group].data[var][rl][ti]; \ + delete (T*)scdata[group].data[var][rl][tl]; \ break; #include "typecase" #undef TYPECASE default: UnsupportedVarType(n); } - scdata[group].data[var][rl][ti] = 0; + scdata[group].data[var][rl][tl] = 0; } } } @@ -863,9 +878,11 @@ namespace Carpet { abort(); } + // Reinitialise Cactus variables set_component (cgh, component); - return retval; + // storage was not disabled previously + return 1; } @@ -966,10 +983,11 @@ namespace Carpet { assert (group<(int)scdata.size()); assert (var<(int)scdata[group].data.size()); const int num_tl = CCTK_NumTimeLevelsFromVarI(n); + assert (num_tl>0); void* tmpdata = scdata[group].data[var][reflevel][0]; - for (int ti=0; ti<num_tl-1; ++ti) { - scdata[group].data[var][reflevel][ti] - = scdata[group].data[var][reflevel][ti+1]; + for (int tl=0; tl<num_tl-1; ++tl) { + scdata[group].data[var][reflevel][tl] + = scdata[group].data[var][reflevel][tl+1]; } scdata[group].data[var][reflevel][num_tl-1] = tmpdata; tmpdata = 0; @@ -1014,7 +1032,7 @@ namespace Carpet { // Restrict only groups with storage if (CCTK_QueryGroupStorageI(cgh, group)) { - const int tl = activetimelevel; + const int tl = 0; switch (CCTK_GroupTypeI(group)) { @@ -1162,9 +1180,9 @@ namespace Carpet { assert (group<(int)scdata.size()); assert (var<(int)scdata[group].data.size()); assert (reflevel<(int)scdata[group].data[var].size()); - const int ti=0; - assert (ti<(int)scdata[group].data[var][reflevel].size()); - return scdata[group].data[var][reflevel][ti] != 0; + const int tl=0; + assert (tl<(int)scdata[group].data[var][reflevel].size()); + return scdata[group].data[var][reflevel][tl] != 0; } case CCTK_ARRAY: { @@ -1186,16 +1204,12 @@ namespace Carpet { - void Poison (cGH* cgh, const int where) + void Poison (cGH* cgh, const checktimes where) { DECLARE_CCTK_PARAMETERS; - assert (where>=0 && where<=2); - if (! poison_new_timelevels) return; - Checkpoint ("%*sPoison", 2*reflevel, ""); - for (int group=0; group<CCTK_NumGroups(); ++group) { if (CCTK_QueryGroupStorageI(cgh, group)) { PoisonGroup (cgh, group, where); @@ -1205,12 +1219,11 @@ namespace Carpet { - void PoisonGroup (cGH* cgh, const int group, const int where) + void PoisonGroup (cGH* cgh, const int group, const checktimes where) { DECLARE_CCTK_PARAMETERS; assert (group>=0 && group<CCTK_NumGroups()); - assert (where>=0 && where<=2); if (! poison_new_timelevels) return; @@ -1230,23 +1243,9 @@ namespace Carpet { assert (sz>0); const int num_tl = CCTK_NumTimeLevelsFromVarI(n); - int min_tl, max_tl; - switch (where) { - case 0: - min_tl = 0; - max_tl = num_tl-2; - break; - case 1: - min_tl = max(num_tl-1,1); - max_tl = num_tl-1; - break; - case 2: - min_tl = 0; - max_tl = num_tl-1; - break; - default: - abort(); - } + 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) { @@ -1281,7 +1280,7 @@ namespace Carpet { - void PoisonCheck (cGH* cgh, const int where) + void PoisonCheck (cGH* cgh, const checktimes where) { DECLARE_CCTK_PARAMETERS; @@ -1296,8 +1295,10 @@ namespace Carpet { const int n = CCTK_FirstVarIndexI(group) + var; const int num_tl = CCTK_NumTimeLevelsFromVarI(n); - const int min_tl = where ? max(num_tl-1,1) : 0; - const int max_tl = where ? num_tl-1 : num_tl-2; + 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) { switch (CCTK_GroupTypeFromVarI(n)) { @@ -1320,8 +1321,8 @@ namespace Carpet { if (poisoned) { char* fullname = CCTK_FullName(n); CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, - "The variable \"%s\" contains poison", - fullname); + "The variable \"%s\" contains poison in timelevel %d", + fullname, tl); free (fullname); } break; @@ -1361,8 +1362,8 @@ namespace Carpet { if (numpoison<=10) { char* fullname = CCTK_FullName(n); CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, - "The variable \"%s\" contains poison at [%d,%d,%d]", - fullname, i,j,k); + "The variable \"%s\" contains poison at [%d,%d,%d] in timelevel %d", + fullname, i,j,k, tl); free (fullname); } } // if poisoned @@ -1372,8 +1373,8 @@ namespace Carpet { if (numpoison>10) { char* fullname = CCTK_FullName(n); CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, - "The variable \"%s\" contains poison at %d locations; not all were printed.", - fullname, numpoison); + "The variable \"%s\" contains poison at %d locations in timelevel %d; not all locations were printed.", + fullname, numpoison, tl); free (fullname); } } // if is local @@ -1394,7 +1395,7 @@ namespace Carpet { - void CalculateChecksums (cGH* cgh, int where) + void CalculateChecksums (cGH* cgh, const checktimes where) { DECLARE_CCTK_PARAMETERS; @@ -1405,10 +1406,13 @@ 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); - const int min_tl = where ? max(num_tl-1,1) : 0; - const int max_tl = where ? num_tl-1 : num_tl-2; + 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) { @@ -1445,8 +1449,10 @@ namespace Carpet { const int sz = CCTK_VarTypeSize(CCTK_VarTypeI(n)); assert (sz>0); const int num_tl = CCTK_NumTimeLevelsFromVarI(n); - const int min_tl = where ? max(num_tl-1,1) : 0; - const int max_tl = where ? num_tl-1 : num_tl-2; + 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) { switch (CCTK_GroupTypeFromVarI(n)) { @@ -1494,7 +1500,7 @@ namespace Carpet { - void CheckChecksums (cGH* cgh, int where) + void CheckChecksums (cGH* cgh, const checktimes where) { DECLARE_CCTK_PARAMETERS; @@ -1511,15 +1517,17 @@ namespace Carpet { const int sz = CCTK_VarTypeSize(CCTK_VarTypeI(n)); assert (sz>0); const int num_tl = CCTK_NumTimeLevelsFromVarI(n); - const int min_tl = where ? max(num_tl-1,1) : 0; - const int max_tl = where ? num_tl-1 : num_tl-2; + 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); - bool unexpected_change = false; - for (int tl=min_tl; tl<=max_tl; ++tl) { + + bool unexpected_change = false; + switch (CCTK_GroupTypeFromVarI(n)) { case CCTK_SCALAR: { @@ -1541,7 +1549,7 @@ namespace Carpet { case CCTK_ARRAY: case CCTK_GF: { assert ((int)checksums[n][reflevel][tl].size() - ==hh->components(reflevel)); + == hh->components(reflevel)); BEGIN_COMPONENT_LOOP(cgh) { if (checksums[n][reflevel][tl][component].valid) { if (hh->is_local(reflevel,component)) { @@ -1567,16 +1575,16 @@ namespace Carpet { abort(); } + 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 - if (unexpected_change) { - char* fullname = CCTK_FullName(n); - CCTK_VWarn (1, __LINE__, __FILE__, CCTK_THORNSTRING, - "Old timelevels of the variable \"%s\" have changed unexpectedly.", - fullname); - free (fullname); - } - } // for var } // if has storage } // for group @@ -1584,6 +1592,48 @@ namespace Carpet { + int mintl (const checktimes where, const int num_tl) + { + assert (num_tl>0); + switch (where) { + case currenttime: + return num_tl-1; + case currenttimebutnotifonly: + // don't include current time if there is only one time level + return max(1,num_tl-1); + case allbutlasttime: + // do include current time if there is only one time level + return min(1,num_tl-1); + case allbutcurrenttime: + return 0; + case alltimes: + return 0; + default: + abort(); + } + } + + int maxtl (const checktimes where, const int num_tl) + { + assert (num_tl>0); + switch (where) { + case currenttime: + return num_tl-1; + case currenttimebutnotifonly: + return num_tl-1; + case allbutlasttime: + return num_tl-1; + case allbutcurrenttime: + return num_tl-2; + case alltimes: + return num_tl-1; + default: + abort(); + } + } + + + void Checkpoint (const char* fmt, ...) { DECLARE_CCTK_PARAMETERS; @@ -1688,7 +1738,7 @@ namespace Carpet { // Set Cactus pointers to data for (int n=0; n<CCTK_NumVars(); ++n) { - for (int ti=0; ti<CCTK_NumTimeLevelsFromVarI(n); ++ti) { + for (int tl=0; tl<CCTK_NumTimeLevelsFromVarI(n); ++tl) { const int group = CCTK_GroupIndexFromVarI(n); assert (group>=0); @@ -1705,14 +1755,14 @@ namespace Carpet { assert (group<(int)scdata.size()); assert (var<(int)scdata[group].data.size()); assert (reflevel<(int)scdata[group].data[var].size()); - assert (ti<(int)scdata[group].data[var][reflevel].size()); - cgh->data[n][ti] = scdata[group].data[var][reflevel][ti]; + assert (tl<(int)scdata[group].data[var][reflevel].size()); + cgh->data[n][tl] = scdata[group].data[var][reflevel][tl]; break; case CCTK_ARRAY: case CCTK_GF: // Arrays and grid functions cannot be accessed - cgh->data[n][ti] = 0; + cgh->data[n][tl] = 0; break; default: @@ -1722,11 +1772,11 @@ namespace Carpet { } else { // Group has no storage - cgh->data[n][ti] = 0; + cgh->data[n][tl] = 0; } - } // for ti + } // for tl } // for n } else { @@ -1790,14 +1840,14 @@ namespace Carpet { // Set Cactus pointers to data for (int n=0; n<CCTK_NumVars(); ++n) { - for (int ti=0; ti<CCTK_NumTimeLevelsFromVarI(n); ++ti) { + for (int tl=0; tl<CCTK_NumTimeLevelsFromVarI(n); ++tl) { const int group = CCTK_GroupIndexFromVarI(n); assert (group>=0); const int var = n - CCTK_FirstVarIndexI(group); assert (var>=0); - const int tmin = min(0, 2 - CCTK_NumTimeLevelsFromVarI(n)); - const int tl = tmin + ti; + const int num_tl = CCTK_NumTimeLevelsFromVarI(n); + assert (num_tl>0); if (CCTK_QueryGroupStorageI(cgh, group)) { // Group has storage @@ -1808,24 +1858,24 @@ namespace Carpet { assert (group<(int)scdata.size()); assert (var<(int)scdata[group].data.size()); assert (reflevel<(int)scdata[group].data[var].size()); - assert (ti<(int)scdata[group].data[var][reflevel].size()); - cgh->data[n][ti] = scdata[group].data[var][reflevel][ti]; + assert (tl<(int)scdata[group].data[var][reflevel].size()); + cgh->data[n][tl] = scdata[group].data[var][reflevel][tl]; break; case CCTK_ARRAY: assert (group<(int)arrdata.size()); assert (var<(int)arrdata[group].data.size()); - cgh->data[n][ti] + cgh->data[n][tl] = ((*arrdata[group].data[var]) - (tl, reflevel, component, mglevel)->storage()); + (tl-num_tl+1, reflevel, component, mglevel)->storage()); break; case CCTK_GF: assert (group<(int)gfdata.size()); assert (var<(int)gfdata[group].data.size()); - cgh->data[n][ti] + cgh->data[n][tl] = ((*gfdata[group].data[var]) - (tl, reflevel, component, mglevel)->storage()); + (tl-num_tl+1, reflevel, component, mglevel)->storage()); break; default: @@ -1833,19 +1883,19 @@ namespace Carpet { } if (CCTK_GroupTypeFromVarI(n)==CCTK_SCALAR || hh->is_local(reflevel,component)) { - assert (cgh->data[n][ti]); + assert (cgh->data[n][tl]); } else { - assert (! cgh->data[n][ti]); + assert (! cgh->data[n][tl]); } } else { // Group has no storage - cgh->data[n][ti] = 0; + cgh->data[n][tl] = 0; } // if ! has storage - } // for ti + } // for tl } // for n } diff --git a/Carpet/Carpet/src/carpet.hh b/Carpet/Carpet/src/carpet.hh index 8b90ee00a..6b14c1589 100644 --- a/Carpet/Carpet/src/carpet.hh +++ b/Carpet/Carpet/src/carpet.hh @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.7 2001/04/06 10:37:36 schnetter Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/Carpet/src/carpet.hh,v 1.8 2001/04/23 08:10:13 schnetter Exp $ #include <vector> @@ -27,9 +27,6 @@ namespace Carpet { // Refinement factor on finest grid extern int maxreflevelfact; - // Active time level - extern int activetimelevel; // 0 for current, 1 for next - // Current iteration per refinement level extern vector<int> iteration; diff --git a/Carpet/CarpetIOASCII/src/ioascii.cc b/Carpet/CarpetIOASCII/src/ioascii.cc index 99aa1491d..9957b7620 100644 --- a/Carpet/CarpetIOASCII/src/ioascii.cc +++ b/Carpet/CarpetIOASCII/src/ioascii.cc @@ -24,7 +24,7 @@ #include "ioascii.hh" -static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/src/ioascii.cc,v 1.11 2001/03/22 18:42:05 eschnett Exp $"; +static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetIOASCII/src/ioascii.cc,v 1.12 2001/04/23 08:10:13 schnetter Exp $"; @@ -134,7 +134,7 @@ int CarpetIOASCII<outdim> assert (n0>=0 && n0<CCTK_NumVars()); const int var = n - n0; assert (var>=0 && var<CCTK_NumVars()); - const int tl = activetimelevel; + const int tl = 0; switch (CCTK_GroupTypeI(group)) { diff --git a/Carpet/CarpetLib/src/dh.cc b/Carpet/CarpetLib/src/dh.cc index ec51bfd65..449ba1dc5 100644 --- a/Carpet/CarpetLib/src/dh.cc +++ b/Carpet/CarpetLib/src/dh.cc @@ -6,7 +6,7 @@ copyright : (C) 2000 by Erik Schnetter email : schnetter@astro.psu.edu - $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.12 2001/03/28 18:56:09 eschnett Exp $ + $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.cc,v 1.13 2001/04/23 08:10:15 schnetter Exp $ ***************************************************************************/ @@ -57,6 +57,13 @@ dh<D>::~dh () { h.remove(this); } +// Helpers +template<int D> +int dh<D>::prolongation_stencil_size () const { + assert (prolongation_order>=0); + return prolongation_order/2; +} + // Modifiers template<int D> void dh<D>::recompose () { @@ -220,12 +227,14 @@ void dh<D>::recompose () { for (int c=0; c<h.components(rl); ++c) { for (int ml=0; ml<h.mglevels(rl,c); ++ml) { - // Boundaries that are neither synced nor prolonged from - // coarser grids (outer boundaries) + // Boundaries that are not synced, or are neither synced nor + // prolonged to from coarser grids (outer boundaries) ibset& sync_not = boxes[rl][c][ml].sync_not; + ibset& recv_not = boxes[rl][c][ml].recv_not; // The whole boundary sync_not = boxes[rl][c][ml].boundaries; + recv_not = boxes[rl][c][ml].boundaries; // Subtract boxes received during synchronisation const iblistvect& recv_sync = boxes[rl][c][ml].recv_sync; @@ -234,6 +243,18 @@ void dh<D>::recompose () { for (iblist::const_iterator li=lvi->begin(); li!=lvi->end(); ++li) { sync_not -= *li; + recv_not -= *li; + } + } + + // Subtract all boxes received + const iblistvect& recv_ref_bnd_coarse + = boxes[rl][c][ml].recv_ref_bnd_coarse; + for (iblistvect::const_iterator lvi=recv_ref_bnd_coarse.begin(); + lvi!=recv_ref_bnd_coarse.end(); ++lvi) { + for (iblist::const_iterator li=lvi->begin(); + li!=lvi->end(); ++li) { + recv_not -= *li; } } @@ -287,6 +308,7 @@ void dh<D>::recompose () { cout << "recv_sync=" << boxes[rl][c][ml].recv_sync << endl; cout << "recv_ref_bnd_coarse=" << boxes[rl][c][ml].recv_ref_bnd_coarse << endl; cout << "sync_not=" << boxes[rl][c][ml].sync_not << endl; + cout << "recv_not=" << boxes[rl][c][ml].recv_not << endl; } } } diff --git a/Carpet/CarpetLib/src/dh.hh b/Carpet/CarpetLib/src/dh.hh index 2267db505..70ffe3803 100644 --- a/Carpet/CarpetLib/src/dh.hh +++ b/Carpet/CarpetLib/src/dh.hh @@ -6,7 +6,7 @@ copyright : (C) 2000 by Erik Schnetter email : schnetter@astro.psu.edu - $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.6 2001/03/28 18:56:09 eschnett Exp $ + $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/dh.hh,v 1.7 2001/04/23 08:10:15 schnetter Exp $ ***************************************************************************/ @@ -79,7 +79,8 @@ public: ibset boundaries; // boundaries iblistvect recv_sync; // received while syncing iblistvect recv_ref_bnd_coarse; // received from coarser grids - ibset sync_not; // not received while syncing (outer boundary) + ibset sync_not; // not received while syncing (outer boundary of that level) + ibset recv_not; // not received while syncing or prolongating (globally outer boundary) }; private: @@ -118,10 +119,7 @@ public: ~dh (); // Helpers - int prolongation_stencil_size () const { - assert (prolongation_order>=0); - return prolongation_order/2; - } + int prolongation_stencil_size () const; // Modifiers void recompose (); diff --git a/Carpet/CarpetLib/src/ggf.cc b/Carpet/CarpetLib/src/ggf.cc index 42f4098ba..e4c890497 100644 --- a/Carpet/CarpetLib/src/ggf.cc +++ b/Carpet/CarpetLib/src/ggf.cc @@ -6,7 +6,7 @@ copyright : (C) 2000 by Erik Schnetter email : schnetter@astro.psu.edu - $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.8 2001/03/27 22:26:31 eschnett Exp $ + $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetLib/src/ggf.cc,v 1.9 2001/04/23 08:10:15 schnetter Exp $ ***************************************************************************/ @@ -276,9 +276,9 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1, vector<int> tls(tl2s.size()); for (int i=0; i<(int)gsrcs.size(); ++i) { gsrcs[i] = storage[tl2s[i]-tmin][rl2][c2][ml2]; - tls[i] = tl2s[i] * t.get_delta(rl2,ml2); + tls[i] = t.time(tl2s[i],rl2,ml2); } - const int tl = tl1 * t.get_delta(rl1,ml1); + const int tl = t.time(tl1,rl1,ml1); const ibbox recv = d.boxes[rl1][c1][ml1].*recv_list; const ibbox send = d.boxes[rl2][c2][ml2].*send_list; @@ -312,9 +312,9 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1, vector<int> tls(tl2s.size()); for (int i=0; i<(int)gsrcs.size(); ++i) { gsrcs[i] = storage[tl2s[i]-tmin][rl2][c2][ml2]; - tls[i] = tl2s[i] * t.get_delta(rl2,ml2); + tls[i] = t.time(tl2s[i],rl2,ml2); } - const int tl = tl1 * t.get_delta(rl1,ml1); + const int tl = t.time(tl1,rl1,ml1); const iblist recv = d.boxes[rl1][c1][ml1].*recv_list; const iblist send = d.boxes[rl2][c2][ml2].*send_list; @@ -353,9 +353,9 @@ void generic_gf<D>::intercat (int tl1, int rl1, int c1, int ml1, vector<int> tls(tl2s.size()); for (int i=0; i<(int)gsrcs.size(); ++i) { gsrcs[i] = storage[tl2s[i]-tmin][rl2][c2][ml2]; - tls[i] = tl2s[i] * t.get_delta(rl2,ml2); + tls[i] = t.time(tl2s[i],rl2,ml2); } - const int tl = tl1 * t.get_delta(rl1,ml1); + const int tl = t.time(tl1,rl1,ml1); const iblist recv = (d.boxes[rl1][c1][ml1].*recv_listvect)[c2]; const iblist send = (d.boxes[rl2][c2][ml2].*send_listvect)[c1]; diff --git a/Carpet/CarpetSlab/src/carpetslab.cc b/Carpet/CarpetSlab/src/carpetslab.cc index 4d8141e0d..3461003c2 100644 --- a/Carpet/CarpetSlab/src/carpetslab.cc +++ b/Carpet/CarpetSlab/src/carpetslab.cc @@ -1,4 +1,4 @@ -// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/Attic/carpetslab.cc,v 1.6 2001/03/22 18:42:06 eschnett Exp $ +// $Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/Attic/carpetslab.cc,v 1.7 2001/04/23 08:10:16 schnetter Exp $ #include <alloca.h> #include <assert.h> @@ -18,7 +18,7 @@ #include "carpetslab.hh" -static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/Attic/carpetslab.cc,v 1.6 2001/03/22 18:42:06 eschnett Exp $"; +static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/Carpet/CarpetSlab/src/Attic/carpetslab.cc,v 1.7 2001/04/23 08:10:16 schnetter Exp $"; @@ -77,7 +77,7 @@ namespace CarpetSlab { // Check timelevel const int num_tl = gp.numtimelevels; assert (ti>=0 && ti<num_tl); - const int tmin = min(0, 2 - num_tl); + const int tmin = 1 - num_tl; const int tl = tmin + ti; // Check origin diff --git a/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc b/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc index e1a6282ca..c9dcc5150 100644 --- a/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc +++ b/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc @@ -33,7 +33,7 @@ #include "ioflexio.hh" -static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc,v 1.7 2001/03/22 18:42:05 eschnett Exp $"; +static const char* rcsid = "$Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/CarpetIOFlexIO/src/ioflexio.cc,v 1.8 2001/04/23 08:10:14 schnetter Exp $"; @@ -124,7 +124,7 @@ namespace CarpetIOFlexIO { assert (n0>=0 && n0<CCTK_NumVars()); const int var = n - n0; assert (var>=0 && var<CCTK_NumVars()); - const int tl = activetimelevel; + const int tl = 0; switch (CCTK_GroupTypeI(group)) { @@ -408,7 +408,7 @@ namespace CarpetIOFlexIO { assert (n0>=0 && n0<CCTK_NumVars()); const int var = n - n0; assert (var>=0 && var<CCTK_NumVars()); - const int tl = activetimelevel; + const int tl = 0; switch (CCTK_GroupTypeI(group)) { diff --git a/CarpetAttic/Cart3dTest/utils/cmptest b/CarpetAttic/Cart3dTest/utils/cmptest index ce99c6034..2aa730762 100755 --- a/CarpetAttic/Cart3dTest/utils/cmptest +++ b/CarpetAttic/Cart3dTest/utils/cmptest @@ -1,5 +1,5 @@ #!/bin/bash -# $Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/Cart3dTest/utils/cmptest,v 1.3 2001/03/17 16:27:02 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/Cart3dTest/utils/cmptest,v 1.4 2001/04/23 08:10:17 schnetter Exp $ # Call this script from the Cactus directory. It compares a Carpet # ASCII testsuite output to PUGH ASCII testsuite output. @@ -11,17 +11,10 @@ for suite in $(ls TEST/carpet | grep -v log\$); do for file in $(ls arrangements/AlphaThorns/Cart3dTest/test/$suite | grep -v CVS | grep -v \.dl); do - mkfifo /tmp/out-old.$$ - mkfifo /tmp/out-new.$$ - - awk 'NF==2 { print $2; }' arrangements/AlphaThorns/Cart3dTest/test/$suite/$file > /tmp/out-old.$$ & - awk 'NF==9 { print $9; }' TEST/carpet/$suite/$file > /tmp/out-new.$$ & - - paste /tmp/out-old.$$ /tmp/out-new.$$ | - awk '{ diff=(($1-$2)/($1+$2+1e-6))**2; if (diff>1e-10) { ++cnt; print l+0,$1,$2,diff; ++l; } } END { if (cnt>0) print "File '$file'",cnt+0,"differing lines"; }' - - rm /tmp/out-old.$$ - rm /tmp/out-new.$$ + paste \ + <( awk 'NF==2 { print $2; }' arrangements/AlphaThorns/Cart3dTest/test/$suite/$file ) \ + <( awk 'NF==9 { print $9; }' TEST/carpet/$suite/$file ) \ + | awk '{ diff=(($1-$2)/($1+$2+1e-6))**2; if (diff>1e-10) { ++cnt; print l+0,$1,$2,diff; ++l; } } END { if (cnt>0) print "File '$file'",cnt+0,"differing lines"; }' done diff --git a/CarpetAttic/Cart3dTest/utils/mptest b/CarpetAttic/Cart3dTest/utils/mptest index c066f40a8..054992be9 100755 --- a/CarpetAttic/Cart3dTest/utils/mptest +++ b/CarpetAttic/Cart3dTest/utils/mptest @@ -1,5 +1,5 @@ #!/bin/bash -# $Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/Cart3dTest/utils/mptest,v 1.3 2001/03/17 16:27:02 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetAttic/Cart3dTest/utils/mptest,v 1.4 2001/04/23 08:10:17 schnetter Exp $ # Call this script from the Cactus directory. It compares a Carpet # ASCII testsuite outputs from runs with different numbers of @@ -12,24 +12,18 @@ for suite in $(ls TEST/carpet | grep -v log\$); do for file in $(ls arrangements/Carpet/Cart3dTest/test/$suite | grep -v CVS | grep -v \.dl); do - mkfifo /tmp/out-old.$$ - mkfifo /tmp/out-new.$$ - - awk 'NF==9 { print $1,$6,$7,$8,$9; }' arrangements/Carpet/Cart3dTest/test/$suite/$file | - sort -n -k 1,4 | - uniq | - awk '{ print $5; }' > /tmp/out-old.$$ & - - awk 'NF==9 { print $1,$6,$7,$8,$9; }' TEST/carpet/$suite/$file | - sort -n -k 1,4 | - uniq | - awk '{ print $5; }' > /tmp/out-new.$$ & - - paste /tmp/out-old.$$ /tmp/out-new.$$ | - awk '{ diff=(($1-$2)/($1+$2+1e-6))**2; if (diff>1e-10) { ++cnt; print l+0,$1,$2,diff; ++l; } } END { if (cnt>0) print "File '$file'",cnt+0,"differing lines"; }' - - rm /tmp/out-old.$$ - rm /tmp/out-new.$$ + paste \ + <( awk 'NF==9 { print $1,$6,$7,$8,$9; }' arrangements/Carpet/Cart3dTest/test/$suite/$file | + sort -n -k 1,4 | + uniq | + awk '{ print $5; }' + ) \ + <( awk 'NF==9 { print $1,$6,$7,$8,$9; }' TEST/carpet/$suite/$file | + sort -n -k 1,4 | + uniq | + awk '{ print $5; }' + ) \ + | awk '{ diff=(($1-$2)/($1+$2+1e-6))**2; if (diff>1e-10) { ++cnt; print l+0,$1,$2,diff; ++l; } } END { if (cnt>0) print "File '$file'",cnt+0,"differing lines"; }' done diff --git a/CarpetExtra/HydroToy/par/convtest.gnuplot b/CarpetExtra/HydroToy/par/convtest.gnuplot index 0cb0cc29c..15eb3716b 100644 --- a/CarpetExtra/HydroToy/par/convtest.gnuplot +++ b/CarpetExtra/HydroToy/par/convtest.gnuplot @@ -9,17 +9,17 @@ omega=sqrt(kx**2 + ky**2 + kz**2) # without refinement # solutions -p "hydrotoy_periodic/u.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l +p "hydrotoy_periodic/u.zl" u ($8-1):($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l # errors -p "hydrotoy_periodic/u.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.3*$8-9) + omega*(0.15*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*$8)-9) + omega*(0.15*time))*pi):0/0) w lp +p "hydrotoy_periodic/u.zl" u ($8-1):($1==time&&$3==0?$9-cos((kz*(0.3*($8-1)-9) + omega*(0.15*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*($8-1))-9) + omega*(0.15*time))*pi):0/0) w lp # with refinement # solutions -p "hydrotoy_periodic_rl2/u.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l +p "hydrotoy_periodic_rl2/u.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l # errors -p "hydrotoy_periodic_rl2/u.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.15*$8-9) + omega*(0.075*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*$8)-9) + omega*(0.075*time))*pi):0/0) w lp +p "hydrotoy_periodic_rl2/u.zl" u ($8-2):($1==time&&$3==0?$9-cos((kz*(0.15*($8-2)-9) + omega*(0.075*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*($8-2))-9) + omega*(0.075*time))*pi):0/0) w lp diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic.par index fb5b9010b..ac96d3e85 100644 --- a/CarpetExtra/HydroToy/par/hydrotoy_periodic.par +++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy" @@ -19,17 +19,19 @@ Cactus::cctk_itlast = 120 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "hydrotoy_periodic" diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par index a80662039..a047c4908 100644 --- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par +++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par,v 1.2 2001/03/30 00:50:45 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par,v 1.3 2001/04/23 08:10:18 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy" @@ -19,17 +19,19 @@ Cactus::cctk_itlast = 60 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "hydrotoy_periodic_coarse" diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par index 1588d1926..7f08bca65 100644 --- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par +++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 120 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 2 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "hydrotoy_periodic_coarse_rl2" diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par index 182e537ec..5f9cf7790 100644 --- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par +++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 3 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "hydrotoy_periodic_coarse_rl3" diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par index 7bb9ca230..5b1fe7f03 100644 --- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par +++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 2 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "hydrotoy_periodic_rl2" diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par index dd82cc821..d1fd53bbb 100644 --- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par +++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 480 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 3 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "hydrotoy_periodic_rl3" diff --git a/CarpetExtra/HydroToy/src/HydroToy.F77 b/CarpetExtra/HydroToy/src/HydroToy.F77 index dcffc75f9..4797162c4 100644 --- a/CarpetExtra/HydroToy/src/HydroToy.F77 +++ b/CarpetExtra/HydroToy/src/HydroToy.F77 @@ -1,5 +1,5 @@ c -*-Fortran-*- -c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/src/HydroToy.F77,v 1.4 2001/03/26 02:28:36 eschnett Exp $ +c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/src/HydroToy.F77,v 1.5 2001/04/23 08:10:19 schnetter Exp $ #include "cctk.h" #include "cctk_Parameters.h" @@ -22,10 +22,10 @@ c Copy do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - u_i(i,j,k) = u(i,j,k) - vx_i(i,j,k) = vx(i,j,k) - vy_i(i,j,k) = vy(i,j,k) - vz_i(i,j,k) = vz(i,j,k) + u_i(i,j,k) = u_p(i,j,k) + vx_i(i,j,k) = vx_p(i,j,k) + vy_i(i,j,k) = vy_p(i,j,k) + vz_i(i,j,k) = vz_p(i,j,k) end do end do @@ -59,10 +59,10 @@ c Copy do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - u_i(i,j,k) = u_n(i,j,k) - vx_i(i,j,k) = vx_n(i,j,k) - vy_i(i,j,k) = vy_n(i,j,k) - vz_i(i,j,k) = vz_n(i,j,k) + u_i(i,j,k) = u(i,j,k) + vx_i(i,j,k) = vx(i,j,k) + vy_i(i,j,k) = vy(i,j,k) + vz_i(i,j,k) = vz(i,j,k) end do end do @@ -76,10 +76,10 @@ c Average do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - u_n(i,j,k) = half * (u(i,j,k) + u_n(i,j,k)) - vx_n(i,j,k) = half * (vx(i,j,k) + vx_n(i,j,k)) - vy_n(i,j,k) = half * (vy(i,j,k) + vy_n(i,j,k)) - vz_n(i,j,k) = half * (vz(i,j,k) + vz_n(i,j,k)) + u(i,j,k) = half * (u_p(i,j,k) + u(i,j,k)) + vx(i,j,k) = half * (vx_p(i,j,k) + vx(i,j,k)) + vy(i,j,k) = half * (vy_p(i,j,k) + vy(i,j,k)) + vz(i,j,k) = half * (vz_p(i,j,k) + vz(i,j,k)) end do end do @@ -109,20 +109,20 @@ c Apply boundaries dt = CCTK_DELTA_TIME c Evolve - do k=2,cctk_lsh(3)-1 - do j=2,cctk_lsh(2)-1 - do i=2,cctk_lsh(1)-1 + do k=1+cctk_nghostzones(3),cctk_lsh(3)-cctk_nghostzones(3) + do j=1+cctk_nghostzones(2),cctk_lsh(2)-cctk_nghostzones(2) + do i=1+cctk_nghostzones(1),cctk_lsh(1)-cctk_nghostzones(1) - u_n(i,j,k) = u_i(i,j,k) + u(i,j,k) = u_i(i,j,k) $ + dt * (vx_i(i+1,j,k) - vx_i(i-1,j,k)) / (2*dx) $ + dt * (vy_i(i,j+1,k) - vy_i(i,j-1,k)) / (2*dy) $ + dt * (vz_i(i,j,k+1) - vz_i(i,j,k-1)) / (2*dz) - vx_n(i,j,k) = vx_i(i,j,k) + vx(i,j,k) = vx_i(i,j,k) $ + dt * (u_i(i+1,j,k) - u_i(i-1,j,k)) / (2*dx) - vy_n(i,j,k) = vy_i(i,j,k) + vy(i,j,k) = vy_i(i,j,k) $ + dt * (u_i(i,j+1,k) - u_i(i,j-1,k)) / (2*dy) - vz_n(i,j,k) = vz_i(i,j,k) + vz(i,j,k) = vz_i(i,j,k) $ + dt * (u_i(i,j,k+1) - u_i(i,j,k-1)) / (2*dz) end do @@ -144,15 +144,17 @@ c Evolve CCTK_REAL zero, one parameter (zero=0, one=1) - CCTK_REAL finf, npow - parameter (finf=1, npow=1) + CCTK_REAL finf + parameter (finf=1) + integer npow + parameter (npow=1) integer sw(3) integer ierr - sw(1) = 1 - sw(2) = 1 - sw(3) = 1 + 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 diff --git a/CarpetExtra/SpaceTimeToy/par/convtest.gnuplot b/CarpetExtra/SpaceTimeToy/par/convtest.gnuplot index 17c3c4bf4..a1042c939 100644 --- a/CarpetExtra/SpaceTimeToy/par/convtest.gnuplot +++ b/CarpetExtra/SpaceTimeToy/par/convtest.gnuplot @@ -9,17 +9,17 @@ omega=sqrt(kx**2 + ky**2 + kz**2) # without refinement # solutions -p "spacetimetoy_periodic/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "spacetimetoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l +p "spacetimetoy_periodic/phi.zl" u ($8-1):($1==time&&$3==0?$9:0/0) w lp, "spacetimetoy_periodic_coarse/phi.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l # errors -p "spacetimetoy_periodic/phi.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.3*$8-9) + omega*(0.15*time))*pi):0/0) w lp, "spacetimetoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*$8)-9) + omega*(0.15*time))*pi):0/0) w lp +p "spacetimetoy_periodic/phi.zl" u ($8-1):($1==time&&$3==0?$9-cos((kz*(0.3*($8-1)-9) + omega*(0.15*time))*pi):0/0) w lp, "spacetimetoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*($8-1))-9) + omega*(0.15*time))*pi):0/0) w lp # with refinement # solutions -p "spacetimetoy_periodic_rl2/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "spacetimetoy_periodic_coarse_rl2/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l +p "spacetimetoy_periodic_rl2/phi.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "spacetimetoy_periodic_coarse_rl2/phi.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l # errors -p "spacetimetoy_periodic_rl2/phi.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.15*$8-9) + omega*(0.075*time))*pi):0/0) w lp, "spacetimetoy_periodic_coarse_rl2/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*$8)-9) + omega*(0.075*time))*pi):0/0) w lp +p "spacetimetoy_periodic_rl2/phi.zl" u ($8-2):($1==time&&$3==0?$9-cos((kz*(0.15*($8-2)-9) + omega*(0.075*time))*pi):0/0) w lp, "spacetimetoy_periodic_coarse_rl2/phi.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*($8-2))-9) + omega*(0.075*time))*pi):0/0) w lp diff --git a/CarpetExtra/SpaceTimeToy/par/convtest_double.gnuplot b/CarpetExtra/SpaceTimeToy/par/convtest_double.gnuplot index bd9f2dee1..660430e24 100644 --- a/CarpetExtra/SpaceTimeToy/par/convtest_double.gnuplot +++ b/CarpetExtra/SpaceTimeToy/par/convtest_double.gnuplot @@ -9,27 +9,28 @@ omega=sqrt(kx**2 + ky**2 + kz**2) # compare to uncoupled systems # coarse solutions -p "spacetimetoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse/u.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l +p "spacetimetoy_periodic_coarse/phi.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse/phi.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse/u.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l # fine solutions -p "spacetimetoy_periodic/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic/u.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic/u.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l +p "spacetimetoy_periodic/phi.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic/u.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic/phi.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic/u.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l # without refinement # solutions -p "doubletoy_periodic/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l + +p "doubletoy_periodic/phi.zl" u ($8-1):($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse/phi.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l # errors -p "doubletoy_periodic/phi.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.3*($8)-9) + omega*(0.15*time))*pi):0/0) w lp, "doubletoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*$8)-9) + omega*(0.15*time))*pi):0/0) w lp +p "doubletoy_periodic/phi.zl" u ($8-1):($1==time&&$3==0?$9-cos((kz*(0.3*($8-1)-9) + omega*(0.15*time))*pi):0/0) w lp, "doubletoy_periodic_coarse/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*($8-1))-9) + omega*(0.15*time))*pi):0/0) w lp # with refinement # solutions -p "doubletoy_periodic_rl2/phi.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse_rl2/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l +p "doubletoy_periodic_rl2/phi.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "doubletoy_periodic_coarse_rl2/phi.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l # errors -p "doubletoy_periodic_rl2/phi.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.15*($8)-9) + omega*(0.075*time))*pi):0/0) w lp, "doubletoy_periodic_coarse_rl2/phi.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*$8)-9) + omega*(0.075*time))*pi):0/0) w lp +p "doubletoy_periodic_rl2/phi.zl" u ($8-2):($1==time&&$3==0?$9-cos((kz*(0.15*($8-2)-9) + omega*(0.075*time))*pi):0/0) w lp, "doubletoy_periodic_coarse_rl2/phi.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*($8-2))-9) + omega*(0.075*time))*pi):0/0) w lp diff --git a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic.par b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic.par index d985792fb..2c22914c6 100644 --- a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic.par +++ b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic.par,v 1.2 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic.par,v 1.3 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy" @@ -19,17 +19,19 @@ Cactus::cctk_itlast = 120 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "doubletoy_periodic" diff --git a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse.par b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse.par index 4f38d9ca5..b4a2b41a4 100644 --- a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse.par +++ b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse.par,v 1.2 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse.par,v 1.3 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy" @@ -19,17 +19,19 @@ Cactus::cctk_itlast = 60 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "doubletoy_periodic_coarse" diff --git a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl2.par b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl2.par index f0b08d896..549747e1f 100644 --- a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl2.par +++ b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl2.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl2.par,v 1.3 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl2.par,v 1.4 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 120 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 2 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "doubletoy_periodic_coarse_rl2" diff --git a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl3.par b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl3.par index c313ecff1..5b529f7d2 100644 --- a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl3.par +++ b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl3.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl3.par,v 1.3 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_coarse_rl3.par,v 1.4 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 3 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "doubletoy_periodic_coarse_rl3" diff --git a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl2.par b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl2.par index 63f308484..cd0233846 100644 --- a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl2.par +++ b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl2.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl2.par,v 1.3 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl2.par,v 1.4 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 2 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "doubletoy_periodic_rl2" diff --git a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl3.par b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl3.par index be4eeead0..fcb06b511 100644 --- a/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl3.par +++ b/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl3.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl3.par,v 1.3 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/doubletoy_periodic_rl3.par,v 1.4 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy IDHydroToy HydroToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 480 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 3 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "doubletoy_periodic_rl3" diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par index 98496c2ea..481e1f24d 100644 --- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par +++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par,v 1.2 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic.par,v 1.3 2001/04/23 08:10:20 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy" @@ -19,17 +19,19 @@ Cactus::cctk_itlast = 120 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "spacetimetoy_periodic" diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par index ca7fc2964..95b1884e9 100644 --- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par +++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par,v 1.4 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par,v 1.5 2001/04/23 08:10:21 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy" @@ -19,17 +19,19 @@ Cactus::cctk_itlast = 60 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "spacetimetoy_periodic_coarse" diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par index ab01833e1..df1ab595d 100644 --- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par +++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par,v 1.4 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl2.par,v 1.5 2001/04/23 08:10:21 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 120 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 2 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "spacetimetoy_periodic_coarse_rl2" diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par index dfceb4631..ec078235d 100644 --- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par +++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par,v 1.5 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse_rl3.par,v 1.6 2001/04/23 08:10:21 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240 Time::dtfac = 0.5 -driver::global_nx = 17 -driver::global_ny = 24 -driver::global_nz = 32 +driver::global_nx = 19 +driver::global_ny = 26 +driver::global_nz = 34 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 3 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.8 -grid::ymax = 7.2 -grid::zmax = 9.6 +grid::xmin = -5.4 +grid::ymin = -7.2 +grid::zmin = -9.6 +grid::xmax = 5.4 +grid::ymax = 7.8 +grid::zmax = 10.2 grid::mode = periodic IO::outdir = "spacetimetoy_periodic_coarse_rl3" diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par index c31d64ada..14175ee15 100644 --- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par +++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par,v 1.4 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl2.par,v 1.5 2001/04/23 08:10:21 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 2 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "spacetimetoy_periodic_rl2" diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par index dcdf804a8..6dfb5e485 100644 --- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par +++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par @@ -7,7 +7,7 @@ # @enddesc # @@*/ # -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par,v 1.3 2001/03/30 00:50:48 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_rl3.par,v 1.4 2001/04/23 08:10:21 schnetter Exp $ ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy" @@ -19,21 +19,23 @@ Cactus::cctk_itlast = 480 Time::dtfac = 0.5 -driver::global_nx = 32 -driver::global_ny = 46 -driver::global_nz = 62 +driver::global_nx = 34 +driver::global_ny = 48 +driver::global_nz = 64 + +driver::ghost_size = 2 Carpet::max_refinement_levels = 3 Carpet::prolongation_order_space= 3 Carpet::prolongation_order_time = 2 grid::type = byrange -grid::xmin = -4.8 -grid::ymin = -6.6 -grid::zmin = -9.0 -grid::xmax = 4.5 -grid::ymax = 6.9 -grid::zmax = 9.3 +grid::xmin = -5.1 +grid::ymin = -6.9 +grid::zmin = -9.3 +grid::xmax = 4.8 +grid::ymax = 7.2 +grid::zmax = 9.6 grid::mode = periodic IO::outdir = "spacetimetoy_periodic_rl3" diff --git a/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77 b/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77 index ecb245028..a5d8eab8c 100644 --- a/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77 +++ b/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77 @@ -1,5 +1,5 @@ c -*-Fortran-*- -c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77,v 1.7 2001/03/26 02:29:24 eschnett Exp $ +c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77,v 1.8 2001/04/23 08:10:22 schnetter Exp $ #include "cctk.h" #include "cctk_Parameters.h" @@ -22,8 +22,8 @@ c Copy do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - phi_i(i,j,k) = phi(i,j,k) - psi_i(i,j,k) = psi(i,j,k) + phi_i(i,j,k) = phi_p(i,j,k) + psi_i(i,j,k) = psi_p(i,j,k) end do end do @@ -35,10 +35,10 @@ c Copy do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - u_i(i,j,k) = u(i,j,k) - vx_i(i,j,k) = vx(i,j,k) - vy_i(i,j,k) = vy(i,j,k) - vz_i(i,j,k) = vz(i,j,k) + u_i(i,j,k) = u_p(i,j,k) + vx_i(i,j,k) = vx_p(i,j,k) + vy_i(i,j,k) = vy_p(i,j,k) + vz_i(i,j,k) = vz_p(i,j,k) end do end do @@ -96,8 +96,8 @@ c Average do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - phi_i(i,j,k) = half * (phi(i,j,k) + phi_n(i,j,k)) - psi_i(i,j,k) = half * (psi(i,j,k) + psi_n(i,j,k)) + phi_i(i,j,k) = half * (phi_p(i,j,k) + phi(i,j,k)) + psi_i(i,j,k) = half * (psi_p(i,j,k) + psi(i,j,k)) end do end do @@ -109,10 +109,10 @@ c Average do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - u_i(i,j,k) = half * (u(i,j,k) + u_n(i,j,k)) - vx_i(i,j,k) = half * (vx(i,j,k) + vx_n(i,j,k)) - vy_i(i,j,k) = half * (vy(i,j,k) + vy_n(i,j,k)) - vz_i(i,j,k) = half * (vz(i,j,k) + vz_n(i,j,k)) + u_i(i,j,k) = half * (u_p(i,j,k) + u(i,j,k)) + vx_i(i,j,k) = half * (vx_p(i,j,k) + vx(i,j,k)) + vy_i(i,j,k) = half * (vy_p(i,j,k) + vy(i,j,k)) + vz_i(i,j,k) = half * (vz_p(i,j,k) + vz(i,j,k)) end do end do @@ -168,15 +168,15 @@ c Step ICN iterations dt = CCTK_DELTA_TIME c Evolve - do k=2,cctk_lsh(3)-1 - do j=2,cctk_lsh(2)-1 - do i=2,cctk_lsh(1)-1 + do k=1+cctk_nghostzones(3),cctk_lsh(3)-cctk_nghostzones(3) + do j=1+cctk_nghostzones(2),cctk_lsh(2)-cctk_nghostzones(2) + do i=1+cctk_nghostzones(1),cctk_lsh(1)-cctk_nghostzones(1) - phi_n(i,j,k) = phi(i,j,k) + phi(i,j,k) = phi_p(i,j,k) $ + dt * psi_i(i,j,k) $ + dt * u_i(i,j,k) - psi_n(i,j,k) = psi(i,j,k) + psi(i,j,k) = psi_p(i,j,k) $ + dt * (phi_i(i-1,j,k) - 2*phi_i(i,j,k) + phi_i(i+1,j,k)) / dx**2 $ + dt * (phi_i(i,j-1,k) - 2*phi_i(i,j,k) + phi_i(i,j+1,k)) / dy**2 $ + dt * (phi_i(i,j,k-1) - 2*phi_i(i,j,k) + phi_i(i,j,k+1)) / dz**2 @@ -203,15 +203,17 @@ c Evolve CCTK_REAL zero, one parameter (zero=0, one=1) - CCTK_REAL finf, npow - parameter (finf=1, npow=1) + CCTK_REAL finf + parameter (finf=1) + integer npow + parameter (npow=1) integer sw(3) integer ierr - sw(1) = 1 - sw(2) = 1 - sw(3) = 1 + 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 diff --git a/CarpetExtra/WaveToyF77/src/WaveToy.F77 b/CarpetExtra/WaveToyF77/src/WaveToy.F77 index adcdea62a..bbdf70457 100644 --- a/CarpetExtra/WaveToyF77/src/WaveToy.F77 +++ b/CarpetExtra/WaveToyF77/src/WaveToy.F77 @@ -65,13 +65,13 @@ c ----------------- dy2i = 1/dy2 dz2i = 1/dz2 - istart = 2 - jstart = 2 - kstart = 2 + istart = 1+cctk_nghostzones(1) + jstart = 1+cctk_nghostzones(2) + kstart = 1+cctk_nghostzones(3) - iend = cctk_lsh(1)-1 - jend = cctk_lsh(2)-1 - kend = cctk_lsh(3)-1 + iend = cctk_lsh(1)-cctk_nghostzones(1) + jend = cctk_lsh(2)-cctk_nghostzones(2) + kend = cctk_lsh(3)-cctk_nghostzones(3) factor = 2 * (1 - dt2 * (dx2i + dy2i + dz2i)) @@ -81,11 +81,11 @@ c ---------------- do j = jstart, jend do i = istart, iend - phi_n(i,j,k) = factor*phi(i,j,k) - - $ phi_p(i,j,k) + (dt2) * - $ ((phi(i+1,j,k)+phi(i-1,j,k))*dx2i - $ +(phi(i,j+1,k)+phi(i,j-1,k))*dy2i - $ +(phi(i,j,k+1)+phi(i,j,k-1))*dz2i) + phi(i,j,k) = factor*phi_p(i,j,k) - + $ phi_p_p(i,j,k) + (dt2) * + $ ((phi_p(i+1,j,k)+phi_p(i-1,j,k))*dx2i + $ +(phi_p(i,j+1,k)+phi_p(i,j-1,k))*dy2i + $ +(phi_p(i,j,k+1)+phi_p(i,j,k-1))*dz2i) end do end do @@ -132,9 +132,9 @@ c call CCTK_INFO ("WaveToyF77_Boundaries") c Set the stencil width c --------------------- - sw(1) = 1 - sw(2) = 1 - sw(3) = 1 + sw(1) = cctk_nghostzones(1) + sw(2) = cctk_nghostzones(2) + sw(3) = cctk_nghostzones(3) c Apply the outer boundary conditions c ----------------------------------- |