On Fri, 4 Jun 2010, Tim Kroeger wrote:
On Thu, 3 Jun 2010, Roy Stogner wrote:Indefinitely, I'm afraid. I can replicate the problem easily enough, but I haven't found the right fix yet, and haven't had as much time to work on it as I'd like.I see. Let me know if there is any issue in that I can assist you. If the main problem is to have an idea how things can be done, perhaps you can explain some of the details to me, so that I can think about the problem.
I still haven't gotten the *right* fix yet, which would mostly be as you describe below...
Also, a workaround could be to write a converter that reads old computations and rewrites them in a format that can be read by new applications. Would such a thing be easy to do, e.g. with libHilbert enabled?
...except that it wouldn't be a converter exactly, it would just be a more lenient interpreter for the ::read() functionality, so that new applications would simply read old files regardless of the save file ordering. The trouble is that this isn't easy to do, because our xdr/xda formats sacrifice some explicitness for terseness. I'm still trying to figure out how to get this right. What I've got in the meantime is a possible fix for the libHilbert interface. Doubling the precision that libHilbert uses seems to be sufficient to avoid collisions in node ordering on the handful of test cases that were breaking before, and in theory it should give us the same node ordering on all the cases that were working before, and it should let us start experimenting with ParallelMesh again. The only downside should be that it will misread files that were written with --disable-libHilbert builds. Before reenabling libHilbert (and finally getting another stable libMesh release out) I would like to see how well "in theory" matches "in practice". If you've got a bunch of old save files to try running with, you could join me on that. I'll attach a patch here. You'll want to wipe all old contrib object files before rebuilding it (I think "make clobber" is sufficient), and explicitly configure with --enable-libHilbert. Try loading the files and taking H1 seminorms. The seminorms with --disable-libHilbert should be hopelessly corrupted. The seminorms with --enable-libHilbert but without the patch should be correct (unless you got bit by the corruption bug that caused us to disable libHilbert in the first place, in which case you'll probably get a crash in opt mode and an assertion failure in debug mode). The seminorms with --enable-libHilbert and with the patch should, everybody cross your fingers, match the values without the patch. Thanks, --- Roy
------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
