如何在ANSYS中调用其他程序(matlab,C,fortran)和数据交换
2016-10-07 by:CAE仿真在线 来源:互联网
ANSYS虽然比较强大,但是不能象Femlab一样自定义模型方程。在某些情况下,必须用当前step的解作为条件,根据某些物理条件来改变单元的材料属性以及载荷,作为下一个step的初始条件。 用ANSYS自带的APDL可用于一般的流程控制,如果要实现特定的复杂物理模型就比较困难,而且速度极慢。可行的办法就是在ANSYS运行中把每一个step的结果传给外部程序,用来计算下一步的载荷和单元属性。
A.
和外部程序交换数据,首先要处理好协同问题,一般可用一下两种方法:
(1)ANSYS 和 外部程序同时运行 --
需要建立一个flag文件。通过在ANSYS和程序中读其内容来判断对方是否在运行。在ANSYS和外部程序运行完一个step,改变flag,告诉对方自己当前运行结束,对方可以继续运行,否则必须等待。
(2)在ANSYS中调用/SYS命令执行外部程序。
此时ANSYS会暂时停止运行,直到外部程序结束运行,把执行权交还给ANSYS。
(1)适用与matlab等非编译语言。
(2)适用与C和Fortran等编译语言。
B. 如何在外部程序中告诉ANSYS改变单元属性和载荷变化:
在从ANSYS中导入数据后,外部程序一般可以根据具体物理模型来创建.mac文件,然后在此文件中写入MPCHG等APDL命令。例如用C创建一个"MD.mac"文本文件,用fsprintf(fp,"MPCHG
%d,%d", element_num, Material_ID). 当程序结束运行,在ANSYS中用*use,
MD.mac 来实现加载和单元属性的改变。
C. 如何在ANSYS和外部程序中传递数据。
一般在ANSYS中把当前结果写在数据文件中,
在外部程序中读取。一般常用的命令有*MOPER。*MOPER可以把节点(node)的结果例如T(x,y,z)
自动根据插值计算映射到用户自己定义的网络上。
然后可以用*MWRITE写入数据文件。例如,如果用free mesh, node 的
坐标可能是很混乱的。用MOPER可以把结果映射到特定的有序的网络
(x0->x1,dx;y0->y1,dy;z0->z1,dz).
相关标签搜索:如何在ANSYS中调用其他程序(matlab,C,fortran)和数据交换 Ansys有限元培训 Ansys workbench培训 ansys视频教程 ansys workbench教程 ansys APDL经典教程 ansys资料下载 ansys技术咨询 ansys基础知识 ansys代做 Fluent、CFX流体分析 HFSS电磁分析 Abaqus培训