CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   3rd-order upwind, flux formulation for limiter (http://www.cfd-online.com/Forums/main/92163-3rd-order-upwind-flux-formulation-limiter.html)

carambula September 4, 2011 16:43

3rd-order upwind, flux formulation for limiter
 
How do I reformulate formula for 3rd order upwind
(This one: \frac{2 u_{i+1} + 3 u_{i} - 6 u_{i-1} + u_{i-2}}{6 \Delta x}, lets consider positive velocity )
In flux form \frac{F_{i+1/2} - F_{i-1/2}}{\Delta x}
I want to implement flux limiter:
F = F^L-\phi(r)(F^L-F^H)
where i get following low fluxes as for the 1st order upwind
F^L_{i+1/2} = u_{i}
F^L_{i-1/2} = u_{i-1}
what should be F^H?

or do i understand the whole idea wrong?

congtuha September 5, 2011 09:57

Quote:

Originally Posted by carambula (Post 322850)
How do I reformulate formula for 3rd order upwind
(This one: \frac{2 u_{i+1} + 3 u_{i} - 6 u_{i-1} + u_{i-2}}{6 \Delta x}, lets consider positive velocity )
In flux form \frac{F_{i+1/2} - F_{i-1/2}}{\Delta x}
I want to implement flux limiter:
F = F^L-\phi(r)(F^L-F^H)
where i get following low fluxes as for the 1st order upwind
F^L_{i+1/2} = u_{i}
F^L_{i-1/2} = u_{i-1}
what should be F^H?

or do i understand the whole idea wrong?

You should differentiate the state variable (u) from the flux variable (F). For an upwind MUSCL type, the flux limiter will act on the state variable, not on flux variable. The flux at a cell face i+1/2 can be calculated as

F_{i+1/2}=0.5[F^{R}_{i+1/2}+F^{L}_{i+1/2}-abs(\partialF/\partialu)(u^{R}_{i+1/2}-u^{L}_{i+1/2})]

The left uL and right state uR can be defined as

u^{R}_{i+1/2}=u_{i+1}-0.25\phi(r_{i+1})[(1-k)(u_{i+2}-u_{i+1})+(1+k)(u_{i+1}-u_{i})]

u^{L}_{i+1/2}=u_{i}+0.25\phi(r_{i})[(1-k)(u_{i}-u_{i-1})+(1+k)(u_{i+1}-u_{i})]

carambula September 5, 2011 17:58

Thanks a lot for your explanation!

Is that the same approach as Kurganov-Tadamor scheme from MUSCL's page in wikipedia?

It is totally unclear for me how to calculate this (\partial F / \partial u) Probably because I don't clearly get what is F for me.

As far as i understand for incompressible convection problem I have \vec{u}_t + (\vec{u} \cdot \nabla ) \vec{u} = 0 equation and \nabla \cdot \vec{u} = 0 equation, where \vec{u} = (u,v,w). From that i derive (linearized) form of the convection operator \hat{u} u_x + \hat{v}u_y + \hat{w}u_z (for 1st component) where \vec{\hat{u}} = (\hat{u},\hat{v},\hat{w}) is fixed.

Now for MUSCL I should consider convection equation in the following form \vec{u}_t + F_x(u) + G_y(v) + H_z(w) = 0 where F = (\hat{u} u, \hat{v} u, \hat{w} u) Then \partial F / \partial u = (\hat{u},\hat{v},\hat{w})? Is that it?

congtuha September 6, 2011 01:20

Quote:

Originally Posted by carambula (Post 323000)
Thanks a lot for your explanation!

Is that the same approach as Kurganov-Tadamor scheme from MUSCL's page in wikipedia?

It is totally unclear for me how to calculate this (\partial F / \partial u) Probably because I don't clearly get what is F for me.

As far as i understand for incompressible convection problem I have \vec{u}_t + (\vec{u} \cdot \nabla ) \vec{u} = 0 equation and \nabla \cdot \vec{u} = 0 equation, where \vec{u} = (u,v,w). From that i derive (linearized) form of the convection operator \hat{u} u_x + \hat{v}u_y + \hat{w}u_z (for 1st component) where \vec{\hat{u}} = (\hat{u},\hat{v},\hat{w}) is fixed.

Now for MUSCL I should consider convection equation in the following form \vec{u}_t + F_x(u) + G_y(v) + H_z(w) = 0 where F = (\hat{u} u, \hat{v} u, \hat{w} u) Then \partial F / \partial u = (\hat{u},\hat{v},\hat{w})? Is that it?

It is wrong! Remember that it is always a square matrix! You can learn how to derive this matrix by taking a look at some CFD books such as CFD Volume 1 (chapter 8, pp 317), CFD Volume 2 (chapter 11) by Hoffman and Chiang. You can download these books at

https://www.yousendit.com/download/M...WkJVVGxFQlE9PQ (Vol. 1)
https://www.yousendit.com/download/M...UnFRR2RFQlE9PQ (Vol. 2)

Also, for more information about Upwind schemes:

R. C. Swanson. and E. Turkel "ON CENTRAL-DIFFERENCE AND UPWIND SCHEMES"
ftp://124.42.15.59/ck/2011-03/165/00...%20schemes.pdf

Brain van Lee: "PROGRESS IN MULTI-DIMENSIONAL UPWIND DIFFERENCING"
http://ntrs.nasa.gov/archive/nasa/ca...1993001620.pdf

cheers!

carambula September 6, 2011 05:52

Sorry, my bad, \vec{F} = (\hat{u} u, \hat{u} v, \hat{u} w) and \partial \vec{F} / \partial \vec{u} = diag(\hat{u},\hat{u},\hat{u}). The same reasoning for H and G.
Is that one is ok?

As far as I understand from your first reply, I'd better to go with Kurganov-Tadamor rather then upwind scheme. Could you also recommend me which one is less diffusive: KT or TVD MacCormack?

Thanks a lot for links!

congtuha September 6, 2011 07:20

Quote:

Originally Posted by carambula (Post 323071)
Sorry, my bad, \vec{F} = (\hat{u} u, \hat{u} v, \hat{u} w) and \partial \vec{F} / \partial \vec{u} = diag(\hat{u},\hat{u},\hat{u}). The same reasoning for H and G.
Is that one is ok?

As far as I understand from your first reply, I'd better to go with Kurganov-Tadamor rather then upwind scheme. Could you also recommend me which one is less diffusive: KT or TVD MacCormack?

Thanks a lot for links!

As far as I knew, KT scheme can actually be classified as a modified upwind MUSCL type in which they use a scalar dissipation (the spectral radius of convective flux Jacobian matrix)

It is easy to construct your numerical solution with this scheme. However if you dealt with the boundary layer, the boundary layer seems too big. To improve the accuracy, you should use matrix dissipation

I have tested the upwind MUSCL type and upwind NON-MUSCL type (say TVD scheme - see the Reference below!) with various limiter functions for linear advection equations and inviscid Burgers’ equation. (If you are interested in these comparisons just past your email address here).
Limiter functions play the key role for upwind schemes. Be careful with the choice of limiter function! You might get non-physical results if you do not pick up the suitable limiter for your problem.
I also applied the upwind MUSCL type and upwind TVD to the solution of RANS for two-phase and three-phase mixture flows. The upwind TVD with limiter 9d (see ref.) gave the best accuracy and numerical stability.

I can only share some of my experience on the upwind scheme here. I hope it help for your choice.

Cheers!
Ref.
Yeeh et al. “High-Resolution Shock-Capturing Schemes for Inviscid and Viscous Hypersonic Flows”
http://ntrs.nasa.gov/archive/nasa/ca...1988013267.pdf

carambula September 6, 2011 15:41

Yes, interested! Thanks a lot, really appreciate your help!
кirill.terehоv@gмail.сом


All times are GMT -4. The time now is 09:53.