Skip to content

Commit e0b02d0

Browse files
Revamp the first page, removing the CAS
1 parent feadfe7 commit e0b02d0

File tree

1 file changed

+53
-16
lines changed

1 file changed

+53
-16
lines changed

docs/src/index.md

Lines changed: 53 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
# ModelingToolkit.jl
1+
# ModelingToolkit.jl: High-Performance Symbolic-Numeric Equation-Based Modeling
22

33
ModelingToolkit.jl is a modeling language for high-performance
44
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.
1112

1213
## Installation
1314

@@ -32,8 +33,11 @@ before generating code.
3233

3334
- Causal and acausal modeling (Simulink/Modelica)
3435
- 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
3539
- 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
3741
efficiently numerically handling large-scale systems of equations
3842
- The ability to use the entire Symbolics.jl Computer Algebra System (CAS) as
3943
part of the modeling process.
@@ -50,6 +54,8 @@ is built on, consult the [Symbolics.jl documentation](https://github.com/JuliaSy
5054
- Partial differential equations
5155
- Nonlinear systems
5256
- Optimization problems
57+
- Continuous-Time Markov Chains
58+
- Chemical Reactions
5359
- Optimal Control
5460

5561
## Extension Libraries
@@ -58,6 +64,10 @@ Because ModelingToolkit.jl is the core foundation of a equation-based modeling
5864
ecosystem, there is a large set of libraries adding features to this system.
5965
Below is an incomplete list of extension libraries one may want to be aware of:
6066

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
6171
- [Catalyst.jl](https://github.com/SciML/Catalyst.jl): Symbolic representations of chemical reactions
6272
- Symbolically build and represent large systems of chemical reactions
6373
- 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:
6878
- [MomentClosure.jl](https://github.com/augustinas1/MomentClosure.jl): Automatic transformation of ReactionSystems into deterministic systems
6979
- Generates ODESystems for the moment closures
7080
- Allows for geometrically-distributed random reaction rates
71-
- [CellMLToolkit.jl](https://github.com/SciML/CellMLToolkit.jl)
72-
- [SbmlInterface.jl](https://github.com/paulflang/SbmlInterface.jl)
73-
- [ReactionMechanismSimulator.jl]()
74-
- [ReactionNetworkImporters.jl]()
75-
- [NeuralPDE.jl]()
76-
- [StructuralTransformations.jl]()
81+
- [CellMLToolkit.jl](https://github.com/SciML/CellMLToolkit.jl): Import [CellML](https://www.cellml.org/) models into ModelingToolkit
82+
- Repository of more than a thousand pre-made models
83+
- Focus on biomedical models in areas such as: Calcium Dynamics,
84+
Cardiovascular Circulation, Cell Cycle, Cell Migration, Circadian Rhythms,
85+
Electrophysiology, Endocrine, Excitation-Contraction Coupling, Gene Regulation,
86+
Hepatology, Immunology, Ion Transport, Mechanical Constitutive Laws,
87+
Metabolism, Myofilament Mechanics, Neurobiology, pH Regulation, PKPD,
88+
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
77100

78101
## Compatible Numerical Solvers
79102

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
108+
system:
109+
110+
- [DifferentialEquations.jl](https://diffeq.sciml.ai/stable/)
111+
- Multi-package interface of high performance numerical solvers for `ODESystem`, `SDESystem`, and `JumpSystem`
112+
- [NonlinearSolve.jl](https://github.com/JuliaComputing/NonlinearSolve.jl)
113+
- High performance numerical solving of `NonlinearSystem`
82114
- [GalacticOptim.jl](https://github.com/SciML/GalacticOptim.jl)
115+
- Multi-package interface for numerical solving `OptimizationSystem`
116+
- [NeuralPDE.jl](https://github.com/SciML/NeuralPDE.jl)
117+
- Physics-Informed Neural Network (PINN) training on `PDESystem`
118+
- [DiffEqOperators.jl](https://github.com/SciML/DiffEqOperators.jl)
119+
- Automated finite difference method (FDM) discretization of `PDESystem`

0 commit comments

Comments
 (0)