From: David K. <dav...@ak...> - 2015-05-05 19:38:13
|
On Tue, May 5, 2015 at 3:07 PM, David Knezevic <dav...@ak...> wrote: > On Tue, May 5, 2015 at 2:30 PM, John Peterson <jwp...@gm...> > wrote: > >> >> >> On Tue, May 5, 2015 at 12:20 PM, David Knezevic < >> dav...@ak...> wrote: >> >>> On Tue, May 5, 2015 at 10:27 AM, John Peterson <jwp...@gm...> >>> wrote: >>> >>>> >>>> >>>> On Tue, May 5, 2015 at 7:10 AM, David Knezevic < >>>> dav...@ak...> wrote: >>>> >>>>> [0] /home/dknez/software/libmesh-src/src/fe/fe_map.C, line 618, >>>>> compiled May 5 2015 at 08:08:28 >>>>> ERROR: negative Jacobian: -1.79627e-07 in element 7051 >>>>> >>>> >>>> Is your fe_map.C not the version in master? Line 618 doesn't have a >>>> libmesh_error_msg() on it for me. >>>> >>>> In any event, we have the Elem* available, so we should probably just >>>> be helpful and print the stuff that Roy requested before erroring out... >>>> >>> >>> >>> I added some print statements to the test code I was running before >>> (with libMesh git hash 1a6a549f26219f462ac4ceef87c3c03e9eafa836) and I get >>> the info printed below for the failing element. >>> >>> When I update to the git HEAD, I now get a segfault with no stack trace >>> when I just loop over the elements and call fe->reinit(elem). I'm wondering >>> if maybe ExodusIO isn't reading this mesh in properly, or something. >>> >> >> That, or a dirty build? >> > > > I agree that a dirty build seems like a reasonable explanation, but it > doesn't seem to be the case here. I did distclean, bootstrapped and > re-configured, and I tested a bunch of libMesh examples and they all worked > fine. But with this negative-jacobian test, l still got the same segfault. > OK, so the issue is that your change from today triggers an infinite loop for my "bad element", eventually leading to the segfault. I think the problem is that calling "elem->print_info()" then calls "elem->volume()", which reinits an FE object, which triggers negative jacobian error again, and then you keep looping forever. If I comment out the elem->print_info calls that you added, I get back to the negative jacobian error that I had before. |