Skip to content

pmontalb/TuringPatterns

Repository files navigation

Turing Patterns: A C++/CUDA application for simulating 2D reaction-diffusion dynamics showing diffusion driven instability

This repository implements the numerical schemes for simulating the most popular reaction diffusion dynamics that exhibits Turing instability.

The general two-dimensional PDE is of the form:

The numerical scheme implemented is a simple Forward Euler scheme, which is known to be unstable but easy to implement. As opposed to the usual stability condition, the introduciton of a source term makes it more unstable, although dt in the region of dx^2 seem to be a reasonable choice. An extension to this could be a Runge-Kutta solver or an IMEX scheme, where the source term is considered in the explicit portion.

The Finite Difference schemes are implemented in CUDA. Since the non-linear nature of the dynamics I found it easier to implement without making use of CuBLAS.

The dynamics that I've implemented are:

  • Gray-Scott
  • Brussellator
  • Schnakernberg
  • Thomas
  • Fitz-Hugh Nagumo

I made a python script that calls the C++ executable and gather the numerical results and produce the color plot animation. I saved the resulting GIFs, which are shown below: