Diablo is an open-source, MPI-based, portably efficient, easy-to-read/modify DNS/LES code in Fortran90 syntax for computing turbulence in 3D or 2D rectangular geometries with periodic boundary conditions in 3, 2, 1, or 0 directions and simple Dirichlet, Neumann, or stress-free boundary conditions in the others.  It allows for a wide variety of triply periodic, channel, duct, and cavity flows to be studied.  Passive and active scalars may be incorporated to study the effects of density/temperature/salinity/concentration gradients.

 

Diablo is explained fully in Chapter 14 of Numerical Renaissance, leveraging many of the numerical methods presented in the preceding chapters of the text and bringing them together to solve a complex simulation problem.  In particular, Diablo incorporates pseudospectral and energy- & momentum-conserving finite-difference methods for spatial differentiation, mixed CN/RKW3 methods for time marching, and a fractional step method with sophisticated multigrid acceleration for enforcing the incompressibility constraint.  It is highly modular, and can leverage both shared-memory (OpenMP) and distributed-memory (MPI) computer architectures.  It includes accompanying adjoint solvers.


The triply-periodic and channel cases are currently fully operational (with periodic boundary conditions in 3 and 2 directions respectively), as seen in the gallery.  If you would like to use this code yourself, please feel to download it by clicking the button below.

Diablo was originally developed by Thomas Bewley and John Taylor.  The Diablo code has been worked on by numerous people (many of whom took MAE223 at UCSD, during which the Diablo code was studied carefully and extended significantly), and is currently being extended by Thomas Bewley, Joe Cessna, Chris Colburn, Alireza Mashayekhi, and John Taylor.  If you we like to join this team of researchers working to extend the public version of this code, please contact us.


PS:  A few folks have taken issue with the name Diablo, though those who have stayed up nights working on it agree that one meaning of this code name is well suited.  Alternative suggestions that have been proposed for this code include the Student Assembled Testbed for Advanced Numerics.  The person who proposed this name change also suggested that the UCSD Flow Control Lab change its name to the Laboratory of the University of California Investigating Feedback and Estimation Research.  The jury is still out...


 

(soundtrack for page:  Diablo Rojo, by Rodrigo y Gabriella)

Evolution of a streak of dye injected at the free surface of an open channel.  Simulation by John Taylor using Diablo.