计算效率低是当前制约数值流形法应用于大型实际工程模拟的瓶颈问题,并行计算作为一种加速计算技术,能有效地提高数值流形法的计算效率。在串行算法基础上,系统研究了基于分布式内存编程模式的数值流形法覆盖系统和流形单元并行生成算法。首先,在分析并行算法与串行算法不同点和难点的基础上,采用区域分解算法实现并行任务分配,并提出覆盖系统并行生成主要步骤。采用临时规则粗网格形成负载均衡的子区域,提出相应子区域生成算法。其次,在深入分析数值流形法数学覆盖、物理覆盖和流形单元之间关系基础上,探讨并行算法中子区域覆盖系统生成的关键技术,以及物理覆盖和流形单元编号规则。然后,针对并行算法提出了建立覆盖系统界面信息算法,为数值流形法并行计算过程中通讯和数据交换提供支持。最后,在覆盖系统并行生成算法基础上,采用C++面向对象编程技术开发了相应程序。2个算例结果验证了算法正确性和有效性,为后续并行模拟提供了前处理器。
Abstract
Computational time of numerical manifold method is a bottleneck problem in simulating large-scale practical engineering problems. Parallel computing is an effective accelerating technique. Based on the serial algorithm, the parallel cover system and the manifold element generation algorithm based on the distributed memory programming mode are studied. Compared with the serial algorithm, differences and difficulties of parallel algorithm are firstly described. The domain decomposition algorithm is used to assign parallel tasks, and the main steps of parallel algorithm of cover system are proposed. The generation of sub-domain is formed by using a temporary coarse grid taking load balancing into consideration, and the corresponding sub-domain generation algorithm is proposed. In subsequence, based on the analysis of the relationship among mathematical covers, physical covers and manifold elements of numerical manifold method, the essential techniques in parallel algorithm, as well as physical coverage and manifold element numbering rules are discussed. Then the algorithm for establishing the interface information is proposed for the parallel algorithm, which provides necessary information for data exchange in the parallel computing process of the numerical manifold method. Finally, based on the parallel generation algorithm of cover system, a code was developed using C++ and object-oriented programming technology. Two numerical examples verify the parallel algorithm, which provides a preprocessor for subsequent parallel simulation.
关键词
数值流形法 /
覆盖系统 /
并行计算 /
区域分解算法 /
流形单元 /
子区域 /
界面单元
Key words
numerical manifold method /
cover system /
parallel computing /
domain decomposition algorithm /
manifold element /
sub-domain /
interface element
{{custom_sec.title}}
{{custom_sec.title}}
{{custom_sec.content}}
参考文献
[1] SHI G H. Manifold Method[C]//Proceedings of the First International Forum on DDA and Simulations of Discontinuous Media. Berkeley, California, USA, June 12-14, 1996: 52-204.
[2] SHI G H.Manifold Method of Material Analysis[C]//Transactions of the 9th Army Conf. on Applied Mathematics and Computing, Minneapolis, Minnesota, USA, June 18-21,1991.
[3] 焦 健, 乔春生, 徐干成. 开挖模拟在数值流形方法中的实现[J]. 岩土力学, 2010, 31(9): 2951-2957.
[4] 姜清辉,王书法. 锚固岩体的三维数值流形方法. 岩石力学与工程学报, 2006, 25(3): 528-532.
[5] 朱爱军, 邓安福, 曾祥勇. 数值流形方法对岩土工程开挖卸荷问题的模拟[J]. 岩土力学, 2006, 27(2): 179-183.
[6] TAL Y, HATZOR Y H, FENG X T. An Improved Numerical Manifold Method for Simulation of Sequential Excavation in Fractured Rocks[J]. International Journal of Rock Mechanics & Mining Sciences, 2014, 65(1): 116-128.
[7] 董志宏, 邬爱清, 丁秀丽. 数值流形方法中的锚固支护模拟及初步应用[J]. 岩石力学与工程学报, 2005, 24(20): 3754-3760.
[8] 曹文贵,速宝玉.岩体锚固支护的数值流形方法模拟及其应用[J].岩土工程学报,2001,23(5):581-583.
[9] 王水林, 葛修润. 流形方法在模拟裂纹扩展中的应用[J]. 岩石力学与工程学报, 1997, 16(5): 405-410.
[10]杨石扣, 张继勋, 任旭华, 等. 三维数值流形法在裂纹扩展中的应用研究[J]. 岩土力学, 2016, 37(10): 3017-3025.
[11]石根华, 裴觉民. 数值流形方法与非连续变形分析[M]. 北京: 清华大学出版社, 1997.
[12]杨天鸿, 张春明, 顾晓薇, 等. 岩土力学并行数值计算实验教学环境优化研究[J]. 现代计算机:专业版, 2015(11): 26-31.
[13]张永彬, 唐春安, 贾敬辉, 等. OpenMP 在岩石动力并行计算中的应用[J]. 武汉理工大学学报, 2013, 35(2):97-101.
[14]张友良, 谭 飞, 张礼仁, 等. 岩土工程亿级单元有限元模型可扩展并行计算[J]. 岩土力学, 2016, 37(11): 3309-3316.
[15]张友良, 冯夏庭, 茹忠亮. 基于区域分解算法的岩土大规模高性能并行有限元系统研究[J]. 岩石力学与工程学报, 2004, 23(21): 3636-3641.
[16]王文昌. 数值流形法的前后处理与并行计算方法研究[D]. 武汉: 长江科学院, 2011.
[17]林绍忠, 许合伟. 多色SSOR-PCG的MPI编程实现[J]. 长江科学院院报, 2013, 30(5): 82-85.
[18]曹文贵, 唐学军. 岩石块体数值流形分析网格形成方法之研究[J]. 土木工程学报, 2003(2): 81-85.
[19]蔡永昌, 朱合华, 夏才初. 流形方法覆盖系统自动生成算法[J]. 同济大学学报(自然科学版), 2004, 32(3): 585.
[20]武 杰, 蔡永昌. 基于四边形网格的流形方法覆盖系统生成算法[J]. 同济大学学报(自然科学版), 2013, 41(5): 641-645.
[21]陈 刚, 刘佑荣. 流形元覆盖系统的有向图遍历生成算法研究[J]. 岩石力学与工程学报, 2003, 22(5): 711.
[22]李海枫, 张国新, 石根华. 流形切割及有限元网格覆盖下的三维流形单元生成[J]. 岩石力学与工程学报, 2010, 29(4): 731.
[23]杨石扣,任旭华,张继勋.基于布尔交运算的三维流形单元生成研究[J].岩土力学,2016,37(9):2706-2711.
[24]韩有民, 罗先启, 王水林, 等. 裂纹扩展时物理覆盖与流形单元的生成算法[J]. 岩土工程学报, 2005, 27(6): 662.
[25]温 鑫, 王 颖. 数值流形方法物理覆盖的自动生成[J]. 计算机仿真, 2009, 26(5): 107.
[26]张大林, 栾茂田, 杨 庆, 等. 数值流形方法的网格自动剖分技术及其数值方法[J]. 岩石力学与工程学报, 2004, 23(1):1836.
[27]朱爱军, 邓安福, 颜昌武, 等. 岩体材料物理网格对流形元覆盖系统形成的影响[J]. 岩土力学, 2004, 25(2): 1933.
[28]苏海东,付 志,颉志强.基于任意形状网格和精确几何边界的数值计算[J].长江科学院院报,2020,37(7):167-174.
[29]KARYPIS G, KUMAR V. A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs[J]. SIAM Journal on Scientific Computing (SISC), 2006, 20(1): 359-392.
基金
海南省重大科技计划项目(ZDKJ201803);国家自然科学基金地区科学基金项目(51868017)