diff options
-rw-r--r-- | interface.ccl | 12 | ||||
-rw-r--r-- | param.ccl | 33 | ||||
-rw-r--r-- | schedule.ccl | 82 |
3 files changed, 116 insertions, 11 deletions
diff --git a/interface.ccl b/interface.ccl index 477462b..bf12b1c 100644 --- a/interface.ccl +++ b/interface.ccl @@ -11,32 +11,32 @@ INT shift_state TYPE = SCALAR "state of storage for shift" INT dtlapse_state TYPE = SCALAR "state of storage for dtlapse" INT dtshift_state TYPE = SCALAR "state of storage for dtshift" -REAL metric TYPE = GF timelevels = 3 tags='tensortypealias="DD_sym"' +REAL metric TYPE = GF timelevels = 3 tags='tensortypealias="DD_sym" ProlongationParameter="ADMBase::metric_prolongation_type"' { gxx,gxy,gxz,gyy,gyz,gzz } "ADM 3-metric g_ij" -REAL curv TYPE = GF timelevels = 3 tags='tensortypealias="DD_sym"' +REAL curv TYPE = GF timelevels = 3 tags='tensortypealias="DD_sym" ProlongationParameter="ADMBase::metric_prolongation_type"' { kxx,kxy,kxz,kyy,kyz,kzz } "ADM extrinsic curvature K_ij" -REAL lapse TYPE = GF timelevels = 3 tags='tensortypealias="Scalar"' +REAL lapse TYPE = GF timelevels = 3 tags='tensortypealias="Scalar" ProlongationParameter="ADMBase::lapse_prolongation_type"' { alp } "ADM lapse function alpha" -REAL shift TYPE = GF timelevels = 3 tags='tensortypealias="U"' +REAL shift TYPE = GF timelevels = 3 tags='tensortypealias="U" ProlongationParameter="ADMBase::shift_prolongation_type"' { betax,betay,betaz } "ADM shift function beta^i" -REAL dtlapse TYPE = GF timelevels = 3 tags='tensortypealias="Scalar"' +REAL dtlapse TYPE = GF timelevels = 3 tags='tensortypealias="Scalar" ProlongationParameter="ADMBase::lapse_prolongation_type"' { dtalp } "Time derivative of ADM lapse function alpha" -REAL dtshift TYPE = GF timelevels = 3 tags='tensortypealias="U"' +REAL dtshift TYPE = GF timelevels = 3 tags='tensortypealias="U" ProlongationParameter="ADMBase::shift_prolongation_type"' { dtbetax,dtbetay,dtbetaz } "Time derivative of ADM shift function beta^i" @@ -65,3 +65,36 @@ KEYWORD metric_type "The semantics of the metric variables (physical, static con { "physical" :: "metric and extrinsic curvature are the physical ones" } "physical" + +KEYWORD lapse_prolongation_type "The kind of boundary prolongation for the lapse" +{ + "Lagrange" :: "standard prolongation (requires several time levels)" + "none" :: "no prolongation (use this if you do not have enough time levels active)" +} "Lagrange" + +KEYWORD shift_prolongation_type "The kind of boundary prolongation for the shift" +{ + "Lagrange" :: "standard prolongation (requires several time levels)" + "none" :: "no prolongation (use this if you do not have enough time levels active)" +} "Lagrange" + +KEYWORD metric_prolongation_type "The kind of boundary prolongation for the metric and extrinsic curvature" +{ + "Lagrange" :: "standard prolongation (requires several time levels)" + "none" :: "no prolongation (use this if you do not have enough time levels active)" +} "Lagrange" + +INT lapse_timelevels "Number of time levels for the lapse" +{ + 0:3 :: "" +} 1 + +INT shift_timelevels "Number of time levels for the shift" +{ + 0:3 :: "" +} 1 + +INT metric_timelevels "Number of time levels for the metric and extrinsic curvature" +{ + 0:3 :: "" +} 1 diff --git a/schedule.ccl b/schedule.ccl index 61274db..ce70686 100644 --- a/schedule.ccl +++ b/schedule.ccl @@ -1,7 +1,83 @@ # Schedule definitions for thorn ADMBase # $Header$ -STORAGE: shift_state, dtlapse_state, dtshift_state, metric[1], curv[1], lapse[1] +STORAGE: shift_state dtlapse_state dtshift_state + +if (lapse_timelevels == 1) +{ + STORAGE: lapse[1] +} +else if (lapse_timelevels == 2) +{ + STORAGE: lapse[2] +} +else if (lapse_timelevels == 3) +{ + STORAGE: lapse[3] +} + +if (! CCTK_Equals(initial_shift, "none")) +{ + if (shift_timelevels == 1) + { + STORAGE: shift[1] + } + else if (shift_timelevels == 2) + { + STORAGE: shift[2] + } + else if (shift_timelevels == 3) + { + STORAGE: shift[3] + } +} + +if (! CCTK_Equals(initial_dtlapse, "none")) +{ + if (lapse_timelevels == 1) + { + STORAGE: dtlapse[1] + } + else if (lapse_timelevels == 2) + { + STORAGE: dtlapse[2] + } + else if (lapse_timelevels == 3) + { + STORAGE: dtlapse[3] + } +} + +if (! CCTK_Equals(initial_dtshift, "none")) +{ + if (shift_timelevels == 1) + { + STORAGE: dtshift[1] + } + else if (shift_timelevels == 2) + { + STORAGE: dtshift[2] + } + else if (shift_timelevels == 3) + { + STORAGE: dtshift[3] + } +} + +if (metric_timelevels == 1) +{ + STORAGE: metric[1], curv[1] +} +else if (metric_timelevels == 2) +{ + STORAGE: metric[2], curv[2] +} +else if (metric_timelevels == 3) +{ + STORAGE: metric[3], curv[3] +} + + SCHEDULE ADMBase_ParamCheck at CCTK_PARAMCHECK { @@ -46,8 +122,6 @@ if(CCTK_Equals(initial_lapse, "one")) # Do we have storage for the shift ? if (!CCTK_Equals(initial_shift, "none")) { - STORAGE: shift[1] - SCHEDULE ADMBase_SetShiftStateOn at CCTK_BASEGRID { LANG: C @@ -71,7 +145,6 @@ if (! CCTK_Equals(initial_dtlapse, "none")) } else { - STORAGE: dtlapse[1] SCHEDULE ADMBase_SetDtLapseStateOff at CCTK_BASEGRID { LANG: C @@ -106,7 +179,6 @@ if (CCTK_Equals(initial_shift, "zero")) # Initial data for dtlapse if (CCTK_Equals(initial_dtlapse, "zero")) { - STORAGE: dtshift[1] SCHEDULE ADMBase_DtLapseZero in ADMBase_InitialGauge { LANG: C |