  In this work, we detail the GPU-porting of an in-house pseudo-spectral solver
tailored towards large-scale simulations of interface-resolved simulation of
drop- and bubble-laden turbulent flows. The code relies on direct numerical
simulation of the Navier-Stokes equations, used to describe the flow field,
coupled with a phase-field method, used to describe the shape, deformation, and
topological changes of the interface of the drops or bubbles. The governing
equations -Navier-Stokes and Cahn-Hilliard equations-are solved using a
pseudo-spectral method that relies on transforming the variables in the
wavenumber space. The code targets large-scale simulations of drop- and
bubble-laden turbulent flows and relies on a multilevel parallelism. The first
level of parallelism relies on the message-passing interface (MPI) and is used
on multi-core architectures in CPU-based infrastructures. A second level of
parallelism relies on OpenACC directives and cuFFT libraries and is used to
accelerate the code execution when GPU-based infrastructures are targeted. The
resulting multiphase flow solver can be efficiently executed in heterogeneous
computing infrastructures and exhibits a remarkable speed-up when GPUs are
employed. Thanks to the modular structure of the code and the use of a
directive-based strategy to offload code execution on GPUs, only minor code
modifications are required when targeting different computing architectures.
This improves code maintenance, version control and the implementation of
additional modules or governing equations.
