Kronecker Delta
- To: mathgroup at smc.vnet.net
- Subject: [mg7505] Kronecker Delta
- From: "Arturas Acus" <acus at itpa.lt>
- Date: Sat, 7 Jun 1997 03:48:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
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