Code Monkey home page Code Monkey logo

rockable's Introduction

What is Rockable?

Rockable is a DEM code written in C++ by [email protected]. The two main specificities of the code are (i) to hold sphero-polyhedral shapes, (ii) to manage breakable interfaces. It is developed for an academic usage. This means that the code is not intended to be a tool for all purposes. It can easily be used to do what it is designed for, but to extend it, it is necessary to master both the model (DEM, complex shapes and interaction laws) and its implementation (data structure). The benefit of a good understanding is to avoid a "hacking" that would eventually limit the developed possibilities. In other words, the design of the code (neither too specific nor too general) is intended to avoid any tendency towards a single thought.

The program uses very few (if any) third-party libraries. The calculation code itself is self-sufficient. It relies only on a few small "headers-only" libraries embedded in the folder common. On the other hand, the 3D visualization software (see) uses the OpenGL programming interface.

The use of the code is not interfaced by any tool (like lua, python or any graphical interface) to facilitate its use, except the input format as described here. This makes it particularly streamlined and greatly facilitates its integration with other calculation codes. It is in this sense that Rockable is qualified of "academic code".

Folders

  • common: header-only libraries used by Rockable or processing tools. This is now replace by the library toofus that can be found on GitHub.
  • doc: place to generate the doxygen html documentation of the source files of Rockable
  • sphinxdoc: user documentation (sphinx with ReStructuredText)
  • examples: examples for usage tutorials or for testing features
  • prepro: some pre-processing tools
  • src: Rockable C++ source files
  • test: Rockable regression test files
  • deps: Source files for Rockable dependencies
  • BUILD: Compilation files of the code
  • INSTALL: Binaries of Rockable routines

Credits

The code was initially developed by Vincent Richefeu, at Laboratoire 3SR, to model rockfalls and rock avalanches. This has been done through The PhD work of Stiven Cuervo and Bruna Garcia, but it actually started before in a code named DEMbox (no longer maintained).

Then, the breakable interfaces have been implemented during the PhD work of Marta Stasiak. A number of improvements have been added at that time thanks to intensive review with Gael Combe, Laboratoire 3SR.

New functionalities are being studied thanks to new collaborations of people from CEA, IATE and CNRS. For example, Lhassan Amarsid (CEA) is working on the introduction of periodic boundary conditions, and multi-processor computing with domain decomposition. Farhang Radjai and students, may introduce new breakable interfaces with energy-based criteria.

How to install

The source code can be cloned from the SourceSup git repository. Obvioulsly, you need to be allowed. The git command may look something like:

git clone https://[email protected]/authscm/yourLogin/git/rockable/rockable.git

where yourLogin is your own login in SourceSup. Another way to get this command line is to go in "Ma Page" in SourceSup site, find "Rockable" and then "Code Source". The command can be copy-pasted (choose "via smart HTTP").

Using your OS package manager (yum, apt, brew etc) you will need to install several package before compiling: glfw3, opengl,freeglut, libpng2 (optionnal).

If you are lucky, the compilation is as simple as:

bash install_rockable.sh

The compilation is done in the BUILD directory and the binaries go to the INSTALL directory

Then, if needed, you can manage compilation options (profiling with MATools, full fetch of dependencies, see compilation, prepro compilation etc) using ccmake:

cd BUILD
ccmake .
# Set up options + `c` + `e` + `g`
cmake ..
make -j
make install 

How to run

Before runing rockable you will need to source rockable environnement to add the INSTALL directory to your standard binaries PATH:

source Env_rockable.sh

Then you can launch Rockable everywhere using:

rockable my_input_file.txt

Some envisioned features

rockable's People

Contributors

richefeu avatar rprat-pro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.