找回密码
 注册
Simdroid-非首页
查看: 416|回复: 12

[CFX/ICEMCFD] 经验共享:CFX二次开发——Delphi调用CFX

[复制链接]
发表于 2008-9-21 10:59:44 | 显示全部楼层 |阅读模式 来自 黑龙江大庆
之前我发了一个如何生成批处理文件的帖子:
http://forum.simwe.com/viewthread.php?tid=839124&extra=page%3D5%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D367
在此基础上成功实现了Delphi调用CFX,进行CFX前处理、求解和后处理,方法如下:


Delphi调用CFX之前必须生成相应的CFX文件包括:
(1)CFX前处理批处理文件file.pre;
(2)由file.pre生成的CFX求解文件file.def。
(3)CFX后处理批处理文件file.cse;


一、Delphi调用CFX进行CFX前处理设置
nResult := WinExec ( 'c:\Program Files\Ansys Inc\v110\cfx\bin\cfx5pre -batch file.pre' , 1 )
    if nResult > 31 then
    ShowMessage ( 'CFX前处理成功运行!' )
  else
    if nResult = 0 then
      ShowMessage ( '超出系统内存资源!' )
    else
      if nResult = ERROR_BAD_FORMAT then //
        ShowMessage ( '不是合法的Win32程序' )
      else
        if nResult = ERROR_FILE_NOT_FOUND then
          ShowMessage ( '指定的文件未找到' )
        else
          if nResult = ERROR_BAD_FORMAT then
            ShowMessage ( '不是合法的Win32程序' )
          else
            ShowMessage ( '未知错误!' ) ;


二、Delphi调用CFX进行CFX求解计算
nResult := WinExec ( 'c:\Program Files\Ansys Inc\v110\cfx\bin\cfx5solve -def file.def' , 1 ) ;
  if nResult > 31 then
   ShowMessage ( 'CFX求解成功运行!' )
  else
    if nResult = 0 then
      ShowMessage ( '超出系统内存资源!' )
    else
      if nResult = ERROR_BAD_FORMAT then //
        ShowMessage ( '不是合法的Win32程序' )
      else
        if nResult = ERROR_FILE_NOT_FOUND then
          ShowMessage ( '指定的文件未找到' )
        else
          if nResult = ERROR_BAD_FORMAT then
            ShowMessage ( '不是合法的Win32程序' )
          else
            ShowMessage ( '未知错误!' ) ;


三、Delphi调用CFX进行CFX后处理
nResult := WinExec ( 'c:\Program Files\Ansys Inc\v110\cfx\bin\cfx5post -batch file.cse' , 1 ) ;
if nResult > 31 then
    ShowMessage ( 'CFX后处理成功运行!' )
  else
    if nResult = 0 then
      ShowMessage ( '超出系统内存资源!' )
    else
      if nResult = ERROR_BAD_FORMAT then //
        ShowMessage ( '不是合法的Win32程序' )
      else
        if nResult = ERROR_FILE_NOT_FOUND then
          ShowMessage ( '指定的文件未找到' )
        else
          if nResult = ERROR_BAD_FORMAT then
            ShowMessage ( '不是合法的Win32程序' )
          else
            ShowMessage ( '未知错误!' ) ;

评分

1

查看全部评分

发表于 2008-9-24 10:55:45 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
似乎实际用处不太大,
搂主又没有应用的实例呢。
回复 不支持

使用道具 举报

 楼主| 发表于 2008-9-25 08:08:21 | 显示全部楼层 来自 黑龙江大庆
当然有用,我现在在做一个国家自然基金项目---钻柱流固耦合分析.由于目前CFX没有网格重新划分功能,我的方法是:

一.在一个时间点,用Delphi调用ANSYS计算固体,得到固体的位移,写出节点位移坐标;

二.根据固体的位移,Delphi调用ANSYS重新建立流体的几何体,再对其划分网格;

三.根据流体网格文件,由Delphi调用CFX计算流体,得到流体载荷;

四.在ANSYS中由第三步计算出来的流体载荷施加到固体各个节点上,对固体重新分析,写出节点位移坐标;

五.反复第二到第四步,直到前后两次计算出来的固体位移变化很小,进入下一个时间计算.

六.重复(第一到五步),直到时间增加到总时间,结束计算.

[ 本帖最后由 jslx2000 于 2008-10-10 18:07 编辑 ]
回复 不支持

使用道具 举报

发表于 2008-10-7 09:29:19 | 显示全部楼层 来自 北京航空航天大学
学习学习了
回复 不支持

使用道具 举报

发表于 2008-10-7 09:29:43 | 显示全部楼层 来自 北京航空航天大学
楼主厉害啊
回复 不支持

使用道具 举报

发表于 2008-10-14 15:38:37 | 显示全部楼层 来自 黑龙江哈尔滨
谢谢分享!
回复 不支持

使用道具 举报

发表于 2008-10-14 22:16:26 | 显示全部楼层 来自 LAN
学习了,谢谢楼主
回复 不支持

使用道具 举报

发表于 2008-10-14 22:18:58 | 显示全部楼层 来自 LAN
我现在用C++,不知道可不可以同样做呢
回复 不支持

使用道具 举报

 楼主| 发表于 2008-10-22 10:02:57 | 显示全部楼层 来自 黑龙江大庆
一样可以调用
回复 不支持

使用道具 举报

发表于 2010-3-23 21:53:16 | 显示全部楼层 来自 北京海淀
楼主很牛,希望得到更多的例子
回复 不支持

使用道具 举报

发表于 2010-3-26 12:22:06 | 显示全部楼层 来自 北京
我觉得还是用mpcci,使用fluent和abaqus,可能效果更好
回复 不支持

使用道具 举报

发表于 2010-11-8 20:37:16 | 显示全部楼层 来自 陕西西安
学习了,很有启发
回复 不支持

使用道具 举报

发表于 2010-11-13 22:11:06 | 显示全部楼层 来自 广东深圳
用WB不行吗?
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-17 10:25 , Processed in 0.054344 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表