Skip to content

cesar-rocha/spectralDNS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spectralDNS

spectralDNS is a classical pseudo-spectral direct Navier-Stokes solver for triply periodic domains. The only unique feature is that it's written entirely in python using numpy, mpi4py and pyfftw and, stripping away unnecessary pre- and post-processing steps, the solver is approximately 100 lines long, including the MPI. The code scales very well in preliminary tests. On the Abel linux cluster at the University of Oslo it scales well up to 512 cores. For a cube of size 512**3, using 512 cores, the code runs at 1.5 seconds per time step. The code scales weakly up to 2048 cores on the Shaheen BlueGene/P supercomputer at KAUST. MPI decomposition is performed using either the "slab" or "pencil" approach. There is also a solver implemented for MHD.

The efficiency of the pure numpy/mpi4py solver may be enhanced using a few more lines of code and cython/weave/numba for certain routines. See the demo folder for usage.

Weak scaling on Abel cluster

Weak scaling on the Abel cluster.

Weak scaling on Shaheen BlueGene/P

Weak scaling on Shaheen BlueGene/P.

About

No description, website, or topics provided.

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 91.8%
  • C++ 7.9%
  • CMake 0.3%