OpenFOAM——SIMPLE,PISO,PIMPLE

SIMPLE & PISO &PLMPLE

参考链接
不可压缩连续性方程和动量方程为:

∇ ⋅ u = 0 ∂ u ∂ t + ∇ ⋅ ( u u ) − ∇ ⋅ ( ν ∇ u ) = − ∇ p \begin{aligned} &\nabla \cdot \mathbf{u} = 0 \\ &\frac{\partial \mathbf{u}}{\partial t} +\nabla \cdot(\mathbf{u}\mathbf{u})-\nabla\cdot(\nu \nabla \mathbf{u}) = -\nabla p \end{aligned} u=0tu+(uu)(νu)=p

下面利用连续性方程与动量方程推到压力方程。

离散线性化动量方程,同时压力梯度的形式保持不变。得到:

[ a 1 , 1 a 1 , 2 a 1 , 3 ⋯ a 1 , n a 2 , 1 a 2 , 2 a 2 , 3 ⋯ a 2 , n a 3 , 1 a 3 , 2 a 3 , 3 ⋯ a 3 , n ⋮ ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 a n , 3 ⋯ a n , n ] [ u 1 u 2 u 3 ⋮ u n ] = [ r 1 r 2 r 3 ⋮ r n ] + [ ( ∂ p / ∂ x ) 1 ( ∂ p / ∂ x ) 2 ( ∂ p / ∂ x ) 3 ⋮ ( ∂ p / ∂ x ) n ] \left[ \begin{matrix} a_{1,1} & a_{1,2} & a_{1,3} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & a_{2,3} & \cdots & a_{2,n} \\ a_{3,1} & a_{3,2} & a_{3,3} & \cdots & a_{3,n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n,1} & a_{n,2} & a_{n,3} & \cdots & a_{n,n} \\ \end{matrix} \right] \left[\begin{matrix} u_1 \\ u_2 \\ u_3 \\ \vdots \\ u_n \end{matrix}\right]= \left[\begin{matrix} r_1 \\ r_2 \\ r_3 \\ \vdots \\ r_n \end{matrix}\right]+ \left[\begin{matrix} (\partial p/\partial x)_{1} \\ (\partial p/\partial x)_{2} \\ (\partial p/\partial x)_{3} \\ \vdots \\ (\partial p/\partial x)_{n} \end{matrix}\right] a1,1a2,1a3,1an,1a1,2a2,2a3,2an,2a1,3a2,3a3,3an,3a1,na2,na3,nan,n u1u2u3un = r1r2r3rn + (p/x)1(p/x)2(p/x)3(p/x)n

[ a 1 , 1 0 0 ⋯ 0 0 a 2 , 2 0 ⋯ 0 0 0 a 3 , 3 ⋯ 0 ⋮ ⋮ ⋮ ⋱ ⋮ 0 0 0 ⋯ a n , n ] ⏟ Diagonal  A [ u 1 u 2 u 3 ⋮ u n ] + [ 0 a 1 , 2 a 1 , 3 ⋯ a 1 , n a 2 , 1 0 a 2 , 3 ⋯ a 2 , n a 3 , 1 a 3 , 2 0 ⋯ a 3 , n ⋮ ⋮ ⋮ ⋱ ⋮ a n , 1 a n , 2 a n , 3 ⋯ 0 ] ⏟ Off diagonal [ u 1 u 2 u 3 ⋮ u n ] = [ r 1 r 2 r 3 ⋮ r n ] + [ ( ∂ p / ∂ x ) 1 ( ∂ p / ∂ x ) 2 ( ∂ p / ∂ x ) 3 ⋮ ( ∂ p / ∂ x ) n ] \underbrace{\left[ \begin{matrix} a_{1,1} & 0 & 0 & \cdots & 0 \\ 0 & a_{2,2} & 0 & \cdots & 0 \\ 0 & 0 & a_{3,3} & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & a_{n,n} \\ \end{matrix} \right]}_{\text{Diagonal}~\mathbf{A}} \left[\begin{matrix} u_1 \\ u_2 \\ u_3 \\ \vdots \\ u_n \end{matrix}\right]+ \underbrace{\left[ \begin{matrix} 0 & a_{1,2} & a_{1,3} & \cdots & a_{1,n} \\ a_{2,1} & 0 & a_{2,3} & \cdots & a_{2,n} \\ a_{3,1} & a_{3,2} & 0 & \cdots & a_{3,n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{n,1} & a_{n,2} & a_{n,3} & \cdots & 0 \\ \end{matrix} \right]}_{\text{Off diagonal}} \left[\begin{matrix} u_1 \\ u_2 \\ u_3 \\ \vdots \\ u_n \end{matrix}\right]= \left[\begin{matrix} r_1 \\ r_2 \\ r_3 \\ \vdots \\ r_n \end{matrix}\right]+ \left[\begin{matrix} (\partial p/\partial x)_{1} \\ (\partial p/\partial x)_{2} \\ (\partial p/\partial x)_{3} \\ \vdots \\ (\partial p/\partial x)_{n} \end{matrix}\right] Diagonal A a1,10000a2,20000a3,30000an,n u1u2u3un +Off diagonal 0a2,1a3,1an,1a1,20a3,2an,2a1,3a2,30an,3a1,na2,na3,n0 u1u2u3un = r1r2r3rn + (p/x)1(p/x)2(p/x)3(p/x)n

a P u u P + ∑ N a N u u N = r − ∇ p a_P^{\mathrm{u}} \mathbf{u}_P+\sum_N a_N^{\mathrm{u}} \mathbf{u}_N=\mathbf{r}-\nabla p aPuuP+NaNuuN=rp

其中, r r r是源项。

引入 H ( u ) \mathbf{H}(\mathbf{u}) H(u)

H ( u ) = r − ∑ N a N u u N \mathbf{H}(\mathbf{u})=\mathbf{r}-\sum_{N}a_{N}^{\mathbf{u}}\mathbf{u}_{N} H(u)=rNaNuuN

因此:

a P u u P = H ( u ) − ∇ p u P = ( a P u ) − 1 ( H ( u ) − ∇ p ) \begin{aligned} a_{P}^{\mathbf{u}}\mathbf{u}_{P} & = \mathbf{H}(\mathbf{u})-\nabla p \\ \mathbf{u}_{P} & = (a_{P}^{\mathbf{u}})^{-1} (\mathbf{H}(\mathbf{u})-\nabla p) \end{aligned} aPuuPuP=H(u)p=(aPu)1(H(u)p)

将连续性方程代入即得到压力方程:

∇ ⋅ [ ( a P u ) − 1 ∇ p ] = ∇ ⋅ [ ( a P u ) − 1 H ( u ) ] \nabla \cdot\left[\left(a_P^{\mathrm{u}}\right)^{-1} \nabla p\right]=\nabla \cdot\left[\left(a_P^{\mathrm{u}}\right)^{-1} \mathbf{H}(\mathbf{u})\right] [(aPu)1p]=[(aPu)1H(u)]
SIMPLE PISO PIMPLE

  • SIMPLE算法并未考虑算子 H ( u ) \mathbf{H}(\mathbf{u}) H(u)是由不满足连续性方程的速度构造得到的。SIMPLE回到循环的开始,并在时间上进行(迭代)。
  • PISO算法返回对 H ( u ) \mathbf{H}(\mathbf{u}) H(u)的修正并且再次执行动量校正步骤,然后进行时间上的迭代。
  • PIMPLE算法是SIMPLE(outer corrector)算法与PISO(inner corrector)算法的融合.主要思想是在每个时间步长中寻求一个完全收敛的稳态解,并在时间上进行。如果只进行一个外部修正循环与多个内部循环,PIMPLE循环类似于PISO。在每个时间步长中,可以使用欠松弛来实现平稳收敛。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值