3 个不稳定版本
0.2.0 | 2022年4月10日 |
---|---|
0.1.1 | 2021年6月29日 |
0.1.0 | 2021年4月26日 |
#21 in #green
145KB
2.5K SLoC
在Rust中快速评估格林函数
该库允许快速评估拉普拉斯、亥姆霍兹和修正亥姆霍兹问题的格林函数和势和。该库可以评估以下形式的和:
f(x_i) = sum_j g(x_i, y_j) * c_j
以及与 x_i 相关的对应梯度,其中 g(x_i, y_j) 定义为以下之一:
- 拉普拉斯格林函数:g(x, y) = 1 / (4 * pi * | x - y | )
- 亥姆霍兹格林函数:g(x, y) = exp ( 1j * k * | x - y |) / (4 * pi * | x - y | )
- 修正亥姆霍兹格林函数:g(x, y) = exp( -omega * | x - y | ) / (4 * pi * | x - y | )
实现针对编译器使用SIMD指令集进行自动向量化进行了优化。此外,所有例程都可以使用多线程。
该库用Rust实现,并提供Rust API、C API和Python绑定。
安装
为了确保库使用现代处理器功能进行编译,请按以下方式进行构建。
export RUSTFLAGS="-C target-feature=+avx2,+fma"
cargo build --release
按上述描述编译后,可以使用来自Pypi和conda-forge的 maturin
构建Python接口。
要构建Python绑定,请确保激活所需的Python虚拟环境,并设置上述 RUSTFLAGS
定义。然后使用以下命令构建Python模块:
maturin develop --release -b cffi
这创建了一个名为 rusty_green_kernel
的新Python模块,并安装了它。
文档
Rust库和C API的文档可在 docs.rs 上找到。Python模块的文档包含在模块 rusty_green_kernel
的Python帮助中。
依赖关系
~65MB
~871K SLoC