another poster / vect.mac



Hi Rob,
Just below your examples.  Not everything is in simplified form.
Sorry I did not find your original message (it's probably in my home box).
(C1) load("use.mc");
(D1) 				    use.mc
(C2) bothcases:false;
(D2) 				     FALSE
(C3) load("itensor");
(D3) 	 /usr/local/share/maxima/5.9.0.1cvs/share/tensor/itensor.lisp
(C4) dummyx:U;
(D4) 				       U
(C5) DIM:3;
(D5) 				       3
(C6) allsym:false;
(D6) 				     FALSE
(C7) declare(lch,constant);
(D7) 				     DONE
(C8) DECSYM(lch,0,3,[],[CYC(ALL),ANTI(ALL)]);
(D8) 				     DONE
(C9) DECSYM(lch,3,0,[CYC(ALL),ANTI(ALL)],[]);
(D9) 				     DONE
(C10) ("curl u cross v")$
(C11) expr : lch([],[i,j,k])*diff(lch([k,l,m],[])*u([],[l])*v([],[m]),j);
(D11) LCH([], [I, J, K]) (U([], [L]) V([], [M], J) LCH([K, L, M], [])

				 + U([], [L], J) V([], [M]) LCH([K, L, M], []))
(C12) show(canform(contract(canform(trftkdt(expand(expr))))))$
		     I  U1     I  U1	 I    U1    I	 U1
(D12) 		    U  V    - V  U    + U    V   - V    U
			,U1	  ,U1	 ,U1	    ,U1
(C13) ("let use the Euqlid metric then covdiff == diff")$
(C14) ("div(u cross v) ")$
(C15) show(diff(lch([k,l,m],[])*u([],[l])*v([],[m]),k))$
			L  M		  L   M
(D15) 		       U  V   LCH      + U   V  LCH
			   ,K	 K/L/M	  ,K	   K/L/M
(C16) ("grad(u dot v)")$
(C17) show(diff(u([i],[])*v([],[i]),j))$
				I	  I
(D17) 			       V  U    + V   U
				   I,J	  ,J  I
(C18) ("grad(u dot v)")$
(C19) show(diff(u([],[i])*v([],[i]),j))$
				 I  I	  I  I
(D19) 			        U  V   + V  U
				    ,J	     ,J
(C20) ("Tensor dyad vv")$
(C21) show( v([],[i])*v([],[j]))$
				      I	 J
(D21) 				     V  V
(C22) ("u dot vv")$
(C23) show(u([i],[])*v([],[i])*v([],[j]))$
				    I  J
(D23) 				   V  V  U
					  I
(C24) ("curl (u dot vv)")$
(C25) expr1: canform(diff(lch([l,k,j],[])*u([i],[])*v([],[i])*v([],[j]),k))$
(C26) show( expr1)$
        U2  U3			   U2  U3
(D26) V	  V   LCH        U      + V   V	   LCH	      U
		 L/U1/U2  U3,U1	       ,U1    L/U1/U2  U3

							 U2   U3
						      + V    V   LCH	    U
							 ,U1	    L/U1/U2  U3
(C27) ("u cross div(vv)")$
(C28) expr2: 
canform(expand(lch([l,k,j],[])*u([],[k])*diff(v([],[i])*v([],[j]),i)))$
(C29) show(expr2)$
		U1  U2  U3		  U1  U2   U3
(D29) 	       U   V   V    LCH	       + U   V	  V   LCH
			,U3    L/U1/U2	      ,U3	 L/U1/U2
(C30) ("curl (u dot vv) - u cross div(vv)" )$
(C31) show(canform(expr1-expr2))$
        U2  U3			   U2  U3
(D31) V	  V   LCH        U      + V   V	   LCH	      U
		 L/U1/U2  U3,U1	       ,U1    L/U1/U2  U3

      U2	  U3		       U1  U2  U3		 U1  U2	  U3
   + V    V   LCH        U   - U	  V   V	   LCH	      - U   V    V   LCH
      ,U1        L/U1/U2	 U3	       ,U3    L/U1/U2	     ,U3 
                         L/U1/U2
(C32)

On Thu, 6 Mar 2003 00:55:52 -0500 (EST)
Rob McDonald <gte398s@asdl.gatech.edu> wrote:
<skipped>
 > Also, if you could reveal the method by which you came up with this
 > sequence of simplifying commands, it would be appretiated.
 >
 > SHOW(CANFORM(CONTRACT(CANFORM(TRFTKDT(EXPAND(EXPR))))))
the key function here is TRFTKDT() that is defined in use.mac.
It transforms the product of the defined Levi-Chevitta symbols to
kdelta. Note, my definition of Levi-Chevitta symbol has not got a 
property like lch([i,j,k],[])*v([],[j])*v([],[k])==0.
Also to ipmpose the Lorentz gauge (divergency free field) use
lorentz(expr). I cannot propose the similar for condition curl v =0.
Actually curl exist only for 3d. It make sence to formulate the problem
in covariant form and then attack it with itensor.

best regards

Valerij