#velvet #molecular-dynamics #data #external #format #convert

已删除 velvet-convert

将外部文件格式转换为 Velvet 数据结构

0.1.2 2020年12月18日
0.1.1 2020年12月17日
0.1.0 2020年12月15日

#25 in #molecular-dynamics

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”是由速度Verlet组合而成,它是分子动力学领域的一个基础算法。

许可

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

致谢

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

依赖项

~12–22MB
~319K SLoC