- WenOOF is a pure Fortran (KISS) library for computing WENO interpolations;
- WenOOF is Fortran 2003+ standard compliant;
- WenOOF is OOP designed;
- WenOOF is a Free, Open Source Project.
Modern Fortran standards (2003+) have introduced support for Object Oriented Programming. Exploiting new features like Abstract Data Type (ADT) is now possible to develop a KISS library for computing Weighted Essentially Non-Oscillatory (WENO) interpolation on ADT making the development of new numerical schemes faster, easier and clearer.
Starting from the original paper of Liu, Osher and Chan1 WENO interpolation schemes have gained attention mainly for solving hyperbolic partial differential equations (PDEs) whose solutions admit strong discontinuities as well complex smooth solution features. Consequently, WENO schemes are a common build-block of nonlinear, conservative finite volume methods, however they are not strictly related to the PDEs solution, they being a general, non linear interpolation (approximation) procedure.
A clear, yet brief online introduction of WENO schemes family can be found at Prof. Shu's WENO methods page hosted on scholarpedia.
Since 1994 the WENO literature has blowing up, a superficial search on sciencedirect for weno scheme
resulting in more than 1500 matches. During the last 2 decades many new WENO schemes have been proposed: the efficient implementation of Jiang and Shu2, the hybrid Compact-WENO scheme of Pirozzoli3, the bandwidth-optimized WENO scheme of Martin et al.4, the WENO-Z scheme of Borges et al.5 and many others.
WenOOF is designed to provide a KISS, Object Oriented Fortran API for computing WENO interpolations accordingly the main relevant WENO schemes ever devised and with a new ones we will develop :-)
[1] Weighted Essentially Non-oscillatory Schemes, Xu-Dong Liu, Stanley Osher, Tony Chan, JCP, 1994, vol. 115, pp. 200--212, doi:10.1006/jcph.1994.1187
[2] Efficient Implementation of Weighted ENO Schemes, Guang-Shan Jiang, Chi-Wang Shu, JCP, 1996, vol. 126, pp. 202--228, doi:10.1006/jcph.1996.0130
[3] Conservative Hybrid Compact-WENO Schemes for Shock-Turbulence Interaction, Sergio Pirozzoli, JCP, 2002, vol. 178, pp. 81--117, doi:10.1006/jcph.2002.7021
[4] A bandwidth-optimized WENO scheme for the effective direct numerical simulation of compressible turbulence, M.P. Martín, E.M. Taylor, M. Wu, V.G. Weirs, JCP, 2006, vol. 220, pp. 270--289, doi:10.1016/j.jcp.2006.05.009
[5] An improved weighted essentially non-oscillatory scheme for hyperbolic conservation laws, Rafael Borges, Monique Carmona, Bruno Costa, Wai Sun Don, JCP, 2007, vol. 227, pp. 3191--3211, doi:10.1016/j.jcp.2007.11.038
Go to Top
WenOOF is aimed to be a KISS-pure-Fortran library for computing WENO interpolation, it being:
- Pure Fortran implementation;
- KISS and user-friendly:
- simple API;
- easy building and porting on heterogeneous architectures;
- comprehensive:
- central schemes;
- upwind biased schemes;
- hybrid schemes;
- efficient:
- high scalability on parallel architectures:
- support for shared memory multi/many cores architecture;
- support for distributed memory cluster;
- support for GPGPU/accelerators device;
- high scalability on parallel architectures:
- well documented:
- clear documentation of schemes implementations;
- complete API reference;
- comprehensive wiki:
- collaborative developed;
- FOSS licensed;
Any feature request is welcome.
Go to Top
WenOOF is an open source project, it is distributed under a multi-licensing system:
- for FOSS projects:
- for closed source/commercial projects:
Anyone is interest to use, to develop or to contribute to WenOOF is welcome, feel free to select the license that best matches your soul!
More details can be found on wiki.
WenOOF uses some external libraries (placed into the external subdirectory of the root project) for the testing suite. These library maybe distributed under different licensing system with respect the WenOOF one, please refer to their own licenses.
Go to Top
Besides this README file the WenOOF documentation is contained into its own wiki. Detailed documentation of the API is contained into the GitHub Pages that can also be created locally by means of ford tool.
Go to Top