编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

「代码分享」费米面嵌套(Fermi surface nesting)函数计算

wxchong 2024-07-15 09:46:08 开源技术 12 ℃ 0 评论

1.引 子

我们知道费米面嵌套(Fermi surface nesting(FSN))与电荷密度波材料的计算有一定的相关性。

之前我们发了两篇相关文章在讲这个事情。(点击可查看,或者查看今日第二篇发文)

《电荷密度波和费米面嵌套:CDW and Fermi surface Nesting》

《电荷密度波(CDW)分类》


那么这个费米面嵌套可不可以计算呢?

当然是可以的。

以下是Cu2Si中的计算结果。(看起来挺好看是吧)

图1. Cu2Si的费米面嵌套,[J. Mater. Chem. C, 7, 10926 (2019)]

那么费米面嵌套函数怎么计算呢?


2.理 论

在讲费米面嵌套函数计算之前,

我们看两个公式(来自[J. Mater. Chem. C, 7, 10926 (2019)])。

根据Migdal–Eliashberg理论,电声耦合常数可以通过如下方程计算,


其中gqn 是声子线宽,wqn 是声子频率,N(EF) 是电子DOS在费米面处的值。gqn 可以表示为,


两个竖线中间的部分代表电声耦合矩阵元,而后面的两个δ函数乘积就是费米面嵌套函数。


这个函数是费米能级,能带本征值以及声子波矢q相关的函数。

所以它其实可以在知道能带的情况下单独计算得到。


3.代 码

老王在github找了一圈,真找到一个代码

该代码是杭州师范大学曹超教授开发,在这里我们感谢曹超教授。该代码采用从紧束缚模型wanner90_hr.dat中获得能带信息的方式计算费米面嵌套函数。

代码地址:https://github.com/ccao/fsnest


4.编 译

make.sys文件配置如下:

.SUFFIXES :


.SUFFIXES : .o .f90
 
.f90.o:
        $(F90) $(F90FLAGS) -fpp -c -I$(MKLINCLUDE) -I../modules lt;
F90=mpiifort
F90FLAGS=-D__MPI -O3 -msse3 -axSSE4.2
MKLINCLUDE=$(MKLROOT)/include
MKLLIBS=-L$(MKLROOT)/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
LAPACK95LIBS=$(MKLROOT)/lib/intel64/libmkl_lapack95_lp64.a
 
AR             = ar
ARFLAGS        = ruv
RANLIB         = ranlib

然后在分别依次在modules和src文件夹下make,得到执行文件fsnest.x。


5.使 用

建立wannchi.inp文件,写入如下内容:

wannier90       # 
4.7802
200 200 1
300.00
0.2
0.01
3
#200 200

含义:

!************ INPUT FILE *************
  !** file name: wannchi.inp
  !line 1: seed name
  !line 2: fermi level
  !line 3: nqx nqy nqz
  !line 4: temperature
  !line 5: omega
  !line 6: epsilon
  !line 7: mode
  !line 8: ...
  !*************************************

注意,其中mode这个参数,作者写了三种计算模式,分别为线模式,正交散点面模式和按照基矢散点面模式。具体设置请看src文件夹下的input.f90文件。


6.提 交

mpirun –n 4 fsnest.x

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表