Finite difference solutions for nonlinear water waves using an immersed boundary method

Yan Xu*, Harry B. Bingham, Yanlin Shao

*Corresponding author for this work

Research output: Contribution to journalJournal articleResearchpeer-review

Abstract

In this article, high‐order finite difference solutions of the exact potential‐flow problem for nonlinear water waves are developed which treat both the free surface and the uneven sea bottom boundary conditions using an immersed boundary method (IBM). The convergence, accuracy, and stability of this approach is first established for the linear problem, using various orders of scheme and different grid discretization strategies. The nonlinear wave problem on a flat bottom is then considered, and the solutions are compared with the highly accurate stream function theory solution. The convergence performance of the numerical solution for this nonlinear wave problem is established. Finally, linear wave shoaling and nonlinear wave propagation over a submerged bar are also tested. A preconditioned iterative solution strategy is also developed and shown to provide optimal scaling of the solution effort with increasing number of unknowns. Compared with existing free surface tracking methods, the IBM retains the same level of accuracy and stability when solving the linear problem. For the nonlinear problem, the IBM behaves reasonably in terms of accuracy, but generally with slightly higher computational effort. When it comes to the wave–body interaction problem, it is expected that the IBM will be advantageous compared with the σ‐transform method, since it removes the necessity of constructing an artificial continuous free‐surface inside the body.
Original languageEnglish
JournalInternational Journal for Numerical Methods in Fluids
ISSN0271-2091
DOIs
Publication statusAccepted/In press - 2020

Fingerprint Dive into the research topics of 'Finite difference solutions for nonlinear water waves using an immersed boundary method'. Together they form a unique fingerprint.

Cite this