Double dot product vs double inner product

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.


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.


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} $$