From: Wolfgang Bangerth <bangerth@math.tamu.edu>
Date: Fri, 13 Sep 2002 21:59:53 +0000 (+0000)
Subject: Constraint matrices are now correct. The nedelec_2 test checks them,
X-Git-Tag: v8.0.0~17557
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd5c540c64b9addf0ce0f68aafff24b93e23b76f;p=dealii.git

Constraint matrices are now correct. The nedelec_2 test checks them,
and I tested their values by hand computation, so they should be ok.


git-svn-id: https://svn.dealii.org/trunk@6421 0785d39b-7218-0410-832d-ea1e28bc413d
---

diff --git a/deal.II/deal.II/source/fe/fe_nedelec_3d.cc b/deal.II/deal.II/source/fe/fe_nedelec_3d.cc
index 869c5d873c..0a90b64961 100644
--- a/deal.II/deal.II/source/fe/fe_nedelec_3d.cc
+++ b/deal.II/deal.II/source/fe/fe_nedelec_3d.cc
@@ -194,8 +194,6 @@ sizeof(FE_Nedelec<3>::Matrices::embedding[0]);
 // Constraint matrices: how do the new value on child faces depend on
 // the values on the mother face if that face has a hanging node
 //
-// TODO: [Anna] check whether the following paragraph is correct. if so, then please multiply the values in the following matrix by two
-
 // Here, the same applies as for the embedding matrices: since the DoF
 // values are not only multiplied by the values of the shape function
 // on the unit cell, but also by the transformation, we have to
@@ -205,18 +203,18 @@ namespace FE_Nedelec_3d
 {
   static const double constraint_q1[] =
   {
-	0, .5, 0, .5,  // first the four interior lines
-	.5, 0, .5, 0,
-	0, .5, 0, .5,
-	.5, 0, .5, 0,
-	1, 0, 0, 0,  // then the two child lines of each of the four outer ones.
-	1, 0, 0, 0,  // since the shape functions are constant on each line, 
-	0, 1, 0, 0,  // the two child lines get the same weights
-	0, 1, 0, 0,
-	0, 0, 1, 0,
-	0, 0, 1, 0,
-	0, 0, 0, 1,
-	0, 0, 0, 1
+	0, .25, 0, .25,  // first the four interior lines
+	.25, 0, .25, 0,
+	0, .25, 0, .25,
+	.25, 0, .25, 0,
+	.5, 0, 0, 0,  // then the two child lines of each of the four outer
+	.5, 0, 0, 0,  // ones. since the shape functions are constant on each
+	0, .5, 0, 0,  // line, the two child lines get the same weights, modulo
+	0, .5, 0, 0,  // the issue with the division by length scaling
+	0, 0, .5, 0,
+	0, 0, .5, 0,
+	0, 0, 0, .5,
+	0, 0, 0, .5
   };
 };