I did some poor man's debugging (a.k.a. printf ..., didn't have the time to set up gdb yet) and the program stops at the temp_tetgen_interface.triangulate_pointset() line. Some other important points that I forgot in the first mail:
- When running in parallel, the code will generate the meshes for several intersections and then will stop for one or two processors (hence why I used the word "stall") - At first, temp_tetgen_interface was a member of the class Mesh_Intersection, properly initialized with m_libMesh_PolyhedronMesh at the class constructors. In this case (which runs fine with gcc in an older cluster), the program ends with a segfault on all processors when trying to build the first intersection mesh ... The build settings were nothing out of the ordinary, I think ... ./configure --with-vtk=yes --with-hdf5=[path to hdf5] --with-cxx=mpiicpc --enable-unique-ptr --with-mpi=[path to Intel MPI] --with-cc=mpiicc --with-boost=[path to boost, compiled with icpc]--prefix=[well ... the install prefix] --disable-strict-lgpl I'll try to do some more proper debugging tomorrow and Monday, and also try to reproduce my old library stack as much as possible in the new cluster, but I must admit that I don't have a lot of clues here ... Thanks in advance, Thiago Milanetto Schlittler On 24/09/16 23:45, Mike Marchywka wrote: > > > > > ---------------------------------------- >> To: libmesh-users@lists.sourceforge.net >> From: thiago...@gmail.com >> Date: Sat, 24 Sep 2016 17:19:56 +0200 >> Subject: [Libmesh-users] TetGen mesh interface's "triangulate_pointset()" >> stop running >> >> 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? > > I'm not at all familiar with this but a bit curious. > If no one has an immediate answer it may be worth stepping through > it in the debugger and perhaps posting some of the code that > surrounds the "stall." Personally I've found the code to be pretty > easy to understand and quite educational so far except for the one issue > mentioned before :) If you believe it is compiler specific, it may > also be sensitive to build settings etc and that may help. > > fwiw. > >> Thanks in advance, >> Thiago Milanetto Schlittler >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Libmesh-users mailing list >> Libmesh-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/libmesh-users > ------------------------------------------------------------------------------ _______________________________________________ Libmesh-users mailing list Libmesh-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-users