find_elem_id_point

Finds the id of the element that contains a given point. It workds only for 2D Meshes

Version : 1.0

Author : George Kourakos

email: giorgk@gmail.com

Date 18-Mar-2014

Department of Land Air and Water

University of California Davis

Usage

id = find_elem_id_point(p, MSH, pnt, Nsearch)

Input

p: Mesh node coordinates [ np x 2]

MSH : Mesh [Nel x Nsh]

pnt : coordinates of points to search for their element ids [Np x 2]

Nsearch: The function computes first the barycenters of the elements and checks only the Nsearch closer elements for each point

Output

id: a list of element ids

Example

Create a hypothetical mesh

```p = 10*rand(10,2);
MSH = delaunay(p(:,1), p(:,2));
```

Create 100 random points

```pnt = 10*rand(100,2);
```

Now check the element ids of each point

```id = find_elem_id_point(p, MSH, pnt, 5);
```

For each element plot which points contains and last plot those that they are outside of the mesh

```triplot(MSH, p(:,1),p(:,2));
hold on
for i = 1:size(MSH,1)
plot(pnt(id == i,1), pnt(id == i,2),'.','color',[rand rand rand]);
end
plot(pnt(isnan(id),1), pnt(isnan(id),2),'.k');
```