From 636382459a14552a0651669f6245963623c16023 Mon Sep 17 00:00:00 2001
From: Nicolas Marsic <nicolas.marsic@gmail.com>
Date: Mon, 28 Jul 2014 14:44:35 +0000
Subject: [PATCH] Better way to include Dofs into DofManager + Better way for
 FunctionSpace::getKeys(goe, map)

---
 FunctionSpace/FunctionSpace.cpp | 23 +++++++++--------------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/FunctionSpace/FunctionSpace.cpp b/FunctionSpace/FunctionSpace.cpp
index 780b654338..5f77b0c609 100644
--- a/FunctionSpace/FunctionSpace.cpp
+++ b/FunctionSpace/FunctionSpace.cpp
@@ -234,23 +234,18 @@ void FunctionSpace::getKeys(const MElement& elem, std::vector<Dof>& dof) const{
 
 void FunctionSpace::getKeys(const GroupOfElement& goe,
                             std::set<Dof>& dof) const{
-  // Get Elements //
-  const vector<const MElement*>& element = goe.getAll();
-  const size_t nElement = element.size();
-
-  // Dof Vector //
-  vector<Dof> myDof;
+  // Get Dofs //
+  const vector<vector<Dof> >& allDofs = getKeys(goe);
 
-  // Loop on Elements //
-  for(size_t e = 0; e < nElement; e++){
-    // Get my Dofs
-    getUnorderedKeys(*element[e], myDof);
+  // Add them into map //
+  const size_t size = allDofs.size();
+        size_t nDof;
 
-    // Add my Dofs
-    const size_t nDof = myDof.size();
+  for(size_t i = 0; i < size; i++){
+    nDof = allDofs[i].size();
 
-    for(size_t d = 0; d < nDof; d++)
-      dof.insert(myDof[d]);
+    for(size_t j = 0; j < nDof; j++)
+      dof.insert(allDofs[i][j]);
   }
 }
 
-- 
GitLab