Contributed Code

Barnes-Hut Tree Poisson Solver for GPUs (using CUDA)

This code has been contributed by Gunther Lukat, and is made available for download without restrictions as a patch file. The patch contains an alternative version of a Barnes-Hut Tree solver implementation, as well as some infrastructure for using CUDA that may be useful for adding GPU-supported implementations of other units of FLASH in the future.

The implementation is essentially described in this paper; the code in this patch has been reorganized (and some routines and variables renamed), in collaboration with the Flash Center, to better fit in with the FLASH releases.

For FLASH 4.3:

Download the patch file FLASH4.3-CUDA-BarnesHut_lukat_0.9.diff, move it into the top directory (above source) of a FLASH4.3 source tree, and apply the command
    patch -p0 < FLASH4.3-CUDA-BarnesHut_lukat_0.9.diff
in the top directory.

This patch file may or may not also work with slightly different versions of FLASH.

For FLASH 4.4:

Download the patch file FLASH4.4-CUDA-BarnesHut_lukat_0.9.diff, move it into the top directory (above source) of a FLASH4.4 source tree, and apply the command
    patch -p0 < FLASH4.4-CUDA-BarnesHut_lukat_0.9.diff
in the top directory.

Except for trivial differences in some comments, these changes are identical to the ones contained in the patch file for FLASH 4.3 above.

Discussion and questions about this code are appropriate for the flash-users mailing list, or contact the author directly.