We can then see that the matrix multiplication Bb is equivalent to the double contraction B:b. This property is a reason why the Voigt representation is often used in computer implementations.
Even if we have a symmetric tensor, we can still represent it using the 9-component representation discussed above. However, in many applications symmetric tensors arise, and then a 6-component representation is used for convenience. But if we use a 6-component representation, a key feature of the Voigt-representation is lost: The double contraction is not equivalent to the matrix/vector dot product. We need to compensate for this somehow, and 3 possibilities are discussed below.
The first option require that we take the off-diagonal entries twice when doing the double contraction. This implies that we cannot use the standard linear algebra libraries, and is therefore not so convenient for computer implementations.
To use engineering strans, where the shear components are doubled, is very common in continuum mechanics. Often, this way is implicitly assumed when discussing the Voigt representation for symmetric tensors in continuum mechanics. It works well when considering the stress-strain relationship, and also for calculating the power σ:ϵ˙. However, for example the norm of the stress, σ:σ does not work automatically. Even if this representations have its drawbacks, it is commonly used and it is important to be aware of it.
A final solution is to use the so-called Mandel representation. It is not so commonly used in older codes, but it offers the huge advantage that all the contractions give the correct result. Also, we treat all tensors equally, and do not differentiate wether a tensor represents e.g. stresses or strains. If we assume that the above tensors b and B are symmetric, we can write their Mandel representation as