Double dot product vs double inner product

57k Views Asked by At

Anything involving tensors has 47 different names and notations, and I am having trouble getting any consistency out of it.

This document (http://www.polymerprocessing.com/notes/root92a.pdf) clearly ascribes to the colon symbol (as "double dot product"):

$\mathbf{T}:\mathbf{U}=T_{ij} U_{ji}$

while this document (http://www.foamcfd.org/Nabla/guides/ProgrammersGuidese3.html) clearly ascribes to the colon symbol (as "double inner product"):

$\mathbf{T}:\mathbf{U}=T_{ij} U_{ij}$

Same symbol, two different definitions. To make matters worse, my textbook has:

$\mathbf{\epsilon}:\mathbf{T}$

where $\epsilon$ is the Levi-Civita symbol $\epsilon_{ijk}$ so who knows what that expression is supposed to represent.

Sorry for the rant/crankiness, but it's late, and I'm trying to study for a test which is apparently full of contradictions. Any help is greatly appreciated.

3

There are 3 best solutions below

0
On

Sorry for such a late reply. I hope you did well on your test. Hopefully this response will help others.

The "double inner product" and "double dot product" are referring to the same thing- a double contraction over the last two indices of the first tensor and the first two indices of the second tensor. A double dot product between two tensors of orders m and n will result in a tensor of order (m+n-4).

So, in the case of the so called permutation tensor (signified with epsilon) double-dotted with some 2nd order tensor T, the result is a vector (because 3+2-4=1).

You are correct in that there is no universally-accepted notation for tensor-based expressions, unfortunately, so some people define their own inner (i.e. "dot") and outer (i.e. "tensor") products. But, this definition for the double dot product that I have described is the most widely accepted definition of that operation.

Hope this helps.

0
On

I know this might not serve your question as it is very late, but I myself am struggling with this as part of a continuum mechanics graduate course. The way I want to think about this is to compare it to a 'single dot product.' For example: \begin{align} \textbf{A} \cdot \textbf{B} &= A_{ij}B_{kl} (e_i \otimes e_j) \cdot (e_k \otimes e_l)\\ &= A_{ij} B_{kl} (e_j \cdot e_k) (e_i \otimes e_l) \\ &= A_{ij} B_{kl} \delta_{jk} (e_i \otimes e_l) \\ &= A_{ij} B_{jl} (e_i \otimes e_l) \end{align} Where the dot product occurs between the basis vectors closest to the dot product operator, i.e. $e_j \cdot e_k$. So now $\mathbf{A} : \mathbf{B}$ would be as following: \begin{align} \textbf{A} : \textbf{B} &= A_{ij}B_{kl} (e_i \otimes e_j):(e_k \otimes e_l)\\ &= A_{ij} B_{kl} (e_j \cdot e_k) (e_i \cdot e_l) \\ &= A_{ij} B_{kl} \delta_{jk} \delta_{il} \\ &= A_{ij} B_{jl} \delta_{il}\\ &= A_{ij} B_{ji} \end{align} But I found that a few textbooks give the following result: $$ \textbf{A}:\textbf{B} = A_{ij}B_{ij}$$ But based on the operation carried out before, this is actually the result of $$\textbf{A}:\textbf{B}^t$$ because \begin{align} \textbf{A} : \textbf{B}^t &= A_{ij}B_{kl} (e_i \otimes e_j):(e_l \otimes e_k)\\ &= A_{ij} B_{kl} (e_j \cdot e_l) (e_j \cdot e_k) \\ &= A_{ij} B_{kl} \delta_{jl} \delta_{ik} \\ &= A_{ij} B_{il} \delta_{jl}\\ &= A_{ij} B_{ij} \end{align} But I finally found why this is not the case!

The definition of tensor contraction is not the way the operation above was carried out, rather it is as following: \begin{align} \textbf{A} : \textbf{B}^t &= \textbf{tr}(\textbf{AB}^t)\\ &= \textbf{tr}(\textbf{BA}^t)\\ &= \textbf{tr}(\textbf{A}^t\textbf{B})\\ &= \textbf{tr}(\textbf{B}^t\textbf{A}) = \textbf{A} : \textbf{B}^t\\ \end{align} and if you do the exercise, you'll find that: $$\textbf{A}:\textbf{B} = A_{ij} B_{ij} $$

1
On

I know this is old, but this is the first thing that comes up when you search for double inner product and I think this will be a helpful answer for others.

The operation $\mathbf{A}*\mathbf{B} = \sum_{ij}A_{ij}B_{ji}$ is not an inner product because it is not positive definite. Calling it a double-dot product is a bit of a misnomer. Meanwhile, for real matricies, $\mathbf{A}:\mathbf{B} = \sum_{ij}A_{ij}B_{ij}$ is the Frobenius inner product. They can be better realized as, $$\mathbf{A}:\mathbf{B} = \operatorname{tr}\left(\mathbf{A}\mathbf{B}^\mathsf{T}\right) $$ $$\mathbf{A}*\mathbf{B} = \operatorname{tr}\left(\mathbf{A}\mathbf{B}\right) $$ This definition for the Frobenius inner product comes from that of the dot product, since for vectors $\mathbf{a}$ and $\mathbf{b}$, $$\mathbf{a}\cdot\mathbf{b} = \operatorname{tr}\left(\mathbf{a}\mathbf{b}^\mathsf{T}\right)$$ We then can even understand how to extend this to complex matricies naturally by the vector definition. Since for complex vectors, we need the inner product between them to be positive definite, we have to choose, $$(\mathbf{a},\mathbf{b}) = \mathbf{a}\cdot\overline{\mathbf{b}}^\mathsf{T} = a_i \overline{b}_i$$ as our inner product. Likewise for the matrix inner product, we have to choose, $$\mathbf{A}:\mathbf{B} = \operatorname{tr}\left(\mathbf{A}\mathbf{B}^\mathsf{H}\right) = \sum_{ij}A_{ij}\overline{B}_{ij}$$ where $\mathsf{H}$ is the conjugate transpose operator.

As for the Levi-Cevita symbol, the symmetry of the symbol means that it does not matter which way you perform the inner product.