#chemistry #linear-algebra #castep #yaml #back-end #model-generator #computational-chem

castep_model_generator_backend

用于编辑和生成与CASTEP和Materials Studio兼容的晶格3D模型的Rust后端库

18个稳定版本

2.1.3 2023年9月19日
2.1.1 2022年12月20日
2.0.7 2022年11月30日
0.1.2 2022年10月17日

#130 in 数学

40 每月下载量

MIT许可证

54KB
1.5K SLoC

Castep-model-generator-backend

用于编辑和生成与CASTEPMaterials Studio兼容的晶格3D模型的Rust后端库。

  1. castep-model-core

简介

此库100%使用rust编写。目前,它具有以下功能

  1. 将任何分子放入晶格,并提供必要的信息
    1. 用于与晶格协调的原子数量和身份。
    2. 用于确定3D空间中分子方向的几何信息。
  2. 导出CASTEP任务的种子文件,由castep-model-core支持
  3. 并行批量处理模型编辑、分子放置到晶格和导出,由rayon支持。
    • 迭代的具体工作流程由你自己实现。
  4. 可通过YAML格式文件进行配置。

使用YAML文件进行配置

此库旨在通过特定的YAML文件进行控制。您也可以在您的crate中硬编码必要的信息。

项目级别:用于项目级别控制的YAML文件提供以下字段

  1. base_model_loc:基本模型msi文件的路径。此晶格模型用于随后的批量编辑和吸附剂放置。
  2. element_table_loc:元素表YAML文件的路径。它将包含项目中涉及到的元素。
  3. adsorbate_table_loc:吸附剂信息YAML文件的路径。它记录处理吸附剂放置所需的信息。
  4. potentials_loc:CASTEP势文件的目录路径。
  5. export_loc:导出结果的位置。
  6. coord_sites:一个记录将用于晶格模型的目标配位位点的数组。例如,其格式如下
    coord_sites:
        - name: c1
        atom_id: 41
        - name: c2
        atom_id: 42
    
    name》字段用于为导出的模型命名。《atom_id》字段与《msi》文件中的id一致,且从1开始编号。
  7. coord_cases:您将描述晶格和吸附剂之间可能的配位情况。目前,该库设计用于处理最多有两个配位原子的案例。例如
    coord_cases:
    - name: double
        cases: [[41,42], [42,54], [54,53], [53,52], [41, 40], [41, 73], [42, 73]]
    - name: single
        cases: [[41, null], [42, null], [54, null], [53, null], [52, null], [40, null], [73, null]]
    

吸附剂信息

此《YAML》文件描述了关于吸附剂的必要信息,这对于吸附剂在晶格上的放置工作流程至关重要。

示例结构

directory: C2_pathways_ads
Adsorbates:
  - name: CO
    coordAtomIds: [1]
    stemAtomIds: [1,2]
    # planeAtomIds missing since it has only two atoms
    # plane_angle missing since it has only two atoms
    stem_coord_angle: 90.0
    bSym: false
    upperAtomId: 2
    atomNums: 2
    pathName: ethylene
  - name: CHO
    coordAtomIds: [1]
    stemAtomIds: [2, 3]
    planeAtomIds: [1, 2, 3]
    plane_angle: 90.0
    stem_coord_angle: 90.0
    bSym: false
    upperAtomId: 2
    atomNums: 3
    pathName: ethylene

directory字段告知代码在哪里定位吸附剂的《msi》文件。《pathName》字段帮助代码找到吸附剂:目前,这个库设计为根据以下路径查找吸附剂:./{directory}/{pathName}_path/{adsorbate_name}.msi

依赖项

~9.5MB
~194K SLoC