1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* 1920x1080 - HD screen */
linel: 230;
/* 3840x1600 - Ultrawide screen */
linel: 470;
/* 1366x768 - Poor man's thinkpad */
linel: 150;
derivabbrev: true;
load("ctensor");
dim: 2;
cframe_flag: false;
ct_coords: [θ, ϕ];
lg : zeromatrix(2, 2);
/* dθ dθ */
lg[1, 1] : 1;
/* dϕ dϕ */
lg[2, 2] : sin(θ)^2;
/* Load metric and compute inverse */
cmetric();
/* mcs[i, j, k]: Christoffel symbols of the second kind (one upper index - k) */
christof(false);
depends(c, [u, θ]);
Ndown: zeromatrix(2, 2);
Ndown[1, 1] : 2*diff(c, u);
Ndown[2, 2] : -2*diff(c, u)*sin(θ)^2;
f(m, n) := sum(ug[m, a] * sum(ug[n, b] * Ndown[a, b], b, 1, 2), a, 1, 2);
Nup: zeromatrix(2, 2);
for i: 1 thru 2 do for j: 1 thru 2 do Nup[i, j]: f(i, j);
X: sum(sum(Nup[A,B]*Ndown[A,B], A, 1, 2), B, 1, 2);
Q: zeromatrix(2, 1);
for i: 1 thru 2 do Q[i]: sum(diff(Nup[i,B], θ)
+ sum(mcs[B, D, i] * Nup[D, B], D, 1, 2)
+ sum(mcs[B, D, B] * Nup[i, D], D, 1, 2), B, 1, 2);
Y: diff(Q[1], θ) + sum(sum(mcs[A, B, A], A, 1, 2) * Q[B], B, 1, 2),expand;
/* M_u */
- (1/8)*X + (1/4)*Y,expand;
|