[Dune] global-to-local mapping

Aleksejs Fomins aleksejs.fomins at lspr.ch
Mon Sep 1 16:34:54 CEST 2014


Dear Dune,

I think I have now implemented and tested most of the functionality of
the new LagrangeGeometry class, with exception of the local-to-global
mapping, and will soon proceed to adapt the grid to the new curvilinear
geometry.

I have two questions with respect to the global-to-local algorithm.

1) Originally I was suggested that in order to check if a global point
is inside the element, I should first convert the point to local
coordinates, and then check it wrt reference element. However, in
curvilinear coordinates many global points do not correspond to any
local coordinate at all. For example, for a curvilinear 1D edge defined
on the reference interval [0,1] by the function f(x) = x^2, which is a
valid 1-to-1 map inside the edge, asking for a local coordinate
corresponding to the global coordinate XX = -1 is not defined.

We have decided on the following solution: construct a method that
checks if a point is inside of the element in global coordinates, and,
only if it is, also calculates its local coordinate using Newton's
method. For a simplex, for example, this method can be realized by
calculating global barycentric coordinates and checking if they sum up
to 1 or not.

2) The above described method is considerably more difficult if the
dimension of element and the world dimension do not match. At the moment
I will skip on implementing the local() method for the case where the
dimension of the element and the world do not match.

This is still possible to do the long way though. For example, to find
if a global point belongs to the face of an element, one can first
obtain the local coordinate of the point within the face, and then check
if this local coordinate corresponds to the face easily. Still, I would
be happy if someone could give me an example where such functionality
would be necessary. At the moment it seems to me that asking if a point
belongs to a boundary has undetermined answer if the coordinate has a
tiny error.

---------------------------------------------------------------------
If you have suggestions/remarks on the above described method, please
let me know soon before I implement it :)

Thank you for your support,
Aleksejs Fomins

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 551 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20140901/c6c81c3c/attachment.sig>


More information about the Dune mailing list