
[Sponsors] 
September 5, 2008, 20:59 
Hello,
I have a doubt about

#1 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Hello,
I have a doubt about rhoCentralFoam. What do instructions like the following do? surfaceScalarField rho_pos = fvc::interpolate(rho, pos, "reconstruct(rho)"); surfaceScalarField rho_neg = fvc::interpolate(rho, neg, "reconstruct(rho)"); In particular, I don't understand the role of "pos" and "neg". Thanks in advance for any help. With kind regards, Alberto 

September 8, 2008, 11:05 
Alberto,
When interpolating

#2 
Member
E. David Huckaby
Join Date: Mar 2009
Posts: 57
Rep Power: 8 
Alberto,
When interpolating (reconstructing) a variable (e.g. "rho") from cells to faces there is a value associated with each side of the face. The "interpolate" function only returns an average of these two values. When using an "upwind"type interpolation scheme the flux, "pos" or "neg", will weight (or select) the face value to "upwind" side of the face. For rhoCentralFoam, I think the idea is to select a suitable interpolation scheme such that "pos" > 0 to extract to the left value and "neg" < 0 to extract to the right value. hope this helps Dave 

September 8, 2008, 12:59 
Thanks David for your answer.

#3 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Thanks David for your answer. Let me try to see if I understand it right :)
Let's consider this picture of a simple squared grid: If I consider the face between i1 and i, if I take the "pos", I should get the value in i, while if I take the "neg" I obtain the value in i1. In the same way, if I consider the face betweem i and i+1, if I take the "pos", I obtain the value in i, and if I take the "neg", the value in i+1. Does this sound right to you? Thanks again, Alberto 

September 8, 2008, 14:01 
Alberto,
I agree with the a

#4 
Member
E. David Huckaby
Join Date: Mar 2009
Posts: 57
Rep Power: 8 
Alberto,
I agree with the above statements, if the "face area vectors" point outward from cell i,j. If all the "face area vectors" are pointed either toward the right or to the top, then: on face the between i1 and i (i1/2), "pos" would return rho[i1] "neg" would return rho[i] on face the between i and i+1 (i+1/2), "pos" would return rho[i] "neg" would return rho[i+1] The above is for zeroorder reconstruction. For "cellbased" higher order reconstruction (e.g. limitedlinear), the face values would take the form: rho_pos[i+1/2] = rho[i] + drho[i]*(x[i+1/2]  x[i]) rho_neg[i+1/2] = rho[i] + drho[i]*(x[i+1/2]  x[i+1]) where drho[i] is limited gradient of rho at cell "i" Dave 

September 8, 2008, 14:09 
David,
yes, that's what I m

#5 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
David,
yes, that's what I meant. I didn't specify the face are vector direction. Thanks again for your help :) Alberto 

September 9, 2008, 04:34 
Alberto,
the trick of pos a

#6 
Member
Luca Gasparini
Join Date: Mar 2009
Location: Italy
Posts: 37
Rep Power: 8 
Alberto,
the trick of pos and neg is the trick I thought about when I developed the centralFoam code, from which rhoCentralFoam has been later derived by the people at OpenCFD. In OF, surface fields have just one single value which is related to the face, but when you apply Godunovlike scheme you actually want to compute the flux through a face solving (maybe approxiamtely) the Riemann problem defined by the TWO different states of the fluid on the opposite sides of each face. Thus, for each unknown (say p, U and T), you need to evaluate two surface fields with the values of the variable on the two sides of the face. The fvc::interpolate function normally use the sign of the velocity flux to "decide" how to upwind the cell values in order to interpolate a face value. So the idea was to "fool" the interpolation routine calling it twice: once with a "positive" flux (e.g. +1) and one with a "negative" flux (e.g. 1). Depending on the selected interpolation scheme, as explained by David, you will get two (most likely) different estimates of the face values from which the Godunovlike scheme (in this case a centralupwind scheme) can be applied. The nice (and somewhat unusual) thing in OF is that given an internal face it always has an "owner" and a "neighbour": in OF notation the flux is positive if the flow is going through the face from the owner cell to the neighbour cell, and negative otherwise (i.e. the face normal is positive from owner to neighbour). Thus, because of the unstructured grid used in OF you cannot easily think interms of i1,j and i,j but you better think in terms of owner/neighbour relation. So you actually solve a Riemann problem at each face between an "ownerside" and a "neighbourside" with the convention that the flux will be positive in the "ownertoneighbour" direction. It doesn't matter if (in a more conventional way of thinking) face normals are outward or inward with respect to any given cell. At the end, everything will be consistent. Kind regards, Luca 

September 9, 2008, 05:18 
Hi Luca,
take a look to the

#7 
Member
Luca M.
Join Date: Mar 2009
Location: Luzern, Switzerland
Posts: 59
Rep Power: 8 
Hi Luca,
take a look to the original paper of Kurganov about Riemann solver free approach implemented in the rhoCentralFoam solver: may be it can help you to better understand the algorithm http://www.cscamm.umd.edu/centpack/publications/files/KT_semidiscrete.JCP00cen tpack.pdf Regards Luca 

September 9, 2008, 07:49 
Dear Luca,
Thank you for yo

#8 
Member
Luca Gasparini
Join Date: Mar 2009
Location: Italy
Posts: 37
Rep Power: 8 
Dear Luca,
Thank you for your hint. I don't want to appear arrogant but I'm the one who wrote the (original) centralFoam code, so I know about Kurganov et al. Riemann free approach. Still, it is a Godunovlike scheme and it is quite close to an approximate Riemannsolver based solver. In fact you could easily use the most of centralFoam substituting KT scheme with Roe's one; including the trick with pos and neg "fictitious fluxes". In the previous explanation I used the "Riemann problem" concept because it's the most familiar approach. If you are interest: http://www.cfdonline.com/cgibin/Op...1867#POST11867 Kind regards, Luca 

September 9, 2008, 08:36 
Dear Luca,
sorry about it.

#9 
Member
Luca M.
Join Date: Mar 2009
Location: Luzern, Switzerland
Posts: 59
Rep Power: 8 
Dear Luca,
sorry about it. I've typed the wrong name starting the thread :) The suggestion was for Alberto and the paper could be useful anyway. Luca 

September 9, 2008, 11:29 
Thanks all a lot for the compl

#10 
Senior Member
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,894
Rep Power: 26 
Thanks all a lot for the complete information!
Regards, Alberto 

January 13, 2010, 21:01 
Xposted from other thread

#11 
Member
Mihir
Join Date: Mar 2009
Posts: 40
Rep Power: 8 
Im trying to solve a freejet problem by rhoCentralFoam [OF 1.5]. My domain represents a close chamber in which the jet enters at Supersonic conditions.
My code crashes due to a FPE , I am getting ve pressure & density at the outlet . this is obviously due to solving the h equation. I do not understand what is causing this error . ill post my BC;s & the thermoPhysicalProperties directory . Code:
dimensions [1 1 2 0 0 0 0]; internalField uniform 42000; boundaryField { wall { type slip; } axis { type empty; } outlet { type nonReflective; refValue uniform 6600; gamma 1.4; phi phi; psi psi; valueFraction uniform 0.2; refGradient uniform 0.2; value uniform 6600; } inlet { type totalPressure; U U; phi phi; rho none; psi none; gamma 1.4; p0 uniform 101325; value uniform 101325; } frontAndBackPlanes { type empty; } front { type wedge; } back { type wedge; } } Code:
dimensions [0 1 1 0 0 0 0]; internalField uniform (260.39 0 0); boundaryField { wall { type slip; } axis { type empty; } outlet { type zeroGradient; } inlet { type fixedValue; value uniform (315 0 0); } frontAndBackPlanes { type empty; } front { type wedge; } back { type wedge; } } Code:
thermoType hThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>; mixture perfectGas 1 28.9 1004.3 200.0 1.458e6 110.4; rhoMin rhoMin [1 3 0 0 0] 0.001; 

January 14, 2010, 09:49 

#12 
Member
Mihir
Join Date: Mar 2009
Posts: 40
Rep Power: 8 
I also has a question about the accuracy of the solver as claimed in the paper :Implementation of semidiscrete, nonstaggered central schemes in a colocated, polyhedral, finite volume framework, for highspeed viscous flows by Christopher J. Greenshields1,2,∗,†, Henry G. Weller2, Luca Gasparini3 and Jason M. Reese1
In the solution of the Ladenburg Free Jet problem , this article claims accurac in successful reproduction of experimental results by computational method. The following picture shows the matching of the shock locations & profiles. However the converged results obtained from the tutorial LadenburgPsi60 of rhoCentralFoam show shock profile slightly different from the above image . The picture in the article shows a prominent "Mach Disc" , while the same in the tutorial appears smeared . Can you explain to me the difference in the two sets of results ? Is the difference due to accuracy or simply a matter of interpretation ? 

January 18, 2010, 11:02 

#13 
Member
Mihir
Join Date: Mar 2009
Posts: 40
Rep Power: 8 
Could anyone please help me with this ? I can present some more details if necessary
Thank You 

December 18, 2011, 10:05 
Central Scheme in rhoCentralFoam VS fvSchemes

#14 
New Member
Join Date: Aug 2011
Posts: 28
Rep Power: 6 
Hi all,
I'm not too experienced with CFD so I apologize for stupid questions in the first place ;). I'm wondering about a very general thing concerning rhoCentralFoam. It is a central Scheme by construction right? I looked through "Implementation of semidiscrete, nonstaggered central schemes in a colocated, [...] finite volume framework [...]" by Greenshields, Gasparini et. Al. There is the following explanation: "In the KT [Kurganov / Tadmor] method, the f + and f − contributions are weighted equally so that the weighting coefficient is alpha=0.5, hence its description as a central scheme." So my question is: Why is it possible, to specify an upwind div scheme or interpolation Scheme for rhoCentral Foam? Respectively, Do I change the idea of rhoCentralFoam by using an upwind scheme together with a Tadmor flux Scheme? The reason for the question is simply, that I have great difficulties to distinguish between all the different upwind / central Scheme possibilities . Thanks a lot, regards Last edited by schwermetall; December 20, 2011 at 08:25. 

December 21, 2011, 05:26 

#15 
New Member
Join Date: Aug 2011
Posts: 28
Rep Power: 6 
No ideas ?


April 22, 2012, 03:51 

#16 
Senior Member
Mahdi Hosseinali
Join Date: Apr 2009
Posts: 124
Rep Power: 8 
I ran the case forward step from the rhoCentralFoam tutorials, but when I tried to plot the residuals, interestingly I saw that all of the residuals are zero, any idea?


April 23, 2012, 04:05 

#17  
New Member
M K Singh
Join Date: Sep 2009
Posts: 19
Rep Power: 7 
Quote:
http://www.cfdonline.com/cgibin/Op...1867#POST11867 Is there a new link? With best regards. M K 

April 23, 2012, 15:26 

#18 
Senior Member
Mahdi Hosseinali
Join Date: Apr 2009
Posts: 124
Rep Power: 8 
I did download it a few days ago, that is fine


April 23, 2012, 17:36 

#19 
New Member
M K Singh
Join Date: Sep 2009
Posts: 19
Rep Power: 7 
I mean this thread:
http://www.cfdonline.com/cgibin/Op...1867#POST11867 I am able to download the pdf but not able to see the above thread (see #8) 

April 27, 2012, 13:28 

#20 
Senior Member
Mahdi Hosseinali
Join Date: Apr 2009
Posts: 124
Rep Power: 8 
You are right, that is not displaying any more


Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Thermophysicalproperties in rhoCentralFoam  srinath  OpenFOAM Running, Solving & CFD  12  October 2, 2012 10:04 
RhoCentralFoam Steady State  kieranwood85  OpenFOAM Running, Solving & CFD  0  January 9, 2009 19:50 
RhocentralFoam  ehsan  OpenFOAM Running, Solving & CFD  0  November 19, 2008 06:35 
how to get the detail information about ke models  limingtiger  CDadapco  1  July 15, 2005 04:22 
HVN tell me the detail of relative pressure  chong chee nan  FLUENT  1  January 2, 2002 05:55 