1 个不稳定版本
0.2.0 | 2022年4月26日 |
---|
#43 在 #monte-carlo
37KB
594 行
CPPM 生成器
概述
这是一个单独的命令行工具,生成球形的带电多孔粒子模型 (CPPM),模拟生物胶体粒子,例如球蛋白。下面的图像显示了从 https://doi.org/10.1063/1.4928077 中取出的相互作用的 CPPM 示例。
cppm-generator
通过在球面上放置中性、正性和负性粒子来生成 CPPM,并使用 Metropolis-Hastings 蒙特卡洛采样最小化(自由)能量。
安装
$ cargo install cppm-generator
用法
默认参数生成与该出版物中表 1 的 P00
类似的各向同性、带电粒子。也可以使用 --dipole
选项强制一个目标分子偶极矩。
$ cppm-generator --help
USAGE:
cppm-generator [OPTIONS] --file <FILE>
OPTIONS:
-b, --bjerrum-length <BJERRUM_LENGTH> Bjerrum length (Å) [default: 7.0]
-h, --help Print help information
-m, --minus <NUM_MINUS> Number of negative (-1e) particles [default: 37]
-N <NUM_TOTAL> Total number of particles [default: 643]
-o, --file <FILE> Output structure (.xyz or .pqr)
-p, --plus <NUM_PLUS> Number of positive (+1e) particles [default: 29]
-r, --radius <RADIUS> Sphere radius (Å) [default: 20.0]
-s, --steps <STEPS> Number of Monte Carlo iterations [default: 10000]
-u, --dipole <TARGET_DIPOLE_MOMENT> Target dipole moment (Debye)
-V, --version Print version information
详细信息及状态
- 球面上的随机游走使用球坐标
- 使用库仑/软核心势的粒子-粒子相互作用
- 中性粒子和带电粒子的任意混合
- 输出到
.xyz
和.pqr
文件 - 命令行界面
- 偶极矩分析
- 外部电场诱导任意片
- 使用谐波势约束到目标偶极矩
- 用 Rust 编写
- 使用 uon 进行维度分析
- IO 错误处理
- 单元测试
- 日志支持
动机
除了某些科学用途外,该项目主要是 Rust 编程语言的一个入门。
依赖项
~10–18MB
~250K SLoC