On 23/06/2015 09:30, Garth N. Wells wrote:
On 22 June 2015 at 18:00, Anders Logg <[email protected]> wrote:
The challenge in moving the bounding box tree outside of the mesh is that it has always been part of the mesh (it replaced an earlier data structure that
was there) so a user expects to be able to do

v = Function(V)
print v(x)


This is fine for Expressions, but for a Function I don't think it's
bad for the interface to make obvious to the user that they are
performing a potentially expensive operation. If the user was required
to pass the cell, all would be fine. It would also fix the issues with
Function evaluations in parallel.

without needing to instantiate some cryptic BoundingBoxTree data structure. Furthermore, a user expects that on subsequent calls v(x) is fast since the
tree has already been built.

I don't see a way around automatic handling of building the search tree. Are
there some clever suggestions?


We have a fundamental problem/flaw that MeshGeometery is mutable and a
Mesh owns a bounding box object. One of the two needs to give.

Garth


I would vote for removing direct access to MeshGeometry data, and only allowing it to be moved by a method, e.g. MeshGeometry::update(std::size_t i, Point p);


Chris
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to