ABAQUS中Fortran子程序调用方法-自己总结

上传人:pu****.1 文档编号:511832422 上传时间:2022-09-05 格式:DOC 页数:3 大小:24.52KB
返回 下载 相关 举报
ABAQUS中Fortran子程序调用方法-自己总结_第1页
第1页 / 共3页
ABAQUS中Fortran子程序调用方法-自己总结_第2页
第2页 / 共3页
ABAQUS中Fortran子程序调用方法-自己总结_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《ABAQUS中Fortran子程序调用方法-自己总结》由会员分享,可在线阅读,更多相关《ABAQUS中Fortran子程序调用方法-自己总结(3页珍藏版)》请在金锄头文库上搜索。

1、第一种方法: 在Job模块里,创建工作,在Edit Job对话框中选择General选项卡,在User subroutine file中点击Select按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。第二种方法:/ o/ J5 6 U/ - o$ 1. 建立工作目录2. 将Abaqus安装目录6.4-pr11site下的aba_param_dp.inc 或 aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc;# / |0 I0 E6 , 4 X3 q: W3. 将编译的fortran程序拷贝到工作目录;4. 将.obj文件拷贝到工作目录;5

2、. 建立好输入文件.inp;6. 运行abaqus job=inp_name user=fortran name即可。, D8 i7 d/ rc6 |以下是网上摘录的资料,供参考:. |$ t/ $ W7 Y6 m4 h6 D6 j用户进行二次开发时,要在命令行窗口执行下面的命令:4 O. R+ , ( ? abaqus job=job_name user=sub_nameABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则

3、没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。: j6 g R- o( 0 * N2 J3 X这些生成的临时文件要到文件夹C:Documents and SettingsAdministratorLocal SettingsTemp中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。1子程序格式(程序后缀是.f; .f90; .for;.obj?) 答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Aba

4、qus中,运行abaqus j=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。2CAE中如何调用?Command下如何调用?答:CAE中在creat job的job manager中的general中可以指定子程序;Command下用命令:abaqus j=jobname user=userfile

5、name (无后缀);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

6、.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UVARM和UFIELD这两个subroutine,显然会造成重复定义,请查实。用户子程序的使用假设你的输入文件为:a.inp b.for那么在ABAQUS Command 中的命令应该是这样的:abaqus job=a user=b对于abaqus64pr11,command 中输入:abq64pr11 job=a user=b就可以了。当然首先你要用 cd 命令进入 输入文件 所在的当前文件目录。强烈建议使用command来操作。 子程序文件名后缀应为 .for,而不是 .fABAQUS/CAE处理有两个程

7、序: 内核程序; GUI (graphical user interface图形用户界面)程序。内核程序实际上就是它的脚本语言,它采用的是Python语言,同时扩展了Python语言,额外提供了大约500个对象模型,对象模型之间的关系复杂。GUI程序(图像用户界面程序)是一个方便用户输入或选择参数的图形用户接口。ABAQUS/CAE是采用IPC协议来完成内核程序和GUI程序的通信的。ABAQUS有限元程序通过集成Python语言向二次开发者提供了很多库函数,通过ABAQUS脚本接口(ABAQUS Scripting Interface),Python语言调用这些库函数来增强ABAQUS的交互式

8、操作功能。它允许用户绕过ABAQUS/CAE的GUI(graphical user interfaces)直接与内核交互,可以大大提高工作效率或完成ABAQUS/CAE没有提供的功能。但是因为它没有通过GUI,显的不那么直观,而且如想改变某些参数就不得不修改脚本程序,这些对一般用户来说就显的比较麻烦。因此,对ABAQUS二次开发一般应先开发出GUI后,让用户输入或选择有关参数后,然后生成ABAQUS的脚本语言来自动处理。ABAQUS的GUI是用ABAQUS GUI Toolkit来编写,它也是对FOX GUI Toolkit的拓展,它在编写程序时也是遵循Python语言的格式。ABAQUS二次

9、开发有如下几种途径: 通过用户子程序可以开发新的模型,控制ABAQUS计算过程和计算结果; 通过环境初始化文件可以改变ABAQUS的许多缺省设置; 通过内核脚本可以实现前处理建模和后处理分析计算结果; 通过GUI脚本可以创建新的图形用户界面和用户交互。目前使用较多的是第1种方法和第3种方法。仿真论坛上的帖子:Abaqus中python的二次开发都是基于前后处理的(差不多就是和CAE进行交流的),要么直接利用Python生成自己需要的模型或者INP(前处理),要么就是利用Python从已有的*.odb中高效地读取自己想要的数据(后处理)。ABAQUS的自适应网格不改变网格的拓扑结构(单元和连接的关系),它结合了纯拉格朗日分析(网格随材料移动)和欧拉分析(网格位置固定,材料在网格中流动),被称为“任意拉格朗日-欧拉分析(ALE)”。它通常比纯拉格朗日分析更高效、更精确和更稳定。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号