philipplk / metis

Project on numerical computation for the dynamics of mechanical systems. Simulation of particle, rigid body and Multibody systems.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

metis

Metis: Matlab-based simulation of dynamical systems.

See license and acknowledgements.

Citation

If you used this code (partially) in your project or found it somehow useful, please cite one or both of the following works:

@article{kinon_ggl_2023,
  author  = {Kinon, Philipp L. and Betsch, P. and Schneider, S.},
  title   = {The {GGL} variational principle for constrained mechanical systems},
  journal = {Multibody Syst. Dyn.},
  volume  = {57},
  pages   = {211--236},
  year    = {2023},
  doi     = {10.1007/s11044-023-09889-6}
}

@article{kinon_structure_2023,
  author  = {Kinon, Philipp L. and Betsch, P. and Schneider, S.},
  title   = {Structure-preserving integrators based on a new variational principle for constrained mechanical systems},
  journal = {Nonlinear Dyn.},
  year    = {2023},
  doi     = {10.1007/s11071-023-08522-7},
  note    = {doi: 10.1007/s11071-023-08522-7}
}

Description

Metis was a mythical Titaness who became the goddess of wisdom, prudence and ingenuity. Ingenuity being the "practical, complex and implicit" kind differs from the other types of wisdom.

Likewise, this project targets the efficient and aesthetically pleasing numerical computation of dynamical systems with or without holonomic constraints: particle systems as well as rigid body systems.

Metis is an object-oriented MATLAB code package - tested with the R2021b version.

A startscript loads the desired input-file. This input-file includes all necessary parameters for the given mechanical problem (geometry, loads, initial values,...), the chosen numerical integration scheme (time-step size, method, simulation time), the Postprocessing routine (plot quantities, animation, export) and the solution technique (max. iterations, tolerance). Metis creates all necessary objects and computes the approximate solution based on the given parameters. Eventually, one can choose to have an animation of the solution, some plots are created and the results are being exported. The simulation is will be tracked by a log-file ./metis.log.

Prerequisites

Theoretical Background

  • Initial Value Problems (IVP) of Constrained Dynamics leading to Differential-algebraic Equations (DAEs)
  • Numerical Integration (Direct Methods, Variational Integrators, Energy-Momentum Schemes)
  • Newton-Rhapson Method
  • Particle Systems
  • Rigid Body Dynamics

Back To The Top


How To Start

  1. Clone this directory or download the .zip folder
  2. Get matlab2tikz (optional)
  3. Open the MATLAB editor or run it with the shell script metis.sh
  4. Open start_metis_single_analysis.m
  5. Adjust <input_file_name> corresponding to a file from /input, for more info look at README_input
[simulation, system, integrator, solver] = Metis('input/<input_file_name>',1,1);
  1. Adjust the path to the matlab2tikz directory in the chosen input-file
  2. Execute start_metis_single_analysis.m for a first simulation
  3. Edit or change input file or create a new one in /input
  4. For error analyses run start_metis_error_analysis.m with corresponding input-file
  5. Have fun!

Back To The Top


References

Hamiltonian Dynamics and Constraints:

Differential-Algebraic Equations:

Numerical Integration:

Rigid Body Dynamics with Directors:

Back To The Top


Author Info

Back To The Top


Acknowledgements

Metis was initialised by Philipp L. Kinon during their master thesis at the Institute of Mechanics (IFM) at Karlsruhe Institute of Technology (KIT), Germany. Subsequently, Philipp worked on the code continuously in the context of academic projects. The achieved results would not have been possible without the support by Prof. Peter Betsch.

Coding support:

Julian K. Bauer (GitHub: JulianKarlBauer)


Back To The Top

About

Project on numerical computation for the dynamics of mechanical systems. Simulation of particle, rigid body and Multibody systems.

License:MIT License


Languages

Language:MATLAB 100.0%Language:Shell 0.0%