Numba JIT 加速
flash.py、perkp.py 与 perks.py 已全量采用 JIT 编译,能够快速处理高并发下的矩阵运算。
Calculate_module 是本项目的科研核心。为了满足煤热解动力学中高频微分方程求解的性能需求,该模块除 lightgas.py 外,核心组件均已集成 Numba 加速,实现了接近 C/Fortran 级别的数值计算效率。
系统通过 Numba 的 @njit 装饰器,将复杂的化学渗透(Percolation)算法动态编译为机器码,大幅降低了 Python 解释器的开销。
Numba JIT 加速
flash.py、perkp.py 与 perks.py 已全量采用 JIT 编译,能够快速处理高并发下的矩阵运算。
原生 Python 逻辑
lightgas.py 保持原生实现,便于灵活调整气体析出的经验公式与逻辑判断。
perkp.py / perks.py:核心渗流理论算法。利用 Numba 处理大规模循环,计算煤大分子网络断裂概率,是引擎中计算压力最大的部分。flash.py:高性能闪蒸平衡求解。在模拟挥发分脱附时,通过 Numba 加速收敛迭代。lightgas.py:轻质气体(CO、CO2、H2O、CH4 等)析出模型。由于逻辑分支较多,采用标准 Python 开发。CPD_Engine_1.py:标准模拟。协调各组件执行一次性热解产率预测。CPD_Engine_2.py:高级模拟。支持与 13C NMR 参数的反馈循环,常用于学术深度研究。CPDPloter.py:基于 Matplotlib/Plotly 的科研绘图组件,用于校验计算曲线的物理一致性。data/:内置标准煤种数据库及物性常数。由于 Numba 在第一次调用函数时会进行编译,因此在生产环境下,系统启动后的首次计算任务耗时会略长(包含编译耗时)。后续任务将直接调用缓存的机器码。
# 核心组件典型实现风格from numba import njit
@njit(cache=True)def calculate_bridge_breakage(p, sigma): # 此类函数在 Calculate_module 中被高频调用 # Numba 将其转化为高效的向量化指令 ...