]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Initial dummy implementation of higher derivatives.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 18 May 2012 14:04:25 +0000 (14:04 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 18 May 2012 14:04:25 +0000 (14:04 +0000)
git-svn-id: https://svn.dealii.org/branches/branch_higher_derivatives@25519 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/fe/fe.h
deal.II/include/deal.II/fe/fe_update_flags.h
deal.II/source/fe/fe.cc

index c49c12cd81e9dfe7015e9b1c394b7405a5cbc89f..cd32d2eca10d07fa78216f7e5a1d06d1f3f5ffea 100644 (file)
@@ -16,6 +16,8 @@
 #include <deal.II/base/geometry_info.h>
 #include <deal.II/fe/fe_base.h>
 
+#include <boost/any.hpp>
+
 
 DEAL_II_NAMESPACE_OPEN
 
@@ -625,6 +627,26 @@ class FiniteElement : public Subscriptor,
                                                      const Point<dim>   &p,
                                                      const unsigned int component) const;
 
+    /**
+     *
+     * @param i
+     * @param p
+     * @param nth_derivative
+     * @return ...say that the any-type can only store Tensor<nth_derivative,dim>
+     */
+    virtual
+    boost::any
+    shape_nth_derivative (const unsigned int i,
+                          const Point<dim> &p,
+                          const unsigned int nth_derivative) const;
+
+    virtual
+    boost::any
+    shape_nth_derivative_component (const unsigned int i,
+                                    const Point<dim> &p,
+                                    const unsigned int component,
+                                    const unsigned int nth_derivative) const;
+
                                      /**
                                       * Check for non-zero values on a
                                       * face in order to optimize out
index 8b520b2edfbe7c6ee87bb3dc4aaa0224648597d4..4537cbd495351e8af3a73b645e6e6c0c99b21503 100644 (file)
@@ -263,9 +263,16 @@ enum UpdateFlags
                                         * needed for Piola transform
                                         * of Hdiv elements.
                                         */
-      update_piola = update_volume_elements | update_contravariant_transformation
+      update_piola = update_volume_elements | update_contravariant_transformation,
+
+      update_3rd_derivatives = 0x80000,
+      update_4th_derivatives = 0x100000,
+      update_5th_derivatives = 0x200000,
+      update_6th_derivatives = 0x400000
 };
 
+UpdateFlags update_nth_derivatives (const unsigned int nth_derivative);
+
 
 /**
  * Output operator which outputs update flags as a set of or'd text values.
index 4915211f5ad5c43c3a791f7c569a3042192b033d..bf8dea94cd34f36dced37d69feea630918a86200 100644 (file)
@@ -303,6 +303,32 @@ FiniteElement<dim,spacedim>::shape_hessian_component (const unsigned int,
 }
 
 
+
+template <int dim, int spacedim>
+boost::any
+FiniteElement<dim,spacedim>::shape_nth_derivative (const unsigned int,
+                                                     const Point<dim> &,
+                                                     const unsigned int) const
+{
+  AssertThrow(false, ExcUnitShapeValuesDoNotExist());
+  return boost::any ();
+}
+
+
+
+template <int dim, int spacedim>
+boost::any
+FiniteElement<dim,spacedim>::shape_nth_derivative_component(const unsigned int,
+                                                            const Point<dim> &,
+                                                            const unsigned int,
+                                                            const unsigned int) const
+{
+  AssertThrow(false, ExcUnitShapeValuesDoNotExist());
+  return boost::any ();
+}
+
+
+
 template <int dim, int spacedim>
 void
 FiniteElement<dim,spacedim>::reinit_restriction_and_prolongation_matrices (

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.