Dear all

During the last months I have made an effort to improve the mesh
generation code in FEniCS. The code is based on the mesh generation
code in Dolfin, but have now been separated places in a new component
called mshr.

The code resides here: https://bitbucket.org/benjamik/mshr , but
should maybe be put in a repository owned by the fenics-project team?

The primary focus has been on robustness and I believe the code has
been significantly improved in this respect. The module now contains a
small test suite and many bugs have been fixed. There is a buildbot
here: http://128.39.36.155:8010/builders/mshr-master-ubuntu-amd64 . It
recently turned green for the first time. Some new features have also
been added. I'm in the process of writing a readme file that will sum
up the functionality.

Existing user code should run unchanged with the exception that one
will have to add "from mshr import *" (assuming the user has also done
"from dolfin import *"). The only exceptions here are the classes
PolyhedralMeshGenerator and PolygonalMeshGenerator. Their
functionality seems to overlap almost entirely with mshr, but user
code will not be compatible. Can they be removed? It would probably be
possible to make the dolfin python module try to import mshr into its
namespace if it is available, but I personally don't like this
solution as it is messy and introduces as kind of circular
"dependency".

mshr now builds cgal and tetgen from source and links them statically
into the module. This approach avoids the issues we have seen with
different versions of CGAL and also makes it possible to patch CGAL if
bugs upstream are fixed between releases. The overhead is very small,
since CGAL is almost header only.

A possible plan would be to release mshr 1.4 (assuming the component
should follow the version numbering scheme as the rest of the
components) now and replace the classes in dolfin/generation with
dummy classes that just informs the user that the code has moved. The
classes in the dolfin/generation directory (except the UnitFooMesh
classes) can then be removed completely at a later point. This can be
done as soon as Johannes has prepared debian/ubuntu packages for mshr.

Some more details will be presented at FEniCS'14 on Tuesday.

Best regards

Benjamin Kehlet
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to