LBGK与MRT-BGK模型计算结果对比

LBGK是单松弛模型,即f1-f9,每个离散速度方向的平衡态分布函数所采用的弛豫时间是相同的,这不是很合理,所以需要采用多松弛的模型,这个模型也很简单,就是相当于采用不同的弛豫时间,但是实际上实现起来并不是简单的给九个不同的弛豫时间,而是涉及到一个相空间转换的过程,但是归结到最后实际上是采用一个 9 × 9 9\times 9 9×9的矩阵来乘以f1-f9组成的向量。

简单写一下公式
1、对于LBGK
f ∗ ( r , t ) = f ( r , t ) − 1 τ ( f ( r , t ) − f e q ( r , t ) ) \mathbf{f}^*(\mathbf{r},t)= \mathbf{f}(\mathbf{r},t)-\frac{1}{\tau}(\mathbf{f}(\mathbf{r},t)-\mathbf{f}^{eq}(\mathbf{r},t)) f(r,t)=f(r,t)τ1(f(r,t)feq(r,t))

2、对于MRT-BGK
f ∗ ( r , t ) = f ( r , t ) − A ( f ( r , t ) − f e q ( r , t ) ) \mathbf{f}^*(\mathbf{r},t)= \mathbf{f}(\mathbf{r},t)-A(\mathbf{f}(\mathbf{r},t)-\mathbf{f}^{eq}(\mathbf{r},t)) f(r,t)=f(r,t)A(f(r,t)feq(r,t))
A是一个 9 × 9 9\times 9 9×9的矩阵
A = M − 1 S M A = M^{-1}SM A=M1SM
M是正交矩阵,对于给定的DnQ模型,其是确定的。
S是对角松弛矩阵,其有些参数于体积粘度和动力粘度有关,有些是可调参数。

注意:上面两个公式描述的碰撞过程,LBGK与MRT-BGK仅在碰撞过程有差异。
这里其实有个疑问,我在参考资料里看到有些人说在速度空间中碰撞过程是难以实现的,在矩空间中容易实现。这句话我比较存疑,无论从公式还是代码实现来看,似乎没什么区别,甚至转换到矩空间还要进行多余的运算,所以我都是直接在速度空间进行碰撞。下面给出转换到矩空间碰撞的公式,有了解的小伙伴可以一起交流学习:
1、从速度空间转换到矩空间
m = M f \mathbf{m} = M\mathbf{f} m=Mf
2、在矩空间中进行碰撞
m ∗ = S ( m − m e q ) \mathbf{m}^* = S(\mathbf{m} -\mathbf{m}_{eq} ) m=S(mmeq)
3、从矩空间转换为速度空间
f ∗ = M − 1 m ∗ \mathbf{f}^* = M^{-1}\mathbf{m}^* f=M1m

其实还有另一种写法,差别不大,但是这里也给出
1、从速度空间转换到矩空间
m = M f \mathbf{m} = M\mathbf{f} m=Mf
2、对上述第一种方法左乘 M − 1 M^{-1} M1
f ∗ = M − 1 S ( m − m e q ) \mathbf{f}^* = M^{-1}S(\mathbf{m} -\mathbf{m}_{eq} ) f=M1S(mmeq)

我个人感觉是没有区别的。
这里还补充一下 m e q \mathbf{m}_{eq} meq的求法,在何雅玲的书中有提到,MRT方法的第二个好处是平衡态分布函数可以直接根据目标方程选取,而不是直接取 M f e q M\mathbf{f}_{eq} Mfeq。但是我在编程实现的过程中还是简单直接上速度空间的平衡态分布函数转换到矩空间这种方法。

OK,下面说一下MRT比LBGK计算结果的优点。
老师的PPT里有一页进行了说明
在这里插入图片描述
根据流线这个算例应该是Re=2000时,在方腔的左上角的涡处。

我对Re=1000的结果进行了计算,下面给出的我的结果
这个是LBGK
LBGK
下面是MRT
MRT
(这里的涡量似乎大小有差异。。。)目前还没找到这个bug在哪。这两个算例的密度取值不同,但是应该不影响。。。
刚刚对LBGK的结果用tecplot计算了一下涡量,发现与程序输出的涡量确实存在差别,两个结果都用tecplot计算涡量时,结果很相近。
LBGK:wmin:-185-80wmax
MRT-LBM:wmin-162-66wmax
这里说明一下,LBGK的程序是我参考老师发的,里面有计算涡量的输出,MRT是我自己编的,没有涡量输出。
现在看来,问题应该出在tecplot计算的涡量和LBGK程序计算的涡量之间。

anyway,这不是重点。

1、LBGK
在这里插入图片描述
2、MRT-BGK
在这里插入图片描述

以上给出左上角区域放大图,可以看出MRT的涡量等值线确实光滑了许多。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Matlab 平板流 LBM 是指在平板流动中使用基于格子的 Boltzmann 方法(Lattice Boltzmann Method,简称 LBM)进行数值模拟计算的过程。平板流动是指流体在两个平行板之间流动的情况,这种流动通常在微流体领域中得到广泛应用。 LBM 是一种基于微观粒子动力学的计算流体力学方法,通过在空间上分割流体领域为一系列离散的格子单元,通过时间迭代计算格子内的粒子的运动和碰撞来模拟流体的宏观行为。相对于传统的 Navier-Stokes 方程求解方法,LBM 简单且易于并行化,在流动问题的模拟计算中表现出较高的效率和可扩展性。 在使用 Matlab 进行平板流 LBM 的模拟计算时,首先需要确定平板流动的几何大小和边界条件。然后,在 Matlab 中建立相应的计算模型,包括设置格子的大小、计算参数和迭代步数等。接下来,通过迭代计算,根据格子中的粒子运动和碰撞来模拟流体的流动过程,并得到相应的流场分布和物理性质的计算结果。 在计算过程中,可以根据需要引入各种物理模型和边界条件,如流体的粘性、流体-固体界面的力学特性等,以更加精确地模拟实际情况。最后,通过分析计算结果和后处理,可以获得平板流动的各种物理性质和流场特征,如速度分布、压力分布等。 总之,Matlab 平板流 LBM 是一种通过基于格子的 Boltzmann 方法,在 Matlab 软件中进行平板流动数值模拟计算的过程。它不仅可以模拟流体的流动行为,还可以平行处理大量数据,提高计算效率,并得到与实际情况较为接近的计算结果,具有很高的研究和应用价值。 ### 回答2: 平板流是指在水平平板上的流动。LBM(Lattice Boltzmann Method)是一种通过模拟流体微观粒子运动来研究宏观流体行为的数值方法。 在Matlab中,可以使用LBM来模拟平板流动。首先,需要定义一个二维的网格来表示平板流动的空间。然后,根据LBGK(Lattice BGK模型的离散速度空间,在每个网格节点处设置速度分布函数。接下来,根据碰撞和迁移过程,更新速度分布函数。 在平板流动中,边界条件通常是一定的速度或压力梯度。在LBGK模型中,可以通过设置边界节点的速度分布函数来实现边界条件的施加。比如,在平板上方的边界节点可以设置为一定的速度,而平板下方的边界节点可以设置为零速度。 通过迭代步骤,可以得到平板流动的稳态解。在每个时间步长内,根据碰撞和迁移过程,更新速度分布函数。最后,可以通过速度分布函数计算宏观流体参数,如流速、压力等。 在Matlab中,可以编写程序来实现上述步骤。通过使用适当的算法和参数,可以模拟平板流动的不同情况。此外,还可以通过可视化工具,在Matlab中绘制平板流动的速度场图或压力分布图,以便更直观地观察流动的特性。 总之,通过Matlab中的LBM方法,可以对平板流进行建模和仿真,以研究流动的行为和特性。这对于理解和优化平板流动过程具有很大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值