Skip to content

Add some explanation to example #13

@homocomputeris

Description

@homocomputeris

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions