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

Add some explanation to example #13

Open
6 tasks
homocomputeris opened this issue Nov 15, 2019 · 6 comments
Open
6 tasks

Add some explanation to example #13

homocomputeris opened this issue Nov 15, 2019 · 6 comments

Comments

@homocomputeris
Copy link

homocomputeris commented Nov 15, 2019

To help newcomers, it would be nice to have an explained and commented example of a new algorithm like the existing Self-contained example which has some design points that are worth explaining:

  • Why is alg_order defined outside its type?
  • What exactly are caches supposed to hold? The example's field names suggest it's the Butcher tableau. (Not important, but why are they "caches" then?) Are caches of more advanced methods supposed to store coefficients?
  • What are T1 and T2 functions in the cache constructor? What operation do they perform on a method's coefficients?
  • What does alg_cache do? What do its arguments mean? Why should it be called by hand?
  • What should an integrator contain: what is kshortsize? what is the relation between isfsal and fsalfirst/fsallast?
  • What entities should initialize!? Is it supposed to "pre-fill" all the known data like IVs/BCs, or something else?

I believe it would be nice to have even simpler examples like Euler/the implicit midpoint
for explicit/implicit methods because, AFAIK, implicit methods are inherited from Newton integratators. Will they require additional caches or functions?

@ChrisRackauckas
Copy link
Member

Yeah, this is a good list of things to document. It should be pretty self-explanatory so if someone wants to take a stab at it I'd be willing to review it.

@homocomputeris
Copy link
Author

@ChrisRackauckas then could you ask other contributors if they'd like to help with this or invite them here?
It seems that this repo is less popular than the main ones.

@ChrisRackauckas
Copy link
Member

Yeah, maybe @kanav99 can help out. Or it can be a first task for one of the next GSoCs.

@kanav99
Copy link
Contributor

kanav99 commented Nov 23, 2019

I would love to see some great documentation that explains the whole control flow in OrdinaryDiffEq. Best way should be to let a new student explore the repository and log down things as he/she may observe and finally make a PR. In any case, I can give this issue a stab myself too.

@kanav99
Copy link
Contributor

kanav99 commented Nov 23, 2019

We should also mention SimpleDiffEq.jl somewhere too, that's where I understood the complete flow from.

@ChrisRackauckas
Copy link
Member

Yeah, next GSoC would be a good time. I usually leave around little things like this as teaching exercises.

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

No branches or pull requests

3 participants