From: Dafang W. <daf...@jh...> - 2014-01-09 04:29:52
|
Hi folks, Here are my replies to some of your questions. I used the libraries in the following way (via CMake): Debug mode: my code (-g), libmesh (dbg mode), PetsC (optimized mode). RelWithDebInfo mode: my code (-O2 -g), libmesh (devel mode), PetsC (optimized mode) To Jed: my use of NDEBUG concerns my code only, not LibMesh. To Benjamin: my user code made multiple calls to standard c++ assert(), but no calls to libmesh_assert(). To Roy: can you please tell me how to apply -DNDEBUG to libMesh alone (without affecting my user code)? Thanks for all of your comments. Cheers, Dafang On 01/08/2014 05:28 PM, Roy Stogner wrote: > > On Wed, 8 Jan 2014, Dafang Wang wrote: > >> I figured out the cause of the problem: -DNDEBUG in CXXFLAGS. With >> this flag on, the program returned bad convergence results both on my >> desktop and on the cluster. Without this flag, both machines yielded >> good results. So this problem is not to the intel compiler on the >> cluster. > > This is pretty astonishing. Can you get the bad convergence results > with -DNDEBUG applied to libMesh alone? If so then we've probably got > a bug worth looking into somewhere. > > I can't imagine where, though. We just don't have a lot of places > where there's a significant difference between normal and NDEBUG code > paths. > --- > Roy -- Dafang Wang, Ph.D Postdoctoral Fellow Institute of Computational Medicine Department of Biomedical Engineering Johns Hopkins University Hackerman Hall Room 218 Baltimore, MD, 21218 |