]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Store full fe in dofhandler
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Fri, 4 Sep 1998 13:02:13 +0000 (13:02 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Fri, 4 Sep 1998 13:02:13 +0000 (13:02 +0000)
git-svn-id: https://svn.dealii.org/trunk@563 0785d39b-7218-0410-832d-ea1e28bc413d

13 files changed:
deal.II/deal.II/Todo
deal.II/deal.II/include/dofs/dof_handler.h
deal.II/deal.II/include/fe/fe_update_flags.h
deal.II/deal.II/include/numerics/vectors.h
deal.II/deal.II/source/dofs/dof_accessor.cc
deal.II/deal.II/source/dofs/dof_handler.cc
deal.II/deal.II/source/dofs/mg_dof_accessor.cc
deal.II/deal.II/source/fe/fe_values.cc
deal.II/deal.II/source/multigrid/mg_dof_accessor.cc
deal.II/deal.II/source/numerics/assembler.cc
deal.II/deal.II/source/numerics/data_io.cc
deal.II/deal.II/source/numerics/matrices.cc
deal.II/deal.II/source/numerics/vectors.cc

index 3317b2cd1b15a4c2407be9ac6f4d92eaed194b62..38ac430e50722ebe91a5b612881d825195904e81 100644 (file)
@@ -162,11 +162,13 @@ Why are there all these unsafe casts from VectorBase to dVector
 
 Use unsigned integers for the colnums array in dSMatrixStruct. This
   would enhance safety since colnum=-1 would no longer point to a
-  valid address.
+  valid address. How do you mark non-used columns? (gk)
 
 Let dSMatrixStruct::compress free the memory of colnums which is
   no longer needed.
 
-FeValues: Replace 'ansatz', add flexibility for update flags and put
-the element into the constructor
+FeValues: add flexibility for update flags
 
+Remove all fe& in vectors.h
+
+Collection of transfer matrices: how to design?
index 63a48234c4ef2449bf7668510d148f9b8d544f7f..3e10c7e97b7c94ce346dd23d86b88e28a5a61379 100644 (file)
@@ -8,9 +8,7 @@
 #include <vector>
 #include <map>
 #include <base/exceptions.h>
-
-
-
+#include <base/smartpointer.h>
 
 template <int dim> class TriaAccessor;
 template <int dim> class LineAccessor;
@@ -481,7 +479,7 @@ class DoFHandler : public DoFDimensionInfo<dim> {
     DoFHandler (Triangulation<dim> *tria);
 
                                     /**
-                                     * Destructor
+                                     * Destructor.
                                      */
     virtual ~DoFHandler ();
     
@@ -1244,7 +1242,7 @@ class DoFHandler : public DoFDimensionInfo<dim> {
                                      * function is inline, so it should
                                      * be reasonably fast.
                                      */
-    const FiniteElementBase<dim> & get_selected_fe () const;
+    const FiniteElementBase<dim> & get_fe () const;
 
                                     /**
                                      * Return a constant reference to the
@@ -1326,7 +1324,7 @@ class DoFHandler : public DoFDimensionInfo<dim> {
                                      * dofs per line, but also restriction
                                      * and prolongation matrices, etc.
                                      */
-    const FiniteElementBase<dim>   *selected_fe;
+    SmartPointer<const FiniteElementBase<dim> > selected_fe;
 
   private:
                                     /**
@@ -1425,7 +1423,7 @@ class DoFHandler : public DoFDimensionInfo<dim> {
 
 template <int dim>
 inline
-const FiniteElementBase<dim> & DoFHandler<dim>::get_selected_fe () const {
+const FiniteElementBase<dim> & DoFHandler<dim>::get_fe () const {
   return *selected_fe;
 };
 
index e001abbabe7d1fcf41e9565953fdb67ba020aee0..46d729bb595c7c797b99fa0592f97dccc5ccad4f 100644 (file)
@@ -45,15 +45,15 @@ enum UpdateFlags {
       update_JxW_values = 8,
                                       /**
                                        * Compute the points on the real cell
-                                       * on which the ansatz functions are
+                                       * on which the trial functions are
                                        * located.
                                        *
                                        * Giving this flag to the
                                        * #FESubfaceValues# class will result
-                                       * in an error, since ansatz points are
+                                       * in an error, since support points are
                                        * not useful in that case.
                                        */
-      update_ansatz_points = 16,
+      update_support_points = 16,
                                       /**
                                        * Update the outward normal vectors
                                        * to the face relative to this cell.
index 6b4f3903632db4a4c6fcdfa17cb9be47ece8d8d5..1db1ff93dbdd9992214f35558d4ba3e894d30c0f 100644 (file)
@@ -60,8 +60,8 @@ enum NormType {
  *   created the value of the function given as argument. This is identical
  *   to saying that the resulting finite element function (which is isomorphic
  *   to the output vector) has exact function values in all off-points of
- *   ansatz functions. The off-point of an ansatz function is the point where
- *   it assumes its nominal value, e.g. for linear ansatz functions the
+ *   trial functions. The off-point of an trial function is the point where
+ *   it assumes its nominal value, e.g. for linear trial functions the
  *   off-points are th corners of an element. This function therefore relies
  *   on the assumption that a finite element is used for which the degrees
  *   of freedom are function values (Lagrange elements) rather than gradients,
@@ -70,7 +70,7 @@ enum NormType {
  *
  *   It seems inevitable that some values of the vector to be created are set
  *   twice or even more than that. The reason is that we have to loop over
- *   all cells and get the function values for each of the ansatz functions
+ *   all cells and get the function values for each of the trial functions
  *   located thereon. This applies also to the functions located on faces and
  *   corners which we thus visit more than once. While setting the value
  *   in the vector is not an expensive operation, the evaluation of the
@@ -267,7 +267,7 @@ class VectorTools {
 
                                     /**
                                      * Compute the interpolation of
-                                     * #function# at the ansatz points to
+                                     * #function# at the support points to
                                      * the finite element space.
                                      *
                                      * See the general documentation of this
@@ -279,6 +279,24 @@ class VectorTools {
                             const Function<dim>      &function,
                             dVector                  &vec);
 
+                                  /**
+                                   * Interpolate different finite element
+                                   * spaces. The interpolation is
+                                   * executed from the higher order
+                                   * space represented by #high# to
+                                   the lower order space
+                                   #low#. The interpolation on each
+                                   cell is represented by the matrix
+                                   #transfer#. Curved boundaries are
+                                   neglected so far.
+                                  */
+  static void interpolate(const DoFHandler<dim>    &high_dof,
+                         const DoFHandler<dim>    &low_dof,
+                         const dFMatrix& transfer,
+                         const dVector& high,
+                         dVector& low);
+  
+                         
                                     /**
                                      * Compute the projection of
                                      * #function# to the finite element space.
index 748a34e767765e0f2e05813068ef0aecbd5bf524..440af1b02a7d5c25c75c6e8bce7019d7e653d3cd 100644 (file)
@@ -99,12 +99,12 @@ void
 DoFLineAccessor<dim,BaseClass>::get_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
-  Assert (dof_indices.size() == (2*dof_handler->get_selected_fe().dofs_per_vertex +
-                                dof_handler->get_selected_fe().dofs_per_line),
+  Assert (dof_indices.size() == (2*dof_handler->get_fe().dofs_per_vertex +
+                                dof_handler->get_fe().dofs_per_line),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line;
   vector<int>::iterator next = dof_indices.begin();
   for (unsigned int vertex=0; vertex<2; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -138,8 +138,8 @@ distribute_local_to_global (const dVector &local_source,
                            dVector       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
-  Assert (local_source.size() == (2*dof_handler->get_selected_fe().dofs_per_vertex +
-                                 dof_handler->get_selected_fe().dofs_per_line),
+  Assert (local_source.size() == (2*dof_handler->get_fe().dofs_per_vertex +
+                                 dof_handler->get_fe().dofs_per_line),
          ExcVectorDoesNotMatch());
   Assert (dof_handler->n_dofs() == global_destination.size(),
          ExcVectorDoesNotMatch());
@@ -163,8 +163,8 @@ distribute_local_to_global (const dFMatrix &local_source,
                            dSMatrix       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
-  Assert (local_source.m() == (2*dof_handler->get_selected_fe().dofs_per_vertex +
-                              dof_handler->get_selected_fe().dofs_per_line),
+  Assert (local_source.m() == (2*dof_handler->get_fe().dofs_per_vertex +
+                              dof_handler->get_fe().dofs_per_line),
          ExcVectorDoesNotMatch());
   Assert (local_source.m() == local_source.n(),
          ExcMatrixDoesNotMatch());
@@ -271,14 +271,14 @@ void
 DoFQuadAccessor<dim,BaseClass>::get_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
-  Assert (dof_indices.size() == (4*dof_handler->get_selected_fe().dofs_per_vertex +
-                                4*dof_handler->get_selected_fe().dofs_per_line +
-                                dof_handler->get_selected_fe().dofs_per_quad),
+  Assert (dof_indices.size() == (4*dof_handler->get_fe().dofs_per_vertex +
+                                4*dof_handler->get_fe().dofs_per_line +
+                                dof_handler->get_fe().dofs_per_quad),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line,
-                    dofs_per_quad   = dof_handler->get_selected_fe().dofs_per_quad;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line,
+                    dofs_per_quad   = dof_handler->get_fe().dofs_per_quad;
   vector<int>::iterator next = dof_indices.begin();
   for (unsigned int vertex=0; vertex<4; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -331,9 +331,9 @@ distribute_local_to_global (const dVector &local_source,
                            dVector       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
-  Assert (local_source.size() == (4*dof_handler->get_selected_fe().dofs_per_vertex +
-                                 4*dof_handler->get_selected_fe().dofs_per_line +
-                                 dof_handler->get_selected_fe().dofs_per_quad),
+  Assert (local_source.size() == (4*dof_handler->get_fe().dofs_per_vertex +
+                                 4*dof_handler->get_fe().dofs_per_line +
+                                 dof_handler->get_fe().dofs_per_quad),
          ExcVectorDoesNotMatch());
   Assert (dof_handler->n_dofs() == global_destination.size(),
          ExcVectorDoesNotMatch());
@@ -357,9 +357,9 @@ distribute_local_to_global (const dFMatrix &local_source,
                            dSMatrix       &global_destination) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (dof_handler->selected_fe != 0, ExcInvalidObject());
-  Assert (local_source.m() == (4*dof_handler->get_selected_fe().dofs_per_vertex +
-                              4*dof_handler->get_selected_fe().dofs_per_line +
-                              dof_handler->get_selected_fe().dofs_per_quad),
+  Assert (local_source.m() == (4*dof_handler->get_fe().dofs_per_vertex +
+                              4*dof_handler->get_fe().dofs_per_line +
+                              dof_handler->get_fe().dofs_per_quad),
          ExcMatrixDoesNotMatch());
   Assert (local_source.m() == local_source.n(),
          ExcMatrixDoesNotMatch());
@@ -443,14 +443,14 @@ void
 DoFCellAccessor<1>::get_dof_values (const dVector &values,
                                    dVector       &dof_values) const {
   Assert (dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_values.size() == dof_handler->get_selected_fe().total_dofs,
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_values.size() == dof_handler->get_fe().total_dofs,
          ExcVectorDoesNotMatch());
   Assert (values.size() == dof_handler->n_dofs(),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line;
   vector<double>::iterator next_dof_value=dof_values.begin();
   for (unsigned int vertex=0; vertex<2; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -478,15 +478,15 @@ void
 DoFCellAccessor<2>::get_dof_values (const dVector &values,
                                    dVector       &dof_values) const {
   Assert (dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_values.size() == dof_handler->get_selected_fe().total_dofs,
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_values.size() == dof_handler->get_fe().total_dofs,
          ExcVectorDoesNotMatch());
   Assert (values.size() == dof_handler->n_dofs(),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line,
-                    dofs_per_quad   = dof_handler->get_selected_fe().dofs_per_quad;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line,
+                    dofs_per_quad   = dof_handler->get_fe().dofs_per_quad;
   vector<double>::iterator next_dof_value=dof_values.begin();
   for (unsigned int vertex=0; vertex<4; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
index 87cd0e7cdeacc8cd184612630cdf34cf51f82a39..b24f9fbfad0e8744a146bced4c5a3e16ba765574 100644 (file)
 template <int dim>
 DoFHandler<dim>::DoFHandler (Triangulation<dim> *tria) :
                tria(tria),
-               selected_fe (0),
                used_dofs (0) {};
 
 
 template <int dim>
-DoFHandler<dim>::~DoFHandler () {
-  if (selected_fe != 0)
-    delete selected_fe;
-};
+DoFHandler<dim>::~DoFHandler ()
+{}
 
 
 
@@ -885,11 +882,11 @@ const Triangulation<dim> & DoFHandler<dim>::get_tria () const {
 
 
 template <int dim>
-void DoFHandler<dim>::distribute_dofs (const FiniteElementBase<dim> &fe) {
+void DoFHandler<dim>::distribute_dofs (const FiniteElementBase<dim> &ff) {
   Assert (tria->n_levels() > 0, ExcInvalidTriangulation());
   
-  if (selected_fe != 0) delete selected_fe;
-  selected_fe = new FiniteElementBase<dim>(fe);
+  selected_fe = &ff;
+  
   reserve_space ();
 
                                   // clear user flags because we will
index 1a2ac9787944e090a139501ab727ab9a6bc6e672..49b7f9c6616ddbef78e56ece3a6411ddbbcced76 100644 (file)
@@ -37,12 +37,12 @@ int MGDoFLineAccessor<dim,BaseClass>::mg_dof_index (const unsigned int i) const
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_line,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_line));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_line,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_line));
 
   return mg_dof_handler->mg_levels[present_level]
-    ->line_dofs[present_index*dof_handler->get_selected_fe().dofs_per_line+i];
+    ->line_dofs[present_index*dof_handler->get_fe().dofs_per_line+i];
 };
 
 
@@ -56,12 +56,12 @@ void MGDoFLineAccessor<dim,BaseClass>::set_mg_dof_index (const unsigned int i,
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_line,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_line));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_line,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_line));
 
   mg_dof_handler->mg_levels[present_level]
-    ->line_dofs[present_index*dof_handler->get_selected_fe().dofs_per_line+i] = index;
+    ->line_dofs[present_index*dof_handler->get_fe().dofs_per_line+i] = index;
 };
 
 
@@ -72,13 +72,13 @@ int MGDoFLineAccessor<dim,BaseClass>::mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<2, ExcInvalidIndex (i,0,2));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
 
   return (mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-         .get_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex));
+         .get_index (present_level, i, dof_handler->get_fe().dofs_per_vertex));
 };
 
 
@@ -89,13 +89,13 @@ void MGDoFLineAccessor<dim,BaseClass>::set_mg_vertex_dof_index (const unsigned i
                                                                const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<2, ExcInvalidIndex (i,0,2));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
 
   mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-    .set_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex, index);
+    .set_index (present_level, i, dof_handler->get_fe().dofs_per_vertex, index);
 };
 
 
@@ -105,13 +105,13 @@ void
 MGDoFLineAccessor<dim,BaseClass>::get_mg_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_indices.size() == (2*dof_handler->get_selected_fe().dofs_per_vertex +
-                                dof_handler->get_selected_fe().dofs_per_line),
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_indices.size() == (2*dof_handler->get_fe().dofs_per_vertex +
+                                dof_handler->get_fe().dofs_per_line),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line;
   vector<int>::iterator next = dof_indices.begin();
   for (unsigned int vertex=0; vertex<2; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -168,12 +168,12 @@ int MGDoFQuadAccessor<dim,BaseClass>::mg_dof_index (const unsigned int i) const
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_quad,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_quad));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_quad,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_quad));
 
   return mg_dof_handler->mg_levels[present_level]
-    ->quad_dofs[present_index*dof_handler->get_selected_fe().dofs_per_quad+i];
+    ->quad_dofs[present_index*dof_handler->get_fe().dofs_per_quad+i];
 };
 
 
@@ -185,12 +185,12 @@ void MGDoFQuadAccessor<dim,BaseClass>::set_mg_dof_index (const unsigned int i,
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_quad,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_quad));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_quad,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_quad));
 
   mg_dof_handler->mg_levels[present_level]
-    ->quad_dofs[present_index*dof_handler->get_selected_fe().dofs_per_quad+i] = index;
+    ->quad_dofs[present_index*dof_handler->get_fe().dofs_per_quad+i] = index;
 };
 
 
@@ -201,13 +201,13 @@ int MGDoFQuadAccessor<dim,BaseClass>::mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<4, ExcInvalidIndex (i,0,4));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
   
   return (mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-         .get_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex));
+         .get_index (present_level, i, dof_handler->get_fe().dofs_per_vertex));
 };
 
 
@@ -218,13 +218,13 @@ void MGDoFQuadAccessor<dim,BaseClass>::set_mg_vertex_dof_index (const unsigned i
                                                                const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<4, ExcInvalidIndex (i,0,4));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
 
   mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-    .set_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex, index);
+    .set_index (present_level, i, dof_handler->get_fe().dofs_per_vertex, index);
 };
 
 
@@ -234,15 +234,15 @@ void
 MGDoFQuadAccessor<dim,BaseClass>::get_mg_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_indices.size() == (4*dof_handler->get_selected_fe().dofs_per_vertex +
-                                4*dof_handler->get_selected_fe().dofs_per_line +
-                                dof_handler->get_selected_fe().dofs_per_quad),
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_indices.size() == (4*dof_handler->get_fe().dofs_per_vertex +
+                                4*dof_handler->get_fe().dofs_per_line +
+                                dof_handler->get_fe().dofs_per_quad),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line,
-                    dofs_per_quad   = dof_handler->get_selected_fe().dofs_per_quad;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line,
+                    dofs_per_quad   = dof_handler->get_fe().dofs_per_quad;
   vector<int>::iterator next = dof_indices.begin();
   for (unsigned int vertex=0; vertex<4; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -353,14 +353,14 @@ MGDoFCellAccessor<1>::get_mg_dof_values (const dVector &values,
                                         dVector       &dof_values) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_values.size() == dof_handler->get_selected_fe().total_dofs,
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_values.size() == dof_handler->get_fe().total_dofs,
          ExcVectorDoesNotMatch());
   Assert (values.size() == dof_handler->n_dofs(),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line;
   vector<double>::iterator next_dof_value=dof_values.begin();
   for (unsigned int vertex=0; vertex<2; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -389,15 +389,15 @@ MGDoFCellAccessor<2>::get_mg_dof_values (const dVector &values,
                                         dVector       &dof_values) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_values.size() == dof_handler->get_selected_fe().total_dofs,
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_values.size() == dof_handler->get_fe().total_dofs,
          ExcVectorDoesNotMatch());
   Assert (values.size() == dof_handler->n_dofs(),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line,
-                    dofs_per_quad   = dof_handler->get_selected_fe().dofs_per_quad;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line,
+                    dofs_per_quad   = dof_handler->get_fe().dofs_per_quad;
   vector<double>::iterator next_dof_value=dof_values.begin();
   for (unsigned int vertex=0; vertex<4; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
index 27b8320022c04774b5e6fa83c845904a8bf0c032..ff0c29c378e154eb5e7640ea4a07d239fa9522e4 100644 (file)
@@ -17,7 +17,7 @@
 
 template <int dim>
 FEValuesBase<dim>::FEValuesBase (const unsigned int n_q_points,
-                                const unsigned int n_ansatz_points,
+                                const unsigned int n_support_points,
                                 const unsigned int n_dofs,
                                 const unsigned int n_transform_functions,
                                 const unsigned int n_values_arrays,
@@ -30,7 +30,7 @@ FEValuesBase<dim>::FEValuesBase (const unsigned int n_q_points,
                weights (n_q_points, 0),
                JxW_values (n_q_points, 0),
                quadrature_points (n_q_points, Point<dim>()),
-               ansatz_points (n_ansatz_points, Point<dim>()),
+               support_points (n_support_points, Point<dim>()),
                jacobi_matrices (n_q_points, dFMatrix(dim,dim)),
                shape_values_transform (n_values_arrays,
                                        dFMatrix(n_transform_functions,
@@ -72,7 +72,7 @@ void FEValuesBase<dim>::get_function_values (const dVector  &fe_function,
                                   // initialize with zero
   fill_n (values.begin(), n_quadrature_points, 0);
 
-                                  // add up contributions of ansatz
+                                  // add up contributions of trial
                                   // functions
   for (unsigned int point=0; point<n_quadrature_points; ++point)
     for (unsigned int shape_func=0; shape_func<total_dofs; ++shape_func)
@@ -111,7 +111,7 @@ void FEValuesBase<dim>::get_function_grads (const dVector       &fe_function,
                                   // initialize with zero
   fill_n (gradients.begin(), n_quadrature_points, Point<dim>());
 
-                                  // add up contributions of ansatz
+                                  // add up contributions of trial
                                   // functions
   for (unsigned int point=0; point<n_quadrature_points; ++point)
     for (unsigned int shape_func=0; shape_func<total_dofs; ++shape_func)
@@ -132,11 +132,11 @@ const Point<dim> & FEValuesBase<dim>::quadrature_point (const unsigned int i) co
 
 
 template <int dim>
-const Point<dim> & FEValuesBase<dim>::ansatz_point (const unsigned int i) const {
-  Assert (i<ansatz_points.size(), ExcInvalidIndex(i, ansatz_points.size()));
-  Assert (update_flags & update_ansatz_points, ExcAccessToUninitializedField());
+const Point<dim> & FEValuesBase<dim>::support_point (const unsigned int i) const {
+  Assert (i<support_points.size(), ExcInvalidIndex(i, support_points.size()));
+  Assert (update_flags & update_support_points, ExcAccessToUninitializedField());
   
-  return ansatz_points[i];
+  return support_points[i];
 };
 
 
@@ -210,15 +210,15 @@ void FEValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &cell,
       (update_flags & update_JxW_values)||
       (update_flags & update_q_points)  ||
       (update_flags & update_gradients) ||
-      (update_flags & update_ansatz_points))
+      (update_flags & update_support_points))
     fe->fill_fe_values (cell,
                       unit_quadrature_points,
                       jacobi_matrices,
                       update_flags & (update_jacobians  |
                                       update_JxW_values |
                                       update_gradients),
-                      ansatz_points,
-                      update_flags & update_ansatz_points,
+                      support_points,
+                      update_flags & update_support_points,
                       quadrature_points,
                       update_flags & update_q_points,
                       shape_values_transform[0], unit_shape_gradients_transform,
@@ -262,13 +262,13 @@ void FEValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &cell,
 
 template <int dim>
 FEFaceValuesBase<dim>::FEFaceValuesBase (const unsigned int n_q_points,
-                                        const unsigned int n_ansatz_points,
+                                        const unsigned int n_support_points,
                                         const unsigned int n_dofs,
                                         const unsigned int n_transform_functions,
                                         const unsigned int n_faces_or_subfaces,
                                         const UpdateFlags update_flags) :
                FEValuesBase<dim> (n_q_points,
-                                  n_ansatz_points,
+                                  n_support_points,
                                   n_dofs,
                                   n_transform_functions,
                                   n_faces_or_subfaces,
@@ -363,7 +363,7 @@ void FEFaceValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &c
       (update_flags & update_JxW_values)||
       (update_flags & update_q_points)  ||
       (update_flags & update_gradients) ||
-      (update_flags & update_ansatz_points) ||
+      (update_flags & update_support_points) ||
       (update_flags & update_JxW_values))
     fe->fill_fe_face_values (cell,
                            face_no,
@@ -373,8 +373,8 @@ void FEFaceValues<dim>::reinit (const typename DoFHandler<dim>::cell_iterator &c
                            update_flags & (update_jacobians |
                                            update_gradients |
                                            update_JxW_values),
-                           ansatz_points,
-                           update_flags & update_ansatz_points,
+                           support_points,
+                           update_flags & update_support_points,
                            quadrature_points,
                            update_flags & update_q_points,
                            face_jacobi_determinants,
@@ -435,7 +435,7 @@ FESubfaceValues<dim>::FESubfaceValues (const FiniteElement<dim> &fe,
                                       update_flags),
                fe(&fe)
 {
-  Assert ((update_flags & update_ansatz_points) == false,
+  Assert ((update_flags & update_support_points) == false,
          ExcInvalidUpdateFlag());
   
   unit_face_quadrature_points = quadrature.get_quad_points();
index 1a2ac9787944e090a139501ab727ab9a6bc6e672..49b7f9c6616ddbef78e56ece3a6411ddbbcced76 100644 (file)
@@ -37,12 +37,12 @@ int MGDoFLineAccessor<dim,BaseClass>::mg_dof_index (const unsigned int i) const
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_line,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_line));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_line,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_line));
 
   return mg_dof_handler->mg_levels[present_level]
-    ->line_dofs[present_index*dof_handler->get_selected_fe().dofs_per_line+i];
+    ->line_dofs[present_index*dof_handler->get_fe().dofs_per_line+i];
 };
 
 
@@ -56,12 +56,12 @@ void MGDoFLineAccessor<dim,BaseClass>::set_mg_dof_index (const unsigned int i,
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_line,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_line));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_line,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_line));
 
   mg_dof_handler->mg_levels[present_level]
-    ->line_dofs[present_index*dof_handler->get_selected_fe().dofs_per_line+i] = index;
+    ->line_dofs[present_index*dof_handler->get_fe().dofs_per_line+i] = index;
 };
 
 
@@ -72,13 +72,13 @@ int MGDoFLineAccessor<dim,BaseClass>::mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<2, ExcInvalidIndex (i,0,2));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
 
   return (mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-         .get_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex));
+         .get_index (present_level, i, dof_handler->get_fe().dofs_per_vertex));
 };
 
 
@@ -89,13 +89,13 @@ void MGDoFLineAccessor<dim,BaseClass>::set_mg_vertex_dof_index (const unsigned i
                                                                const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<2, ExcInvalidIndex (i,0,2));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
 
   mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-    .set_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex, index);
+    .set_index (present_level, i, dof_handler->get_fe().dofs_per_vertex, index);
 };
 
 
@@ -105,13 +105,13 @@ void
 MGDoFLineAccessor<dim,BaseClass>::get_mg_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_indices.size() == (2*dof_handler->get_selected_fe().dofs_per_vertex +
-                                dof_handler->get_selected_fe().dofs_per_line),
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_indices.size() == (2*dof_handler->get_fe().dofs_per_vertex +
+                                dof_handler->get_fe().dofs_per_line),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line;
   vector<int>::iterator next = dof_indices.begin();
   for (unsigned int vertex=0; vertex<2; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -168,12 +168,12 @@ int MGDoFQuadAccessor<dim,BaseClass>::mg_dof_index (const unsigned int i) const
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_quad,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_quad));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_quad,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_quad));
 
   return mg_dof_handler->mg_levels[present_level]
-    ->quad_dofs[present_index*dof_handler->get_selected_fe().dofs_per_quad+i];
+    ->quad_dofs[present_index*dof_handler->get_fe().dofs_per_quad+i];
 };
 
 
@@ -185,12 +185,12 @@ void MGDoFQuadAccessor<dim,BaseClass>::set_mg_dof_index (const unsigned int i,
   Assert (mg_dof_handler != 0, ExcInvalidObject());
                                   // make sure a FE has been selected
                                   // and enough room was reserved
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (i<dof_handler->get_selected_fe().dofs_per_quad,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_quad));
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (i<dof_handler->get_fe().dofs_per_quad,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_quad));
 
   mg_dof_handler->mg_levels[present_level]
-    ->quad_dofs[present_index*dof_handler->get_selected_fe().dofs_per_quad+i] = index;
+    ->quad_dofs[present_index*dof_handler->get_fe().dofs_per_quad+i] = index;
 };
 
 
@@ -201,13 +201,13 @@ int MGDoFQuadAccessor<dim,BaseClass>::mg_vertex_dof_index (const unsigned int ve
                                                           const unsigned int i) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<4, ExcInvalidIndex (i,0,4));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
   
   return (mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-         .get_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex));
+         .get_index (present_level, i, dof_handler->get_fe().dofs_per_vertex));
 };
 
 
@@ -218,13 +218,13 @@ void MGDoFQuadAccessor<dim,BaseClass>::set_mg_vertex_dof_index (const unsigned i
                                                                const int index) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
   Assert (vertex<4, ExcInvalidIndex (i,0,4));
-  Assert (i<dof_handler->get_selected_fe().dofs_per_vertex,
-         ExcInvalidIndex (i, 0, dof_handler->get_selected_fe().dofs_per_vertex));
+  Assert (i<dof_handler->get_fe().dofs_per_vertex,
+         ExcInvalidIndex (i, 0, dof_handler->get_fe().dofs_per_vertex));
 
   mg_dof_handler->mg_vertex_dofs[vertex_index(vertex)]
-    .set_index (present_level, i, dof_handler->get_selected_fe().dofs_per_vertex, index);
+    .set_index (present_level, i, dof_handler->get_fe().dofs_per_vertex, index);
 };
 
 
@@ -234,15 +234,15 @@ void
 MGDoFQuadAccessor<dim,BaseClass>::get_mg_dof_indices (vector<int> &dof_indices) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_indices.size() == (4*dof_handler->get_selected_fe().dofs_per_vertex +
-                                4*dof_handler->get_selected_fe().dofs_per_line +
-                                dof_handler->get_selected_fe().dofs_per_quad),
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_indices.size() == (4*dof_handler->get_fe().dofs_per_vertex +
+                                4*dof_handler->get_fe().dofs_per_line +
+                                dof_handler->get_fe().dofs_per_quad),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line,
-                    dofs_per_quad   = dof_handler->get_selected_fe().dofs_per_quad;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line,
+                    dofs_per_quad   = dof_handler->get_fe().dofs_per_quad;
   vector<int>::iterator next = dof_indices.begin();
   for (unsigned int vertex=0; vertex<4; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -353,14 +353,14 @@ MGDoFCellAccessor<1>::get_mg_dof_values (const dVector &values,
                                         dVector       &dof_values) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_values.size() == dof_handler->get_selected_fe().total_dofs,
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_values.size() == dof_handler->get_fe().total_dofs,
          ExcVectorDoesNotMatch());
   Assert (values.size() == dof_handler->n_dofs(),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line;
   vector<double>::iterator next_dof_value=dof_values.begin();
   for (unsigned int vertex=0; vertex<2; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
@@ -389,15 +389,15 @@ MGDoFCellAccessor<2>::get_mg_dof_values (const dVector &values,
                                         dVector       &dof_values) const {
   Assert (dof_handler != 0, ExcInvalidObject());
   Assert (mg_dof_handler != 0, ExcInvalidObject());
-  Assert (&dof_handler->get_selected_fe() != 0, ExcInvalidObject());
-  Assert (dof_values.size() == dof_handler->get_selected_fe().total_dofs,
+  Assert (&dof_handler->get_fe() != 0, ExcInvalidObject());
+  Assert (dof_values.size() == dof_handler->get_fe().total_dofs,
          ExcVectorDoesNotMatch());
   Assert (values.size() == dof_handler->n_dofs(),
          ExcVectorDoesNotMatch());
 
-  const unsigned int dofs_per_vertex = dof_handler->get_selected_fe().dofs_per_vertex,
-                    dofs_per_line   = dof_handler->get_selected_fe().dofs_per_line,
-                    dofs_per_quad   = dof_handler->get_selected_fe().dofs_per_quad;
+  const unsigned int dofs_per_vertex = dof_handler->get_fe().dofs_per_vertex,
+                    dofs_per_line   = dof_handler->get_fe().dofs_per_line,
+                    dofs_per_quad   = dof_handler->get_fe().dofs_per_quad;
   vector<double>::iterator next_dof_value=dof_values.begin();
   for (unsigned int vertex=0; vertex<4; ++vertex)
     for (unsigned int d=0; d<dofs_per_vertex; ++d)
index 1cec0d6cbeb0553173a0b45d08a91af20edd37f8..d7cb940ef1967db129246650c5e01c1d5034e27a 100644 (file)
@@ -75,8 +75,8 @@ Assembler<dim>::Assembler (Triangulation<dim> *tria,
                           const int           index,
                           const AssemblerData<dim> *local_data) :
                DoFCellAccessor<dim> (tria,level,index, &local_data->dof),
-               cell_matrix (dof_handler->get_selected_fe().total_dofs),
-               cell_vector (dVector(dof_handler->get_selected_fe().total_dofs)),
+               cell_matrix (dof_handler->get_fe().total_dofs),
+               cell_vector (dVector(dof_handler->get_fe().total_dofs)),
                assemble_matrix (local_data->assemble_matrix),
                assemble_rhs (local_data->assemble_rhs),
                matrix(local_data->matrix),
@@ -91,7 +91,7 @@ Assembler<dim>::Assembler (Triangulation<dim> *tria,
          ExcInvalidData());
   Assert (!assemble_matrix || (matrix.n() == dof_handler->n_dofs()),
          ExcInvalidData());
-  Assert (((AssemblerData<dim>*)local_data)->fe == dof_handler->get_selected_fe(),
+  Assert (((AssemblerData<dim>*)local_data)->fe == dof_handler->get_fe(),
          ExcInvalidData());
   Assert (!assemble_rhs || (rhs_vector.size()==dof_handler->n_dofs()),
          ExcInvalidData());
@@ -107,7 +107,7 @@ void Assembler<dim>::assemble (const Equation<dim> &equation) {
                                                    present_index,
                                                    dof_handler),
                    boundary);
-  const unsigned int n_dofs = dof_handler->get_selected_fe().total_dofs;
+  const unsigned int n_dofs = dof_handler->get_fe().total_dofs;
 
   if (assemble_matrix)
     cell_matrix.clear ();
index d81cb748134fa3d160087c413c97ed7e0910fab2..c364746854e9a33011db57bbf22819f4647ab3e7 100644 (file)
@@ -224,7 +224,7 @@ void DataOut<dim>::clear_data_vectors () {
 template <int dim>
 void DataOut<dim>::write_ucd (ostream &out) const {
   Assert (dofs != 0, ExcNoDoFHandlerSelected());
-  Assert (dofs->get_selected_fe().dofs_per_vertex==1,
+  Assert (dofs->get_fe().dofs_per_vertex==1,
          ExcIncorrectDofsPerVertex());
   Assert ((1<=dim) && (dim<=3), ExcNotImplemented());
   
@@ -463,7 +463,7 @@ void DataOut<dim>::write_gnuplot (ostream &out) const {
   Assert ((1<=dim) && (dim<=3), ExcNotImplemented());
 
   if (dim==1)
-    Assert (dofs->get_selected_fe().dofs_per_vertex==1,
+    Assert (dofs->get_fe().dofs_per_vertex==1,
            ExcIncorrectDofsPerVertex());
 
                                   // write preamble
index 2089de405f542ab8716bd662d8343ab299a3ed4a..482ae8e9620688c3cde812158a142a7ec38b1e8f 100644 (file)
@@ -139,7 +139,7 @@ void MatrixCreator<dim>::create_boundary_mass_matrix (const DoFHandler<dim>    &
   Assert (matrix.n() == matrix.m(), ExcInternalError());
   Assert (matrix.n() == rhs_vector.size(), ExcInternalError());
   Assert (rhs.size() != 0, ExcInternalError());
-  Assert (dof.get_selected_fe() == fe, ExcInternalError());
+  Assert (dof.get_fe() == fe, ExcInternalError());
   Assert (dof_to_boundary_mapping.size() == dof.n_dofs(), ExcInternalError());
   Assert (*max_element(dof_to_boundary_mapping.begin(),dof_to_boundary_mapping.end()) ==
          (signed int)matrix.n()-1,
index 38f13f1a1e660ba3a076a94eccf4728a68fbc2cf..d81c9e4c8228884f71b4181d06c80042a1a41fe1 100644 (file)
@@ -70,10 +70,19 @@ void VectorTools<dim>::interpolate (const DoFHandler<dim>    &dof,
 };
 
 
+template <int dim> void
+VectorTools<dim>::interpolate(const DoFHandler<dim>    &high_dof,
+                        const DoFHandler<dim>    &low_dof,
+                        const dFMatrix           &transfer,
+                        const dVector            &high,
+                        dVector                  &low)
+{
+  
+}
 
 #if deal_II_dimension == 1
 
-template <>
+
 void VectorTools<1>::project (const DoFHandler<1>    &,
                              const ConstraintMatrix &,
                              const FiniteElement<1> &,
@@ -353,7 +362,7 @@ void VectorTools<dim>::integrate_difference (const DoFHandler<dim>    &dof,
                                             const FiniteElement<dim> &fe,
                                             const NormType           &norm,
                                             const Boundary<dim>      &boundary) {
-  Assert (fe == dof.get_selected_fe(), ExcInvalidFE());
+  Assert (fe == dof.get_fe(), ExcInvalidFE());
   
   difference.reinit (dof.get_tria().n_active_cells());
   

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.