Abstract

We study two numerical methods for the “Good” Boussinesq (GB) equation. Both methods are designed to solve the spatial-temporal pseudo-spectral collocation formulations of the GB equation using the deferred correction methods in one time marching step, where the Fourier series based pseudo-spectral formulation is applied in the spatial direction. The main idea is to iteratively apply a low order method to solve an error equation and refine the provisional solutions until they converge to the high order pseudo-spectral solutions both in space and time. In the first method, an operator splitting approach is introduced as the low order preconditioner in the deferred correction procedure for the temporal Gauss collocation formulation of the original GB equation. The method shows good numerical properties when the deferred correction procedure is convergent and the accuracy requirement is achievable. However, due to the stiffness of the linear differential operators, the Krylov deferred correction (KDC) method has to be applied in order to make the iterations converge. And also, due to the spectral differentiation operator involved, the condition number of the algorithm scales as $$O(N^4)$$ , where N is the number of Fourier terms in the spatial direction. To improve the numerical stability and efficiency, an integral equation approach is applied to “precondition” the GB equation in the second proposed numerical method, by inverting the linear terms of the GB equation analytically. As the nonlinear term of the GB equation is non-stiff, the simple forward Euler’s method preconditioned spectral deferred correction (SDC) iterations converge more efficiently than existing Jacobian-Free Newton–Krylov (JFNK) based KDC implementations, and the condition number of the new formulation is O(1), which leads to a machine precision accuracy at each discrete time step.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call