我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > Ansys教程

如何將ANSYS作為子程序調用

時間:2008-09-15 11:17:34 來源:
對于優化或參數化設計,可以在VC或FORTRAN中將ANSYS作為子程序調用。具體調用方法如下:
1.在VC中調用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);

2.在FORTRAN中調用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:ANSYS57BININTELANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')

3.說明
1和2中,input_file為用APDL語言編寫的ANSYS輸入文件。
ansys_product_feature為你的ANSYS產品特征代碼。
需要注意的是,在VC中調用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經執行完畢。


在FORTRAN中不需要判斷,FORTRAN會等ANSYS執行完畢才繼續執行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數,只好加一條循環判斷語句。
如果誰能找著這樣的函數,請告訴我,謝謝!

判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因為當ANSYS在運行時,file.err是不可寫的,只有當它運行完畢,此文件才可寫。


數據文件(假設輸出的數據文件名為opt.out):
*dim,out1,,2,1
out1(1)=dmax !目標函數
out1(2)=1-eymax !約束條件1
*cfopen,opt,out
*vwrite,out1(1),out1(2)
(2f10.6)
*cfclos
在VC中相應的顯示數據文件命令為:
result=system("notepad opt.out");

圖形文件(假設ANSYS工作文件名為test,輸出jpg圖形文件,具體信息請參考命令/show):
/SHOW,JPEG
JPEG,QUAL,75,
JPEG,ORIENT,HORIZ
JPEG,COLOR,2
JPEG,TMOD,1
/GFILE,600,
!*
plns,uy
/SHOW,TERM
在VC中相應的顯示圖形文件命令為:
result=system("mspaint test001.jpg");


**************************************************************************************
VC調用ANSYS的示例程序。
//Test.cpp
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("Solving...");
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out");
//不用::WinExec,就用不著等待語句,可以實現用FORTRAN調用一樣的效果。
printf("Solution finished...");
}


怎么還不知道?那個特征表找著沒有?ANSYS幫助-%26gt;ANSYS,INC.Licensing Guide-%26gt;License files-%26gt;What are License files-%26gt;Product feature Table
以第一行為例:ANSYS/MULTIPHYSICS ane3fl
ANSYS/MULTIPHYSICS是產品特征名稱,ane3fl是與其對應的產品特征代碼,把這個代碼填到下面的語句中:
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ane3fl -i test.txt -o test.out");
VC中的變量與APDL語言中的變量可以進行數據交換,否則怎么實現參數化或優化設計?
不過不能直接互換.我采用的辦法是,在VC中將變量結果寫到一個文件中,然后再在ANSYS的APDL語言文件中讀入這個文件的數據,再由ANSYS進行新的計算,計算結束之后,再由后處理處理結果,并將結果數據輸出到一個文件中,然后用VC讀入此文件中的數據,進行下一步處理.