Git Product home page Git Product logo

metis's Introduction

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

This project targets the efficient and easy numerical computation of dynamical systems with or without holonomic constraints: particle systems as well as rigid body systems and multibody dynamics.

Metis is an object-oriented MATLAB code package - tested with the R2023b 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
  • Multibody 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:

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

metis's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

metis's Issues

Compare input-file formats

Check also for .json or .xml formats in order to load configuration variables into metis.

Currently using matlab-script which exports variables into .mat file, which is then loaded into current workspace by metis_start.m

Sample issue

This is just an issue that target the correct understanding of what github projects and issues are all about.

Generalise Newton class

  • introduce possibility to involve starting procedure for 2-step method
  • time-stepping for 2 step-method

Incorporate JB's advices

  • comment properties of metis class
  • possibility to save results
  • check_user_input-function as method of metis-class
  • Newton as solve-method of metis-class
  • system.z in a different class? (maybe metis itself)

Documentation

  • import first draft docs from JLMs branch
  • make every functions and class be commented
  • check all the comments
  • make docs nice and beautiful
  • add further information

MatLab Beautifier

Incorporate beautifier for matlab and develop workflow for using it, as it definetly enhances coding velocity and readibility of code.

Joss paper

  • fill draft with life
  • compare to other Matlab projects
  • submit

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.