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.43k stars 209 forks source link

Systems with infinite # of equations #1140

Open anandijain opened 3 years ago

anandijain commented 3 years ago

I was imagining that at some point ModelingToolkit would add support for specifying (possibly infinite) differential-difference equation systems. (Which is the form of the CME, but also spatial-only discretizations of time-dependent PDEs as in the MOL.) Then a choice on how to approximate these equations by a finite dimensional set would be needed (i.e. truncation or such). I think ApproxFun was working on such an approach, but I guess from @chrisrackauckas comment this is something that isn't planned for ModelingToolkit. Yeah, that was what I was imagining. It would be a cool way to handle the CME and semi-discrete models. Then one could have a variety of options for how to turn them into finite systems (as in the moment truncation package).

Longer term project

isaacsas commented 3 years ago

@ChrisRackauckas mentioned InfiniteArrays.jl. The InfiniteArrays notation looks nice. Having ModelingToolkit just allow infinite array variables X[1:Inf] that could be indexed in equations like X[i] would be the main feature that is needed. Then one could have abstract equations in an "infinite" ODE system like Dt X[i] ~ X[i+1] - X[i], with i \in 0..Inf (potentially with BCs or special equations at i=0), and then build methods to convert such infinite systems to finite ODESystems via truncation and such. Similarly, one could consider symbolic transforms on top of such systems (like the moment generating function) to derive alternative representations.