Suppose that we have a fourth order tensor ${\bf{A}}$

$${\bf{A}}=A_{ijkl} {\bf{e}}_i \otimes {\bf{e}}_j \otimes {\bf{e}}_k \otimes {\bf{e}}_l$$

in the orthonormal basis $\{{\bf{e}}_1,{\bf{e}}_2,{\bf{e}}_3\}$ for $\mathbb{R}^3$. Then we define the inverse of ${\bf{A}}$ denoted by ${\bf{B}}$ as follows

$${\bf{A}} : {\bf{B}} = {\bf{B}} : {\bf{A}} = {\bf{I}}$$

where ${\bf{I}}$ is the fourth order identity tensor

$$\begin{align} {\bf{I}} &=I_{ijkl} {\bf{e}}_i \otimes {\bf{e}}_j \otimes {\bf{e}}_k \otimes {\bf{e}}_l\\ &=\delta_{ik} \delta_{jl} {\bf{e}}_i \otimes {\bf{e}}_j \otimes {\bf{e}}_k \otimes {\bf{e}}_l \end{align}$$

where $\delta_{ij}$ is the Kronecker's Delta

$$\delta_{ij}= \begin{cases} 1 & i=j \\ 0 & i \ne j \end{cases}$$

and $:$ is the double contraction defined by

$${\bf{A}} : {\bf{B}}=A_{ijmn}B_{mnkl} {\bf{e}}_i \otimes {\bf{e}}_j \otimes {\bf{e}}_k \otimes {\bf{e}}_l$$

I want to write a code to compute ${\bf{B}}$. However, I could not find any good resource on the net that gives the elements of ${\bf{B}}$ in terms of the elements of ${\bf{A}}$. How should I compute ${\bf{B}} = {\bf{A}}^{-1}$?

An application of this can be found in the theory of elasticity, where the fourth order tensor have the following symmetries


That would be great if you can also touch upon this.

  • 1
    $\begingroup$ I would try to transform the problem to an equivalent problem stated in terms of matrices. Then you can use existing codes for inverting matrices and transform back. Since a 4th order tensor corresponds to a block matrix, it seems like this approach may work. Can you give more detail regarding the tensor-tensor product you are using to define the inverse. $\endgroup$
    – K. Miller
    Jan 24 '16 at 15:18
  • $\begingroup$ @K.Miller: Thanks for the attention. I added the definition to the question. :) $\endgroup$ Jan 24 '16 at 15:35
  • $\begingroup$ I assume by double scalar product you mean the sum over indexes $m,n$? $\endgroup$
    – K. Miller
    Jan 24 '16 at 16:17
  • $\begingroup$ @K.Miller: Yes. :) Whatever terminology you like. :) $\endgroup$ Jan 24 '16 at 16:32
  • 2
    $\begingroup$ There are three $4^{th}$-order isotropic tensors, but only one of them $(E_{ijkl}=\delta_{ik}\delta_{jl})$ acts like an identity with respect to the double contraction product $$\eqalign{E:A &= A:E = A}$$ The other two $(F_{ijkl}=\delta_{il}\delta_{jk},\,G_{ijkl}=\delta_{ij}\delta_{kl})$, produce a trace or a transpose under the product$$\eqalign{F:A &= A:F = A^T \cr G:A &= A:G = {\rm tr}(A)\,I \cr}$$ $\endgroup$
    – lynn
    Jan 24 '16 at 20:24

In general

$$ \sum_{m=1}^N\sum_{n=1}^N A_{ijmn}B_{mnkl} = \delta_{ik}\delta_{jl} $$

for $i,j,k,l = 1,\ldots,N$. Now suppose the tensor $\mathbf{A}$ is unfolded as the $N^2\times N^2$ matrix given by

$$ A = \left[ \begin{array}{ccccccccc} A_{1111} & A_{1112} & \cdots & A_{111N} & \cdots & A_{11N1} & A_{11N2} & \cdots & A_{11NN}\\ A_{1211} & A_{1212} & \cdots & A_{121N} & \cdots & A_{12N1} & A_{12N2} & \cdots & A_{12NN}\\ \vdots & \vdots & &\vdots & & \vdots & \vdots & & \vdots\\ A_{NN11} & A_{NN12} & \cdots & A_{NN1N} & \cdots & A_{NNN1} & A_{NNN2} & \cdots & A_{NNNN}\\ \end{array} \right] $$

If the same is done for $\mathbf{B}$, then the matrix product $AB$ corresponds to the unfolded tensor product $\mathbf{A} : \mathbf{B}$. Let $E$ be the same unfolding of the tensor identity matrix $\mathbf{I}$. Then

$$ \mathbf{A} : \mathbf{B} = \mathbf{I} \iff AB = E $$


$$ \mathbf{B} : \mathbf{A} = \mathbf{I} \iff BA = E $$

In order for such a matrix $B$ to exist it follows that $AB = BA$ must hold, i.e., the product of $A$ and $B$ must commute. Now suppose $A$ is invertible. Then $B$ must satisfy the equations

$$ B = A^{-1}E \quad\text{and}\quad B = EA^{-1} \iff A^{-1}E = EA^{-1} \iff EA = AE $$

Thus, in the case that $A$ is invertible, the product of $A$ and $E$ must commute in order for such a matrix $B$ to exist. If these conditions are met, then you should be able to compute a unique $B$ from the equation $AB = E$ via the LU factorization or by some other matrix factorization.

  • 1
    $\begingroup$ I just noticed that if the tensor ${\bf{A}}$ has the symmetries $A_{ijkl}=A_{jikl}=A_{ijlk}=A_{klij}$ then the unfolded matrix form $A$ will be singular! :) $\endgroup$ Mar 5 '16 at 14:43

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.