#分子动力学 #材料 #物理 #FFI

sys lammps-sys

生成对 LAMMPS C 接口的绑定(可选从源代码构建)

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

GPL-3.0 许可证

35MB
683K SLoC

C++ 634K SLoC // 0.2% comments FORTRAN Legacy 20K SLoC // 0.7% comments CUDA 20K SLoC // 0.1% comments Shell 2.5K SLoC // 0.1% comments Python 2.5K SLoC // 0.2% comments C 2K SLoC // 0.1% comments BASH 624 SLoC // 0.0% comments Rust 430 SLoC // 0.2% comments FORTRAN Modern 124 SLoC HICAD 111 SLoC

lammps-sys

License Documentation Crates.io Version

构建并生成 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)

依赖关系