In[10] HookeVto4[  myC_] Array[  myC[[  {#1,  #2}  /.  indexrule2to1,  {#3,  #4}  /. indexrule2to1]]  &,  Array[3  &,  4]] In[11] (C2  =  MakeTensor["C",  2,  6])  //  MatrixForm In[12] C2 In[13] (C2to4  =  HookeVto4[C2]  )  //  MatrixForm In[14] C2to4 In[15] Hooke4toV[  myC_]  ≔ Apply[  Part[  myC,  ##]  &, Array[  Join[  #1  /.  indexrule1to2  ,  #2  /.  indexrule1to2]  &, Array[6  &,  2]]  ,  {2}] In[16] C2back  =  Hooke4toV[C2to4]  )  //  MatrixForm In[17] (C4to2  =  Hooke4toV[C4]  )  //  MatrixForm In[18] (C4back  =  HookeVto4[C4to2])  //  MatrixForm In[19] Hooke2toV[myc2_]     Table Which i  <=  3  &&  j  <=  3  ,  myc2[[i,  j]], 4  <=  i  &&  j  <=  3  ,  myc2[[i,  j]]  /   (1/2), i  <=  3  &&  4  <=  j  ,  myc2[[i,  j]]/   (1/2), 4  <=  i  &&  4  <=  j  ,  myc2[[i,  j]]/  2 ],  {i,  6},  {j,  6}] HookeVto2[mycV_]  ≔  Table[ Which[ i  <=  3  &&  j  <=  3  ,  mycV[[i,  j]], 4  <=  i  &&  j  <=  3  ,  mycV[[i,  j]]  *   (1/2), i  <=  3  &&  4  <=  j  ,  mycV[[i,  j]]  *   (1/2), 4  <=  i  &&  4  <=  j  ,  mycV[[i,  j]]  *  2 ],  {i,  6},  {j,  6}] Hooke4to2[myC_]     HookeVto2[Hooke4toV[  myC  ]] Hooke2to4[myC_]     HookeVto4[Hooke2toV[  myC  ]] In[20] (CV  =  Hooke2toV[  C2  ]  )  //  MatrixForm In[21] (C2back  =  HookeVto2[  CV  ]  )  //  MatrixForm In[22] (CV  =  Hooke4to2[C4])  //  MatrixForm In[23] C4back  =  Hooke2to4[CV])  //  MatrixForm
Algorithm 4