]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
fixed some problems related to introduction of templated arguments
authordenis.davydov <denis.davydov@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 5 Mar 2014 15:51:29 +0000 (15:51 +0000)
committerdenis.davydov <denis.davydov@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 5 Mar 2014 15:51:29 +0000 (15:51 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_petscscalar_complex@32620 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/source/distributed/solution_transfer.cc
deal.II/source/numerics/data_out_dof_data.cc

index f5aced6a3e968c8a8598bbcd749eec47092ab551..f45a02b324eba81b713e62163093a3bc02b888be 100644 (file)
@@ -213,18 +213,18 @@ namespace parallel
                   const typename Triangulation<dim,dim>::CellStatus /*status*/,
                   void *data)
     {
-      double *data_store = reinterpret_cast<double *>(data);
+      typename VECTOR::value_type *data_store = reinterpret_cast<typename VECTOR::value_type *>(data);
 
       typename DH::cell_iterator cell(*cell_, dof_handler);
 
       const unsigned int dofs_per_cell=cell->get_fe().dofs_per_cell;
-      ::dealii::Vector<double> dofvalues(dofs_per_cell);
+      ::dealii::Vector<typename VECTOR::value_type> dofvalues(dofs_per_cell);
       for (typename std::vector<const VECTOR *>::iterator it=input_vectors.begin();
            it !=input_vectors.end();
            ++it)
         {
           cell->get_interpolated_dof_values(*(*it), dofvalues);
-          std::memcpy(data_store, &dofvalues(0), sizeof(double)*dofs_per_cell);
+          std::memcpy(data_store, &dofvalues(0), sizeof(typename VECTOR::value_type)*dofs_per_cell);
           data_store += dofs_per_cell;
         }
     }
@@ -242,14 +242,14 @@ namespace parallel
       cell(*cell_, dof_handler);
 
       const unsigned int dofs_per_cell=cell->get_fe().dofs_per_cell;
-      ::dealii::Vector<double> dofvalues(dofs_per_cell);
-      const double *data_store = reinterpret_cast<const double *>(data);
+      ::dealii::Vector<typename VECTOR::value_type> dofvalues(dofs_per_cell);
+      const typename VECTOR::value_type *data_store = reinterpret_cast<const typename VECTOR::value_type *>(data);
 
       for (typename std::vector<VECTOR *>::iterator it = all_out.begin();
            it != all_out.end();
            ++it)
         {
-          std::memcpy(&dofvalues(0), data_store, sizeof(double)*dofs_per_cell);
+          std::memcpy(&dofvalues(0), data_store, sizeof(typename VECTOR::value_type)*dofs_per_cell);
           cell->set_dof_values_by_interpolation(dofvalues, *(*it));
           data_store += dofs_per_cell;
         }
index 1a660f0febb80cdfae3afd4bf0fa04b5aa93df92..f7775440319b53e33fd69b3d4961b63cdf958fef 100644 (file)
@@ -514,13 +514,11 @@ namespace internal
     namespace
     {
       template <class VectorType>
-      double
+      typename VectorType::value_type
       get_vector_element (const VectorType &vector,
                           const unsigned int cell_number)
       {
-       // @whattodo Note, there should be a way to get the value type from a VectorType! 
-        // return vector[cell_number];
-       Assert ((false), ExcMessage ("This function is corrupt: @whattodo"));
+        return vector[cell_number];
       }
 
 

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.