Modeling and Simulation with Julia

Authors

Jacob Vaverka

Jonathan Klaric

Published

August 2, 2023

Why?

The Julia Programming Language is revolutionizing technical and scientific computing across many industries. Modern language features such as differentiability and multiple dispatch have made Julia the perfect tool for building SciML - an open source ecosystem for scientific machine learning libraries.

Amoung many other modules, the SciML ecosystem includes an acausal modeling framework and the most comprehensive collection of differential equation solvers that exists today. These modules form the fundation of SciML and their flexibility makes them viable tools for working in any industry. These tools are so powerful that they open the door to advanced modeling and simulation capabilities in any domain. This project serves as a guide to perform modeling and simulation to solve real problems with Julia and SciML.

This guide is a collection of notes, teachings and exercises from many sources including the exceptional books Principle of Object-Oriented Modeling and Simulation with Modelica 3.31 by Dr. Peter Fritzson and Modelica by Example2 by Dr. Michael M. Tiller. All content is translated to Julia and uses various modules from SciMl. Thank you everyone that contributed to these works.

This is a book created from markdown and executable code. See Knuth (1984) for additional discussion of literate programming.


  1. Fritzson covers the Modelica language in impressive depth from the basic concepts such as cyber-physical, equation-base, object-oriented, system, model, and simulation, while also incorporating over a hundred exercises and their solutions for a tutorial, easy-to-read experience. Find a copy at https://ieeexplore.ieee.org/book/7022515.↩︎

  2. Tiller takes a different and welcome approach by covering the Modelica language with practical examples and by optimizing the book for online consumption. The book is available for free at https://mbe.modelica.university/ and provides a rich and interactive learning environment.↩︎