For the PDE toolbox, how to get the Edges/ faces IDs of a geometry without plotting them?
17 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Siju Thomas
2019-9-13
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Geometry and Mesh 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!