ABAQUS与FORTRAN论坛问题小结
Q:索了一下论坛发现以前的问题都是不同类型的子程序,如UEL, UMAT...这样把它们放在一个.for文件里不会有误会,但是如果都是UEL的话,该怎么识别呢? A:subroutine Umat()IF (CMNAME(1:4) .EQ. 'MAT1') THENCALL
UMAT_MAT1(argument_list)ELSE IF(CMNAME(1:4) .EQ. 'MAT2') THENCALL
UMAT_MAT2(argument_list)END IF上面是区分不同umat的方法,区分uel应该类似吧
Q:行abaqus的时候出现这样的提示\TH.\请问这是什么原因.
A: 就是说找不到用于编译的df.exe文件(好像是Fortran的编译运行文件),在Windows控制面板的“系统”里,打开高级属性,将系统的PATH添加上Fortran的路径,最好也一并把INCLUDE和LIB也都添加上对应的FORTRAN的路径。
Q: 如何在ABAQUS中调用用户子程序UMAT
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 include file 'ABA_PARAM.INC'不知道是什么原因,怎么解决?
A: 1.确认Visual Fortran及VC++正确安装,并在安装ABAQUS之前安装。2.首先将用户子程序*.f文件后缀名改为*.for。3.到控制面板-》系统-》高级-》环境变量中的 Administrator用户变量:修改—— 变量名:lib变量值:C:\\Program Files\\Microsoft Visual
Studio\\DF98\\LIB;C:\\Program Files\\Microsoft Visual 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
UMAT(........) ........ 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 ........
Q: 用Fortran SYSTEMQQ函数作批处理遇到问题,在fortran中使用result = systemqq(abaqus job=job1 interactive)作批处理,总是在计算两个job之后就不继续往下算了,cmd明令行提示:run time error:floating-point...请问这是怎么回事?
A: 个方法就是做一个批处理文件,abaqus job=beam interactiveabaqus job=beam1 interactiveabaqus job=beam2 interactiveabaqus job=beam n? interactive存为.bat文件即可。python好像一般是做CAE前后处理界面的。
A:前面加call.call abaqus job=1 interactivecall abaqus job=2 interactivecall abaqus job=3 interactive
Q:FORTRAN如何调用ABAQUS?
A: use the function \
SYSTEMQQ('abaqus job=xx')QA: 首先我用ABAQUS的VARIFY命令对系统进行修正和检测,这个命令会自动运行,对ABAQUS进行调试等操作,其中涉及到对用户子程序的模拟计算,如果计算失败,就会在VARIFY.LOG文件中说明,确实发现\和SINGLE...和DOUBLE...\失败,说明用户子程序安装不成功,肯定与VISUAL FORTRAN6.5有关!然后,找到FORTRAN_MAKE文本文件,发现错误,可能是与FORTRAN安装有关!于是卸 载FORTRAN,重新安装在C盘!安装完毕后,改变环境变量如下: INCLUDE C:\\Program Files\\Microsoft Visual Studio\\DF98\\IMSL\\INCLUDE;C:\\Program Files\\Microsoft Visual Studio\\VC98\\INCLUDE;D:\\程序文件\\VC98\\INCLUDE;LIB C:\\Program Files\\Microsoft Visual Studio\\DF98\\IMSL\\LIB;C:\\Program Files\\Microsoft Visual Studio\\DF98\\LIB;C:\\Program Files\\Microsoft Visual Studio\\VC98\\LIB;D:\\程序文件\\VC98\\LIB;PATH C:\\Program Files\\Microsoft Visual Studio\\Common\\Tools;D:\\程序文件
\\VC98\\BIN;%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem;C:\\KAV6;D:\\程序文件\\KV6;c:\\program files\\microsoft visual studio\\df98\\bin;c:\\program files\\microsoft visual studio\\vc98\\bin;c:\\program files\\microsoft visual
studio\\common\\msdev98\\bin;D:\\ABAQUS\\Commands;C:\\Program Files\\Microsoft Visual Studio\\DF98\\BIN我们只需要关注MICROSOFT VISUAL STUDIO文件夹!最后,再次执行VARIFY命令,等运行完毕后,检查VARIFY文本文件,发现: ABAQUS/Standard with User Subroutines...PASSContinuing...ABAQUS/Explicit with User Subroutines (single precision)...PASSContinuing...ABAQUS/Explicit with User Subroutines (double precision)...PASSContinuing...OK!!!!!!!!!!!!!!!!!!搞定
Q: 因为ABAQUS是用PYTHON编写的, 那么我想要PYTHON 的原代码,因为我想 在其中加一个椭圆程序,不知可行么?(访问原代码问题)
A: 所有的PY都是差不多一样的,把ABAQUS的PY拿到MARC试试看
文档来源:http://www.jixieqiye.com/bbs/redirect.php?fid=10&tid=9031&goto=nextnewset