LeviCivitaSimplify


Description

  • LeviCivitaSimplify simplifies combinations of Levi-Civita tensors.
  • LeviCivitaSimplify.euclidean[eps] simplifies combinations of Levi-Civita tensors (denoted as eps) assuming that space is Euclidean.
  • LeviCivitaSimplify.minkowski[eps] simplifies combinations of Levi-Civita tensors (denoted as eps) assuming that metric has signature {+, -, -, …}.
  • LeviCivitaSimplify works in arbitrary dimensions: if one specified e.g. tensor eps_{abcd} as Levi-Civita tensor (using e.g. LeviCivitaSimplify.euclidean['eps_{abcd}'.t] ) then space dimension will be considered equal to 4 (number of Levi-Civita indices) and Kronecker trace will be substituted (i.e. 'd^n_n = 4'.t will be applied).
  • When using LeviCivitaSimplify one should be ensured that symmetries of Levi-Civita tensor are already set up.
  • LeviCivitaSimplify[[Simplifications: tr]] will apply additional simplifications tr to each processed product of Levi-Civita tensors and their contractions
  • LeviCivitaSimplify[[OverallSimplifications: tr]] will apply additional simplifications tr to each processed transformed product of tensors

Examples


Simplify combinations of Levi-Civita tensors in dimension 3 in Euclidean space:

setAntiSymmetric 'e_abc'
println LeviCivitaSimplify.euclidean['e_abc'] >> 'e_abc*e^abd'.t
   > 2*d^d_c
println LeviCivitaSimplify.euclidean['e_abc'] >> 'e_abc*e^abc'.t
   > 6
def t = 'e_abc*e^amd*e_mnk*e^bnk'.t
println LeviCivitaSimplify.euclidean['e_abc'] >> t
   > 4*d_{c}^{d}


Simplify combinations of Levi-Civita tensors in dimension 4 in Euclidean space:

setAntiSymmetric 'e_abcd'
def t = '4*e^h_d^fb*e_abch*e_e^d_gf'.t
println LeviCivitaSimplify.euclidean['e_abcd'] >> t
   > 16*e_{eagc}
Simplify same expression in Minkowski space:
setAntiSymmetric 'e_abcd'
def t = '4*e^h_d^fb*e_abch*e_e^d_gf'.t
println LeviCivitaSimplify.minkowski['e_abcd'] >> t
   > -16*e_{eagc}


Simplify combinations of Levi-Civita tensors in dimension 5 in Minkowski space:

setAntiSymmetric 'e_abcde'
def t = '''e^{m}_{g}^{kci}*e_{pdj}^{l}_{o}*e_{c}^{n}_{mi}^{p}
           *e_{khnef}*e^{g}_{a}^{efd}*e_{l}^{hj}_{b}^{o}'''.t
println LeviCivitaSimplify.minkowski['e_abcde'] >> t
   > 864*g_{ab}


Simplify expression where Levi-Civita is contracted with symmetric tensor:

setAntiSymmetric 'e_abcd'
def t = 'e_abcd*(A^a + C^a)*(A^b + C^b)'.t
println LeviCivitaSimplify.minkowski['e_abcd'] >> t
   > 0


See also