]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Override all interpolate() variants in FE_Q_Hierarchical 823/head
authorMatthias Maier <matthias.maier@iwr.uni-heidelberg.de>
Fri, 17 Apr 2015 12:26:56 +0000 (14:26 +0200)
committerMatthias Maier <matthias.maier@iwr.uni-heidelberg.de>
Fri, 17 Apr 2015 12:57:09 +0000 (14:57 +0200)
include/deal.II/fe/fe_q_hierarchical.h
source/fe/fe_bdm.cc
source/fe/fe_q_hierarchical.cc

index 3e4879ecefde9262f1e2e78460fadcd5b459c205..4cb4cd508b93bb59f3d165d4b27a5803b3691511 100644 (file)
@@ -693,15 +693,29 @@ public:
   get_constant_modes () const;
 
   /**
-   * A function to interpolate scalar values, computed at the
-   * support points to the FE_Q_Hierarchical.
-   *
    * This function is not implemented and throws an exception if called.
    */
   virtual
   void interpolate(std::vector<double>       &local_dofs,
                    const std::vector<double> &values) const;
 
+  /**
+   * This function is not implemented and throws an exception if called.
+   */
+  virtual
+  void
+  interpolate(std::vector<double>                &local_dofs,
+              const std::vector<Vector<double> > &values,
+              unsigned int offset = 0) const;
+
+  /**
+   * This function is not implemented and throws an exception if called.
+   */
+  virtual
+  void
+  interpolate(std::vector<double> &local_dofs,
+              const VectorSlice<const std::vector<std::vector<double> > > &values) const;
+
 
 protected:
   /**
index f21a6fe434cec8eee95111dd851d82855b012dd5..e3ba8dc39f1746a974fd1ff9ab6f81d979422668 100644 (file)
@@ -1,6 +1,6 @@
 // ---------------------------------------------------------------------
 //
-// Copyright (C) 2003 - 2014 by the deal.II authors
+// Copyright (C) 2003 - 2015 by the deal.II authors
 //
 // This file is part of the deal.II library.
 //
@@ -165,10 +165,9 @@ FE_BDM<dim>::interpolate(
           ExcDimensionMismatch(values.size(), this->generalized_support_points.size()));
   Assert (local_dofs.size() == this->dofs_per_cell,
           ExcDimensionMismatch(local_dofs.size(),this->dofs_per_cell));
-  // First do interpolation on
-  // faces. There, the component
-  // evaluated depends on the face
-  // direction and orientation.
+
+  // First do interpolation on faces. There, the component evaluated
+  // depends on the face direction and orientation.
   unsigned int fbase = 0;
   unsigned int f=0;
   for (; f<GeometryInfo<dim>::faces_per_cell;
index 9c24bd82cb245abe03c734def6dd4d07b1c1c17a..79f85a7a856b5e2a93354810dafa01d6f7f124a6 100644 (file)
@@ -122,22 +122,39 @@ FE_Q_Hierarchical<dim>::get_name () const
   return namebuf.str();
 }
 
+
+template <int dim>
+void
+FE_Q_Hierarchical<dim>::interpolate(
+  std::vector<double> &,
+  const std::vector<double> &) const
+{
+  // The default implementation assumes that the FE has a delta property,
+  // i.e., values at the support points equal the corresponding DoFs. This
+  // is obviously not the case here.
+  Assert (false, ExcNotImplemented());
+}
+
+
 template <int dim>
 void
 FE_Q_Hierarchical<dim>::interpolate(
-  std::vector<double>       &/*local_dofs*/,
-  const std::vector<double> &/*values*/) const
+  std::vector<double> &,
+  const std::vector<Vector<double> > &,
+  unsigned int) const
 {
-  // The default implementation
-  // assumes that the FE has a delta property,
-  // i.e. values at the support points equal
-  // the corresponding DoFs.
-  // This is obviously not the case here.
-  Assert (false,
-          ExcNotImplemented());
+  Assert (false, ExcNotImplemented());
 }
 
 
+template <int dim>
+void
+FE_Q_Hierarchical<dim>::interpolate(
+  std::vector<double> &local_dofs,
+  const VectorSlice<const std::vector<std::vector<double> > > &values) const
+{
+  Assert (false, ExcNotImplemented());
+}
 
 
 template <int dim>

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.