# Contracting Levi-Civita [duplicate]

I am trying to contract two Levi-Civita symbols in tensor format like so:

$\epsilon_{a b} \epsilon_{c d}$

This code generates the Levi-Civita:

n = 2;
LevCiv := LeviCivitaTensor[2, List];

listLevCiv :=
Table[If[UnsameQ[LevCiv[[a, b]], 0], {ToString[LeCi[a, b]],
LevCiv[[a, b]]}]
, {a, 1, n}, {b, 1, n}]
TableForm[Partition[DeleteCases[Flatten[listLevCiv], Null], 2],
TableSpacing -> {2, 2}]
LevCiv // MatrixForm


I would like something of this form:

    Output = Simplify[
Table[LevCiv[[a, b]]*LevCiv[[c, d]], {a, 1, n}, {b, 1, n}, {c, 1,
n}, {d, 1, n}]];
Output // MatrixForm


Does anyone have experience working with such tensors and how to generate one output please?

Thanks

• Is what you're looking for Outer[Times, LevCiv, LevCiv]? – evanb Aug 21 '17 at 10:57
• Also, you should turn LevCiv := into =---no need to re-generate the tensor every time you want to mention it. – evanb Aug 21 '17 at 10:58
• – evanb Aug 21 '17 at 10:59

You can get this by using TensorProduct directly on your LeviCivitaTensor

TensorProduct[LeviCivitaTensor[2, List], LeviCivitaTensor[2, List]] // MatrixForm


or more concise

#\[TensorProduct]# &[LeviCivitaTensor] // Normal // MatrixForm


The infix version of TensorProduct can be entered as ESCt*ESC.

• Thank you for your answer. It looks great. I hope it holds up when I perform metric tensor contractions on it. Thanks sir! – Mark Pace Aug 21 '17 at 11:36