For a live demonstration of NDDEM, see here.
This git repository contains the code for discrete element numerical modelling of granular material in a general number of spatial dimensions. The Dropbox folder for the code should not be used anymore.
The code is split into different modules, with different purposes. The main modules are:
- src/Dem:
cpp
Main DEM simulation @Franzzzzzzzz - src/CoarseGraining:
cpp
Multi-dimensional coarse-graining code. @Franzzzzzzzz - live:
html+js
: interactive examples of DEM simulations. Most of the results can be seen from the SciGEM education page. @benjym - visualise:
html+js
: VR visualisation module of NDDEM @benjym
- src/TexturingServer:
cpp
Server to generate textures to visualise rotating particles. @Franzzzzzzzz
This code can be made to work with Windows, Mac and Linux.
To install the required packages on a recent version of Ubuntu, try:
sudo apt install doxygen texlive texlive-font-utils cmake build-essential libboost-dev
From the root directory of this repository, make a build
folder and move into it with:
mkdir build
cd build
Use cmake
and then make
on the src
folder to compile the different components. The final binary executables will be stored within a newly created bin
folder.
cmake ../src
make DEMND
cd ..
You can run an example from the examples
folder as:
./bin/DEMND 2 42 examples/in.example
To run a simulation on multiple threads, you need to run something like this in the terminal before running the simulation (replace 4 with the number of threads you want to use):
export OMP_NUM_THREADS=4
- Install and activate emscripten first.
- Follow the steps in the script file CI_build_script.sh, adapting them to your setup.
- Then, in the
live
folder, you should be able to run the local visualisation withwebpack build && webpack serve
.
- The DEM code uses specific script files of sequential commands describing the simulation. List of available commands here.
- The CoarseGraining code uses json formatted input script files. List of available commands here.
If you would like to contribute to the code, please contact francois.guillard [at] sydney.edu.au. For feature requests, please use the issue tracker above.
This project uses many open source resources and is itself distributed under the GNU GPL License - see the INSTALL.md and LICENSE files for details.
For help or questions, please contact francois.guillard [at] sydney.edu.au.