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

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2010-02-05 16:15:00

·PWSCF计算实例分析(4)计算费米面

 

 
例子:计算fcc Cu的费米面
步骤:
1)先进行一次自洽计算,如前面的例子;
2)用kvecs_FS.x产生要计算费米面时的密集网格k点,这时的k不仅包含了第一布里渊区的,还有其他区域的;
3)进行一次非自洽计算,计算这些k点的本征值;
4)然后采用bands_FS.x将计算的k点以及相应的本征值,转换成xcrysden软件的bxsf格式,以便采用xcrysden来画图。
一、准备计算费米面要用到的密集网格k点
采用shell脚步来准备
Sysname='cu'
Calc_Type='FS'
nabc=' 12 12 12 '
n_start=3
n_last=6
#
E_Fermi=`grep Fermi cu.scf0.out cut -c 26-36`
a1=`grep 'b(1)' cu.scf.out cut -c 24-54`
a2=`grep 'b(2)' cu.scf.out cut -c 24-54`
a3=`grep 'b(3)' cu.scf.out cut -c 24-54`

cat > kvecs_FS.in <
$a1
$a2
$a3
$nabc
$Sysname
EOF
cat > kvecs_FS.in < kvecs_FS.out
kvecs_FS.x< kvecs_FS.in > kvecs_FS.out
 
注释:这里$Sysname用来标记所计算的体系,这个例子中给它赋值为'cu',$Calc_Type用来标记所进行的是Fermi surface的计算,可以赋值为'FS',$nabc用来设置在计算费米面时所要计算的k点网格,这里设置为'12x12x12'的k点网格。$n_start用来标记从哪个能带开始计算起,这里设置为3,$n_last用来设置要计算到哪根能带为止,这里设置为6,一般它们两个要设置在费米能级所在的带的上下,也就是它们的范围之内要包括了费米能级。$a1, $a2,$a3用来标记所得到k点网格产生的k点坐标。$E_Fermi用来标记在自洽计算中得到的费米能级值。
 
 
二、进行非自洽的计算,得到这些k点的本征值
cat > cu.fs.in << EOF 
&control   
calculation='nscf'   
prefix='cu',   
pseudo_dir = './',   
outdir='./' 
&system   
ibrav=2, celldm(1) =6.73, nat=1, ntyp=1,   
ecutwfc = 25.0, ecutrho = 300, nbnd=8 
&electrons   
conv_thr = 1.0e-8    mixing_beta = 0.7  
/
ATOMIC_SPECIES 
Cu 63.55 Cu.pz-d-rrkjus.UPF
ATOMIC_POSITIONS 
Cu 0.0 0.0 0.0
K_POINTS
EOF
cat  kvecs_$Sysname >> cu.fs.in
 
pw.x  cu.fs.out
三、准备将计算的本征值和对应的k点写成xcrysden的bxsf格式
mv cu.fs.out  Bands.out
cat > input_FS <
$n_start 
$n_last
$E_Fermi
$Sysname
$Calc_Type
$nabc
$a1
$a2
$a3
EOF
 
bands_FS.x  > bands_fs.out
mv Bands.bxsf  cu.fs.bxsf
阅读(2057) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~