1个不稳定版本
新 0.1.3 | 2024年8月19日 |
---|---|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#85 in 科学
每月 131次下载
500KB
1.5K SLoC
[目录]
KiThe
这是一个包含结构、函数和数据库的包,可用于化学热力学、化学动力学以及化学反应器、燃烧、激波管和火箭发动机中的建模等领域。
内容
用法
- 将反应方程式解析为物质列表
use KiThe::reaction_analyzer::ReactionAnalyzer;
let mut ReactionAnalyzer_instance = ReactionAnalyzer::new();
let reactions_: Vec<&str> = vec!["A=B", "B->A + 3C", "2B+A=D"];
let reaction = reactions_.iter().map(|s| s.to_string()).collect();
ReactionAnalyzer_instance.reactions = reaction;
ReactionAnalyzer_instance.search_substances();
println!("substances: {:?}", ReactionAnalyzer_instance.substances);
- 将反应方程式解析为化学计量矩阵、直接反应系数矩阵、逆反应系数矩阵、动力学函数浓度度矩阵
use KiThe::reaction_analyzer::ReactionAnalyzer;
let mut ReactionAnalyzer_instance = ReactionAnalyzer::new();
let reactions_: Vec<&str> = vec!["A=B", "B->A + 3C", "2B+A=D"];
let reaction = reactions_.iter().map(|s| s.to_string()).collect();
ReactionAnalyzer_instance.reactions = reaction;
ReactionAnalyzer_instance.search_substances();
ReactionAnalyzer_instance.analyse_reactions();
println!("substances: {:?}", ReactionAnalyzer_instance.substances);
println!("{:?}", ReactionAnalyzer_instance);
- 该crate配备了解析公开数据库得到的化学反应动力学参数库,因此您可以查看每个动力学数据库中的所有库和所有反应,通过物质搜索反应等。以下是最重要的方法:
let mut kin_instance = KineticData::new();
// collecting reaction data for library name lib
kin_instance.open_json_files(lib);
// veiew all reactions in library
kin_instance.print_all_reactions();
// returns reaction ID and reaction data (parsed from json) for given reaction equation
kin_instance.search_reaction_by_equation(equation)
// search reactions by substances
kin_instance.search_reaction_by_reagents_and_products(reagents)
- 该模块是自动化学机理构造器,以库的名称和物质的向量作为输入,然后生成以下数据:
- 起始物质之间的所有反应,以及所有可能产物之间的所有反应和原始物质之间的所有反应。
- 包含所有找到的反应的动力学数据的HashMap
let mut mech_search = Mechanism_search::new(
vec!["O".to_string(), "NH3".to_string(), "NO".to_string()],
"NUIG".to_string(),
Vec::new(),
Vec::new(),
Vec::new(),
);
let (mechanism, reactants, vec_of_reactions) = mech_search.mechfinder_api();
- 原子组成和摩尔质量的计算
use KiThe::molmass::calculate_molar_mass;
let formula = "C6H8O6";
let (molar_mass, element_composition) = calculate_molar_mass(formula.to_string());
println!("Element counts: {:?}", element_composition);
println!("Molar mass: {:?} g/mol", molar_mass);
use KiThe::molmass::parse_formula;
let formula = "Na(NO3)2".to_string();
let atomic_composition = parse_formula(formula);
println!("{:?}", atomic_composition);
测试
我们的项目有测试覆盖,您可以通过标准命令运行它们
cargo test
贡献
如果您有任何问题、评论或想要贡献,请随时通过https://github.com/联系我们
待办事项
- 添加具有适当处理、搜索和检索数据方法的化学反应库
- 添加化学物质库...
- 添加数值方法(可能是cpp开源...)
依赖项
~2.8–4.5MB
~88K SLoC