#ode #numeric #ffi #simulation #env-var

sys sundials-sys

与 SUNDIALS 非线性与 DAE 求解器套件的绑定

11 个不稳定版本 (4 个重大更改)

0.5.1 2024 年 7 月 18 日
0.5.0 2024 年 4 月 29 日
0.4.0 2023 年 12 月 26 日
0.3.0 2023 年 9 月 11 日
0.1.1 2019 年 1 月 12 日

#634 in 数学

Download history 141/week @ 2024-04-25 21/week @ 2024-05-02 22/week @ 2024-05-23 10/week @ 2024-05-30 89/week @ 2024-06-06 15/week @ 2024-06-13 1/week @ 2024-07-04 127/week @ 2024-07-18 5/week @ 2024-07-25

133 每月下载次数
用于 2 crates

BSD-3-Clause

11MB
282K SLoC

C 159K SLoC // 0.2% comments FORTRAN Modern 108K SLoC // 0.0% comments C++ 8K SLoC // 0.1% comments CUDA 3.5K SLoC // 0.1% comments SWIG 1K SLoC // 0.4% comments Python 886 SLoC // 0.1% comments Rust 315 SLoC // 0.0% comments Shell 216 SLoC // 0.1% comments

Cargo Build & Test

sundials-sys

围绕 SUNDIALS 套件 ODE 求解器的简化 -sys crate。

系统依赖

系统必须已安装 CMake (cmake 依赖) 和 clang (bindgen 依赖) 以成功编译。

此 crate 将尝试检测系统是否存在 SUNDIALS 库(带有头文件),否则将编译其自己的版本。如果您的 SUNDIALS 库安装在非标准位置,您可以声明环境变量 SUNDIALS_LIBRARY_DIRSUNDIALS_INCLUDE_DIR 以将此信息传达给构建脚本。您可以通过启用功能 build_libraries 来强制使用供应商版本。

启用 klu 功能需要在您的系统上安装 SuiteSparse 库(带有头文件)。由于此库非常大,无法回退到供应商版本。如果 KLU 安装在非标准位置且此位置未知于 pkg-config,您可以将 KLU_INCLUDE_DIRKLU_LIBRARY_DIR 设置为分别指定 klu.h 的包含路径和库路径。例如

KLU_INCLUDE_DIR=/usr/include/suitesparse
KLU_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu

Unix

使用您的包管理器安装 cmakeclang

系统 SUNDIALS 库可用:为基于 Debian 的系统安装 libsundials-dev,为 Redhat 和 Suse 安装 sundials-devel,为 Arch、MacOS 和 BSD 发行版安装 sundials

在基于 Debian 的系统上,可以使用 apt install libsuitesparse-dev 安装 SuiteSparse 开发文件。

Windows

如果您还没有安装,您必须安装 Visual Studio启用 C++ 开发。您还必须安装 CMake。之后,您必须 重启您的计算机,否则 cmake 将找不到 C++ 编译器,您将遇到“生成器 Visual Studio 16 2019 无法找到任何 Visual Studio 实例”之类的错误。

要安装系统 SUNDIALS,我们建议您使用 vcpkg,然后(从 vcpkg 目录)执行以下命令:

vcpkg install sundials --triplet=x64-windows

或者,您可以使用 Chocolatey 来安装 CMakeLLVM(它提供 clang)。

如果您需要启用 KLU,您需要添加此 vcpkg 注册表,该注册表提供已启用 KLU 的 SUNDIALS

许可证

SUNDIALS 套件的使用许可和版权信息可以在此 查看。在撰写本文时,它是 BSD 3 条款许可。针对此包的特定代码也以 BSD 3 条款许可发布。

版本

  • 0.5.1
    • 使用 suitesparse_sys 包。
    • 将供应商版本更新到 v7.1.1。
  • 0.5.0
    • 添加 KLU 支持(功能受限制)。
    • 与 Sundials 版本 7.0.0 兼容
  • 0.4.0 — 些小改进
  • 0.3.0 — 确保 sundials 版本 ≥ 6,在 Windows 上使用 vcpkg
  • 0.2.0 — 使 sundials 的编译可选(允许链接到系统库)。添加静态库选项。
  • 0.1.1 — 从默认功能中删除(S)库,如果请求则添加 pthreads 支持
  • 0.1.0 — 初始 -sys 包装器,附带少量测试

历史

sundials-sys 是由 Jason Dark仓库)于 2019 年 1 月开始的。从 2021 年 6 月到 2022 年 10 月,Arthur Carcano仓库)对其进行了润色和维护。

依赖关系

~0–13MB
~258K SLoC