Skip to main content
add another method
Source Link
xzczd
  • 68.4k
  • 9
  • 174
  • 489

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{i,j,k,l}$$C_{ijkl}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[
   allowtensor[
   tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
      {i, j, k, l, p, q, m, n}], {L, listL}];

Alternatively, with TensorProduct and TensorContract:

systemall = 
  Table[
    tensorc == TensorContract[
             L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]tensorc, 
     {{1, 9}, {3, 10}, {5, 11}, {7, 12}}], {L, listL}];

and solve them:

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{i,j,k,l}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[
   allowtensor[
   tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
      {i, j, k, l, p, q, m, n}], {L, listL}];

Alternatively, with TensorProduct and TensorContract:

systemall = 
  Table[
    tensorc == TensorContract[
             L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]tensorc, 
     {{1, 9}, {3, 10}, {5, 11}, {7, 12}}], {L, listL}];

and solve them:

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{ijkl}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[
   allowtensor[
   tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
      {i, j, k, l, p, q, m, n}], {L, listL}];

Alternatively, with TensorProduct and TensorContract:

systemall = 
  Table[
    tensorc == TensorContract[
             L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]tensorc, 
     {{1, 9}, {3, 10}, {5, 11}, {7, 12}}], {L, listL}];

and solve them:

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)
add another method
Source Link
xzczd
  • 68.4k
  • 9
  • 174
  • 489

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{i,j,k,l}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor and solve them:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[allowtensor[Table[
       allowtensor[
   tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
          {i, j, k, l, p, q, m, n}], {L, listL}];

Alternatively, with TensorProduct and TensorContract:

systemall = 
  Table[
    tensorc == TensorContract[
             L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]tensorc, 
     {{1, 9}, {3, 10}, {5, 11}, {7, 12}}], {L, listL}];

and solve them:

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{i,j,k,l}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor and solve them:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[allowtensor[
          tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
          {i, j, k, l, p, q, m, n}], {L, listL}];

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{i,j,k,l}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[
   allowtensor[
   tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
      {i, j, k, l, p, q, m, n}], {L, listL}];

Alternatively, with TensorProduct and TensorContract:

systemall = 
  Table[
    tensorc == TensorContract[
             L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]L\[TensorProduct]tensorc, 
     {{1, 9}, {3, 10}, {5, 11}, {7, 12}}], {L, listL}];

and solve them:

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)
Source Link
xzczd
  • 68.4k
  • 9
  • 174
  • 489

The formulas given in the screenshot is not enough to deduce the conclusion therein i.e. there're only 12 independent variables in $C_{i,j,k,l}$. The missing formulas are

$$C_{ijkl}=C_{jikl}$$

$$C_{ijkl}=C_{ijlk}$$

which can be implemented as

c[i_, j_, k_, l_] /; i > j := c[j, i, k, l]
c[i_, j_, k_, l_] /; k > l := c[i, j, l, k]

Then generate $C$ and $l$s. I've turned to L to denote the matrix $l$ because $l$ is already used for index. (Why not turn to a better textbook? )

listL = RotationMatrix[180 Degree, #] & /@ IdentityMatrix@3;

tensorc = Array[c, {3, 3, 3, 3}];

Generate the 3 equation system with my allowtensor and solve them:

(* Definition of allowtensor isn't included in this post,
   please find it in the link above. *)
systemall = 
  Table[allowtensor[
          tensorc[[p, q, m, n]] == L[[i, p]] L[[j, q]] L[[k, m]] L[[l, n]] tensorc[[i, j, k, l]], 
          {i, j, k, l, p, q, m, n}], {L, listL}];

sol = Solve /@ systemall // Flatten;

sol /. c[i__] :> Subscript[c, i] // Union

enter image description here

DeleteCases[tensorc /. sol // Flatten // Union, 0]
Length@%
(* 12 *)