Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flesh out next steps after getting started docs #3091

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

ArnoStrouwen
Copy link
Member

No description provided.

Comment on lines +373 to +415
- [Rootfinding for nonlinear systems of equations](@ref nonlinear)
- [Solving optimization problems](@ref optimization)
- [Stochastic Differential Equations](@ref SDE)
- Jump Systems
- [Discrete time systems](@ref discrete)
- [hybrid systems](@ref hybrid).

Numerical differential equation solvers require you to write your model in a very specific form.
However, these forms are often not the most human-readable.
MTK has symbolic transforms to translate your model into something your computer can simulate:

- [Automatically transform higher order ODEs to first order ones](@ref higher_order)
- [Automatically transform higher index DAEs to index one](@ref higher_index)

If you want some extra modeling goodies:

- [Validate your equations with units](@ref units)
- [Add discrete time controls to your continuous plant](@ref hybrid)
- [Add general discrete/continuous time events to your system](@ref events)

If the getting started tutorial is too high-level for you, do a deeper dive:

- [Learn everything there is to know about `@mtkmodel` blocks](@ref mtk_language)
- [Learn how to write your own components to use in `@mtkmodel`](@ref acausal)
- [Learn how to script the creation of `ODESystems` without the `@mtkmodel`](@ref programmatically)
- [Learn how to conserve certain quantities when connecting components using a domain](@ref domains)
- [Learn how MTK ensures that the initial state of your model is correct](@ref initialization)
- [Learn how MTK reduces the size of your model](@ref tearing)

If you liked the idea of the speedup symbolic Jacobians give you, but don't want to commit to writing your entire model in MTK:

- [modelingtoolkitize your `ODEProblem`](@ref modelingtoolkitize)
- [use modelingtoolkitize to calculate sparsity patterns](@ref modelingtoolkitize_sparse)

If you want to further investigate the properties of your ODE model:

- [Check if the parameters of your model are identifiable](@ref identifiability)
- [Check if your system exhibits any bifurcation](@ref bifurcation_diagrams)
- [Perform a perturbation analysis to see your system change as parameter values change](@ref perturb_diff)
- [Linearize your system](@ref linearization) and [turn it into an input-output system](@ref inputoutput) (useful for feedback control)
- [Use your MTK ODE model in an `OptimizationProblem`](@ref remake)

Still want to know more about MTK?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is too comprehensive and no longer is a simplified way into MTK. Things which are non-essential should be cut from this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, some of the more low level ones, like tearing, could be removed.
However, some of the higher level ones should then link to the tearing one to explain how MTK is able to simulate only 1 ODE even though you wrote down 100 equations.

Also, everything removed from this list is a prime target for being consolidated into another doc page.
The most obvious example is modelingtoolkitize, we don't need both a Rober and a Brusselator example, particularly not spread over two pages.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, all good points.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants