tesBoundary
Below is a demonstration of the features of the tesBoundary function
Contents
clear; close all; clc;
Syntax
[indBoundary]=tesBoundary(F);
Description
This function obtains the indices of the boundary faces based on the input faces F. Boundary faces are those that occur only once (in terms of nodes involved, e.g. [1 2 3 4] is deemed the same face as [2 3 4 1].
Examples
Plot settings
fontSize=20; faceAlpha1=0.5;
Example 1: Get hex mesh boundary faces
Example geometry
boxDim=[6 4 4]; boxEl=[5 3 3]; [meshStruct]=hexMeshBox(boxDim,boxEl,2); E=meshStruct.elements; %Elements V=meshStruct.nodes; %Nodes F=meshStruct.faces; %Mesh faces %The hexMeshBox function provides boundary faces already but tesboundary is used in this example % Fb=meshStruct.facesBoundary; %Boundary faces
Get boundary faces
indBoundary=tesBoundary(F); Fb=F(indBoundary,:);
Plotting model
cFigure; subplot(1,2,1); hold on; title('All faces','FontSize',fontSize); gpatch(F,V,'w','k',faceAlpha1,3); axisGeom(gca,fontSize); camlight headlight; subplot(1,2,2); hold on; title('Boundaries faces','FontSize',fontSize); gpatch(Fb,V,'w','k',faceAlpha1,3); axisGeom(gca,fontSize); camlight headlight; drawnow;
Example 1: Get tet mesh boundary faces
Example geometry
boxDim=[6 4 4]; pointSpacing=2; [meshStruct]=tetMeshBox(boxDim,pointSpacing); E=meshStruct.elements; %Elements V=meshStruct.nodes; %Nodes F=meshStruct.faces; %Mesh faces %The tetMeshBox function provides boundary faces already but tesboundary is used in this example % Fb=meshStruct.facesBoundary; %Boundary faces
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --- TETGEN Tetrahedral meshing --- 08-Oct-2021 15:05:24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --- Writing SMESH file --- 08-Oct-2021 15:05:25 ----> Adding node field ----> Adding facet field ----> Adding holes specification ----> Adding region specification --- Done --- 08-Oct-2021 15:05:25 --- Running TetGen to mesh input boundary--- 08-Oct-2021 15:05:25 Opening /mnt/data/MATLAB/GIBBON/data/temp/temp.smesh. --- Done --- 08-Oct-2021 15:05:25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --- Importing TetGen files --- 08-Oct-2021 15:05:25 --- Done --- 08-Oct-2021 15:05:25
Get boundary faces
indBoundary=tesBoundary(F); Fb=F(indBoundary,:);
Plotting model
cFigure; subplot(1,2,1); hold on; title('All faces','FontSize',fontSize); gpatch(F,V,'w','k',faceAlpha1,3); axisGeom(gca,fontSize); camlight headlight; subplot(1,2,2); hold on; title('Boundaries faces','FontSize',fontSize); gpatch(Fb,V,'w','k',faceAlpha1,3); axisGeom(gca,fontSize); camlight headlight; drawnow;
GIBBON www.gibboncode.org
Kevin Mattheus Moerman, [email protected]
GIBBON footer text
License: https://github.com/gibbonCode/GIBBON/blob/master/LICENSE
GIBBON: The Geometry and Image-based Bioengineering add-On. A toolbox for image segmentation, image-based modeling, meshing, and finite element analysis.
Copyright (C) 2006-2021 Kevin Mattheus Moerman and the GIBBON contributors
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.