为什么在这个 FVM 中包含 Stokes 2nd Problem 的压力会导致错误的解决方案?

计算科学 流体动力学 纳维斯托克斯 投影
2021-12-03 14:39:23

我正在尝试学习如何使用有限体积方法,并且我想解决斯托克斯第二个问题的更一般情况,即无限半平面在无滑移边界条件下谐波振荡。

我一直在关注本讲座中的代码并将边界条件更改为:

u[1:-1, 1]  = u[1:-1, 2]                #left 
u[1:-1, -1] = u[1:-1, -2]               #right
u[-1,1:]    = 2*np.cos(n*dt) - u[-1,1:] #top
u[0, 1:]    = u[1,1:]                   #bottom

v[1:,0] = v[1:,1]      #left
v[1:,-1] = v[1:,-2]    #right
v[-1,1:-1] = 0.0       #top
v[1,1:-1] = 0.0        #bottom

(我的想法是,这意味着在左侧、右侧和底部边界处没有渐变,因此流动只会继续流出/流入体积,并通过通过幻像单元设置值来振荡顶部。)

然而,这会导致涡流形成 在此处输入图像描述

但是我们通过解析解知道

u(y,t)=eyω2νcos(ωtyω2ν)
y 方向上没有速度分量。而且这个漩涡也不是一个小小的偏差。

但是,如果我只是简单地排除投影步骤/将压力设置为 0,我将在任何地方恢复分析解决方案。为什么会这样?据我了解,压力本质上是用来强制流场是无散的,但是u(y)显然也有0散度那么为什么投影方法在这里失败?

0个回答
没有发现任何回复~