配置Abaqus2021 + VS2019 + IVF2020编译环境

背景介绍

研三需要对Abaqus进行UMAT二次开发,虽然不喜欢Fortran,但是还是需要进行安装。

本文介绍的是我第二次安装的过程。在我第一次安装的时候(昨天),我的abaqus版本为2018,安装vs2015和IVF2016后,三个subroutine的验证全部pass,但是对Fortran和C++编译的验证没有通过,所以花了一上午时间这个三个软件卸载掉。

之后重新安装了abaqus2021,vs2019和IVF2020。

以下为正文:

软件安装

版本要求

需要安装VS, IVF,与Abaqus三个软件,安装流程如下:

![[Pasted image 20220601105137.png]]

这三个软件的版本有严格要求,且一定要先安装VS再安装IVF,请先查询版本要求后再安装! 版本要求如下:

Abaqus VersionVS VersionIVF Version
6.12200810.0/11.0
6.132008/201011.0/2011
6.142010/2012/20132011/2013
20162012/20132013
20172012/20132013
201820152016/2017
201920152016/2017
202020152016/2017
202120192020
202220192020

Aabaqus安装

流程如下:

  1. 添加 NOLICENCECHECK: true 系统变量
  2. 关闭杀毒软件及防火墙
    1. 安装Abaqus,Abaqus2022需要安装JDK,本次安装2021版
  3. 创建Abaqus安装目录,本机为
D:\Programs\Abaqus2021

# 该目录下文件结构如下:

2022-06-08  13:30    <DIR>          Commands
2022-06-08  13:22    <DIR>          Document
2022-06-08  13:31    <DIR>          plugins
2022-06-08  13:29    <DIR>          Products
2022-06-08  13:11    <DIR>          SolidSQUAD_License_Servers
2022-06-08  13:30    <DIR>          temp
  1. 安装 license
  2. 安装 iso 文中的 1/setup
  3. 分别加载 iso 文件中的5,2,3文件夹:注意,可以把Abaqus的安装文件夹设置为我们事先准备好的文件夹
  4. 完成安装

VS安装

在官网的下载页面,下拉到最下方,选择更早的版本,进入页面后,选择下载,下载对应版本的VS即可。

必须要安装的是:C++的桌面开发选项

IVF安装

为了防止出问题,我选择的是I32和X64全部安装。

安装过程一定要耐性等待,我安装的最后一步等了很久,都准备直接关闭安装程序了,显示安装成功了!

根据 朦胧烟雨生 的视频,我发现Abaqus2022是一个很大的改动,安装和关联Fortran的时候一定要注意。

Link Abaqus and IVF

将所有程序都安装好后,就可以对三个软件进行关联。关联很难,有的人很顺利,有的人很难搞定(比如我)。

如果软件版本能够相互关联,一般安装的软件不会有错,关联后报错极大可能是由关联引起的,所以关联一定要多查资料,多尝试

以下是我的关联历程,仅供参考:

尝试1:修改 launcher.bat (失败)

根据教程朦胧烟雨生的教程,需要在安装完成后修改launcher.bat文件,修改后的launcher.bat文件为:

# ----- 以下为新增 ------
call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
call "D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019
# ---------------------

# ---- 以下为原始内容 ----
@echo off
call "D:\Programs\Abaqus2021\Commands\abq2021.bat" %*
# ----------------------

改完之后打开cmd,输入以下命令进行验证:

abaqus verify -user_std

发现3个 subroutine 为 Error,而不是Pass,报错内容为:

Abaqus/Standard checked out 5 tokens from Flexnet server DESKTOP-NQDL4ID.
<9994 out of 9999 licenses remain available>.
Begin Compiling Abaqus/Standard User Subroutines
6/8/2022 4:08:47 PM
'ifort' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Abaqus Error: Problem during compilation - std_user.for
Abaqus/Analysis exited with errors

尝试2:修改 abq2021.bat (失败)

观看 朦胧烟雨生 关于abaqus2022及对应Fortran 安装的视频中,发现他修改的文件为 Commands 文件夹下的 文件。

对该文件进行同样的操作,增加同样的内容,发现仍然报相同的错。

# ----- 以下为新增 ------
call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsamd64_x86.bat"
call "D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019
# ---------------------

# ---- 以下为原始内容 ----
@echo off
setlocal
set ABA_COMMAND=%~nx0
set ABA_COMMAND_FULL=%~f0
"D:\Programs\Abaqus2021\Products\2021\win_b64\code\bin\ABQLauncher.exe" %*
endlocal
# ----------------------

改完之后打开cmd,输入以下命令进行验证:

abaqus verify -user_std

发现3个 subroutine 为 Error,而不是Pass,报错内容为:

Abaqus/Standard checked out 5 tokens from Flexnet server DESKTOP-NQDL4ID.
<9994 out of 9999 licenses remain available>.
Begin Compiling Abaqus/Standard User Subroutines
6/8/2022 4:08:47 PM
'ifort' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Abaqus Error: Problem during compilation - std_user.for
Abaqus/Analysis exited with errors

尝试3:其它方法修改 abq2021.bat (成功)

在网上搜索 ifrot问题 的解决方法时,发现了下面这篇博文:

vs2019+ivf2020+abauqs2021关联验证,子程序Error,‘ifort’ 不是内部或外部命令,也不是 - 哔哩哔哩 (bilibili.com)

按照这篇文章的方法,我只对Commands文件夹下的abq2021.bat文件进行了修改,修改内容如下:

# ----- 以下为新增内容 ------
SET PATH=%PATH%;D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\bin\intel64;
CALL "D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\bin\ifortvars" -arch intel64
CALL "D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.0.166\windows\mkl\bin\mklvars" intel64 
# -------------------------

# ----- 以下为原始内容 ------
@echo off
setlocal
set ABA_COMMAND=%~nx0
set ABA_COMMAND_FULL=%~f0
"D:\Programs\Abaqus2021\Products\2021\win_b64\code\bin\ABQLauncher.exe" %*
endlocal
# -------------------------

这次没有使用 朦胧烟雨生 的方法,但是在输入

abaqus verify -user_std

验证后,所有的 subroutine 都 Pass 了,而且abaqus cae 可以正常打开。

未尝试的方法

配置ABAQUS2021+VS2019+oneAPI2022编译环境 - 知乎 (zhihu.com)

上述方法看起来也很好,但我未进行尝试

完结撒花~

Reference

  1. 该博主录制了所有版本Abaqus安装链接IVF的视频,非常棒:朦胧烟雨生的个人空间_哔哩哔哩_bilibili
  2. 该博主提供了VS2019和IVF2020的安装包:Abaqus子程序关联教程-适用于abaqus2022/2021/2020等_哔哩哔哩_bilibili
  3. 该博主提供了"‘ifort’ 不是内部或外部命令"的解决方案:vs2019+ivf2020+abauqs2021关联验证,子程序Error,‘ifort’ 不是内部或外部命令-哔哩哔哩
  4. 该博主介绍了另外一种link方式:配置ABAQUS2021+VS2019+oneAPI2022编译环境 - 知乎
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐