Abstract
We present the minimally-invasive exchange of the regular Cartesian grid in the
lattice-Boltzmann solver of ESPResSo by a dynamically-adaptive octree grid.
Octree grids are favoured by computer scientists over other grid types as they
are very memory-efficient. In addition, they represent a natural generalisation
of regular Cartesian grids, such that most discretisation details of a regular
grid solver can be maintained. Optimised codes, however, require a special
tree-oriented grid traversal, which typically conflicts with existing
simulation codes using various iterators, some for only parts of the grid,
e.g., boundaries. ESPResSo is a large software package developed for
soft-matter simulations involving fluid flow, electrostatic, and electrokinetic
effects, and molecular dynamics. The currently used regular Cartesian grid
hinders the simulation of realistic domain sizes and significant time periods,
a problem that can be solved using grid adaptivity. In a first step, we focus
on the lattice-Boltzmann flow solver in ESPResSo. p4est is a grid framework,
that already provides dynamically adaptive quadtree and octree grids together
with high-level interfaces for flexible grid traversals with direct neighbour
access in all grid components. In this paper, we first describe extensions of
p4est that were necessary to fulfill certain application requirements. The
second part of our work consists of the minimally-invasive changes in ESPResSo
preserving the expertise accumulated in the software's implementation over
years. Our numerical results demonstrate physical correctness of the
implementation, good parallel scalability and low overhead of the dynamical
grid adaptivity. These are prerequisites to actually profit from grid
adaptivity in terms of being able to simulate larger domains over longer time
periods with limited computational resources. Thus, the current status forms a
solid basis for further steps such as the development of refinement criteria,
the setup of more realistic application scenarios, and a GPU implementation.
Users
Please
log in to take part in the discussion (add own reviews or comments).