Structure-Resolved Reaction-Diffusion Simulation Software by Johnson Lab, JHU
To build serial NERDSS, you need:
- A C++ compiler:
- For macOS, install XCode
- For Ubuntu, install a compiler through apt
- GNU Scientific Library (GSL) version 1.0 or higher:
- For macOS, install via Homebrew
- For Ubuntu, install via apt
- To compile using make:
- Navigate to the main directory
- Run make serial
- The executable will be placed in the ./bin directory
To build parallel NERDSS, you need to checkout to the mpi branch:
- MPI:
- For macOS, install OpenMPI with Homebrew: brew install open-mpi
- For Ubuntu, install OpenMPI through apt: sudo apt install openmpi-bin libopenmpi-dev
- To compile using make:
- Navigate to the main directory
- Run make mpi (with profiling support: make mpi ENABLE_PROFILING=1)
- The executable will be placed in the ./bin directory
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)
Go to the NERDSS server.
-
Example input files are located in the subdirectories within the sample_inputs folder. They can also be generated using the python GUI program, which is also included in the ioNERDSS tool.
-
To start the serial simulation, use the command ./nerdss -f parms.inp.
-
To start the parallel simulation, use the command mpirun -np $nprocs ./nerdss_mpi -f parms.inp.
-
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.
- Use the ioNERDSS PyPi library for visualizing simulation results.
- Install ioNERDSS with pip install ioNERDSS.
- Refer to the ionerdss repository for more details.
- Choose meaningful names for variables, functions, and classes. Comment on complex logic, and maintain consistent indentation and formatting. Use CamelCase for variables, snake_case for functions, and PascalCase for classes. Avoid global variables.
- Follow the Google C++ Style Guide and the C++ Core Guidelines. Prefer using the C++ Standard Library and modern C++ features. Provide comments and documentation to explain complex or non-obvious code sections. Write unit tests to ensure code quality.