Reading *.msh files (3D) in Matlab.
334 views (last 30 days)
Show older comments
Sanwar Ahmad on 1 Oct 2019
Commented: Fei Fan on 19 Feb 2023
I have created this 3D geometry and the mesh in Gmsh, now I need to get the number of nodes, elements, faces from the mesh in Matlab. How can I do that?
I can send you the *.geo and the *.msh files.
Thanks in advance.
ADSW121365 on 6 Mar 2020
If you're using gmsh, you can use its inbuilt exporter to export a .m file to read into MATLAB.
This loads in a structure array called msh.
Assuming a 3D linear tetrahedral mesh:
%Uses pre-created mesh from gmsh
%Run mesh file name without .m:
nodes = msh.POS';
elements = msh.TETS;
groupsID = elements(:,5);
%If you have multiple domains, this will contain domain IDs
% (assuming you haven't checked 'export all elements', else it will be a column of zeros.
elements = elements(:,1:4);
geom2 = geometryFromMesh(model,nodes,elements,groupsID); %Import to PDE Toolbox
%If you have subdomains, this will identify their geometries even for a coherent mesh:
%In my example, my actual mesh is just a solid 3D box, however by giving the group IDs
% it is able to identify internal cells, faces etc
figure(1); pdeplot3D(model,'FaceAlpha',0.5) %Mesh Plot
figure(2); pdegplot(model,'CellLabels','on','FaceAlpha',0.5) %Geometry
figure(3); pdegplot(model,'FaceLabels','on','FaceAlpha',0.5) %Geometry
%% Finding specific elements/nodes:
%Given this setup, the labels in figures 2 and 3 will allow you to identify faces,
%cells or areas using the usual functions mentioned above.
C_e = findElements(model.Mesh,'region','cell',1); %Coil
C_n = findNodes(model.Mesh,'region','cell',1);
Fei Fan on 19 Feb 2023
Hi, my msh array has only POS element , no TETS elements. But there is an extra msh.TRIANGLES. Am I using gmsh by mistake?
More Answers (1)
Sahithi Kanumarlapudi on 5 Nov 2019
‘findElements’ and ‘findNodes’ can be used to calculate the number of elements and nodes in a mesh respectievely.
You can find the documentation for both the functions in the following links
Find more on Structural Mechanics 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!