#分子动力学 #化学 #物理 #材料科学

velvet

注重用户友好性和可扩展性的经典原子模拟引擎

9 个不稳定版本 (3 个重大更改)

0.4.2 2021年2月12日
0.4.1 2021年2月12日
0.3.2 2020年12月19日
0.2.1 2020年12月15日
0.1.0 2020年7月19日

#566科学

MIT 许可证

665KB
1.5K SLoC

Velvet

Crates.io Crates.io Crates.io

Velvet 是一个注重用户友好性和可扩展性的经典原子模拟引擎。该项目主要是一个学习练习,但随着开发的继续,我希望实现以下目标

  • 通过用户定义的插件模块实现可扩展性
  • 优化单核性能,支持多线程和 SIMD
  • 实现多种原子间势
  • 分子动力学、蒙特卡罗和最小化程序
  • 可视化工具以分析模拟结果
  • 支持导入和导出流行外部格式数据

入门

先决条件

Velvet 可选支持写入 HDF5 格式的结果。如果这是您首选的格式,您将需要在本机上安装 libhdf5。可以使用您选择的包管理器安装此库,或者直接从源 此处 下载。

安装(从源代码)

要构建 Velvet,您需要在您的计算机上安装 Rust 编译器和包管理器。大多数平台的说明可以在 此处 找到。

  • rustc - Rust 编程语言的编译器
  • Cargo - Rust 编程语言的包管理器
  1. 克隆仓库
$ git clone https://github.com/seatonullberg/velvet && cd velvet
  1. 确保所有测试都通过
$ cargo test --workspace
  1. 以发布模式构建
# without optional dependencies
$ cargo build --release

# with HDF5 dependency
$ cargo build --release --features hdf5-output

# with rayon multithreading enabled
$ cargo build --release --features rayon

用法

examples 目录中包含使用 velvet 包直接在代码中配置模拟的示例。在 scripts 目录中包含用于可视化每个示例结果的 Python 脚本。

路线图

请参阅 公开问题FEATURES.mdCHANGELOG.md,以查看计划或建议的功能(以及错误修复)。

常见问题解答

问:为什么叫“Velvet”?

A: "Velvet" 是由 Velocity Verlet 组合而成,这是分子动力学模拟的基础算法。

许可证

在 MIT 许可证下分发。更多信息请参阅 LICENSE

致谢

  • Lumol - 通用可扩展分子模拟引擎

依赖项

~11MB
~215K SLoC