4 个版本
使用旧版 Rust 2015
0.6.0 | 2019 年 8 月 28 日 |
---|---|
0.5.2 | 2019 年 5 月 10 日 |
0.5.1 | 2019 年 4 月 9 日 |
0.5.0 | 2019 年 4 月 9 日 |
在 科学 中排名第 531
35MB
683K SLoC
lammps-sys
构建并生成 LAMMPS C 接口的 Rust 绑定,LAMMPS 是 大规模原子/分子并行模拟器。
用法
lammps-sys
在 crates.io 上可用! (实际上 真的是 这次)。
[dependencies]
lammps-sys = "0.6.0"
文档
请参阅 LAMMPS 的 library.cpp
。此文件将生成绑定。
如果您只想查看绑定的 Rust 签名,也可以自己生成这些签名
git clone https://github.com/ExpHP/lammps-sys
cd lammps-sys
git submodule update --init
cargo doc --open
操作模式
lammps-sys
将首先使用 pkg-config
探测系统 liblammps
库,如果失败,则从源代码构建它。此行为也可以通过 RUST_LAMMPS_SOURCE
环境变量进行配置。
有关更多信息,请参阅以下文档
链接系统库
请参阅 链接系统 LAMMPS 库。
从源代码构建
请参阅 自动从源代码构建 LAMMPS。
配置
环境变量
lammps-sys
使用以下环境变量来控制构建
RUST_LAMMPS_SOURCE
RUST_LAMMPS_SOURCE=auto
:尝试链接系统库,否则从源代码构建。(默认值)RUST_LAMMPS_SOURCE=system
:始终链接系统 LAMMPS 库(否则报告错误并解释失败原因)RUST_LAMMPS_SOURCE=build
:始终从源代码构建
Cargo 功能
异常
通过确保定义 LAMMPS_EXCEPTIONS
来启用以下 API 函数
lammps_has_error
lammps_get_last_error_message
如果系统库没有定义,将跳过该库。
可选包
存在许多以前缀 package-
命名的货运功能。这些与 LAMMPS 的可选功能一一对应,具体请参阅此处文档。激活功能 "package-user-misc"
相当于在 cmake 文件中提供 -DPKG_USER-MISC=yes
,这相当于在您使用 Lammps 经典基于 make 的构建系统时运行 make yes-user-misc
的效果。
您应该为所有直接使用您的crate的包激活功能。遗憾的是,这些功能目前在从源代码构建 LAMMPS 时才有效(有关包的注意事项讨论,请参阅链接系统 LAMMPS 库)。
请注意,这些标志几乎都没有经过测试,有些可能无法使用,甚至可能生成无效的 cmake 标志。请提交错误报告!
一些包(如 POEMS 或 REAX)有额外的库组件需要构建。目前 lammps-sys
对这些没有特殊处理,假设 cmake 标志会处理这个问题。如果它们对您有效,那很好!如果不有效,请提交一个问题。
它工作了吗?
为了更容易诊断构建/链接问题,您可以克隆此存储库并尝试运行 link-test
示例。
$ git clone https://github.com/ExpHP/lammps-sys
$ cd lammps-sys
$ # note: submodule update is only needed when building lammps from source
$ git submodule update --init
$ cargo run --example=link-test
LAMMPS (31 Mar 2017)
Total wall time: 0:00:00
请确保使用您计划在项目中启用的环境变量和 --features
来尝试此操作。
许可证
与 Lammps 一样,lammps-sys
在 (full) GNU GPL v3.0 许可下发布。有关详细信息,请参阅文件 COPYING
。
发行说明
请参阅发行说明。
引用
S. Plimpton, 快速并行算法进行短程分子动力学,J Comp Phys,117,1-19(1995)