基于格子Boltzmann方法模拟三维地下水流动及其GPU并行化

来源 :中国地质大学(北京) | 被引量 : 0次 | 上传用户:lyh555
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
格子Boltzmann方法是一种介观方法,可以对大部分领域的偏微分方程进行求解,它弥补了传统宏观方法无法展示流体内部微观细节,且需要构造大规模线性方程组才能求解以及微观方法模拟的尺度很小,在如今的计算技术下难以实现的不足。另外,格子Boltzmann方法还具有算法简单、计算网格容易生成、边界计算简单、天然并行性等特点。格子Boltzmann方法常用的模型有单松弛(SRT或LBGK)模型和多松弛(MRT)模型,与单松弛模型简单地模拟单一松弛时间的计算过程不同,多松弛模型具有多个松弛时间,可以模拟不同扩散方向速度不同以及各向异性等情况。在多松弛模型的计算中由于涉及一定的矩阵操作,与单松弛模型相比,在计算量上有一定程度的增加,但由于多松弛模型的高收敛性弥补了计算量增大这一缺点。基于格子Boltzmann方法的原理及其常用的模型,我们可以求解许多偏微分方程。本文应用格子Boltzmann方法的两种模型,对三维地下水流动过程进行模拟,结果显示了格子Boltzmann方法无论用哪种模型都可以很好地模拟出三维地下水流动过程,且误差与理论值相差很小。本文还对这两种模型的实验结果进行了对比,多松弛模型在收敛性以及计算时间上都比单松弛模型具有较大的优势,且多松弛模型由于多个松弛时间具有更广的应用范围。为进一步加快计算速度,本文使用CUDA架构实现了多松弛格子Boltzmann方法在GPU上的并行。我们通过设置GPU中每个线程处理一个网格,这样所有的线程同时执行每个格点的计算就实现了格子Boltzmann方法模拟三维地下水流动问题在GPU上的并行。实验显示,GPU上的模拟运算速度与CPU相比有明显的提高,且随着网格规模的增大,GPU的加速比呈现一个增大的趋势。为了满足网格不断细化所增加的格点数量,本文使用OpenMP这种共享内存式并行架构实现CPU中多个核心的并行,再通过每个CPU核心调用一块GPU卡,实现了多个GPU的并行,从而扩展了同时进行网格计算的线程数量,提高了计算速度。实验结果表明,处理同一网格规模时,GPU的数量越多,GPU表现出越大的加速比,而随着网格规模的增大,GPU的加速比也在随之增大。
其他文献
对于可再生能源发电,电网电压稳定性是一个亟需解决的问题。电气弹簧(ES)是一种适用于稳定智能电网电压的新型技术。对比研究了传统机械弹簧与ES的物理模型,阐述了ES的工作原
<正>党的十八大以来,习近平总书记在阐发治国理政新理念新思想新战略的过程中,始终强调要坚持以人民为中心的发展思想。十八届五中全会创造性地提出了"创新、协调、绿色、开
【摘 要】在深化教育教学改革的今天,我们要对学生练习进行优化,以提高学生的语文素养和教学质量。在优化小学语文练习时,教师要选择那些最适当教学内容、最适量语文练习能开发学生智力和培养学生能力的题目,达到养成学生勤于思考、认真做题、独立学习的良好习惯之目的。  【关键词】语文教改 优化练习 几点做法  语文练习的目的,在于帮助学生复习、深化和综合运用所学语文知识,并形成技能技巧,提高听说读写的能力。教
组合式微型升降机由升降机底座、起重架、起重架上顶支撑、起重架下拉支撑、伸缩式起重臂、十字形起重臂定位架及卷扬机组成,起重架的下端及卷扬机固定在升降机底座上,起重架上
受到多种群协作思想以及平均信息PSO的信息共享机制的启发,提出了一种平均信息差分演化算法AIDE.与传统的DE相比较AIDE具有以下两方面的优势,首先,AIDE的变异算子独特,个体的
在溶剂热条件下,将2,4-二氯苯甲酸(2,4-HDCB)与Sm(NO3)3&#183;6H2O和NaOH反应合成了一个稀土-有机配位聚合物(CP)[Sm(2,4-DCB)3(CH3CH2OH)2](1)。当引入第二配体4,4′-联吡啶