ABAQUS与FORTRAN论坛问题小结_abaqus遇到的问题小结
ABAQUS与FORTRAN论坛问题小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“abaqus遇到的问题小结”。
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的时候出现这样的提示“Problem during compilation-df.exe not found in PATH.”请问这是什么原因.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-pr11site下的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***amplesbeam interactive')...出错提示:ABAQUS ERROR:Unable to create a temporary directory C:DOCUME~1ADMINI~1LOCALS~1TEMPAdministrato_ e:abaqu***amplesbeam_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 FilesMicrosoft Visual StudioDF98LIB;C:Program FilesMicrosoft Visual StudioVC98LIB(我的问题就是因为只加了一个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.........*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.........*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 “system” or “systemqq” USE DFLIB LOGICAL(4)result result = SYSTEMQQ('abaqus job=xx')QA: 首先我用ABAQUS的VARIFY命令对系统进行修正和检测,这个命令会自动运行,对ABAQUS进行调试等操作,其中涉及到对用户子程序的模拟计算,如果计算失败,就会在VARIFY.LOG文件中说明,确实发现“USER SUBROUTINE...和SINGLE...和DOUBLE...”失败,说明用户子程序安装不成功,肯定与VISUAL FORTRAN6.5有关!然后,找到FORTRAN_MAKE文本文件,发现错误,可能是与FORTRAN安装有关!于是卸载FORTRAN,重新安装在C盘!安装完毕后,改变环境变量如下: INCLUDE C:Program FilesMicrosoft Visual StudioDF98IMSLINCLUDE;C:Program FilesMicrosoft Visual StudioVC98INCLUDE;D:程序文件VC98INCLUDE;LIB C:Program FilesMicrosoft Visual StudioDF98IMSLLIB;C:Program FilesMicrosoft Visual StudioDF98LIB;C:Program FilesMicrosoft Visual StudioVC98LIB;D:程序文件VC98LIB;PATH C:Program FilesMicrosoft Visual StudioCommonTools;D:程序文件VC98BIN;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;C:KAV6;D:程序文件KV6;c:program filesmicrosoft visual studiodf98bin;c:program filesmicrosoft visual studiovc98bin;c:program filesmicrosoft visual studiocommonmsdev98bin;D:ABAQUSCommands;C:Program FilesMicrosoft Visual StudioDF98BIN我们只需要关注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.daodoc.com/bbs/redirect.php?fid=10&tid=9031&goto=nextnewset