Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1069579
  • 博文数量: 264
  • 博客积分: 7225
  • 博客等级: 少将
  • 技术积分: 5096
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 08:53
文章分类

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2009-05-31 15:57:47

 
8月24日

编译出了optics,问题已经不大了

首先到
去下载最新版的optics和其他的一些东西。注意,其中的一些F程序似乎有语法错误,起码在pgf90编译的情况下提示出错,它们是:
smear.F的第29行,SUBROUTINE中的S写到了第6列,同一行的换行符应该写在第30行第7列。
error.F的第8行还有下面一个类似的地方,&字符越界,应该换到下一行做换行符用。
symlib.F缺少了sym_prec模块,添加进去。
MODULE sym_prec
  USE prec
  REAL(q) :: TINY=1.E-5_q
END MODULE
然后我很顺利地用pgf90加上pgf90自己的blas和lapack编译出了vasp。然后手动编译error.F,prec.F,smear.F,就用pgf90 -c smear.F这样的格式即可,产生相应的.o文件。然后进入optics目录,make clean一下后,修改makefile,用和编译vasp一样的blas和lapack来编译optics,成功。但是此时的vasp.4.6目录下的 vasp是有问题的,执行起来没有任何输出,让我伤透了脑筋。用原先存着的ifort编译的vasp计算后得到的OPTIC二进制文件optics程序执行后介电函数实部很多nan。还是用以前pgf90编译的vasp运行,这才没有了问题。

optics程序需要用paw的势,可以用USPP计算其他的东西,当要计算光学性质的时候改用pgf90编译的vasp和paw势即可。

OPTIC计算出来后,一定要记得cp IBZKPT KPOINTS。

程序规定要将ISMEAR设为采用Tetrahedron k mesh。因此,k点数起码要超过4个。我计算Se supercell用的1*1*2就不行。真正要计算的时候要将K点取大。

目前来看得到的结果和CASTEP的结果类似。

用Intel编译器还没有编译出optics来,得空再看一下。
阅读(906) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~