使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)

本文为博主原创文章,未经博主允许不得转载

1.模拟二维空间气流气压用到的方程式

计算2D空间气流气压要用到以下方程式:

其中第一个方程为 x x x方向速度 u u uN-S方程式(Navier-Stokes equation);第二个方程为 y y y方向速度 v v v的N-S方程式(Navier-Stokes equation);第三个方程为第一二个方程进行数学变换得到的方程。第三个方程将气压 p p p与速度关联起来,称为气压的泊松方程
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第1张图片
记号:
u : u: u: x x x方向速度 [ m / s ] [m/s] [m/s]
v : v: v: y y y方向速度 [ m / s ] [m/s] [m/s]
t : t: t: 时间 [ s ] [s] [s]
x : x: x: x x x方向
y : y: y: y y y方向
ν : \nu: ν: 运动粘度 [ m 2 / s ] [m^2/s] [m2/s]
ρ : \rho: ρ: 密度 [ k g / m 3 ] [kg/m^3] [kg/m3]
p : p: p: 气压(实际气压和雷诺平均气压的差值) [ p a ] [pa] [pa]

2.将偏微分方程离散化

对第一节中的三个方程进行时间离散化(Temporal Discretization)和空间离散化(Spatial Discretization)。其中时间离散化选用前进差分(Forward Difference),对于空间离散化,一阶偏微分(如: ∂ u / ∂ x \partial u/\partial x u/x)选用后退差分(Backward Difference),二阶偏微分(如: ∂ 2 u / ∂ x 2 \partial ^2u/\partial x^2 2u/x2)选用中心差分(Central Difference)。

离散化之后的方程如下:
u u u的N-S方程式:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第2张图片
v v v的N-S方程式:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第3张图片
气压的泊松方程:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第4张图片
记号:
n : n: n: n n n时点 [ s ] [s] [s]
n + 1 : n+1: n+1: n + 1 n+1 n+1时点( n n n时点之后的一个时点) [ s ] [s] [s]
Δ t : \Delta t: Δt: 时间间隔 [ s ] [s] [s]
u i , j : u_{i,j} : ui,j: 以模拟区域的左下角为原点的 i , j i,j i,j格子点处的 x x x方向速度

关于计算网格请看下图说明:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第5张图片

接着我们将离散化后的方程式的n+1时点项和n时点项分离,n+1时点项放在等式左边,n时点项放在等式右边。变形后的结果如下:

u u u的N-S方程式:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第6张图片
v v v的N-S方程式:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第7张图片
气压的泊松方程:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第8张图片

3.设置模拟条件

3.1 计算网格

假设我们模拟下图所示二维房间的气流。房间的左右侧完全开敞,无墙壁等物体;上下侧为固体墙壁。风从左侧流入房间,从右侧流出。
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第9张图片

3.2 初始条件

假设房间最开始 x x x方向充满了 5 m / s 5m/s 5m/s的风, y y y方向充满了 3 m / s 3m/s 3m/s的风。气压(实际气压和雷诺平均气压的差值)处处为0。

3.3 边界条件

根据3.1节的模拟条件,选用如下图所示边界条件。
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第10张图片

4.编写Python程序

根据以上公式和模拟条件,就可以开始编写Python程序啦。
Python程序代码见以下链接:
link
程序运行结果如下:
使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程)_第11张图片

感谢您阅读本文,如您对本文有任何疑问,或者发现本文有任何错误之处,欢迎您联系我。
[email protected]
如果您觉得本文还不错,记得点击右边打赏按钮打赏我哦~

你可能感兴趣的:(使用Python编写CFD程序-模拟二维空间气流气压+绘制风场气压场动画(详细教程))