2024年4月21日发(作者:)
一、关于ansys与VC++/Fortran程序的接
口资料!
可以在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);
VC调用ANSYS的示例程序。
//
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("");
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i -o
");
//不用::WinExec,就用不着等待语句,可以实现用FORTRAN调用一样的效果。
printf("");
}
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类似的函数,只好加
一条循环判断语句。 判断方法很简单,只需判断错误文件是否可写就可
以了。 因为当ANSYS在运行时,是不可写的,只有当它运行完毕,此
文件才可写。
在ANSYS中当然也可以以VC或FORTRAN作为子程序调用。可以参看有关
ANSYS二次开发方面的资料。 这个方法应该是与系统无关的。
4、在哪里查ansys_product_feature , vc中的类的成员变量和apdl语言中的
变量进行数据交换
以第一行为例:ANSYS/MULTIPHYSICS ane3fl
ANSYS/MULTIPHYSICS是产品特征名称,ane3fl是与其对应的产品特征代码,把这
个代码填到下面的语句中:
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ane3fl -i -o
");
VC中的变量与APDL语言中的变量可以进行数据交换,不过不能直接互换.我采
用的办法是,在VC中将变量结果写到一个文件中,然后再在ANSYS的APDL语言
文件中读入这个文件的数据,再由ANSYS进行新的计算,计算结束之后,再由后处
理处理结果,并将结果数据输出到一个文件中,然后用VC读入此文件中的数据,进
行下一步处理.
5、数据文件和图形文件获得
.ext是数据文件,ext是指文件扩展名。
数据文件(假设输出的数据文件名为):
*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 ");


发布评论