Skip to content

Conversation

Gregliest
Copy link
Contributor

@Gregliest Gregliest commented Aug 20, 2021

This PR reorganizes the docs as suggested in #247. I've taken a lot of liberties in reorganizing, with the rough outline as follows:

  • Getting Started
  • Tutorials
    • Linear Systems
    • Nonlinear Systems
    • Real World Examples
  • Unifying SINDy and DMD
  • Problems
  • Basis
  • Solvers
    • Koopman
    • Sparse Optimizers
    • Symbolic Regression
  • Solutions

To me, this outline made the most sense because the general workflow is:

  1. Define a problem
  2. Choose a basis (optional)
  3. Solve

However, let me know if you'd like something different.

This PR still has some outstanding issues and questions:

  1. The "Basic Usage" example in "Getting Started" does not work. I think I need some help understanding why. I'd like the minimal example here for clarity. [Needs a code change]
  2. I was confused by the basis generators. I'd expect something named monomial_basis to return a basis, not a vector of equations. I'll call that out in the docs, but it might be clearer to name them something like monomial_basis_eqs or something like that. [Addressed below]
  3. It looks like the OccamNet stuff is in an "optional" function in the module builder, and isn't getting called when I build docs. I assume that gets built properly in CI? [Addressed]
  4. Along the same line, none of the examples run locally due to an environment issue, which means that none of the png's are getting generated. [Addressed]

@AlCap23 AlCap23 self-requested a review August 26, 2021 09:11
@AlCap23 AlCap23 added the documentation Improvements or additions to documentation label Aug 26, 2021
This was linked to issues Aug 26, 2021

## Basic usage

```julia
Copy link
Collaborator

Choose a reason for hiding this comment

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

You have choosen a case I didn't include right now. 😅

Right now, SINDy-like methods have been dispatched on continuous, but this should be an easy fix in here, where DX has to be changed to get_target(prob).

I will commit during the day and add more test cases for Discrete and Direct Problems.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Haha cool, glad I wasn't missing something obvious. Maybe there should be a fallback method for combinations that aren't implemented that throws an error? If you point me in the right direction, I can take a stab at this.


## Choosing a Basis

A basis is optional, depending on the solver and solution method you are using. For instance, for DMD, a basis is not required, but for SINDy using STLQS(), it is required.
Copy link
Collaborator

Choose a reason for hiding this comment

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

True, but this should also be optional ( note for me ).

@@ -0,0 +1,85 @@
# Unifying SINDy and DMD
Copy link
Collaborator

Choose a reason for hiding this comment

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

I agree to put a spotlight on SINDy + DMD, but maybe this should be moved into a Math Section and here we highlight Common Solver Interface ? What's your opinion on this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What do you think people are going to be searching for in the docs? I'm not an expert in this field, but my impression is that most people think in terms of SINDy and DMD, and would search based on those terms. If that's the case, I think it's good to have those terms in the headers and side bar. However, if there's a more common search term, we should highlight that instead. I think we can highlight the common solver interface elsewhere, maybe in the getting started page. I don't think it's as important, because it's more of an engineering detail than a use case.

This is just my two cents though: you're the expert, and I'm happy to do whatever you feel is appropriate.

@AlCap23
Copy link
Collaborator

AlCap23 commented Aug 26, 2021

Hey Greg!

Very nice work so far! Thank you!

I added some minor discussion points / proposals for changes and reminder for myself 😅 .

For your list above:

  1. As stated above, this is my fault. Right now, Sparse Regression is only tuned to continuous dynamical systems, but not for discrete or direct. Should be fixable.
  2. Good point. Maybe we should point this out in the docs. The reason for this is due to the general common term basis for e.g. a Fourier basis vs. Our Basis, which is the more carved out representation for use withinin our algorithms. Hence the confusion. I tend to generalize a little to much, hence I wanted to return a Vector of Equations rather than a basis to be able to add my own stuff on top.
  3. Yes. I normally activate the docs environment and use LiveServer.jl for the preview.
  4. As above.

I am fully back and just adjusting to be fully back right now, so feel free to DM on Slack or keep this conversation going.

@AlCap23
Copy link
Collaborator

AlCap23 commented Aug 26, 2021

Ah, and I compiled an initial list of references here.

Once you feel that this PR is mature enough, I can jump in and add it and DocumenterCitations.jl .

@Gregliest
Copy link
Contributor Author

Ok, I think this PR is in a decent place. I'd still like to check it using your LiveServer.jl workflow, so I can make sure the png's and optional module elements are working properly. But, I think most things are in and working, and stuff is reasonably proofread at this point.

@Gregliest Gregliest changed the title (WIP) Docs Reorganization Docs Reorganization Aug 27, 2021
@AlCap23 AlCap23 merged commit 7dd718e into SciML:master Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docs Improvements Docs: Getting Started page + Math

2 participants