而ZEN作为专为 DFT+DMFT 开发的开源高效工具,依托 Julia 生态实现轻量化部署、与 VASP 计算结果无缝衔接、支持全轨道分辨的 DMFT 自洽计算与后处理。
核心软件版本要求
Julia 1.11.4
VASP 5.4 及以上,推荐 6.5.1 需提前编译完成,支持并行计算与 Wannier90 接口
编译器
Intel oneAPI Ifx/mpiifx、GNU mpif90 均可 需与 VASP 编译所用编译器保持一致
Julia 1.11.4 安装与环境配置
# 1. 下载Julia 1.11.4wget https://julialang-s3.julialang.org/bin/linux/x64/1.11/julia-1.11.4-linux-x86_64.tar.gz# 2. 解压并安装到指定目录tar -zxvf julia-1.11.4-linux-x86_64.tar.gzmv julia-1.11.4 /public/software/julia# 3. 添加到系统环境变量(永久生效)echo "export PATH=/public/software/julia/bin:\$PATH" >> ~/.bashrcsource ~/.bashrc# 4. 校验安装成功julia --version# 输出版本号 julia version 1.11.4 即为成功
ZEN 编译
下载地址
https://github.com/huangli712/Zen
解压压缩包后,在build文件夹中设置make.inc文件
然后编译即可
make all
ZenGui 项目文件自动安装
cd /public/software/ZEN/Zen-main/src/toolbox/ZenGuijulia --project=.Pkg.add("Documenter")Pkg.add(["Literate", "LiveServer", "PrettyTables"])Pkg.add("OrderedCollections")Pkg.add("Gtk")Pkg.instantiate()exit()
ZEN 主程序全局关联
# 1. 进入ZEN主目录(包含src、test、build文件夹的根目录)cd /public/software/ZEN/Zen-main# 2. 关联ZenCore模块到主环境,完成全程序编译julia --project=. -e 'using PkgPkg.develop(path="src/core/ZenCore")Pkg.instantiate()
环境变量配置
export VASP_HOME=/public/software/vasp651export ZEN_HOME=/public/software/ZEN/
DFT+DMFT计算:
以案例Ce为例,准备POSCAR
Ce4.720.00000000000000 0.50000000000000 0.500000000000000.50000000000000 0.00000000000000 0.500000000000000.50000000000000 0.50000000000000 0.00000000000000Ce1Direct0.00000000000000 0.00000000000000 0.00000000000000
和POTCAR,同时准备并行计算参数文件MPI.toml
dft = "mpiexec -n 4"dmft = "mpiexec -n 4"solver = "mpiexec -n 8"
以及ZEN的参数文件Ce.toml
case = "Ce"[dft]engine = "vasp"projtype = "plo"smear = "tetra"kmesh = "medium"ncycle = 8lsymm = falselspins = falselspinorb = falselproj = truesproj = ["1 : f : Pr"]window = [-2.5, 2.5][dmft]mode = 1axis = 1niter = 60nmesh = 8193dcount = "fll2"beta = 40.0mixer = 0.1mc = 1.0E-4cc = 1.0E-6ec = 1.0E-4sc = 1.0E-4lfermi = true[impurity]nsite = 1atoms = ["Ce : 1"]equiv = [1]shell = ["f"]ising = ["ising"]occup = [1.0]upara = [6.0]jpara = [0.7]lpara = [0.0][solver]engine = "ct_hyb1"ncycle = 2params = ["isbnd = 2", "isort = 2", "nsweep = 100000000"]
然后执行前面编译好的文件dft_dmft.jl即可
dft_dmft.jl Ce.toml
