阅读帮助

文中棕色表示无效操作,可以略过,不用跟着做,无用功!

文中绿色表示有效操作,可效仿。

讲故事

vs2019+ivf2020+abauqs2020,关联验证,全部pass(注意:如果你这里验证结果是除了子程序error,其他都pass,那么,请先重新创建一个没有带中文的windows账户之后,再继续)

abaqus关联python abaqus关联验证_abaqus关联python

然鹅,在cmd运行 abaqus info=system 时,提示找不到Fortran编译器,详细如下图

unable to find a Fortran compiler on this system.If Intel Fortran is installed on this system,please load ifortvars.bat before running Abaqus

abaqus关联python abaqus关联验证_abaqus2020_02

同样,运行 abaqus verify -user_std 提示也是错误,如下图

Abaqus/Standard with user subroutines

ERROR

Abaqus did not complete successfully.

Please see std_user.log for details.

abaqus关联python abaqus关联验证_abaqus_03

查看 std_user.log文件

abaqus关联python abaqus关联验证_子程序_04

可见经典错误,'ifort' 不是内部或外部命令,也不是可运行的程序或批处理文件。

解决思路

我们关联好之后,验证,可以全部pass(包括子程序),为什么单独在cmd中运行的时候,就找不到Fortran编译器?

子程序验证也过不去!

这是什么鬼,为什么?为什么?为什么?

老套路,既然自己整不明白,就祭出搜索引擎,查到有些网友说把 X:\SIMULIA\Commands (X为盘符),路径添加到环境变量 path中,然后照做,问题依旧。

同样的,Fortran编译器ifort.exe的路径也一样添加到path,还是不行,大家不要做这两步了。

因为如果是因为 Commands  文件夹没有添加到环境变量,那么它应该提示的是 ‘abaqus不是内部或外部命令,也不是可运行的程序或批处理文件’,不知道为什么的往下看。

此时已经怀疑人生,为什么,人家这样做可以,我这样做不行呢?

难道是因为我太帅?

不可能吧!

隔壁张三比我还帅,他都可以呀!

老天待我不公!

就在我抱怨上天不公X分钟后,我好像隐隐发现了些啥。

abaqus info=system

abaqus verify -user_std

嗯,前面都有一个 abaqus,经常玩cmd的朋友,应该不会陌生,前面abaqus是一个命令,后面的是参数什么的。

比如,要查git的版本,会使用

git -version

查Java的版本用 

java -version

要查Python有没有装好或者是版本,会使用

python

相应的,我们都可以在电脑上的某个文件夹中(此文件夹肯定已经间接或直接添加到环境变量Path中)找到一个名为 git.exe 货 java.exe 或 python.exe的程序。

还记得前面的 X:\SIMULIA\Commands吗? 

进入此文件夹,你会发现有个文件名为 abaqus.bat(已经设置显示扩展名,没有设置显示扩展名应该显示的是 abaqus)。

没错,这次,它的后缀是 .bat,而不是 .exe,一样可以把它当做一个命令在cmd中执行。

我们右键,编辑 abaqus.bat 文件,打开之后,你会发现,咦!

abaqus关联python abaqus关联验证_子程序_05

这个文件的内容,怎么长得跟之前关联时操作过的 launcher.bat 文件差不多。

看到这里,不知道你那是怎么想,反正我是已经有想法了。

我们关联好之后验证,能全部pass,之所以能全部pass, 是因为我们关联好了,abaqus验证的时候能找到对应的文件,而这里的只有干巴巴的一行。

@echo off
"d:\SIMULIA\Commands\abq2020.bat" %*

那我们一样的操作,把关联语句也放到这里来,是不是就OK了呢!?

说淦就淦,冲冲冲!!!

再次编辑打开 launcher.bat 文件,复制两行关联语句(我安装到默认路径,你那不安装到默认路径也是可以的,只要能找到对应的文件)

@call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
@call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.2.254\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019

放到前面,最后类似这样

@call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64
@call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.2.254\windows\bin\ipsxe-comp-vars.bat" intel64 vs2019

@echo off
"d:\SIMULIA\Commands\abq2020.bat" %*

在保存完之后,我已经隐隐感觉到,回来了,大师兄回来了,全都回来了!!!

abaqus关联python abaqus关联验证_子程序_06

abaqus关联python abaqus关联验证_验证_07

abaqus关联python abaqus关联验证_abaqus_08

然后信心满满地在cmd中再次执行 

abaqus info=system

bingo!能识别到了!

abaqus关联python abaqus关联验证_abaqus_09

cmd再执行

abaqus verify -user_std

同样的,这里子程序验证也通过了!

abaqus关联python abaqus关联验证_abaqus_10

至此!问题解决!