On 2014-01-31 10:10, Benjamin Kehlet wrote:
2014-01-31 Garth N. Wells <[email protected]>:
On 2014-01-31 08:01, Marco Morandini wrote:

Yes, I suggest moving the mesh generation part to a separate
component. This will remove CGAL completely from Dolfin, since CGAL is
now used only for mesh generation.

This new component will depend on Dolfin. We (ie. Johannes :-) ) will generate Debian/Ubuntu packages and provide a dorsal .package file, so
installation shouldn't be more complicated than before this split.

From a users perspective the changes should be minimal (an extra

import in python). Maybe Dolfin can try to import the module to
provide backward compatibility for a while?

Even if this opposes the ongoing effort to reduce the number of
components in FEniCS, I think it is the best solution for now.

Anders suggested the name "mshr" which I think is cool. A very
preliminary version (without python support yet) is here:
https://bitbucket.org/benjamik/mshr/

Opinions? Objections?


Personally, I fear that this component will quickly bitrot if left
separated from dolfin.


This is a danger. It has proven very difficult for projects to survive
outside of the core packages. For it succeed, it would need to become an 'official' package with a sufficiently large group of core contributors.

To some extent this is also a danger within Dolfin. The current 3D
implementation is messy implemented and not very robust.


Yes, I agree. It dilutes the focus for DOLFIN to also be in the business of sophisticated 3D mesh generation. A separate project that wraps good, open-source generators and provides a DOLFIN interface could be more focussed.

Garth



And I don't completely grasp the rationale
behind the change: you someone want a quick build why don't configure
without CGAL? The net effect would be the same: dolfin without CGAL.


There are the practical aspects of building, and the problem that the
implementation is half-baked and fragile. Given the difficulty of mesh
generation as a stand-alone problem, I do see advantages in spinning it out
as a separate package.

A separate package could provide a common interface to a few generation libraries (CGAL, Gmsh, netget), each of which has strengths for particular
types of problems

That is on the TODO list. Tetgen is an obvious candidate as well.



That said, I think that what is really important is that
the kind of application sketched in

http://fenicsproject.org/pipermail/fenics/2013-October/000685.html

will still work without requiring writing and reading data to disk.


This won't be a problem if mshr has a dolfin::Mesh interface.


On a separate note: I'm using Dorsal and I see that the files are
built with -DCGAL_DISABLE_ROUNDING_MATH_CHECK .


This option is not used on the buildbots, and they see periodic CGAL meshes crashes. My experience is that CGAL meshing is solid for smooth 3D volumes
defined by implicit surfaces, but very fragile for polyhedra, with
robustness falling away as the number of facets increases.

In my experience crashes have been due to errors on my side, typically
attempting to mesh a polyhedron containing self intersections.

Benjamin


Garth

Fabri, couldn't be this the cause of the random meshing failures
the developers are experiencing?
Shouldn't the files that include CGAL headers built without this flag
and with -fexcess-precision=standard instead?
Has this been discussed before?

Marco


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

Reply via email to