--- branches/development/src/math/SquareMatrix.hpp 2011/11/22 20:38:56 1665 +++ branches/development/src/math/SquareMatrix.hpp 2012/06/12 13:20:28 1753 @@ -135,7 +135,26 @@ namespace OpenMD { return tmp; } + + /** + * Returns the tensor contraction (double dot product) of two rank 2 + * tensors (or Matrices) + * @param t1 first tensor + * @param t2 second tensor + * @return the tensor contraction (double dot product) of t1 and t2 + */ + Real doubleDot( const SquareMatrix& t1, const SquareMatrix& t2 ) { + Real tmp; + tmp = 0; + + for (unsigned int i = 0; i < Dim; i++) + for (unsigned int j =0; j < Dim; j++) + tmp += t1[i][j] * t2[i][j]; + + return tmp; + } + /** Tests if this matrix is symmetrix. */ bool isSymmetric() const { for (unsigned int i = 0; i < Dim - 1; i++)