Hi Roy,
thanks for your quick answer.

Quoting Roy Stogner <[email protected]>:


On Fri, 25 Mar 2011, [email protected] wrote:

I have a 2D mesh in 3 spacial dimensions and I'd like to get the
element, which contains a point. The point_locator uses
Elem::contains_point which uses FEInterface::inverse_map and then
checks, if the reference point is in the reference element. For 3D
points the inverse map is not defined in the whole space, which causes
problems, when mapping non coplanar points falsely to the reference
element.

Hmm... yes, inverse_map() is solving the normal equations, and so
ought to be converging to the inverse of the projection of the point
into the plane/line of the element... which is fine on interior meshes
or on boundary meshes generated from "flat enough" boundary subsets
but which would give false positives for many boundary meshes.

I then changed the function a bit by mapping the reference
point back again in physical space and checked the distance there for
< tol*hmin(). However now it looks like I've got other problems
probably caused by this hack.

That sounds like the right fix, but inverse_map is used in a lot of
places and it would indeed be easy to break something else by missing
a corner case... like we seem to have done in the first place.

I changed contains_point, which should be fine, I think.


Are your other problems replicable on any of the examples or on
anything you can send us in a short code?

It is replicable. The point locator keeps on returning the wrong element. I attached the piece of code, where all important things are included. However, I'm in a hurry and can't prepare a nice small stand alone example. Sorry for that.

Am I doing something wrong, is there a common pitfall with boundary
meshes, or does anybody know, how to locate an element containing the
point on boundary meshes.

You're doing everything right, and found a bug that needs fixing; it's
just not a common pitfall because it's not a common usage type, I
suppose.
---
Roy

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software
be a part of the solution? Download the Intel(R) Manageability Checker
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users


Thanks again,
    Hannes

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to