很久很久以前,出于不同的考虑,分别安装了Abaqus 2020和VS2019,但是并没有建立二者之间的联系。最近想试一下Abaqus子程序,看到网上Abaqus 2020和VS2019刚好可以搭配,就顺便下载了一个IVF2020来搭建环境。
我所用的VS是Visual studio 2019 Enterprise,IVF是Intel Parallel Studio XE 2020 Update 4。
安装顺序神马的,完全忘记了之前是先装的Abaqus还是VS,但是从网上的资料来看,似乎是无所谓的。只要注意装VS2019的时候选择桌面C++开发环境,然后IVF的安装是要在VS之后的。
安装好以后,链接过程遇到了一些麻烦。
综合参照以下几篇文章进行了设置:
VS2019安装+IVF2020安装+abaqus2021安装+关联(亲测有效附安装包)_ivf2019安装包_luzongbaqi的博客-CSDN博客
Abaqus 2020 连接 Fortran (ivf2020, vs2019) 的一个成功案例 - 知乎 (zhihu.com)
abaqus子程序运行出现:LINK不是内部或外部命令,也不是可运行的程序 - 知乎 (zhihu.com)
设置包括:
1. 在系统变量的PATH中添加内容:
(1)ifort.exe的路径:
D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.4.311\windows\bin\intel64
(2)abq2020.bat的路径:
D:\SIMULIA\ABAQUS2021\commands
(3)ifortvars的路径:
D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.4.311\windows\bin
(4)vcvarsall的路径:
D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build
2. 修改abaqus启动用的bat文件
找到launcher.bat,在以前的内容上面加上以下的东西:
@call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" X64
@call "D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.4.311\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019
注意:直接在abq2020.bat文件中添加以上内容,会导致CAE中无法提交job(用bat命令操作inp可以提交,但是CAE导入inp再提交就不行,报错“Unable to start analysis job”),参照以下文章,在launcher.bat中添加VS和IVF的相关路径就可以解决。
安装问题:abaqus Unable to start analysis job - 知乎 (zhihu.com)
但是此时在cmd中运行abaqus info=system时,会显示没有找到linker。只需要找到abaqus.bat文件,也在开头添加这两行路径即可。
3. 运行测试
运行abaqus verification,standard模块和explicit模块都能pass,就可以了。
此时,在cmd中输入 abaqus info=system,得到的系统信息中,仍然显示没有C++编译器,但是貌似不影响子程序的正常运行
4. 另外的一些bug
4.1 verification无法运行
在运行Abaqus verification的时候,打开了一个记事本程序,并显示文件名、目录名或卷标语法不正确。
查看了一下verification这个程序的属性,发现它的目标直接指向了记事本,这个应该是abaqus安装程序的一个bug
修改成以下内容,指向abq2020.bat即可:
D:\SIMULIA\Commands\abq2020.bat -verify -all -log&epad.exe verify.log || notepad.exe verify.log
4.2 Include file "aba_param.inc" required for compilation is not found. This may indicate a problem with the Abaqus installation.
用Everything在电脑里搜aba_param.inc,发现确实没有。但是写的用户子程序里,每一个subroutine都会有一个include 'aba_param.inc',所以如果电脑里都没有这个文件的话,程序是铁定运行不了的。
解决方法:参考以下文章的评论,安装Abaqus的时候可能少选了一个CAA API。卸载重装,把这个选上就可以了。
Abaqus 2020 连接 Fortran (ivf2020, vs2019) 的一个成功案例 - 知乎 (zhihu.com)