eDMFT安装教程

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 依赖三类核心数学库:

  1. MKL 数学库(随 Intel oneAPI 自带,提供 BLAS/LAPACK/FFTW 接口)

  2. FFTW3(傅里叶变换库,用于谱计算与动量空间变换)

  3. 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 install
cd ../ 

编辑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
相关推荐
被摘下的星星4 分钟前
以太网技术
服务器·网络
Dxy12393102164 分钟前
Python 如何使用 XPath 定位元素:从入门到实战
python
lar_slw4 分钟前
k8s部署前端项目
前端·容器·kubernetes
何陋轩17 分钟前
【重磅】悟空来了:国产AI编程助手深度测评,能否吊打Copilot?
人工智能·算法·面试
拉拉肥_King20 分钟前
Ant Design Table 横向滚动条神秘消失?我是如何一步步找到真凶的
前端·javascript
weixin_4249993621 分钟前
mysql行级锁失效的原因排查_检查查询条件与执行计划
jvm·数据库·python
GreenTea23 分钟前
DeepSeek-V4 技术报告深度分析:基础研究创新全景
前端·人工智能·后端
yaoxin52112323 分钟前
389. Java IO API - 获取文件名
java·开发语言·python
Polar__Star28 分钟前
uni-app怎么实现App端一键换肤 uni-app全局样式动态切换【实战】
jvm·数据库·python
用户83562907805135 分钟前
使用 Python 自动管理 PowerPoint 幻灯片分节的方法
后端·python