- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ABAQUS中Fortran子程序调用方法
第一种方法:
/ o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]
2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或 aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;
# ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录;
4. 将.obj文件拷贝到工作目录;
5. 建立好输入文件.inp;
6. 运行abaqusjob=inp_name user=fortran name即可。
第二种方法:
在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。
, D8 i7 d/r c6 @ |
以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j
用户进行二次开发时,要在命令行窗口执行下面的命令:
4 O. R+ ^,@( ? abaqus job=job_name user=sub_name
ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。
: j6 g R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。
1 子程序格式(程序后缀是.f; .f90; .for;.obj??)
答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。
在Abaqus中,运行abaqusj=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。
如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。
2 CAE中如何调用?Command下如何调用?
答:CAE中在creat job的jobmanager中的general中可以指定子程序;
Command下用命令:abaqus j=jobnameuser=userfilename (无后缀);
3 若有多个子程序同时存在,如何处理
答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册)
4 我对VF不是很熟,是否可以用VC,C++编写子程序?A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。
据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UVARM和UFIELD这两个subroutine,显然会造成重复定义,请查实。
用户子程序的使用
假设你的输入文件为:a.inp b.for
那么在ABAQUS Command 中的命令应该是这样的:
abaqusjob=a user=b
对于abaqus64pr11,command中输入:
abq64pr11job=a user=b就可以了。
当然首先你要用 cd 命令进入 输入文件 所在的当前文件目录。
强烈建议使用command来操作。
子程序文件名后缀应为 .for,而不是 .f
ABAQUS/CAE处理有两个程序:① 内核程序;② GUI (graphical user interface—图形用户界面)程序。
内核程序实际上就是它的脚本语言,它采用的是Python语言,同时扩展了Python语言,额外提供了大约500个对象模型,对象模型之间的关系复杂。
GUI程序(图像用户界面程序)是一个方便用户
文档评论(0)