]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Allow constant modes for FE_RaviartThomas and FE_Nedelec.
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Jan 2014 19:54:31 +0000 (19:54 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Jan 2014 19:54:31 +0000 (19:54 +0000)
git-svn-id: https://svn.dealii.org/trunk@32254 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/fe/fe_nedelec.h
deal.II/include/deal.II/fe/fe_raviart_thomas.h
deal.II/source/fe/fe_nedelec.cc
deal.II/source/fe/fe_raviart_thomas.cc

index 6b15aa1be67715d63af0bf43ee7e57cc2644c40a..81dad103af2f725db6406de9bce67b5921cb2ba8 100644 (file)
@@ -281,6 +281,12 @@ public:
   virtual void interpolate (std::vector<double> &local_dofs,
                             const VectorSlice<const std::vector<std::vector<double> > > &values)
   const;
+
+  /**
+   * Returns a list of constant modes of the element.
+   */
+  virtual Table<2,bool> get_constant_modes () const;
+
   virtual std::size_t memory_consumption () const;
   virtual FiniteElement<dim> *clone() const;
 
index 8f46f9f577311ed3eea9f0920c1ad425f6b20f5d..bda93239da3c6ecc1662a9eca40d16d4ecd9acc6 100644 (file)
@@ -146,6 +146,13 @@ public:
   virtual void interpolate(
     std::vector<double> &local_dofs,
     const VectorSlice<const std::vector<std::vector<double> > > &values) const;
+
+  /**
+   * Returns a list of constant modes of the element. For this element, the
+   * list consists of true arguments for all components.
+   */
+  virtual Table<2,bool> get_constant_modes () const;
+
   virtual std::size_t memory_consumption () const;
   virtual FiniteElement<dim> *clone() const;
 
index f14d8950769f948c8a7b587030671129fb27bee0..61111bb018c054ebe747a5e81580c374a42ce52c 100644 (file)
@@ -5469,6 +5469,19 @@ const
 }
 
 
+
+template <int dim>
+Table<2,bool>
+FE_Nedelec<dim>::get_constant_modes() const
+{
+  Table<2,bool> constant_modes(dim, this->dofs_per_cell);
+  for (unsigned int d=0; d<dim; ++d)
+    for (unsigned int i=0; i<this->dofs_per_cell; ++i)
+      constant_modes(d,i) = true;
+  return constant_modes;
+}
+
+
 template <int dim>
 std::size_t
 FE_Nedelec<dim>::memory_consumption () const
index bf82030640bcf3f18c2936c3298e7ddc0d10da52..22208bae951905cd607824198c15cf99c6d34e6f 100644 (file)
@@ -403,6 +403,19 @@ FE_RaviartThomas<dim>::get_dpo_vector (const unsigned int deg)
 
 
 
+template <int dim>
+Table<2,bool>
+FE_RaviartThomas<dim>::get_constant_modes() const
+{
+  Table<2,bool> constant_modes(dim, this->dofs_per_cell);
+  for (unsigned int d=0; d<dim; ++d)
+    for (unsigned int i=0; i<this->dofs_per_cell; ++i)
+      constant_modes(d,i) = true;
+  return constant_modes;
+}
+
+
+
 //---------------------------------------------------------------------------
 // Data field initialization
 //---------------------------------------------------------------------------
@@ -532,6 +545,7 @@ FE_RaviartThomas<dim>::interpolate(
 }
 
 
+
 template <int dim>
 std::size_t
 FE_RaviartThomas<dim>::memory_consumption () const

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.