On Wed, May 15, 2013 at 11:40:25AM +0100, Garth N. Wells wrote: > On 15 May 2013 11:23, Anders Logg <[email protected]> wrote: > > On Wed, May 15, 2013 at 10:48:31AM +0100, Garth N. Wells wrote: > >> Chris and I are working on IO (including parallel) via HDF5 for mesh > >> data structures. An issue that I've run into before and which is > >> making things complicated now are the circular dependences in the Mesh > >> class. > >> > >> Every Mesh has a MeshDomains object and a MeshData object. MeshDomains > >> stores a reference to its Mesh, and it stores MeshFunctions, that hold > >> a shared_ptr to a Mesh (it also has MeshValueCollections which we'll > >> probably also let store a pointer to the Mesh). > > > > We should strive to avoid this (the owned object having a pointer to > > the owner), but it often creeps in for convenience. > > > >> This all makes memory management complicated because the objects are > >> constructed with the Mesh '*this' object, and leads to a lot of 'no > >> deleter' shared pointers. Since MeshDomains are always associates with > >> a Mesh and a Mesh always has a MeshDomains object, any objections to > >> just using plain STL vectors to hold the MeshDomain data? > > > > What would the changes be in the interface? > > > > There will be some internal changes, but I expect very little or > nothing that the user will see. The only visible changes will be in > the MeshDomains interface, which I've never used directly from > application-level code.
Sounds good then. -- Anders _______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
