With the appropriate library abstractions, basic GPGPU Scientific Computingbecomes a straight-forward parallelization task. However, implementations of more advanced numerical methods remain difficult because of severe restrictions in data handling. One of the aims of this project is to investigate how adaptive data handling can be performed in parallel under these restrictive conditions. In particular, we want to increase the resolution in certain parts of the computational domain depending on the data. Glift  offers an abstraction for geometric grid refinement on GPUs that separates the aspects of data layout and processing. Thus, both aspects can be improved and replaced independently, allowing code reusability, performance exploration of different parallel tradeoffs, and adaption to new hardware without application code changes.
A different idea for resolution enhancement is to use particles for the correction of features that are only coarsely represented by the grid. In the particle level set method particles placed near the interface help to preserve the level set evolution more faithfully. Despite the restricted scattering capabilities of GPUs one can devise an efficient parallel coupling of particle and grid data .
1. A hierarchical page table allows parallel access to adaptive data structures in Glift. Glift abstracts the details offering a simple interface to the programmer.
2. Dye advection of a spherical volume in a time-dependent 3D flow field. The injection volume is marked in red, the trace of the dye in white. Without the particle correction the trace is either diffusive (on the left) or disappears (in the middle), only with particle correction we obtain a sharp stable trace.