# PSAAP3 WENO Standalone Fortran WENO code with Loopy transformations. ## Notes * The WENO scheme is taken from [1] * The Roe matrix implementation follows the internal PlasCom2 documentation * Boundary conditions are not really handled correctly at all * A declaration of "real" is not intended to suggest single precision * This implementation does not include the severe shock correction proposed by [1] * Current assumption for metrics is that metrics(i,j) = (\xi_i)_(x_j) * It's not immediately obvious, but there might be some wasted work in the frozen generalized flux computation * Right now the specific gas constant gamma is implemented as a magic number (1.4) -- this should be generalized ## Fortran dialect wishlist - Automatic line continuation in parentheses - Array-valued expressions - In-place operators - Slicing that automatically picks an increment of -1 when appropriate - (e.g. 2:0 instead of 2:0:-1) - Scalars with intent(out) Note: Tag 'nice' references the code at a point where several of these items are used ## Testing plan Plan to test the following routines directly: - `compute_flux_derivatives` - `convert_to_generalized` - `convert_to_generalized_frozen` - `convert_from_generalized` - `roe_eigensystem` - `pointwise_eigenvalues` - `lax_wavespeeds` - `split_characteristic_fluxes` - `weno_flux` - `consistent_part` - `dissipation_part_pos` - `dissipation_part_neg` ## References [1] Nonomura, T., Terakado, D., Abe, Y., & Fujii, K. (2015). *A new technique for freestream preservation of finite-difference WENO on curvilinear grid.* Computers and Fluids, 107, 242–255.