aboutsummaryrefslogtreecommitdiff
path: root/schedule.ccl
diff options
context:
space:
mode:
authordiener <diener@4ec1db94-0e4f-0410-ada3-8bed251432c9>2007-09-05 14:51:28 +0000
committerdiener <diener@4ec1db94-0e4f-0410-ada3-8bed251432c9>2007-09-05 14:51:28 +0000
commit78815c1602b7b72824e5e43436244ccaf06e16e7 (patch)
treecd8fde37232f0b166841a6d91ce753fe8a0c8230 /schedule.ccl
parent68f2a97a76104b96344e1a1a1c437a38a83db00b (diff)
Changes in methodology for filling in the interior of Cook-Pfeiffer data as
used in the "turducken" paper. This includes some spline blending from Erik and the most recent method of filling in the interior using an elliptic equation with the "good" points as boundary values. This method uses a conjugate gradient solver (built in), that should be robust (i.e. it should always work) but may not be the fastest. However, since this is only done on initial data this shouldn't be an issue. The elliptic method currently support a second order, fourth order and sixth order equation, that will give C0, C1 and C2 solutions, respectively, across the boundary of the fill in region. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/NoExcision/trunk@7 4ec1db94-0e4f-0410-ada3-8bed251432c9
Diffstat (limited to 'schedule.ccl')
-rw-r--r--schedule.ccl145
1 files changed, 144 insertions, 1 deletions
diff --git a/schedule.ccl b/schedule.ccl
index ac7b7b1..54d402b 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -1,7 +1,150 @@
# Schedule definitions for thorn NoExcision
# $Header$
-SCHEDULE NoExcision_Overwrite AT initial AFTER (ADMBase_InitialData ADMBase_InitialGauge)
+SCHEDULE NoExcision_Overwrite IN ADMBase_PostInitial
{
LANG: Fortran
} "Overwrite regions with Minkowski"
+
+if (CCTK_Equals(method,"new")) {
+ schedule NoExcision_SetSym at CCTK_BASEGRID
+ {
+ LANG: Fortran
+ } "Register the symmetries for the conjugate gradient functions."
+}
+
+if (smooth_regions) {
+ if (CCTK_Equals(method,"old")) {
+ SCHEDULE NoExcision_Smooth IN ADMBase_PostInitial AFTER NoExcision_Overwrite
+ {
+ LANG: Fortran
+ } "Smooth regions"
+ } else {
+
+ SCHEDULE GROUP NoExcision_CGSmoothing IN ADMBase_PostInitial
+ {
+ STORAGE: cg_res_metric, cg_res_curv, cg_res_shift, cg_res_lapse
+ STORAGE: cg_d_metric, cg_d_curv, cg_d_shift, cg_d_lapse
+ STORAGE: cg_q_metric, cg_q_curv, cg_q_shift, cg_q_lapse
+ STORAGE: cg_red_all
+ STORAGE: smask
+ STORAGE: loop_control
+
+ } "Conjugate Gradient smoothing"
+
+ SCHEDULE NoExcision_CGInit_1 IN NoExcision_CGSmoothing
+ {
+ LANG: Fortran
+ } "Initialise the conjugate gradient method 1"
+
+ SCHEDULE NoExcision_CGApplySym AS NoExcision_CGApplySym_p1 IN NoExcision_CGSmoothing AFTER NoExcision_CGInit_1
+ {
+ LANG: Fortran
+ SYNC: cg_d_metric
+ SYNC: cg_d_curv
+ SYNC: cg_d_shift
+ SYNC: cg_d_lapse
+ SYNC: cg_res_metric
+ SYNC: cg_res_curv
+ SYNC: cg_res_shift
+ SYNC: cg_res_lapse
+ SYNC: cg_red_all
+ } "Select variables for boundary conditions 1"
+
+ SCHEDULE GROUP ApplyBCs AS NoExcision_CGApplyBCs_p1 IN NoExcision_CGSmoothing AFTER NoExcision_CGApplySym_p1
+ {
+ } "Apply boundary conditions (Symmetries) 1"
+
+ SCHEDULE NoExcision_CGInit_2 IN NoExcision_CGSmoothing AFTER NoExcision_CGApplySym_p1
+ {
+ LANG: Fortran
+ OPTIONS: level
+ } "Initialise the conjugate gradient method 2"
+
+ SCHEDULE GROUP NoExcision_Smoothing IN NoExcision_CGSmoothing AFTER NoExcision_CGInit_2 while NoExcision::loop_control
+ {
+ } "Smooth regions"
+
+ SCHEDULE NoExcision_CG_1 IN NoExcision_Smoothing
+ {
+ LANG: Fortran
+ } "Conjugate gradients step 1"
+
+ SCHEDULE NoExcision_CGApplySym AS NoExcision_CGApplySym_p2 IN NoExcision_Smoothing AFTER NoExcision_CG_1
+ {
+ LANG: Fortran
+ SYNC: cg_q_metric
+ SYNC: cg_q_curv
+ SYNC: cg_q_shift
+ SYNC: cg_q_lapse
+ SYNC: cg_red_all
+ } "Select variables for boundary conditions 2"
+
+ SCHEDULE GROUP ApplyBCs AS NoExcision_CGApplyBCs_p2 IN NoExcision_Smoothing AFTER NoExcision_CGApplySym_p2
+ {
+ } "Apply boundary conditions (Symmetries) 2"
+
+ SCHEDULE NoExcision_CG_2 IN NoExcision_Smoothing AFTER NoExcision_CG_1
+ {
+ LANG: Fortran
+ OPTIONS: level
+ } "Conjugate gradients step 2"
+
+ SCHEDULE NoExcision_CG_3 IN NoExcision_Smoothing
+ {
+ LANG: Fortran
+ } "Conjugate gradients step 3"
+
+ SCHEDULE NoExcision_CGApplySym AS NoExcision_CGApplySym_p3 IN NoExcision_Smoothing AFTER NoExcision_CG_3
+ {
+ LANG: Fortran
+ SYNC: cg_res_metric
+ SYNC: cg_res_curv
+ SYNC: cg_res_shift
+ SYNC: cg_res_lapse
+ SYNC: metric
+ SYNC: curv
+ SYNC: shift
+ SYNC: lapse
+ SYNC: cg_red_all
+ } "Select variables for boundary conditions 3"
+
+ SCHEDULE GROUP ApplyBCs AS NoExcision_CGApplyBCs_p3 IN NoExcision_Smoothing AFTER NoExcision_CGApplySym_p3
+ {
+ } "Apply boundary conditions (Symmetries) 3"
+
+ SCHEDULE NoExcision_CG_4 IN NoExcision_Smoothing AFTER NoExcision_CG_1
+ {
+ LANG: Fortran
+ OPTIONS: level
+ } "Conjugate gradients step 4"
+
+ SCHEDULE NoExcision_CG_5 IN NoExcision_Smoothing
+ {
+ LANG: Fortran
+ } "Conjugate gradients step 5"
+
+ SCHEDULE NoExcision_CGApplySym AS NoExcision_CGApplySym_p4 IN NoExcision_CGSmoothing AFTER NoExcision_CG_5
+ {
+ LANG: Fortran
+ SYNC: cg_d_metric
+ SYNC: cg_d_curv
+ SYNC: cg_d_shift
+ SYNC: cg_d_lapse
+ } "Select variables for boundary conditions 4"
+
+ SCHEDULE GROUP ApplyBCs AS NoExcision_CGApplyBCs_p4 IN NoExcision_CGSmoothing AFTER NoExcision_CGApplySym_p4
+ {
+ } "Apply boundary conditions (Symmetries) 4"
+ }
+}
+
+#SCHEDULE NoExcision_OverwriteBSSN AT poststep
+#{
+# LANG: Fortran
+#} "Overwrite regions with Minkowski"
+
+SCHEDULE NoExcision_Reduce IN MoL_PostRHS
+{
+ LANG: C
+} "Reduce RHS"