4. Navier-Stokes方程
文档B站视频讲解:
这节我们介绍一下NS方程的格子玻尔兹曼方法实现。
4.1. 什么是Navier-Stokes方程?
Navier-Stokes方程是描述流体运动的基本方程,它是由Navier和Stokes两位科学家在19世纪提出的,形式如下:
其中\(\rho\)是密度,\(\boldsymbol{u}\)是速度,\(p\)是压力,\(\mu\)是动力粘度,\(\lambda\)是第二粘度系数,\(\boldsymbol{F}\)是外力。
对于不可压缩流体,密度\(\rho\)为常数,并且不考虑外力,那么NS方程可以简化为:
4.2. NS方程的D2Q9模型
NS方程的求解一般采用D2Q9模型,其与扩散方程、对流扩散方程的区别仅在于速度的计算和平衡态分布函数为:
九个离散速度
对应的权重
演化方程
也可以写成如下的形式:
其中\(\omega = 1/\tau\)。
宏观量
运动粘度
4.3. 应用:库埃特流动
4.3.1. 解析解
库埃特流动是一种经典的流体力学问题,是一种瞬态流动,流体在两个平行板之间流动,上板以速度\(U\)向右移动,下板静止,流体在两板之间流动,从静止时刻开始,流体的速度分布随时间的演化为:
其中\(H\)是两板之间的距离,\(\nu\)是运动粘度。
4.3.2. 非平衡态外推格式
该格式的基本假设为,壁面处的非平衡态部分和临近格子的非平衡态部分是一致的,即:
其中,near表示临界格子,wall表示壁面格子。则:
4.3.3. Zou-He边界条件
以上边界为例,\(\rho,f_4,f_7,f_8\)4个参数未知,但我们只有如下三个方程:
因此,Zou-He提出如下的假设,在边界处:
也就是说\(f_4\)按照全反弹的方式计算,则三个方程,三个未知数就可以解出:
4.3.4. 数值模拟结果
下图是库埃特流动的数值模拟结果,其中\(\nu=0.1\),\(H=50\),\(U=0.1\),\(L=4\)。选择不同的边界条件和时间、空间步长进行计算。
Zou-He边界条件,\(\delta_x = 1\),\(\delta_t = 1\)
Zou-He边界条件,\(\delta_x = 2\),\(\delta_t = 2\)
非平衡态外推格式,\(\delta_x = 1\),\(\delta_t = 1\)
非平衡态外推格式,\(\delta_x = 2\),\(\delta_t = 2\)
可以看到,两种边界条件都与计算结果很好的吻合,而且可以任意的调节时间、空间步长,而不影响计算结果。
4.4. 应用:泊肃叶流动
4.4.1. 解析解
泊肃叶流动是一种经典的流体力学问题,是一种稳态流动,流体在两个平行板之间由压力驱动。进出口压差为\(\Delta P\),两板之间的距离为\(H\),流到长度为\(L\),则此时流体的速度分布为:
其中\(\mu\)是动力粘度,\(x\)是流体的位置,范围为\([0,H]\)。
4.4.2. 数值模拟结果
下图是泊肃叶流动的数值模拟结果,其中\(\nu=0.1\),\(H=20\),\(L=50\),\(\Delta P = 0.001\)。选择不同的时间、空间步长进行计算。进出口压力使用非平衡态外推格式,两侧壁面使用全反弹边界条件。使用最大速度与解析解的相对误差作为评价标准:
当\(\delta_x = 0.5\),\(\delta_t = 0.25\)时,\(\epsilon=7.2e-04\)
当\(\delta_x = 1\),\(\delta_t = 1\)时,\(\epsilon=0.0028\)
当\(\delta_x = 2\),\(\delta_t = 4\)时,\(\epsilon=0.0111\)
绘制\(\delta_x\)与\(\epsilon\)的关系
可以看到,LBM具有二阶精度。
4.5. 代码下载
如果您觉得这个项目对您有帮助,可以考虑用以下方式支持我:
☕ 请我喝杯咖啡
如果条件允许,欢迎捐赠支持!
每一分都是对我莫大的鼓励,让我能投入更多时间维护和更新。
📄 引用我的文章
如果暂时不便捐赠,适当引用我的文章也是极好的支持!
您的引用能帮助这个工作获得更多关注,同样让我感到无比欣慰。
无论哪种方式,都是对我的巨大支持!🙏感谢您让开源世界更美好!✨