ABAQUS与FORTRAN论坛问题小结Q:索了一下论坛发现以前的问题都是不同类型的子程序,如UEL,UMAT...这样把它们放在一个.for文件里不会有误会,但是如果都是UEL的话,该怎么识别呢?A:subroutineUmat()IF(CMNAME(1:4).EQ.'MAT1')THENCALLUMAT_MAT1(argument_list)ELSEIF(CMNAME(1:4).EQ.'MAT2')THENCALLUMAT_MAT2(argument_list)ENDIF上面是区分不同umat的方法,区分uel应该类似吧Q:行abaqus的时候出现这样的提示Problemduringcompilation-df.exenotfoundinPATH.请问这是什么原因.A:就是说找不到用于编译的df.exe文件(好像是Fortran的编译运行文件),在Windows控制面板的“系统”里,打开高级属性,将系统的PATH添加上Fortran的路径,最好也一并把INCLUDE和LIB也都添加上对应的FORTRAN的路径。Q:如何在ABAQUS中调用用户子程序UMATA:abaqusjob=***user=*.foror*.objA:装好fortran编译器的前提下,有两种方式:1、命令行:abaqusjob=*.inpuser=*.for或abaqusjob=*.inpuser=*.obj(可以由*.f90编译后得到)2、菜单格式:先运行CAE,在general设置中可以指定Umat用户子程序A:job=jobnameuser=yourfortran.for(其它类型子程序)A:如果是本构的二次开发:*material,userQ:abaqusjob=job-nameuser={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.运行abaqusjob=inpfilenameuser=fortanname即可。我的要运行abq64pr11job=inpfilenameuser=fortanname我也学了没多久,按照这个过程成功了一个!你们试一下吧!Q:想用FORTRAN实现:...result=SYSTEMQQ('abqjob=e:\abaqu***amples\beaminteractive')...出错提示:ABAQUSERROR:UnabletocreateatemporarydirectoryC:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\Administrato_e:\abaqu***amples\beam_3628tobeusedforscratchfiles.ABAQUS/Analysisexitedwitherrors.但如果是result=SYSTEMQQ('abqjob=beaminteractive'),但需要在FORTRAN弹出的DOS窗口里手工输入文件的绝对路径则计算正常。但我的目的是实现Fortran程序对ABAQUS的计算程序的自动调用。A:说个投机的花招,有没有试过在前面加上result=SYSTEMQQ('path=e:/abaqu***amples')这样的命令~~方法简单,不过能解决问题最好A:把要算的工况都集中在一个文件夹下,fortran生成.exe文件,放在该文件夹下,然后双击运行。计算结束之后再把各种工况分类。笨招,但好用。A:我想,或者把systemQQ改一下,先cde:\...,然后再systemQQ(abaqusjob=jobnameinteractive)。Q:偶想在FORTRAN里设定一个计时器,其功能就是每隔一段时间(如10s)就去读一次ABAQUS的(.fil)文件。哪个函数可以实现这个功能?怎么实现??A:通过一个while循环和下面的语句:callsleepqq(时间间隔)就可以了。Q:本人尝试使用ABAQUS的子程序SUBROUTINE,根据帮助文件需要编译通过生成*.for和*.lib文件,可是编译的时候出现错误:Error:Cannotopenincludefile'ABA_PARAM.INC'不知道是什么原因,怎么解决?A:1.确认VisualFortran及VC++正确安装,并在安装ABAQUS之前安装。2.首先将用户子程序*.f文件后缀名改为*.for。3.到控制面板-》系统-》高级-》环境变量中的Administrator用户变量:修改——变量名:lib变量值:C:\ProgramFiles\MicrosoftVisualStudio\DF98\LIB;C:\ProgramFiles\MicrosoftVisualStudio\VC98\LIB(我的问题就是因为只加了一个LIB,必须两个都加!!)完成以上步骤以后,就可以运行了。Q:怎样把自己编写的子程序倒入到*.INP文件中。A:Usingthefollowingcommand:abaqusjob=job-idAscanbeseenthisisnodifferentfromrunningastandardabaqusjob.Theusersubroutineitselfcanbeembeddedintheabaqusinputfile.Hereitisillustratedwiththeumatsubroutine.....partoftheabaqusinputfile............*ENDSTEP*USERSUBROUTINESSUBROUTINEUMAT(........)........END........Alternativelytheusersubroutinecanbeinaseparatefile(saymy_material.f)andtheINPUTparameterissettothatfilename.....partoftheabaqusinputfile............*USERSUBROUTINES,INPUT=my_material.f........Q:用FortranSYSTEMQQ函数作批处理遇到问题,在fortran中使用result=systemqq(abaqusjob=job1interactive)作批处理,总是在计算两个job之后就不继续往下算了,cmd明令行提示:runtimeerror:floating-point...请问这是怎么回事?A:个方法就是做一个批处理文件,abaqusjob=beaminteractiveabaqusjob=beam1interactiveabaqusjob=beam2interactiveabaqusjob=beamn?interactive存为.bat文件即可。python好像一般是做CAE前后处理界面的。A:前面加call.callabaqusjob=1interactivecallabaqusjob=2interactivecallabaqusjob=3interactiveQ:FORTRAN如何调用ABAQUS?A:usethefunctionsystemorsystemqqUSEDFLIBLOGICAL(4)resultresult=SYSTEMQQ('abaqusjob=xx')QA:首先我用ABAQUS的VARIFY命令对系统进行修正和检测,这个命令会自动运行,对ABAQUS进行调试等操作,其中涉及到对用户子程序的模拟计算,如果计算失败,就会在VARIFY.LOG文件中说明,确实发现USERSUBROUTINE...和SINGLE...和DOUBLE...失败,说明用户子程序安装不成功,肯定与VISUALFORTRAN6.5有关!然后,找到FORTRAN_MAKE文本文件,发现错误,可能是与FORTRAN安装有关!于是卸载FORTRAN,重新安装在C盘!安装完毕后,改变环境变量如下:INCLUDEC:\ProgramFiles\MicrosoftVisualStudio\DF98\IMSL\INCLUDE;C:\ProgramFiles\MicrosoftVisualStudio\VC98\INCLUDE;D:\程序文件\VC98\INCLUDE;LIBC:\ProgramFiles\MicrosoftVisualStudio\DF98\IMSL\LIB;C:\ProgramFiles\MicrosoftVisualStudio\DF98\LIB;C:\ProgramFiles\MicrosoftVisualStudio\VC98\LIB;D:\程序文件\VC98\LIB;PATHC:\ProgramFiles\MicrosoftVisualStudio\Common\Tools;D:\程序文件\VC98\BIN;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\KAV6;D:\程序文件\KV6;c:\programfiles\microsoftvisualstudio\df98\bin;c:\programfiles\microsoftvisualstudio\vc98\bin;c:\programfiles\microsoftvisualstudio\common\msdev98\bin;D:\ABAQUS\Commands;C:\ProgramFiles\MicrosoftVisualStudio\DF98\BIN我们只需要关注MICROSOFTVISUALSTUDIO文件夹!最后,再次执行VARIFY命令,等运行完毕后,检查VARIFY文本文件,发现:ABAQUS/StandardwithUserSubroutines...PASSContinuing...ABAQUS/ExplicitwithUserSubroutines(singleprecision)...PASSContinuing...ABAQUS/ExplicitwithUserSubroutines(doubleprecision)...PASSContinuing...OK!!!!!!!!!!!!!!!!!!搞定Q:因为ABAQUS是用PYTHON编写的,那么我想要PYTHON的原代码,因为我想在其中加一个椭圆程序,不知可行么?(访问原代码问题)A:所有的PY都是差不多一样的,把ABAQUS的PY拿到MARC试试看文档来源:=10&tid=9031&goto=nextnewset