CFD Online Discussion Forums

CFD Online Discussion Forums (
-   Main CFD Forum (
-   -   Flux splitting for WENO scheme (

DSS December 13, 2006 02:22

Flux splitting for WENO scheme

I have implemented the WENO scheme. For a basic study, I have implemented the Van Leer flux splitting, but, instead of using MUSCL, i have used WENO for projecting the variables on to the face.

I am solving a compressible NS equation. For now, I have restricted to Euler equations till I get the schemes and code right.

Can anyone suggest me a good flux splitting scheme to apply for WENO scheme (for compressible NS eqn) that is less dissipative.

Thanks in advance for your help.

prapanj December 13, 2006 06:23

Re: Flux splitting for WENO scheme
I am not well versed in WENO..but why dont u try Steger warming flux splitting method? i hope its less dissipative that van leer. i found it easy to ger euler solution using steger warming.. things would be easy if u work in the positive mach number domain.

saygin December 13, 2006 07:14

Re: Flux splitting for WENO scheme

Do you have the repot "ICASE 97-65"? If you don't, I strongly recommend you to have it before implementing WENO schemes.

At the end of page 23 of that paper, it says: "We would need the positive and negative fluxes to have as many derivatives as the order of the scheme. This unfortunately rules out many popular fluxes (such as those van Leer and Osher) for high order methods in this framework."

I can say that the default flux splitting for finite difference WENO is Lax-Friedrichs flux splitting, I don't know any other alternative, but there should be some other of course. However, if you want to use finite volume decomposition you can find much more different numerical flux alternatives.


DSS December 13, 2006 07:41

Re: Flux splitting for WENO scheme
Hi Saygin,

I implemented the WENO scheme straight from Chi-Wang Shu's paper. But, since I had already done Vanleer prior, I just performed a wedding ceremony of both :)

But, as you say, I should have a look at the report. Also, recently, when I referred to a paper by Crnjaric-Zic titled "On different flux splittings and flux functions in WENO schemes for balance laws", I noticed that they use Marquina's Solver and HLL solver. May be I should try HLL which is supposed to be better.

As a second question, is WENO worth the computational cost? Because, when I am to do an LES of a compressible jet for mach no. around 0.7, I believe the computational cost becomes an important factor.

Thanks for helping me out, DSS

buch December 13, 2006 16:05

Re: Flux splitting for WENO scheme

Having already implemented a FVS like Van Leer, you may have a try with AUSM+ and more recent derivatives (AUSMPW+, AUSM+-up, etc.).


saygin December 14, 2006 08:16

Re: Flux splitting for WENO scheme

First of all, for some other flux implementations look at the papers of Toro. I guess they improved HLL to HLLC. I used global Lax-Friedrichs and LLF flux in my Msc. thesis. It is a dissipative one, however, the simplest of all, thus it gives computational advantage.

Does it worth the computational cost? It depends on the problem you are trying to solve. High order schemes are powerful in areas like, complex flow structures, shock interaction with complex flow structures, long time simulations ...etc. In that ICASE paper, there is a comparison between TVD and WENO for a long time simulation on vortex evolution. The power of using a high order scheme can be seen clearly there. So, if you have to solve some problem like that, I think it would be better to sacrifice computing time.

Also, you can use finite difference WENO, it needs less computation time compared to finite volume version. It directly uses the flux for reconstruction and no need to integrate over the cell boundary as it is finite difference. However, using finite volume will cost you a lot. Because, say you are using 5th order reconstruction, then you have to find a 5th order flux which is entering the cell. So, for example a Gaussian integration needs to be done on the cell face. In order to "reconstruct the reconstructed value" you have to sweep the direction, which corresponds to the cell faces, with WENO again and may be again. I use two point integration point in the thesis, and that means 6 WENO reconstructions (3 for each direction) for each time step for 2 dimensional (dimension-by-dimension) case. In addition, you are using Runge-Kutta time stepping which has to advance one time step in 3 or 4 or if you like 5 sub-steps. And I can say that, forget using a desktop computer for finite volume with very fine grid in 2D.

As I tried to explain, high order methods cost too much, but I think there is a tendency towards using them. CPU powers are increasing day-by-day, and for some time in the future, not decades I think, the attraction of using low order methods will completely diminish.


Beginner January 10, 2007 11:59

Re: Flux splitting for WENO scheme

I have implemented the Finite Difference WENO scheme. But, with Finite Volume, I think I need to understand clearly how the reconstruction is done.

Please correct me if I am wrong.

Considering a 3D FV WENO reconstruction,

1. Obtain face average values at i+1/2 from cell averages with the standard WENO procedure (same as that of Finite Difference) 2. Obtain a reconstructed value for gaussian point along one auxillary dimension 3. For these values, again obtain a reconstructed value for gaussian points in another auxillary dimension 4. Integrate the face with Gausian Quadrature rule (a simple sum in case of two point Gaussian Quadrature) 5. Use the integrated value for computing the flux term

So, in case of 2D, for a flux splitting scheme, with N gaussian points, we have

One reconstruction along face normal N Reconstructions along auxillary dimension 1 N Reconstructions along auxillary dimension 2 One Gaussian Quadrature Integration

Thus, there are (1+N*Dim) constructions required for a Flux term. As there are left and right terms, the total reconstructions would be


Hope my understanding is right...

Thanks in Advance, DSS

All times are GMT -4. The time now is 13:04.