]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Generalised symmetric tensor scalar product on number type
authorJean-Paul Pelteret <jppelteret@gmail.com>
Wed, 16 Aug 2017 08:57:57 +0000 (02:57 -0600)
committerJean-Paul Pelteret <jppelteret@gmail.com>
Mon, 21 Aug 2017 16:53:31 +0000 (18:53 +0200)
include/deal.II/base/symmetric_tensor.h

index 0531adadae6b6fbd660b2bad451462dc1870e57e..30efc6685fc4305dde6f46cf78e0433d6aae6ddd 100644 (file)
@@ -3527,11 +3527,11 @@ operator / (const SymmetricTensor<rank,dim> &t,
  *
  * @relates SymmetricTensor
  */
-template <int dim, typename Number>
+template <int dim, typename Number, typename OtherNumber>
 inline
-Number
-scalar_product (const SymmetricTensor<2,dim,Number> &t1,
-                const SymmetricTensor<2,dim,Number> &t2)
+typename ProductType<Number, OtherNumber>::type
+scalar_product (const SymmetricTensor<2,dim,Number>      &t1,
+                const SymmetricTensor<2,dim,OtherNumber> &t2)
 {
   return (t1*t2);
 }
@@ -3546,11 +3546,11 @@ scalar_product (const SymmetricTensor<2,dim,Number> &t1,
  *
  * @relates Tensor @relates SymmetricTensor
  */
-template <int dim, typename Number>
+template <int dim, typename Number, typename OtherNumber>
 inline
-Number
+typename ProductType<Number, OtherNumber>::type
 scalar_product (const SymmetricTensor<2,dim,Number> &t1,
-                const Tensor<2,dim,Number> &t2)
+                const Tensor<2,dim,OtherNumber>     &t2)
 {
   Number s = 0;
   for (unsigned int i=0; i<dim; ++i)
@@ -3569,11 +3569,11 @@ scalar_product (const SymmetricTensor<2,dim,Number> &t1,
  *
  * @relates Tensor @relates SymmetricTensor
  */
-template <int dim, typename Number>
+template <int dim, typename Number, typename OtherNumber>
 inline
-Number
-scalar_product (const Tensor<2,dim,Number> &t1,
-                const SymmetricTensor<2,dim,Number> &t2)
+typename ProductType<Number, OtherNumber>::type
+scalar_product (const Tensor<2,dim,Number>               &t1,
+                const SymmetricTensor<2,dim,OtherNumber> &t2)
 {
   return scalar_product(t2, t1);
 }

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.