Rename *ll* and *ul* to ll and ul in in-interval
[maxima.git] / share / tensor / reissner.dem
blobc807e0a251cf8d54e62d072ff45b97ec29fe6c5e
1 /* Copyright (C) 2004 Viktor T. Toth <http://www.vttoth.com/>
2  *
3  * This program is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU General Public License as
5  * published by the Free Software Foundation; either version 2 of
6  * the License, or (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be
9  * useful, but WITHOUT ANY WARRANTY; without even the implied
10  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  * PURPOSE.  See the GNU General Public License for more details.
12  *
13  * MAXIMA CTENSOR demo: Proving that the Reissner-Nordstrom metric
14  * is that of a point charge.
15  *
16  */
20 Verify that the Reissner-Nordstrom metric is that of a point charge.
21 First, we load ctensor...")$
22 if get('ctensor,'version)=false then load(ctensor);
23 ("We also need NCHRPL that contains the MATTRACE function:")$
24 load(nchrpl);
25 ("Now we set up the metric with (+,-,-,-) signature:")$
26 dim:4;
27 ct_coords:[t,r,o,f];
28 lg:matrix([(r^2+4*%pi*q^2-2*m*r)/r^2,0,0,0],[0,r^2/(2*m*r-r^2-4*%pi*q^2),0,0],[0,0,-r^2,0],[0,0,0,-r^2*sin(o)^2]);
29 ug:ratsimp(invert(lg));
30 ("Next, we compute the Christoffel-symbols:")$
31 christof(false);
32 ("Predefine Ricci & Einstein tensors as matrices for later use:")$
33 ric:lein:ident(4)$
34 ricci(false);
35 leinstein(false);
37 ("Part II: we set up the electromagnetic 4-potential:")$
38 a:[q/r,0,0,0];
39 ("From which we compute the covariant electromagnetic field tensor:")$
40 fl:ident(4)$
41 for i thru dim do for j thru dim do fl[i,j]:diff(a[i],ct_coords[j])-diff(a[j],ct_coords[i]);
42 ("We can now obtain the mixed and contravariant EM field tensors:")$
43 fm:ug.fl;
44 fu:fm.ug;
45 ("And now we can compute the stress-energy tensor (times 8*%pi).")$
46 t:ratsimp(8*%pi*(fl.fm-lg*mattrace(fl.fu)/4));
47 ("This and the covariant Einstein tensor should be identical:")$
48 ratsimp(lein-t);
50 /* End of demo -- comment line needed by MAXIMA to resume demo menu */