16 个版本
新 0.4.0-alpha.8 | 2024 年 8 月 20 日 |
---|---|
0.4.0-alpha.3 | 2024 年 4 月 5 日 |
0.4.0-alpha.2 | 2024 年 3 月 28 日 |
0.3.7 | 2022 年 12 月 30 日 |
0.3.5 | 2021 年 11 月 4 日 |
#116 in 数学
每月 420 次下载
180KB
4K SLoC
floccus
Rust crate 提供空气热力学计算公式。
该 crate 包含用于计算大气科学中常用热力学量的函数。目前由一个人开发,所以如果您想添加功能,请不要犹豫,在Github 仓库中提交问题或拉取请求。
该 crate 的目的是成为热力学公式的学术参考,以便研究人员在文献中查找特定公式时不需要搜索。因此,所有函数文档都提供了引用公式的论文。
同时,请查看该 crate 的贡献指南。
如何使用
要使用此 crate,只需使用 use
语句导入它,然后从所选模块中使用所需的函数。
use floccus::vapour_pressure;
//Set temperature and pressure in SI units
let temperature = 300.0; //in K
let pressure = 101325.0; //in Pa
//Compute vapour pressure using Buck (1981) formula
let vapour_pressure = vapour_pressure::buck1(temperature, pressure);
//The result is 3550.662 (f32) or 3550.6603579471303 (f64)
模块和函数的命名
由于某些热力学公式是经验公式,因此有多种计算给定量值的方法。因此,存在多个用于计算相同参数的函数,它们被分组到模块中。
模块和函数的命名遵循以下约定
vapour_pressure::buck1(temperature, pressure);
其中模块名称(vapour_pressure
)表示计算的量,函数名称(buck1
)表示公式的作者,函数参数(temperature, pressure
)是用于计算量的变量。
双精度
默认情况下,floccus 使用单精度(32位)浮点变量。如果需要更高的精度(以性能为代价),则可以启用 double_precision
功能以使用双精度(64位)浮点。
输入检查
为了防止任何意外行为,所有函数都会检查提供的输入是否在合理的范围内。每个函数的确切限制在各自的文档中指定。如果输入超出范围,函数将返回一个包含错误输入的 InputError::OutOfRange
。
每个函数还有 _unchecked
和 _validate
版本。_validate
版本仅检查其“父”函数定义的边界。_unchecked
版本仅执行计算而不进行任何输入检查。所有“父”函数都简单地调用 _validate
然后调用 _unchecked
。
调试
如果需要关于哪个函数返回错误以及原因的附加信息,可以启用 debug
功能。使用该功能时,返回错误函数将同时将错误信息打印到 log
,其中包含有关错误的附加信息。该功能可能不是零成本的,因此是可选的。
基准测试
此包中提供的函数旨在在数值模型中使用。为了向用户提供关于每个函数性能开销的信息,所有函数都可以使用 criterion.rs 进行基准测试。
依赖项
~1.4–2.7MB
~54K SLoC