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
https://mtk.sciml.ai/dev/
Other
1.41k stars 203 forks source link

Split off core algorithms into a ModelingToolkitCore package #2579

Open pepijndevos opened 5 months ago

pepijndevos commented 5 months ago

Is your feature request related to a problem? Please describe.

MTK is a fairly large dependency that is really two packages in a trench coat. Projects like DAECompiler and (I expect) JuliaSimCompiler depend MTK for its algorithms, but end up pulling in a lot of dependencies for the symbolic language they don't use.

We frequently run into long precompile times and trouble upgrading our Julia nightly version due to a large number of dependencies that we don't actually use, so it would be helpful to us if MTK was split into a smaller core package and a user facing symbolic modeling language.

Describe the solution you’d like

Some type of ModelingToolkitCore package that contains the core algorithms but not the entire symbolic modeling language.

Describe alternatives you’ve considered

Maybe a package extension could be interesting but it doesn't seem appropriate and quite breaking.

Additional context

Happy to help but not super familiar with the code base and don't have the required privileges to make and publish such a package.

ChrisRackauckas commented 5 months ago

This could become a nightmare quite quickly, especially with how things are moving right now. If we do this, we should do it when said core is more stable.