Installation Guide

NERDSS

NERDSS (NonEquilibrium Reaction-Diffusion Self-assembly Simulator) requires a C++ compiler and the GNU Scientific Library (GSL). Once these prerequisites are installed, you can compile NERDSS from source.

0. Download the NERDSS source code from the official repository

git clone https://github.com/mjohn218/NERDSS.git
cd NERDSS

1. Install a C++ Compiler

  • macOS: Install XCode or Command Line Tools

  • Ubuntu: Install via apt, for example:

sudo apt-get install g++

2. Install GNU Scientific Library (GSL) (v2.5+)

  • macOS: Use Homebrew:

brew install gsl
  • Ubuntu: Use apt:

sudo apt-get install libgsl-dev

3. Compile NERDSS

  • Run

make clean
make serial
  • The executable nerdss will appear in the ./bin directory

For more details on using NERDSS, see its documentation.

Parallel NERDSS

To build NERDSS with MPI support, follow these steps:

1. Install a C++ Compiler with MPI support:

  • macOS: Install OpenMPI with Homebrew:

brew install open-mpi
  • Ubuntu: Install OpenMPI through apt:

sudo apt install openmpi-bin libopenmpi-dev

2. Install GNU Scientific Library (GSL) (v2.5+):

  • macOS: Use Homebrew:

brew install gsl
  • Ubuntu: Use apt:

sudo apt install libgsl-dev

3. Compile NERDSS with MPI support:

  • Checkout to the mpi branch:

git checkout mpi
  • Run:

make clean
make mpi
  • The executable nerdss_mpi will appear in the ./bin directory

4. Running Simulations

To start a parallel simulation, use the command:

mpirun -np 4 ./nerdss_mpi -f parms.inp

ionerdss

ionerdss can be installed directly from PyPI (recommend to conda environment):

0. Create a conda environment (optional but recommended)

Download and install Anaconda or Miniconda, then create a new conda environment for ionerdss:

conda create -n ionerdss python=3.9
conda activate ionerdss

1. Install ioNERDSS

pip install ioNERDSS

After installation, you can import ionerdss in Python or Jupyter Notebook:

import ionerdss as ion
ion.some_function()

For documentation on setting up models and analyzing simulator output, see the ionerdss tutorial.