`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

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

- Related guides: Applying and manipulating transformations, List of common transformations
- Related transformations: DiracTrace, UnitaryTrace
- JavaDocs: LeviCivitaSimplifyTransformation
- Source code: LeviCivitaSimplifyTransformation.java