aboutsummaryrefslogtreecommitdiff
path: root/sphere.mac
blob: b58cd577227255ae8c9e94a5ca17f10a4bf54621 (plain)
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;