55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
|
|
#!/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}")
|