SPH
|
OpenSPH is an integrator of hydrodynamic equations using SPH discretization in space, currently specialized on simulations of asteroid impacts. The code is being developed on Astronomical Institute of Charles University in Prague. It aims to provide a fast, versatile and easily extensible SPH solver utilizing modern CPU features (SSE/AVX instruction sets).
The latest version can be downloaded as a Debian buster package. Install it via:
The package contains three executables:
opensph
- main program with graphical interfaceopensph-cli
- command-line utility allowing to run simulations set up by opensph
opensph-info
- command-line utility for quick inspection of metadata of OpenSPH output filesThe code can be downloaded from GitLab repository. Using git, you can clone the code with
To get the latest (experimental) version, switch to develomnent branch using
The code uses many c++14 features, so a reasonably new version of a C++ compiler is necessary. The compilation has been tested on gcc 6.3.1 and clang 4.0.0. Prerequisities of the code are:
Another optional dependencies of the code are:
use_tbb
)use_openmp
)use_eigen
)use_chaiscript
)use_vdb
)use_hdf5
)The compilation should be as easy as
where version can be one of:
Use different build directory for each version!
By default, OpenSPH uses a custom thread pool for parallelization. It is possible to use Intel TBB library instead, by adding use_tbb
flag:
The project sph.pro
builds command-line launcher and the GUI application that allows to set up and run simulations, as well as view previously saved results.
To further build the code examples, run:
Building the code on Windows is currently a bit difficult. Consider using pre-built executables, uploaded to a Dropbox folder.
Simulation can be easily set up in the graphical application opensph
, using a node-based editor. See category 'presets' on the right side of the editor for some basic simulations.
Default simulation uses the following:
OpenSPH contains useful tools for visualization of particles. It allows rendering individual spherical particles as well as rendering of isosurface, reconstructed from particles. The color palette can be specified from arbitrary state quantities, making it easy to visualize particle velocities, internal energy, etc. The surface of bodies can be also textured with an arbitrary bitmap image.
Besides the orthographic and perspective projection, a fisheye camera for fulldome animations and a spherical 360° camera can be used.
See changelog
See documentation
See examples
Feel free to contact me at sevecek@sirrah.troja.mff.cuni.cz. Any feedback is highly appreciated.