Page 10 - 《爆炸与冲击》2026年第2期
P. 10
第 46 卷 寿列枫,等: 大尺度复杂环境下的强爆炸冲击波传播数值模拟技术研究 第 2 期
(1) 任意 2 个拥有共边(棱或面) 的单元层级最多相差一级;
(2) 任意 2 个单元的共边(棱或面)单元最多有一个可以被加密。
Layer 1
Layer 2
Layer 1
Layer 2
Layer 2 Layer 3
Layer 3
Hilbert curve
(a) Adaptive mesh refinement (b) Load rebanlance
图 2 网格自适应的悬点情况及解决策略
Fig. 2 Hanging nodes in adaptive mesh refinement and solution strategy
此外,对于带悬点的单元,为确保有限体积方法的守恒性和稳定性,需要严格处理悬点处的变量赋
值和通量计算。如图 2(a) 所示,假设左上角 layer 1 层级的单元守恒量为 U ,与其相邻的右侧 layer 2 层
L
级的两个单元的守恒量分别为 U 和 1 U ,具体实现步骤如下:(1) 悬点赋值:首先基于 2.1.2 节提出的高
R
R2
阶重构算法得到左侧 layer 1 层级单元内的梯度(基于 MUSCL 和 Thinc 的优化算法),再基于单元平均值
和梯度计算得到悬点的物理量,有效避免非物理震荡,确保数值解在跨层级边界处的单调性;(2) 数值通
量计算,当细网格覆盖粗网格边界面时,将细网格多个面的通量积分求和,赋给粗网格对应面:
N Å ã N Å ã
∑ A R,i ∑ A R,i
F L = F R,i · = F HLLC (U L ,U R )· (26)
A L A L
i=1 i=1
式中:N=2 表示单元边界上细网格的数量,F 表示左侧单元的数值通量,F 表示右侧单元每个细网格的
L
i
R,
数值通量,A 和 L A 表示左、右单元边界的面积,且满足 A =A +A 。
i
L
R,2
R,1
R,
2.2.2 并行计算
针对国产超算系统的分布式架构,基于经典的区域分解框架,构建了 MPI、OpenMP 的两级混合并
行技术。其中,节点内部使用 OpenMP 实现共享内存式的多线程并行,节点之间采用 MPI 模式的分布式
并行(如图 3 所示),以及基于序列化技术的动态负载平衡策略(图 2(b) 所示),实现复杂条件下三维强毁
伤环境的超大规模、高效并行数值模拟。
MPI communication
Node 1 Node 2 Node n
#1 #2 ... #n #1 #2 ... #n #1 #2 ... #n
OpenMP thread OpenMP thread ... OpenMP thread
... ...
T 1 T 2 ... T n T 1 T 2 T n T 1 T 2 T n
图 3 MPI+OpenMP 混合并行编程模式
Fig. 3 Hybrid parallel programming model of MPI+OpenMP
021001-7

