DynamicalSystemsBase.jl icon indicating copy to clipboard operation
DynamicalSystemsBase.jl copied to clipboard

Ability to build ParallelDynamicalSystem from ProjectedDynamicalSystem

Open rusandris opened this issue 1 year ago • 1 comments

Right now, construction of a ParallelDynamicalSystem is constrained to these types only:

methods(ParallelDynamicalSystem)
# 2 methods for type constructor:
 [1] ParallelDynamicalSystem(ds::CoreDynamicalSystem, states)
     @ ~/.julia/packages/DynamicalSystemsBase/Dx8Dp/src/derived_systems/parallel_systems.jl:47
 [2] ParallelDynamicalSystem(ds::DiscreteTimeDynamicalSystem, states)
     @ ~/.julia/packages/DynamicalSystemsBase/Dx8Dp/src/derived_systems/parallel_systems.jl:160

So when one tries to use a ProjectedDynamicalSystem, it fails.

Is there some fundamental limitation to this?

rusandris avatar Nov 21 '23 11:11 rusandris

huh that's weird. You are right.

AH! I remembered why! I wasn't sure how to make it certain that for non-core systems, step!(pds, dt::Real) would ensure that every parallel system would be stepped for exactly the same time.

I am still not sure how to solve this! Feel free to open a PR if you can implement a parallel system for projected systems that guarantees that stepping would enforce identical step size to all parallel systems.

Datseris avatar Nov 22 '23 22:11 Datseris