I have traced the source of the sideset problem with AMR.  The problem lies in 
the virtual function "Elem::is_child_on_side".  The typical implementation of 
this function for most of the different element types is to compare the actual 
child number (NOT the Element ID) with the corresponding parent vertex 
associated with that child.  (i.e. the order of the children is well defined 
because of the embedding_matrix and lines up nicely with the vertices of the 
parent element).  The problem arises when this assumption does not hold because 
the embedding matrix purposely switches that order.  Here is the comment from 
cell_hex8.C which does just that!

 // The 8 children of the Hex-type elements can be thought of as being
 // associated with the 8 vertices of the Hex.  Some of the children are
 // numbered the same as their corresponding vertex, while some are
 // not.  The children which are numbered differently have been marked
 // with ** in the comments below.

Specifically, here is the list of changes for Hex elements:
Vertex 2 holds child 3
Vertex 3 holds child 2
Vertex 6 holds child 7
Vertex 7 holds child 6

OOPS!

The result is that the call to "Elem::active_family_tree_by_side" returns bogus 
elements for a given side!  This seems like a somewhat critical issue so before 
I get in there and hack a fix, I just wanted to bring the findings to the 
development team's attention.  Does anybody have a preferred fix for this 
problem?  The same error will be present in each of of the element types that 
has "renumbered" children.

Thanks,
Cody
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Libmesh-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to