有限元静力学计算有时需要将提出算法计算应力应变结果与商用软件应力结果比较。ADINA计算操作简单,结果导出方便。本文用MATLAB编写代码,读取ADINA计算的壳单元应力结果,并可视化。具体代码如下:
% 打开文本文件
fid = fopen('Cook8S.txt', 'r');
% 初始化数组
data = cell(0, 1); % 初始数据为空数组
% 逐行读取数据
while ~feof(fid)
% 读取一行数据
line = fgetl(fid);
% 检查是否是元素编号行
if contains(line, 'Element')
splitLine = strsplit(line, {' ', '\t'});
nel=str2double(splitLine{3});
data{nel,1}=zeros(0, 2);
continue; % 跳过元素编号行
end
% 检查是否是数据行
if contains(line, 'Int point')
% 解析行数据
splitLine = strsplit(line, {' ', '\t'});
index = str2double(splitLine{4});
value = str2double(splitLine{5});
% 将编号和值添加到数组中
data{nel}(end+1, :) = [index, value];
end
end
% 关闭文件
fclose(fid);
%结果可视化 注意:需要自备Element_Connect和Nodes_Coord数组
% E_strain=zeros(size(data,1),4);
figure;hold on;view(3);num=[4 2 1 3];
for k = 1:size(Element_Connect,1)
strain=[];
for j=1:size(Element_Connect{k},2)
strain=[strain data{k}(num(j)*2-1,2)];
end
% E_strain(k,:)=strain;
patch(Nodes_Coord(Element_Connect{k},1),...
Nodes_Coord(Element_Connect{k},2),...
strain,...
strain)
end