Skip to content

JohnsonBiophysicsLab/NERDSS

 
 

Repository files navigation

Project banner

NERDSS Development

Release License C++ Make Platforms

Structure-Resolved Reaction-Diffusion Simulation Software by Johnson Lab, JHU

Installation


Build Serial NERDSS

Step 1 — Install a C++ Compiler
macOS

Install Xcode via App Store. Alternatively, use commandline:

xcode-select --install
Ubuntu / Linux
sudo apt update
sudo apt install build-essential

Step 2 — Install GNU Scientific Library (GSL ≥ 1.0)
macOS (Homebrew)
brew install gsl
Ubuntu / Linux
sudo apt install libgsl-dev

Step 3 — Compile Serial Version

From the NERDSS root directory:

make serial

Executable will appear in:

./bin

Build Parallel NERDSS (MPI)

Step 1 — Switch to the MPI Branch
git checkout mpi

Step 2 — Install MPI (OpenMPI)
macOS (Homebrew)
brew install open-mpi
Ubuntu / Linux
sudo apt install openmpi-bin libopenmpi-dev

Step 3 — Compile MPI Version

From the NERDSS root directory:

make mpi

Executable will appear in:

./bin

Quick Verification

After building, check:

ls ./bin

You should see the compiled executable(s).


Summary
Build Type Command
Serial make serial
MPI git checkout mpimake mpi

Run Simulations

Run a quick trial with Google Colab

Click the following link to make a copy of the iPython notebook in your Google Colab and following the instructions on the Notebook (Note currently the link is under NERDSS development repo. The link will need to be updated once synced to released repo)

Open in Colab

Compile and run NERDSS on your local machine

  1. Example input files are located in the subdirectories within the sample_inputs folder.

  2. To start the serial simulation, use the command ./nerdss -f parms.inp.

  3. To start the parallel simulation, use the command mpirun -np $nprocs ./nerdss_mpi -f parms.inp.

  4. To debug the parallel code, use the command mpirun -np 2 xterm -e gdb --ex 'b error' --ex r --args ./nerdss_mpi -f parms.inp -s 123.

Analyzing Results

  1. Use the ioNERDSS PyPi library for visualizing simulation results.
  2. Install ioNERDSS with pip install ioNERDSS.
  3. Refer to the ionerdss repository for more details.

Style Guides for Developers

  1. We use the Google C++ Style Guide and the C++ Core Guidelines and prefer the C++ Standard Library and modern C++ features.
  2. Provide comments and documentation to explain complex or non-obvious code sections. Write unit tests to ensure code quality.

Packages

 
 
 

Contributors

Languages

  • C++ 90.3%
  • Jupyter Notebook 5.2%
  • Python 2.6%
  • MATLAB 1.6%
  • Makefile 0.2%
  • CMake 0.1%