• tecplot
  • Tecplot有限元模型文件

同时输出绑定单元与结点的结果

# FETRIANGLE, FEQUADILATERAL, FETETRAHEDRAL, FEBRICK
VARIABLES = X Y Z U1 U2 DENS1 DENS2
ZONE T=XDD N=9  E=4  ZONETYPE=FEQUADRILATERAL
DATAPACKING=BLOCK
VARLOCATION=([6-7]=CELLCENTERED)
  1.0
  1.0
  1.0
  0.0
 -1.0
 -1.0
 -1.0
  0.0
  0.0
		-1.0
		 0.0
		 1.0
		 1.0
		 1.0
		 0.0
		-1.0
		-1.0
		 0.0
				0.0
				0.0
				0.0
				0.0
				0.0
				0.0
				0.0
				0.0
				0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
		9.0
		8.0
		7.0
		6.0
		5.0
		4.0
		3.0
		2.0
		1.0
1.11111111
2.22222222
3.33333333
4.44444444
		4.44444444
		3.33333333
		2.22222222
		1.11111111
5       6       9       4
4       9       2       3
6       7       8       9
9       8       1       2

多个区域

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 清空文件内容
tecFilName = "ZT_Assemb.dat";
fid = fopen(tecFilName,'w');
fclose(fid);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 清空文件内容


filName = "C:\Users\xdd\Downloads\Stage1.cdb";
FEM = ReadCDBFile(filName);
p = FEM.node(:,4:6);
p(:,3) = p(:,3)-600;
t = FEM.H8(:,12:19);
Matrix = [];
ToTecplot3D_Matrix(p,t,Matrix,tecFilName)


filName = "C:\Users\xdd\Downloads\Stage2.cdb";
FEM = ReadCDBFile(filName);
p = FEM.node(:,4:6);
p(:,3) = p(:,3)+600;
t = FEM.H8(:,12:19);
Matrix = [];
ToTecplot3D_Matrix(p,t,Matrix,tecFilName)

ToTecplot3D_Matrix.m文件

function ToTecplot3D_Matrix(p,t,Matrix,filename)

% ## Input:
%       p:node coord, N*3
%       t:element, N*4 or N*8
%       Matrix:node result, N*any or []
%       filename: 'xxx.dat'
%
% ## Example:
%       tecFilName = "ZT_Assemb.dat";
%       fid = fopen(tecFilName,'w');
%       fclose(fid);
%
%       filName = "C:\Users\xdd\Downloads\Stage1.cdb";
%       FEM = ReadCDBFile(filName);
%       p = FEM.node(:,4:6);
%       t = FEM.H8(:,12:19);
%       Matrix = [];
%       ToTecplot3D_Matrix(p,t,Matrix,tecFilName)
% 
%       filName = "C:\Users\xdd\Downloads\Stage2.cdb";
%       FEM = ReadCDBFile(filName);
%       p = FEM.node(:,4:6);
%       t = FEM.H8(:,12:19);
%       Matrix = [];
%       ToTecplot3D_Matrix(p,t,Matrix,tecFilName)
% ## End


%%%%%%%%%%%%%%%%%%%%
if isempty(Matrix) 
    Matrix = zeros(size(p,1),1);
end


fid=fopen(filename,'a');
fprintf(fid,'TITLE = "Example: Xdd1997 Data"\n');

item_N = size(Matrix,2);
title = 'VARIABLES = "X", "Y","Z",';
format = '%16.9f %16.9f %16.9f ';
for ii = 1:item_N
	title = [title,'"','U',num2str(ii),'"',','];
    format = [format,'%16.9f    '];
    if ii == item_N
        title = [title,' \n'];
        format = [format,' \n'];
    end
end
fprintf(fid,title);
%%%%%%%%%%%%%%%%%%%%



CD_results=p;
for ii = 1:item_N
    CD_results=[CD_results, Matrix(:,ii)];
end


% lineseg, tringle, quadrilateral tetrahedron, or brick
if size(t,2) == 4
    fprintf(fid,'ZONE N = %d E = %d ET = tetrahedron F=FEPOINT\n',size(p,1),size(t,1));
elseif size(t,2) == 8
    fprintf(fid,'ZONE N = %d E = %d ET = Brick F=FEPOINT\n',size(p,1),size(t,1));
else
    error('')
end


% node
fprintf(fid,format,CD_results');

% element
if size(t,2) == 4
    fprintf(fid,'%10d %10d %10d %10d\n',t');
elseif size(t,2) == 8
    fprintf(fid,'%10d %10d %10d %10d %10d %10d %10d %10d\n',t');
end

fclose(fid);
fprintf('%s 已经输出完毕\n',filename);