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
相关推荐
weixin_307779131 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
海绵宝宝转agent5 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
Ruiery5 小时前
Linux 6.6内核 CPU 深度解析(七):调度器启动 — 从单核到多核,调度器分阶段点亮
linux·运维·服务器
小奇不哭5 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
50万马克的面包5 小时前
CSDN-栈队列数组-知识点整理
linux·运维·服务器
小小龙学IT5 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Wang's Blog5 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071576 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
hetao17338376 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
卷无止境7 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python