From: Viktor T. <vt...@us...> - 2004-12-22 22:20:06
|
Update of /cvsroot/maxima/maxima/share/tensor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24588 Modified Files: iframe.mac itensor9.dem Log Message: Corrections to the frame base implementation Index: iframe.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/iframe.mac,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- iframe.mac 17 Dec 2004 22:00:41 -0000 1.6 +++ iframe.mac 22 Dec 2004 22:19:40 -0000 1.7 @@ -36,13 +36,20 @@ * 'ifb([l[1],l[2]],[i])*_g([i,l[3]],[]))/2; */ /* The frame bracket */ -ifb(l1,l2,[ld]):= - if ld#[] then apply('idiff,cons(ifb(l1,l2),rest((?putinones)(ld)))) - else block([e:idummy(),f:idummy()], - if iframe_bracket_form=true then 'ifr([l1[1]],[e])*('ifri([e],l2,f)- - 'ifri([f],l2,e))*'ifr([l1[2]],[f]) - else 'ifri([e],l2)*('ifr([a],[f])*'ifr([b],[e],f)- - 'ifr([a],[e],f)*'ifr([b],[f])) +ifb(l,[ld]):=if length(ld)>0 and rest(ld)#[] then + apply('idiff,cons(ifb(l),rest((?putinones)(rest(ld))))) + else if length(ld)>0 and length(ld[1])>0 then + block([e:idummy()], + _g([],[e,ld[1][1]])*funmake(ifb,[append(l,[e]),rest(ld[1])]) + ) + else block([e:idummy(),f:idummy()], + if iframe_bracket_form or itorsion_flag then + 'ifr([l[2]],[e])*'ifr([l[1]],[f])* + ('ifri([l[3],e],[],f)-'ifri([l[3],f],[],e)- + _itr([e,f],[m])*ifri([m,l[3]],[]) + ) + else 'ifri([l[3],e],[])*('ifr([l[1]],[f])*'ifr([l[2]],[e],f)- + 'ifr([l[1]],[e],f)*'ifr([l[2]],[f])) ); /* The connection coefficients */ @@ -65,12 +72,11 @@ /* The frame coefficients */ ifc1(l,[ld]):=if length(ld)>0 and rest(ld)#[] then apply('idiff,cons(ifc1(l),rest((?putinones)(rest(ld))))) - else block([i:idummy()],_g([l[3],i],[])*'ifc2([l[1],l[2]],[l[3]])); -ifc2(l1,l2,[ld]):= - if ld#[] then apply('idiff,cons(ifc2(l1,l2),rest((?putinones)(ld)))) - else block([d:idummy(),e:idummy()],( - _g([],[l2[1],e])*(_g([d,l1[2]],[])*'ifb([l1[1],e],[d])- - _g([l1[1],d],[])*'ifb([e,l1[2]],[d]))-'ifb(l1,l2))/2); + else ('ifb(l)+'ifb([l[2],l[3],l[1]])-'ifb([l[3],l[1],l[2]]))/2; +ifc2(l1,l2,[ld]):=if length(ld)>0 then + apply('idiff,cons(ifc2(l1,l2),rest((?putinones)(ld)))) + else block([d:idummy()],_g([],[l2[1],d])*'ifc1([l1[1],l1[2],d])); + /* The nonmetricity coefficients */ inmc1(l,[ld]):=if not inonmet_flag then 0 @@ -98,7 +104,7 @@ decsym(ichr1,3,0,[sym(1,2)],[]); decsym(ichr2,2,1,[sym(all)],[]); decsym(icurvature,3,1,[anti(2,3)],[]); -decsym(ifb,2,1,[sym(all)],[]); +decsym(ifb,3,0,[sym(2,3)],[]); /* decsym(icc1,3,0,[sym(1,2)],[]); * decsym(icc2,2,1,[sym(all)],[]); * decsym(ifc1,3,0,[sym(1,2)],[]); Index: itensor9.dem =================================================================== RCS file: /cvsroot/maxima/maxima/share/tensor/itensor9.dem,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- itensor9.dem 10 Dec 2004 14:43:18 -0000 1.4 +++ itensor9.dem 22 Dec 2004 22:19:40 -0000 1.5 @@ -30,8 +30,8 @@ ishow(ifc2([i,j],[k]))$ ("The frame bracket has two definitions which are equivalent")$ -block([iframe_bracket_form:false],ishow(ifb([i,j],[k])))$ -block([iframe_bracket_form:true],ishow(ifb([i,j],[k])))$ +block([iframe_bracket_form:false],ishow(ifb([i,j,k])))$ +block([iframe_bracket_form:true],ishow(ifb([i,j,k])))$ ("To explore torsion, we set up a metric but no contraction properties")$ remcomps(g); @@ -67,7 +67,13 @@ ("And we're quite done")$ ishow(contract(exp))$ +("We can verify torsion in a frame base, too")$ +iframe_flag:true; +covdiff(v([i]),j)-covdiff(v([j]),i)$ +ishow(contract(canform(ev(%,icc2,ifc2,ifc1,ikt2,ikt1,ifg))))$ + ("Next, we verify the nonmetricity tensor")$ +iframe_flag:false; inonmet_flag:true; itorsion_flag:false; ("We need all the metric tensor's contraction properties")$ |