diff --git a/AMSS_NCKU_source/bssn_class.C b/AMSS_NCKU_source/bssn_class.C index 18f1388..eb84f8e 100644 --- a/AMSS_NCKU_source/bssn_class.C +++ b/AMSS_NCKU_source/bssn_class.C @@ -2426,9 +2426,9 @@ void bssn_class::RecursiveStep(int lev) #endif #if (REGLEV == 0) - GH->Regrid_Onelevel(lev, Symmetry, BH_num, Porgbr, Porg0, + if (GH->Regrid_Onelevel(lev, Symmetry, BH_num, Porgbr, Porg0, SynchList_cor, OldStateList, StateList, SynchList_pre, - fgt(PhysTime - dT_lev, StartTime, dT_lev / 2), ErrorMonitor); + fgt(PhysTime - dT_lev, StartTime, dT_lev / 2), ErrorMonitor)) for (int il = 0; il < GH->levels; il++) { sync_cache_pre[il].invalidate(); sync_cache_cor[il].invalidate(); sync_cache_rp_coarse[il].invalidate(); sync_cache_rp_fine[il].invalidate(); } #endif } @@ -2605,9 +2605,9 @@ void bssn_class::ParallelStep() delete[] tporg; delete[] tporgo; #if (REGLEV == 0) - GH->Regrid_Onelevel(GH->mylev, Symmetry, BH_num, Porgbr, Porg0, + if (GH->Regrid_Onelevel(GH->mylev, Symmetry, BH_num, Porgbr, Porg0, SynchList_cor, OldStateList, StateList, SynchList_pre, - fgt(PhysTime - dT_lev, StartTime, dT_lev / 2), ErrorMonitor); + fgt(PhysTime - dT_lev, StartTime, dT_lev / 2), ErrorMonitor)) for (int il = 0; il < GH->levels; il++) { sync_cache_pre[il].invalidate(); sync_cache_cor[il].invalidate(); sync_cache_rp_coarse[il].invalidate(); sync_cache_rp_fine[il].invalidate(); } #endif } @@ -2772,9 +2772,9 @@ void bssn_class::ParallelStep() if (lev + 1 >= GH->movls) { // GH->Regrid_Onelevel_aux(lev,Symmetry,BH_num,Porgbr,Porg0, - GH->Regrid_Onelevel(lev + 1, Symmetry, BH_num, Porgbr, Porg0, + if (GH->Regrid_Onelevel(lev + 1, Symmetry, BH_num, Porgbr, Porg0, SynchList_cor, OldStateList, StateList, SynchList_pre, - fgt(PhysTime - dT_levp1, StartTime, dT_levp1 / 2), ErrorMonitor); + fgt(PhysTime - dT_levp1, StartTime, dT_levp1 / 2), ErrorMonitor)) for (int il = 0; il < GH->levels; il++) { sync_cache_pre[il].invalidate(); sync_cache_cor[il].invalidate(); sync_cache_rp_coarse[il].invalidate(); sync_cache_rp_fine[il].invalidate(); } // a_stream.clear(); @@ -2787,9 +2787,9 @@ void bssn_class::ParallelStep() // for this level if (YN == 1) { - GH->Regrid_Onelevel(lev, Symmetry, BH_num, Porgbr, Porg0, + if (GH->Regrid_Onelevel(lev, Symmetry, BH_num, Porgbr, Porg0, SynchList_cor, OldStateList, StateList, SynchList_pre, - fgt(PhysTime - dT_lev, StartTime, dT_lev / 2), ErrorMonitor); + fgt(PhysTime - dT_lev, StartTime, dT_lev / 2), ErrorMonitor)) for (int il = 0; il < GH->levels; il++) { sync_cache_pre[il].invalidate(); sync_cache_cor[il].invalidate(); sync_cache_rp_coarse[il].invalidate(); sync_cache_rp_fine[il].invalidate(); } // a_stream.clear(); @@ -2806,9 +2806,9 @@ void bssn_class::ParallelStep() if (YN == 1) { // GH->Regrid_Onelevel_aux(lev-2,Symmetry,BH_num,Porgbr,Porg0, - GH->Regrid_Onelevel(lev - 1, Symmetry, BH_num, Porgbr, Porg0, + if (GH->Regrid_Onelevel(lev - 1, Symmetry, BH_num, Porgbr, Porg0, SynchList_cor, OldStateList, StateList, SynchList_pre, - fgt(PhysTime - dT_lev, StartTime, dT_levm1 / 2), ErrorMonitor); + fgt(PhysTime - dT_lev, StartTime, dT_levm1 / 2), ErrorMonitor)) for (int il = 0; il < GH->levels; il++) { sync_cache_pre[il].invalidate(); sync_cache_cor[il].invalidate(); sync_cache_rp_coarse[il].invalidate(); sync_cache_rp_fine[il].invalidate(); } // a_stream.clear(); @@ -2822,9 +2822,9 @@ void bssn_class::ParallelStep() if (i % 4 == 3) { // GH->Regrid_Onelevel_aux(lev-2,Symmetry,BH_num,Porgbr,Porg0, - GH->Regrid_Onelevel(lev - 1, Symmetry, BH_num, Porgbr, Porg0, + if (GH->Regrid_Onelevel(lev - 1, Symmetry, BH_num, Porgbr, Porg0, SynchList_cor, OldStateList, StateList, SynchList_pre, - fgt(PhysTime - dT_lev, StartTime, dT_levm1 / 2), ErrorMonitor); + fgt(PhysTime - dT_lev, StartTime, dT_levm1 / 2), ErrorMonitor)) for (int il = 0; il < GH->levels; il++) { sync_cache_pre[il].invalidate(); sync_cache_cor[il].invalidate(); sync_cache_rp_coarse[il].invalidate(); sync_cache_rp_fine[il].invalidate(); } // a_stream.clear(); diff --git a/AMSS_NCKU_source/cgh.C b/AMSS_NCKU_source/cgh.C index e27ccd6..2f7f2a0 100644 --- a/AMSS_NCKU_source/cgh.C +++ b/AMSS_NCKU_source/cgh.C @@ -1301,13 +1301,13 @@ bool cgh::Interp_One_Point(MyList *VarList, } -void cgh::Regrid_Onelevel(int lev, int Symmetry, int BH_num, double **Porgbr, double **Porg0, +bool cgh::Regrid_Onelevel(int lev, int Symmetry, int BH_num, double **Porgbr, double **Porg0, MyList *OldList, MyList *StateList, MyList *FutureList, MyList *tmList, bool BB, monitor *ErrorMonitor) { if (lev < movls) - return; + return false; #if (0) // #if (PSTR == 1 || PSTR == 2) @@ -1396,7 +1396,7 @@ void cgh::Regrid_Onelevel(int lev, int Symmetry, int BH_num, double **Porgbr, do for (bhi = 0; bhi < BH_num; bhi++) delete[] tmpPorg[bhi]; delete[] tmpPorg; - return; + return false; } // x direction rr = (Porg0[bhi][0] - handle[lev][grd][0]) / dX; @@ -1500,6 +1500,7 @@ void cgh::Regrid_Onelevel(int lev, int Symmetry, int BH_num, double **Porgbr, do for (int bhi = 0; bhi < BH_num; bhi++) delete[] tmpPorg[bhi]; delete[] tmpPorg; + return tot_flag; } diff --git a/AMSS_NCKU_source/cgh.h b/AMSS_NCKU_source/cgh.h index 79e7bf6..57e489a 100644 --- a/AMSS_NCKU_source/cgh.h +++ b/AMSS_NCKU_source/cgh.h @@ -74,7 +74,7 @@ public: MyList *OldList, MyList *StateList, MyList *FutureList, MyList *tmList, int Symmetry, bool BB); - void Regrid_Onelevel(int lev, int Symmetry, int BH_num, double **Porgbr, double **Porg0, + bool Regrid_Onelevel(int lev, int Symmetry, int BH_num, double **Porgbr, double **Porg0, MyList *OldList, MyList *StateList, MyList *FutureList, MyList *tmList, bool BB, monitor *ErrorMonitor);