将ansys作为子程序调用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

将ANSYS作为子程序调用

对于优化或参数化设计,可以在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:\ANSYS57\BIN\INTEL\ANSYS57 -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帮助->ANSYS,INC.Licensing Guide->License files->What are License files->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读入此文件中的数据,进行下一步处理.

相关文档
最新文档