Skip to content

核心算法模块 (Calculate_module)

Calculate_module 是本项目的科研核心。为了满足煤热解动力学中高频微分方程求解的性能需求,该模块除 lightgas.py 外,核心组件均已集成 Numba 加速,实现了接近 C/Fortran 级别的数值计算效率。


系统通过 Numba 的 @njit 装饰器,将复杂的化学渗透(Percolation)算法动态编译为机器码,大幅降低了 Python 解释器的开销。

Numba JIT 加速

flash.pyperkp.pyperks.py 已全量采用 JIT 编译,能够快速处理高并发下的矩阵运算。

原生 Python 逻辑

lightgas.py 保持原生实现,便于灵活调整气体析出的经验公式与逻辑判断。


  • perkp.py / perks.py:核心渗流理论算法。利用 Numba 处理大规模循环,计算煤大分子网络断裂概率,是引擎中计算压力最大的部分。
  • flash.py:高性能闪蒸平衡求解。在模拟挥发分脱附时,通过 Numba 加速收敛迭代。
  • lightgas.py:轻质气体(CO、CO2、H2O、CH4 等)析出模型。由于逻辑分支较多,采用标准 Python 开发。

由于 Numba 在第一次调用函数时会进行编译,因此在生产环境下,系统启动后的首次计算任务耗时会略长(包含编译耗时)。后续任务将直接调用缓存的机器码。

# 核心组件典型实现风格
from numba import njit
@njit(cache=True)
def calculate_bridge_breakage(p, sigma):
# 此类函数在 Calculate_module 中被高频调用
# Numba 将其转化为高效的向量化指令
...