#chemistry #computational #distance #module #structure #sites #bonding

chemrust-scanner

定义计算化学程序中数据流和结构的核心模块

2 个版本

0.2.3 2024 年 4 月 10 日
0.2.2 2024 年 4 月 10 日

#9#sites

MIT 许可证

78KB
2K SLoC

挂载站点扫描模块

此模块用于扫描给定结构中所有可能的挂载位点,并报告位点的位置和配位数。

输入

模块的输入包括

  1. 一个结构,以 .cell 格式。
  2. 所需的键合距离,以埃为单位。

输出

位点和配位数的 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