]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Generalised symmetric tensor operator* (tensor contrac.) on number type
authorJean-Paul Pelteret <jppelteret@gmail.com>
Wed, 16 Aug 2017 19:35:24 +0000 (13:35 -0600)
committerJean-Paul Pelteret <jppelteret@gmail.com>
Mon, 21 Aug 2017 17:11:18 +0000 (19:11 +0200)
include/deal.II/base/symmetric_tensor.h

index 4238592d42a88357768a2cbe759ea9900c5f08f6..98fde9de2bc9a8596e00b4b911cfd75dea4894d0 100644 (file)
@@ -3895,12 +3895,12 @@ double_contract (SymmetricTensor<2,3,typename ProductType<Number, OtherNumber>::
  * @relates SymmetricTensor
  * @author Wolfgang Bangerth, 2005
  */
-template <int dim, typename Number>
-Tensor<1,dim,Number>
+template <int dim, typename Number, typename OtherNumber>
+Tensor<1,dim,typename ProductType<Number,OtherNumber>::type>
 operator * (const SymmetricTensor<2,dim,Number> &src1,
-            const Tensor<1,dim,Number> &src2)
+            const Tensor<1,dim,OtherNumber>     &src2)
 {
-  Tensor<1,dim,Number> dest;
+  Tensor<1,dim,typename ProductType<Number,OtherNumber>::type> dest;
   for (unsigned int i=0; i<dim; ++i)
     for (unsigned int j=0; j<dim; ++j)
       dest[i] += src1[i][j] * src2[j];
@@ -3915,10 +3915,10 @@ operator * (const SymmetricTensor<2,dim,Number> &src1,
  * @relates SymmetricTensor
  * @author Wolfgang Bangerth, 2005
  */
-template <int dim, typename Number>
-Tensor<1,dim,Number>
-operator * (const Tensor<1,dim,Number> &src1,
-            const SymmetricTensor<2,dim,Number> &src2)
+template <int dim, typename Number, typename OtherNumber>
+Tensor<1,dim,typename ProductType<Number,OtherNumber>::type>
+operator * (const Tensor<1,dim,Number>               &src1,
+            const SymmetricTensor<2,dim,OtherNumber> &src2)
 {
   // this is easy for symmetric tensors:
   return src2 * src1;

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.