jumpTable: Can someone explain how to use it?
Dear OpenFOAMers,
Could someone explain how to use jumpTable in cyclic fan BC? In the TJunctionFan example, I saw: p { type fan; patchType cyclic; jump uniform 0; value uniform 0; jumpTable polynomial 1((100 0)); } ---------------- Does the "polynominal 1((100 0));" mean pressure jump of 100 Pa with 0 velocity? What if I have a 5th order polynominal, like Del_P = a0 + a1*U + a2*U^2 + a3*U^3 + a4*U^4 + a5*U^5. How to specify this? I tried 5((a0 a1 a2 a3 a4 a5)); but, got an error. Thanks! Pei-Ying |
Reading the source code(fanFvPatchFields.C), the meaning of "f" dictionary changed from v2.2.0:
To set "Del_P = a0 + a1*U + a2*U^2 + a3*U^3 + a4*U^4 + a5*U^5"
Please correct me if I'm wrong. Hope this helps, Fumiya |
Hi, Fumiya,
You are a great help! I looked at the source code in fanFvPatch. Could not figure out how to use the polynominal method. So, I ended up using reading the csv method to read in the curve. And yes, in the source code, it looks like it tries to be backward compatible with OF-2.1.x, but, when I tried it "f 6(a0 a1 a2 a3 a4 a5)", the case diverged in 4 steps. Maybe there is a bug. Pei-Ying |
HI Hsieh
What is backward compatible?
|
Greetings to all!
@manju819: Pei-Ying was referring to this piece of code: https://github.com/OpenFOAM/OpenFOAM...chFields.C#L81 Essentially, this boundary condition tries to construct the polynomial that is provided with the "f" option, but reinterpreted into the new data structure. This is the backward compatibility feature. This code doesn't seem to have changed in 2.3.x... I gotta test if this part of the code has a bug or not. edit: I could not find any bugs in the compatibility code. Best regards, Bruno |
Hi Bruno
Thank you for your reply. I have one more doubt, how does the pressure jump calculated on cyclic patch. For example if I put the pressure jump boundary on cyclic patch as this
Fan1_half0 { type fan; patchType cyclic; jumpTable table ((3.73 524.56)(5.24 429.33)(6.59 244.48)); value uniform 0; } How will it caluclate the jump values on Fan1_half0 and Fan1_half1? Thanks in advance. |
Quick answer: This is the interpolation table you defined:
Code:
U p Code:
dp = table(U); What I don't know is if the pressure jump is imposed half to each side or if it's the same on both sides. My guess is that the values are automatically balanced between the two sides, given it's a pair of cyclic patches, therefore the weights on them (the "coeffs" array) will balance it out, i.e. roughly making it half of the value on each side. |
I came across this thread which is a few years old by now, and I doubt polynomial jumpTable for a fan cyclic patch works as explained above. I am using fairly recent build of openfoam.com code (v2006) , but I doubt openfoam.org version would be any different. The way the coefficient works (based on reading the code) is as follows.
If you'd like to specify this polynomial: Delta_p = A0 + A1 * U^n + A2 * U^m Then, you specify the jumbTable like this: fan { type fan; patchType cyclic; jump uniform 0; value uniform 0; jumpTable polynomial 3 ( (A0 0) (A1 n) (A2 m) ); } You can basically specify any fan curve this way by curve fitting its data points |
Can someone confirm these values are in the right order? I assumed (100 0) in the tutorial meant 100Pa at 0m/s ie a stalled condition on the fan and that this was a constant jump irrespective of velocity. The post here appears to be the other way round.
|
All times are GMT -4. The time now is 17:24. |