diff options
author | diener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c> | 2004-06-22 13:37:59 +0000 |
---|---|---|
committer | diener <diener@2a26948c-0e4f-0410-aee8-f1d3e353619c> | 2004-06-22 13:37:59 +0000 |
commit | fac105f1dbf91f885c6a159da201fe95b2a4447c (patch) | |
tree | c3d1832b2dbe96b7936bacfcd6f2a4530e281354 | |
parent | a5a2d7e90a521cf7f7f78aaf3b0ac90268990ea6 (diff) |
Reorganized the scheduling of the re-intialization routines. Created new
schedule groups and organized the routines in a different way, so that
I can call the schedule groups in the correct way with Carpet. Note
that it only works with carpet, if the declaration of Restrict is moved from
carpet.hh to functions.hh.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/EHFinder/trunk@181 2a26948c-0e4f-0410-aee8-f1d3e353619c
-rw-r--r-- | schedule.ccl | 99 |
1 files changed, 82 insertions, 17 deletions
diff --git a/schedule.ccl b/schedule.ccl index 77c3d91..9707f63 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -129,7 +129,7 @@ schedule EHFinder_LevelSetLoopInit in EHFinder_Level_Sets LANG: Fortran TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z TRIGGERS: eh_circ_eq, eh_circ_pol -} "Initialise the loop counter over the level set functions" +} "Initialize the loop counter over the level set functions" schedule GROUP EHFinder_Surfaces in EHFinder_Level_Sets while ehfinder::more_levelsets { @@ -146,7 +146,7 @@ schedule EHFinder_CountSurfacesInit in EHFinder_Surfaces LANG: Fortran TRIGGERS: eh_area, eh_centroid_x, eh_centroid_y, eh_centroid_z TRIGGERS: eh_circ_eq, eh_circ_pol -} "Initialise while loop control" +} "Initialize while loop control" schedule GROUP EHFinder_CountMarkSurfaces in EHFinder_Surfaces after EHFinder_CountSurfacesInit WHILE ehfinder::more_surfaces { @@ -403,58 +403,123 @@ if (CCTK_Equals(mode,"normal")) STORAGE: sftmp STORAGE: fbak STORAGE: eh_mask_bak +# STORAGE: pugh_re_init_control, carpet_re_init_control STORAGE: re_init_control + STORAGE: niter_reinit } "Re-initialize the level set function" - # Schedule the control routine, that initialises re_init_control if it + # Schedule the control routine, that initializes *_re_init_control if it # is time for re-initialization. - schedule EHFinder_ReInitializeControl in EHFinder_ReInitialize + schedule GROUP EHFinder_PreReInitialize + { + } "Routines for re-initialization control" + + schedule EHFinder_ReInitializeControl in EHFinder_PreReInitialize { LANG: Fortran + OPTIONS: global } "Initializes the re-initialization control" + schedule EHFinder_ReInitializeInitialize in EHFinder_PreReInitialize after EHFinder_ReInitializeControl + { + LANG: Fortran + } "Initializes variables for ReInitialization" if (CCTK_Equals(re_init_int_method,"euler")) { - - # Set up the schedule group for euler re-initialization using - # re_init_control to control the exit from the while loop. - - schedule GROUP Euler_ReInitialize in EHFinder_ReInitialize AFTER EHFinder_ReInitializeControl WHILE ehfinder::re_init_control + + schedule GROUP Euler_ReInitializeEvolve { - } "Schedule group for Euler re-initialization" + } "Schedule group for Euler re-initialization evolution" # Schedule the routine that does one Euler step - schedule EHFinder_ReInitializeEuler in Euler_ReInitialize + schedule EHFinder_ReInitializeEuler in Euler_ReInitializeEvolve { LANG: Fortran STORAGE: dfx STORAGE: dfy STORAGE: dfz STORAGE: dfsq - SYNC: f } "Euler scheme" # Then synchronize the level set and apply symmetry boundary conditions. - - schedule EHFinder_ApplySymF in Euler_ReInitialize after EHFinder_ReInitializeEuler + + schedule EHFinder_ApplySymF in Euler_ReInitializeEvolve after EHFinder_ReInitializeEuler { LANG: Fortran SYNC: f } "Select f for boundary conditions" - schedule GROUP ApplyBCs as EHFinderF_ApplyBCs in Euler_ReInitialize after EHFinder_ApplySymF + schedule GROUP ApplyBCs as EHFinderF_ApplyBCs in Euler_ReInitializeEvolve after EHFinder_ApplySymF { } "Apply boundary conditions (symmetries)" - schedule EHFinder_ReInitialize_Check in EHFinder_ReInitialize AFTER Euler_ReInitialize + schedule GROUP Euler_PostStep + { + } "Schedule group for Euler re-initialization post step" + + schedule EHFinder_ReInitializePostStep in Euler_PostStep { LANG: Fortran - } "Check to see if re-initialization has to be undone" + OPTIONS: global + } "Check if the re-initialization is done" + + if (CCTK_IsThornActive("PUGH" )) + { + schedule GROUP EHFinder_PreReInitialize as EHFinder_PreReInitializePugh in EHFinder_ReInitialize + { + } "Pugh version of the pre-re-initialization routines" + + # Set up the schedule group for euler re-initialization using + # *_re_init_control to control the exit from the while loop. + +# schedule GROUP Euler_ReInitialize in EHFinder_ReInitialize AFTER EHFinder_PreReInitializePUGH WHILE ehfinder::pugh_re_init_control + schedule GROUP Euler_ReInitialize in EHFinder_ReInitialize AFTER EHFinder_PreReInitializePUGH WHILE ehfinder::re_init_control + { + } "Schedule group for Euler re-initialization" + + schedule GROUP Euler_ReInitializeEvolve as Euler_ReInitializeEvolvePUGH in Euler_ReInitialize + { + } "Schedule group for Euler re-initialization evolution with PUGH" + + schedule GROUP Euler_PostStep as Euler_PostStepPUGH in Euler_ReInitialize after Euler_ReInitializeEvolve + { + } "Schedule group for Euler re-initialization post step" + } + + if (CCTK_IsThornActive("Carpet")) + { + schedule EHFinder_PreReInitialize_Carpet in EHFinder_ReInitialize + { + LANG: C + OPTIONS: level + } "Carper version of the pre-reinitialization routines" + +# schedule EHFinder_ReInitialize_Wrapper in EHFinder_ReInitialize after EHFinder_PreReInitialize_Carpet WHILE ehfinder::carpet_re_init_control + schedule EHFinder_ReInitialize_Wrapper in EHFinder_ReInitialize after EHFinder_PreReInitialize_Carpet WHILE ehfinder::re_init_control + { + LANG: C +# OPTIONS: global + OPTIONS: level + } "Wrapper routine for Euler re-initialization for Carpet" + } + +# schedule EHFinder_ReInitialize_Check in EHFinder_ReInitialize AFTER Euler_ReInitialize +# { +# LANG: Fortran +# } "Check to see if re-initialization has to be undone" } +# schedule GROUP Euler_RotateTimeLevels +# { +# } "Schedule group for rotating timelevels" +# +# schedule EHFinder_RotateTimeLevels in Euler_RotateTimeLevels +# { +# LANG: Fortran +# } "Rotate timelevels in Euler re-initialization" if (CCTK_Equals(re_init_int_method,"rk2")) { |