fabridamicelli/kuramoto

Is it possible to use different couplings to different pairs of oscillators?

Closed this issue · 7 comments

Hi!

First, thanks for this package, it's been really useful for me.

My question is about the implementation of the Kuramoto equation itself, the time evolution of the phases of each oscillator. When considering a mean field solution, where we have an all-to-all connectivity with the same coupling constant, the implementation is straighforward. How can we implement, in a general network, different Kij for different sets of ij oscillators?

More clearly, in the derivative() function, where self.coupling is called, coupling is just a float number. I see that the solution can be made easier if we call couplings as an array of different couplings, depending on the ij set of oscillators.

Do you think this implementation is possible?

Thanks!

Hi there,

I am happy to hear the package is useful :)

That sounds doable, but I guess there might be a couple of extra details to take care of.
Which use case do you actually have in mind? Can you point me to some relevant literature?
F

Hi again!

Take a look at this Review for the Kuramoto model:

https://www.researchgate.net/publication/46776356_The_Kuramoto_model_A_simple_paradigm_for_synchronization_phenomena

What I have in mind is what is shown in equation (1), the usual evolution of the phases of each oscillators in the network. As you can see, the couplings Kij can be different for each set of i-j coupled oscillators. When considering a mean field solution, we assume that all couplings Kij = K are equal and that's how it is implemented in this Kuramoto package.

What I have in mind is a way to implement different couplings for different sets of coupled oscillators, that is considering different Kij. This would be important for some applications I have in mind.

Thanks!

Hi,
Thanks for the pointer.
I am on it, I'll ping you when the implementation is ready.
Best,
F

Hi, Thanks for the pointer. I am on it, I'll ping you when the implementation is ready. Best, F

Hi Fabrizio!

I would like to know if you had any progress in the implementation of what we discussed above. I'll try an approach to implement it using the code available here and if I have any success I'll let you know. Anyway, I'll still wait for your progress on this topic, if any.

Thanks for the availability of doing this improvement in the Kuramoto package!

Victor

Hi Victor,
I have indeed sketched a solution, but had little time these past days to test it properly. But I am on it and it'll be out pretty soon (hopefully this week at the latest).
Best,
F

Hi @VelascoV10,
I just pushed a new version (0.2.4) where the number of neighbors are counted properly such that you can use different coupling between different nodes. Check out this example notebook with clustered connectivity.
So please pip install the latest version, give it a try and let me know if you find any problems and/or anything of what you've been doing so far breaks.

Best,
F

Hi @fabridamicelli !

Thanks a lot for your improvement. I'll definitely take a look as soon as I have a little more time and I'll let you know if everythings is running fine!

Victor