> Ok - I'm with you on thisŠ. but I think it will be user selectable.  i.e....
> if you pass in "true" to prepare_for_use() there won't be any renumbering of
> the initial mesh _ever_ (With SerialMeshŠ ParallelMesh can do what it needs
> to).  It is a "use at your own risk" kind of featureŠ
> 
> The whole issue is that we have an API now where you can tell libMesh _not_ to
> renumberŠ. but then it will anyway the next time reinit() is called!  That's
> inconsistentŠ.

True.

Sorry for my silence on this issue - I was on I-35 from MN to TX for way too
long and am now just trying to catch up.  Still clearly working on getting
familiar with this thread, but want to interject a possible hiccup...

How far do we need to go with supporing and maintaining an arbitrary initial
numbering?  I ask because it is perfectly conceivable that an input mesh
might have only three nodes, numbered 100, 200, 300, and that means
something to the user.  Now if we go and refine that now things could and
certainly (probably!) would break eventually.  So do we only support
arbitrary initial numbers so long as they are 0-based and contiguous?

As for this proposal:

> We could try to band-aid reinit()Š but I really think for our users they
> REALLY want the input numbering to _not_ change for the initial meshŠ no
> matter what (even when using Adaptivity).

I'd like to propose an alternate course of action that doesn't have as much
potential to constrain the data structures on the libMesh side...

What about something along the lines of a Node::Identifier class that
returns some strongly typed and less arbitrary way of identifying a node?
This could be extended to elements too obviously...

The thing that comes to mind is actually encapsulating the node address.
Currently this is much more stable than the node number.  In the serial mesh
we take great pains to only allocate nodes and elements once, whereas as you
notice we'll gleefully thrash the IDs at will.

So if we went along these lines then perhaps a callback would be needed when
a mesh is read to store the Node::Identifiers based on user-requested
*original* node numbers, but then we'd be free to do whatever to them.

Thoughts?

-Ben






------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to