#castep #input-file #cell #file-format #chemistry #edit #parse

castep-cell-io

一个帮助解析、编辑和保存 castep 输入文件格式 .cell 的 crate。

17 个版本

0.2.7 2024 年 7 月 9 日
0.2.6 2024 年 7 月 2 日
0.2.5 2024 年 6 月 28 日
0.1.9 2024 年 6 月 19 日
0.1.5 2024 年 5 月 22 日

#696解析器实现


2 crates 中使用

MIT 许可证

155KB
4.5K SLoC

castep-cell-io

一个帮助解析、编辑和保存 .cellCastep 的 crate。

开发

目前,解析器可以在文件中搜索并解析两个必需的块条目,无论它们的顺序如何:晶格参数(LATTICE_CARTLATTICE_ABC)和离子位置(POSITIONS_FRACPOSITIONS_ABS)。如果开启功能 TS,则支持 POSITIONS_XXX_INTERMEDIATEPOSITIONS_XXX_PRODUCT

注释标记(#!)后面的内容应该被忽略。注释不应该破坏数据的有效格式。如果注释切断了必要的数据,解析器将失败,就像 castep 接受此类输入 .cell 时会失败一样。

未来将支持更多关键词和数据。

用法

通过 cargo 添加 crate

cargo add castep-cell-parser

在你的代码中

use std::{fs, path::Path};
use castep_cell_parser::{CellParser, CellDocument};

let path = Path::new("SAC_GDY_V.cell");
let input = fs::read_to_string(path).unwrap();
let mut cell_parser = CellParser::from(&input.as_str());
let cell_doc: CellDocument = cell_parser.parse().unwrap();

依赖项

~7.5MB
~154K SLoC