>> > Perhaps we could avoid using a sequential PRNG in distort()
>> > altogether?  Replace the std::rand() subroutine calls with some kind
>> > of function calls that lack internal state, just hashing the initial
>> > seed with the previous node coordinates somehow?

Hm, interesting alternative. Or, keep using std::rand, but reseeding for each
node with std::srand(seed + node->id())?


>> So I think we can immediately accommodate the patch – it certainly does no
>> harm – am I missing something?
>
>
> We can instantly accommodate the patch, in the same sense that I can
> instantly sell you the Brooklyn Bridge for cash, but in each case
> there's an implied promise (distortions with the same seed will always
> produce the same results; you'll end up with a valid deed) that would
> end up being violated later.  I don't like breaking backwards
> compatibility, and so I don't like getting into situations that would
> back us into a corner where we'd eventually have to break backwards
> compatibility.

Doesn't the current implementation have the same implied promise, just in
a weaker form? I.e., "distortions will always produce the same results"? If my
understanding is correct, distorting a serial mesh and a parallel mesh won't
produce the same result right now. In that sense, the patch wouldn't make a
big difference really, except maybe increasing the chance of a user falling for
the promise. Which could be reduced again by disclaiming clearly in the
documentation...

Roman

------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to