Computing Constrained Mechanical Systems.
See license and acknowledgements.
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}
}
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
.
- MATLAB
- matlab2tikz (optional)
- 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
- Clone this directory or download the .zip folder
- Get matlab2tikz (optional)
- Open the MATLAB editor or run it with the shell script metis.sh
- Open start_metis_single_analysis.m
- 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);
- Adjust the path to the matlab2tikz directory in the chosen input-file
- Execute start_metis_single_analysis.m for a first simulation
- Edit or change input file or create a new one in /input
- For error analyses run start_metis_error_analysis.m with corresponding input-file
- Have fun!
Hamiltonian Dynamics and Constraints:
Differential-Algebraic Equations:
Numerical Integration:
- Hairer, Lubich, Wanner: Geometric numerical integration: structure-preserving algorithms for ordinary differential equations, 2006
- Lew, Mata: A Brief Introduction to Variational Integrators, 2016
- Marsden, West: Discrete mechanics and variational integrators, 2001
- Leyendecker, Marsden, Ortiz: Variational integrators for constrained dynamical systems, 2008
- Gonzalez: Time integration and discrete Hamiltonian systems, 1996
Rigid Body Dynamics with Directors:
- GitHub - philipplk
- Website - Philipp L. Kinon, Karlsruhe Institute of Technology (KIT)
- ResearchGate - Philipp L. Kinon
- LinkedIn - Philipp Kinon
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)