#导入导出 #velvet #外部 #数据 #格式 #分子动力学

velvet-external-data

导入和导出外部数据格式的工具

1 个不稳定版本

0.1.0 2021年2月10日

模拟分类中排名355

每月下载量39
2仓库中使用

MIT许可

57KB
1.5K SLoC

Velvet

Crates.io Crates.io Crates.io

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

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

入门指南

先决条件

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

  • rustc - Rust编程语言的编译器
  • Cargo - Rust编程语言的包管理器

Velvet支持写入HDF5格式的结果(可选)。如果您希望使用此格式,您需要安装本地版本的libhdf5。您可以使用选择的包管理器安装此库,或从源代码这里直接下载。

安装

如果您有兴趣贡献或修改代码以供个人使用,您可以按照以下说明安装本地副本。不需要修改代码的用户可以跳到使用部分。

  1. 克隆仓库。
$ git clone https://github.com/seatonullberg/velvet && cd velvet
  1. 以发布模式构建。
$ cargo build --release --workspace
  1. 检查所有测试是否通过。发布模式是运行集成测试所必需的。
$ cargo test --release --workspace

可选功能

Velvet支持一些编译时选项,可以在使用Cargo构建时通过--features标志选择。

  • f64 - 将底层存储类型设置为64位浮点数。默认为32位。
  • hdf5-output - 启用 HDF5 格式输出。需要本地安装 libhdf5
  • quiet - 隐藏模拟进度条。在运行基准测试时推荐使用。
  • rayon - 启用与 rayon 并行迭代器进行多线程。

用法

Velvet 被设计成易于开发者修改和扩展。本着这个目标,Velvet 放弃了对静态配置文件或输入脚本的支撑,这些可能会限制灵活性并复杂化后端逻辑,而是直接在代码中使用高级 velvet 包来定义模拟。虽然这对熟悉主流原子模拟软件的研究者来说可能有些令人望而却步,但 examples 目录中的示例表明,这可以是一个相当优雅的解决方案。

路线图

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

常见问题解答

  • 为什么它被称为 "Velvet"?

    • "Velvet" 是 "Velocity Verlet" 的缩写,它是分子动力学领域的基石算法。

许可证

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

致谢

  • LAMMPS - 大规模原子/分子大规模并行模拟器
  • Lumol - 通用可扩展分子模拟引擎

lib.rs:

用于导入和导出外部数据格式的工具。

依赖项

~8–17MB
~227K SLoC