File: ctensor8.dem

package info (click to toggle)
maxima 5.21.1-2squeeze
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 94,928 kB
  • ctags: 43,849
  • sloc: lisp: 298,974; fortran: 14,666; perl: 14,325; tcl: 10,494; sh: 4,052; makefile: 2,975; ansic: 471; awk: 24; sed: 7
file content (48 lines) | stat: -rw-r--r-- 1,704 bytes parent folder | download | duplicates (16)
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
/* Copyright (C) 2004 Viktor T. Toth <http://www.vttoth.com/>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be
 * useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * Demonstrate the use of Taylor series in CTENSOR
 *
 */

("Define a metric that is a perturbation of the Minkowski metric")$
if get('ctensor,'version)=false then load(ctensor);
ratfac:true;
derivabbrev:true;
ct_coords:[t,r,theta,phi];
lg:matrix([-1,0,0,0],[0,1,0,0],[0,0,r^2,0],[0,0,0,r^2*sin(theta)^2]);
h:matrix([h11,0,0,0],[0,h22,0,0],[0,0,h33,0],[0,0,0,h44]);
("Spherically symmetric metric depends on the scalar field l")$
depends(l,r);
lg:lg+l*h;
("First, we compute the Einstein tensor")$
cmetric(false);
("Be patient, this will take a while...")$
einstein(false);
("And it has far too many terms")$
ntermst(ein);
("Now let's drop terms higher order in l")$
ctayswitch:true;
ctayvar:l;
ctaypov:1;
ctaypt:0;
("We now explicitly recompute the Christoffel symbols and the Ricci tensor")$
christof(false);
ricci(false);
("So that we can recompute the Einstein tensor")$
einstein(false);
("Which now has far fewer terms:")$
ntermst(ein);
("The truncated terms are small enough for display")$
for i thru dim do (ein[i,i]:ratsimp(ein[i,i]),ldisplay(ein[i,i]));

/* End of demo -- comment line needed by MAXIMA to resume demo menu */