CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   jumpTable: Can someone explain how to use it? (https://www.cfd-online.com/Forums/openfoam-pre-processing/116105-jumptable-can-someone-explain-how-use.html)

phsieh2005 April 12, 2013 20:15

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

fumiya April 13, 2013 00:23

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

phsieh2005 April 13, 2013 07:27

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

manju819 August 13, 2015 06:42

HI Hsieh
 
What is backward compatible?

wyldckat August 13, 2015 07:49

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

manju819 August 17, 2015 05:42

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.

wyldckat August 17, 2015 08:30

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.

Simurgh March 11, 2021 21:59

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

cwill239 August 29, 2023 00:17

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.