Skip to content

MUSEN: An open-source framework for GPU-accelerated DEM simulations

License

Notifications You must be signed in to change notification settings

ElsevierSoftwareX/SOFTX-D-20-00025

 
 

Repository files navigation

# MUSEN
MUSEN is an open-source DEM simulation framework.

For more information, please check the https://msolids.net/documentation. 

For new versions and updates, please check https://github.com/msolids/musen/releases or https://msolids.net/musen/download.

# Requirements 
MUSEN should install and work on all latest versions of Windows or Linux (Ubuntu or Red Head).
Requires Visual C++ Redistributable for Visual Studio 2017 to run.

# Compilation for Windows
A fully functional version can be compiled and built with Microsoft Visual Studio 2017. 

Requirements on Windows:
- Microsoft Visual Studio 2017
- Qt 5.12.3 msvc2017_64
- Qt Visual Studio Tools for Visual Studio 2017
- Git
- CUDA 10
- cmake

How to build for Windows using Microsoft Visual Studio 2017:
1) Download and install cmake on your computer
	https://cmake.org/download/
2) Execute two files
  .\MUSEN\ExternalLibraries\RunZLibCompile.bat
  .\MUSEN\ExternalLibraries\RunProtobufCompile.bat
3) Download and install CUDA 10
4) Download and install Qt 5.12.3 
5) Open MUSEN.sln file with Visual Studio and start compilation


# Compilation for Linux

Requirements on Linux:
- cmake 3.11.2
- gcc-7, g++-7

Build on Linux (Ubuntu version 18.04 or higher):
1) Move to ./MUSEN_Linux/
2) Run
   sudo ./install_prerequisites_local.sh
3) Run
   sudo ./linux_copy_files.sh
4) Run
   sudo ./make_musen_local.sh
5) Compiled version can be found
   ./MUSEN_build/


# Code organization
- Databases - agglomerates, geometries and materials databases
- ExternalLibraries - external libraries used in MUSEN (zlib and protobuf)
- GeneralFunctions - main functions and types used in MUSEN 
- GeneralFunctions\SimResultsStorage - low-level functions for data handling (load and save data)
- MUSEN
- MUSEN\CMusen - command-line version of MUSEN
- MUSEN\Models - contact models (particle-particle, particle-wall, solid bonds, ...)
- MUSEN\Modules 
- MUSEN\Modules\BondsGenerator - generate bonds between particles
- MUSEN\Modules\ContactAnalyzer - general functions for fast contacts detection 
- MUSEN\Modules\FileManager - set of functions to convert, merge or modify .mdem files with simulation results
- MUSEN\Modules\ObjectsGenerator - dynamically generates particles or agglomerates during simulation
- MUSEN\Modules\PackageGenerator - generate packing of particles prior simulation
- MUSEN\Modules\ResultsAnalyzer - analyzer of simulation results (export necessary data to csv files)
- MUSEN\Modules\ScriptInterface - analyze input scripts for command-line version
- MUSEN\Modules\SimplifiedScene - simplified entity generated from SystemStructure and which is used during simulation
- MUSEN\Modules\Simulator - CPU and GPU simulators
- MUSEN\Modules\SystemStructure - main entity which stores the information about whole scene
- MUSEN\QTDialog - Qt dialog for main window
- MUSEN_Linux - set of scripts to compile MUSEN for linux
- QTDialogs - different Qt-based dialogs of GUI


# Third-party tools and libraries
- [Qt 5.12.3](https://www.qt.io/) – The Qt Company - [LGPL v3](https://doc.qt.io/qt-5/lgpl.html)
- [Protobuf 3.9.1](https://github.com/protocolbuffers/protobuf/) – Google Inc. - [BSD License](https://github.com/protocolbuffers/protobuf/blob/master/LICENSE)
- [zlib v1.2.11](https://www.zlib.net/) – Jean-loup Gailly and Mark Adler - [zlib License](https://www.zlib.net/zlib_license.html)
- [CUDA 10.0](https://developer.nvidia.com/cuda-zone) – Nvidia Corporation - [NVIDIA License](https://developer.download.nvidia.com/compute/cuda/10.0/Prod/docs/sidebar/EULA.pdf)



About

MUSEN: An open-source framework for GPU-accelerated DEM simulations

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 86.5%
  • Cuda 7.9%
  • C 3.4%
  • GLSL 1.2%
  • CMake 0.4%
  • Shell 0.3%
  • Other 0.3%