24小时热门版块排行榜    

查看: 2811  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

weiyidan

新虫 (小有名气)

[求助] VASP2BOLTZTRAP求助

应用 vasp2boltztrap出现错误
/usr/local/lib/python2.7/dist-packages/ase/lattice/spacegroup.py:5: UserWarning: Moved to ase.spacegroup
  warnings.warn('Moved to ase.spacegroup')
Number of electrons not found. Please set the number manually in hte.intrans.
get_vasp_bandstructure(): could not find OUTCAR file <./OUTCAR>
Traceback (most recent call last):
  File "si.py", line 39, in <module>
    vasp2boltz.write_bandstructure_boltztrap(bs)
  File "/home/weiyidan/computing/电导率/vasp2boltz.py", line 100, in write_bandstructure_boltztrap
    if bandstructure['nspin']!=1:
TypeError: 'NoneType' object has no attribute '__getitem__'

poscar如下

NONDEFECT                              
   1.00000000000000     
     7.6802000999000004    0.0000000000000000    0.0000000000000000
     0.0000000000000000   10.8613996505999992    0.0000000000000000
     0.0000000000000000    0.0000000000000000    7.6802000999000004
   Si
    32
Direct
  0.0000000000000000  0.1250000000000000  0.5000000000000000
  0.7500000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.2500000000000000  0.7500000000000000
  0.0000000000000000  0.2500000000000000  0.2500000000000000
  0.2500000000000000  0.0000000000000000  0.0000000000000000
  0.0000000000000000  0.1250000000000000  0.0000000000000000
  0.2500000000000000  0.3750000000000000  0.7500000000000000
  0.5000000000000000  0.1250000000000000  0.0000000000000000
  0.2500000000000000  0.3750000000000000  0.2500000000000000
  0.2500000000000000  0.0000000000000000  0.5000000000000000
  0.5000000000000000  0.2500000000000000  0.2500000000000000
  0.5000000000000000  0.2500000000000000  0.7500000000000000
  0.7500000000000000  0.0000000000000000  0.5000000000000000
  0.7500000000000000  0.3750000000000000  0.7500000000000000
  0.5000000000000000  0.1250000000000000  0.5000000000000000
  0.7500000000000000  0.3750000000000000  0.2500000000000000
  0.0000000000000000  0.6250000000000000  0.5000000000000000
  0.7500000000000000  0.5000000000000000  0.0000000000000000
  0.0000000000000000  0.7500000000000000  0.7500000000000000
  0.0000000000000000  0.7500000000000000  0.2500000000000000
  0.2500000000000000  0.5000000000000000  0.0000000000000000
  0.0000000000000000  0.6250000000000000  0.0000000000000000
  0.2500000000000000  0.8750000000000000  0.7500000000000000
  0.5000000000000000  0.6250000000000000  0.0000000000000000
  0.2500000000000000  0.8750000000000000  0.2500000000000000
  0.2500000000000000  0.5000000000000000  0.5000000000000000
  0.5000000000000000  0.7500000000000000  0.2500000000000000
  0.5000000000000000  0.7500000000000000  0.7500000000000000
  0.7500000000000000  0.5000000000000000  0.5000000000000000
  0.7500000000000000  0.8750000000000000  0.7500000000000000
  0.5000000000000000  0.6250000000000000  0.5000000000000000
  0.7500000000000000  0.8750000000000000  0.2500000000000000
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiyidan

新虫 (小有名气)

记得去除k的重复项
4楼2016-12-27 13:08:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

weiyidan

新虫 (小有名气)

我的 py
# Example of how to use vasp2boltz.py
# Create a .py file with a content similar to the following
# It is necessary to have ASE installed:
# https://wiki.fysik.dtu.dk/ase/

from ase import io
from ase.lattice.spacegroup import Spacegroup
import vasp2boltz

ao = io.read('POSCAR')
# If you do not have spglib installed, you need to add the spacegroup no.
# e.g. sg = Spacegroup(216) for the 'F -4 3 m' space group
# If you use the conventional cell rather than the primitive unit cell in your
# POSCAR file for e.g. I or F spacegroups, you need to add this information.

# Example 1:
sg = Spacegroup(10)
ao.info = {'spacegroup': sg}

# Example 2. Here the unit cell in the POSCAR file is cubic (conventional):
#sg = Spacegroup(10)
#ao.info = {'spacegroup': sg, 'unit_cell': 'conventional'}

# Read number of electrons from OUTCAR.
foundnelect = False
try:
    for line in open('OUTCAR', 'r'):
        if 'NELECT' in line:
            nelect = float(line.split()[2])
            foundnelect = True
except:
    pass
if not foundnelect:
    print 'Number of electrons not found. Please set the number manually in hte.intrans.'
    nelect = 1.0

# The remaining part takes care of writing the files required by BoltzTraP.
bs = vasp2boltz.get_vasp_bandstructure()
vasp2boltz.write_bandstructure_boltztrap(bs)
vasp2boltz.write_structure_boltztrap(ao)
vasp2boltz.write_intrans_boltztrap(n_electrons = nelect)
2楼2016-12-14 18:24:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiyidan

新虫 (小有名气)

去掉vasp2bolt中的289行一句话(and之后括号中)
3楼2016-12-15 13:43:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiyidan

新虫 (小有名气)

记得去除k的重复项
5楼2016-12-27 13:09:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见