5b16b9e790
- 3D D3Q19 LBM (numba.cuda), 240x130x265=8.27M 单元 - 恒功率风机曲线 dp*Q=P 压力进口, 工况点涌现 - 多孔布风板: 2mm 厚, 6.25% 开孔, 5 度倾斜(-x) - 4 段 DN300 侧进风 / 567->1200 渐扩 / DN800 排风 - 输出 19 张切面/矢量/压差/流量/分区图 (4x 分辨率)
51 lines
2.0 KiB
Python
51 lines
2.0 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""沿高度净通量核查 (体积 / 质量)。"""
|
|
import os
|
|
import sys
|
|
|
|
import numpy as np
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
import fbed_simulation as fs
|
|
|
|
D = np.load(os.path.join(fs.OUT, "fbed_fields.npz"))
|
|
UX, UY, UZ, RHO, SOLID = D["ux"], D["uy"], D["uz"], D["rho"], D["solid"]
|
|
FLUID = ~SOLID
|
|
UX, UY, UZ = UX * fs.SCALE_U, UY * fs.SCALE_U, UZ * fs.SCALE_U
|
|
CA = fs.DX ** 2
|
|
|
|
print(" z(m) 面积(m2) Q_vol(m3/h) Q_mass(m3/h) 倒流占比")
|
|
for z in [-0.44, -0.35, -0.28, -0.22, -0.15, -0.08, -0.02, 0.02, 0.06, 0.12,
|
|
0.25, 0.50, 0.80, 1.00, 1.20, 1.40, 1.60, 1.80, 1.95, 2.05, 2.15]:
|
|
iz = fs._zi(z)
|
|
m = FLUID[iz]
|
|
if m.sum() < 5:
|
|
continue
|
|
area = m.sum() * CA
|
|
qv = UZ[iz][m].sum() * CA * 3600
|
|
qm = (RHO[iz] * UZ[iz])[m].sum() * CA * 3600
|
|
frac = 100 * np.mean(UZ[iz][m] < 0)
|
|
print(f" {z:+.2f} {area:7.3f} {qv:11.0f} {qm:11.0f} {frac:6.1f}%")
|
|
|
|
print("\n进/出总通量:")
|
|
iy_in = fs._yi(fs.PIPE_Y0)
|
|
m = FLUID[:, iy_in, :]
|
|
print(f" 进风口(4xDN300) Q_vol={UY[:, iy_in, :][m].sum()*CA*3600:.0f} "
|
|
f"Q_mass={(RHO*UY)[:, iy_in, :][m].sum()*CA*3600:.0f} m3/h")
|
|
for iz in (fs.NZ - 1, fs.NZ - 2):
|
|
m = FLUID[iz]
|
|
print(f" 排风口 z={fs.ZC[iz]:.3f} Q_vol={UZ[iz][m].sum()*CA*3600:.0f} "
|
|
f"Q_mass={(RHO[iz]*UZ[iz])[m].sum()*CA*3600:.0f} m3/h")
|
|
|
|
print("\n=== 压差方向核查 (布风板上下) ===")
|
|
P = (RHO - 1.0) / 3.0 * (1.2 * fs.SCALE_U ** 2)
|
|
for k in range(4):
|
|
ix0, ix1 = fs._xi(0.6 * k), fs._xi(0.6 * (k + 1))
|
|
mpl = FLUID[fs._zi(-0.35):fs._zi(-0.05), :, ix0:ix1]
|
|
p_pl = P[fs._zi(-0.35):fs._zi(-0.05), :, ix0:ix1][mpl].mean()
|
|
mfb = FLUID[fs._zi(0.05):fs._zi(0.20), :, ix0:ix1]
|
|
p_fb = P[fs._zi(0.05):fs._zi(0.20), :, ix0:ix1][mfb].mean()
|
|
print(f" 第{k+1}段: p_风箱={p_pl:7.1f} Pa p_沸腾段={p_fb:7.1f} Pa "
|
|
f"Δp(风箱-沸腾段)={p_pl-p_fb:+7.1f} Pa {'✓正确' if p_pl>p_fb else '✗反了'}")
|