]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Change code so that it is also correct wherever we use generic scalar types. 920/head
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 10 May 2015 14:18:14 +0000 (09:18 -0500)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 10 May 2015 14:18:14 +0000 (09:18 -0500)
include/deal.II/meshworker/vector_selector.h
include/deal.II/meshworker/vector_selector.templates.h

index 311e10768e6ac3c5b1538f3fff6ed26df4139244..3fe4390b5ec1b272554d5cf5a5ebb8bff029b572 100644 (file)
@@ -1,6 +1,6 @@
 // ---------------------------------------------------------------------
 //
-// Copyright (C) 2009 - 2014 by the deal.II authors
+// Copyright (C) 2009 - 2015 by the deal.II authors
 //
 // This file is part of the deal.II library.
 //
@@ -172,7 +172,7 @@ namespace MeshWorker
    * @ingroup MeshWorker
    * @author Guido Kanschat, 2009
    */
-  template <int dim, int spacedim = dim>
+  template <int dim, int spacedim = dim, typename Number=double>
   class VectorDataBase :
     public VectorSelector
   {
@@ -200,6 +200,7 @@ namespace MeshWorker
      * Virtual, but empty destructor.
      */
     virtual ~VectorDataBase();
+
     /**
      * The only function added to VectorSelector is an abstract virtual
      * function implemented in the derived class template and called by
@@ -239,9 +240,9 @@ namespace MeshWorker
      * base element.
      */
     virtual void fill(
-      std::vector<std::vector<std::vector<double> > > &values,
-      std::vector<std::vector<std::vector<Tensor<1,dim> > > > &gradients,
-      std::vector<std::vector<std::vector<Tensor<2,dim> > > > &hessians,
+      std::vector<std::vector<std::vector<Number> > > &values,
+      std::vector<std::vector<std::vector<Tensor<1,dim,Number> > > > &gradients,
+      std::vector<std::vector<std::vector<Tensor<2,dim,Number> > > > &hessians,
       const FEValuesBase<dim,spacedim> &fe,
       const std::vector<types::global_dof_index> &index,
       const unsigned int component,
@@ -256,9 +257,9 @@ namespace MeshWorker
      * the active cells.
      */
     virtual void mg_fill(
-      std::vector<std::vector<std::vector<double> > > &values,
-      std::vector<std::vector<std::vector<Tensor<1,dim> > > > &gradients,
-      std::vector<std::vector<std::vector<Tensor<2,dim> > > > &hessians,
+      std::vector<std::vector<std::vector<Number> > > &values,
+      std::vector<std::vector<std::vector<Tensor<1,dim,Number> > > > &gradients,
+      std::vector<std::vector<std::vector<Tensor<2,dim,Number> > > > &hessians,
       const FEValuesBase<dim,spacedim> &fe,
       const unsigned int level,
       const std::vector<types::global_dof_index> &index,
@@ -286,7 +287,7 @@ namespace MeshWorker
    */
   template <class VECTOR, int dim, int spacedim = dim>
   class VectorData :
-    public VectorDataBase<dim, spacedim>
+    public VectorDataBase<dim, spacedim,typename VECTOR::value_type>
   {
   public:
     /**
@@ -359,6 +360,7 @@ namespace MeshWorker
      * Constructor.
      */
     MGVectorData();
+
     /**
      * Constructor using a prefilled VectorSelector
      */
index 925012279deef36289d87958a9ac14104f513cf5..b3fed888c16a322b37d43b40a3469d41728fa690 100644 (file)
@@ -1,6 +1,6 @@
 // ---------------------------------------------------------------------
 //
-// Copyright (C) 2009 - 2014 by the deal.II authors
+// Copyright (C) 2009 - 2015 by the deal.II authors
 //
 // This file is part of the deal.II library.
 //
@@ -22,38 +22,38 @@ DEAL_II_NAMESPACE_OPEN
 
 namespace MeshWorker
 {
-  template <int dim, int spacedim>
-  VectorDataBase<dim, spacedim>::~VectorDataBase()
+  template <int dim, int spacedim, typename Number>
+  VectorDataBase<dim, spacedim, Number>::~VectorDataBase()
   {}
 
 
-  template <int dim, int spacedim>
-  VectorDataBase<dim, spacedim>::VectorDataBase(const VectorSelector &v)
+  template <int dim, int spacedim, typename Number>
+  VectorDataBase<dim, spacedim, Number>::VectorDataBase(const VectorSelector &v)
     :
     VectorSelector(v)
   {}
 
 
-  template <int dim, int spacedim>
-  VectorDataBase<dim, spacedim>::VectorDataBase()
+  template <int dim, int spacedim, typename Number>
+  VectorDataBase<dim, spacedim, Number>::VectorDataBase()
   {}
 
 
-  template <int dim, int spacedim>
+  template <int dim, int spacedim, typename Number>
   void
-  VectorDataBase<dim, spacedim>::initialize(const AnyData &d)
+  VectorDataBase<dim, spacedim, Number>::initialize(const AnyData &d)
   {
     this->data = d;
     VectorSelector::initialize(d);
   }
 
 
-  template <int dim, int spacedim>
+  template <int dim, int spacedim, typename Number>
   void
-  VectorDataBase<dim, spacedim>::fill(
-    std::vector<std::vector<std::vector<double> > > &,
-    std::vector<std::vector<std::vector<Tensor<1,dim> > > > &,
-    std::vector<std::vector<std::vector<Tensor<2,dim> > > > &,
+  VectorDataBase<dim, spacedim, Number>::fill(
+    std::vector<std::vector<std::vector<Number> > > &,
+    std::vector<std::vector<std::vector<Tensor<1,dim,Number> > > > &,
+    std::vector<std::vector<std::vector<Tensor<2,dim,Number> > > > &,
     const FEValuesBase<dim,spacedim> &,
     const std::vector<types::global_dof_index> &,
     const unsigned int,
@@ -65,12 +65,12 @@ namespace MeshWorker
   }
 
 
-  template <int dim, int spacedim>
+  template <int dim, int spacedim, typename Number>
   void
-  VectorDataBase<dim, spacedim>::mg_fill(
-    std::vector<std::vector<std::vector<double> > > &,
-    std::vector<std::vector<std::vector<Tensor<1,dim> > > > &,
-    std::vector<std::vector<std::vector<Tensor<2,dim> > > > &,
+  VectorDataBase<dim, spacedim, Number>::mg_fill(
+    std::vector<std::vector<std::vector<Number> > > &,
+    std::vector<std::vector<std::vector<Tensor<1,dim,Number> > > > &,
+    std::vector<std::vector<std::vector<Tensor<2,dim,Number> > > > &,
     const FEValuesBase<dim,spacedim> &,
     const unsigned int,
     const std::vector<types::global_dof_index> &,
@@ -93,7 +93,7 @@ namespace MeshWorker
   template <class VECTOR, int dim, int spacedim>
   VectorData<VECTOR, dim, spacedim>::VectorData(const VectorSelector &s)
     :
-    VectorDataBase<dim, spacedim>(s)
+    VectorDataBase<dim, spacedim, typename VECTOR::value_type>(s)
   {}
 
 

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.