Sorry for the delay, I was a bit busy fixing other stuff and could only 
look at TetGen today.

Good news is that exchanging TetGen 1.4 for TetGen 1.5 no longer enters 
an infinite loop ... bad news is that I'm getting some bad 
triangulations now (checked the same code with the older cluster and 
TetGen 1.4). I think I'll fall back to CGAL for now, and maybe later try 
my hand with ctetgen.

Cheers,

Thiago Milanetto Schlittler


On 26/09/16 16:22, John Peterson wrote:
>
>
> On Sat, Sep 24, 2016 at 9:19 AM, Thiago Milanetto Schlittler 
> <thiago...@gmail.com <mailto:thiago...@gmail.com>> wrote:
>
>     Hello!
>
>         I'm having a weird problem with the method
>     "triangulate_pointset()",
>     from the TetGenMeshInterface class. Essentially, it seems like it is
>     stalling after several calls. In my code, I have to calculate several
>     polyhedron intersections and mesh them. To do so, I built a
>     Mesh_Intersection class, which has the following method:
>
>     void Mesh_Intersection::triangulate_intersection(const
>     std::set<libMesh::Point> & input_points)
>     {
>          /*
>           * input_points             : set containing the intersection
>           *                            polyhedron's vertices.
>           * m_libMesh_PolyhedronMesh : a libMesh::Mesh, member of the
>     Mesh_Intersection
>           * cleared when calling this method.
>           */
>
>          m_libMesh_PolyhedronMesh.clear();
>
>          // Insert points into the mesh
>          for(std::set<libMesh::Point>::const_iterator it_set =
>     input_points.begin();
>                  it_set != input_points.end();
>                  ++it_set)
>          {
>              m_libMesh_PolyhedronMesh.add_point(*it_set);
>          }
>
>          libMesh::TetGenMeshInterface
>     temp_tetgen_interface(m_libMesh_PolyhedronMesh);
>          temp_tetgen_interface.triangulate_pointset();
>     }
>
>         The code stalls at the last line. I already tested the
>     input_points,
>     and they are valid. I'm using libMesh 1.0.0, compiled with Intel
>     icpc v.
>     16.0.3 and Intel MPI v. 5.1.2, on Linux. The
>     m_libMesh_PolyhedronMesh is
>     associated to a single processor. I don't think that it is a
>     communicator problem because it happens even with only one
>     processor. I
>     think that the problem is associated to the compiler, since it works
>     well on a machine where I used gcc 4.9. Did anyone else have a similar
>     problem?
>
>
> Yes, I have seen tetgen go into an infinite loop before, but due to 
> the complexity of the Tetgen codebase, was not really able to 
> determine why at the time.  If I recall correctly, the problem was 
> also architecture/compiler dependent, and the mesh generation problem 
> itself was not complicated, i.e. just looking at the geometry, you 
> would not think that mesh generation would be an issue.  I tried 
> searching back through my email for some thread that would have more 
> information on this, but could not find anything...
>
> If tetgen is important to your application, you may want to try 
> updating it.  We are still apparently using version 1.4.1 from back in 
> 2006, but there is a version 1.5 available from the tetgen.org 
> <http://tetgen.org> website. Another possibility you might want to 
> investigate is the PETSc team's C-based rewrite of Tetgen, called 
> ctetgen (https://bitbucket.org/petsc/ctetgen 
> <https://bitbucket.org/petsc/ctetgen>). I get a ton of warnings when 
> compiling Tetgen, and get the impression that it is not the cleanest 
> piece of code ever... if the PETSc guys decided to entirely rewrite it 
> and maintain a forked version, they probably had a compelling reason 
> to do so.  I would definitely be willing to switch to ctetgen (we'll 
> probably have to update some of our interface code slightly to do so) 
> but don't really have time to work on that myself.
>
> -- 
> John

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
Libmesh-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to