VASPdospsocarf.docx

上传人:b****5 文档编号:6840707 上传时间:2023-01-11 格式:DOCX 页数:31 大小:29.55KB
下载 相关 举报
VASPdospsocarf.docx_第1页
第1页 / 共31页
VASPdospsocarf.docx_第2页
第2页 / 共31页
VASPdospsocarf.docx_第3页
第3页 / 共31页
VASPdospsocarf.docx_第4页
第4页 / 共31页
VASPdospsocarf.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

VASPdospsocarf.docx

《VASPdospsocarf.docx》由会员分享,可在线阅读,更多相关《VASPdospsocarf.docx(31页珍藏版)》请在冰豆网上搜索。

VASPdospsocarf.docx

VASPdospsocarf

实例1

如何用gcc编译dos-procar.f来处理VASP计算得到的procar

如题,VASP计算pdos,含d电子分裂,想在生成的PROCAR中提取数据,然后画图,据说dos-procar.f(

PROCARlmdecomposed+phasefactor

#ofk-points:

63#ofbands:

184#ofions:

48

k-point1:

0.000000000.000000000.00000000weight=0.00165289

band1#energy-0.44451898#occ.2.00000000

ionspypzpxdxydyzdz2dxzdx2tot

10.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

20.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

30.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

40.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

50.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

60.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

70.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

80.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

90.0170.0000.0000.0000.0000.0000.0000.0000.0020.018

...............................................................................................................

editedbyzhjh888888z>whichf77

which:

nof77in(/shared_scratch/pgi.714/linux86-64/7.1-4/bin/:

/home_n22/xqdai2/bin:

/usr/local/bin:

/usr/bin:

/usr/X11R6/bin:

/bin:

/usr/games:

/opt/gnome/bin:

/opt/kde3/bin:

/usr/lib/mit/bin:

/usr/lib/mit/sbin:

/usr/local/maui/sbin:

/usr/local/maui/bin)

on>gcc-odos-procar.xdos-procar.f

Infiledos-procar.f:

1

implicitreal*8(a-h,o-z)

1

Error:

Non-numericcharacterinstatementlabelat

(1)

Infiledos-procar.f:

1

implicitreal*8(a-h,o-z)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

110

1000continue

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

110

1000continue

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

113

dok=1,nk

1

Infiledos-procar.f:

90

2

Error:

Variable'k'at

(1)cannotberedefinedinsideloopbeginningat

(2)

Infiledos-procar.f:

117

dok=1,nk

1

Infiledos-procar.f:

90

2

Error:

Variable'k'at

(1)cannotberedefinedinsideloopbeginningat

(2)

Infiledos-procar.f:

121

101format(10x,f9.5)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

121

101format(10x,f9.5)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

122

102format(f10.5)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

122

102format(f10.5)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

123

103format(20a4)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

123

103format(20a4)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

124

104format(16x,i3,20x,i5,19x,i4)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

124

104format(16x,i3,20x,i5,19x,i4)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

125

105format(10x,i3,5x,3f11.8,13x,f11.8)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

125

105format(10x,i3,5x,3f11.8,13x,f11.8)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

126

106format(4x,i4,9x,f14.8,7x,f12.8)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

126

106format(4x,i4,9x,f14.8,7x,f12.8)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

127

107format(3x,4f7.3)

1

Error:

Badcontinuationlineat

(1)

Infiledos-procar.f:

127

107format(3x,4f7.3)

1

Error:

Unclassifiablestatementat

(1)

Infiledos-procar.f:

134

dok=1,nk-1

1

Infiledos-procar.f:

90

2

Error:

Variable'k'at

(1)cannotberedefinedinsideloopbeginningat

(2)

Infiledos-procar.f:

148

dok=1,nk

1

Infiledos-procar.f:

90

2

Error:

Variable'k'at

(1)cannotberedefinedinsideloopbeginningat

(2)

Infiledos-procar.f:

189

9000continue

1

Error:

EndofnonblockDOstatementat

(1)isinterwovenwithanotherDOloop

Infiledos-procar.f:

192

end

1

Error:

ENDDOstatementexpectedat

(1)

Error:

Unexpectedendoffilein'dos-procar.f'

请问运行gcc-odos-procar.xdos-procar.f后,出现了以上错误是什么原因?

谢谢

实例2

关于VASP计算PDOS的疑问

在计算完TDOS和PDOS之后,不知道怎么将DOS图画出来。

后来找了个dos-procar.f的小脚本,不知道对不对。

在处理之后得到的结果看不懂,以O原子为例:

本来O有sp两个轨道,但是得到的ldos中一共有5列,其中第一列是能量,请问我怎么区分其余四列各是什么啊?

还有就是各位有什么更好的处理方式么?

用p4vasp作图,挺方便的。

你可以到网上下载p4vasp。

第2-5列分别是S、py、pz、px

实例3

有关DOSCAR,ldos和Pdos的疑问

Ldos和Pdos的定义在网上见到过,但是关于DOSCAR还有些问题。

1、貌似还有一个Sdos,不知道这个是什么东西,是不是sitedos?

DOSCAR和用split_dos/vp分割出来的DOS0、DOS1……中就应该是这个东西吧。

2、用网上流传的一个Fortran程序dos-procar.f处理结果得到的Ldos的格式是怎么回事的?

在ldos-dn.dat和ldos-up.dat中分别得到五行数据,第一行是能量,后四行是什么?

3、Pdos可以从什么工具中得到?

它的格式是怎么样的?

Ldos应该是localdos,局域到特定的原子上面,split_dos得到的DOS1,DOS2就是每个原子上面的dos;

Pdos应该是partialdos,就是吧dos分为sdos,pdos,ddos这些原子轨道,是在整个晶体的

Ldos为局域态密度,这个我有所了解。

Pdos有人说是partialDOS,不过好像也见过有人解释为projectedDOS。

从split_dos.ksh和vp脚本得到的态密度跟DOSCAR一样的,只不过是把DOSCAR的各个原子的态密度分隔开了。

从dos-procar.f中得到的是Ldos(ldos-up.dat、ldos-dn.dat),这个ldos文件中除了能量之外还有四列数据,不知道这四列数据的含义是什么。

从命名上看,可能是自旋分开而已,4列可能是spdf

如果仅仅是将DOSCAR的自旋分开的话,应该是除了能量之外有9列:

spypzpxdxydyzdz2dzxdx2-dy2。

DOSCAR中没有f电子,ldos中怎么有了f电子?

有几列要取决你有没有算LORBIT=11的计算了。

DOSCAR可以没有,但是我不知道那个程序会不会产生0的一列。

你知道,如果它去判断有几个原子轨道很麻烦的话,可能就直接假定有f电子,只是最后给出的f电子全为0就可以了

dos=sdos+pdos+ddos

实例4

关于PROCAR和DOSCAR

最近在ubuntu下用dos-procar.f文件画分态密度图,编译完运行的时候在输完gaussiansmearingfactor之后就出错退出。

于是换了个split_dos来画,就画出来了。

突然觉得split_dos画的时候完全不需要PROCAR的数据,那么他给出来的数据跟PROCAR给出的数据应该是不同的吧?

两者对应的态密度是一个东西吗?

有人用两者画出来比较过吗?

两者的态密度是一样的。

楼上画出来比较过?

但PROCAR文件比DOSCAR文件大好几倍喔,包含的信息应该不一样吧?

PROCAR比DOSCAR多的地方是在各个方向上的投影,一般画DOS用DOSCAR即可

split_dos是处理DOSCAR的。

实例5

VASP计算态密度出现问题

我是用vasp小程序dos-procar.x做态密度地,按正常应该出现

dos-tot-dn.datdos-tot-up.datldos-dn.datldos-up.dat四个文件(自旋极化地计算)

但是当我执行地时候却出现这样地问题:

四个文件中都没有输出,不知为什么,

具体执行是这样:

Spinpolarizedcalculation?

(no=1,yes=2):

2

Enterfermienergy:

7.998856

whichatom(na)youwanttoplotLDOS:

1

enterthegaussiansmearingfactor:

0.2

Segmentationfault

不知哪里除了问题,初学VASP,请大侠指点

还有就是ldos-dn.datldos-up.dat正常输出地时候有5列,各列代表什么意思?

有两点可以考虑一下:

1.查一下你的PROCAR是否正确

2.网上流传的一下VASP后期处理程序都是针对当时VASP输出文件格式写的,有些输出文件格式在新版VASP中略有改变,如果1.没有问题,可以读一下dso-procar的源程序,看看是否和你的PROCAR文件格式匹配,不匹配的话,读入数据格式改一下就行了。

VASP在5.0之后的POSCAR和以前不一样,所以很多程序都会出错,可能是这个原因

你的体系包含几类原子?

如果超过两类,读原子种类数目时会有问题,默认体系原子种类不超过两类,印象中前不久有虫子遇到过这个问题。

解决办法是修改读入原子种类数目的格式,再编译......

我这个体系五种原子,是不是这个原因才没有输出啊?

还有一个问题是是不是在输出地时候按原子种类,也就是在

whichatom(na)youwanttoplotLDOS:

时候选择几种原子就会有几个输出文件,还是在ldos-dn.datldos-up.dat两个文件中全部输出,比方说我在两个选项中选择第二个,第四个原子输出,我是不是应该这么写:

whichatom(na)youwanttoplotLDOS:

24

segmentfault段错误,可能是程序的数组越界了,查看一下程序的数组定义,是否有长度比较小的

我计算态密度地时候也遇到这个问题,但是不知道dos-procar.f怎么修改

实例6

怎么根据PROCAR作DOS和PDOS图

大家好,计算DOS时得到PROCAR,准备学习画DOS和PDOS,共126个K点,每个K点100bands,用lev00处理时提示缺少PROCAR或PROCAR错误,用p4vasp也打不开,请帮我看看

PROCARnewformat

#ofk-points:

126#ofbands:

100#ofions:

24

k-point1:

0.041666670.041666670.04166667weight=0.00462963

band1#energy-29.57997136#occ.2.00000000

ionspdftot

10.2330.0000.0000.0000.233

20.2330.0000.0000.0000.233

30.2330.0000.0000.0000.233

40.2330.0000.0000.0000.233

50.0000.0000.0000.0000.000

60.0000.0000.0000.0000.000

70.0000.0000.0000.0000.000

80.0000.0000.0000.0000.000

90.0000.0000.0000.0000.000

100.0000.0000.0000.0000.000

110.0000.0000.0000.0000.000

120.0000.0000.0000.0000.000

130.0000.0000.0000.0000.000

140.0000.0000.0000.0000.000

150.0000.0000.0000.0000.000

160.0000.0000.0000.0000.000

170.0000.0000.0000.0000.000

180.0000.0000.0000.0000.000

190.0000.0000.0000.0000.000

200.0000.0000.0000.0000.000

210.0000.0000.0000.0000.000

220.0000.0000.0000.0000.000

230.0000.0000.0000.0000.000

240.0000.0000.0000.0000.000

tot0.9370.0010.0000.0000.938

这是其中一部分,下面还有band2-100,接着就是k-points2-126,很长的文件

不知道大家都怎么处理DOS?

学习VASP时间不长,还希望虫友们指点

我使用DOSCAR处理的,应该和PROCAR是一起出来的结果,里面很多列数据,第一列是能量,后面对应s,p_y,p_z,p_x,d_xy,d_yz,d_z2,d_xz,d_x2-y2轨道(VASP出来的结果应该顺序都是一样的)。

数据上下顺序对应POSCAR里面的原子顺序

lev00是处理电荷密度的,p4vasp我只用来打开过POSCAR,没试过PROCAR,可能不支持这种类型吧~

网上不是用vasp的一些tools吗,里面就有一个分析PROCAR的文件,文件名是dos-procar.f,你现将这个文件编译一下,然后就运行这个文件,他会提示你要干什么,运行完后,就可以得到totdos。

dat和ldos。

dat,接着用origin等画图就可以了。

implicitreal*8(a-h,o-z)

parameter(nkd=900)

parameter(nbd=50)

parameter(natmd=20)

parameter(ned=1001)

dimensiondump(20),oc(nkd,nbd,natmd,4),eig_ev(nkd,nbd),wt(nkd)

dimensionee(ned),gpdos(ned),gpdost(ned)

dimensiongpdos_s(ned),gpdos_p(ned),gpdos_d(ned)

open(7,file='PROCAR')

pi=3.141592654

write(*,*)'Spinpolarizedcalculation?

(no=1,yes=2):

'

read(*,*)ispin

if((ispin.ne.1).and.(ispin.ne.2))then

write(*,*)'INPUTERROR,ispinmustequalto1or2'

stop

endif

if(ispin.eq.1)then

open(31,file='ldos.dat')

open(32,file='dos-tot.dat')

elseif(ispin.eq.2)then

open(31,file='ldos-up.dat')

open(32,file='dos-tot-up.dat')

open(41,file='ldos-dn.dat')

open(42,file='dos-tot-dn.dat')

endif

write(6,*)'Enterfermienergy:

'

read(5,*)fermi

cwrite(6,102)fermi

read(7,103)dump

cwrite(6,103)dump

write(6,*)'whichatom(na)youwanttoplotLDOS:

'

read(5,*)na

write(6,*)'enterthegaussiansmearingfactor:

'

read(5,*)gaussian

do9000isp=1,ispin

read(7,104)nk,nband,nion

cwrite(6,104)nk,nband,nion

if(nk.gt.nkd)stop'nktoolarge'

emin=1000.0

emax=-1000.0

do1000k=1,nk

read(7,103)dump

read(7,105)kp,pt1,pt2,pt3,wt(k)

cwrite(6,105)kp,pt1,pt2,pt3,wt(k)

read(7,103)dump

donb=1,nband

read(7,106)nb1,eig_ev(k,nb),occ

cwrite(6,106)nb1,eig_ev(k,nb),occ

eig_ev(k,nb)=eig_ev(k,nb)-fermi

if(eig_ev(k,nb).gt.emax)emax=eig_ev(k,nb)

if(eig_ev(k,nb).lt.emin)emin=eig_ev(k,nb)

read(7,103)dump

read(7,103)dump

cwrite(6,*)'nion=',nion

niont=nion+1

if(nion.eq.1)niont=1

doion=1,niont

read(7,107)(oc(k,nb,ion,j),j=1,4)

cwrite(6,107)(oc(k,nb,ion,j),j=1,4)

en

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1