feat: 水平卧式流化床空床流场 GPU LBM 仿真 (100 格/m)
- 3D D3Q19 LBM (numba.cuda), 240x130x265=8.27M 单元 - 恒功率风机曲线 dp*Q=P 压力进口, 工况点涌现 - 多孔布风板: 2mm 厚, 6.25% 开孔, 5 度倾斜(-x) - 4 段 DN300 侧进风 / 567->1200 渐扩 / DN800 排风 - 输出 19 张切面/矢量/压差/流量/分区图 (4x 分辨率)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""探针: 检查 x=0.3 的 y-z 切面是否有异常开口 / 高速射流。"""
|
||||
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, SOLID = D["ux"], D["uy"], D["uz"], D["solid"]
|
||||
UX, UY, UZ = UX * fs.SCALE_U, UY * fs.SCALE_U, UZ * fs.SCALE_U
|
||||
SP = np.sqrt(UX ** 2 + UY ** 2 + UZ ** 2)
|
||||
NZ, NY, NX = SOLID.shape
|
||||
|
||||
ix = fs._xi(0.3)
|
||||
print(f"=== x=0.3 (ix={ix}) y-z 切面: 固体/流体 ASCII 图 (z 由高到低) ===")
|
||||
print("每格: '#'=固体 '.'=流体(<0.5m/s) 'o'=0.5-1.5 'O'=1.5-3 '*'=3-6 '@'=>6 m/s")
|
||||
for iz in range(NZ - 1, -1, -1):
|
||||
z = fs.ZC[iz]
|
||||
if z < -0.5 or z > 1.7:
|
||||
continue
|
||||
row = ""
|
||||
for iy in range(NY):
|
||||
if SOLID[iz, iy, ix]:
|
||||
row += "#"
|
||||
else:
|
||||
s = SP[iz, iy, ix]
|
||||
row += "." if s < 0.5 else ("o" if s < 1.5 else ("O" if s < 3 else ("*" if s < 6 else "@")))
|
||||
print(f"z={z:+.2f} {row}")
|
||||
|
||||
print("\n=== y=-0.6 墙完整性 (沿 z 扫) ===")
|
||||
iy_wall = fs._yi(-0.6)
|
||||
runs = []
|
||||
for iz in range(NZ):
|
||||
if SOLID[iz, iy_wall, ix]:
|
||||
runs.append((fs.ZC[iz], "solid"))
|
||||
else:
|
||||
runs.append((fs.ZC[iz], "FLUID"))
|
||||
open_z = [z for z, s in runs if s == "FLUID"]
|
||||
print(f" y=-0.6 处流体 z 段: {min(open_z):.2f} .. {max(open_z):.2f}" if open_z else " 全固体")
|
||||
print(f" 流体 z 计数={len(open_z)} / {NZ}")
|
||||
|
||||
print("\n=== 顶部区域 (z>1.0) 是否存在指向域内的射流 ===")
|
||||
for (x, y, z) in [(0.3, -0.5, 1.2), (0.3, -0.45, 1.3), (0.3, -0.35, 1.1),
|
||||
(2.1, -0.5, 1.2), (0.9, -0.5, 1.2), (1.5, -0.5, 1.2)]:
|
||||
i = fs._xi(x); j = fs._yi(y); k = fs._zi(z)
|
||||
if SOLID[k, j, i]:
|
||||
print(f" ({x},{y},{z}): SOLID")
|
||||
else:
|
||||
print(f" ({x},{y},{z}): ux={UX[k,j,i]:+6.2f} uy={UY[k,j,i]:+6.2f} uz={UZ[k,j,i]:+6.2f} "
|
||||
f"|U|={SP[k,j,i]:5.2f}")
|
||||
Reference in New Issue
Block a user