I think you could re-write the algorithm without using pointers (except the STL list implementation which needs pointers). If we don't use the dynamic mesh representation anywhere else, I think it would be suboptimal use of resources though. As I've mentioned, the work of the GMsh people on mesh adaptation (Gaetan Compere, Jean-Francois Remacle, et al) looks promising, so it would be more natural for DOLFIN to use that library for mesh adaptation algorithms, and spend the time improving that instead.
This is a movie of a robustness test of mesh adaptation using their library: http://www.csc.kth.se/~jjan/movies/flag3D_force.avi (The vertices touching the blue cells are moved through the mesh, with the red cells being forced to adapt to satisfy size field and quality) Rivara is great, but it's only refinement. The interface using mesh adaptation is to give a desired size field, then a control algorithm uses local mesh operations (bisection, collapse, swapping) to satisfy that size field (within a given tolerance). I think this is really a big step up from the established algorithms and software, and since it apparently can be done in a robust way, I think it's something that should be invested in. I've communicated with the developers and they're in the process of re-writing some parts in preparation for a free software (LGPL) release. Why not give them a month or two to finish up their work before spending significant time on rewriting implementations of refinement algorithms that I think will be obsolete within a year or so (at least serial implementations). Johan Garth N. Wells wrote: > There are some memory leaks in this code. > > Pointers are used extensively in this code - can their use be reduced to > help readability and to minimise the likelihood of leaks? > > Garth > > DOLFIN wrote: > >> One or more new changesets pushed to the primary dolfin repository. >> A short summary of the last three changesets is included below. >> >> changeset: 5609:183deaf2428c90177bdb0c3220dc12891780e92e >> tag: tip >> user: Anders Logg <[email protected]> >> date: Thu Jan 29 10:13:16 2009 +0100 >> files: dolfin/mesh/LocalMeshRefinement.cpp >> dolfin/mesh/LocalMeshRefinement.h dolfin/mesh/Mesh.cpp >> dolfin/mesh/RivaraRefinement.cpp dolfin/mesh/RivaraRefinement.h >> description: >> Add Rivara refinement patch by Jansson/Sawicki >> >> >> changeset: 5608:f7257fc94661ae937756a68c5ccd1b4c5f864aa5 >> user: Anders Logg <[email protected]> >> date: Wed Jan 28 21:33:03 2009 +0100 >> files: TODO >> description: >> Add item to TODO list >> >> >> changeset: 5607:aa4015f7f2e52d18b721fe08962e87bb522d5648 >> user: "Garth N. Wells <[email protected]>" >> date: Tue Jan 27 16:52:18 2009 +0000 >> files: demo/pde/elastodynamics/ElastoDynamics.form >> demo/pde/elastodynamics/ElastoDynamics.h demo/pde/elastodynamics/SConstruct >> demo/pde/elastodynamics/cpp/DG0_eps_xx.form >> demo/pde/elastodynamics/cpp/DG0_eps_xx.h >> demo/pde/elastodynamics/cpp/ElastoDynamics.form >> demo/pde/elastodynamics/cpp/ElastoDynamics.h >> demo/pde/elastodynamics/cpp/SConstruct demo/pde/elastodynamics/cpp/main.cpp >> demo/pde/elastodynamics/main.cpp >> description: >> Make elastodynamics example more interesting. >> >> Add viscous damping term. >> >> ---------------------------------------------------------------------- >> For more details, visit http://www.fenics.org/hg/dolfin >> _______________________________________________ >> DOLFIN-dev mailing list >> [email protected] >> http://www.fenics.org/mailman/listinfo/dolfin-dev >> > _______________________________________________ > DOLFIN-dev mailing list > [email protected] > http://www.fenics.org/mailman/listinfo/dolfin-dev > _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
