2个版本
0.1.1 | 2024年8月4日 |
---|---|
0.1.0 | 2024年8月2日 |
#773 在 算法
223 每月下载量
145KB
3K SLoC
ndspec
一个专注于能量密度谱的海洋波浪crate。
lib.rs
:
ndspec
ndspec
是一个专注于海洋波浪、风及相关响应谱的能量密度谱crate。
该crate组织如下模块
core
- 处理能量密度谱的核心功能。waves
- 计算海洋波浪能量密度谱的函数。wind
- 计算风能量密度谱的函数。spectrum
- 提供一维和二维谱的Spectrum1
和 'Spectrum2' 类型。
所有波浪和风谱都可以转换为 Spectrum1
或 Spectrum2
类型。这些类型提供了处理和评估能量密度谱的各种特性。
该crate设计用于与 ndarray
crate 一起使用。底层数据结构采用 ndarray::Array1
和 ndarray::Array2
类型。
该crate还提供了一个可以单独编译和安装的Python扩展。
安装
将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
ndspec = "0.1.0"
用法
以下示例演示了如何计算Bretschneider波浪谱的能量密度谱
use ndspec::prelude::*;
let hs = 1.5;
let tp = 18.0;
let mut bretschneider = Bretschneider::new(hs, tp);
let omega = Array1::linspace(0.1, PI, 100);
let energy = bretschneider.set_omega(omega).energy();
Python扩展
该crate提供了一个可以单独编译和安装的Python扩展。要构建扩展,需要 maturin
并且必须启用 python-extension
功能
maturin build --release --features python-extension
并使用 pip
安装。
示例
仅从Hs和Tp定义Jonswap能量密度谱,转换为 Spectrum1D
类型,然后评估在3小时(10,800秒)时间窗口内的最大可能振幅
import ndspec
S = ndspec.Jonswap(hs=1.5, tp=10.0).to_spec1d()
print(S.Ampm(10_800))
打印出Python中Jonswap类的帮助信息:
import ndspec
help(ndspec.Jonswap)
![能量密度数据结构][label_matrix]
依赖关系
~6–13MB
~156K SLoC