剑桥大学工程系《ABAQUS常见问题解答》翻译连载(2):计算任务

Chapter-2:Jobs
第二章 计算任务
Q2.1:如何运行计算任务?

利用下面的命令:

abaqus job=job-id interactive

例如:

abaqus job=plate inter
Q2.2:如何处理多个计算任务?
创建一个bat批处理文件(如aba-multrun.bat)每行代码如下:
abaqus job=analysis-a interactiveabaqus job=analysis-b interactiveabaqus job=analysis-c interactiveabaqus job=analysis-d interactive
然后利用下面代码执行.bat文件即可(Unix系统下):
chmod u+x aba-multrun.bat
aba-multrun将会依次调用abaqus执行每个计算任务,这只适合用时短的小计算。最好的做法是一次性提交所有的计算任务进行求解(在终端输入上述指令,但是末尾不带interactive),但是这对计算机来说是一个很严重的负载,占用资源较大。对于中大型的计算提交,可能涉及并行、shell操作等,该部分内容在课程中涉及,翻译不提供。
如果是在Windows系统下面执行上述批处理,需要做一定的修改,在指令前后增加括号,如下所示。如果不做处理则计算机只会执行第一行也就是提交第一个计算任务。
(abaqus job=analysis-a interactiveabaqus job=analysis-b interactiveabaqus job=analysis-c interactiveabaqus job=analysis-d interactive)
Q2.3:如何启动abaqus/CAE?
利用下面的指令:
abaqus cae
Q2.4:如何启动abaqus/Viewer?
abaqus viewerabaqus viewer database=cantilever

例如:

abaqus viewer database=cantilever

Q2.5:如何获取abaqus帮助文档提供案例的inp文件?

两种方法:
一、直接打开文件在线粘贴、复制;
二、利用fetch命令结合分析实例的ID获取。具体如下:在线找到想要的帮助文档案例名称,然后利用fetch将inp文件下载到当前文件夹下。
如层压复合板失效问题(abaqus6.3版本实例帮助文档1.1.13,abaqus6.14版本实例帮助文档1.1.14)inp输入名都是以damagefailcomplate开始,该例总共有10个文件。利用abaqus fetch结合通配符*来匹配所有的文件名完成帮助文档案例inp文件的自动获取。
例如:
abaqus fetch job=damagefailcomplate*
该命令将获取到以下文件到当前路径下(作者猜测是因为操作系统问题:Linux版本开头是inflating,Windows系统下是fetching,如图):
inflating: damagefailcomplate_cps4.f    inflating: damagefailcomplate_cps4.inp    inflating: damagefailcomplate_cps4r.f    inflating: damagefailcomplate_cps4r.inp    inflating: damagefailcomplate_element.inp    inflating: damagefailcomplate_node.inp    inflating: damagefailcomplate_s4.f    inflating: damagefailcomplate_s4.inp    inflating: damagefailcomplate_s4r.f    inflating: damagefailcomplate_s4r.inp
Q2.6:如何运行一个调用用户子程序的计算任务?
利用下面的指令即可:
abaqus job=job-id user= < subroutine-filename >
Linux系统下子程序扩展名是.f文件,Windows下则为.for文件,都是Fortran子程序。
例如子程序为my_material.f,则使用下列命令:
abq681 job=plate user=my_material
如果存在多个子程序,所有子程序必须包含在一个文件中。
如果使用GUI提交创建Job计算,则需要在Job创建窗口中的User subroutine file中指定子程序然后确认即可,如图所示。

注:上述涉及子程序调用操作,均需要安装Fortran编译器Intel Visual Fortran,否则报错。

Q2.7:如何使用用户自己编写的后处理程序获取*.fil文件?
利用下述指令:
abaqus make job=job-id user=name-of-file
Example :
abaqus make job=cantilever user=disp1

上述命令将会编译disp1.f并生成一个cantilever.x的可执行程序,然后利用abaqus cantilever.x运行即可获得*.fil文件。

Q2.8:如何查找abaqus中各种不同的程序运行指令?
直接在终端输入:
abaqus help
即可输出所有的abaqus各类程序执行指令。
 Execution Procedure for ABAQUS/Standard and ABAQUS/Explicit abaqus job=job-name  [ analysis | datacheck | continue | help | recover |                        convert={restart|select|all} |                         information={environment|local|memory|release|status} ]                      [ input=input-file    ]  [ user=source-file ]                      [ oldjob=oldjob-name  ]  [ fil={append|new} ]                      [ globalmodel=results file-name ] [ double ]                      [ memory=memory-size  ]  [ buffer=buffer-size ]                       [ interactive | background | queue=queue-name ]                      [ cpus=number-of-cpus ] [scratch=scratch-dir]                      [ subcomplex=subcomplex-name] Note: subcomplex is only valid on the Convex Exemplar Execution Procedure for ABAQUS/Abares abaqus abares job=job-name [ restart=restart-name ]                            [ beginstep=step-number ] [ endstep=step-number ]                            [ increment={all|endstep|final|none|integer-list} ] Execution Procedure for ASCII translation of results (.fil) files abaqus ascfil job=job-name [ input=input-file ] Execution Procedure for on-line documentation  abaqus doc  Execution Procedure for ABAQUS/Append abaqus append job=job-name oldjob=oldjob-name input=input-file Execution Procedure for ABAQUS/Fetch abaqus fetch job=job-name [ input=input-file ]Execution Procedure for ABAQUS/Findkeywordabaqus findkeyword [ job=job-name ] [ maximum=maximum-matches ]Execution Procedure for ABAQUS/Makeabaqus make job=job-name [ user={source-file|object-file} ]Execution procedure for suspending or resuming analysis jobsabaqus [ suspend | resume ] job=job-nameExecution procedure for fixed format translatorabaqus free job=job-name input=input-fileExecution Procedure for input file upgrade utilityabaqus upgrade job=new-input-file input=old-input-fileExecution Procedure for output database file upgrade utilityabaqus upgrade job=new-output-database-file odb=old-output-database-fileExecution Procedure for the movie player utilityabaqus movieplayer [ movie=animation-file ]Execution Procedure for ABAQUS Verificationabaqus verify [ -all | -std | -user_std | -exp | -user_exp                 -cae | -viewer | -design | -make | -param                  -scripting | -adams | -cmold | -moldflow                  -catia | -ideas | -parasolid | -proe                  -log ]
下图是abaqus6.14运行的结果截图,其中一个很有趣的命令就是加密,可以针对性的对inp文件加密,只有知道密码才能执行。
abaqus {encrypt | decrypt} input=input-file-name output=output-file-name password=password [license=feature_list] [siteid=site-id_list] [include_only] [expiration=expiration_date]
Q2.9:如何查询软件当前环境变量的设置?
终端输入命令:
abaqus info=environment
将会输出当前abaqus环境变量的所有设置信息。
其它参数如memory、local、release、status,输入后可以获得更多信息,如
abaqus info=release

Windows下也可以在终端输入set,也可以查看各类环境变量的设置。

Q2.10:如何修改当前环境变量值?
修改环境变量文件内容需要确保你的计算机硬件能够支持这个变更。例如你增加abaqus计算可用的存储空间,但是不能超过计算机所能提供的上限。
在abaqus_v6.env文件中增加下面的命令可以提高abaqus的存储:
pre_memory='400 mb'standard_memory='500 mb'
abaqus_v6.env文件可以按照以下路径获取
C:\ABAQUS\6.8-1\site\abaqus_v6.env
注:abaqus6.14版本路径有所变化,作者安装路径查找为:
D:\SIMULIA\Abaqus\6.14-2\SMA\site\abaqus_v6.env
Q2.11:当重新运行一个abaqus计算任务时会询问你是否覆盖已有文件,需要输入Y或者N。有没有方法可以跳过不用输入Y?
对于循环迭代的优化问题经常会遇到。可以在abaqus_v6.env输入下面的命令:
ask_delete=NO
根据下列安装路径C:\ABAQUS\6.8-1\site\abaqus_v6.env找到abaqus_v6.env输入即可。但是使用的时候需要很小心,因为很容易把之前的结果文件(计算花了很长时间)覆盖删除。
如果不再需要可以变更命令或者注释掉命令或者直接删除即可,如下所示:
# comment it out## ask_delete=NO# Reset itask_delete=YES
Q2.12:如何停止一个我已经提交的abaqus计算任务?
在当前提交计算任务的路径下开启终端,重新输入下面的指令即可:
abaqus job=plate suspend
这样做可以让你检查可能存在的问题。如果你想终止计算,则输入下列指令即可:
abaqus job=plate terminate
计算任务可以通过terminate终止。对于上述暂停的任务则可以利用resume继续开启计算,命令如下:
abaqus job=plate resume
Q2.13:如何停止和重启一个abaqus计算任务?
在首次提交dynam.inp计算的时候,inp文件中应该包括下面的命令:
*RESTART, WRITE, FREQ=1
在该inp的第二个分析步(step-2),将会每个增量写入一次重启数据文件,运行命令如下:
abaqus j=dynam
本例中,第二步并未完成。我们假设重启分析从第二个分析步的第10个增量步的结束位置开始。在*HEADING命令行后面增加下面内容:
*RESTART, READ, STEP=2, INCREMENT=1, END STEP, WRITE
如果不包含END STEP关键字,将会导致重启分析设置重复计算第二分析步,无法按要求完成计算。
像上述提交的重启分析忽略了模型数据(如网格数据、材料属性等)。下面的命令在*RESTART之后还对*STEP进行了描述:
*HEADING BISSHOPP AND DRUCKER -- SMALL DISPLACEMENT ANALYSIS B21 UNITS IN MM, N, MPa restarted - DYNAMIC analysis - 7th July 94 (dynamr.inp)*RESTART, READ, STEP=2, INC=10, END STEP, WRITE,OVERLAY*STEP,INC=600 SMALL DISPLACEMENT ANALYSIS*DYNAMIC .01, 1.0*CLOAD11, 2, 0.*MONITOR,NODE=11,DOF=2*END STEP
像下面这样提交:
abaqus oldjob=dynam j=dynamr
下面的结果是来自dynamr.dat,可以看出重启分析的文件包含了第二个分析步(step-2)那10个增量步的结果并且继续下一个分析步计算。
*HEADING BISHOP AND DRUCKER -- SMALL DISPLACEMENT ANALYSIS B21

STEP 1 INCREMENT 1 HAS BEEN FOUND ON THE RESTART FILE

STEP 2 INCREMENT 1 HAS BEEN FOUND ON THE RESTART FILE

STEP 2 INCREMENT 2 HAS BEEN FOUND ON THE RESTART FILE....

STEP 2 INCREMENT 8 HAS BEEN FOUND ON THE RESTART FILE

STEP 2 INCREMENT 9 HAS BEEN FOUND ON THE RESTART FILE

STEP 2 INCREMENT 10 HAS BEEN FOUND ON THE RESTART FILE
下一个分析步(也就是第三个分析步step-3)继续求解,从状态文件dynamr.sta可以获得下面的内容:
Abaqus/Standard 6.9-1                  DATE 01-Sep-2009 TIME 15:31:01 SUMMARY OF JOB INFORMATION: MONITOR NODE:      11  DOF:  2 STEP  INC ATT SEVERE EQUIL TOTAL  TOTAL      STEP       INC OF       DOF    IF               DISCON ITERS ITERS  TIME/    TIME/LPF    TIME/LPF    MONITOR RIKS               ITERS               FREQ   3     1   1     0     1     1  1.11       0.0100     0.01000     19.3        3     2   1     0     1     1  1.12       0.0200     0.01000     10.1        3     3   1     0     1     1  1.13       0.0300     0.01000     0.116       3     4   1     0     1     1  1.14       0.0400     0.01000    -10.7        3     5   1     0     1     1  1.15       0.0500     0.01000    -20.5        3     6   1     0     1     1  1.16       0.0600     0.01000    -26.7        3     7   1     0     1     1  1.17       0.0700     0.01000    -29.3     .....   3    97   1     0     1     1  2.07       0.970      0.01000    -11.6        3    98   1     0     1     1  2.08       0.980      0.01000    -1.12        3    99   1     0     1     1  2.09       0.990      0.01000     9.46        3   100   1     0     1     1  2.10       1.00       0.01000     18.8 THE ANALYSIS HAS COMPLETED SUCCESSFULLY
如果为了后处理需要,要将第一步和重启分析步输出的ODB文件合并,可以采用下面的命令:
abaqus restartjoin originalodb=odb-file-name restartodb=odb-file-name

后台窗口回复关键字“计算任务”获取英文原文PDF文件!

(0)

相关推荐