----------------------------------------
> Subject: Re: [Libmesh-users] TetGen mesh interface's "triangulate_pointset()"
> stop running
> To: marchy...@hotmail.com; libmesh-users@lists.sourceforge.net
> From: thiago...@gmail.com
> Date: Sun, 25 Sep 2016 00:17:48 +0200
>
> 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:
I used to do that a lot and for finding subtle timing or threading issues
debugger
stepping may not be the best thing to do. IIRC, I did have a problem linking to
libmesh dbg lib due to undefined symbols but the devel lib worked right away.
>
> - 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
>
Well, when I built it it created several libmesh libs including opt, devel, and
dbg.
Presumably you could get different results with each of these.
> 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 ...
>
Multithreaded code is a whole other world :)
> 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