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

您的位置:網(wǎng)站首頁 > Ansys教程

將ANSYS作為子程序調(diào)用的方法

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

2.在FORTRAN中調(diào)用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產(chǎn)品特征代碼。
需要注意的是,在VC中調(diào)用ANSYS時,需要加一條判斷語句,以確定ANSYS
已經(jīng)執(zhí)行完畢。



在FORTRAN中不需要判斷,F(xiàn)ORTRAN會等ANSYS執(zhí)行完畢才繼續(xù)執(zhí)行下一條語句。
在VC中,我沒有找到與FORTRAN類似的函數(shù),只好加一條循環(huán)判斷語句。
如果誰能找著這樣的函數(shù),請告訴我,謝謝!


判斷方法很簡單,只需判斷錯誤文件file.err是否可寫就可以了。
因?yàn)楫?dāng)ANSYS在運(yùn)行時,file.err是不可寫的,只有當(dāng)它運(yùn)行完畢,此文件才可寫。



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


圖形文件(假設(shè)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中相應(yīng)的顯示圖形文件命令為:
result=system("mspaint test001.jpg");



**************************************************************************************
VC調(diào)用ANSYS的示例程序。
file://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");
file://不用::WinExec,就用不著等待語句,可以實(shí)現(xiàn)用FORTRAN調(diào)用一樣的效果。
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是產(chǎn)品特征名稱,ane3fl是與其對應(yīng)的產(chǎn)品特征代碼,把這個代碼填到下面的語句中:
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ane3fl -i test.txt -o test.out");
VC中的變量與APDL語言中的變量可以進(jìn)行數(shù)據(jù)交換,否則怎么實(shí)現(xiàn)參數(shù)化或優(yōu)化設(shè)計(jì)?
不過不能直接互換.我采用的辦法是,在VC中將變量結(jié)果寫到一個文件中,然后再在ANSYS的APDL語言文件中讀入這個文件的數(shù)據(jù),再由ANSYS進(jìn)行新的計(jì)算,計(jì)算結(jié)束之后,再由后處理處理結(jié)果,并將結(jié)果數(shù)據(jù)輸出到一個文件中,然后用VC讀入此文件中的數(shù)據(jù),進(jìn)行下一步處理.