From cd5c6636a7961ca94f6a904eef72a3134f401efa Mon Sep 17 00:00:00 2001 From: rhaas Date: Tue, 27 Nov 2012 17:52:52 +0000 Subject: add dtlapse_evolution and dtshift_evolution method options This attached patch actually does two things: 1. adds dtlapse_evolution method and dtshift_evolution method options 'exact' to the respective ADMBase keywords 2. schedules metric initialization in MoL_PostStep (in addition to CCTK_PRESTEP) which is in line with what the current gauge initialization routine does git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@284 e296648e-0e4f-0410-bd07-d597d9acff87 --- param.ccl | 9 +++++++++ schedule.ccl | 7 ++++++- src/gauge.F77 | 4 ++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/param.ccl b/param.ccl index 9164f7d..4462e00 100644 --- a/param.ccl +++ b/param.ccl @@ -24,6 +24,15 @@ EXTENDS KEYWORD shift_evolution_method "exact" :: "Use shift from exact solution" } +EXTENDS KEYWORD dtlapse_evolution_method +{ + "exact" :: "Use lapse from exact solution" +} +EXTENDS KEYWORD dtshift_evolution_method +{ + "exact" :: "Use shift from exact solution" +} + EXTENDS KEYWORD initial_lapse { "exact" :: "Initial lapse from exact solution" diff --git a/schedule.ccl b/schedule.ccl index 7146bf4..a0b6b68 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -74,7 +74,7 @@ if ( (CCTK_Equals(initial_lapse,"exact")) || (CCTK_Equals(initial_shift,"exact") # During the evolution: -if ( (CCTK_Equals(lapse_evolution_method,"exact")) || (CCTK_Equals(shift_evolution_method,"exact")) ) +if ( (CCTK_Equals(lapse_evolution_method,"exact")) || (CCTK_Equals(shift_evolution_method,"exact")) || (CCTK_Equals(dtlapse_evolution_method,"exact")) || (CCTK_Equals(dtshift_evolution_method,"exact")) ) { schedule Exact__RegisterSlicing at CCTK_STARTUP { @@ -132,6 +132,11 @@ if (CCTK_Equals(evolution_method,"exact")) { LANG: Fortran } "Set data from exact solution on an exact slice" + # Necessary if MoL is used + schedule Exact__initialize in MoL_PostStep + { + LANG: Fortran + } "Set data from exact solution on an exact slice" } ####################################################################### diff --git a/src/gauge.F77 b/src/gauge.F77 index 3735455..93ceb6a 100644 --- a/src/gauge.F77 +++ b/src/gauge.F77 @@ -82,8 +82,8 @@ C if ( is_later_slice ) then set_lapse = CCTK_Equals(lapse_evolution_method, "exact").ne.0 set_shift = CCTK_Equals(shift_evolution_method, "exact").ne.0 - set_dtlapse = .false. - set_dtshift = .false. + set_dtlapse = CCTK_Equals(dtlapse_evolution_method, "exact").ne.0 + set_dtshift = CCTK_Equals(dtshift_evolution_method, "exact").ne.0 end if if ( set_lapse .or. set_shift .or. set_dtlapse .or. set_dtshift) then -- cgit v1.2.3