From: Roy S. <roy...@ic...> - 2006-08-04 21:27:21
|
On Fri, 4 Aug 2006, Tim Kr=F6ger wrote: > I did these changes now; see the attached patch. Please commit it to t= he=20 > repository (provided that you are satisfied with it). One problem I see: in the case of quadratic mappings (or any more complicated mappings, if the University of Auckland folks decide to code them!) it's possible for an element's nodes to all be inside a bounding box even though part of the element interior extends outside the box. I don't know of any fast way to get the real bounding box for even a quadratic element. This will be a very uncommon problem, though - perhaps an adequate solution for now is just to leave in the fallback linear search. I'll add that search back in (but changed to loop over only active elements) and commit the patch to CVS this afternoon. > I also removed the fall-back linear search since in my opinion it is no= t=20 > necessary any more. Anyway, if the linear search includes non-active=20 > elements (as it did), it would again give wrong results, and if not, it= is=20 > very likely to crash, because the involved inverse map seems to be very= =20 > instable in the case that the point is very far away from the element. = At=20 > least, this is true (and not surprising) for distortet HEX8 elements. The inverse map iteration definitely won't converge for some elements if the physical point is outside the element, but that shouldn't cause a problem for Elem::constains_point() anymore; if its call to inverse_map() doesn't converge, the result is a distant point that will make sure on_reference_element() is false. > Additionally, I added a function get_point_locator() to MeshFunction, b= ecause=20 > in my application, I want to reuse the MeshFunction's PointLocator for=20 > additional purposes. Looks good. --- Roy |