tri3_tri6

Below is a demonstration of the features of the tri3_tri6 function

Contents

Syntax

[TRI6,V6,VX6C]=tri3_tri6(TRI3,V3,VXC);

Description

The tri3_tri6 converts 3-node triangles to 6-node triangles. These correspond to linear and quadratic triangular elements for finite element analysis. The 6-node triangular element follows the FEBio format such that the first 3 points are the 3-node triangle points, the following 3 nodes are the mid-edge points. To plot it with a command such as patch or gpatch one therefore needs to use element2patch or use: TRI6(:,[1 4 2 5 3 6]);

Examples

clear; close all; clc;

% Plot settings
fontSize=25;
faceColor='b';
faceAlpha=0.3;
edgeColor='k';
edgeWidth1=2;
edgeWidth2=1;
markerSize1=75;
markerSize2=10;

CONVERSION FROM TRI3 TO TRI6

Creating an example triangulated mesh

[TRI3,V3]=geoSphere(2,1);

Converting to a single 10-node tetrahedron

[TRI6,V6,~]=tri3_tri6(TRI3,V3);
[F6]=element2patch(TRI6,[],'tri6');

Plotting elements

cFigure; % Open figure for plotting
subplot(1,2,1); hold on;
title('3-node linear triangles','FontSize',fontSize);

gpatch(TRI3,V3,'rw'); %Plotting surface
patchNormPlot(TRI3,V3); %Plotting face normals
plotV(V3,'k.','MarkerSize',25);
axisGeom;
camlight('headlight');

subplot(1,2,2); hold on;
title('6-node quadratic triangles','FontSize',fontSize);

% gpatch(TRI6(:,[1 4 2 5 3 6]),V6,'gw'); %Plotting surface
gpatch(F6,V6,'gw'); %Plotting surface
patchNormPlot(F6,V6); %Plotting face normals
plotV(V6,'k.','MarkerSize',25);
axisGeom;
camlight('headlight');

drawnow;

CONVERSION FROM TRI3 TO TRI6, EXAMPLE FOR A CONVERSION OF NODAL PARAMETERS

nodalData_tri3=V3(:,3)*2;

Converting to a single 10-node tetrahedron

dataCell_tri3={nodalData_tri3};
[TRI6,V6,dataCell_tri6]=tri3_tri6(TRI3,V3,dataCell_tri3);
[F6]=element2patch(TRI6,[],'tri6');
nodalData_tri6=dataCell_tri6{1};

Plotting elements

hf=cFigure; % Open figure for plotting

subplot(2,2,1); hold on;
title('3-node linear triangles','FontSize',fontSize);

gpatch(TRI3,V3,'rw'); %Plotting surface
plotV(V3,'k.','MarkerSize',25);
axisGeom;
camlight('headlight');

subplot(2,2,3); hold on;
title('Data on tri3 mesh','FontSize',fontSize);
gpatch(TRI3,V3,nodalData_tri3); %Plotting surface
plotV(V3,'k.','MarkerSize',25);
axisGeom;
camlight('headlight');

subplot(2,2,2); hold on;
title('6-node quadratic triangles','FontSize',fontSize);

% gpatch(TRI6(:,[1 4 2 5 3 6]),V6,'gw'); %Plotting surface
gpatch(F6,V6,'gw'); %Plotting surface
plotV(V6,'k.','MarkerSize',25);
axisGeom;
camlight('headlight');
colormap(gjet(250));
subplot(2,2,4); hold on;
title('Mapped data on tri6 mesh','FontSize',fontSize);
gpatch(F6,V6,nodalData_tri6); %Plotting surface
plotV(V6,'k.','MarkerSize',25);
axisGeom;
camlight('headlight');
colormap(gjet(250));

drawnow;

GIBBON www.gibboncode.org

Kevin Mattheus Moerman, gibbon.toolbox@gmail.com

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) 2019 Kevin Mattheus Moerman

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/.