0.1.2 |
|
---|---|
0.1.1 |
|
0.1.0 |
|
#25 in #molecular-dynamics
57KB
1.5K SLoC
Velvet
Velvet 是一个经典的原子级模拟引擎,注重用户友好性和可扩展性。这个项目主要是为了学习,但随着开发工作的继续,我希望能够实现以下目标
- 通过用户定义的插件模块实现可扩展性
- 通过多线程和SIMD支持优化单核CPU性能
- 实现多种原子间势能
- 分子动力学、蒙特卡洛和能量最小化程序
- 可视化工具以分析模拟结果
- 支持导入和导出流行外部格式数据
入门指南
先决条件
要构建 Velvet,您需要在您的计算机上安装 Rust 编译器和包管理器。大多数平台的说明可以在此处找到:这里。
Velvet 支持写入 HDF5 格式结果。如果您选择此格式,则需要安装本地 libhdf5
。可以使用您选择的包管理器安装此库,或者直接从源代码下载 此处。
- The HDF Group - HDF5 官方组织
安装
如果您有兴趣贡献或修改代码以供个人使用,可以使用以下说明安装本地副本。不需要修改代码的用户可以跳转到 使用 部分。
- 克隆仓库。
$ git clone https://github.com/seatonullberg/velvet && cd velvet
- 以发布模式构建。
$ cargo build --release --workspace
- 检查所有测试是否通过。发布模式是运行集成测试所必需的。
$ cargo test --release --workspace
可选功能
Velvet 支持一些编译时选项,可以通过使用 Cargo 构建时带有 --features
标志来选择。
f64
- 将底层存储类型设置为 64 位浮点数。默认为 32 位。hdf5-output
- 启用 HDF5 格式输出。需要本地安装libhdf5
。quiet
- 隐藏模拟进度条。在运行基准测试时推荐使用。rayon
- 启用与rayon并行迭代器一起的多线程。
用法
Velvet设计得易于开发者进行修改和扩展。本着这个目标,Velvet放弃了静态配置文件或输入脚本的支持,这些可能会限制灵活性并复杂化后端逻辑,转而直接在代码中使用高级的velvet
包来定义模拟。虽然这对于更熟悉主流原子动力学模拟软件的研究者来说可能听起来有些令人望而却步,但examples
目录中的示例表明,这可以是一个相当优雅的解决方案。
路线图
请参阅公开问题、FEATURES.md和CHANGELOG.md,以了解计划或建议的功能(以及错误修复)。
常见问题解答
-
为什么它叫“Velvet”?
- “Velvet”是由速度Verlet组合而成,它是分子动力学领域的一个基础算法。
许可
在MIT许可证下分发。有关更多信息,请参阅LICENSE。
致谢
依赖项
~12–22MB
~319K SLoC