JuliaDynamics / PeriodicOrbits.jl

Interface and algorithms for finding periodic orbits (stable or unstable) in dynamical systems
https://juliadynamics.github.io/PeriodicOrbits.jl/
Other
8 stars 2 forks source link

Review comments on the codebase after GSOC #22

Open Datseris opened 2 days ago

Datseris commented 2 days ago

Now that the GSOC is done, I had another review of the whole codebase. Here are my comments. @JonasKoziorek please append the comments you have collected as well.

JonasKoziorek commented 1 day ago
JonasKoziorek commented 1 day ago

We have a problematic interaction with minimal_period and complete_orbit. minimal_period enforces that the Δt for continuous time is T/100. How can the user control this? In general, why does minimal_period call complete_orbit in the first place? This seems unnecessary. The minimal period has the same points as the "double" or "triple" period. Once we have estimated the minimal T we don't have to recompute/re-complete the orbit. We can just create a PeriodicOrbit type with the new minimal T and reuse its .points field.

User can control it when constructing PeriodicOrbit but not inside minimal_period. A keyword argument should be added to minimal_period as well.

The orbit is recomputed so that .points field contains the orbit only once and not several times.

JonasKoziorek commented 1 day ago

The folder structure of src needs to be organized more. We should have one folder for continuous and one for discrete time systems. Inside there we should have subfolders for algorithms that need more than 1 file, otherwise the algorithm as a single file. why is lambdamatrix.jl at the top level, but the Diakons algorithm is inside a folder?

You are right, file lambdamatrix.jl should not be at top level. It is related to both SchmelcherDiakonos and DavidchackLai and so it could be perhaps placed inside top-level of discrete-time systems folder.

Datseris commented 4 hours ago

right, all sounds good. If you have time to contribute that would be welcomed of course!

JonasKoziorek commented 4 hours ago

Yes, I will look at it in the following days :)