2 个版本
0.1.1 | 2024 年 4 月 17 日 |
---|---|
0.1.0 | 2024 年 4 月 17 日 |
#219 in 科学
24KB
167 行
Voronota-LT
Voronota-LT(发音为‘voronota lite’)是 Voronota 用于构建由镶嵌派生出的原子接触面积和体积的替代版本。Voronota-LT 是从头开始编写的,不使用任何外部代码,甚至不包括 Voronota 的核心代码。创建 Voronota-LT 的主要动机是极大地提高基于镶嵌的原子-原子接触面积和原子溶剂可及表面积的计算速度。
与 Voronota 一样,Voronota-LT 可以计算由加权 Voronoi 镶嵌派生的接触面积,但速度的提升主要来自于利用一种更简单、根本的镶嵌变体,也称为拉格朗日-拉格朗日镶嵌或幂图。这是 Voronota-LT 中的默认镶嵌变体。它考虑原子的半径以及滚动探针半径,将极平面定义为原子之间的分隔面。
使用方法
此 crate 提供了一个简化的接口来访问 Voronota-LT,并可以通过以下方式添加到现有的基于 Cargo 的项目中
cargo add voronota
以下示例展示了基本用法以及如何提取溶剂可及表面积等
use voronota::{Ball, RadicalTessellation};
let balls = vec![
Ball { x: 0.0, y: 0.0, z: 0.0, r: 2.0 },
Ball { x: 1.0, y: 0.0, z: 0.0, r: 2.0 },
];
let tessellation = RadicalTessellation::from_balls(1.4, &balls);
assert_eq!(tessellation.balls.len(), 2);
assert_eq!(tessellation.contacts.len(), 1);
assert_eq!(tessellation.cells.len(), 2);
let total_area: f64 = tessellation.cells.iter().map(|c| c.sas_area).sum();
assert_eq!(total_area, 166.6300743464026);
依赖项
~0.6–2MB
~30K SLoC