Files
Physics-Ai-Fluent-Analysis/tools/fbed_check2.py
T

51 lines
2.0 KiB
Python
Raw Normal View History

#!/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 '✗反了'}")