AtomPPGen 文档
模守恒赝势生成器 - 基于 Troullier-Martins 方法的教学实现
简介
AtomPPGen 是一个教学用赝势生成工具,实现了:
全电子原子解 - 调用 AtomSCF 求解参考态
TM 伪化 - Troullier-Martins 方法生成赝轨道
势反演 - 从伪轨道反演半局域势
KB 形式 - Kleinman-Bylander 可分离非局域投影
可转移性检验 - 范数守恒、对数导数曲线、幽灵态检测
数据导出 - JSON/NPZ 格式
快速开始
安装
# 克隆仓库
cd AtomPPGen
# 使用 uv(推荐)
uv venv
source .venv/bin/activate
uv pip install -e ../AtomSCF # 安装依赖
uv pip install -e ".[dev,docs]"
# 或使用标准 venv
python -m venv .venv
source .venv/bin/activate
pip install -e ../AtomSCF
pip install -e ".[dev,docs]"
示例:Al 原子全电子解
from atomppgen import solve_ae_atom
# 求解 Al 原子(使用变量变换方法)
result = solve_ae_atom(
Z=13,
xc="PZ81",
lmax=2, # s, p, d 通道
grid_type="exp_transformed",
grid_params={"n": 800, "rmax": 100.0},
scf_params={"tol": 1e-6, "maxiter": 150}
)
print(f"3s 能级: {result.eps_by_l[0][2]:.6f} Ha")
print(f"3p 能级: {result.eps_by_l[1][2]:.6f} Ha")
print(f"总能量: {result.energies['E_total']:.6f} Ha")
设计目标
主要目标: 生成 Al(Z=13)的 LDA 模守恒赝势
方法:Troullier-Martins (TM) + Kleinman-Bylander (KB)
交换关联:LDA-PZ81
通道:s, p, d(d 作为散射投影)
验收标准:
范数守恒误差 < 1e-6
能级偏差 < 5 mRy
对数导数曲线一致性良好
无幽灵态
文档结构
算法原理: TM 伪化、势反演、KB 转换的数学推导
API 参考: 完整的函数和类接口文档
示例: Al 赝势生成流程和可转移性检验