wannier_tools安装

基本参考cnqiang的教程Intel编译WannierTools (cndaqiang.github.io)
,唯一不同是Makefile,不知道为什么使用新版本的wannier tools里面的Makefile.intel-mpi报错,

mpif90 -fpp -DMPI -fpe3 -O3 -DARPACK -DINTELMKL -O3 -static-intel -nogen-interface -I/opt/ohpc/pub/apps/oneapi2022/mkl/2022.1.0/include -c module.f90
gfortran: error: unrecognized command line option ‘-fpp’; did you mean ‘-cpp’?
gfortran: error: unrecognized command line option ‘-fpe3’; did you mean ‘-fdec’?
gfortran: error: unrecognized command line option ‘-static-intel’; did you mean ‘-static-pie’?
gfortran: error: unrecognized command line option ‘-nogen-interface’; did you mean ‘-Wimplicit-interface’?
make: *** [module.o] Error 1

换成之前安装的老版本的Makefile之后就顺利编译了,放在这里备忘。注意把OBJ换成新版的。

OBJ =  module.o sparse.o wt_aux.o math_lib.o symmetry.o \
                 readHmnR.o inverse.o proteus.o \
       eigen.o ham_qlayer2qlayer.o psi.o unfolding.o rand.o \
                 ham_slab.o ham_bulk.o ek_slab.o ek_bulk_polar.o ek_bulk.o \
       readinput.o fermisurface.o surfgreen.o surfstat.o \
                 mat_mul.o ham_ribbon.o ek_ribbon.o \
       fermiarc.o berrycurvature.o \
                 wanniercenter.o dos.o  orbital_momenta.o \
                 landau_level_sparse.o landau_level.o lanczos_sparse.o \
                 berry.o wanniercenter_adaptive.o \
                 effective_mass.o findnodes.o \
                 sigma_OHE.o sigma.o Boltz_transport_anomalous.o \
                 2D_TSC.o \
        main.o


#OBJ =  module.o wt_aux.o math_lib.o symmetry.o readHmnR.o inverse.o proteus.o \
#       eigen.o ham_qlayer2qlayer.o psi.o unfolding.o \
#                ham_slab.o ham_bulk.o ek_slab.o ek_bulk_polar.o ek_bulk.o \
#       readinput.o fermisurface.o surfgreen.o surfstat.o \
#                mat_mul.o ham_ribbon.o ek_ribbon.o \
#       fermiarc.o berrycurvature.o \
#                wanniercenter.o dos.o  orbital_momenta.o \
#                 berry.o wanniercenter_adaptive.o \
#                effective_mass.o findnodes.o sigma_AHC.o \
#       main.o

# compiler
F90  = mpiifort -fpp -DMPI

INCLUDE = -I${MKLROOT}/include
WFLAG = -nogen-interface
OFLAG = -O3 -g -traceback -static-intel
FFLAG = $(OFLAG) $(WFLAG)
LFLAG = $(OFLAG)

# blas and lapack libraries
# static linking
LIBS = -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a \
        ${MKLROOT}/lib/intel64/libmkl_sequential.a \
        ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm -ldl

# dynamic linking
# LIBS = -L/${MKLROOT}/lib/intel64 -lmkl_core -lmkl_sequential -lmkl_intel_lp64 -lpthread

main : $(OBJ)
        $(F90) $(LFLAG) $(OBJ) -o wt.x $(LIBS)
        cp -f wt.x ../bin

.SUFFIXES: .o .f90

.f90.o :
        $(F90) $(FFLAG) $(INCLUDE) -c $*.f90

clean :
        rm -f *.o *.mod *~ wt.x


wannier tools计算声子拓扑

使用wannier_tools计算拓扑声子,需要将力常数文件FORCE_CONSTANTS转化为哈密顿量文件phonopyTB_hr.dat,这个可以通过wannier_tools里面的utility中的脚本实现,需要注意的是,它里面的脚本是python2的,而且适配的phonopy版本比较低,1.11.8,试了高版本的会不间断的报错。
相比于低版本的phonopy,高版本里面可以自动指定PRIMITIVE_AXES = AUTO
但是这只对1.14.0之后的版本适用,我的方法是先使用高版本的phonopy输出转移矩阵(在计算声子谱的命令里加一个 -v),然后在band.conf文件中使用PRIMITIVE_AXIS手动指定转移矩阵,注意老版本的这个参数是PRIMITIVE_AXIS而不是PRIMITIVE_AXES,指定后面这个不管用,识别不了。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容