Skip to content

Real-time simulation program to simulate dynamic deformable linear objects with friction on a 2D surface.

Notifications You must be signed in to change notification settings

maierbn/dynamic_linear_object

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Installation

The program was developed and tested on Linux. To compile and run the simulation, execute the following:

cd build
make
./simulation

make will by default compile the release target, debug and profile targets are also available. By default, the simulation uses as many threads as there are cores on the processor. To explicitely specify, e.g., 2 threads, run

OMP_NUM_THREADS=2 ./simulation

Code

The code is written in C++ and does intentionally not use object orientation. This allows easier understanding of the architecture.

In the main.cpp file, configurations for the four experiments exist and can be selected by adjusting the scenario variable.

Most of the formulas are coded in the terms/terms.cpp file. Storage for matrices and vectors is defined globally in the file terms/globals.h.

The definition of prescribed displacements and angles is performed in the file terms/problem_definition.cpp

The linear system is solved using the free version of the alglib numeric library, which is licensed under the GPL version 2 or later.

Visualization

The simulation program outputs csv files with simulation results. The python script plot.py in the build folder can be used to visualize the results. It will be called automatically be the simulation.

License

This code is licensed under GPL version 3.

About

Real-time simulation program to simulate dynamic deformable linear objects with friction on a 2D surface.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages