In this paper, we present a fast divergence-free spectral algorithm (FDSA) for the curl-curl problem. Divergence-free bases in two and three dimensions are constructed by using the generalized Jacobi polynomials. An accurate spectral method with exact preservation of the divergence-free constraint point-wisely is then proposed, and its corresponding error estimate is established. We then present a highly efficient solution algorithm based on a combination of matrix-free preconditioned Krylov subspace iterative method and a fully diagonalizable auxiliary problem, which is derived from the spectral discretisations of generalized eigenvalue problems of Laplace and biharmonic operators. We rigorously prove that the dimensions of the invariant subspace of the preconditioned linear system resulting from the divergence-free spectral method with respect to the dominate eigenvalue $1$, are $(N-3)^2$ and $2(N-3)^3$ for two- and three-dimensional problems with $(N-1)^2$ and $2(N-1)^3$ unknowns, respectively. Thus, the proposed method usually takes only several iterations to converge, and astonishingly, as the problem size (polynomial order) increases, the number of iterations will decrease, even for highly indefinite system and oscillatory solutions. As a result, the computational cost of the solution algorithm is only a small multiple of $N^3$ and $N^4$ floating number operations for 2D and 3D problems, respectively. Plenty of numerical examples for solving the curl-curl problem with both constant and variable coefficients in two and three dimensions are presented to demonstrate the accuracy and efficiency of the proposed method.
翻译:本文提出了一种快速无散谱算法(FDSA)用于求解旋度-旋度问题。利用广义雅可比多项式构造了二维和三维的无散基函数,进而提出了一种精确保持无散约束逐点特性的谱方法,并建立了相应的误差估计。我们进一步提出了一种高效求解算法,该算法结合了无矩阵预处理Krylov子空间迭代方法和完全可对角化的辅助问题,其中辅助问题源自拉普拉斯算子和双调和算子广义特征值问题的谱离散化。我们严格证明,对于二维和三维问题,未知量个数分别为$(N-1)^2$和$2(N-1)^3$时,由无散谱方法所得预处理线性系统关于主特征值$1$的不变子空间维数分别为$(N-3)^2$和$2(N-3)^3$。因此,所提方法通常仅需数次迭代即可收敛,且令人惊奇的是,随着问题规模(多项式阶数)增大,迭代次数反而减少——即使对于高度不定系统和振荡解也是如此。最终,该求解算法在二维和三维问题中的计算成本分别仅为$N^3$和$N^4$量级的浮点运算次数。大量二维和三维常系数与变系数旋度-旋度问题的数值算例验证了所提方法的精度与效率。