# Synchronization and Collective Dynamics

When simple systems interact, they can exhibit a wide variety of fascinating dynamical behaviors. For example, the systems can synchronize to each other, much like, people in a theater who at the end of a play clap in a synchronized manner even though there is no one controlling them. Or they can behave in a completely unpredictable manner. Efforts to understand such phenomena start with Christiaan Huygens in the 17th century, but it is only in the past half century, with the development of modern dynamical systems theory and the introduction of statistical physics methods that synchronization begins to be properly understood.

### Second-order oscillators

My main research interest here is in the dynamics of coupled second order oscillators. The state of each oscillator is given by a *phase* $\theta_i$ — an angle taking values between $0$ and $2π$ — and the dynamics is given by a system of coupled second order differential equations

that generalizes the famous Kuramoto model.

Understanding the dynamics of this model and its variations requires the combination of theoretical and numerical work. In this project the aims are to numerically explore the dynamics of this model when the oscillators are connected on different types of complex networks and use theoretical tools — such as the self-consistent method — to explain the observed phenomena.

### GPU computing for coupled oscillators

The numerical simulation of the dynamics of coupled oscillator systems, such as Kuramoto oscillators, can be significantly accelerated using GPU computing. The idea behind GPU computing is to take advantage of the massive parallelism made possible by GPUs for running general purpose programs. In this project the aim is to convert existing code for the simulation of the dynamics of coupled oscillators to use the Metal API under macOS. Knowledge of C or C++ is essential for this project, while experience with Metal or other GPU computing APIs (e.g., CUDA) is highly desirable.