eDMFT 是面向 WIEN2k 全势 LAPW 程序的 DFT+DMFT 耦合计算套件,实现了密度泛函理论与动力学平均场方法的无缝对接,可用于强关联电子体系的物性模拟。
本文基于Intel oneAPI 编译环境、Linux 集群系统,完整梳理 eDMFT 从依赖配置、源码编译、环境部署到计算初始化的全流程。
系统与基础环境
操作系统:Linux x86_64(CentOS/RHEL 系列,集群通用)
编译器套件:Intel oneAPI 2023.2(icx/icpx/ifort,替代经典 icc/ifort)
MPI 环境:Intel MPI(mpiicc/mpiicpc/mpiifort,禁止使用 GNU MPI 适配 Intel 编译链)
Python 环境:Anaconda Python 3.8(numpy≥1.24.4、scipy≥1.10.1、pybind11≥3.0.0)
耦合主程序:WIEN2k(需提前完成部署,配置WIENROOT环境变量)
eDMFT 依赖三类核心数学库:
MKL 数学库(随 Intel oneAPI 自带,提供 BLAS/LAPACK/FFTW 接口)
FFTW3(傅里叶变换库,用于谱计算与动量空间变换)
GSL(GNU 科学库,用于 CTQMC/atom 等杂质求解器的随机数、数值积分)
进入 eDMFT 根目录,
cp configure.py.intel configure.py执行编译
python3 setup.py如程序未寻找到系统/Intel中的fftw3,则会弹出提醒

可选择输入d 让程序自动下载和自行编译,
如未找到GSL库可重复此操作。
但如果编译环境中出现链接错误、头文件缺失、CBLAS 未定义问题,仍需手动编译库文件。
统一通用路径,根据实际安装环境更改
# WIEN2k安装路径WIENROOT=/public/software/wien2k# eDMFT根目录EDMFT_ROOT=/public/software/wien2k/E+DMFT/eDMFT-master# 依赖库安装路径(如需手动编译)FFTW_INSTALL=${EDMFT_ROOT}/bin/fftwGSL_INSTALL=${EDMFT_ROOT}/bin/gsl
FFTW3 编译
# 进入eDMFT依赖目录cd ${EDMFT_ROOT}mkdir -p bin/fftw# 下载并解压FFTW3wget http://fftw.org/fftw-3.3.10.tar.gztar -zxvf fftw-3.3.10.tar.gz && cd fftw-3.3.10# 加载Intel编译环境source /public/intel/oneapi/setvars.sh# 配置编译参数./configure --prefix=${FFTW_INSTALL} CC=icx CXX=icpx F77=ifort \--enable-openmp --enable-shared --enable-static# 编译安装make -j4 && make install# 返回根目录cd ../
GSL 编译
cd ${EDMFT_ROOT}mkdir -p bin/gsl# 下载GSL2.7wget https://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gztar -zxvf gsl-2.7.tar.gz && cd gsl-2.7# 配置./configure --prefix=${GSL_INSTALL} CC=icx CXX=icpx FC=ifort \--with-blas="-qmkl-ilp64=parallel -qmkl" \--with-lapack="-qmkl-ilp64=parallel -qmkl"# 编译安装make -j4 && make installcd ../
编辑configure.py(链接configure.py.intel):
cc = "icx" # Intel C编译器cxx = "icpx" # Intel C++编译器fc = "ifort" # Intel Fortran编译器mpi_define = "-D_MPI" # MPI编译宏定义pcc = "mpiicc" # Intel MPI C编译器pcxx = "mpiicpc" # Intel MPI C++编译器pfc = "mpiifort" # Intel MPI Fortran编译器# 数学库配置(核心:全路径+MKL链接)blasname = "MKL"blaslib = "-qmkl-ilp64=parallel -qmkl"lapacklib = ""fftwlib = "-I${FFTW_INSTALL}/include -L${FFTW_INSTALL}/lib -lfftw3_omp -lfftw3"gsl = "-I${GSL_INSTALL}/include -L${GSL_INSTALL}/lib -lgsl -lgslcblas -qmkl-ilp64=parallel -qmkl"
然后再次执行
python3 setup.py本公众号不定期发布有关DFT计算相关内容,主题多变且不固定。
欢迎分享本公众号推送,将教程与经验传播给需要的人。
如对教程内容有疑问,或者有需要咨询,可后台留言或微信联系作者:hn_87165
公众号已开启AI机器人,可直接进行对话,获取基于已有文章内容的回复。
同时如想加入公众号交流群,也可添加作者并说明。
或扫描二维码添加
加交流群请主动说明 :所在单位 研究方向

最后,如果您有DFT计算相关经验,愿意写相关的教程,也可以联系作者投稿。
愿有所成

引喻失义 妄自菲薄
夜雨聆风