ABAQUS与FORTRAN问题小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABAQUS与FORTRAN论坛问题小结
Q:索了一下论坛发现以前的问题都是不同类型的子程序,如UEL, UMA T...这样把它们放在一个.for文件里不会有误会,但是如果都是UEL的话,该怎么识别呢?
A:subroutine Umat()IF (CMNAME(1:4) .EQ. 'MA T1') THENCALL
UMA T_MA T1(argument_list)ELSE IF(CMNAME(1:4) .EQ. 'MA T2') THENCALL
UMA T_MA T2(argument_list)END IF上面是区分不同umat的方法,区分uel应该类似吧
Q:行abaqus的时候出现这样的提示"Problem during compilation - df.exe not found in PA TH."请问这是什么原因.
A: 就是说找不到用于编译的df.exe文件(好像是Fortran的编译运行文件),在Windows控制面板的“系统”里,打开高级属性,将系统的PA TH添加上Fortran的路径,最好也一并把INCLUDE和LIB也都添加上对应的FORTRAN的路径。
Q: 如何在ABAQUS中调用用户子程序UMA T
A:abaqus job=*** user=*.for or *.objA: 装好fortran编译器的前提下,有两种方式:
1、命令行:abaqus job=*.inp user=*.for或abaqus job=*.inp user=*.obj (可以由*.f90编译后得到)
2、菜单格式:先运行CAE,在general设置中可以指定Umat用户子程序A: job=jobname user=yourfortran.for(其它类型子程序)A:如果是本构的二次开发:*material, user
Q: abaqus job=job-name user={source-file | object-file}source-file和object-file各是什么?
A: fortran的源文件(.for)或者目标文件(.o)在command下面输入以上命令行就可以正常运行. 用户子程序再调用别的fortran程序时,要加入abaqus 子程序中的include
'ABA_PARAM.INC'。
Q: 自己编写子程序需要哪些工作步骤
A: 1.建立工作目录
2.将abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc 或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc ;
3.将编好的fortran程序拷贝到工作目录;
4.编译fortran程序,将.obj文件拷贝到工作目录;
5.建立好输入文件.inp;
6.运行abaqus job=inp file name user=fortan name即可。我的要运行abq64pr11 job=inp file name user=fortan name我也学了没多久,按照这个过程成功了一个!你们试一下吧!
Q: 想用FORTRAN实现:...result = SYSTEMQQ('abq job=e:\abaqu***amples\beam interactive')...出错提示:ABAQUS ERROR:Unable to create a temporary directory
C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\Administrato_ e:\abaqu***amples\beam_3628 to be used for scratch files.ABAQUS/Analysis exited with errors.但如果是result = SYSTEMQQ('abq job=beam interactive'),但需要在FORTRAN弹出的DOS窗口里手工输入文件的绝对路径则计算正常。但我的目的是实现Fortran程序对ABAQUS的计算程序的自动调用。
A: 说个投机的花招,有没有试过在前面加上result = SYSTEMQQ('path=e:/abaqu***amples')这样的命令~~方法简单,不过能解决问题最好
A:把要算的工况都集中在一个文件夹下,fortran生成.exe文件,放在该文件夹下,然后双击运行。计算结束之后再把各种工况分类。笨招,但好用。
A: 我想,或者把systemQQ改一下,先cd e:\... ,然后再systemQQ(abaqus job=jobname interactive)。
Q: 偶想在FORTRAN里设定一个计时器,其功能就是每隔一段时间(如10s)就去读一次ABAQUS的(.fil)文件。哪个函数可以实现这个功能?怎么实现??
A: 通过一个while循环和下面的语句:call sleepqq(时间间隔)就可以了。
Q: 本人尝试使用ABAQUS的子程序SUBROUTINE,根据帮助文件需要编译通过生成*.for 和*.lib文件,可是编译的时候出现错误:Error: Cannot open inc lude file 'ABA_PARAM.INC'不知道是什么原因,怎么解决?
A: 1.确认Visual Fortran及VC++正确安装,并在安装ABAQUS之前安装。2.首先将用户子程序*.f文件后缀名改为*.for。3.到控制面板-》系统-》高级-》环境变量中的Administrator 用户变量:修改——变量名:lib变量值:C:\Program Files\Microsoft V isual
Studio\DF98\LIB;C:\Program Files\Microsoft V isual Studio\VC98\LIB (我的问题就是因为只加了一个LIB,必须两个都加!!)完成以上步骤以后,就可以运行了。
Q: 怎样把自己编写的子程序倒入到*.INP文件中。
A: Using the following command : abaqus job=job-id As can be seen this is no different from running a standard abaqus job. The user subroutine itself can be embedded in the abaqus input file. Here it is illustrated with the umat subroutine. <....part of the abaqus input
file ....> ........*END STEP*USER SUBROUTINES SUBROUTINE
UMA T(........) ........ END ........Alternatively the user subroutine can be in a separate file (say my_material.f) and the INPUT parameter is set to that file name. <....part of the abaqus input file ....> ........*USER SUBROUTINES, INPUT=my_material.f ........