Skip to content
Snippets Groups Projects
Timothy Smith's avatar
Timothy Smith authored
Sine wave test

See merge request !45
6d223d23
History

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.