Fix typo in display-html-help
[maxima.git] / share / tensor / itensor6.dem
blob62e8751d83549d22ef465e3859616ddd4bdfb7fb
1 /* 
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License as
4  * published by the Free Software Foundation; either version 2 of
5  * the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be
8  * useful, but WITHOUT ANY WARRANTY; without even the implied
9  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
10  * PURPOSE.  See the GNU General Public License for more details.
11  *
12  * Covariant differentiation, curvature
13  */
14 if get('itensor,'version)=false then load(itensor);
16 ("Covariant differentiation is carried out relative to a metric")$
17 remcomps(g);
18 imetric(g);
20 ("We declare the metric's symmetry properties")$
21 decsym(g,2,0,[sym(all)],[]);
22 decsym(g,0,2,[],[sym(all)]);
24 ("MAXIMA can express both kinds of Christoffel symbols")$
25 ishow(ichr1([i,j,k]))$
26 ishow(ichr2([i,j],[k]))$
28 ("The covariant derivative uses the Christoffel symbols")$
29 ishow(covdiff(a([j,k],[i]),i))$
30 exp:ishow(canform(contract(expand(ev(%,ichr2)))))$
32 ("To drop first derivatives of the metric, use igeodesic_coords")$
33 ishow(igeodesic_coords(exp,g))$
35 ("Covariant derivatives of a vector do not commute")$
36 covdiff(v([],[i]),k,l)-covdiff(v([],[i]),l,k)$
37 comm:ishow(factor(canform(%)))$
39 ("The curvature tensor is the same as the commutator")$
40 curv:ishow(v([],[j])*icurvature([j,k,l],[i]))$
41 canform(comm-curv);
43 ("The function flush and relatives can drop derivative expressions")$
44 exp:u([i],[j,r],k,r)+a([i],[j,r,s],k,r,s)+b([i,k],[j,r],r)+u([i,k,r],[j,r])$
45 ishow(exp)$
46 ishow(flush(exp,u))$
47 ishow(flushd(exp,u,b))$
48 ishow(flushnd(exp,a,1))$
50 ("The function lorentz() can be used to remove divergence free terms")$
51 defcon(e,e,kdelta)$
52 defcon(e,p,p)$
53 defcon(p,e,p)$
54 decsym(e,0,2,[],[sym(all)]);
55 declare(e,constant);
56 (ratfac:false,ratvars(l),ratweight(l,1),ratwtlvl:1);
58 components(g([i,j],[]),e([i,j],[])+2*l*p([i,j],[]));
59 components(g([],[i,j]),e([],[i,j])-2*l*p([],[i,j]));
61 rinv:g([],[r,t])*icurvature([r,s,t],[s])$
62 ricci:g([],[i,r])*g([],[j,t])*icurvature([r,s,t],[s])$
63 -(ricci-1/2*rinv*g([],[i,j]))$
64 ishow(canform(rename(contract(ratexpand(ev(%))))))$
65 ishow(lorentz_gauge(%,p))$
67 ("The conmetderiv function relates derivatives of the metric tensor")$
68 ishow(q([],[a,b],c))$
69 ishow(conmetderiv(%,q))$
71 /* End of demo -- comment line needed by MAXIMA to resume demo menu */