问题描述
作为科学计算工具,PyMultiWFN 的结果必须与原始 Multiwfn 和文献数据对比验证。
需要验证的分析类型
1. 键级分析
2. 布居分析
3. 电子密度
验证方案
1. 参考数据集
tests/reference/
├── h2o.wfn # 水分子
├── ch4.wfn # 甲烷
├── c6h6.wfn # 苯
└── reference.json # Multiwfn 参考结果
2. 自动化对比测试
def test_mayer_bond_order_accuracy():
"""Mayer 键级与 Multiwfn 对比,误差 < 0.001"""
result = MayerBondOrder('h2o.wfn').calculate()
reference = load_reference('h2o_mayer.json')
for bond, order in result.items():
assert abs(order - reference[bond]) < 0.001
3. CI 集成
- 每次提交运行验证测试
- 结果偏差超过阈值自动报警
- 生成验证报告
参考标准
| 分析类型 |
参考来源 |
允许误差 |
| Mayer 键级 |
Multiwfn |
< 0.001 |
| Wiberg 键级 |
Multiwfn |
< 0.001 |
| Mulliken 布居 |
Gaussian |
< 0.01 e |
| 电子密度 |
Multiwfn |
< 0.1% |
建议行动
- 建立参考数据集 - 5-10 个标准分子
- 实现自动化对比 - pytest + 参考数据
- CI 集成 - GitHub Actions
- 文档 - 验证方法和结果
验收标准
相关文件
- tests/ (现有测试目录)
- tests/reference/ (建议新建)