Before you try to build SSAGES, make sure that you have the following packages installed:
Package name in Ubuntu repository
1.8 or higher
4.9 or higher
2.8 or higher
Get the Source Code¶
There are two ways of getting the source code for SSAGES: Download a ZIP file from GitHub or clone the Git repository. We strongly recommend the second method, as it allows you to easily stay up-to-date with the latest version.
To clone the Git repository, call
git clone https://github.com/MICCoM/SSAGES-public.git
SSAGES supports a number of simulation engines. If you have already downloaded
an engine’s source files, the general steps for building SSAGES with this
engine are as follows. (The example here assumes the engine is called “Engine”
and uses the respective CMake flag
mkdir build/ cd build/ cmake .. -DENGINE_SRC=/path/to/engine make
The different supported engines have respective
_SRC flags to specify
their source code path. For engine-specific steps and options, consult the
Engines page, which provides more in-depth directions. SSAGES
supports most CMake flags, including
-DCMAKE_BUILD_TYPE or specifying the
It is possible to have SSAGES auto-download the source codes for LAMMPS and
GROMACS. This is done by providing the option
-DLAMMPS=YES for LAMMPS and
-DGROMACS=YES for GROMACS to CMake. However, in many cases, it will be
necessary to build SSAGES using your local copy of the MD engine source code.
For example, if you have modified it to fit a special need, LAMMPS or GROMACS
does not support natively.
mkdir build/ cd build/ cmake .. -DLAMMPS=YES make
mkdir build/ cd build/ cmake .. -DGROMACS=YES make
This set of commands will automatically download LAMMPS/GROMACS and build it together with SSAGES.
For these and other supported engines, you can build with a local copy of the MD engine source code, as described in the Engines section. This can be useful if you are building on a system that has limited or no connectivity or if you want to add user modifications to the engine’s source code before compiling.
In order to run SSAGES, you call the executable followed by the input file. For example, with an input file called input.json, simple single-core jobs can call
while jobs running on multiple threads can call
mpiexec -np 6 ./ssages input.json
-np flag dictates the total number of processors on which the
simulation will run and input.json is the input file. For more information,
consult the Input Files section.