]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add comment.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 20 Sep 2002 15:32:23 +0000 (15:32 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 20 Sep 2002 15:32:23 +0000 (15:32 +0000)
git-svn-id: https://svn.dealii.org/trunk@6492 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/fe/fe_nedelec.h

index 822e1caabf60943cde9cd14893821897c3b8ab21..01cda3c7d6064c9b8945e6e3636770ef26d37bd7 100644 (file)
@@ -27,11 +27,58 @@ template <int dim> class MappingQ;
  * Implementation of continuous Nedelec elements for the space H_curl.
  *
  * The constructor of this class takes the degree @p{p} of this finite
- * element.
+ * element. However, presently, only lowest order elements
+ * (i.e. @p{p==1}) are implemented.
  *
  *
  * @sect3{Restriction on transformations}
  *
+ * In some sense, the implementation of this element is not complete,
+ * but you will rarely notice. Here is the fact: since the element is
+ * vector-valued already on the unit cell, the Jacobian matrix (or its
+ * inverse) is needed already to generate the @em{values} of the shape
+ * functions on the cells in real space. This is in contrast to most
+ * other elements, where you only need the Jacobian for the
+ * @em{gradients}. Thus, to generate the gradients of Nedelec shape
+ * functions, one would need to have the derivatives of the inverse of
+ * the Jacobian matrix.
+ *
+ * Basically, the Nedelec shape functions can be understood as the
+ * gradients of scalar shape functions on the real cell. They are thus
+ * the inverse Jacobian matrix times the gradients of scalar shape
+ * functions on the unit cell. The gradient of Nedelec shape functions
+ * is then, by the product rule, the sum of first the derovative (with
+ * respect to true coordinates) of the inverse Jacobian times the
+ * gradient (in unit coordinates) of the scalar shape function, plus
+ * second the inverse Jacobian times the derivative (in true
+ * coordinates) of the gradient (in unit coordinates) of the scalar
+ * shape functions. Note that each of the derivatives in true
+ * coordinates can be expressed as inverse Jacobian times gradient in
+ * unit coordinates.
+ *
+ * The problem is the derivative of the inverse Jacobian. * This
+ * rank-3 tensor can actually be computed (and we did so in very early
+ * versions of the library), but is a large task and very time
+ * consuming, so we dropped it. Since it is not available, we simply
+ * drop this first term.
+ *
+ * What this means for the present case: first the computation of
+ * gradients of Nedelec shape functions is wrong. Second, you will not
+ * notice this usually, for two reasons:
+ *
+ * The first reason is that the gradient of the Jacobian vanishes if
+ * the cells are mapped by an affine mapping, to which the usual
+ * bilinear mapping reduces if the cell is a parallelogram. Then the
+ * gradient of the shape functions is computed exact, since the first
+ * term is zero.
+ *
+ * Second, with the Nedelec elements, you will usually want to compute
+ * the curl, and extract and sum up the respective elements of the
+ * full gradient tensor. However, the curl of the Jacobian vanishes,
+ * so for the curl of shape functions the first term is irrelevant,
+ * and the curl will be computed correctly as well.
+ * 
+ * 
  * @sect3{Prolongation and restriction matrices}
  *
  * @sect3{Numbering of the degrees of freedom (DoFs)}

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.