CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Main CFD Forum (http://www.cfd-online.com/Forums/main/)
-   -   ENO scheme asymmetry (http://www.cfd-online.com/Forums/main/8139-eno-scheme-asymmetry.html)

 vinod venugopalan September 27, 2004 18:00

ENO scheme asymmetry

hi,

I am trying to code an ENO 3rd order scheme for Euler equations (conservation form). I have managed to get good results for the shock tube problem. I extended the code to 2D and then found assymetry in the results.

So I went back and tried running a 1D problem, trying to solve a problem with energy input at the center of the domain. The results ought to be a set of symmetrical left and right running pressure waves, however I get asymmetrical results. The right running wave is stronger (about 5-7%) and steeper, i.e with more gradient than the left one.

I am not sure why this is occuring. I am using ENO 3 FD component-wise Lax Friedrich flux splitting,

fluxp[i] = 0.5*(f(q1[i],q2[i],q3[i]) + alpha*us[i]); fluxn[i] = 0.5*(f(q1[i],q2[i],q3[i]) - alpha*us[i]);

After finding the hp[i] & hn[i] value from ENO reconstruction starting my stencil from i for both the above split fluxes (is this correct?), I add them together

for(i=0;i<=n;i++) h[i] = hp[i] + hn[i+1];

Are the above steps correct? They work well for the shock tube problem. No probs there. The asymmetry is really bugging me and I can't find a reason why.. is it the scheme? or something else?

I would be obliged if someone could take the time to reply.

 vinod venugopalan September 27, 2004 18:12

Re: ENO scheme asymmetry

If this is indeed a problem with the scheme.. then is there any way I can reverse this.. as in make the left running wave stronger and right one weaker? That way I can may be alternate between the both and get a mean solution..

Thanks

Vinod

 Pete September 28, 2004 20:11

Re: ENO scheme asymmetry

Hi, Vinod,

ENO scheme can't cause this much assymmetry. There may be something wrong with your code. Or you have some misunderstanding on the scheme itself.

The mistake is probably in the evaluation of the variable values at half-grid points. Hope you can find out the bug soon.

Pete

 Vinod Venugopalan September 30, 2004 14:14

Re: ENO scheme asymmetry

thanks,

Is there any way you could mail me a copy or a snippet of your ENO code on how to achieve flux splitting? I am not so sure if the evaluation of variable values at half-grid points are causing the error... the code works just fine for the shock tube problem. I think the problem is with flux splitting and I just can't put my finger on it. You may look at the results @

http://f1vinod.tripod.com/results/results.emf http://f1vinod.tripod.com/results/shocktube.emf http://f1vinod.tripod.com/results/shocktube2.emf

I would appreciate it if you could mail me the code or the code snippet.

thanks Vinod (f1vinod@yahoo.com)

 Pete September 30, 2004 23:56

Re: ENO scheme asymmetry

Funny, your email doesn't work. My email was bounced back. :(

Pete

 Matthew October 7, 2004 01:01

Re: ENO scheme asymmetry

h[i] = hp[i] + hn[i+1]; Maybe the fault is in here. Try to change the above equation into h[i] = hp[i] + hn[i];

 Vinod Venugopalan October 7, 2004 11:05

Re: ENO scheme asymmetry

I am sorry pete.. the email Id had a typo

f1vinod@yahoo.com or try venugov@email.uah.edu

The links do work when I click them in windows.. I checked the links on my solaris machine and it doesn't work for some reason.

http://f1vinod.tripod.com/results/results.emf

http://f1vinod.tripod.com/results/shocktube.emf

http://f1vinod.tripod.com/results/shocktube2.emf

I tried something else, I split my flux such that negative flux interpolation stencil search starts with (i,i+1) instead of (i,i-1) as in the positive flux. This gives me symmetric results but it also ends up giving me small oscillations in parts of the domain where there's supposed to be a smooth solution (none at the shock or contact discontinuity)..

Thanks

Vinod

 Vinod Venugopalan October 7, 2004 11:21

Re: ENO scheme asymmetry

hi,

I did try that, it didn't work... the code gives me NaNs, it blows up. :(

fluxpositive[i] --->||node i||<--- fluxnegative[i+1]

Anyway the reason I add h[i] = hp[i] + hn[i+1]; is that hn[i] would be the negative flux for node i-1, since I am performing ENO interpolation starting from (i,i-1) for both negative and postive interpolations. Therefore, hn[i+1] would be the correct negative flux for node i.

I tried something else,I split my flux such that negative flux interpolation stencil search starts with (i,i+1) instead of (i,i-1) earlier. This gives me symmetric results but it also ends up giving me small oscillations in parts of the domain where there's supposed to be a smooth solution (none at the shock or contact discontinuity)..

I am not sure what's going on. If you can send me a code or code snippet that shows how this works, please do.

Thanks Vinod

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