TDAP报错指南

2019-10-23  本文已影响0人  多米尼克2049
An error ocurred while starting the kernel

因为TDAP数据处理需要用到超哥写的包pyramids,使用spyder的时候需要把这个包添加到PYTHONPATH中,在spyder里面点导航栏扳手右边那个图标就可以了,这里是把路径写成
E:\Toolkit\TDAP\pyramids了,换成E:\Toolkit\TDAP就行了。

AttributeError: 'list' object has no attribute 'shape'

这是由于result.pygetAdiabaticEigenvalue函数打开文件的后缀对应的是之前的后缀.EIG这个在新版本的TDAP中改成了A.EIGq.EIG同理,需要改成qA.EIG。注意getEIGSteps里面的i[-5:]也要改成i[-6:]

pip install ase==3.12.0

用pip安装指定版本的ase

AttributeError: 'tdapOptions' object has no attribute 'label'

这种错误一般是由于working dictionary指定的不对。

在Ubuntu上安装TDAP

因为TDAP是基于siesta的,所以安装方法和siesta相似,根据cndaqiang的推荐,我们最好使用openmpi+scalapack来安装TDAP,参考他的这篇https://cndaqiang.github.io/2018/09/12/gun-openmpi-siesta/
不太一样的地方在于,在Ubuntu上安装gcc-4.8.0可能会遇到报错,因为系统默认的gcc已经是gcc-9了,所以就直接用Ubuntu自带的gcc,然后用apt安装openmpi

sudo apt-get install mpich

然后安装scalapck的时候遇到一些比较讨厌的问题,首先是报错找不到mpi.h,这个自己搜索按照它指定的方法就行了,然后就是让你指定mpi的位置,其次要加一个no-testing的标签,因为用--downwall的标签的时候,他在执行/script/lapack.py的时候在368行会报错,改成--no-testing就没有这个烦恼了,综合起来就是这样

./setup.py --mpiincdir=/usr/include/x86_64-linux-gnu/mpich --prefix=/home/liu/Public/src/lib/scalapack --notesting

然后就是按照cndaqiang的那个日志安装就行了,记得configure之后要修改arch.make,指定编译器和blas、scalapck等的位置。
在松山湖上编译TDAP的时候,会碰到“未定义的引用”的问题,是因为没有找到数学库,只需要把arch.make里边的数学库的位置指定为/public/home/xbliu/apps/lib/cnqlib就行了。

plt.label TypeError: 'str' object is not callable

这个问题可能是由很多问题导致的,我这里是由于前面使用plt.xlabel = '***',然后发现不是用这个方法设置得,改成plt.xlabel(),就出现了这个问题,重启console就可以了。

今天组会谈到一个光对物质结构的影响,里面提到两个效应,关于光和晶格的相互作用,一个是场效应,就是光对晶格的拖拽,这个只有在强光场下才会比较明显,另一个就是电子的激发,通过电子激发和晶格的耦合导致物质结构发生变化。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 56: ordinal not in range(128)

这个最后发现是由于代码里的中文注释导致的,删掉后解决

ValueError: too many values to unpack

在调用函数的时候,如果函数返回值是5个,而你只写了3个的话,也会报这个错误

Fortran runtime error: End of file
Fortran runtime error: I/O past end of record on unformatted file
Fortran runtime error: Format present for UNFORMATTED data transfer

今天犯了一个很愚蠢的错误,因为工作需要,我要把一个数组保存到一个文件当中再在另一个计算中读取该文件,于是就在代码里加了read和write,然后问题就来了,无论我怎么修改open文件的方式,无论是formatted还是unformatted,每次读取数组文件的时候总是谜之报错,比如上面三个,然后各种搜索改open的方式,比如改access='direct','stream',status='old',什么的,都不管用,然后经daqiang提醒,最后发现是因为我在初始化数组的时候k点数目取得和写得那个数组大小不一样,才导致读取得时候程序总是想要读取更多于是报错。为了避免再次遇到同样得错误,记录在这里。

记录一个比较摸不着头脑的bug,今天在算MoS_2的时候遇到在某一步原子受力忽然突变到很大的数值,这个会导致原子莫名其妙被施加了一个初速度。实际上这个问题之前也碰到过,应该是由于并行的问题,因为上一次遇见这个问题改变并行的核的个数就解决了。可能是计算力的时候所有节点没有协调一致就产生了这个问题。

上一篇 下一篇

猜你喜欢

热点阅读