Installation#

There are (currently) two components to SkellySim: the python portion, and the actual binary. The python portion is used generating config files and precompute data as well as visualization. The binary (C++) portion is for actually running the simulation and generating field data. These two components are completely separate, though we provide them together in the singularity images below. This allows you to analyze and visualize simulation data locally without having to install the full simulation program.

Python modules and scripts (advanced usage)#

virtualenv#

To install the python portion (in your virtual environment, conda environment, or using the pip3 --user option). For a virtualenv

module load python # if you're using modules
python3 -m venv /path/to/my/virtualenv
source /path/to/my/virtualenv/bin/activate
pip3 install git+https://github.com/flatironinstitute/SkellySim

Conda#

conda create -n myenvname
conda activate myenvname
pip3 install git+https://github.com/flatironinstitute/SkellySim

Simulation binary (advanced usage)#

Due to the complicated dependencies and the performance differences depending on what machine you compile them to, it is difficult to provide general purpose binaries. If you don’t need any of this and don’t want to deal with it, please just use the singularity builds. To get optimal performance, or use multi-node MPI, you must build SkellySim and its dependencies from source.

Building from source#

Requirements:

  • Trilinos 13 (with Kokkos, Belos, Teuchos, and Tpetra)

  • PVFMM

  • STKFMM

  • BLAS/LAPACK (OpenBLAS or MKL or your implementations of choice)

  • FFTW (FFTW3 or MKL-fftw)

  • cmake (>=3.10)

  • modern gcc (>=7). Should work with Intel compilers but almost never worth the hassle in my tests

Will add a more detailed explanation here later, but please consult the singularity build script for a general outline for how to build PVFMM + STKFMM + Trilinos + SkellySim.