Hi Lawrence, That did the trick, thanks a lot! Also thanks for your comments on the code. I will open an issue on GitHub. Cheers, Daniel On 31/05/16 11:06, Lawrence Mitchell wrote:
On 31/05/16 10:08, Daniel Ruprecht wrote:
Hi Lawrence,
We set up the problem according to your info and it works initially. However, as we move meshA, at the some point all the results from
solution_A.at(Xs, dont_raise=True)
become None's and we have absolutely no idea why this is happening - it works for about 5 time steps and then it doesn't anymore. I attached a small example reproducing the problem and a short video showing what is happening.
To illustrate, we print out
solution_A.at((0.0, 2.2), dont_raise=True)
and the point is marked in the video. For the first three steps, the result is the correct 5.0 (an arbitrary value we assign to the solution on meshA at the moment) but after that it becomes None, even though the point is still clearly ``in contact'' with meshA.
Any ideas what is happening here? Yes. The point evaluation stuff doesn't currently deal with moving meshes. We build an rtree for point queries, but only do that once. So after a while, once you've moved the mesh the bounding boxes are in the wrong place.
To fix this, every time you move the mesh, you can do:
del meshA.spatial_index
If you report a bug, we will track it and add a public API for clearing the rtree.
A few comments on your code.
Please, where possible, use interpolation of UFL expressions (rather than C strings) as described here: http://firedrakeproject.org/interpolation.html#ufl-expressions
This gets you much better type checking.
Additionally, there's no need to do the WithGeometry dance for u_A, you're not changing the mesh's coordinate function space, only its values.
Cheers,
Lawrence
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- Dr. Daniel Ruprecht University Academic Fellow School of Mechanical Engineering, Room 4.50 University of Leeds Leeds LS2 9JT, UK Email: d.ruprecht@leeds.ac.uk Phone: +44 (0)113 343 22 01