potentialFoam解析

引言

大量的流体力学现象,如尾涡和边界层现象,都和有旋流动密不可分。但无旋流同样大量的存在于某些细分的流体力学领域(如航空、地下水)。对于无旋流的模拟,并不需要求解复杂的NS方程。potentialFoam求解不可压缩无粘无旋的速度势方程,其在OpenFOAM主要用途有两个,一个是用于计算一个大概的初始速度场,另一个是通过边界条件计算一个守恒的速度场。在potentialFoam中植入的是速度势的拉普拉斯方程,凡是使用拉普拉斯方程描述的问题,都可以使用potentialFoam进行求解。虽然求解的是速度势,但在使用的时候,需要给定速度的边界条件,且求解器求解的结果满足通量(速度)是守恒的,同时速度势满足和速度的对应关系。但速度势的边界默认为\(0\)。由于在结果中,重要的是potentialFoam求解的速度和压力,因此速度势默认为的边界对此没有影响。

控制方程与算法

首先有稳态不可压缩流体连续性方程:

(1)\[ \nabla \cdot \bfU =0 \]

对于无粘无旋流,则必定存在一个势函数\(\Phi\),使得

(2)\[ \nabla \Phi=\bfU \]

(3)\[ -\nabla \Phi=\bfU \]

本文选用方程(4)作为速度势的定义。在这种情况下,速度势与压力同向。

Warning

一维情况下方程(4)可以写为\(u=-\frac{\rd \Phi}{\rd x}\)。可见,\(x\)方向\(\Phi\)越大,\(-\frac{\rd \Phi}{\rd x}=u\)为一个负数,表示向\(x\)左侧移动,与压力作用相同。

将方程(4)代入到方程(1),有:

(4)\[ -\nabla\cdot(\nabla \Phi)=\nabla\cdot\bfU \]

或更进一步写为

(5)\[ -\nabla\cdot(\nabla \Phi)=0 \]

二者均为一个线性的拉普拉斯方程。但有一定区别。方程(4)(5)的离散形式分别为:

(6)\[ -\sum (\nabla\Phi)_f\cdot\bfS_f=\sum\bfU_f\cdot\bfS_f=\sum \phi_f \]

(7)\[ -\sum (\nabla\Phi)_f\cdot\bfS_f=0 \]

很明显,只有方程(6)才能考虑速度边界条件的影响,因为速度边界条件很有可能不等于\(0\)!因此在求解的过程中,需要使用方程(6),并将计算域内的通量场\(\phi_f\)\(0\)。因此,求解流程可以分为以下几步:

  1. 首先针对计算域,将初始化的\(\bfU\)内部场置\(0\),保证\(\sum\phi_f\)在内部场为\(0\)\(\bfU\)的边界场需要用户给定,且不为零。

  2. 求解一次方程(6),获得\(\Phi\)场。

  3. 对于内部场,\(\sum\phi_f\)在内部场为\(0\),因此在内部场,\(\phi_f=-(\nabla\Phi)_f\cdot\bfS_f\)

  4. 对于边界场,若为固定值边界条件,\(\sum\phi_f\)为从速度计算而来,为一个固定值。若为零法向梯度边界条件(固体边界、出口),边界处的\(\phi_f=-(\nabla\Phi)_f\cdot\bfS_f\)

  5. 获得\(\phi_f\)场后,可以重组出速度场\(\bfU\)

同时,在求解方程(6)的时候,需要边界条件。速度的边界条件通常用户给定。\(\Phi\)的边界条件在进口,因为已经给定速度,因此要给定零法向梯度边界条件。

对其求解后有速度势,然后通过方程(4)反推出速度,将其代入到动量方程,即可求出压力\(p\)