← Back to team overview

dolfin team mailing list archive

Re: [Question #101686]: cell.intersects() functionality in 0.9.7? (i.e. GTS dependencies)

 

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?

 >
 > 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?
 >
 > All assistance greatly appreciated

Any feedback as well :)

 > marc
 >

-- 
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.



Follow ups