The PyWENO project provides a set of open source tools for constructing high-order Weighted Essentially Non-oscillatory (WENO) methods and performing high-order WENO reconstructions.

PyWENO consists of four main parts:

  • WENO toolkit - an easy to use toolkit to easily compute WENO reconstructions in Python.
  • Symbolics - tools for exploring and constructing WENO methods.
  • Code generation - tools for generating custom C, Fortran, and OpenCL WENO routines.
  • Non-uniform - tools for generating WENO methods on non-uniform grids.


  • December 4 2013: The kernel generator has been simplified a lot and the functional generator was removed. Several more (speed) improvements were made to the non-uniform module.
  • November 12 2013: Several improvements were made to the non-uniform module. These were contributed by Ben Thompson.
  • May 15 2012: Several routines were added for computing reconstructions of derivatives. These were contributed by Michael Welter.
  • January 23 2012: The non-uniform codes have been resurrected.

Please check out the documentation (below) or the PyWENO project page for more information about using and contributing to PyWENO.


Main parts of the documentation


Contributions are welcome! Please send comments, suggestions, and/or patches to the primary author (Matthew Emmett). You will be credited.