]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Modify tensor initialization to assist conversion between numbers types.
authorJean-Paul Pelteret <jppelteret@gmail.com>
Wed, 23 Aug 2017 16:13:17 +0000 (18:13 +0200)
committerJean-Paul Pelteret <jppelteret@gmail.com>
Thu, 24 Aug 2017 05:14:58 +0000 (07:14 +0200)
include/deal.II/base/symmetric_tensor.h
include/deal.II/base/tensor.h

index 18f17d185518bb8077dcd7fb30cd0fa1e2775e30..fe3816818cd3ca06f1ecb501ad95f172e744eab2 100644 (file)
@@ -999,7 +999,7 @@ SymmetricTensor<rank,dim,Number>::
 SymmetricTensor (const SymmetricTensor<rank,dim,OtherNumber> &initializer)
 {
   for (unsigned int i=0; i<base_tensor_type::dimension; ++i)
-    data[i] = initializer.data[i];
+    data[i] = internal::NumberType<typename base_tensor_type::value_type>::value(initializer.data[i]);
 }
 
 
index 357ea704d01ea16d462d964df2c8ff574221fcd7..443f60bbe17e0a78a6f7a7a478fa552e7bb64436 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <deal.II/base/config.h>
 #include <deal.II/base/exceptions.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/table_indices.h>
 #include <deal.II/base/tensor_accessors.h>
 #include <deal.II/base/template_constraints.h>
@@ -628,6 +629,13 @@ namespace internal
       tmp=internal::NumberType<VectorizedArray<T> >::value(t);
       return tmp;
     }
+
+    static Tensor<rank,dim,VectorizedArray<T> > value (const VectorizedArray<T> &t)
+    {
+      Tensor<rank,dim,VectorizedArray<T> > tmp;
+      tmp=t;
+      return tmp;
+    }
   };
 }
 
@@ -650,7 +658,7 @@ template <typename OtherNumber>
 inline
 Tensor<0,dim,Number>::Tensor (const OtherNumber &initializer)
 {
-  value = initializer;
+  value = internal::NumberType<Number>::value(initializer);
 }
 
 

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.