changeset 114:af287918111e

Use boost::shared_ptr.
author gedeone-octave <marcovass89@hotmail.it>
date Tue, 27 Aug 2013 19:53:32 +0200
parents 065ae2bff9ef
children 41614aa82191
files src/Mesh.cc
diffstat 1 files changed, 14 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/Mesh.cc	Sat Aug 24 15:41:11 2013 +0200
+++ b/src/Mesh.cc	Tue Aug 27 19:53:32 2013 +0200
@@ -90,8 +90,8 @@
   else
     {
       dolfin::MeshEditor editor;
-      dolfin::Mesh msh;
-      editor.open (msh, D, D);
+      boost::shared_ptr<dolfin::Mesh> msh (new dolfin::Mesh ());
+      editor.open (*msh, D, D);
       editor.init_vertices (p.cols ());
       editor.init_cells (t.cols ());
 
@@ -119,7 +119,7 @@
       editor.close ();
 
       // store information associated with e
-      msh.init (D - 1);
+      msh->init (D - 1);
       dolfin::MeshValueCollection<std::size_t> facet (D - 1);
       std::size_t num_side_edges = e.cols ();
 
@@ -127,7 +127,7 @@
         {
           for (uint i = 0; i < num_side_edges; ++i)
             {
-              dolfin::Vertex v (msh, e.xelem (0, i) - 1);
+              dolfin::Vertex v (*msh, e.xelem (0, i) - 1);
               for (dolfin::FacetIterator f (v); ! f.end (); ++f)
                 {
                   if ((*f).entities(0)[0] == e.xelem (0, i) - 1
@@ -135,7 +135,7 @@
                       || (*f).entities(0)[0] == e.xelem (1, i) - 1
                       && (*f).entities(0)[1] == e.xelem (0, i) - 1)
                     {
-                      facet.set_value ((*f).index (), e.xelem (4, i), msh);
+                      facet.set_value ((*f).index (), e.xelem (4, i), *msh);
                       break;
                     }
                 }
@@ -148,7 +148,7 @@
         {
           for (uint i = 0; i < num_side_edges; ++i)
             {
-              dolfin::Vertex v (msh, e.xelem (0, i) - 1);
+              dolfin::Vertex v (*msh, e.xelem (0, i) - 1);
               for (dolfin::FacetIterator f (v); ! f.end (); ++f)
                 {
                   if ((*f).entities(0)[0] == e(0, i) - 1
@@ -170,14 +170,14 @@
                       && (*f).entities(0)[1] == e.xelem (1, i) - 1
                       && (*f).entities(0)[2] == e.xelem (0, i) - 1)
                     {
-                      facet.set_value ((*f).index (), e.xelem (9, i), msh);
+                      facet.set_value ((*f).index (), e.xelem (9, i), *msh);
                       break;
                     }
                 }
             }
         }
 
-      *(msh.domains ().markers (D - 1)) = facet;
+      *(msh->domains ().markers (D - 1)) = facet;
 
       // store information associated with t
       dolfin::MeshValueCollection<std::size_t> cell (D);
@@ -187,7 +187,7 @@
         {
           for (uint i = 0; i < num_cells; ++i)
             {
-              dolfin::Vertex v (msh, t.xelem (0, i) - 1);
+              dolfin::Vertex v (*msh, t.xelem (0, i) - 1);
               for (dolfin::CellIterator f (v); ! f.end (); ++f)
                 {
                   if ((*f).entities(0)[0] == t.xelem (0, i) - 1
@@ -209,7 +209,7 @@
                       && (*f).entities(0)[1] == t.xelem (1, i) - 1
                       && (*f).entities(0)[2] == t.xelem (0, i) - 1)
                     {
-                      cell.set_value ((*f).index (), t.xelem (3, i), msh);
+                      cell.set_value ((*f).index (), t.xelem (3, i), *msh);
                       break;
                     }
                 }
@@ -222,7 +222,7 @@
         {
           for (uint i = 0; i < num_cells; ++i)
             {
-              dolfin::Vertex v (msh, t.xelem (0, i) - 1);
+              dolfin::Vertex v (*msh, t.xelem (0, i) - 1);
               for (dolfin::CellIterator f (v); ! f.end (); ++f)
                 {
                   if ((*f).entities(0)[0] == t.xelem (0, i) - 1
@@ -325,16 +325,15 @@
                        && (*f).entities(0)[2] == t.xelem (1, i) - 1
                        && (*f).entities(0)[3] == t.xelem (0, i) - 1)
                     {
-                      cell.set_value ((*f).index (), t.xelem (4, i), msh);
+                      cell.set_value ((*f).index (), t.xelem (4, i), *msh);
                       break;
                     }
                 }
             }
         }
 
-      *(msh.domains ().markers (D)) = cell;
+      *(msh->domains ().markers (D)) = cell;
 
-     boost::shared_ptr<const dolfin::Mesh> my_m (new dolfin::Mesh (msh)); 
-     pmsh = my_m;
+     pmsh = msh;
     }
 }