itensor and ctensor: indexed objects in moving frames in specific coordinate systems and frame basis



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