The $hp$-adaptive finite element method (FEM) - where one independently chooses the mesh size ($h$) and polynomial degree ($p$) to be used on each cell - has long been known to have better theoretical convergence properties than either $h$- or $p$-adaptive methods alone. However, it is not widely used, owing at least in parts to the difficulty of the underlying algorithms and the lack of widely usable implementations. This is particularly true when used with continuous finite elements. Herein, we discuss algorithms that are necessary for a comprehensive and generic implementation of $hp$-adaptive finite element methods on distributed-memory, parallel machines. In particular, we will present a multi-stage algorithm for the unique enumeration of degrees of freedom (DoFs) suitable for continuous finite element spaces, describe considerations for weighted load balancing, and discuss the transfer of variable size data between processes. We illustrate the performance of our algorithms with numerical examples, and demonstrate that they scale reasonably up to at least 16,384 Message Passing Interface (MPI) processes. We provide a reference implementation of our algorithms as part of the open-source library deal.II.
翻译:$hp$自适应有限元方法(FEM)——其中独立选择每个单元上的网格尺寸($h$)和多项式阶次($p$)——长期以来被认为比单独使用$h$自适应或$p$自适应方法具有更好的理论收敛特性。然而,由于底层算法的复杂性和缺乏广泛可用的实现方式,该方法并未被广泛应用,尤其是在连续有限元中。本文讨论了在分布式内存并行机器上实现通用且全面的$hp$自适应有限元方法所必需的算法。具体而言,我们将提出一种适用于连续有限元空间自由度(DoFs)唯一枚举的多阶段算法,描述加权负载均衡的考虑因素,并讨论进程间可变大小数据的传输。通过数值示例展示算法的性能,证明其可合理扩展至至少16,384个消息传递接口(MPI)进程。我们将算法的参考实现作为开源库deal.II的一部分提供。