]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Merge branch 'master' into parmg
authorTimo Heister <timo.heister@gmail.com>
Fri, 19 Dec 2014 15:01:59 +0000 (10:01 -0500)
committerTimo Heister <timo.heister@gmail.com>
Fri, 19 Dec 2014 15:01:59 +0000 (10:01 -0500)
Conflicts:
examples/step-16/step-16.cc
examples/step-50/step-50.cc
include/deal.II/dofs/dof_tools.h
include/deal.II/meshworker/simple.h

1  2 
examples/step-50/step-50.cc
include/deal.II/dofs/dof_tools.h
include/deal.II/meshworker/simple.h
include/deal.II/multigrid/mg_constrained_dofs.h
include/deal.II/multigrid/mg_transfer.templates.h
include/deal.II/numerics/data_out.h
source/dofs/dof_tools.cc
source/dofs/dof_tools.inst.in
source/multigrid/mg_tools.cc
source/multigrid/mg_transfer_prebuilt.cc

Simple merge
index 30737de05da86289316afac15338eee6a86158e7,b58895a56bf5a1debac8937d795c7b51b69207a4..1270247778fc074259875f31da6ef48483824194
@@@ -1525,47 -1482,34 +1482,44 @@@ namespace DoFTool
    extract_locally_relevant_dofs (const DH &dof_handler,
                                   IndexSet &dof_set);
  
 +  /**
 +   * Same as extract_locally_relevant_dofs() but for multigrid DoFs
 +   * for the given @p level.
 +   */
 +  template <class DH>
 +  void
 +  extract_locally_relevant_mg_dofs (const DH &dof_handler,
 +                                 IndexSet &dof_set,
 +                                 unsigned int level);
 +
    /**
-    * For each DoF, return in the output array to which subdomain (as
-    * given by the <tt>cell->subdomain_id()</tt> function) it
-    * belongs. The output array is supposed to have the right size
-    * already when calling this function.
-    *
-    * Note that degrees of freedom associated with faces, edges, and
-    * vertices may be associated with multiple subdomains if they are
-    * sitting on partition boundaries. In these cases, we put them into
-    * one of the associated partitions in an undefined way. This may
-    * sometimes lead to different numbers of degrees of freedom in
-    * partitions, even if the number of cells is perfectly
-    * equidistributed. While this is regrettable, it is not a problem
-    * in practice since the number of degrees of freedom on partition
-    * boundaries is asymptotically vanishing as we refine the mesh as
+    * For each DoF, return in the output array to which subdomain (as given by
+    * the <tt>cell->subdomain_id()</tt> function) it belongs. The output array
+    * is supposed to have the right size already when calling this function.
+    *
+    * Note that degrees of freedom associated with faces, edges, and vertices
+    * may be associated with multiple subdomains if they are sitting on
+    * partition boundaries. In these cases, we put them into one of the
+    * associated partitions in an undefined way. This may sometimes lead to
+    * different numbers of degrees of freedom in partitions, even if the number
+    * of cells is perfectly equidistributed. While this is regrettable, it is
+    * not a problem in practice since the number of degrees of freedom on
+    * partition boundaries is asymptotically vanishing as we refine the mesh as
     * long as the number of partitions is kept constant.
     *
-    * This function returns the association of each DoF with one
-    * subdomain. If you are looking for the association of each @em
-    * cell with a subdomain, either query the
-    * <tt>cell->subdomain_id()</tt> function, or use the
+    * This function returns the association of each DoF with one subdomain. If
+    * you are looking for the association of each @em cell with a subdomain,
+    * either query the <tt>cell->subdomain_id()</tt> function, or use the
     * <tt>GridTools::get_subdomain_association</tt> function.
     *
-    * Note that this function is of questionable use for DoFHandler
-    * objects built on parallel::distributed::Triangulation since in
-    * that case ownership of individual degrees of freedom by MPI
-    * processes is controlled by the DoF handler object, not based on
-    * some geometric algorithm in conjunction with subdomain id. In
-    * particular, the degrees of freedom identified by the functions in
-    * this namespace as associated with a subdomain are not the same
-    * the DoFHandler class identifies as those it owns.
+    * Note that this function is of questionable use for DoFHandler objects
+    * built on parallel::distributed::Triangulation since in that case
+    * ownership of individual degrees of freedom by MPI processes is controlled
+    * by the DoF handler object, not based on some geometric algorithm in
+    * conjunction with subdomain id. In particular, the degrees of freedom
+    * identified by the functions in this namespace as associated with a
+    * subdomain are not the same the DoFHandler class identifies as those it
+    * owns.
     */
    template <class DH>
    void
index aa304eeda8cbdf4785c05c9e11f1127f25565d4f,ee39e96b4cb1072aa38a285b9ba58c1e5e799f8b..511fdc00db6359bf5199d62ae17f43b2a3477f44
@@@ -995,13 -967,13 +967,13 @@@ namespace MeshWorke
              if (mg_constrained_dofs->at_refinement_edge(level, i1[j]) &&
                  !mg_constrained_dofs->at_refinement_edge(level, i2[k]))
                {
 -                if ((!mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 -                     !mg_constrained_dofs->is_boundary_index(level, i2[k]))
 +              if ((!mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 +                   !mg_constrained_dofs->is_boundary_index(level, i2[k]))
-                   ||
+                     ||
 -                    (mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 -                     mg_constrained_dofs->is_boundary_index(level, i2[k]) &&
 +                  (mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 +                   mg_constrained_dofs->is_boundary_index(level, i2[k]) &&
-                    i1[j] == i2[k]))
-                 G.add(i1[j], i2[k], M(j,k));
+                      i1[j] == i2[k]))
+                   G.add(i1[j], i2[k], M(j,k));
                }
      }
  
              if (mg_constrained_dofs->at_refinement_edge(level, i1[j]) &&
                  !mg_constrained_dofs->at_refinement_edge(level, i2[k]))
                {
 -                if ((!mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 -                     !mg_constrained_dofs->is_boundary_index(level, i2[k]))
 +              if ((!mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 +                   !mg_constrained_dofs->is_boundary_index(level, i2[k]))
-                   ||
+                     ||
 -                    (mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 -                     mg_constrained_dofs->is_boundary_index(level, i2[k]) &&
 +                  (mg_constrained_dofs->is_boundary_index(level, i1[j]) &&
 +                   mg_constrained_dofs->is_boundary_index(level, i2[k]) &&
-                    i1[j] == i2[k]))
-                 G.add(i1[j], i2[k], M(k,j));
+                      i1[j] == i2[k]))
+                   G.add(i1[j], i2[k], M(k,j));
                }
      }
  
index 50c8c3b58ab0f7a325fc8ce9601428f504ce2904,b6986b4f7aad371aad9ca126ffd639034ae4075e..6dcd4484f0a11a464f7a445a2d2877c8bd43e659
@@@ -135,23 -144,8 +144,8 @@@ public
     */
    bool set_boundary_values () const DEAL_II_DEPRECATED;
  
 -private:
 +//private:
  
-   /**
-    * @warning This function generates an inconsistent object if not
-    * called from the other initialize() in this class.
-    *
-    * Fill the internal data structures with values extracted from the dof
-    * handler object.
-    *
-    * This function ensures that on every level, degrees of freedom at interior
-    * edges of a refinement level are treated corrected but leaves degrees of
-    * freedom at the boundary of the domain untouched assuming that no
-    * Dirichlet boundary conditions for them exist.
-    */
-   template <int dim, int spacedim>
-   void initialize (const DoFHandler<dim,spacedim> &dof);
    /**
     * The indices of boundary dofs for each level.
     */
Simple merge
Simple merge
Simple merge
Simple merge

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.