aboutsummaryrefslogtreecommitdiff
path: root/bondi.mac
blob: 6712043073b1f336b335dfeafa1dd03c607862e7 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* 1920x1080 - HD screen */
linel: 230;
/* 3840x1600 - Ultrawide screen */
linel: 470;
/* 1366x768 - Poor man's thinkpad */
linel: 150;

/* 3840x1600 - Ultrawide screen with work on side */
linel: 350;

derivabbrev: true;

load("ctensor");

dim: 4;
cframe_flag: false;
ct_coords: [u, r, θ, ϕ];

depends([U, V, β, γ], [u, r, θ]);

lg : zeromatrix(4, 4);
/* du du */
lg[1, 1] : V * r^-1 * exp(2 * β) - U^2 * r^2 * exp(2 * γ);

/* du dr */
lg[1, 2] : exp(2 * β);
lg[2, 1] : exp(2 * β);

/* du dθ */
lg[1, 3] : U * r^2 * exp(2 * γ);
lg[3, 1] : U * r^2 * exp(2 * γ);

/* dθ dθ */
lg[3, 3] : - r^2 * exp(2 * γ);

/* dϕ dϕ */
lg[4, 4] : - r^2 * exp(- 2 * γ) * sin(θ)^2;

/* Load metric and compute inverse */
cmetric();

/* Force simplification of some expressions */
ug[2,2] : expand(ug[2,2]),simp;

/* mcs[i, j, k]: Christoffel symbols of the second kind (one upper index - k) */
christof(false);
/* ric[i, j]: R_ab Ricci tensor*/
ricci(false);
/* uric[i, j]: R^a_b Ricci tensor */
uricci(false);

/* Bondi - Eq. 17 */
sum(sum(ug[α, ε] * mcs[α, ε, 1], ε, 1, 4), α, 1, 4),expand;

/** General utilities **/
exp_taylor(x) := subst(t=x, taylor(exp(t), t, 0, 3));

/** Main equations **/

/* Main equations, Bondi - Eqs. 22 - 25 */
eq1 : ric[2, 2] = 0, expand;
eq2 : - 2 * r^2 * ric[2, 3] = 0, expand;
eq3 : ric[3, 3] * exp(2 * (β - γ)) - r^2 * uric[4, 4] * exp(2 * β) = 0, expand;
eq4 : - uric[4, 4] * exp(2 * β) * r^2 = 0, expand;

depends([H], [u, θ]);
depends([γ1, γ2, γ3, γ4], [u, θ]);
depends([β1, β2, β3, β4], [u, θ]);
depends([U1, U2, U3, U4], [u, θ]);
depends([VV1, V0, V1, V2, V3, V4], [u, θ]);

ansatz: [γ = γ1*r^-1 + γ2*r^-2 + γ3*r^-3 + γ4*r^-4,
         β = H + β1*r^-1 + β2*r^-2 + β3*r^-3 + β4*r^-4,
         U = U1*r^-1 + U2*r^-2 + U3*r^-3 + U4*r^-4,
         V = VV1*r + V0 + V1*r^-1 + V2*r^-2 + V3*r^-3 + V4*r^-4];

/* Derive β from eq1; Replace in eq1 -> β2 = - γ1^2 / 4, β1 = 0*/
tmp: combine(ev(subst(ansatz, eq1),derivlist(r),expand));
/* Solve for β_1 */
solve(coeff(tmp, 1/r, 3), β1);
/* Solve for β_2 */
solve(coeff(tmp, 1/r, 4), β2);

matchdeclare (nn, lambda ([e], not is(equal(listofvars(e), [H]))));
defrule (r1, %e^nn, (partition(nn, H), exp_taylor(first(%%)) * exp(second(%%))));

/* Derive U from eq2 */
tmp: combine(ev(apply1(subst(ansatz, eq2), r1),derivlist(r,θ),expand))$
/* Solve for U_1 */
solve(coeff(tmp, r, 1), U1);


/* Derive V from eq2 */
append(ansatz, [U1=2*diff(H,θ)*exp(2*H)]);
tmp: combine(ev(apply1(subst(%, eq3), r1),derivlist(r,θ),expand))$
/* Solve for V_{-1} */
solve(coeff(tmp, r, 0), VV1),expand;


/* subst(ansatz, eq4),derivlist(r,θ),expand; */


/** Supplementary conditions **/
depends([c, C, N, M], [u, θ]);

ansatz: [γ = c*r^-1 + (C - c^3/6)*r^-3,
         β = -(1/4)*c^2*r^-2,
         U = -(diff(c,θ) + 2*c*cot(θ))*r^-2
             + (2*N + 3*c*diff(c,θ) + 4*c^2*cot(θ))*r^-3
             + (1/2)*(3*diff(C,θ) + 6*C*cot(θ) - 6*c*N - 8*c^2*diff(c,θ)
               - 8*c^3*cot(θ))*r^-4,
         V = r - 2*M
             - (diff(N,θ) + N*cot(θ) - diff(c,θ)^2 - 4*c*diff(c,θ)*cot(θ)
               - c^2*(1 + 8*cot(θ)^2)/2)*r^-1
             - (1/2)*(diff(C,θ,2) + 3*diff(C,θ)*cot(θ) - 2*C
               + 6*N*(diff(c,θ) + 2*c*cot(θ)) + 8*c*(diff(c,θ)^2 + 3*c*diff(c,θ)
               + 2*c^2*cot(θ)^2))*r^-2];

C_u: (2*c^2 + 2*c*M + N*cot(θ) - diff(N,θ)) / 4;

matchdeclare (mm, lambda ([e], true));
defrule (r2, %e^mm, exp_taylor(mm));

/* Mass loss formula, Bondi - Eq. 35 */
tmp: combine(ev(subst(ansatz, ric[1,1]),derivlist(u,r,θ),expand))$
distrib(trigsimp(first(solve(coeff(%, 1/r, 2)=0, diff(M,u))))),expand$
sup_cond1: substpart(trigreduce(part(%, 2, 1)), %, 2, 1);

/* Bondi - Eq. 36  */
tmp: combine(ev(subst(ansatz, ric[1,3]),derivlist(u,r,θ),expand))$
combine(expand(apply1(tmp, r2)))$
sup_cond2: -solve(coeff(%, 1/r, 2)=0, 3*diff(N,u));