I am trying to calculate:$$\epsilon_{ijk}n^iM1^j\epsilon^{lmk}n_lM2_m$$

Defining the vectors as:


and using

FullSimplify@ TensorContract[  TensorProduct[LeviCivitaTensor[3, List], n, M1, LeviCivitaTensor[3, List], n, M2], {{1, 4}, {2, 5}, {3, 8}, {6, 9}, {7, 10}}]

I get the result:

M1z M2z (nx^2 + ny^2) - M1z (M2x nx + M2y ny) nz +  M1y (-ny (M2x nx + M2z nz) + M2y (nx^2 + nz^2)) +  M1x (-M2y nx ny - M2z nx nz + M2x (ny^2 + nz^2))

This is correct, but I would rather that the result would be displayed as:

$$(M1\cdot M2)-(M1\cdot n)(M2\cdot n)$$

($n$ has norm one).

How do I get this simplification?

  • $\begingroup$ Thanks. It works as shown now. $\endgroup$ – Michael E2 Jul 21 '19 at 18:17

In order to simplify the quadruple product, I would do like this

r=Sum[LeviCivitaTensor[3][[i,j,k]] n[i]M[1][j] 
      LeviCivitaTensor[3][[l,m,k]] n[l]M[2][m],

Simplify[r, Assumptions->n[1]^2+n[2]^2+n[3]^2==1
            && n[1] M[1][1]+n[2] M[1][2]+n[3] M[1][3]==Dot[n.M[1]]
            && n[1] M[2][1]+n[2] M[2][2]+n[3] M[2][3]==Dot[n.M[2]]
            && M[1][1] M[2][1]+M[1][2] M[2][2]+M[1][3] M[2][3]==Dot[M[1].M[2]]]

Out[1]= -n.M[1] n.M[2] + M[1].M[2]

Of course, all the assumptions can be generated programmatically.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.