6个版本 (破坏性)

0.4.0 2023年8月8日
0.3.0 2022年11月1日
0.2.0 2022年4月8日
0.1.2 2022年3月27日
0.0.0 2022年2月19日

#486数学

每月23次下载

自定义许可

210KB
6K SLoC

信息

提供计算热力学性质的方法,包括压缩因子和天然气的密度。它包括AGA8 DETAIL和GERG2008状态方程,这些方程在AGA报告第8部分第3版(2017年4月)中描述。

此包是NIST的AGA8代码的Rust端口。

Rust

快速入门

要使用AGA8 DETAIL和GERG状态方程,通常创建一个具有new()的struct。然后设置气体组成x,压力p和温度t。最后调用density()properties()函数来计算摩尔密度和其他属性。

所有计算结果都是使用new()创建的struct的公共字段。

use aga8::detail::Detail;
use aga8::Composition;

let mut aga8_test: Detail = Detail::new();

// Set the gas composition in mol fraction
// The sum of all the components must be 1.0
let comp = Composition {
    methane: 0.778_24,
    nitrogen: 0.02,
    carbon_dioxide: 0.06,
    ethane: 0.08,
    propane: 0.03,
    isobutane: 0.001_5,
    n_butane: 0.003,
    isopentane: 0.000_5,
    n_pentane: 0.001_65,
    hexane: 0.002_15,
    heptane: 0.000_88,
    octane: 0.000_24,
    nonane: 0.000_15,
    decane: 0.000_09,
    hydrogen: 0.004,
    oxygen: 0.005,
    carbon_monoxide: 0.002,
    water: 0.000_1,
    hydrogen_sulfide: 0.002_5,
    helium: 0.007,
    argon: 0.001,
};
aga8_test.set_composition(&comp);
// Set pressure in kPa
aga8_test.p = 50_000.0;
// Set temperature in K
aga8_test.t = 400.0;
// Run density to calculate the density in mol/l
aga8_test.density();
// Run properties to calculate all of the
// output properties
aga8_test.properties();

// Molar density
assert!((12.807 - aga8_test.d).abs() < 1.0e-3);
// Compressibility factor
assert!((1.173 - aga8_test.z).abs() < 1.0e-3);

无运行时依赖

~0–1.3MB
~17K SLoC