delaunaytriangulation function: How to associate triangles with edges?
6 views (last 30 days)
Show older comments
Hi, I'm trying to perform finite volume method (CFD) calculations based on Matlab's built in "delaunaytriangulation" function. The function lists each triangle as a set of vertices or points. Similarly, the function lists each edge/face a set of vertices or points.
But I need each triangle information as a set of faces/edges to be able to loop over all edges for flux.
I get from dt.ConnectivityList command:
dt.ConnectivityList output
Point id_1 Point id_2 Point id_3 (Triangle no 1)
Point id_4 Point id_5 Point id_6 (Triangle no 2)
.... (And so on)
dt.Edge output
Point id_1 Point id_2 (Edge no 1)
POint id_3 Point id_4 (Edge no 2)
... (And so on)
What I need
Edge id_1 Edge id_2 Edge id_3 (Triangle no 1)
Edge id_4 Edge id_5 Edge id_6 (Triangle no 2)
.... (And so on)
Thank you very much.
0 Comments
Answers (2)
KSSV
on 16 Oct 2017
DelaunayTriangulation supports lot of functions....check this documentation for the functions it supports. I think edges should work for you.
1 Comment
KSSV
on 17 Oct 2017
Burak Pehlivan commented: Hi, edges command gives the vertex (id) sets of edges. I want the edge (id) sets of triangles.
Precise Simulation
on 16 Oct 2017
Edited: Precise Simulation
on 17 Oct 2017
With the gridedge function included with the Matlab FEA Toolbox you can reconstruct and recover the grid edge numbering like this:
p = rand(10,2);
t = delaunay(p);
[e,ev] = gridedge(t',2);
help gridedge, e'
where e contains the edge numbering for each cell, and ev the vertices for each edge. Alternativley, the following code snippet should work with a different edge numbering:
p = rand(10,2);
t = delaunay(p);
e = []; e2c = [];
for i=1:3
e = [e; t(:,[i mod(i,3)+1])];
e2c = [e2c; [i*ones(size(t,1),1) [1:size(t,1)]']];
end
[~,~,ei] = unique(sort(e,2),'rows');
e = zeros(3,size(t,1));
e(e2c(:,1)+3*(e2c(:,2)-1)) = ei;
e'
5 Comments
Precise Simulation
on 21 Oct 2017
The last lines reindexes e to give edge numbers. Try it on a small grid to see.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!