Implements hydrodynamics for the bubbling fluidized bed gasifier, including minimum fluidization velocity, bubble dynamics, and K_bd inter-phase mass transfer. Use when implementing or modifying calc_hydrodynamics, K_bd, bubble velocity, or U_mf-related logic in the BFB 1D model.
当需要在 BFB 一维模型中实现或修改以下内容时,应主动应用本 Skill:
calc_hydrodynamics()、calc_exchange() 等与两相流体力学相关函数u_mf、气泡速度 u_b、气泡直径 d_b(h) 等气泡动力学K_bd、气泡体积分数、慢泡/快泡判别逻辑本 Skill 假定已阅读项目中的 docs/techspec.md,所有符号与方程以该文档为权威来源。
Re_mf 和 u_mf,使用 Ar–Re_mf 的关系(参见 techspec.md 中 4.1 节的方程)。u_b、d_b、ε_b)都必须显式依赖 u_mf,禁止写死常数或与 u_mf 脱钩的经验式。alpha_b < 1 → 慢泡(slow bubbles)alpha_b > 1 → 快泡(fast bubbles)def classify_bubble_regime(u_b: float, u_mf: float) -> str:
"""根据 U_b / U_mf 判别慢泡或快泡状态。"""
alpha_b = u_b / u_mf
return "slow" if alpha_b < 1.0 else "fast"
ψ_b 默认为约 0.76(工业分布板),但应保留为可配置参数。dd_b/dh)数值积分得到,不允许直接写死经验极限值:
Cell 网格一致。λ_b、气泡相体积分数 ε_b 等量,需保证:
techspec.md 中保持一致K_bd 实现必须遵循 techspec.md 4.3 节的 Sit & Grace 混合模型:
u_br 和气泡直径 d_b 决定D_g、ε_mf、u_b 和 d_b 决定u_br 必须包含压力修正:
(P / P0)^(-0.15) 项或将其硬编码为 1。K_bd 仅用于构造:
ε_mf、颗粒直径、气体扩散系数 D_g)应来自统一的物性/建模模块,而不是在 hydrodynamics 模块中重复定义。K_bd 的计算必须与对应段的局部条件(压力、温度、气速)一致。建议将流体力学相关逻辑集中在 physics/hydrodynamics.py 中,并通过清晰的函数接口暴露给 Cell:
from typing import Protocol
import numpy as np
import numpy.typing as npt
class HydrodynamicsModel(Protocol):
def calc_u_mf(self, rho_g: float, rho_s: float, dp: float, mu_g: float) -> float: ...
def calc_bubble_velocity(self, u_0: float, u_mf: float, u_b0: float, psi_b: float = 0.76) -> float: ...
def calc_kbd(
self,
u_b: float,
d_b: float,
D_g: float,
eps_mf: float,
u_d: float,
n_b: float,
P: float,
P0: float = 1.0e5,
) -> float: ...
实现时应:
d_b > 0, P > 0)Ref: Hamel (1999) Gleichung 3.44, 3.50; Hamel & Krumm (2001) Section 2.1