未定義のパートを多孔質媒体に変換し、シミュレーション用にその特性を定義します。
-
流体リボンで、多孔質媒体ツールを選択します。

-
1つまたは複数の未定義のパートを多孔質媒体として選択します。
-
マイクロダイアログで、多孔質媒体の特性を定義します。
- オプション:
多孔質媒体の粘性抵抗と慣性抵抗がまだわかっていない場合、Pythonスクリプトで計算できます。
-
リボンメニューから、を選択するか、キーボードからfn+F4を入力してください。
Pythonウィンドウが開きます。
-
Pythonウィンドウで、以下のコードを入力して圧力損失ベースの計算を実行します。
import numpy as np
import matplotlib.pyplot as plt
########## Begin User Inputs ##########
fluid_viscosity = 1.781e-5 # dynamic viscosity of the fluid [N·s/m2]
fluid_density = 1.225 # density of the fluid [kg/m^3]
porous_zone_length = 0.1 # length of the porous zone [m]
# Pressure Vs Velocity Data
velocity = np.array([0.0, 0.1, 0.2, 0.3]) # fluid velocity u [m/s]
pressure_loss = np.array([0.0, 0.01, 0.02, 0.04]) # pressure difference ΔP [N/m2] across the porous zone
########## End User Inputs ##########
# Parabolic curve-fit with ΔP = A * u + B * u^2
coefficients = np.polyfit(velocity, pressure_loss, 2)
B = coefficients[0]
A = coefficients[1]
delta_p_fit = A * velocity + B * velocity**2
plt.scatter(velocity, pressure_loss, color='red', label='data')
plt.plot(velocity, delta_p_fit, label=f'fitting: ΔP = {A:.4f} * u + {B:.4f} * u^2', color='blue')
plt.xlabel('Velocity u [m/s]')
plt.ylabel('Pressure Loss ΔP [Pa]')
plt.title('Pressure Loss vs. Velocity')
plt.legend()
plt.grid(True)
plt.show()
# Limit A to positive value while calculating d
d = max(0, A) / (fluid_viscosity * porous_zone_length)
f = 2 * B / (fluid_density * porous_zone_length)
# Print coefficients
print(f"Curve-fit Coefficients A = {A:.4f}, B = {B:.4f}")
print(f"Viscous Resistance = {d:.6f} 1/m^{2}")
print(f"Inertial Resistance = {f:.6f} 1/m")
この場合、
fluid_viscosity
、
fluid_density
、
porous_zone_length
、
velocity = np.array
シリーズ、および
pressure_loss = np.array
シリーズの自身のデータを置き換えます。
次のコードを入力して、穴あきプレートベースの計算を実行します。
import numpy as np
########## Begin User Inputs ##########
# physical parameters of the perforated plate
porosity = 0.8 # porosity, dimensionless, 0 < eps <= 1. 0は使用しません。
hole_diameter = 0.003 # circular hole diameter [m]
porous_zone_thickness = 0.025 # thickness of porous zone [m]
########## End User Inputs ##########
K = porosity * hole_diameter * hole_diameter * porous_zone_thickness / (32 * porous_zone_thickness + 15 * hole_diameter)
laminar_flow = True
if (laminar_flow):
# If the flow is laminar
alpha = 3 * (1 - porosity) / (4 * porosity * porosity * porous_zone_thickness)
else:
# If the flow is turbulent
delta_over_D = porous_zone_thickness / hole_diameter
alpha = 9 * (6 * delta_over_D - 5 * delta_over_D * delta_over_D) / (40 * porosity * porosity * porous_zone_thickness)
viscous_resistance = 1 / K
inertial_resistance = 2 * max(0, alpha)
# Print coefficients
print(f"Coefficients K = {K:.8f}, alpha = {alpha:.8f}")
print(f"Viscous Resistance = {viscous_resistance:.6f} 1/m^{2}")
print(f"Inertial Resistance = {inertial_resistance:.6f} 1/m")
この場合、
porosity
、
hole_diameter
、
porous_zone_thickness
を自身のデータに置き換えます。
-
Enterキーを押します。
-
粘性抵抗と慣性抵抗の結果を、マイクロダイアログのそれぞれのフィールドにコピーします。