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

Reply via email to