删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

基于MPI+OpenMP混合编程模式的大规模颗粒两相流LBM并行模拟

本站小编 Free考研考试/2020-04-15

何强, 李永健, 黄伟峰, 李德才, 胡洋, 王玉明
清华大学 摩擦学国家重点实验室, 北京 100084

收稿日期:2019-01-10
基金项目:国家自然科学基金项目(51735006)
作者简介:何强(1991-), 男, 博士研究生
通信作者:黄伟峰, 副研究员, E-mail:huangwf@tsinghua.edu.cn

摘要:针对大规模三维颗粒两相流全尺度模拟并行计算问题,该文采用MPI+OpenMP混合编程模式,其中机群节点采用MPI并行计算,节点内部采用OpenMP进行细粒化的并行计算,并根据格子Boltzmann方法(LBM)颗粒两相流的特点进行OpenMP程序并行优化设计,提出了一种适用于大量颗粒的三维颗粒两相流LBM并行计算模型。以颗粒沉积问题为例,在集群计算机平台对并行算法的加速性能进行测试。计算结果表明:该算法具有良好的加速比及扩展性,并且其计算量具有颗粒数量不敏感的优点,适用于大规模多颗粒两相流问题的研究。
关键词:格子Boltzmann方法(LBM)MPI+OpenMP颗粒两相流
Parallel simulations of large-scale particle-fluid two-phase flows with the lattice Boltzmann method based on an MPI+OpenMP mixed programming model
HE Qiang, LI Yongjian, HUANG Weifeng, LI Decai, HU Yang, WANG Yuming
State Key Laboratory of Tribology, Tsinghua University, Beijing 100084, China


Abstract: This paper presents lattice Boltzmann method (LBM) analyses of three-dimensional, particle-fluid two-phase flows based on the MPI+OpenMP mixed programming model where the cluster nodes used the MPI parallelism with further fine-grained nodes using the OpenMP parallel calculation. The algorithm is optimized according to the characteristics of particle-fluid flows. The algorithm was then used to analyze a particle deposition problem to test the acceleration capabilities of the parallel algorithm. The results show that the algorithm has good speedup and scalability and that its computational complexity is insensitive to the number of particles, which is good for large-scale two-phase flow analyses.
Key words: lattice Boltzmann method (LBM)MPI+OpenMPparticle-fluid two-phase flow
颗粒两相流广泛存在于自然界、工程应用及生命科学等领域中[1-2]。颗粒与流体耦合作用的内在机理是颗粒两相流体力学的核心问题。格子Boltzmann方法(lattice Boltzmann method,LBM)是近30年来迅速发展起来的一种流体系统建模和仿真方法[3]。在LBM中,流体被视为由大量的离散粒子组成,这些离散粒子在规则的网格上进行简单的碰撞和迁移。由于其粒子方法的背景,LBM可以非常方便和直观地处理流体内部及流体和固体的相互作用,因而在颗粒两相流[4-5]、多孔介质流[6-7]等方面得到广泛应用,与传统方法相比具有突出优势。
Ladd于1994年首先基于动量交换法提出求解全尺度流固两相流的格子Boltzmann方法[8-9]。在Ladd的方法中,固体颗粒的边界采用格线的中点来表示,由于颗粒内部充满虚拟流体,因此颗粒可以被视为具有质量的壳体,颗粒的受力则通过流体粒子碰撞前后的动量变化进行计算。Aidun等首先提出了不使用颗粒内部虚拟流体的方法[10],该方法完全消除了Ladd方法中流固密度比的限制,但颗粒运动过程中,一些新的流体和固体节点不断产生和消失,因此局部质量和动量守恒难以得到保证。Qi[11]基于Ladd的壳模型,在计算流固相互作用时仅考虑颗粒外部流体的影响,得到了满足局部质量守恒的方法。后续的研究对Ladd的模型不断进行改进,使得模型更好地满足Galileo不变性[12-13],并且引入曲面边界的处理方法[5, 14-17],从而提升了边界反弹格式的精度,使LBM在颗粒多相流问题的研究上得到了广泛应用[18-19]。以上的研究大多基于单个或少量几个颗粒,而实际颗粒两相流中,颗粒的数量巨大,全解析模拟的计算量巨大,因而对实际的颗粒-流体系统进行全解析的数值模拟非常困难。随着计算机并行计算技术的发展,构建颗粒两相流仿真平台是目前并行计算领域的重要热点研究课题之一,通过高性能计算的相关技术提升颗粒两相流计算效率具有重大意义。
实现并行计算的平台主要分为高性能集群计算机、GPU等。其中,基于集群计算机的并行算法主要有MPI和OpenMP两种。MPI是一种消息传递编程模式,其实现关键在于正确地进行消息传递,它的编程模式复杂,需要分析和合理地划分计算程序,此外还要考虑通信延迟和负载不平衡两大问题。在OpenMP平台上,并行线程的创建、同步、负载平衡和销毁工作都是自动完成,从而为编写多线程并行计算程序提供了一种简便方法。
由于LBM模拟主要分为碰撞与迁移两个过程,因此适合采用并行计算。诸多研究人员对LBM的并行性能进行了研究,设计了高扩展性、高效率的并行算法。Pan等[20]在不同并行计算平台上比较区域划分方法的性能,并利用D3Q15模型模拟了单相和多相流在多孔介质中的流动。Velivelli等[21]利用CPU缓存将计算区域分块循环计算,提高了计算效率。Schepke等[22]采用块划分策略对双松弛因子LBM模型进行并行性能分析,该方法将每个进程都分配到整个计算域中的一个子计算域,不同子计算域之间进行数据传递。2010年,Vidal等[23]提出一种负载均衡且具有良好并行效率的并行LBM,该方法在128个计算核上获得近40%的加速效率。Stratford等[24]基于MPI研究了颗粒两相流的并行计算的实现,并对高浓度的颗粒两相流问题进行仿真。Günther等[25]在Shan-Chen两相流模型的基础上,引入颗粒的作用,构建颗粒三相流模型,并利用MPI并行思路,对颗粒稳定性乳液的稳定问题开展研究。
已有的LBM并行计算多针对单相流体,对于颗粒多相流的研究并不多见。而且,已有的少量颗粒多相流并行计算的报道中,并没有对并行效率及并行优化设计进行详细讨论。本文以尽量提高并行加速比为目标,采用MPI+OpenMP混合编程模式,对颗粒两相流计算中的不同环节使用不同的并行策略,提出了一种能适用于大量颗粒的基于LBM并行计算的三维颗粒两相流算法,并在清华大学“探索100”百万亿次集群计算机上对并行算法的效率及扩展性进行运行测试。
1 LBM模型LBM是一种基于介观模拟尺度的计算流体动力学方法,其中多松弛因子(multiple relaxation time, MRT)碰撞子可以提高模型的数值稳定性[26-27]。多松弛因子格子Boltzmann(LB-MRT)方程定义为[28]
$\begin{array}{*{20}{c}}{{f_\alpha }\left( {\mathit{\boldsymbol{x}} + {\mathit{\boldsymbol{c}}_\alpha }{\delta _t}, t + {\delta _t}} \right) = {f_\alpha }(\mathit{\boldsymbol{x}}, t) - {{\left( {{\mathit{\boldsymbol{M}}^{ - 1}}\mathit{\boldsymbol{SM}}} \right)}_{\alpha \beta }} \cdot }\\{\left[ {{f_\beta }(\mathit{\boldsymbol{x}}, t) - f_\beta ^{{\rm{eq}}}(\mathit{\boldsymbol{x}}, t)} \right] + {\delta _t}{F_\alpha }.}\end{array}$ (1)
式中:下标α表示离散方向,t为时间,δt为单位时间,Fα是速度空间的外力表示项,M是一个正交的转换矩阵,松弛矩阵S由多个松弛时间构成。流体的宏观速度u和密度ρ可以通过式(2)求解:
$\mathit{\boldsymbol{u}} = \sum\limits_i {{c_i}} {f_i}, \rho = \sum\limits_i {{f_i}} .$ (2)
本文采用三维D3Q19格子模型,19个离散速度方向如下:
${\mathit{\boldsymbol{c}}_i} = \left\{ {\begin{array}{*{20}{l}}{(0, 0, 0)c, }&{i = 0};\\{( \pm 1, 0, 0)c, (0, \pm 1, 0)c, (0, 0, \pm 1)c, }&{i = 1, \cdots 6};\\{( \pm 1, \pm 1, 0)c, ( \pm 1, 0, \pm 1)c, (0, \pm 1, \pm 1)c, }&{i = 7, \cdots 18}.\end{array}} \right.$ (3)
c=δx/δt=1, δx为单位网格长度。平衡态分布函数定义为
$f_i^{{\rm{eq}}} = {w_i}\rho \left( {1 + \frac{{{c_{i\alpha }}{u_\alpha }}}{{c_{\rm{s}}^{\rm{2}}}} + \frac{{{u_\alpha }{u_\beta }\left( {{c_{i\alpha }}{c_{i\beta }} - c_{\rm{s}}^2{\delta _{\alpha \beta }}} \right)}}{{2c_{\rm{s}}^4}}} \right).$ (4)
式中: ${c_{\rm{s}}} = c/\sqrt 3 $为格子声速,i=0, 1, … 18。
${w_i} = \left\{ {\begin{array}{*{20}{l}}{\frac{1}{3}, }&{i = 0};\\{\frac{1}{{18}}, }&{i = 1, 2, \cdots , 6};\\{\frac{1}{{36}}, }&{i = 7, 8, \cdots , 18}.\end{array}} \right.$
对于颗粒边界的无滑移条件,采用Bouzidi等提出的反弹与插值相结合的曲面边界处理方法[17]。为了满足Galileo不变性,采用修正的动量交换法[12]。固体颗粒受到流体作用力Fp及转动力矩Tp分别为:
$\begin{array}{*{20}{c}}{{\mathit{\boldsymbol{F}}_p} = \sum\limits_b {\sum\limits_i {\left[ {\left( {{c_{\bar i}} - {\mathit{\boldsymbol{u}}_w}} \right){f_{\bar i}}\left( {{x_{\rm{f}}}, t + {\rm{ \mathsf{ δ} }}t} \right) - } \right.} } }\\{\left. {\quad \quad \quad \quad \left( {{c_i} - {\mathit{\boldsymbol{u}}_{\rm{w}}}} \right){f_i}\left( {{x_{\rm{f}}}, t} \right)} \right], }\\{{\mathit{\boldsymbol{T}}_p} = \sum\limits_h {\sum\limits_i {\left[ {\left( {{c_{\bar i}} - {\mathit{\boldsymbol{u}}_{\rm{w}}}} \right) \cdot } \right.} } }\end{array}$ (5)
$\left. {{f_{\bar i}}\left( {{x_{\rm{f}}}, t + {\rm{ \mathsf{ δ} }}t} \right) - \left( {{c_i} - {\mathit{\boldsymbol{u}}_{\rm{w}}}} \right){f_i}\left( {{x_{\rm{f}}}, t} \right)} \right] \times \left( {{\mathit{\boldsymbol{x}}_{\rm{w}}} - {\mathit{\boldsymbol{x}}_{\rm{s}}}} \right).$ (6)
其中:uw为颗粒边界节点的速度,xw为颗粒边界节点的位置,xs为颗粒形心坐标;下标i为格子方向,i为格子反方向。根据Newton第二定律,颗粒运动控制方程为:
${M_{\rm{p}}}\frac{{{\rm{d}}{\mathit{\boldsymbol{u}}_{\rm{p}}}}}{{{\rm{d}}t}} = {\mathit{\boldsymbol{F}}_{\rm{p}}} - {M_{\rm{p}}}\left( {1 - \frac{{{\rho _{\rm{i}}}}}{{{\rho _{\rm{p}}}}}} \right)\mathit{\boldsymbol{g}}, {I_{\rm{p}}}\frac{{{\rm{d}}{\mathit{\pmb{Φ}}_{\rm{p}}}}}{{{\rm{d}}t}} = {\mathit{\boldsymbol{T}}_{\rm{p}}}.$ (7)
其中:MpupρpIpΦp分别为颗粒质量、运动速度、密度、转动惯量以及角速度,ρf为流体密度,g为重力加速度。
在基于网格的流固两相流直接模拟中,颗粒之间碰撞是一个需要处理的问题,本文采用Nguyen和Ladd的润滑力模型[29]。当颗粒移动时,颗粒内部的固体节点转变为流体节点,新流体节点的分布函数的重建采用平均外推的方法[30]
2 并行算法设计本文使用MPI+OpenMP混合编程模式,MPI负责分布式节点之间的通信,OpenMP实现在单个节点内细粒化的并行计算。具体实现如下:对整个计算区域进行合理划分,将每个子区域分配给单独的计算节点,建立单个MPI进程进行计算,在单个MPI进程中调用OpenMP,充分利用节点中的计算核,实现线程级别的并行计算,从而提高计算效率。以清华大学“探索100”百万亿次集群计算机为例,其单个节点配置2个CPU(Intel Xeon X5670,6核处理器),设计的混合模式如图 1所示。
图 1 MPI+OpenMP混合编程模式
图选项





MPI并行算法是基于进程间消息传递的算法,消息传递是MPI并行算法实现的关键。根据计算区域的特点以及计算节点的数量,对整个计算区域进行合理划分,形成不同的子区域,并在其边界处虚拟一层网格节点,用于存储相邻子区域边界节点的信息,进而构成完整的计算区域。相邻区域间流体节点信息的传递如图 2所示。对于颗粒的计算,由于颗粒之间存在相互作用,本模型借鉴了分子动力学模拟中的求解思路[24, 31],将单个子区域再次划分为更小的子域(以下称为颗粒子域),通过颗粒子域大小的合理选择使得颗粒只会与相邻颗粒子域及自身所在子域内的颗粒发生相互作用,从而将求解颗粒相互作用的计算规模从O(N2)降低到O(N),N为颗粒的数量。同时,在子区域边沿构建一层虚拟的颗粒子域,用于存储相邻颗粒子域中的颗粒信息(速度、位置、半径等)。
图 2 计算区域划分及信息通信
图选项





本模型在MPI进程中利用OpenMP进行线程级别的并行计算。已有的LBM并行计算大多针对单相流体,本文根据颗粒两相流问题的特点,对程序的不同环节采用其适用的OpenMP并行策略,实现并行效率的进一步优化。具体算法如下:1)将所有的存在流-固耦合作用的节点单独取出建立链表,在分析流-固耦合作用时使用OpenMP进行多线程计算;2)将计算子域中的所有颗粒形成链表,在求解颗粒速度等操作时使用OpenMP并行计算;3)流体节点重建与销毁等操作需要遍历所有的颗粒子域,采用OpenMP并行加快遍历速度。
综上所述,本模型将颗粒计算的大部分环节进行了OpenMP并行设计,整个颗粒两相流并行计算的程序框架如图 3所示。其中,形成颗粒链表结构需要根据颗粒位置进行顺序链接,此外颗粒之间相互作用存在前后两个颗粒相互作用关系,这两部分很难借助并行计算加速,并且其计算量不大,因此未采用OpenMP并行加速。
图 3 程序计算框图
图选项





3 计算结果与讨论为验证模型计算的准确性,以单个颗粒沉降为例进行计算,并与文[32]中实验结果进行对比。如图 4所示,计算区域为10 cm×10 cm×6 cm,颗粒直径为Dp=3.0 cm,颗粒密度ρp=1.12 g/cm3,颗粒初始位于(5 cm, 5 cm, 12.75 cm)。选择4组不同流体密度ρf(g/cm3)和黏度μ[g/(cm·s)]的颗粒进行计算。
图 4 三维颗粒沉降示意图
图选项





Case 1: 0.97 g/cm3, 3.73 g/(cm·s);
Case 2: 0.965 g/cm3, 2.12 g/(cm·s);
Case 3: 0.962 g/cm3, 1.13 g/(cm·s);
Case 4: 0.96 g/cm3, 0.58 g/(cm·s)。
在LBM中选择尺寸为200×200×320的计算网格,松弛因子τ=0.6,并采用固壁边界。如图 5所示,仿真计算结果与实验结果[32]基本吻合。
图 5 仿真计算与实验结果[32]对比
图选项





本文进一步以多颗粒沉降问题为例测试所提出的并行算法。选择尺寸为1.5 cm×1.5 cm×3.0 cm的微通道,颗粒直径Dp=0.12 cm,颗粒密度ρp=1.15 g/cm3,流体参数同上。LBM网格选择为150×150×300,XYZ方向均采用周期性边界,对颗粒数量N分别为125、432、1 024的3种算例进行计算。对于N=432和N=1 024,由于颗粒较多,颗粒初始位置设为线性阵列排布以避免初始化时产生颗粒干涉。以上3个算例分别采用串行以及处理器核数p分别为12、48、96、144、216进行计算。由于单个节点具有12个处理器,对计算域按照XYZ分别进行1×1×1、1×2×2、2×2×2、2×2×3、2×3×3的均匀划分,然后对每个子区域单独分配一个节点。计算1 000个子步。图 6为计算过程中某一时刻的颗粒分布及流场流线图。
图 6 (网络版彩图)颗粒分布及流场流线示例
图选项





本文采用加速比和加速效率来度量模型的并行性能。加速比为同一个任务在单处理器串行运行和多处理器并行运行时执行时间的比率,用来衡量并行系统或程序并行化的性能和效果,其定义为Sp=T1/Tp;派生出的加速效率的定义为Ep=Sp/p。其中:T1为程序单核串行的执行时间,Tp为当有p个处理器时的执行时间。如图 7a所示,并行算法的采用大幅缩短了计算时间,并且可以发现对于不同颗粒浓度的算例,其计算求解时间相差不大。程序并行加速比如图 7b所示,当颗粒达到一定数量之后,颗粒数量对并行效率的影响降低。从图 7c可以看出,对于不同颗粒浓度的情形,加速效率均在0.5之上,说明本文并行算法的加速效果较好。
图 7 并行性能
图选项





同时,由图 7可得,随着处理器核数的增加,程序的加速效率逐渐降低,这是由于计算区域被划分为更多的子区域,相应地产生更多虚拟流体节点和虚拟颗粒子域,从而造成信息通信开销的剧增。以p=216为例,其计算域划分为2×3×3个子区域,虚拟颗粒子域体积即为原来计算域体积的1.23倍。由图 8可知,程序执行时的信息通信时间占比随着核数的增加而增加。此外,程序中部分环节是串行计算,这部分的计算开销不会随着核数的增加而降低。综上原因使得程序的加速效率随着核数的增加而减少,但是图 7c中加速效率与核数之间的关系是随着求解问题的规模而变化的,当对更大规模的问题进行计算时,其加速效率会整体提高,因此需要根据问题规模选择合适的核数。
图 8 程序主要计算环节的时间占比
图选项





图 9所示,程序单次迭代的执行时间与颗粒数量呈小斜率的线性关系。当核数较大时,其斜率几乎为零,表明在增加颗粒数量的同时,其计算量的增加很小甚至可以忽略,证明本文模型与传统的颗粒两相流计算模型相比,具备颗粒数量不敏感的优点,本模型可以对数万级别的颗粒两相流问题进行求解。
图 9 颗粒数量对计算效率的影响
图选项





4 结论本文针对大规模颗粒两相流问题,基于LBM采用MPI+OpenMP混合编程模式,综合利用MPI和OpenMP的优点,机群节点采用MPI并行计算,节点内部采用OpenMP进行细粒化的并行计算,并对程序的不同环节采用其适用的OpenMP并行策略,实现并行效率的进一步优化,最终建立起大规模三维颗粒两相流并行计算模型。经测试,该并行计算模型具有良好的加速比及扩展性,适用于集群计算机和普通多核单机。此外,本模型的计算量具有颗粒数量不敏感的优点,随着颗粒数量的增加,其计算开销只有轻微的增加,因此适用于大规模多颗粒两相流问题的研究。

参考文献
[1] LI Q, LUO K H, KANG Q J, et al. Lattice Boltzmann methods for multiphase flow and phase-change heat transfer[J]. Progress in Energy and Combustion Science, 2016, 52: 62-105. DOI:10.1016/j.pecs.2015.10.001
[2] HARTING J, FRIJTERS S, RAMAIOLI M, et al. Recent advances in the simulation of particle-laden flows[J]. European Physical Journal Special Topics, 2014, 223(11): 2253-2267. DOI:10.1140/epjst/e2014-02262-3
[3] CHEN S Y, DOOLEN G D. Lattice Boltzmann method for fluid flows[J]. Annual Review of Fluid Mechanics, 1998, 30(1): 329-364. DOI:10.1146/annurev.fluid.30.1.329
[4] LI H B, LU X Y, FANG H P, et al. Force evaluations in lattice Boltzmann simulations with moving boundaries in two dimensions[J]. Physical Review E, 2004, 70(2): 026701. DOI:10.1103/PhysRevE.70.026701
[5] GUO Z L, ZHENG C G, SHI B C. An extrapolation method for boundary conditions in lattice Boltzmann method[J]. Physics of Fluids, 2002, 14(6): 2007-2010. DOI:10.1063/1.1471914
[6] KOCH D L, HILL R J. Inertial effects in suspension and porous-media flows[J]. Annual Review of Fluid Mechanics, 2001, 33: 619-647. DOI:10.1146/annurev.fluid.33.1.619
[7] ZHANG X R, JIN L C, NIU X D, et al. Lattice Boltzmann simulation for magnetic fluids in porous medium[C]//12th International Conference on Magnetic Fluids. Amsterdam, Netherlands: Elsevier, 2010, 9: 162-166.
[8] LADD A J C. Numerical simulations of particulate suspensions via a discretized Boltzmann equation. Part 2. Numerical results[J]. Journal of Fluid Mechanics, 1994, 271: 311-339. DOI:10.1017/S0022112094001783
[9] LADD A J C. Numerical simulations of particulate suspensions via a discretized Boltzmann equation. Part 1. Theoretical foundation[J]. Journal of Fluid Mechanics, 1994, 271: 285-309. DOI:10.1017/S0022112094001771
[10] AIDUN C K, LU Y N, DING E J. Direct analysis of particulate suspensions with inertia using the discrete Boltzmann equation[J]. Journal of Fluid Mechanics, 1998, 373: 287-311. DOI:10.1017/S0022112098002493
[11] QI D W. Lattice-Boltzmann simulations of particles in non-zero-Reynolds-number flows[J]. Journal of Fluid Mechanics, 1999, 385: 41-62. DOI:10.1017/S0022112099004401
[12] CHEN Y, CAI Q D, XIA Z H, et al. Momentum-exchange method in lattice Boltzmann simulations of particle-fluid interactions[J]. Physical Review E, 2013, 88: 013303. DOI:10.1103/PhysRevE.88.013303
[13] LORENZ E, CAIAZZO A, HOEKSTRA A G. Corrected momentum exchange method for lattice Boltzmann simulations of suspension flow[J]. Physical Review E, 2009, 79(3): 036705. DOI:10.1103/PhysRevE.79.036705
[14] MEI R W, LUO L S, SHYY W. An accurate curved boundary treatment in the lattice Boltzmann method[J]. Journal of Computational Physics, 1999, 155(2): 307-330.
[15] FILIPPOVA O, H?NEL D. Grid refinement for lattice-BGK models[J]. Journal of Computational Physics, 1998, 147(2): 219-228.
[16] YU D Z, MEI R W, SHYY W. A unified boundary treatment in lattice Boltzmann method[C]//41st Aerospace Sciences Meeting and Exhibit. Reno, USA: AIAA, 2003.
[17] BOUZIDI M, FIRDAOUSS M, LALLEMAND P. Momentum transfer of a Boltzmann-lattice fluid with boundaries[J]. Physics of Fluids, 2001, 13(11): 3452-3459. DOI:10.1063/1.1399290
[18] HU J J, TAO S, GUO Z L. An efficient unified iterative scheme for moving boundaries in lattice Boltzmann method[J]. Computers & Fluids, 2017, 144: 34-43.
[19] TAO S, HU J J, GUO Z L. An investigation on momentum exchange methods and refilling algorithms for lattice Boltzmann simulation of particulate flows[J]. Computers & Fluids, 2016, 133: 1-14.
[20] PAN C X, PRINS J F, MILLER C T. A high-performance lattice Boltzmann implementation to model flow in porous media[J]. Computer Physics Communications, 2004, 158(2): 89-105. DOI:10.1016/j.cpc.2003.12.003
[21] VELIVELLI A C, BRYDEN K M. A cache-efficient implementation of the lattice Boltzmann method for the two-dimensional diffusion equation[J]. Concurrency and Computation:Practice and Experience, 2004, 16(14): 1415-1432. DOI:10.1002/cpe.868
[22] SCHEPKE C, MAILLARD N, NAVAUX P O A. Parallel lattice Boltzmann method with blocked partitioning[J]. International Journal of Parallel Programming, 2009, 37(6): 593-611. DOI:10.1007/s10766-009-0113-x
[23] VIDAL D, ROY R, BERTRAND F. A parallel workload balanced and memory efficient lattice-Boltzmann algorithm with single unit BGK relaxation time for laminar Newtonian flows[J]. Computers & Fluids, 2010, 39(8): 1411-1423.
[24] STRATFORD K, PAGONABARRAGA I. Parallel simulation of particle suspensions with the lattice Boltzmann method[J]. Computers & Mathematics with Applications, 2008, 55(7): 1585-1593.
[25] GüNTHER F, JANOSCHEK F, FRIJTERS S, et al. Lattice Boltzmann simulations of anisotropic particles at liquid interfaces[J]. Computers & Fluids, 2013, 80: 184-189.
[26] LALLEMAND P, LUO L S. Theory of the lattice Boltzmann method:Dispersion, dissipation, isotropy, Galilean invariance, and stability[J]. Physical Review E, 2000, 61(6): 6546-6562. DOI:10.1103/PhysRevE.61.6546
[27] D'HUMIERES D, GINZBURG I, KRAFCZYK M, et al. Multiple-relaxation-time lattice Boltzmann models in 3D[R]. Washington DC, USA: NASA, 2002.
[28] KRüGER T, KUSUMAATMAJA H, KUZMIN H, et al. The lattice Boltzmann method:Principles and practice[M]. Cham, Switzerland: Springer, 2017.
[29] NGUYEN N Q, LADD A J C. Lubrication corrections for lattice-Boltzmann simulations of particle suspensions[J]. Physical Review E, 2002, 66(4): 046708. DOI:10.1103/PhysRevE.66.046708
[30] PENG C, TENG Y H, HWANG B, et al. Implementation issues and benchmarking of lattice Boltzmann method for moving rigid particle simulations in a viscous flow[J]. Computers & Mathematics with Applications, 2016, 72(2): 349-374.
[31] ALLEN M P, TILDESLEY D J. Computer simulation of liquids[M]. Oxford, UK: Oxford University Press, 1987.
[32] TEN CATE A, NIEUWSTAD C H, DERKSEN J J, et al. Particle imaging velocimetry experiments and lattice-Boltzmann simulations on a single sphere settling under gravity[J]. Physics of Fluids, 2002, 14(11): 4012-4025. DOI:10.1063/1.1512918

相关话题/计算 程序

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 遥感卫星对区域目标可见性的快速计算方法
    鄂智博,李俊峰清华大学航天航空学院,北京100084收稿日期:2019-02-03基金项目:自然科学基金面上项目(11672146)作者简介:鄂智博(1994-),男,博士研究生通信作者:李俊峰,教授,E-mail:lijunf@tsinghua.edu.cn摘要:遥感卫星对区域目标可见时间窗口的快 ...
    本站小编 Free考研考试 2020-04-15
  • 考虑全截面剪切的钢闸门宽翼工字形深梁解析计算方法
    吴思远1,2,王正中31.同济大学土木工程防灾国家重点实验室,上海200092;2.同济大学结构工程与防灾研究所,上海200092;3.西北农林科技大学旱区寒区水工程安全研究中心,杨凌712100收稿日期:2018-06-19基金项目:国家自然科学基金项目(51179164);国家科技支撑计划项目( ...
    本站小编 Free考研考试 2020-04-15
  • 基于改进GN算法的程序控制流图划分方法
    马锐,高浩然,窦伯文,王夏菁,胡昌振北京理工大学计算机学院,软件安全工程技术北京市重点实验室,北京100081收稿日期:2018-08-24基金项目:国家重点研发计划项目(2016QY07X1404)作者简介:马锐(1972-),女,副教授。E-mail:mary@bit.edu.cn摘要:针对控制 ...
    本站小编 Free考研考试 2020-04-15
  • 面向大规模时序图SimRank的计算方法
    苗壮,袁野,乔百友,王一舒,马玉亮,王国仁东北大学计算机科学与工程学院,沈阳110819收稿日期:2018-07-21基金项目:国家重点研发计划资助项目(2016YFC1401900);国家自然科学基金资助项目(61572119,61622202)作者简介:苗壮(1994-),男,硕士研究生通信作者 ...
    本站小编 Free考研考试 2020-04-15
  • 高温气冷堆核电站计算机化规程流程的建模和验证
    徐晓娜,黄晓津清华大学核能与新能源技术研究院,先进核能技术协同创新中心,先进反应堆工程与安全教育部重点实验室,北京100084收稿日期:2017-12-14基金项目:国家重大专项经费资助项目(ZX06901)作者简介:徐晓娜(1987-),女,博士研究生通信作者:黄晓津,研究员,Email:huan ...
    本站小编 Free考研考试 2020-04-15
  • 具有高表达能力的新型可信计算信任链的设计
    龙宇1,王辛2,徐贤3,洪璇41.上海交通大学计算机科学与工程系,上海200240;2.国防科技大学计算机学院,长沙410073;3.华东理工大学计算机科学与工程系,上海200237;4.上海师范大学计算机系,上海200234收稿日期:2017-08-23基金项目:国家自然科学基金资助项目(6157 ...
    本站小编 Free考研考试 2020-04-15
  • 一种基于角色和属性的云计算数据访问控制模型
    王于丁,杨家海清华大学网络科学与网络空间研究院,北京100084收稿日期:2017-05-11基金项目:国家自然科学基金资助项目(61432009,61462009);教育部博士学科专项基金资助项目(20130002110058);国家“八六三”高技术项目(2015AA015601)作者简介:王于丁 ...
    本站小编 Free考研考试 2020-04-15
  • 二进制程序中的use-after-free漏洞检测技术
    韩心慧1,魏爽1,叶佳奕1,张超2,叶志远11.北京大学计算机科学技术研究所,北京100080;2.清华大学网络科学与网络空间研究院,北京100084收稿日期:2016-12-19基金项目:国家自然科学基金资助项目(61402125)作者简介:韩心慧(1969-),男,高级工程师。E-mail:ha ...
    本站小编 Free考研考试 2020-04-15
  • 简单管路中水击的类型偏误分析及解析计算
    张明1,郑双凌1,马吉明1,齐文彪21.清华大学水沙科学与水利水电工程国家重点实验室,北京100084;2.吉林省水利水电勘测设计研究院,长春130021收稿日期:2017-02-16基金项目:国家自然科学基金面上资助项目(51379099);清华大学水沙科学与水利水电工程国家重点实验室开放基金资助 ...
    本站小编 Free考研考试 2020-04-15
  • CFD-DEM耦合计算中的体积分数算法
    刘德天,傅旭东,王光谦清华大学水沙科学与水利水电工程国家重点实验室,北京100084收稿日期:2016-12-05基金项目:国家自然科学基金资助项目(51525901,51379100);清华大学自主科研计划课题(2014Z22066)作者简介:刘德天(1989-),男,博士研究生通信作者:傅旭东, ...
    本站小编 Free考研考试 2020-04-15