itensor and ctensor: indexed objects in moving frames in specific coordinate systems and frame basis
- Subject: itensor and ctensor: indexed objects in moving frames in specific coordinate systems and frame basis
- From: Viktor T. Toth
- Date: Tue, 8 Feb 2011 14:39:04 -0500
I think the only step missing is an evaluation of ifb before converting to a
ctensor expression. Try this:
load(itensor);
load(ctensor);
iframe_flag:true;
cframe_flag:true;
ct_coordsys(polar)$
depends([V,ifg,ifr,ifri],ct_coords)$
ishow(covdiff(V([],[j]),j))$
ishow(ev(%,icc2,ifc2,ifc1,ifb))$
eqn:eq=%$
ceqn:ic_convert(eqn)$
ev(ceqn);
A word of warning: Presently, ic_convert has no explicit knowledge about the
meaning of the symbols ifg, ifr, and ifri. It just treats them as it would
treat any other indexed objects. In the present example, it is not relevant
as the symbols cancel; in other cases, however, you may need to take steps
to identify the itensor symbols ifr, ifri, and ifg with the corresponding
ctensor matrices fri, ifri, and lfg/ufg as appropriate.
Viktor
-----Original Message-----
From: maxima-bounces at math.utexas.edu [mailto:maxima-bounces at math.utexas.edu]
On Behalf Of Yaroslav Alekseev
Sent: Tuesday, February 08, 2011 2:38 PM
To: maxima at math.utexas.edu
Subject: itensor and ctensor: indexed objects in moving frames in
specific coordinate systems and frame basis
Hi to all! I need to learn how to compute various expressions with indexed
objects in moving frames
in specific coordinate systems and frame basis. For example: to compute
contract(covdiff(V([],[j]),j))
in polar coordinate and frame
basis:matrix([a(r,phi),b(r,phi)],[c(r,phi),d(r,phi)]). In Maxima:
Maxima 5.23.2 http://maxima.sourceforge.net
using Lisp SBCL 1.0.43
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) kill(all);
(%o0) done
(%i1) load(itensor);
STYLE-WARNING: redefining MAXIMA::$NAME in DEFUN
STYLE-WARNING: redefining MAXIMA::DERIV in DEFUN
STYLE-WARNING: redefining MAXIMA::SDIFF in DEFUN
STYLE-WARNING: redefining MAXIMA::I-$DEPENDENCIES in DEFUN
STYLE-WARNING: redefining MAXIMA::$DECSYM in DEFUN
STYLE-WARNING: redefining MAXIMA::$CANFORM in DEFUN
(%o1) /usr/local/share/maxima/5.23.2/share/tensor/itensor.lisp
(%i2) load(ctensor);
(%o2) /usr/local/share/maxima/5.23.2/share/tensor/ctensor.mac
(%i3) iframe_flag:true;
(%o3) true
(%i4) ishow(covdiff(V([],[j]),j));
j j %1
(%t4) V + icc2 V
,j %1 j
(%o4) V([], [j], j) + icc2([%1, j], [j]) V([], [%1])
(%i5) ishow(ev(%,icc2));
%1 j j
(%t5) V ifc2 + V
%1 j ,j
(%o5) V([], [%1]) ifc2([%1, j], [j]) + V([], [j], j)
(%i6) ishow(ev(%,ifc2,ifc1));
%1 j %2
V ifg (ifb - ifb + ifb )
j %2 %1 %2 %1 j %1 j %2 j
(%t6) -------------------------------------------------- + V
2 ,j
(%o6) (V([], [%1]) ifg([], [j, %2]) (ifb([j, %2, %1]) - ifb([%2, %1, j])
+ ifb([%1, j, %2])))/2 + V([],
[j], j)
(%i7) expr:contract(ratexpand(%));
V([], [%1]) ifg([], [j, %2]) ifb([j, %2, %1], [])
(%o7) -------------------------------------------------
2
V([], [%1]) ifg([], [j, %2]) ifb([%2, %1, j], [])
- -------------------------------------------------
2
V([], [%1]) ifg([], [j, %2]) ifb([%1, j, %2], [])
+ ------------------------------------------------- + V([], [j], j)
2
(%i8) ishow(expr);
%1 j %2 %1 j %2 %1 j %2
V ifg ifb V ifg ifb V ifg ifb
j %2 %1 %2 %1 j %1
j %2
(%t8) ---------------------- - ---------------------- +
----------------------
2 2 2
j
+
V
,j
V([], [%1]) ifg([], [j, %2]) ifb([j, %2, %1], [])
(%o8) -------------------------------------------------
2
V([], [%1]) ifg([], [j, %2]) ifb([%2, %1, j], [])
- -------------------------------------------------
2
V([], [%1]) ifg([], [j, %2]) ifb([%1, j, %2], [])
+ ------------------------------------------------- + V([], [j], j)
2
(%i9) eqn:ishow(eq=expr);
%1 j %2 %1 j %2
V ifg ifb V ifg ifb
j %2 %1 %2 %1 j
(%t9) eq = ---------------------- - ----------------------
2 2
%1 j %2
V ifg ifb
%1 j
%2 j
+ ----------------------
+ V
2
,j
V([], [%1]) ifg([], [j, %2]) ifb([j, %2, %1], [])
(%o9) eq = -------------------------------------------------
2
V([], [%1]) ifg([], [j, %2]) ifb([%2, %1, j], [])
- -------------------------------------------------
2
V([], [%1]) ifg([], [j, %2]) ifb([%1, j, %2], [])
+ ------------------------------------------------- + V([], [j], j)
2
(%i10) ceqn:ic_convert(eqn);
STYLE-WARNING: redefining MAXIMA::$IC_CONVERT in DEFUN
STYLE-WARNING: redefining MAXIMA::$MAKEBOX in DEFUN
STYLE-WARNING: redefining MAXIMA::$CONMETDERIV in DEFUN
STYLE-WARNING: redefining MAXIMA::$IGEODESIC_COORDS in DEFUN
(%o10) eq :
sum(sum(sum(V ifg ifb , %1, 1, dim), %2, 1, dim), j, 1, dim)
%1 j, %2 j, %2, %1
---------------------------------------------------------------------------
2
sum(sum(sum(V ifg ifb , %1, 1, dim), %2, 1, dim), j, 1,
dim)
%1 j, %2 %2, %1, j
-
---------------------------------------------------------------------------
2
sum(sum(sum(V ifg ifb , %1, 1, dim), %2, 1, dim), j, 1,
dim)
%1 j, %2 %1, j, %2
+
---------------------------------------------------------------------------
2
+ sum(diff(V , ct_coords ), j, 1, dim)
j j
(%i11) ct_coordsys(polar);
(%o11) done
(%i12) depends(V,ct_coords);
(%o12) [V(r, phi)]
(%i13) ev(ceqn);
d d
(%o13) ---- (V ) + -- (V ) + (V ifg ifb + V ifg ifb
dphi 2 dr 1 2 2, 2 2, 2, 2 1 2, 2 2, 2, 1
+ V ifg ifb + V ifg ifb + ifg ifb V
2 2, 1 2, 1, 2 1 2, 1 2, 1, 1 1, 2 1, 2, 2 2
+ ifg ifb V + V ifg ifb + V ifg ifb )/2
1, 1 1, 1, 2 2 1 1, 2 1, 2, 1 1 1, 1 1, 1, 1
+ (V ifg ifb + V ifg ifb + V ifb ifg
2 2, 2 2, 2, 2 2 2, 1 2, 2, 1 1 1, 2, 2 2, 2
+ ifg V ifb + ifg V ifb + V ifb ifg
1, 2 2 2, 1, 2 1, 1 2 2, 1, 1 1 1, 2, 1 2, 1
+ V ifb ifg + V ifg ifb )/2
1 1, 1, 2 1, 2 1 1, 1 1, 1, 1
- (V ifg ifb + ifg V ifb + V ifb ifg
2 2, 2 2, 2, 2 1, 2 2 2, 2, 1 1 2, 1, 2 2, 2
+ V ifg ifb + ifb V ifg + V ifb ifg
1 1, 2 2, 1, 1 1, 2, 2 2 2, 1 1 1, 1, 2 2, 1
+ ifg ifb V + V ifg ifb )/2
1, 1 1, 2, 1 2 1 1, 1 1, 1, 1
(%i14)
What should I do next ?
--
Yaroslav
_______________________________________________
Maxima mailing list
Maxima at math.utexas.edu
http://www.math.utexas.edu/mailman/listinfo/maxima