==================================================================
SUMMARY:
==================================================================
The following tests failed, please check the output file manually:
andersen_nve_constrain_fixed andersen_nve_constrain_fixed_MDALGO=11 andersen_nve_constrain_fixed_MDALGO=11_RPR andersen_nve_constrain_fixed_RPR andersen_nve_fixed andersen_nve_fixed_MDALGO=11 andersen_nve_fixed_MDALGO=11_RPR andersen_nve_fixed_RPR andersen_nvt_fixed andersen_nvt_fixed_MDALGO=11 andersen_nvt_fixed_MDALGO=11_RPR andersen_nvt_fixed_RPR
在新出的一些CPU上采用VASP默认的makefile.include编译后,执行测试test-suite
make test 会无法通过一些测试,主要是anderson系列,比如:
andersen_nve_constrain_fixed andersen_nve_constrain_fixed_MDALGO=11 andersen_nve_constrain_fixed_MDALGO=11_RPR andersen_nve_constrain_fixed_RPR andersen_nve_fixed andersen_nve_fixed_MDALGO=11 andersen_nve_fixed_MDALGO=11_RPR andersen_nve_fixed_RPR andersen_nvt_fixed andersen_nvt_fixed_MDALGO=11 andersen_nvt_fixed_MDALGO=11_RPR andersen_nvt_fixed_RPR 这主要是AVX512指令集导致的bug,解决办法如下:
修改src目录下的mymath.F文件
diff --git a/src/mymath.F b/src/mymath.F
index f46d930b..919fda62 100644
--- a/src/mymath.F
+++ b/src/mymath.F
@@ -1449,9 +1449,7 @@
Ltxyz=1
DO i=1,T_INFO%NIONS
DO j=1,3
- IF (.NOT. T_INFO%LSFOR(j,i)) THEN
- Ltxyz(j)=0
- ENDIF
+ IF (.NOT. T_INFO%LSFOR(j,i) .AND. Ltxyz(j)==1) Ltxyz(j)=0
ENDDO
ENDDO 就是把
IF (.NOT. T_INFO%LSFOR(j,i)) THEN
Ltxyz(j)=0
ENDIF 替换为
IF (.NOT. T_INFO%LSFOR(j,i) .AND. Ltxyz(j)==1) Ltxyz(j)=0 重新编译VASP后,就能正常通过
==================================================================
SUCCESS: ALL SELECTED TESTS PASSED
==================================================================