1,724 research outputs found
A GPU Implementation for Two-Dimensional Shallow Water Modeling
In this paper, we present a GPU implementation of a two-dimensional shallow
water model. Water simulations are useful for modeling floods, river/reservoir
behavior, and dam break scenarios. Our GPU implementation shows vast
performance improvements over the original Fortran implementation. By taking
advantage of the GPU, researchers and engineers will be able to study water
systems more efficiently and in greater detail.Comment: 9 pages, 1 figur
GPU driven finite difference WENO scheme for real time solution of the shallow water equations
The shallow water equations are applicable to many common engineering problems involving modelling of waves dominated by motions in the horizontal directions (e.g. tsunami propagation, dam breaks). As such events pose substantial economic costs, as well as potential loss of life, accurate real-time simulation and visualization methods are of great importance. For this purpose, we propose a new finite difference scheme for the 2D shallow water equations that is specifically formulated to take advantage of modern GPUs. The new scheme is based on the so-called Picard integral formulation of conservation laws combined with Weighted Essentially Non-Oscillatory reconstruction. The emphasis of the work is on third order in space and second order in time solutions (in both single and double precision). Further, the scheme is well-balanced for bathymetry functions that are not surface piercing and can handle wetting and drying in a GPU-friendly manner without resorting to long and specific case-by-case procedures. We also present a fast single kernel GPU implementation with a novel boundary condition application technique that allows for simultaneous real-time visualization and single precision simulations even on large ( > 2000 × 2000) grids on consumer-level hardware - the full kernel source codes are also provided online at https://github.com/pparna/swe_pifweno3
GPU Accelerated Discontinuous Galerkin Methods for Shallow Water Equations
We discuss the development, verification, and performance of a GPU
accelerated discontinuous Galerkin method for the solutions of two dimensional
nonlinear shallow water equations. The shallow water equations are hyperbolic
partial differential equations and are widely used in the simulation of tsunami
wave propagations. Our algorithms are tailored to take advantage of the single
instruction multiple data (SIMD) architecture of graphic processing units. The
time integration is accelerated by local time stepping based on a multi-rate
Adams-Bashforth scheme. A total variational bounded limiter is adopted for
nonlinear stability of the numerical scheme. This limiter is coupled with a
mass and momentum conserving positivity preserving limiter for the special
treatment of a dry or partially wet element in the triangulation. Accuracy,
robustness and performance are demonstrated with the aid of test cases. We
compare the performance of the kernels expressed in a portable threading
language OCCA, when cross compiled with OpenCL, CUDA, and OpenMP at runtime.Comment: 26 pages, 51 figure
An entropy stable discontinuous Galerkin method for the shallow water equations on curvilinear meshes with wet/dry fronts accelerated by GPUs
We extend the entropy stable high order nodal discontinuous Galerkin spectral
element approximation for the non-linear two dimensional shallow water
equations presented by Wintermeyer et al. [N. Wintermeyer, A. R. Winters, G. J.
Gassner, and D. A. Kopriva. An entropy stable nodal discontinuous Galerkin
method for the two dimensional shallow water equations on unstructured
curvilinear meshes with discontinuous bathymetry. Journal of Computational
Physics, 340:200-242, 2017] with a shock capturing technique and a positivity
preservation capability to handle dry areas. The scheme preserves the entropy
inequality, is well-balanced and works on unstructured, possibly curved,
quadrilateral meshes. For the shock capturing, we introduce an artificial
viscosity to the equations and prove that the numerical scheme remains entropy
stable. We add a positivity preserving limiter to guarantee non-negative water
heights as long as the mean water height is non-negative. We prove that
non-negative mean water heights are guaranteed under a certain additional time
step restriction for the entropy stable numerical interface flux. We implement
the method on GPU architectures using the abstract language OCCA, a unified
approach to multi-threading languages. We show that the entropy stable scheme
is well suited to GPUs as the necessary extra calculations do not negatively
impact the runtime up to reasonably high polynomial degrees (around ). We
provide numerical examples that challenge the shock capturing and positivity
properties of our scheme to verify our theoretical findings
Domain-Specific Acceleration and Auto-Parallelization of Legacy Scientific Code in FORTRAN 77 using Source-to-Source Compilation
Massively parallel accelerators such as GPGPUs, manycores and FPGAs represent
a powerful and affordable tool for scientists who look to speed up simulations
of complex systems. However, porting code to such devices requires a detailed
understanding of heterogeneous programming tools and effective strategies for
parallelization. In this paper we present a source to source compilation
approach with whole-program analysis to automatically transform single-threaded
FORTRAN 77 legacy code into OpenCL-accelerated programs with parallelized
kernels.
The main contributions of our work are: (1) whole-source refactoring to allow
any subroutine in the code to be offloaded to an accelerator. (2) Minimization
of the data transfer between the host and the accelerator by eliminating
redundant transfers. (3) Pragmatic auto-parallelization of the code to be
offloaded to the accelerator by identification of parallelizable maps and
reductions.
We have validated the code transformation performance of the compiler on the
NIST FORTRAN 78 test suite and several real-world codes: the Large Eddy
Simulator for Urban Flows, a high-resolution turbulent flow model; the shallow
water component of the ocean model Gmodel; the Linear Baroclinic Model, an
atmospheric climate model and Flexpart-WRF, a particle dispersion simulator.
The automatic parallelization component has been tested on as 2-D Shallow
Water model (2DSW) and on the Large Eddy Simulator for Urban Flows (UFLES) and
produces a complete OpenCL-enabled code base. The fully OpenCL-accelerated
versions of the 2DSW and the UFLES are resp. 9x and 20x faster on GPU than the
original code on CPU, in both cases this is the same performance as manually
ported code.Comment: 12 pages, 5 figures, submitted to "Computers and Fluids" as full
paper from ParCFD conference entr
Real-time lattice boltzmann shallow waters method for breaking wave simulations
We present a new approach for the simulation of surfacebased fluids based in a hybrid formulation of Lattice Boltzmann Method for Shallow Waters and particle systems. The modified LBM can handle arbitrary underlying terrain conditions and arbitrary fluid depth. It also introduces a novel method for tracking dry-wet regions and moving boundaries. Dynamic rigid bodies are also included in our simulations using a two-way coupling. Certain features of the simulation that the LBM can not handle because of its heightfield nature, as breaking waves, are detected and automatically turned into splash particles. Here we use a ballistic particle system, but our hybrid method can handle more complex systems as SPH. Both the LBM and particle systems are implemented in CUDA, although dynamic rigid bodies are simulated in CPU. We show the effectiveness of our method with various examples which achieve real-time on consumer-level hardware.Peer ReviewedPostprint (author's final draft
- …