For the PDE toolbox, how to get the Edges/ faces IDs of a geometry without plotting them?
19 views (last 30 days)
Show older comments
Matias Bulacio
on 12 Sep 2019
Commented: Matias Bulacio
on 13 Sep 2019
I am using the geometryFromEdges function to generate the geometry in which I want to solve the PDE. All the geometry will be formed by rectangles, but the number of rectangles could vary. So I need to identify the FaceLabel ID for every rectangle to set the PDE coefficients properly. Following you can see a section of my code where I define the geometry:
%Create the PDE model with a single dependent variable.
numberOfPDE = 1;
model = createpde(numberOfPDE);
% Geometry description:
DIE = [3, 4, -x_ds/2, x_ds/2, x_ds/2, -x_ds/2, -y_ds/2, -y_ds/2, y_ds/2, y_ds/2]';
MR = [3, 4, xinfMR, xsupMR, xsupMR, xinfMR, yinfMR, yinfMR, ysupMR, ysupMR]';
AR = [3, 4, xinfAR, xsupAR, xsupAR, xinfAR, yinfAR, yinfAR, ysupAR, ysupAR]';
DR = [3, 4, xinfDR, xsupDR, xsupDR, xinfDR, yinfDR, yinfDR, ysupDR, ysupDR]';
%Define geometry
gm=[DIE,MR,AR,DR];
sf='DIE+MR+AR+DR';
ns=char('DIE','MR','AR','DR');
ns=ns';
g=decsg(gm,sf,ns);
geometryFromEdges(model,g);
So is there any way to map the geometry labels from gm variable (DIE, MR, AR and DR) to the Face labels ID after generating the geometry for the pde?
Thanks in advanced for any help on that.
0 Comments
Accepted Answer
Siju Thomas
on 13 Sep 2019
I have written a small helper function (See attachment: getFaceID.m) that can help you find the Face Label (Or Face ID) of a particular point. You can download the Matlab script to your current working directory and call the helper function (getFaceID). But first make sure that you generate a mesh for your PDEModel oobject using generateMesh.
The subsequent commands are as follows:
model.generateMesh();
coords = [0 0]; % Coordinates of the query point
faceID = getFaceID(model,coords); % faceID will return ID of the Face closest to the query point
Please note, the error handling for the function is not great at all. Also, if a geometry and/or mesh is missing from the pdeModel object, then the function will error.
More Answers (0)
See Also
Categories
Find more on Geometry and Mesh in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!