FLY is a parallel collision-less N-body code which relies on the hierarchical oct-tree
domain decomposition introduced by J. Barnes & P. Hut (1986) for the calculation
of the gravitational force.
FLY is a parallel treecode which makes heavy use of the one-sided communication
paradigm to handle the management of the tree structure. In its public version the code
implements the equations for cosmological evolution, and can be run for different
The MPI-2 library was made available with good declared performances for IBM SP System and it is adopted in the current FLY version, to increase the code portability: now FLY can run on all the Linux Cluster system using the free MPICH-2 library.
In the FLY code, we have implemented a set of cosmological equations of motion, solving the standard particle equations of motion for a Friedmann cosmology.
In 2004 we have completed the porting of FLY using MPI-2 standard and we started the development of the interface that allows us to execute cosmological simulations by combining the capabilities of two different codes: FLY, a parallel treecode for N-Body simulations, and FLASH, a code for numerical hydrodinamic. This project is developed in a collaboration with the FLASH center of Chicago. This task is reached without heavy modifications of the codes, but by means of an interface that handles the communications between them. The underlying hypothesis is that the two codes are only loosely coupled, i.e. they interact only by exchanging the information to build the gravitational potential. This project does not aim at building a new N-body/hydro code, but a more general tool, because the interface will in principle allows us to couple FLASH and FLY with many different codes. FLASH is a modular, adaptive-mesh, parallel simulation code capable of handling general compressible flow problems found in many astrophysical environments.
Until now FLASH has mainly been used to address several problems related to thermonuclear flashes on the surfaces of compact stars.
It is capable of handling the extreme resolution and physical requirements imposed by conditions in this explosions and to do so while making efficient use of parallel computer systems.
The mesh of FLASH is generated using Paramesh. Paramesh structured grid blocks are distributed to cover the whole computational domain and the result is a tree of blocks as represented in the figure
There are two main questions to be addressed in the project of this interface:
The FLY-FLASH interface will allow the two codes to execute independently and communicate by making use of the new process management features of MPI-2.