]> https://gitweb.dealii.org/ - dealii.git/commitdiff
rename the MGConstraints to MGConstrainedDofs and change the call in the
authorBaerbel Jannsen <baerbel.janssen@gmail.com>
Thu, 26 Aug 2010 15:53:55 +0000 (15:53 +0000)
committerBaerbel Jannsen <baerbel.janssen@gmail.com>
Thu, 26 Aug 2010 15:53:55 +0000 (15:53 +0000)
transfer accordingly

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

deal.II/deal.II/include/multigrid/mg_constrained_dofs.h [moved from deal.II/deal.II/include/multigrid/mg_constraints.h with 88% similarity]
deal.II/deal.II/include/multigrid/mg_transfer.h

similarity index 88%
rename from deal.II/deal.II/include/multigrid/mg_constraints.h
rename to deal.II/deal.II/include/multigrid/mg_constrained_dofs.h
index 4796aeeea093d5902b358f080759d47057784fef..e5d0045dce570cafa827292e8fa027bc718956ca 100644 (file)
@@ -33,7 +33,7 @@ template <int dim> class FunctionMap;
  *
  * @ingroup mg
  */
-class MGConstraints : public Subscriptor
+class MGConstrainedDoFs : public Subscriptor
 {
   public:
                                     /**
@@ -150,8 +150,16 @@ class MGConstraints : public Subscriptor
 template <int dim, int spacedim>
 inline
 void
-MGConstraints::initialize(const MGDoFHandler<dim,spacedim>& dof)
+MGConstrainedDoFs::initialize(const MGDoFHandler<dim,spacedim>& dof)
 {
+  const unsigned int nlevels = dof.get_tria().n_levels();
+  refinement_edge_indices.resize(nlevels);
+  refinement_edge_boundary_indices.resize(nlevels);
+  for(unsigned int l=0; l<nlevels; ++l)
+    {
+      refinement_edge_indices[l].resize(dof.n_dofs(l));
+      refinement_edge_boundary_indices[l].resize(dof.n_dofs(l));
+    }
   MGTools::extract_inner_interface_dofs (dof, refinement_edge_indices, 
                                         refinement_edge_boundary_indices);
 }
@@ -160,7 +168,7 @@ MGConstraints::initialize(const MGDoFHandler<dim,spacedim>& dof)
 template <int dim, int spacedim>
 inline
 void
-MGConstraints::initialize(
+MGConstrainedDoFs::initialize(
   const MGDoFHandler<dim,spacedim>& dof,
   const typename FunctionMap<dim>::type& function_map,
   const std::vector<bool>& component_mask)
@@ -185,7 +193,7 @@ MGConstraints::initialize(
 
 inline
 void
-MGConstraints::clear() 
+MGConstrainedDoFs::clear() 
 {
   for(unsigned int l=0; l<boundary_indices.size(); ++l)
     boundary_indices[l].clear();
@@ -200,7 +208,7 @@ MGConstraints::clear()
 
 inline
 bool
-MGConstraints::is_boundary_index (const unsigned int level, 
+MGConstrainedDoFs::is_boundary_index (const unsigned int level, 
                                  const unsigned int index) const
 {
   AssertIndexRange(level, boundary_indices.size());
@@ -213,7 +221,7 @@ MGConstraints::is_boundary_index (const unsigned int level,
 
 inline
 bool
-MGConstraints::at_refinement_edge (const unsigned int level,
+MGConstrainedDoFs::at_refinement_edge (const unsigned int level,
                                   const unsigned int index) const
 {
   AssertIndexRange(level, refinement_edge_indices.size());
@@ -225,7 +233,7 @@ MGConstraints::at_refinement_edge (const unsigned int level,
 
 inline
 bool
-MGConstraints::at_refinement_edge_boundary (const unsigned int level,
+MGConstrainedDoFs::at_refinement_edge_boundary (const unsigned int level,
                                            const unsigned int index) const
 {
   AssertIndexRange(level, refinement_edge_boundary_indices.size());
@@ -236,21 +244,21 @@ MGConstraints::at_refinement_edge_boundary (const unsigned int level,
 
 inline
 const std::vector<std::set<unsigned int> > &
-MGConstraints::get_boundary_indices () const
+MGConstrainedDoFs::get_boundary_indices () const
 {
   return boundary_indices;
 }
 
 inline
 const std::vector<std::vector<bool> > &
-MGConstraints::get_refinement_edge_indices () const
+MGConstrainedDoFs::get_refinement_edge_indices () const
 {
   return refinement_edge_indices;
 }
 
 inline
 const std::vector<std::vector<bool> > &
-MGConstraints::get_refinement_edge_boundary_indices () const
+MGConstrainedDoFs::get_refinement_edge_boundary_indices () const
 {
   return refinement_edge_boundary_indices;
 }
index 5ec3cf99ae95a4a77a0f5badf6556aa8aa74e938..c00f2a3aaa2bbe3ab51008749c44c213450ad707 100644 (file)
@@ -27,7 +27,7 @@
 #include <lac/vector_memory.h>
 
 #include <multigrid/mg_base.h>
-#include <multigrid/mg_constraints.h>
+#include <multigrid/mg_constrained_dofs.h>
 #include <base/mg_level_object.h>
 
 
@@ -73,11 +73,11 @@ class MGTransferPrebuilt : public MGTransferBase<VECTOR>
                                      * refinement.
                                      */
     MGTransferPrebuilt ();
-
                                     /**
-                                     * Constructor with constraint matrices.
+                                     * Constructor with constraint matrices as well as mg_constrained_dofs.
                                      */
-    MGTransferPrebuilt (const ConstraintMatrix& constraints);
+    MGTransferPrebuilt (const ConstraintMatrix& constraints, 
+        const MGConstrainedDoFs& mg_constrained_dofs);
                                     /**
                                      * Destructor.
                                      */
@@ -87,8 +87,7 @@ class MGTransferPrebuilt : public MGTransferBase<VECTOR>
                                      * matrices for each level.
                                      */
     template <int dim, int spacedim>
-    void build_matrices (const MGDoFHandler<dim,spacedim> &mg_dof,
-    const MGConstraints& mg_constraints);
+    void build_matrices (const MGDoFHandler<dim,spacedim> &mg_dof);
 
     virtual void prolongate (const unsigned int    to_level,
                             VECTOR       &dst,
@@ -243,7 +242,13 @@ class MGTransferPrebuilt : public MGTransferBase<VECTOR>
                                      * The constraints of the global
                                      * system.
                                      */
-    SmartPointer<const ConstraintMatrix> constraints;
+    SmartPointer<const ConstraintMatrix, MGTransferPrebuilt<VECTOR> > constraints;
+                                    /**
+                                     * The mg_constrained_dofs of the level
+                                     * systems.
+                                     */
+
+    SmartPointer<const MGConstrainedDoFs, MGTransferPrebuilt<VECTOR> > mg_constrained_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.