You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ModelingToolkit.jl is a modeling language for high-performance
4
4
symbolic-numeric computation in scientific computing and scientific machine learning.
5
-
It allows for users to give a high-level description of a model for
6
-
symbolic preprocessing to analyze and enhance the model. ModelingToolkit can
7
-
automatically generate fast functions for model components like Jacobians
8
-
and Hessians, along with automatically sparsifying and parallelizing the
9
-
computations. Automatic transformations, such as index reduction, can be applied
10
-
to the model to make it easier for numerical solvers to handle.
5
+
It then mixes ideas from symbolic computational algebra systems with
6
+
causal and acausal equation-based modeling frameworks to give an extendable and
7
+
parallel modeling system. It allows for users to give a high-level description of
8
+
a model for symbolic preprocessing to analyze and enhance the model. Automatic
9
+
transformations, such as index reduction, can be applied to the model before
10
+
solving in order to make it easily handle equations would could not be solved
11
+
when modeled without symbolic intervention.
11
12
12
13
## Installation
13
14
@@ -32,8 +33,11 @@ before generating code.
32
33
33
34
- Causal and acausal modeling (Simulink/Modelica)
34
35
- Automated model transformation, simplification, and composition
36
+
- Automatic conversion of numerical models into symbolic models
37
+
- Composition of models through the components, a lazy connection system, and
38
+
tools for expanding/flattening
35
39
- Pervasive parallelism in symbolic computations and generated functions
36
-
-Core features like alias elimination and tearing of nonlinear systems for
40
+
-Transformations like alias elimination and tearing of nonlinear systems for
37
41
efficiently numerically handling large-scale systems of equations
38
42
- The ability to use the entire Symbolics.jl Computer Algebra System (CAS) as
39
43
part of the modeling process.
@@ -50,6 +54,8 @@ is built on, consult the [Symbolics.jl documentation](https://github.com/JuliaSy
50
54
- Partial differential equations
51
55
- Nonlinear systems
52
56
- Optimization problems
57
+
- Continuous-Time Markov Chains
58
+
- Chemical Reactions
53
59
- Optimal Control
54
60
55
61
## Extension Libraries
@@ -58,6 +64,10 @@ Because ModelingToolkit.jl is the core foundation of a equation-based modeling
58
64
ecosystem, there is a large set of libraries adding features to this system.
59
65
Below is an incomplete list of extension libraries one may want to be aware of:
60
66
67
+
-[StructuralTransformations.jl](https://github.com/JuliaComputing/StructuralTransformations.jl): Various transformations of models into structurally better versions for improved numerical simulation
68
+
- Pantelides algortihm for index reduction of DAEs
69
+
- Tearing of `ODESystem`s and `NonolinearSystem`s to reduce the numerical
70
+
cost of handling large implicit systems via Newton methods
61
71
-[Catalyst.jl](https://github.com/SciML/Catalyst.jl): Symbolic representations of chemical reactions
62
72
- Symbolically build and represent large systems of chemical reactions
63
73
- Generate code for ODEs, SDEs, continuous-time Markov Chains, and more
@@ -68,15 +78,42 @@ Below is an incomplete list of extension libraries one may want to be aware of:
68
78
-[MomentClosure.jl](https://github.com/augustinas1/MomentClosure.jl): Automatic transformation of ReactionSystems into deterministic systems
69
79
- Generates ODESystems for the moment closures
70
80
- Allows for geometrically-distributed random reaction rates
Protein Modules, Signal Transduction, and Synthetic Biology.
89
+
-[SbmlInterface.jl](https://github.com/paulflang/SbmlInterface.jl): Import [SBML](http://sbml.org/Main_Page) models into ModelingToolkit
90
+
- Uses the robust libsbml library for parsing and transforming the SBML
91
+
-[ReactionMechanismSimulator.jl](https://github.com/ReactionMechanismGenerator/ReactionMechanismSimulator.jl): simulating and analyzing large chemical reaction mechanisms
92
+
- Ideal gas and dilute liquid phases.
93
+
- Constant T and P and constant V adiabatic ideal gas reactors.
94
+
- Constant T and V dilute liquid reactors.
95
+
- Diffusion limited rates. Sensitivity analysis for all reactors.
96
+
- Flux diagrams with molecular images (if molecular information is provided).
97
+
-[ReactionNetworkImporters.jl](https://github.com/isaacsas/ReactionNetworkImporters.jl): Import various models into ModelingToolkit
98
+
- Supports the BioNetGen `.net` file
99
+
- Supports importing networks specified by stoichiometric matrices
77
100
78
101
## Compatible Numerical Solvers
79
102
80
-
81
-
103
+
All of the symbolic systems have a direct conversion to a numerical system which
104
+
can then be handled through the SciML interfaces. For example, after building a
105
+
model and performing symbolic manipulations, an `ODESystem` can be converted into
106
+
an `ODEProblem` to then be solved by a numerical ODE solver. Below is a list of
107
+
the solver libraries which are the numerical targets of the ModelingToolkit
0 commit comments