The WebGPU version of Celeris solves the enhanced Boussinesq equations of Madsen & Sørensen or the fully nonlinear extended Boussinesq equations with a modern Finite Volume scheme. Details of the numerical approach, etc can be found here:
Lynett, P. et al (2025). Celeris-WebGPU: An Interactive Nearshore Wave Simulator for Engineering Design and Natural Hazard Education. In review, Waterways. https://www.dropbox.com/scl/fi/3jxuxmgh9yd63if8u8yo6/WebGPU-Paper_InReview.pdf?rlkey=3mcroqzl687z8idfotjjyrw1v&dl=0
Tavakkol, S., & Lynett, P. (2017). Celeris: A GPU-accelerated open source software with a Boussinesq-type wave solver for real-time interactive simulation and visualization. Computer Physics Communications, 217, 117-127.
https://www.sciencedirect.com/science/article/abs/pii/S0010465517300784
and here:
Tavakkol, S., & Lynett, P. (2020). Celeris base: An interactive and immersive Boussinesq-type nearshore wave simulation software. Computer Physics Communications, 248, 106966.
https://www.sciencedirect.com/science/article/abs/pii/S0010465519303169
Additions to the Celeris physics engine with the WebGPU implementation include:
Kennedy et al breaking model
Advection-dispersion model for transport of breaking-created foam
Updated moving boundary scheme for accuracy and stability
Passive pollutant transport
Spatially varying friction models, and user interactivity to place friction components
Sediment transport model (under development)
Ship-generated waves (under development)
In general, the sequence of the solver follows that of previous implementations. With WebGPU, the control file has been written in Javascript, and all shaders converted to wgsl. The source code can be found here: https://github.com/plynett/plynett.github.io
Hello Patrick, thanks for sharing this preprint, it is very interesting and helpful for understanding.
Do you have an example on how to setup the initial distribution of the passive scalar transport model?