Ma · Mathematics

What Is the Tensor Double Dot Product?

Published By the 9to5Science editorial team

At a glance

  1. 1. Match the indices

    For two second-order tensors, pair entries with the same row and column indices.

  2. 2. Multiply each pair

    Multiply corresponding components of the two tensors.

  3. 3. Sum the products

    Add every componentwise product to obtain a scalar.

  4. 4. Check the convention

    For matrices, the result is the Frobenius inner product, not ordinary matrix multiplication.

The tensor double dot product, written A:B\mathbf{A}:\mathbf{B}, is a contraction of two tensors. For two second-order tensors (which can be represented by matrices), it multiplies components with matching indices and adds the results. The output is a scalar.

This operation is also called the Frobenius inner product of two matrices. The colon notation is common in continuum mechanics, applied mathematics, and engineering, though notation can vary between fields.

Definition for second-order tensors

Let A\mathbf{A} and B\mathbf{B} have components AijA_{ij} and BijB_{ij}. In an orthonormal coordinate system, their double dot product is

A:B=∑i∑jAijBij.\mathbf{A}:\mathbf{B} = \sum_i\sum_j A_{ij}B_{ij}.

In index notation, repeated indices indicate summation, so this is written AijBijA_{ij}B_{ij}. For n×nn\times n matrices, the sums run over i,j=1,…,ni,j=1,\ldots,n.

The same operation can be written using the trace (the sum of a matrix’s diagonal entries):

A:B=tr⁡(ATB).\mathbf{A}:\mathbf{B} = \operatorname{tr}(\mathbf{A}^{T}\mathbf{B}).

The transpose is essential in this identity. Equivalently, the double dot product is the ordinary vector dot product after listing all the entries of each matrix in the same order.

Worked matrix example

Take

A=(12−13),B=(4−251).\mathbf{A}=\begin{pmatrix}1&2\\-1&3\end{pmatrix}, \qquad \mathbf{B}=\begin{pmatrix}4&-2\\5&1\end{pmatrix}.

Multiply entries in corresponding positions and add:

A:B=1(4)+2(−2)+(−1)(5)+3(1)=4−4−5+3=−2.\begin{aligned} \mathbf{A}:\mathbf{B} &= 1(4)+2(-2)+(-1)(5)+3(1)\\ &=4-4-5+3\\ &=-2. \end{aligned}

Thus the double dot product is −2-2. It can be checked with the trace formula: ATB\mathbf{A}^{T}\mathbf{B} has diagonal entries −1-1 and −1-1, whose sum is −2-2.

The operation also defines the Frobenius norm of a matrix: ∥A∥F=A:A\|\mathbf{A}\|_F=\sqrt{\mathbf{A}:\mathbf{A}}. For this example, A:A=12+22+(−1)2+32=15\mathbf{A}:\mathbf{A}=1^2+2^2+(-1)^2+3^2=15, so ∥A∥F=15\|\mathbf{A}\|_F=\sqrt{15}.

How it differs from matrix multiplication

Ordinary matrix multiplication combines a row of the first matrix with a column of the second and usually produces another matrix. The double dot product instead pairs entries in the same positions and sums all the products, producing a scalar.

For the example above, tr⁡(ATB)=−2\operatorname{tr}(\mathbf{A}^{T}\mathbf{B})=-2, while tr⁡(AB)=19\operatorname{tr}(\mathbf{A}\mathbf{B})=19. The latter is not generally the double dot product. The two traces do agree in some special cases, such as when both matrices are symmetric, but that does not make the formulas interchangeable in general.

Notation also varies: a single dot between tensors may denote composition or contraction, depending on the field and context. If a problem defines its notation explicitly, follow that definition; otherwise, the component formula AijBijA_{ij}B_{ij} makes the double contraction unambiguous for second-order tensors in an orthonormal basis.

A mechanics example

For a stress tensor σ\boldsymbol{\sigma} and a small-strain tensor ε\boldsymbol{\varepsilon}, the contraction σ:ε\boldsymbol{\sigma}:\boldsymbol{\varepsilon} is a scalar. For example, suppose, in consistent units,

σ=(10226),ε=(0.010.0030.003−0.002).\boldsymbol{\sigma}=\begin{pmatrix}10&2\\2&6\end{pmatrix}, \qquad \boldsymbol{\varepsilon}=\begin{pmatrix}0.01&0.003\\0.003&-0.002\end{pmatrix}.

Then

σ:ε=10(0.01)+2(0.003)+2(0.003)+6(−0.002)=0.1.\boldsymbol{\sigma}:\boldsymbol{\varepsilon} =10(0.01)+2(0.003)+2(0.003)+6(-0.002)=0.1.

The two off-diagonal products both contribute. This contraction has units of energy per unit volume and appears in stress–strain work and energy relations. More precisely, stress power per unit volume is σ:ε˙\boldsymbol{\sigma}:\dot{\boldsymbol{\varepsilon}}, and σ:ε\boldsymbol{\sigma}:\boldsymbol{\varepsilon} is not generally the stored energy; for a linear elastic material, the elastic energy density is 12σ:ε\tfrac12\boldsymbol{\sigma}:\boldsymbol{\varepsilon}.

Higher-order tensors

“Double contraction” can also be used for tensors of order greater than two. Contracting two indices from each tensor leaves a tensor whose order depends on the inputs. For two second-order tensors, both indices are contracted, so the result is a scalar. The exact index positions and which indices are paired should be checked in the convention being used, especially outside an orthonormal Cartesian basis.

Common mistakes

  • Using matrix multiplication: AB\mathbf{A}\mathbf{B} is generally a matrix, whereas A:B\mathbf{A}:\mathbf{B} is a scalar for two second-order tensors.
  • Pairing the wrong entries: The component formula uses AijBijA_{ij}B_{ij}, not AijBjiA_{ij}B_{ji}.
  • Dropping off-diagonal terms: Every component contributes. For symmetric tensors, each off-diagonal position appears separately in the sum.
  • Replacing the transpose in the trace formula: The general identity is tr⁡(ATB)\operatorname{tr}(\mathbf{A}^{T}\mathbf{B}), not tr⁡(AB)\operatorname{tr}(\mathbf{A}\mathbf{B}).

References

  1. An Introduction to Continuum Mechanics — Morton E. Gurtin
  2. Introduction to the Mechanics of a Continuous Medium — Bernard E. Malvern

Spotted an error? Send a correction. Read how we write and check articles in our editorial policy.