(此贴只针对abaqus用户)
对于需要使用子程序进行分析计算的用户来说,配置子程序环境较为繁琐,并且有时要在一台没有fortran运行环境的机器上运行子程序(例如云计算等等),这时要怎么做?
abaqus官方为我们提供了make的方法:
abaqus make library=usd.for/.f90/.cpp/...
该方法将会把子程序进行预编译并生成相应的共享库(share library)文件。
.obj文件就是我们子程序经过预编译得到的二进制文件。
.dll文件就是相应的共享库文件,其中包含了我们所用子程序中所用的全部执行信息(像算法信息,+,-,*,/之类的)
若是Standard模块,则会生成standardU.dll;若是Explicit模块,则会生成ExplicitU.dll和ExplicitU-D.dll(加D的是双精度,没的是单精度)
如果想要在没有Fortran的计算机上运行子程序,需要分两部分进行,接下来将详细说明:
First(该部分需要在已经配置好fortran运行环境的计算机中完成):
首先准备好要使用的子程序,建议将其直接放置在abaqus的工作目录(一般情况下abaqus command和abaqus CAE的工作目录相同)下,也可以将其放置在任意一个文件夹中,后期可以通过cd索引。
这里就按放在工作目录下来说明。
将子程序放在工作目录后,打开abaqus command,并输入abaqus make library=usd.for/.f90/.cpp/...(这里的usd要替换为自己的子程序的文件名,并加上扩展名)
稍等后生成.obj以及.dll文件(std2个,ex共4个)
至此,这部分完成。
Second(该部分在目标并没配置fortran运行环境的计算机中完成):
将上述生成的库文件(.dll结尾的文件)存储到任意目录(文件夹中)。
找到abaqus环境变量设置文件abaqus_v6.env, 末尾增加如下语句(要用英文字符)
usub_lib_dir="_:\\_\\..."
引号中的是储存共享库文件的路径。要将\改为\\。
到此,基本配置结束。
然后就是建立模型并施加约束、划分网格之类的等等。
最后全部弄完之后,创建job,并指定目标文件(.obj文件),如图所示:
然后写出.inp文件,不可以直接提交运算,不然回报错。
通过abaqus命令行进行提交运算:
abaqus job=...
提交成功后只需要等待结果就行。
亲测成功有效(已经在自己的笔记本上实验过,没有问题,我的笔记本没有fortran)。
对于已经配置好fortran的用户来说,.dll文件(共享库文件)是不必要的,可以使用.obj文件直接提交运算,也不需要写出inp文件,再通过命令行运行这么麻烦。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删