2 个版本
0.2.3 | 2024 年 4 月 10 日 |
---|---|
0.2.2 | 2024 年 4 月 10 日 |
#9 在 #sites
78KB
2K SLoC
挂载站点扫描模块
此模块用于扫描给定结构中所有可能的挂载位点,并报告位点的位置和配位数。
输入
模块的输入包括
- 一个结构,以
.cell
格式。 - 所需的键合距离,以埃为单位。
输出
位点和配位数的 xyz 坐标表。
开发
- 读取
cell
- 使用 kd-tree 分析结构
- 通过给定的键合距离搜索每个原子的周围空间
- 3D 几何问题
- 球-球相交的表示:圆形曲线
- 曲线相交的求解:两点
- 整个相交确定工作流程
- 为 kd-tree 中的每个坐标点构建球体
- 迭代球体 kd-tree,检查相交,构建圆
- 从圆的 kd-tree 中,找到圆与圆之间的交点
- 每个找到的点将被添加到一个带有计数索引的 vec 中,如果下一个找到的圆与圆之间的交点与前一个找到的点重复,则添加计数索引。
- 总结球体、圆和点的数量。球体-1 C.N.,圆-2 C.N.,点-至少 4
- 将键合长度限制为 2 Å?否则结果将不实用。
- 以更详细和合理的方式报告
- 打包
错误调查
- 圆的交点错误(已于 5 月 2 日修复)
- 检查是否需要考虑更多与坐标等距离/近距离的球体/圆/点,而不仅仅是找到每个坐标最近的点。(已于 6 月 10 日完成)
- 球体阶段:使用 2 倍的所需键合距离
- 圆阶段:迭代。
- 键合长度包括元素的原子半径:使用 Materials Studio 的键合标准来排除不切实际的键合可能性。(已于 6 月 10 日完成)
- 将键合长度限制为 2-3 Å?或由容差决定,如 Material Studios:理想键合长度 *min_tolerance < ideal键合长度 < ideal键合长度 *max_tolerance(已于 6 月 10 日完成)
- 可能需要“黑名单”来避免考虑不切实际的键合组合。(6 月 12 日)
依赖项
~9.5MB
~192K SLoC