]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
FE_FaceQ should have unit face support points just like FE_DGQ has unit cell support...
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 26 Nov 2012 13:08:18 +0000 (13:08 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 26 Nov 2012 13:08:18 +0000 (13:08 +0000)
git-svn-id: https://svn.dealii.org/trunk@27684 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/source/fe/fe_face.cc
tests/fe/fe_data_test/cmp/generic

index 9ad45b482534f7a3d98d5fd212f303093304e41d..be980ad419c67f03cc23fb8bcb54a4d4664f248b 100644 (file)
@@ -24,7 +24,35 @@ FE_FaceQ<dim,spacedim>::FE_FaceQ (const unsigned int degree)
     TensorProductPolynomials<dim-1>(Polynomials::LagrangeEquidistant::generate_complete_basis(degree)),
     FiniteElementData<dim>(get_dpo_vector(degree), 1, degree, FiniteElementData<dim>::L2),
     std::vector<bool>(1,true))
-{}
+{
+  // initialize unit face support points
+  const unsigned int codim = dim-1;
+  this->unit_face_support_points.resize(Utilities::fixed_power<codim>(this->degree+1));
+
+  if (this->degree == 0)
+    for (unsigned int d=0; d<codim; ++d)
+      this->unit_face_support_points[0][d] = 0.5;
+  else
+    {
+      const double step = 1./this->degree;
+      Point<codim> p;
+  
+      unsigned int k=0;
+      for (unsigned int iz=0; iz <= ((codim>2) ? this->degree : 0) ; ++iz)
+        for (unsigned int iy=0; iy <= ((codim>1) ? this->degree : 0) ; ++iy)
+          for (unsigned int ix=0; ix<=this->degree; ++ix)
+            {
+              p(0) = ix * step;
+              if (codim>1)
+                p(1) = iy * step;
+              if (codim>2)
+                p(2) = iz * step;
+              
+              this->unit_face_support_points[k++] = p;
+            }
+      AssertDimension (k, this->unit_face_support_points.size());
+    }
+}
 
 
 template <int dim, int spacedim>
index 21b24f87520cc797f6b4f012a67046f9fe9c0d2f..b9bf82669104b8aba311155f68c4f67b5407b1e8 100644 (file)
@@ -1024,9 +1024,9 @@ DEAL::blocks=1:[4]->4
 DEAL::degree=0
 DEAL::conformity= L2
 DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=1
 DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=1
 DEAL::face_to_equivalent_cell_index: 0
 DEAL::face_to_cell_index: 0
 DEAL::face_to_cell_index: 1
@@ -1055,9 +1055,9 @@ DEAL::blocks=1:[8]->8
 DEAL::degree=1
 DEAL::conformity= L2
 DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=2
 DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=2
 DEAL::face_to_equivalent_cell_index: 0 1
 DEAL::face_to_cell_index: 0 1
 DEAL::face_to_cell_index: 2 3
@@ -1086,9 +1086,9 @@ DEAL::blocks=1:[16]->16
 DEAL::degree=3
 DEAL::conformity= L2
 DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=4
 DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=4
 DEAL::face_to_equivalent_cell_index: 0 1 2 3
 DEAL::face_to_cell_index: 0 1 2 3
 DEAL::face_to_cell_index: 4 5 6 7
@@ -2351,9 +2351,9 @@ DEAL::blocks=1:[6]->6
 DEAL::degree=0
 DEAL::conformity= L2
 DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=1
 DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=1
 DEAL::face_to_equivalent_cell_index: 0
 DEAL::face_to_cell_index: 0
 DEAL::face_to_cell_index: 1
@@ -2386,9 +2386,9 @@ DEAL::blocks=1:[24]->24
 DEAL::degree=1
 DEAL::conformity= L2
 DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=4
 DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=4
 DEAL::face_to_equivalent_cell_index: 0 1 2 3
 DEAL::face_to_cell_index: 0 1 2 3
 DEAL::face_to_cell_index: 4 5 6 7
@@ -2421,9 +2421,9 @@ DEAL::blocks=1:[96]->96
 DEAL::degree=3
 DEAL::conformity= L2
 DEAL::unit_support_points=0
-DEAL::unit_face_support_points=0
+DEAL::unit_face_support_points=16
 DEAL::generalized_support_points=0
-DEAL::generalized_face_support_points=0
+DEAL::generalized_face_support_points=16
 DEAL::face_to_equivalent_cell_index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 DEAL::face_to_cell_index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
 DEAL::face_to_cell_index: 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

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.