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:
cppMain DEM simulation @Franzzzzzzzz - src/CoarseGraining:
cppMulti-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:
cppServer 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
livefolder, 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.