Hello,
I have a doubt about
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 
Alberto,
When interpolating
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 
Thanks David for your answer.
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: http://www.cfdonline.com/OpenFOAM_D...ges/1/9094.jpg 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 
Alberto,
I agree with the a
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 
David,
yes, that's what I m
David,
yes, that's what I meant. I didn't specify the face are vector direction. Thanks again for your help :) Alberto 
Alberto,
the trick of pos a
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 
Hi Luca,
take a look to the
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 
Dear Luca,
Thank you for yo
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 
Dear Luca,
sorry about it.
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 
Thanks all a lot for the compl
Thanks all a lot for the complete information!
Regards, Alberto 
Xposted from other thread
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]; Code:
dimensions [0 1 1 0 0 0 0]; Code:
thermoType hThermo<pureMixture<sutherlandTransport<specieThermo<hConstThermo<perfectGas>>>>>; 
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. http://img18.imageshack.us/img18/2805/laden.png 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 . http://img696.imageshack.us/img696/1...denburgjpg.jpg 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 ? 
Could anyone please help me with this ? I can present some more details if necessary
Thank You 
Central Scheme in rhoCentralFoam VS fvSchemes
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 
No ideas ?

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?

Quote:
http://www.cfdonline.com/cgibin/Op...1867#POST11867 Is there a new link? With best regards. M K 
I did download it a few days ago, that is fine

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) 
You are right, that is not displaying any more

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