Andre Massing wrote: > Question #101686 on DOLFIN changed: > https://answers.launchpad.net/dolfin/+question/101686 > > Status: Open => Answered > > Andre Massing proposed the following answer: > On Friday 19. February 2010 18.33.47 marc spiegelman wrote: > > New question #101686 on DOLFIN: > > https://answers.launchpad.net/dolfin/+question/101686 > > > > Hi All, > > I've implemented a rather nifty semi-lagrangian advection scheme in > > dolfin that requires rapid checking to see if a point intersects a > > cell > > (without necessarily firing up the full intersection operator). Pre > > 0.9.7 > > this was implemented as cell.intersects(point). > > > > Everything works fine in 0.9.6 with the new CGAL intersection > > operator > > replacing the GTS intersection operator (with about a 20% speedup). > > Did you only use the intersection between meshentities and points or did > you > use also the new mesh intersection operator? Just curious, because the > former > code for intersection between points og e.g. triangles did not change. > > > However, in 0.9.7 the code breaks because cell.intersects() has been > > removed as a GTS dependency (actually, looking at > > TriangleCell.intersects(point), it looks like it simply reproduces > > GTS > > code but wasn't actually dependent on GTS) > > Yep that's true, the intersection functions was removed and there is a new > PrimitiveIntersector class in C++ with two static functions. These computes > the intersection between rather arbitrary mesh entities (exact or only > using > doubling precision). The functions are exposed as do_intersect and > do_intersect_exact in the python interface. But you are right, a point - > meshentity intersection is not provided. I attached a patch against the > recent > 0.9.7 release. Could you can apply to you sources and see whether it > works for > you? >
Andre: Did you forget to attach it? > > > > The question is... is there is any equivalent functionality in CGAL > and is > > anyone interested in implementing it (either as cell.intersects(??) > > or some other interface). The functionality should be straightforward > > (and I'd be surprised if it didn't exist), given a *known cell* and a > > point, does the cell intersect the point. This would be useful for > > particle based methods as well. > > > > On a related note...are there any plans for a parallel implementation > > of Function::eval(Array<double>& values, const Array<double>& x) by > > release 1.0? I've just pushed a change for this, although it won't work for off-process points. Garth > > > > All assistance greatly appreciated > > Any feedback as well :) > > > marc > > > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp