Newer
Older
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
* 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
Timothy A. Smith
committed
- 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.