aboutsummaryrefslogtreecommitdiff
path: root/m
diff options
context:
space:
mode:
authorPeter Diener <diener@cct.lsu.edu>2010-05-05 16:29:12 -0500
committerPeter Diener <diener@cct.lsu.edu>2010-05-05 16:29:12 -0500
commit18fac7798ad3edc8c00f922b3b3d372dcb8b20f7 (patch)
treee8e59b8516ef07b3e1fdaf3d8a8656c45480fc01 /m
parent62d9d30ff0ce10b2650bae9e15969029d2711d4b (diff)
Reintroduce an optimization.
Reintroduce an optimization in the evolution calculation, that was previously only introduced in the hand split optimised calculation. Signed-off-by: Peter Diener <diener@cct.lsu.edu>
Diffstat (limited to 'm')
-rw-r--r--m/McLachlan_BSSN.m21
1 files changed, 12 insertions, 9 deletions
diff --git a/m/McLachlan_BSSN.m b/m/McLachlan_BSSN.m
index fdc786a..19e61d8 100644
--- a/m/McLachlan_BSSN.m
+++ b/m/McLachlan_BSSN.m
@@ -595,7 +595,8 @@ evolCalc =
Where -> InteriorNoSync,
Shorthands -> {dir[ua],
detgt, gtu[ua,ub],
- Gt[ua,lb,lc], Xtn[ua], Rt[la,lb], Rphi[la,lb], R[la,lb],
+ Gt[ua,lb,lc], Gtl[la,lb,lc], Gtlu[la,lb,uc], Xtn[ua],
+ Rt[la,lb], Rphi[la,lb], R[la,lb],
Atm[ua,lb], Atu[ua,ub],
e4phi, em4phi, cdphi[la], cdphi2[la,lb], g[la,lb], detg,
gu[ua,ub], Ats[la,lb], trAts, eta, theta,
@@ -610,9 +611,11 @@ evolCalc =
(* This leads to simpler code... *)
gtu[ua,ub] -> 1/detgt detgtExpr MatrixInverse [gt[ua,ub]],
- Gt[ua,lb,lc] -> 1/2 gtu[ua,ud]
- (PD[gt[lb,ld],lc] + PD[gt[lc,ld],lb] - PD[gt[lb,lc],ld]),
-
+ Gtl[la,lb,lc] -> 1/2
+ (PD[gt[lb,la],lc] + PD[gt[lc,la],lb] - PD[gt[lb,lc],la]),
+ Gtlu[la,lb,uc] -> gtu[uc,ud] Gtl[la,lb,ld],
+ Gt[ua,lb,lc] -> gtu[ua,ud] Gtl[ld,lb,lc],
+
(* The conformal connection functions calculated from the conformal metric,
used instead of Xt where no derivatives of Xt are taken *)
Xtn[ui] -> gtu[uj,uk] Gt[ui,lj,lk],
@@ -621,11 +624,11 @@ evolCalc =
Rt[li,lj] -> - (1/2) gtu[ul,um] PD[gt[li,lj],ll,lm]
+ (1/2) gt[lk,li] PD[Xt[uk],lj]
+ (1/2) gt[lk,lj] PD[Xt[uk],li]
- + (1/2) Xtn[uk] gt[li,ln] Gt[un,lj,lk]
- + (1/2) Xtn[uk] gt[lj,ln] Gt[un,li,lk]
- + gtu[ul,um] (+ Gt[uk,ll,li] gt[lj,ln] Gt[un,lk,lm]
- + Gt[uk,ll,lj] gt[li,ln] Gt[un,lk,lm]
- + Gt[uk,li,lm] gt[lk,ln] Gt[un,ll,lj]),
+ + (1/2) Xtn[uk] Gtl[li,lj,lk]
+ + (1/2) Xtn[uk] Gtl[lj,li,lk]
+ + (+ Gt[uk,li,ll] Gtlu[lj,lk,ul]
+ + Gt[uk,lj,ll] Gtlu[li,lk,ul]
+ + Gt[uk,li,ll] Gtlu[lk,lj,ul]),
fac1 -> IfThen [conformalMethod, -1/(2 phi), 1],
cdphi[la] -> fac1 CDt[phi,la],