如何在ANSYS中調用其他程序(matlab,C,fortran)和數據交換
2016-10-07 by:CAE仿真在線 來源:互聯網
ANSYS雖然比較強大,但是不能象Femlab一樣自定義模型方程。在某些情況下,必須用當前step的解作為條件,根據某些物理條件來改變單元的材料屬性以及載荷,作為下一個step的初始條件。 用ANSYS自帶的APDL可用于一般的流程控制,如果要實現特定的復雜物理模型就比較困難,而且速度極慢??尚械霓k法就是在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培訓