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
相关推荐
IT_陈寒20 分钟前
为什么你应该学习JavaScript?
前端·人工智能·后端
Seven9721 分钟前
一致性Hash算法:如何实现分布式系统中的高效数据分片?
java
摇滚侠22 分钟前
IDEA 生成 try catch 快捷键
java·ide·intellij-idea
槑槑紫27 分钟前
windows系统装轻量版linux开发
linux·运维·服务器
byte轻骑兵36 分钟前
【HID】规范精讲[14]: 蓝牙HID流量规格配置实战——鼠标、键盘与手柄的QoS优化指南
服务器·计算机外设·人机交互·键盘·hid
lifejump39 分钟前
Empire(帝国)CMS 7.5 XSS注入
前端·安全·xss
无风听海42 分钟前
OAuth 2.0 前端通道与后端通道深入剖析
前端·oauth
sakiko_43 分钟前
UIKit学习笔记8-发送照片、拍摄照片并发送
前端·swift·uikit
tedcloud1231 小时前
ppt-master部署教程:快速搭建智能演示文稿系统
服务器·人工智能·系统架构·游戏引擎·powerpoint
_code_bear_1 小时前
OpenSpec CLI 与 OPSX 工作流说明
前端·后端·架构