3
$\begingroup$

I am struggling with creating the rank-4 matrix T in Mathematica. The matric is defined as

$T_{i,j,k,l}= n_i n_j n_k n_l-(\delta_{i,j} n_k n_l +\delta_{i,k} n_j n_l+\delta_{i,l} n_k n_j+\delta_{j,l} n_i n_k+\delta_{j,k} n_i n_l+\delta_{k,l} n_i n_j)/6$,

Where $n$ is a vector with two components: $n=(a,b)$.

I used TensorProduct to create the matrix, but I am not sure if that is correct, and also I do not know how to add the second part with delta functions. Could someone please help me?

Here is what I did:

n = {a, b};
mat = TensorProduct[n, n, n, n]
mat // MatrixForm
$\endgroup$

1 Answer 1

3
$\begingroup$

You can use the second syntax of Transpose and it should work like the code below, but it is yet to be checked whether each 4-length List as the second argument of Transpose exactly corresponds to your order of indexes or not

n = {a, b};
id4 = TensorProduct[IdentityMatrix[2], n, n];
mat = TensorProduct[n, n, n, n] - (id4 + Transpose[id4, {1, 3, 2, 4}] + 
     Transpose[id4, {1, 4, 3, 2}] + Transpose[id4, {3, 1, 4, 2}] + 
     Transpose[id4, {3, 1, 2, 4}] + Transpose[id4, {3, 4, 1, 2}])/6

Update

As @WReach mentioned in the comment, two groups of indices above should indeed be corrected as below:

{3, 1, 4, 2} -> {2, 4, 1, 3}
{3, 1, 2, 4} -> {2, 3, 1, 4}

Though, the spirit of using Transpose is uninfluenced all the way.

$\endgroup$
2
  • 2
    $\begingroup$ +1. I believe that the index sets 3142 and 3124 should be 2413 (jlik) and 2314 (jkil). At least, that matches what I got using direct construction: kd[i_,j_,k_,l_] := KroneckerDelta[i,j]n[[k]]n[[l]]; Table[n[[i]]n[[j]]n[[k]]n[[l]] - (kd[i,j,k,l]+kd[i,k,j,l]+kd[i,l,k,j]+kd[j,l,i,k]+kd[j,k,i,l]+kd[k,l,i,j])/6 , {i, 2}, {j, 2}, {k, 2}, {l, 2}] $\endgroup$
    – WReach
    Commented Mar 2, 2022 at 16:47
  • $\begingroup$ @WReach Thx very much! After a double-check, I think your order of index is correct. BTW, I believe that your Table-Part combo deserves an individual answer rather than just a comment. $\endgroup$ Commented Mar 3, 2022 at 9:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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