MathGroup Archive 1997

[Date Index] [Thread Index] [Author Index]

Search the Archive

Kronecker Delta


Dear Group,

Almost a week I try to find solution to the problem, which seems 
rather simple from the first view. But now I am not sure the 
solution exist at all. In  particular I wish to implement usual 
properties of Kronecker delta function, which manipulates on indices.
Namely, it should replace *all* indices A with index B if KD[A,B] 
appears inside Times. Obvious solution:

KD/: Literal[Times[any_,KD[A_,B_]]]:=ReplaceAll[Times[any],A->B]/;Not[
FreeQ[Times[any],A,Infinity]]

is wrong, because there can be more than two dummy indices. To make
things clear I should say that I am working on the SU(2) manifold, 
where summation over index C like:

D_{C,_}*ClebschGordan[{j1_,C},{_},{_}]*(-1)^C 

is natural. Here D_{} stands for Wigner D matrix.
This additional phase (which sometimes appears but sometimes not)
makes things quite complicated. For example at least in one case the 
code above is incorrect:

Times[(-1)^A,Plus[D_{A,_}*KD[A,B],any]].

It is clear that the code will leave (-1)^A unchanged. It seems, that 
to do correct substitution I always need to know all expression, but 
not a part. Of course, I can always define additional function, say 
EliminateKD, and apply to all expression. Bu this is bad solution, 
because KD appears in various stages of calculations. So I should 
continuosly apply the function.

Any ideas?



                                     
Arturas Acus
Institute of Theoretical
Physics and Astronomy
Gostauto 12, 2600,Vilnius
Lithuania 


E-mail: acus at itpa.lt
   Fax: 370-2-225361
   Tel: 370-2-612906


  • Prev by Date: Re: How do you make Mma assume a parameter is real
  • Next by Date: Re: Re: bug in Mathematica 3.0 ?
  • Previous by thread: Re: How do you make Mma assume a parameter is real
  • Next by thread: Re: Re: bug in Mathematica 3.0 ?