From 3d020241c0954c675ce5d90e04c42647939c36ae Mon Sep 17 00:00:00 2001 From: cott Date: Fri, 20 Jul 2007 05:30:00 +0000 Subject: Sync 1-tl and prolongation=none GFs Fix a little bug that prevented the synchronization of GFs that have only 1 timelevel or have prolongation turned off explicitely (tag 'prolongation=none'). darcs-hash:20070720053047-fff0f-d3020389f0fa803eb5abacbc45cd02639a4c6b7c.gz --- Carpet/Carpet/src/SetupGH.cc | 8 +++++--- Carpet/Carpet/src/Storage.cc | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Carpet/Carpet/src/SetupGH.cc b/Carpet/Carpet/src/SetupGH.cc index 42e69fe4b..6863abbbd 100644 --- a/Carpet/Carpet/src/SetupGH.cc +++ b/Carpet/Carpet/src/SetupGH.cc @@ -1766,7 +1766,7 @@ namespace Carpet { "Group \"%s\" has only one time level; therefore it will not be prolongated or restricted.", groupname); free (groupname); - return op_none; + return op_sync; } else { // Several time levels: use the default return op_Lagrange; @@ -1778,7 +1778,7 @@ namespace Carpet { "Group \"%s\" has the variable type \"%s\" which cannot be prolongated or restricted.", groupname, CCTK_VarTypeName(gdata.vartype)); free (groupname); - return op_none; + return op_sync; } else { return op_error; } @@ -1788,7 +1788,9 @@ namespace Carpet { // Select the prolongation method assert (have_prolong_string); if (CCTK_Equals(prolong_string, "none")) { - return op_none; + return op_sync; // sync absolutely everything + } else if (CCTK_Equals(prolong_string, "sync")) { + return op_sync; } else if (CCTK_Equals(prolong_string, "copy")) { return op_copy; } else if (CCTK_Equals(prolong_string, "Lagrange")) { diff --git a/Carpet/Carpet/src/Storage.cc b/Carpet/Carpet/src/Storage.cc index 1e3856e0f..1ef8cd5a2 100644 --- a/Carpet/Carpet/src/Storage.cc +++ b/Carpet/Carpet/src/Storage.cc @@ -210,7 +210,9 @@ namespace Carpet { } // for n - return total_num_timelevels; + // return total_num_timelevels; + return do_allow_past_timelevels ? + total_num_timelevels : min(1,total_num_timelevels); } @@ -359,7 +361,8 @@ namespace Carpet { if (gp.grouptype == CCTK_GF) { if (groupdata.at(group).transport_operator != op_none - and groupdata.at(group).transport_operator != op_copy) { + and groupdata.at(group).transport_operator != op_copy + and groupdata.at(group).transport_operator != op_sync) { if (groupdata.at(group).activetimelevels.at(ml).at(rl) != 0 and (groupdata.at(group).activetimelevels.at(ml).at(rl) < prolongation_order_time+1)) -- cgit v1.2.3