]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Add (face_)?system_to_base_index functions.
authorwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 17 Oct 2002 18:19:47 +0000 (18:19 +0000)
committerwolf <wolf@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 17 Oct 2002 18:19:47 +0000 (18:19 +0000)
git-svn-id: https://svn.dealii.org/trunk@6677 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/fe/fe_base.h
deal.II/doc/news/2002/c-3-4.html

index 9a7c38e6c60e1b7a860719f778e0449fa45f45c5..3f4ca77227d802ac233ac1f2491c038a15ce708c 100644 (file)
@@ -757,8 +757,10 @@ class FiniteElementBase : public Subscriptor,
                                      * that has more than one
                                      * vector-component). For this
                                      * information, refer to the
-                                     * @p{system_to_base_table}
-                                     * field.
+                                     * @p{system_to_base_table} field
+                                     * and the
+                                     * @p{system_to_base_index}
+                                     * function.
                                      */
     std::pair<unsigned int,unsigned int>
     system_to_component_index (const unsigned int index) const;    
@@ -770,6 +772,55 @@ class FiniteElementBase : public Subscriptor,
                                      */
     std::pair<unsigned int,unsigned int>
     face_system_to_component_index (const unsigned int index) const;
+
+                                     /**
+                                      * Return for shape function
+                                      * @p{index} the base element it
+                                      * belongs to, the number of the
+                                      * copy of this base element
+                                      * (which is between zero and the
+                                      * multiplicity of this element),
+                                      * and the index of this shape
+                                      * function within this base
+                                      * element.
+                                      *
+                                      * If the element is not composed of
+                                     * others, then base and instance
+                                     * are always zero, and the index
+                                     * is equal to the number of the
+                                     * shape function. If the element
+                                     * is composed of single
+                                     * instances of other elements
+                                     * (i.e. all with multiplicity
+                                     * one) all of which are scalar,
+                                     * then base values and dof
+                                     * indices within this element
+                                     * are equal to the
+                                     * @p{system_to_component_table}. It
+                                     * differs only in case the
+                                     * element is composed of other
+                                     * elements and at least one of
+                                     * them is vector-valued itself.
+                                     *
+                                     * This function returns valid
+                                     * values also in the case of
+                                     * vector-valued
+                                     * (i.e. non-primitive) shape
+                                     * functions, in contrast to the
+                                     * @p{system_to_component_index}
+                                     * function.
+                                      */
+    std::pair<std::pair<unsigned int, unsigned int>, unsigned int>
+    system_to_base_index (const unsigned int index) const;
+
+                                     /**
+                                      * Same as
+                                      * @p{system_to_base_index}, but
+                                      * for degrees of freedom located
+                                      * on a face.
+                                      */
+    std::pair<std::pair<unsigned int, unsigned int>, unsigned int>
+    face_system_to_base_index (const unsigned int index) const;
     
                                     /**
                                      * Given a vector component,
@@ -1589,9 +1640,35 @@ FiniteElementBase<dim>::face_system_to_component_index (const unsigned int index
           typename FiniteElementBase<dim>::ExcShapeFunctionNotPrimitive(index));
 
   return face_system_to_component_table[index];
+};
+
+
+
+template <int dim>  
+inline
+std::pair<std::pair<unsigned int,unsigned int>,unsigned int>
+FiniteElementBase<dim>::system_to_base_index (const unsigned int index) const
+{
+  Assert (index < system_to_base_table.size(),
+        ExcIndexRange(index, 0, system_to_base_table.size()));
+  return system_to_base_table[index];
 }
 
 
+
+
+template <int dim>  
+inline
+std::pair<std::pair<unsigned int,unsigned int>,unsigned int>
+FiniteElementBase<dim>::face_system_to_base_index (const unsigned int index) const
+{
+  Assert(index < face_system_to_base_table.size(),
+        ExcIndexRange(index, 0, face_system_to_base_table.size()));
+  return face_system_to_base_table[index];
+};
+
+
+
 template <int dim>  
 inline
 std::pair<unsigned int,unsigned int>
index ff1189c7471e58532c8eded07eff044be02649ae..340ac498c9b44307105f3267233545e5261d72c5 100644 (file)
@@ -403,7 +403,17 @@ contributor's names are abbreviated by WB (Wolfgang Bangerth), GK
 
 <ol>
   <li> <p> 
-       Changed: The <code
+       New: The <code
+       class="member">FiniteElement::system_to_base_index</code> function now
+       exports the values of the <code
+       class="member">FiniteElement::system_to_base_table</code> member
+       variable. Likewise for the indices on faces.
+       <br>
+       (WB 2002/10/17)
+       </p>
+
+  <li> <p> 
+       New: The <code
        class="member">FiniteElement::element_multiplicity</code> function was
        previously only available in the <code class="class">FESystem</code>
        class, where it actually returned a non-trivial value. However, in some

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.