Abstract
We develop a fully discrete fast Fourier–Galerkin method for solving a boundary integral equation for the biharmonic equation by introducing a quadrature scheme for computing the integrals of non-smooth functions that appear in the Fourier–Galerkin method. A key step in developing the fully discrete fast Fourier–Galerkin method is the design of a fast quadrature scheme for computing the Fourier coefficients of the non-smooth kernel function involved in the boundary integral equation. We prove that with the proposed quadrature algorithm, the total number of additions and multiplications used in generating the compressed coefficient matrix for the proposed method is quasi-linear (linear with a logarithmic factor), and the resulting numerical solution of the equation preserves the optimal convergence order. Numerical examples are presented to demonstrate the approximation accuracy and computational efficiency of the proposed method.




Similar content being viewed by others
References
Apel, T., Sandig, A.-M., Whiteman, J.R.: Graded mesh refinement and error estimates for finite element solutions of elliptic boundary value problems in non-smooth domains. Math. Methods Appl. Sci. 19, 63–85 (1996)
Atkinson, K.: The Numerical Solution of Integral Equations of Second Kind. Cambridge University Press, Cambridge (1997)
Behrens, E.M., Guzmn, J.: A mixed method for the biharmonic problem based on a system of first-order equations. SIAM J. Numer. Anal. 49, 789–817 (2011)
Ben-Artzi, M., Chorev, I., Croisille, J.P., Fishelov, D.: A compact difference scheme for the biharmonic equation in planar irregular domains. SIAM J. Numer. Anal. 47, 3087–3108 (2009)
Ben-Artzi, M., Croisille, J.-P., Fishelov, D.: A fast direct solver for the biharmonic problem in a rectangular grid. SIAM J. Sci. Comput. 31, 303–333 (2008)
Bialecki, B.: A fast solver for the orthogonal spline collocation solution of the biharmonic dirichlet problem on rectangles. J. Comput. Phys. 191, 601–621 (2003)
Babuska, I., Kellogg, R., Pitkaranta, J.: Direct and inverse error estimates for finite elements with mesh refinements. Numer. Math. 33, 447–471 (1979)
Bacuta, C., Nistor, V., Zikatanov, L.: Improving the rate of convergence of high order finite elements on polygons and domains with cusps. Numer. Math. 100, 165–184 (2005)
Bailey, D., Swarztrauber, P.: The fractional Fourier transform and applications. SIAM Rev. 33, 389–404 (1991)
Borm, S., Sauter, S.: BEM with linear complexity for the classical boundary integral operators. Math. Comput. 74, 1139–1177 (2005)
Brenner, S.C.: An optimal-order nonconforming multigrid method for the biharmonic equation. SIAM J. Numer. Anal. 26, 1124–1138 (1989)
Brenner, S., Cui, J., Gudi, T., Sung, L.-Y.: Multigrid algorithms for symmetric discontinuous Galerkin methods on graded meshes. Numer. Math. 119, 21–47 (2011)
Brunner, H.: The numerical solution of weakly singular Volterra integral equations by collocation on graded meshes. Math. Comput. 45, 417–437 (1985)
Bungartz, H.J., Griebel, M.: Sparse grids. Acta Numer. 13, 147–269 (2004)
Cai, H., Xu, Y.: A fast Fourier–Galerkin method for solving singualr boundary integral equations. SIAM J. Numer. Anal. 46, 1965–1984 (2008)
Chan, R.H., Delillo, T.K., Horn, M.A.: The numerical solution of the biharmonic equation by conformal mapping. SIAM J. Sci. Comput. 18, 1571–1582 (1997)
Chan, R.H., DeLillo, T.K., Horn, M.A.: Superlinear convergence estimates for a conjugate gradient method for the biharmonic equation. SIAM J. Sci. Comput. 19, 139–147 (1998)
Chan, R.H., Sun, H.-W., Ng, W.-F.: Circulant preconditioners for ill-conditioned boundary integral equations from potential equations. Int. J. Numer. Methods Eng. 43, 1505–1521 (1998)
Chen, G., Li, Z., Lin, P.: A fast finite difference method for biharmonic equations on irregular domains and its application to an incompressible stokes flow. Adv. Comput. Math. 29, 113–133 (2008)
Chen, Z., Micchelli, C.A., Xu, Y.: A construction of interpolating wavelets on invariant sets. Math. Comput. 68, 1569–1587 (1999)
Chen, Z., Micchelli, C.A., Xu, Y.: Multiscale Methods for Fredholm Integral Equations. Cambridge University Press, Cambridge (2015)
Chen, Z., Wu, B., Xu, Y.: Multilevel augmentation methods for solving operator equations. Numer. Math. J. Chin. Univ. 14, 31–55 (2005)
Cheng, Q., Tang, T., Teng, Z.: A fast numerical method for integral equations of the first kind with logorithmic kernel using mesh grading. J. Comput. Math. 22, 287–298 (2004)
Chien, D., Atkinson, K.: A discrete Galerkin method for a hypersingular boundary integral equations. IMA J. Numer. Anal. 17, 463–478 (1997)
Cooley, J.W., Tukey, J.W.: An algorithm for the machine calculation of complex Fourier series. Math. Comput. 19, 297–301 (1965)
Davini, C., Pitacco, I.: An unconstrained mixed method for the biharmonic problem. SIAM J. Numer. Anal. 38, 820–836 (2000)
DeVore, R., Petrushev, P., Temlyakov, V.: Multivariate trigonometric approximation with frequencies from the hyperpolic cross. Mat. Zametki 56, 36–63 (1994)
Döhler, M., Kunis, K., Potts, D.: Nonequispaced hyperbolic cross fast Fourier transform. SIAM J. Numer. Anal. 47, 4415–4428 (2010)
Ehrlich, L.W., Gupta, M.M.: Some difference schemes for the biharmonic equation. SIAM J. Numer. Anal. 12, 773–790 (1975)
Eymard, R., Gallouët, T., Herbin, R., Linke, A.: Finite volume schemes for the biharmonic problem on general meshes. Math. Comput. 81, 2019–2048 (2012)
Frank, K., Heinrich, S., Pereverzev, S.: Information complexity of multivariate Fredholm integral equations in sobolev classes. J. Complex. 12, 17–34 (1996)
Gradinaru, V.: Strang splitting for the time dependent Schrödinger equation on sparse grids. SIAM J. Numer. Anal. 46, 103–123 (2007)
Gómez-Polanco, A., Guevara-Jordan, J.M., Molina, B.: A mimetic iterative scheme for solving biharmonic equations. Math. Comput. Model. 57, 2132–2139 (2013)
Greenbaum, A., Greengard, L., Mayo, A.: On the numerical solution of the biharmonic equation in the plane. Phys. D Nonlinear Phenom. 60, 216–225 (1992)
Gudi, T., Nataraj, N., Pani, A.K.: Mixed discontinuous Galerkin finite element method for the biharmonic equation. J. Sci. Comput. 37, 139–161 (2008)
Hanisch, M.: Multigrid preconditioning for the biharmonic Dirichlet problem. SIAM J. Numer. Anal. 30, 184–214 (1998)
Jeon, Y.: New boundary element formulas for the biharmonic equation. Adv. Comput. Math. 9, 97–115 (1998)
Jeon, Y.: New indirect scalar boundary integral equation formulas for the biharmonic equation. J. Comput. Appl. Math. 135, 313–324 (2001)
Jiang, Y., Wang, B., Xu, Y.: A fast Fourier–Galerkin method solving a boundary integral equation for the biharmonic equation. SIAM J. Numer. Anal. 52, 2530–2554 (2014)
Jiang, Y., Xu, Y.: Fast discrete algorithms for sparse Fourier expansions of high dimensional functions. J. Complex. 26, 51–81 (2010)
Jiang, Y., Xu, Y.: Fast Fourier–Galerkin methods for solving singular boundary integral equations: numerical integration and precondition. J. Comput. Appl. Math. 234, 2792–2807 (2010)
Jiang, Y., Xu, Y.: Fast computation of the multidimensional discrete Fourier transform and inverse Fourier transform on sparse grids. Math. Comput. 83, 2347–2384 (2014)
Kammerer, L., Potts, D., Volkmer, T.: Approximation of multivariate periodic functions by trigonometric polynomials based on rank-1 lattice sampling. J. Complex. 31, 543–576 (2015)
Kaneko, H., Xu, Y.: Gauss-type quadratures for weakly singular integrals and their application to Fredholm integral equations of the second kind. Math. Comput. 62, 739–753 (1994)
Kress, R.: Linear Integral Equations. Springer, New York (1999)
Li, H.: A-priori analysis and the finite element method for a class of degenerate elliptic equations. Math. Comput. 78, 713–737 (2009)
Majidian, H.: Modified Euler’s method with a graded mesh for a class of Volterra integral equations with weakly singular kernel. Numer. Algorithms 67, 405–422 (2014)
Mclean, W.: A spectral Galerkin method for a boundary integral equation. Math. Comput. 47, 597–607 (1986)
Mayo, A.: The fast solution of poisson’s and the biharmonic equations on irregular regions. SIAM J. Numer. Anal. 21, 285–299 (1984)
Mayo, A., Greenbaum, A.: Fast parallel iterative solution of Poisson’s and the biharmonic equations on irregular regions. SIAM J. Sci. Comput. 13, 101–118 (1992)
Nikol’skaya, N.S.: Approximation of differentiable functions of several variables by Fourier sums in the \({L}_p\)-metric. Sibirsk. Mat. Zh. 15, 395–412 (1974)
Rudin, W.: Real and Complex Analysis, 3rd edn. McGraw-Hill Education, New York (1986)
Saranen, J., Vainikko, G.: Periodic Integral and Pseudodifferential Equations with Numerical Approximation. Springer, Berlin (2002)
Shen, J.: Efficient spectral-Galerkin method i. Direct solvers of second-and fourth-order equations using Legendre polynomials. SIAM J. Sci. Comput. 15, 1489–1505 (1994)
Shen, J.: Efficient spectral-Galerkin method ii. Direct solvers of second-and fourth-order equations using Chebyshev polynomials. SIAM J. Sci. Comput. 16, 74–87 (1995)
Smith, J.: The coupled equation approach to the numerical solution of the biharmonic equation by finite differences. I. SIAM J. Numer. Anal. 5, 323–339 (1968)
Smith, J.: The coupled equation approach to the numerical solution of the biharmonic equation by finite differences. II. SIAM J. Numer. Anal. 7, 104–111 (1970)
Stephenson, J.: Single cell discretizations of order two and four for biharmonic problems. J. Comput. Phys. 55, 65–80 (1984)
Temlyakov, V.: Approximation of functions with bounded mixed derivative. Trudy Mat. Inst. Steklov. 178, 1–112 (1986)
Xu, Y., Zhao, Y.: An extrapolation method for a class of boundary integral equations. Math. Comput. 65, 587–610 (1996)
Xu, Y., Zhao, Y.: Quadratures for boundary integral equations of the first kind with logarithmic kernels. J. Integral Equ. Appl. 8, 239–268 (1996)
Author information
Authors and Affiliations
Corresponding author
Additional information
Dedicated to Professor Raymond H. Chan on the occasion of his 60th birthday.
Supported partially by the Special Project on High-performance Computing under the National Key R&D Program (No. 2016YFB0200602), the Fundamental Research Funds for the Central Universities under Grants ZYGX2013J107 and 15lgjc17, by National Natural Science Foundation of China under Grants 11571383, 11501087, 11471013, 11771464 and by the Science and Technology Program of Guangzhou, China (No. 201804020053).
Appendices
Appendix
Algorithm FEcd
We present here a fast algorithm for evaluating Fourier integrals
where \(\mathbf {l}\in \mathbb {L}_{N,2}\), \(I_{{\mathfrak {a}}{\mathfrak {b}}}:=[{\mathfrak {a}},{\mathfrak {b}}]\), \({\mathfrak {a}},{\mathfrak {b}}\in I\) and \(d\in \{2,3\}\) and h is a continuous function on \(I_{\mathfrak {ab}}\otimes I^{d-1}\). The algorithm is a modification of the fast Fourier transform on sparse grids, proposed in [42], based on the multiscale Lagrange interpolation of h on sparse grids in [40].
We recall the multiscale Lagrange interpolation on sparse grids in \(I^d\) [40]. The multiscale Lagrange interpolation on sparse grids is builded upon the multiscale Lagrange interpolation on I introduced in [20], see also [21]. Following [20], we choose two contractive mappings \(\phi _\rho : I\rightarrow I,~\rho \in \mathbb {Z}_2\), defined by \(\phi _0(x) := \frac{x}{2}\) and \(\phi _1(x) := \frac{x}{2}+\pi ,~x \in I\), and let \(\psi :=\{\phi _\rho :\rho \in \mathbb {Z}_2\}\). Fix \(m\in \mathbb {N}\) and let \(V_0:=\{0\leqslant \zeta _0<\zeta _1<\cdots<\zeta _{m-1}<2\pi \}\) be a refinable set in the sense that \(V_0\subset \phi _0(V_0)\cup \phi _1(V_0)\). Let \(v_{0,r}:=\zeta _r\), \(r\in \mathbb {Z}_m\). For each \(r\in \mathbb {Z}_m\), we define
For all \(\tau \in \mathbb {N}\) and \({\mathbf {p}}_\tau :=[\rho _\gamma :\gamma \in \mathbb {Z}_{\tau }]\in \mathbb {Z}_2^{\tau }\), we let \(\phi _{{\mathbf {p}}_\tau }:=\phi _{\rho _{\tau -1}}\circ \cdots \circ \phi _{\rho _{0}}\) and \(\mu ({\mathbf {p}}_\tau ):=\sum _{\gamma \in \mathbb {Z}_\tau } \rho _\gamma 2^\gamma \). The points \(v_{\tau ,r}:=\phi _{{\mathbf {p}}_\tau }(\zeta _{r'})\), with \({\mathbf {p}}_\tau \in \mathbb {Z}_2^\tau ,~r'\in \mathbb {Z}_m\) and \(r=m\mu ({\mathbf {p}}_\tau )+r'\), will be used as the interpolation points at higher levels. Specifically, for all \(\tau \in \mathbb {N}\), we define
We now describe the multiscale interpolation functionals. Let \(\mathbb {W}_{0,m}:=\mathbb {Z}_m\). For all \(\tau \in \mathbb {N}\), denote \(V_\tau := \{v_{\tau ,r}, r\in \mathbb {Z}_{2^\tau m}\}\) and \(\mathbb {W}_{\tau ,m}:=\{r\in \mathbb {Z}_{2^\tau m}: v_{\tau ,r}\in V_\tau \setminus V_{\tau - 1}\}\). Let \(a_{q,r}:=l_{0,q}(v_{1,r})\), for \(q\in \mathbb {Z}_m\) and \(r\in \mathbb {Z}_{2m}\). For \(k,l\in \mathbb {N}\), \(k\mod l\) is the remainder of the division of k by l. Define linear functionals \(\eta _{\tau ,r}: C(I)\rightarrow \mathbb {R}\), for \(\tau \in \mathbb {N}_0\) and \(r\in \mathbb {W}_{\tau , m}\), by
Next, we describe the multiscale Lagrange interpolation of f on sparse grids. For all \({{\varvec{\tau }}}:=[\tau _k: k\in \mathbb {Z}_d]\in \mathbb {N}_0^d\), we define index set \( \mathbb {W}_{{\varvec{\tau }},m}:=\mathbb {W}_{\tau _0,m}\otimes \mathbb {W}_{\tau _1,m}\otimes \cdots \otimes \mathbb {W}_{\tau _{d-1},m}. \) For all \({{\varvec{\tau }}}:=[\tau _k: k\in \mathbb {Z}_d]\in \mathbb {N}_0^d\) and \({\varvec{r}}:=[r_k: k\in \mathbb {Z}_d]\in \mathbb {W}_{{\varvec{\tau }},m}\), we define \( \eta _{{\varvec{\tau }},{\varvec{r}}}:= \eta _{\tau _0, r_0}\otimes \cdots \otimes \eta _{\tau _{d-1},r_{d-1}} \) and \( l_{{\varvec{\tau }},{\varvec{r}}}:= l_{\tau _0, r_0}\otimes \cdots \otimes l_{\tau _{d-1},r_{d-1}}. \) For \(f\in C(I^d)\) and \(N\in \mathbb {N}\), the multiscale Lagrange interpolation of f on sparse grids is defined by
where \(\mathbb {S}_{N,d}:= \Big \{[\tau _k:k\in \mathbb {Z}_d]\in \mathbb {Z}_{N+1}^d: \sum _{k\in \mathbb {Z}_d}\tau _k \leqslant N \Big \}\).
Below, we describe a fast algorithm for evaluating the Fourier integral (78) by employing the multiscale Lagrange interpolation on sparse grids (79). Let \(\alpha :=\frac{{\mathfrak {b-a}}}{2\pi }\). For \(\mathbf {x}:=[x_0,\mathbf {x}_1]\in I^{d}\) with \(x_0\in I\) and \(\varsigma \in \mathbb {R}\), we define \(\varsigma \cdot \mathbf {x}:=[\varsigma x_0, \mathbf {x}_1]\) and \(h_{I_{\mathfrak {ab}}}(\mathbf {x}):=h([\alpha x_0+{\mathfrak {a}},\mathbf {x}_1])\). By a change of variables, the integral in (78) can be reformulated as the following integral on \(I^d\)
By replacing \(h_{I_{\mathfrak {ab}}}\) with the multiscale Lagrange interpolation \(\mathcal {S}_{N,m}^d h_{I_{\mathfrak {ab}}}\) on sparse grids, we obtain the quadrature formula for the integral (78)
To simplify this formula, we introduce necessary notation. For all \(N\in \mathbb {N}\), \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {Z}_{2^\tau m}\), \(\varsigma \in \mathbb {R}\) and \(l\in \mathbb {L}_{N,1}\), we define
For all \(N\in \mathbb {N}\), \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {W}_{\tau ,m}\) and \(l\in \mathbb {L}_{N,1}\), we define
For all \({{\varvec{\tau }}}:=[\tau _k:k\in \mathbb {Z}_d]\in \mathbb {S}_{N,d}\), \({\varvec{r}}:=[r_k:k\in \mathbb {Z}_d]\in \mathbb {W}_{{\varvec{\tau }},m}\), \(\varsigma \in \mathbb {R}\) and \(\mathbf {l}:=[l_0,l_1]\in \mathbb {L}_{N,2}\), we define
Substituting the interpolation (79) into formula (81), the quadrature formula for the integral (78) can be rewritten as
From Section 5 of [42], we see that (82) can be rewritten as a dimension-reducible sum. This observation leads us to developing a fast algorithm for computing (82) by employing Algorithm 4.5 in [42], designed for fast computing dimension-reducible sum.
In order to propose a fast algorithm for computing sum (82), we next rewrite it as a dimension-reducible sum. For \(\upsilon \in \mathbb {Z}_m\), we let \(r_{0,\upsilon }=\upsilon \). For each \(\tau \in \mathbb {N}\) and \(\upsilon \in \mathbb {Z}_{2^{\tau -1} m }\), we also let \( r_{\tau , \upsilon }\in \mathbb {W}_{\tau , m}\) be the number such that there exactly \(\upsilon \) elements in \(\mathbb {W}_{\tau ,m}\) less than \( r_{\tau , \upsilon }\). For \({{\varvec{\tau }}}\in \mathbb {S}_{N,2}\) and \(\mathbf {r}\in \mathbb {I}_{{{\varvec{\tau }}}, m}\), we define \({\varvec{\upsilon }}:=[ r_k - \lfloor 2^{\tau _k-1} \rfloor m: k\in \mathbb {Z}_{2}]\) ,
and for \(\varsigma \in \mathbb {R}\),
where \({\mathbf {r}}_{{{\varvec{\tau }}},{\varvec{\upsilon }}}:=[r_{\tau _k,\upsilon _k}:k\in \mathbb {Z}_2]\). For all \(\tau \in \mathbb {N}_0\), we define \( \mathbb {V}_{\tau }:=\{r\in \mathbb {N}_0: m\lfloor 2^{\tau -1}\rfloor \leqslant r < m2^{\tau } \}, \) where m is the order of polynomial \(l_{\tau ,r}\). For all \({{\varvec{\tau }}}:=[\tau _0,\tau _1]\in \mathbb {N}_0^2\), we also define \(\mathbb {V}_{{{\varvec{\tau }}}}:=\mathbb {V}_{\tau _0}\otimes \mathbb {V}_{\tau _1}\). For \(N\in \mathbb {N}_0\), let
With the notation introduced above, for all \(\mathbf {l}:=[l_0,l_1]\in \mathbb {L}_{N,2}\) Eq. (82) is rewritten as
Lemmas 5.2 and 5.3 in [42] show that (85) is a dimension-reducible sum.
We now describe a fast algorithm for computing the dimension-reducible sum in (85). It is shown in [42] that the dimension-reducible sum can be split recursively into one-dimension sums. This idea is employed to design Algorithm 4.5 in [42] for the fast Fourier transform on sparse grids. Here, we modify Algorithm 4.5 in [42] to fit the dimension-reducible sum (85). To this end, we consider a generalized dimension-reducible sum as follows. For all \(\varsigma \in \mathbb {R}\), \(N\in \mathbb {N}\), \({\varvec{\xi }}_N:=[\xi _{\mathbf {r}}\in \mathbb {R}:{\mathbf {r}}\in \mathbb {L}_{N,2}]\) and each \(\mathbf {l}\in \mathbb {L}_{N, 2}\), we define
For all \(N\in \mathbb {N}\), \(\tau \in \mathbb {Z}_{N+1}\) and \(r\in \mathbb {V}_{\tau }\), let \( {\varvec{\xi }}_{N, \tau , r}:= [\xi _{[r,r']}: r'\in \mathbb {H}_{N-\tau , 1}]. \) For each \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {H}_{N-\tau , 1}\), we also let
where \(d_{r'}:=\xi _{[r',r]}\) for \(r'\in \mathbb {V}_{\tau }\) and \(d_{r'}:=0\) for \(r'\in \mathbb {V}_{\tau '}\) with \(\tau '< \tau \). For each \(\varsigma \in \mathbb {R}\), \(\tau \in \mathbb {Z}_{N+1}\) and \(r\in \mathbb {V}_{N-\tau }\), we define two one dimensional sums by
and
For each \(\varsigma \in \mathbb {R}\), \(\tau \in \mathbb {Z}_{N+1}\) and \(\mathbf {l}:=[l_0,l_1]\in \mathbb {L}_{N-\tau ,2}\), define
and
With the notation, we have the following equality
The formula (90) shows that the values of \(\varepsilon _{{\varvec{\xi }}_{N},\varsigma }\) can be obtained by computing \(\nu _{{\varvec{\xi }}_N,\tau ,\varsigma }\) and \({\widetilde{\nu }}_{{\varvec{\xi }}_N,\tau ,\varsigma }\). The definition of \(\nu _{{\varvec{\xi }}_{N},\tau ,\varsigma }\) shows that we can obtain the values of \(\nu _{{\varvec{\xi }}_{N},\tau ,\varsigma }\) by a one-dimensional algorithm when we have the values of \(\varepsilon _{{\varvec{\xi }}_{N},\tau ', r}\). Thus, it remains to develop a method for computing \({\widetilde{\nu }}_{{\varvec{\xi }}_N,\tau ,\varsigma }\). For \(\varsigma \in \mathbb {R}\), \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {H}_{N-\tau , 1}\) and \(l\in \mathbb {I}_{\tau }\), we let
From the definitions of \(\displaystyle {\widetilde{\nu }}_{{\varvec{\xi }}_{N},\tau ,\varsigma }\) and \({\tilde{h}} _{{\varvec{\xi }}_{N}, \tau , r,\varsigma , l}\), we have the following equality
We are ready to present the fast algorithm for computing (86). In this algorithm, we call the one dimensional algorithm “FE1d” described in “Appendix B”, for computing one dimensional sum (88) and (89). For given \(\varsigma \in \mathbb {R}\) and \({\varvec{\xi }}_N:=[\xi _{\mathbf {r}}\in \mathbb {R}:{\mathbf {r}}\in \mathbb {H}_{N,2}]\), we define \(E_{{\varvec{\xi }}_{N},\varsigma }:=[\varepsilon _{{\varvec{\xi }}_N,\varsigma }(\mathbf {l}): \mathbf {l}\in \mathbb {L}_{N,2}]\). For each \(\varsigma \in \mathbb {R}\), \(\tau \in \mathbb {Z}_{N+1}\) and \(l\in \mathbb {L}_{N-\tau , 1}\), we define \( V_{{\varvec{\xi }}_{N},\tau , l,\varsigma }:= [\nu _{{\varvec{\xi }}_N,\tau ,\varsigma }([l',l]): l'\in \mathbb {I}_{\tau } ]. \) For each \(\varsigma \in \mathbb {R}\), \(\tau \in \mathbb {Z}_{N+1}\) and \(l\in \mathbb {I}_{\tau }\), we define \( {\widetilde{V}}_{{\varvec{\xi }}_{N},\tau , l,\varsigma }:= [{\widetilde{\nu }}_{{\varvec{\xi }}_N,\tau ,\varsigma }([l,l']): l'\in \mathbb {L}_{N-\tau , 1} ]. \) For each \(\varsigma \in \mathbb {R}\), \(\tau \in \mathbb {Z}_{N+1}\) and \(l\in \mathbb {I}_{\tau }\), we define \( {\widetilde{\mathbf {h}}}_{{\varvec{\xi }}_{N},\tau ,\varsigma , l}:= [{\tilde{h}}_{{\varvec{\xi }}_N,\tau , r,\varsigma , l}: r\in \mathbb {H}_{N-\tau , 1}]. \) For each \(\tau \in \mathbb {Z}_{N+1}\) and \(l\in \mathbb {L}_{N-\tau , 1}\), we let \( \mathbf {c}_{{\varvec{\xi }}_{N}, \tau , l}:= [\varepsilon _{{\varvec{\xi }}_{N}, \tau , r}(l): \tau '\in \mathbb {Z}_{\tau +1}, r\in \mathbb {V}_{\tau '} ]. \) For all \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {V}_{\tau }\), we define \(E_{{\varvec{\xi }}_{N}, \tau ,r}:=[\varepsilon _{{\varvec{\xi }}_{N}, \tau , r}(l): l\in \mathbb {L}_{N-\tau ,1}]\).
Algorithm A.1
\(\,\mathrm{FEd}\,(N, {\varvec{\xi }}_{N}, \varsigma )\)
Input: \(N\in \mathbb {N}\), \({\varvec{\xi }}_{N}:=[\xi _{\mathbf {r}}:\mathbf {r}\in \mathbb {H}_{N,2}]\) and \(\varsigma \in \mathbb {R}\)
Output: \(E_{{\varvec{\xi }}_{N},\varsigma }\).
Step 1. For all \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {V}_{\tau }\), compute \(E_{{\varvec{\xi }}_{N}, \tau , r}\) by using \(\,\mathrm{FE1d}\,(1, N-\tau , {\varvec{\xi }}_{N, \tau , r}, 1)\).
Step 2. For \(\tau \in \mathbb {Z}_{N+1}\), \(l\in \mathbb {L}_{N-\tau , 1}\), compute \(V_{{\varvec{\xi }}_{N},\tau , l,\varsigma }\) by using \(\,\mathrm{FE1d}\,(\tau , \mathbf {c}_{{\varvec{\xi }}_{N}, \tau , l}, \varsigma )\).
Step 3. For all \(\tau \in \mathbb {Z}_{N+1}\), \(r\in \mathbb {H}_{N-\tau , 1}\), compute \([{\widetilde{\varepsilon }}_{{\varvec{\xi }}_N,{\tau }, r,\varsigma }(l): l\in \mathbb {I}_{\tau } ]\) by using \(\,\mathrm{FE1d}\,(\tau , \mathbf {d}_{{\varvec{\xi }}_{N}, \tau , r}, \varsigma )\).
Step 4. Compute \( [{\tilde{h}} _{{\varvec{\xi }}_{r}, \tau , r, \varsigma , l}: \tau \in \mathbb {Z}_{N+1}, l\in \mathbb {I}_\tau , r\in \mathbb {H}_{N-\tau , d-1}], \) according to (91).
Step 5. For \(\tau \in \mathbb {Z}_{N+1}\), \(l\in \mathbb {I}_{\tau }\), compute \({\widetilde{V}}_{{\varvec{\xi }}_{N},\tau , l, \varsigma }\) by using \(\,\mathrm{FE1d}\,(1, N-\tau , {\widetilde{\mathbf {h}}}_{{\varvec{\xi }}_{N},\tau ,\varsigma , l}, 1)\).
Step 6. Compute \(E_{{\varvec{\xi }}_{N},\varsigma }\) according to (90). Return \(E_{{\varvec{\xi }}_{N},\varsigma }\).
Let \({\varvec{\eta }}_{N}:=[\eta _{\mathbf {r}}(h_{I_{\mathfrak {ab}}}): \mathbf {r}\in \mathbb {H}_{N, 2}]\). From the definitions of \(Q^d_{N, m,{\mathfrak {a,b}}} (h,\mathbf {l})\) and \(\varepsilon _{{\varvec{\xi }}_N,\varsigma }(\mathbf {l})\), it is easy to see that for all \(\mathbf {l}\in \mathbb {L}_{N,2}\),
Thus, applying Algorithm A.1 to \({\varvec{\eta }}_{N}\) leads to the algorithm for computing (85). Let \({\mathbf {Q}}^d_{N, m,{\mathfrak {a,b}}}(h):=[Q^d_{N, m,{\mathfrak {a,b}}} (h,\mathbf {l}):\mathbf {l}\in \mathbb {L}_{N,2}]\) and \({\varvec{\eta }}_{N}:=[\eta _{\mathbf {r}}(h_{I_{\mathfrak {ab}}}): \mathbf {r}\in \mathbb {H}_{N, 2}]\).
Algorithm A.2
\({\mathrm {FECd}}(d,N, {\mathfrak {a,b}}, h)\)
Input: \(d\in \{2,3\}\), \(N\in \mathbb {N}\), \({\mathfrak {a}}\in I,~{\mathfrak {b}}\in I\) and \(h\in C(I_{\mathfrak {ab}}\otimes I^{d-1})\)
Output: \({\mathbf {Q}}_{N, m,{\mathfrak {a,b}}}(h)\).
Step 1. Compute the coefficient \({\varvec{\eta }}_{N}\).
Step 2. Compute \(E_{{\varvec{\eta }}_N,\alpha }=[\varepsilon _{{\varvec{\eta }}_N,\alpha }(\mathbf {l}): \mathbf {l}\in \mathbb {L}_{N,2}]\) by calling \(\,\mathrm{FEd}\,(N, {\varvec{\eta }}_N, \alpha )\).
Step 3. Compute \({\mathbf {Q}}^d_{N, m,{\mathfrak {a,b}}}(h)\) by (93).
We next estimate the number \(\mathcal {M}({\mathrm {FECd}}, N)\) of additions and multiplications used in Algorithm A.2.
Lemma A.3
There exists a positive constant c such that for all \(d\in \{2,3\}\) and \(N\in \mathbb {N}\),
Proof
According to Theorem 2.13 in [40], the number of additions and multiplications used in Step 1 is \({\mathcal {O}}(N2^N )\) when \(d=2\), and \({\mathcal {O}}(N^22^N )\) when \(d=3\). Since the number of additions and multiplications used in the Fourier transform “FE1d” is \({\mathcal {O}}(N2^N)\), and the cardinality of \({\varvec{\eta }}_N\) is \({\mathcal {O}}(N2^N)\), by Theorem 4.6 in [42], the number of additions and multiplications used in Step 2 is \({\mathcal {O}}(N^22^N)\). Since the cardinality of \(\mathbb {L}_{N,2}\) is \({\mathcal {O}}(N2^N)\), from Eq. (93) we know that the number of additions and multiplications used in Step 3 is \({\mathcal {O}}(N 2^N)\). Thus, we obtain the estimation (94). \(\square \)
Lemma A.3 is used in the proof of Theorem 3.4.
Algorithm: FE1d
In this subsection, we present the fast Fourier transform “FE1d”, used in the Algorithm A.1, in computing the quantity
where \(m\in \mathbb {N}\), \(N\in \mathbb {N}\), \({\varvec{\xi }}_N:=[\xi _{r'}:r'\in \mathbb {I}_{\tau }, \tau \in \mathbb {Z}_{N+1}]\) and \(\varsigma >0\). To this end, we first rewrite \(\varepsilon _{{\varvec{\xi }}_N,\varsigma }(l)\) as a combination of the values of \(e^{-i2\pi \varsigma l u /2^{N}}\), \(u\in \mathbb {Z}_{2^N}\). From the definition of \(A_{r',\varsigma }\) in (84), we have for each \(r'\in \mathbb {I}_{\tau }\) that \(A_{r',\varsigma }=A_{\tau , r, \varsigma }\) where \(r=r_{\tau ,r'-\lfloor 2^{\tau -1}\rfloor m}\). Thus, we can rewrite (95) as
where \(\xi _{\tau , r}:=\xi _{r'}\). For \(q\in \mathbb {Z}_m\) and \(\kappa \in \mathbb {Z}_{2m}\), we let \(a_{q,\kappa }:=\ell _{0,q}(v_{1,\kappa })\). From Lemma 2.1 in [40], the Lagrange basis functions \(l_{\tau , r}\),\(\tau \in \mathbb {N}_0, r\in \mathbb {W}_{\tau ,m}\) satisfy the following refinement equation
Thus, we have for all \(\tau \in \mathbb {N}_0, r\in \mathbb {W}_{\tau ,m}\) that
By a direct computation, we rewrite \(\varepsilon _{{\varvec{\xi }}_{N},\varsigma }(l)\) as
where \({\bar{\xi }}_{N, r}\) is defined recursively by for \(\tau \in \mathbb {Z}_{N+1}\),
For all \(\varsigma >0\) and \(q\in \mathbb {Z}_{m}\) and \(l\in \mathbb {Z}\), we let
By a simple computation, we obtain for all \(r\in \mathbb {Z}_{2^Nm}\), \(\varsigma >0\) and \(l\in \mathbb {Z}\) that
where \(u=\lfloor r/m \rfloor \). Let \(\left( {\hat{\xi }}_{N,q,\varsigma } \right) _l:=\sum \limits _{u\in \mathbb {Z}_{2^N}} {\bar{\xi }}_{N,mu+q} e^{-i2\pi \varsigma l u /2^{N}}\). Then, from (96) and (99), we have that
Equation (100) and the definition of \(\left( {\hat{\xi }}_{N,q,\varsigma } \right) _l\) show that we can construct a fast algorithm for computing \(\varepsilon _{{\varvec{\xi }}_{N},\varsigma }(l)\) by the fast Fourier transform in [25] when \(\varsigma =1\). In the case \(\varsigma >0\) and \(\varsigma \ne 1\), \(\left( {\hat{\xi }}_{N,q,\varsigma } \right) _l\) is the fractional Fourier transform of \(\left[ {\bar{\xi }}_{N,mu+q}:u\in \mathbb {Z}_{2^N}\right] \). In this case, we employ the fast algorithm for fractional Fourier transform in [9] to construct a fast algorithm for computing \(\varepsilon _{{\varvec{\xi }}_{N},\varsigma }(l)\).
Below, we recall the fast algorithm for fractional Fourier transform for ready reference. Let \(\varpi , {\tilde{\varpi }}\in \mathbb {N}\) and \({\mathbf {x}}:=[x_u\in \mathbb {R}:u\in \mathbb {Z}_{\varpi }]\). We consider computing
where \(s\in \mathbb {Z}\) and \(\varsigma >0\) is a fractional number. First we define the sequences \(\mathbf {y}:=[y_u\in \mathbb {C}:u\in \mathbb {Z}_{\varpi +{\tilde{\varpi }}}]\) and \(\mathbf {z}:=[z_u\in \mathbb {C}:u\in \mathbb {Z}_{\varpi +{\tilde{\varpi }}}]\) by
It can be seen that
It can be verified that the sequence \(\mathbf {z}\) now satisfies the required property for a \((\varpi +{\tilde{\varpi }})\)-point circular convolution. Thus it follows that \((\varpi +{\tilde{\varpi }})\)-point discrete Fourier transform may be used to evaluate (102). By \(F_l({\mathbf {x}})\) we denote the discrete Fourier transform of \({\mathbf {x}}:=[x_u\in \mathbb {R}:u\in \mathbb {Z}_{\varpi +{\tilde{\varpi }}}]\). That is,
which can be computed by the fast Fourier transform. Let \(F^{-1}_l({\mathbf {x}})\) denote the inverse discrete Fourier transform of \({\mathbf {x}}\). By the convolution property of the discrete Fourier transform, Eq. (102) can be rewritten as
where \(\mathbf {w}\) is defined by \(\mathbf {w}:=[w_k:w_k = F_k(\mathbf {y})F_k(\mathbf {z}), 0\leqslant k<{\tilde{\varpi }}+\varpi ]\).
We now present the algorithm “FrFT” for computing \(G_{\varsigma }(\mathbf {x}, l+s)\) for \(s\in \mathbb {Z}\) and \(0 \leqslant l < {\tilde{\varpi }}\). Let \(\mathbf {G}_{\mathbf {x}, \varsigma , s}:=\{G_{\varsigma }(\mathbf {x}, l): s\leqslant l \leqslant {\tilde{\varpi }} +s\}\).
Algorithm B.1
FrFT \((\mathbf {x}, \varsigma , s, {\tilde{\varpi }})\)
Input: \(\mathbf {x}:=\{x_u:u\in \mathbb {Z}_\varpi \}, s\in \mathbb {Z}\), \(\varsigma \in \mathbb {R}\) and \({\tilde{\varpi }}\in \mathbb {N}\).
Output: \(G_{\mathbf {x}, \varsigma , s}\).
Step 1. Compute \(\mathbf {y}\) and \(\mathbf {z}\) according to formula (101).
Step 2. Compute \(\mathbf {w}:=\{w_l=F_l(\mathbf {y})F_l(\mathbf {z}): l\in \mathbb {Z}_{{\tilde{\varpi }}}\}\) by applying the fast Fourier transform [25] to \(\mathbf {y}\) and \(\mathbf {z}\).
Step 3. Compute \(\mathbf {G}_{\mathbf {x}, \varsigma , s}\) according to (104) by applying the fast inverse Fourier transform to \(\mathbf {w}\).
The total computational cost of the above algorithm is \(\mathcal {O}(\varpi \log _2 \varpi )\) number of floating point operations. With the help of the fractional Fourier transform, we obtain the following algorithm for computing the summation (100). Let \({\bar{{\varvec{\xi }}}}_N:=[{\bar{\xi }}_{N, r}:r\in \mathbb {Z}_{2^Nm}]\), \({\bar{{\varvec{\xi }}}}_{N,q}:=[{\bar{\xi }}_{N, mu+q}:u\in \mathbb {Z}_{2^N}]\) and \({\varvec{\varepsilon }}_{{\varvec{\xi }}_{N},\varsigma }:=[\varepsilon _{{\varvec{\xi }}_{N},\varsigma }(l):l\in \mathbb {L}_{N,1}]\).
Algorithm B.2
FE1d \((N,{\varvec{\xi }}_{N}, \varsigma )\)
Input: \(N\in \mathbb {N}, {\varvec{\xi }}_N:=\{x_u\in \mathbb {C}:u\in \mathbb {Z}_{2^Nm}\}\) and \(\varsigma \in \mathbb {R}\).
Output: \({\varvec{\varepsilon }}_{{\varvec{\xi }}_{N},\varsigma }\).
Step 1. Compute \({\bar{{\varvec{\xi }}}}_N\) by (97).
Step 2. For each \(q\in \mathbb {Z}_m\), compute \(\left( {\hat{\xi }}_{N,q,\varsigma }\right) _l\), \(l\in \mathbb {L}_{{N},1}\), by using FrFT\(({\bar{{\varvec{\xi }}}}_{N, q}, \varsigma , -2^N{\tilde{m}}+1,2^{N+1}{\tilde{m}}-1)\).
Step 3. For all \(q \in \mathbb {Z}_m\) and \(l\in \mathbb {L}_{N,1}\), compute \({\tilde{t}}_{N,q,\varsigma }(l)\) according to formula (98).
Step 3. For all \(l\in \mathbb {L}_{N,1}\), compute \(\varepsilon _{{\varvec{\xi }}_{N},\varsigma }(l)\) according to formula (100).
The total computational cost of the above algorithm is \(\mathcal {O}(n\log _2 n)\) number of floating point operations, where \(n:=2^N\).
Rights and permissions
About this article
Cite this article
Jiang, Y., Wang, B. & Xu, Y. A Fully Discrete Fast Fourier–Galerkin Method Solving a Boundary Integral Equation for the Biharmonic Equation. J Sci Comput 76, 1594–1632 (2018). https://doi.org/10.1007/s10915-018-0688-8
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10915-018-0688-8