24小时热门版块排行榜    

查看: 2408  |  回复: 4

gushen666

铜虫 (小有名气)

[交流] 【讨论】Fluent后处理之与Matlab结合~~~~数据接口 已有4人参与

利用Fluent进行三维模拟计算,模拟出来的颗粒运动轨迹线,现在需要对其计算结果进行处理,Tecplot只能进行二维的或者切面的图形功能。现在我需要在一个界面上把颗粒显示出来,(就是说把颗粒的形状显示出来,比如说是圆形的颗粒)同时也可以显示出其运动的轨迹~~~~~~
   不知道这个可以用哪些软件可以实现呢?目前我在Matlab方面进行摸索,但是在数据接口这方面遇到瓶颈~~~~
   还望各位大侠参与讨论进来~~~



[ Last edited by gushen666 on 2010-11-30 at 17:07 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

信彼南山

木虫 (著名写手)

★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
zzuwangshilei(金币+4):方法不错 2011-01-02 09:38:17
matlab画动画?是不是这个意思?
matlab不是专业画动画的软件,简单程序画出来的不美观,需要好看的话程序又比较复杂。

原理上我觉得可以这样:
定义你那个所谓“颗粒”的形状的句柄,然后修改句柄就等于变化绘图的位置,将运动轨迹作为句柄参数调用就可以了。

OpenGL应该是比较好的选择
2楼2011-01-01 00:25:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

heattransfet

新虫 (职业作家)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
xiegangmai(金币+1): 鼓励讨论交流 2011-02-28 19:42:22
用CFX的后处理很好,图也很漂亮
不用现在已经集成到ANSYS里成CFD-POST了,呵呵
此号从今天(2012-06-25)开始不用了。。。。。。。。
3楼2011-02-28 16:17:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by gushen666 at 2010-11-30 16:54:24:
利用Fluent进行三维模拟计算,模拟出来的颗粒运动轨迹线,现在需要对其计算结果进行处理,Tecplot只能进行二维的或者切面的图形功能。现在我需要在一个界面上把颗粒显示出来,(就是说把颗粒的形状显示出来,比如 ...

转的:
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://maggie74.blogbus.com/logs/59768118.html

用matlab对fluent导出的结果进行处理而且可以将数据导出的例子
2008-05-15 10:45
matlab画图能力很强,而且其可编程性给处理问题带来很大方便,我尝试将fluent导出的ASCII数据导入matlab处理,原代码如下:
CODE:
%打开文件并读入数据
fid=fopen('post','r');
name2=input('input the file name\n','s')
fgetl(fid)
data1=fscanf(fid,'%f %f %f %f %f',[5 inf]);
fclose(fid);
fid=fopen(name2,'r');
fgetl(fid);
data2=fscanf(fid,'%f %f %f %f %f',[5 inf]);
fclose(fid);
%对数据按坐标升序排列
xudata1=sortrows(data1',2);
xudata2=sortrows(data2',2);
xudata1=xudata1';xudata2=xudata2';
%找出sym和avg数据
maxr=max(xudata1(3,:));stp=0.0002;%y坐标最大值,求avg时候的x步长
avg1=zeros(2,round(1+0.02/stp));avg1(1,:)=0:stp:0.02;avg2=avg1;%对avg坐标赋初值
j=1;j2=1;jj=1;%j记录avg的当前index;j2记录avg(j)中第一个加入的xudata的index;jj记录sym的当前index
for i=1:length(xudata1)
     if xudata1(3,i)>maxr-0.00004
     sym1(1,jj)=xudata1(2,i);sym1(2,jj)=xudata1(5,i);
     sym2(1,jj)=xudata1(2,i);sym2(2,jj)=xudata2(5,i);
     jj=jj+1;
     end
      mii=fix((xudata1(2,i)+stp/2)/stp)+1;
     avg1(2,mii)=avg1(2,mii)+xudata1(5,i);
     avg2(2,mii)=avg2(2,mii)+xudata2(5,i);
     if mii>j|i==length(xudata1)
     avg1(2,j)=avg1(2,j)/(i-j2);
     avg2(2,j)=avg2(2,j)/(i-j2);
     i-j2
     j=j+1;j2=i;
     end
end
%绘图
figure(1)
plot(sym1(1,:),sym1(2,:),sym2(1,:),sym2(2,:))
figure(2)
plot(sym1(1,:),sym1(2,:),sym2(1,:),sym2(2,:),avg1(1,:),avg1(2,:),avg2(1,:),avg2(2,:));
legend('sym1','sym2','avg1','avg2');
hold on
plot(sym1(1,:),sym2(2,:)./sym1(2,:),avg1(1,:),avg2(2,:)./avg1(2,:));
legend('symrate','avgrate');
fid=fopen(['tec' name2],'w');
fprintf(fid,'TITLE = "heat transfer coefficient" \nVARIABLES = "x/d", "yta or rate" \nZONE T="sym", I=%d, F=POINT\n',length(sym2));
fprintf(fid,'.6f .6f',sym2);
fprintf(fid,'ZONE T="avg", I=%d, F=POINT\n',length(avg2));
fprintf(fid,'.6f .6f',avg2);
fclose(fid)
%用tecplot格式输出
fid=fopen('tecpost','w');
fprintf(fid,'TITLE = "heat transfer coefficient" \nVARIABLES = "x/d", "yta or rate" \nZONE T="sym", I=%d, F=POINT\n',length(sym1));
fprintf(fid,'.6f .6f',sym1);
fprintf(fid,'ZONE T="avg", I=%d, F=POINT\n',length(avg1));
fprintf(fid,'.6f .6f',avg1);
fclose(fid)

明德厚学、求是创新
4楼2011-02-28 19:52:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

knowal

银虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
您好,请问您的问题怎么解决的?是用matlab还是其他软件?
5楼2013-11-13 17:43:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 gushen666 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见