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端口。
快速入门
要使用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