CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Pre-Processing

jumpTable: Can someone explain how to use it?

Register Blogs Community New Posts Updated Threads Search

Like Tree6Likes
  • 2 Post By fumiya
  • 1 Post By wyldckat
  • 3 Post By Simurgh

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 12, 2013, 20:15
Default jumpTable: Can someone explain how to use it?
  #1
Senior Member
 
Pei-Ying Hsieh
Join Date: Mar 2009
Posts: 334
Rep Power: 18
phsieh2005 is on a distinguished road
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
phsieh2005 is offline   Reply With Quote

Old   April 13, 2013, 00:23
Default
  #2
Senior Member
 
fumiya's Avatar
 
Fumiya Nozaki
Join Date: Jun 2010
Location: Yokohama, Japan
Posts: 266
Blog Entries: 1
Rep Power: 18
fumiya is on a distinguished road
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"
  • Older versions than 2.2.0
    Code:
    p
    {
    type fan; patchType cyclic; f 6(a0 a1 a2 a3 a4 a5); value uniform 0;
    }
  • Version 2.2.0 and newer
    Code:
    p
    {
    type fan; patchType cyclic; jump uniform 0; value uniform 0; jumpTable polynomial 6( (Del_p(U0) U0) (Del_p(U1) U1) (Del_p(U2) U2) (Del_p(U3) U3) (Del_p(U4) U4) (Del_p(U5) U5) );
    }
    I think to use the older version settings gives unexpected results.

Please correct me if I'm wrong.

Hope this helps,
Fumiya
Tobi and Yann Scott like this.
fumiya is offline   Reply With Quote

Old   April 13, 2013, 07:27
Default
  #3
Senior Member
 
Pei-Ying Hsieh
Join Date: Mar 2009
Posts: 334
Rep Power: 18
phsieh2005 is on a distinguished road
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
phsieh2005 is offline   Reply With Quote

Old   August 13, 2015, 06:42
Default HI Hsieh
  #4
Member
 
Manjunath Reddy
Join Date: Jun 2013
Posts: 47
Rep Power: 12
manju819 is on a distinguished road
What is backward compatible?
manju819 is offline   Reply With Quote

Old   August 13, 2015, 07:49
Default
  #5
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
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
__________________

Last edited by wyldckat; August 13, 2015 at 09:45. Reason: see "edit:"
wyldckat is offline   Reply With Quote

Old   August 17, 2015, 05:42
Default Hi Bruno
  #6
Member
 
Manjunath Reddy
Join Date: Jun 2013
Posts: 47
Rep Power: 12
manju819 is on a distinguished road
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.
manju819 is offline   Reply With Quote

Old   August 17, 2015, 08:30
Default
  #7
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,974
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Quick answer: This is the interpolation table you defined:
Code:
  U       p
3.73   524.56
5.24   429.33
6.59   244.48
The pressure jump is calculated in function of U, using linear interpolation of the 2 closest values:
Code:
dp = table(U);
The pressure difference is imposed directly on the matrices before solving, therefore always ensuring that the pressure jump is imposed between both sides. This is done here: https://github.com/OpenFOAM/OpenFOAM...chField.C#L164

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.
Farid likes this.
wyldckat is offline   Reply With Quote

Old   March 11, 2021, 21:59
Default
  #8
New Member
 
Join Date: Jan 2019
Posts: 10
Rep Power: 7
Simurgh is on a distinguished road
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
Swift, lumpor and Teresa.Z like this.
Simurgh is offline   Reply With Quote

Old   August 29, 2023, 00:17
Default
  #9
New Member
 
Jules
Join Date: Aug 2023
Posts: 1
Rep Power: 0
cwill239 is on a distinguished road
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.
cwill239 is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Can anybody explain my log file gandesk OpenFOAM 1 December 7, 2010 02:15
Please explain steady turbulence for simpleFoam smillion OpenFOAM 10 September 7, 2010 23:14
Please explain some basic doubts jaswi OpenFOAM 0 September 13, 2007 08:37
could you explain a everyday life phenomenon? askquestion Main CFD Forum 1 March 9, 2004 13:36
can any body explain the significance of Y+ madasu FLUENT 19 October 17, 2001 21:14


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