atomppgen.export
赝势导出模块
提供多种格式的赝势文件导出功能: - JSON:结构化元数据(参数、验证结果) - NPZ:数值数据(径向网格、势能、波函数) - UPF:Quantum ESPRESSO 兼容格式(实验性,当前仅提供最小可解析结构)
主要函数
export_pseudopotential : 统一导出接口
Functions
|
导出赝势到多种格式 |
|
导出 UPF v2(实验性) |
Classes
|
完整赝势数据包 |
- class atomppgen.export.PseudopotentialData(Z, symbol, spin_mode, xc_functional, generation_params, radial_grid, radial_weights, ae_eigenvalues_by_l, ae_wavefunctions_by_l, pseudo_wavefunctions_by_l, semilocal_potentials_by_l, validation_report, generation_date, kb_loc_channel=None, kb_V_loc=None, kb_beta_l=None, kb_D_l=None, code_version='0.1.0', git_commit=None)[源代码]
完整赝势数据包
聚合全电子解、TM伪化、势反演、验证报告等所有数据源, 用于统一格式导出。
- 参数:
- generation_params
生成参数(TM参数、网格参数等)
- Type:
Dict
- radial_grid
径向网格,单位 Bohr
- Type:
np.ndarray
- radial_weights
积分权重
- Type:
np.ndarray
- kb_V_loc
KB 局域势 V_loc(r),单位 Hartree(可选)
- Type:
Optional[np.ndarray]
- validation_report
完整验证报告
- Type:
-
validation_report:
ValidationReport
- __init__(Z, symbol, spin_mode, xc_functional, generation_params, radial_grid, radial_weights, ae_eigenvalues_by_l, ae_wavefunctions_by_l, pseudo_wavefunctions_by_l, semilocal_potentials_by_l, validation_report, generation_date, kb_loc_channel=None, kb_V_loc=None, kb_beta_l=None, kb_D_l=None, code_version='0.1.0', git_commit=None)
- atomppgen.export.export_pseudopotential(ae_result, tm_dict, inv_dict, validation_report, output_prefix, kb_result=None, formats=['json', 'npz'], metadata=None)[源代码]
导出赝势到多种格式
- 参数:
ae_result (AEAtomResult) -- 全电子原子解
inv_dict (Dict[int, InvertResult]) -- 各通道势反演结果(按角动量 l 索引)
validation_report (ValidationReport) -- 完整验证报告
output_prefix (str) -- 输出文件名前缀(如 'outputs/al_lda')
formats (List[str], default=['json', 'npz']) -- 导出格式列表,支持 'json', 'npz', 'upf'
metadata (Optional[Dict], default=None) -- 额外元数据(如 git_commit, 备注)
kb_result (KBResult | None)
- 返回:
生成的文件路径列表
- 返回类型:
List[Path]
- 抛出:
ValueError -- 若 tm_dict 和 inv_dict 的 l 通道不一致
示例
>>> files = export_pseudopotential( ... ae, tm_dict, inv_dict, report, ... output_prefix='outputs/al_lda', ... formats=['json', 'npz'] ... ) >>> print(files) [PosixPath('outputs/al_lda.json'), PosixPath('outputs/al_lda.npz')]
备注
输出单位约定: - 能量:Hartree 原子单位 - 长度:Bohr
JSON格式包含元数据和验证报告,NPZ格式包含数值数组。 推荐同时导出JSON+NPZ以获得完整数据集。
- atomppgen.export.export_upf(data, output_path, metadata=None)[源代码]
导出 UPF v2(实验性)
当前目标是提供“最小可解析、字段可追溯”的 UPF 结构,便于后续逐步对齐 QE 的严格要求。 若要获得严格可用于 Quantum ESPRESSO 的 UPF,请关注后续版本更新。
- 参数:
data (PseudopotentialData) -- 完整赝势数据包
output_path (str | Path) -- 输出文件路径(建议后缀为 .upf)
metadata (dict, optional) -- 额外信息;UPF 需要的关键字段可在此给出: - z_valence : float(建议显式提供)
- 返回:
生成的 UPF 文件路径
- 返回类型:
Path