From: David K. <dav...@ak...> - 2015-05-05 20:05:00
|
On Tue, May 5, 2015 at 3:50 PM, Roy Stogner <roy...@ic...> wrote: > > On Tue, 5 May 2015, David Knezevic wrote: > > 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. >> > > Ha! We should have seen that coming. > > The best fix is probably not to revert the print_info(), though, but > to use a static bool to make sure we only hit it once. "failing=true; > print_info(); libmesh_error();" if it's false; zero out stuff and > return garbage (on the theory that *some* info is better than none) if > it's true. > Sounds fine to me... I can do this later, unless someone else wants to take care of it first. Also, going back to my negative jacobian issue: I realized that this element is actually not affine. So it seems like John's comment could be right, i.e. that the jacobian is negative at at least one of the quadrature points, and that Cubit doesn't pick this up because it's not testing the jacobian at the same points. |