SciML/ModelingToolkit.jl

An acausal modeling framework for automatically parallelized scientific machine learning (SciML) in Julia. A computer algebra system for integrated symbolics for physics-informed machine learning and automated transformations of differential equations

What it solves

ModelingToolkit.jl addresses the difficulty of creating high-performance numerical simulations for complex scientific models. It bridges the gap between high-level mathematical descriptions and the optimized, low-level code required for fast execution, specifically for scientific machine learning and scientific computing.

How it works

The framework uses symbolic-numeric computation to preprocess models. Users provide a high-level description of their system (such as differential equations), and the toolkit automatically transforms and optimizes it. This includes generating fast functions for Jacobians and Hessians, sparsifying computations, parallelizing tasks, and applying transformations like index reduction to make models more compatible with numerical solvers.

Who it’s for

It is designed for researchers and engineers in scientific computing and scientific machine learning who need to build, compose, and solve complex equation-based models efficiently.

Highlights

  • Symbolic Preprocessing: Automatically analyzes and enhances models before numerical execution.
  • Automatic Code Generation: Creates optimized functions for critical components like Jacobians and Hessians.
  • Composable Systems: Allows users to connect multiple subsystems (e.g., interacting ODE systems) into a single larger model.
  • Performance Optimization: Implements automatic sparsification and parallelization to increase computation speed.

Related

  • Project
  • Project
  • Project
  • Project
  • Project