CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Frozen rotor simulation

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 24, 2017, 07:07
Default Frozen rotor simulation
  #1
Senior Member
 
kandelabr's Avatar
 
Nejc
Join Date: Feb 2017
Location: Slovenia
Posts: 196
Rep Power: 9
kandelabr is on a distinguished road
I have a 3d model of the fluid inside a pump impeller. I use SRFPimpleFoam with these boundary conditions (at the moment I have turbulence modelling turned off):

0/Urel:

Code:
internalField   uniform (0 0 0);

boundaryField
{
    Inlet
    {
        type            SRFVelocity;
        inletValue      uniform (5.5 0 0);
        relative        no;
        value           uniform (5.5 0 0);
    }

    Outlet
    {
        type            rotatingPressureInletOutletVelocity;
        omega           constant (439.823 0 0); // 4200 rpm
        value           uniform (0 0 0);
    }

    Walls
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
}
0/p:
Code:
internalField   uniform 0;

boundaryField
{
    Inlet
    {
        type            zeroGradient;
    }

    Outlet
    {
        type            fixedValue;
        value           uniform 0;
    }
    Walls
    {
        type            zeroGradient;
    }
}
The problem is that the solution is not converging. Max courant number jumps to high values very quickly. I guess this has something to do with conditions on the outlet but the problem is that in a rotating reference frame I can't extend outlet further because it all becomes an impeller. Am i correct? Can this be a meshing problem? I use tetrahedral mesh made with Salome.
Any suggestions?

Thanks
kandelabr is offline   Reply With Quote

Old   February 24, 2017, 10:54
Default
  #2
New Member
 
Pablo Mtz. Filgueira
Join Date: Apr 2014
Location: Vitoria-Gasteiz
Posts: 25
Rep Power: 12
pablo_fil is on a distinguished road
Hi kandelabr!

Maybe your time step is too large. Try to enable adaptation with a low target Courant number to find out if you where too far from the appropiate time step value.

Hope it helps!
pablo_fil is offline   Reply With Quote

Old   February 27, 2017, 04:23
Default
  #3
Senior Member
 
kandelabr's Avatar
 
Nejc
Join Date: Feb 2017
Location: Slovenia
Posts: 196
Rep Power: 9
kandelabr is on a distinguished road
Hello,
thanks for reply.
My initial courant number is as low as 0.5 but in a few timesteps it escalates to 1000+. When I cancel calculation and see intermediate results in paraFoam, there's a strangely high velocity right on the edge of blade on the outlet.

My 'theory' is that I should include part of the fluid outside the impeller. I added a ring on the outlet (see attachment). Walls of the ring don't rotate.

I have updated boundary conditions:

0/Urel:
Code:
boundaryField
{
    Inlet
    {
        type            SRFVelocity;
        inletValue      uniform (5.5 0 0);
        relative        no;
        value           uniform (5.5 0 0);
    }

    Outlet
    {
        type            rotatingPressureInletOutletVelocity;
        omega           constant (439.6 0 0);
        value           uniform (0 0 0);

    }

    ImpellerWalls
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

    VoluteWalls
    {
        type            SRFVelocity;
        inletValue      uniform (0 0 0);
        relative        no;
        value           uniform (0 0 0);
    }
}
0/p:
Code:
boundaryField
{
    Inlet
    {
        type            zeroGradient;
    }

    Outlet
    {
        type            fixedValue;
        value           uniform 0;
    }
    "(ImpellerWalls|VoluteWalls)"
    {
        type            zeroGradient;
    }
}
The results are the same though. Something is not right since courant number gets pretty high (before I cancel the whole thing).

Code:
Starting time loop

Courant Number mean: 0.000251018 max: 0.498309
Time = 5e-006

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 1, Final residual = 0.0589673, No Iterations 2
smoothSolver:  Solving for Urely, Initial residual = 1, Final residual = 0.0353024, No Iterations 2
smoothSolver:  Solving for Urelz, Initial residual = 1, Final residual = 0.0354758, No Iterations 2
GAMG:  Solving for p, Initial residual = 1, Final residual = 0.0251039, No Iterations 10
time step continuity errors : sum local = 3.17346e-005, global = -9.67471e-006, cumulative = -9.67471e-006
GAMG:  Solving for p, Initial residual = 0.0642548, Final residual = 6.36254e-009, No Iterations 28
time step continuity errors : sum local = 3.2037e-009, global = 9.18978e-010, cumulative = -9.67379e-006
ExecutionTime = 21.036 s  ClockTime = 21 s

Courant Number mean: 0.115253 max: 11.8192
Time = 1e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.295107, Final residual = 0.0172095, No Iterations 2
smoothSolver:  Solving for Urely, Initial residual = 0.325871, Final residual = 0.0193292, No Iterations 2
smoothSolver:  Solving for Urelz, Initial residual = 0.32537, Final residual = 0.0192109, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.0443229, Final residual = 0.00123252, No Iterations 4
time step continuity errors : sum local = 0.000405645, global = 0.000161995, cumulative = 0.000152321
GAMG:  Solving for p, Initial residual = 0.170854, Final residual = 5.22185e-009, No Iterations 31
time step continuity errors : sum local = 8.10986e-010, global = -2.2843e-010, cumulative = 0.000152321
ExecutionTime = 76.17 s  ClockTime = 76 s

Courant Number mean: 0.114349 max: 13.1679
Time = 1.5e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.0773901, Final residual = 0.00273242, No Iterations 2
smoothSolver:  Solving for Urely, Initial residual = 0.063731, Final residual = 0.00264391, No Iterations 2
smoothSolver:  Solving for Urelz, Initial residual = 0.0636405, Final residual = 0.00263283, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.685402, Final residual = 0.0158037, No Iterations 2
time step continuity errors : sum local = 0.000249623, global = -3.31512e-005, cumulative = 0.00011917
GAMG:  Solving for p, Initial residual = 0.44843, Final residual = 8.32125e-009, No Iterations 29
time step continuity errors : sum local = 6.59205e-011, global = -1.86083e-011, cumulative = 0.00011917
ExecutionTime = 93.095 s  ClockTime = 93 s

Courant Number mean: 0.114484 max: 22.49
Time = 2e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.0317763, Final residual = 0.00129583, No Iterations 2
smoothSolver:  Solving for Urely, Initial residual = 0.0257825, Final residual = 0.00123121, No Iterations 2
smoothSolver:  Solving for Urelz, Initial residual = 0.0257636, Final residual = 0.00121398, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.206075, Final residual = 0.00911697, No Iterations 2
time step continuity errors : sum local = 9.355e-005, global = 1.57552e-005, cumulative = 0.000134925
GAMG:  Solving for p, Initial residual = 0.141025, Final residual = 6.86812e-009, No Iterations 31
time step continuity errors : sum local = 6.23933e-011, global = 1.76006e-011, cumulative = 0.000134925
ExecutionTime = 157.508 s  ClockTime = 157 s

Courant Number mean: 0.114674 max: 44.8948
Time = 2.5e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.0215758, Final residual = 0.00129572, No Iterations 2
smoothSolver:  Solving for Urely, Initial residual = 0.0174309, Final residual = 0.00128903, No Iterations 2
smoothSolver:  Solving for Urelz, Initial residual = 0.0175009, Final residual = 0.00129434, No Iterations 2
GAMG:  Solving for p, Initial residual = 0.264416, Final residual = 0.00736207, No Iterations 3
time step continuity errors : sum local = 5.0336e-005, global = -5.26303e-006, cumulative = 0.000129662
GAMG:  Solving for p, Initial residual = 0.279803, Final residual = 4.17876e-009, No Iterations 31
time step continuity errors : sum local = 2.87213e-011, global = -8.10944e-012, cumulative = 0.000129662
ExecutionTime = 177.742 s  ClockTime = 177 s

Courant Number mean: 0.114891 max: 308.443
Time = 3e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.0211509, Final residual = 0.000875977, No Iterations 4
smoothSolver:  Solving for Urely, Initial residual = 0.0202869, Final residual = 0.000901536, No Iterations 4
smoothSolver:  Solving for Urelz, Initial residual = 0.0225594, Final residual = 0.00107766, No Iterations 4
GAMG:  Solving for p, Initial residual = 0.396771, Final residual = 0.0149064, No Iterations 3
time step continuity errors : sum local = 0.000129075, global = 2.29825e-006, cumulative = 0.00013196
GAMG:  Solving for p, Initial residual = 0.522485, Final residual = 4.09076e-009, No Iterations 33
time step continuity errors : sum local = 4.17708e-011, global = 1.18071e-011, cumulative = 0.00013196
ExecutionTime = 239.778 s  ClockTime = 239 s

Courant Number mean: 0.116034 max: 1059.57
Time = 3.5e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.0594116, Final residual = 0.00524483, No Iterations 4
smoothSolver:  Solving for Urely, Initial residual = 0.0595924, Final residual = 0.00385022, No Iterations 6
smoothSolver:  Solving for Urelz, Initial residual = 0.0786362, Final residual = 0.00630619, No Iterations 6
GAMG:  Solving for p, Initial residual = 0.678854, Final residual = 0.0287991, No Iterations 3
time step continuity errors : sum local = 0.000422026, global = -1.63291e-006, cumulative = 0.000130327
GAMG:  Solving for p, Initial residual = 0.676814, Final residual = 8.72489e-009, No Iterations 28
time step continuity errors : sum local = 2.19735e-010, global = -6.7754e-011, cumulative = 0.000130327
ExecutionTime = 254.929 s  ClockTime = 255 s

Courant Number mean: 0.120919 max: 4742.82
Time = 4e-005

PIMPLE: iteration 1
smoothSolver:  Solving for Urelx, Initial residual = 0.262302, Final residual = 0.0131629, No Iterations 6
smoothSolver:  Solving for Urely, Initial residual = 0.331618, Final residual = 0.0246462, No Iterations 10
smoothSolver:  Solving for Urelz, Initial residual = 0.41908, Final residual = 0.0382986, No Iterations 10
GAMG:  Solving for p, Initial residual = 0.806774, Final residual = 0.020975, No Iterations 4
time step continuity errors : sum local = 0.00081054, global = -2.52914e-006, cumulative = 0.000127798
GAMG:  Solving for p, Initial residual = 0.555316, Final residual = 8.76215e-009, No Iterations 30
time step continuity errors : sum local = 9.50579e-010, global = -2.7071e-010, cumulative = 0.000127798
ExecutionTime = 312.559 s  ClockTime = 312 s

Courant Number mean: 0.152711 max: 18586.1
Time = 4.5e-005
The results are also plain wrong. The mesh seems OK, though...

Any comments?

Thanks!
Attached Images
File Type: png ps1.PNG (56.6 KB, 30 views)
File Type: png ps2.PNG (75.3 KB, 33 views)
File Type: jpg ps3.jpg (199.7 KB, 50 views)
kandelabr is offline   Reply With Quote

Old   February 27, 2017, 04:33
Default
  #4
New Member
 
Pablo Mtz. Filgueira
Join Date: Apr 2014
Location: Vitoria-Gasteiz
Posts: 25
Rep Power: 12
pablo_fil is on a distinguished road
Wow, that mesh looks really cool.

I'm not expert in SRF and that stuff in OF, but I think you should take a look at this:
https://github.com/OpenFOAM/OpenFOAM...ontrolDict#L48

In LINE 48 you can see the adjustTimeStep parameter and maxCo, which you should keep below a reasonable value (<1?)

Maybe it helps
pablo_fil is offline   Reply With Quote

Old   February 27, 2017, 05:53
Default
  #5
Senior Member
 
Join Date: Mar 2015
Posts: 250
Rep Power: 12
KateEisenhower is on a distinguished road
Hi Nejc,

My first step would be to get the initial residuals lower. It seems like you have only 1 pimple iteration per timestep.

Keep us updated! Best regards,

Kate
KateEisenhower is offline   Reply With Quote

Old   February 27, 2017, 06:25
Default
  #6
Senior Member
 
kandelabr's Avatar
 
Nejc
Join Date: Feb 2017
Location: Slovenia
Posts: 196
Rep Power: 9
kandelabr is on a distinguished road
Hello Pablo, Kate,

I have turned time step adjustment on and it doesn't really help, it just makes time step 1000 times smaller. I also changed nCorrectors and some other settings so that now residuals are 1e-10 or even less and time step has still dropped 1000 times. I'll just leave it be and see what comes out.

I'll be back with a report

Thanks (for now)
kandelabr is offline   Reply With Quote

Old   February 27, 2017, 07:37
Default
  #7
Senior Member
 
kandelabr's Avatar
 
Nejc
Join Date: Feb 2017
Location: Slovenia
Posts: 196
Rep Power: 9
kandelabr is on a distinguished road
Well, it turns out that although residuals are now much lower the solution still doesn't converge. I suspect boundary conditions are wrong.

In plain english, I guess that's my case:
- inlet: uniform velocity in absolute coordinates, pressure with zero gradient
- impeller walls: zero velocity in relative coords, zero gradient pressure
- volute walls: zero velocity in absolute coordinates, zero gradient pressure
- outlet: ??? (zero gradient? free stream? rotating <something something>)?

I'm obviously having trouble with outlet BCs. If there's something on the web (or in books) I could learn from about that, I'd be very happy.
kandelabr is offline   Reply With Quote

Old   March 2, 2017, 17:20
Default
  #8
Senior Member
 
Joachim Herb
Join Date: Sep 2010
Posts: 650
Rep Power: 21
jherb is on a distinguished road
Did you try nOuterCorrectors >> 1 with underrelaxation?
jherb is offline   Reply With Quote

Old   March 3, 2017, 03:53
Default
  #9
Senior Member
 
kandelabr's Avatar
 
Nejc
Join Date: Feb 2017
Location: Slovenia
Posts: 196
Rep Power: 9
kandelabr is on a distinguished road
Yes I have. I had to check, though. And doing that I found pRefCell and pRefValue in my PIMPLE settings... I copied that from another case and missed that... I guess that was the problem.

It seems to work now, without turbulence modelling. I guess I'll have to further investigate boundary conditionsfor k-epsilon.

Thanks!

Last edited by kandelabr; March 3, 2017 at 05:30.
kandelabr is offline   Reply With Quote

Old   March 3, 2017, 07:08
Default
  #10
Member
 
Ricky
Join Date: Jul 2014
Location: Germany
Posts: 78
Rep Power: 11
kera is on a distinguished road
can you post your checkMesh results? As I see you are using a tetra mesh for your problem. I had the same problem before and switching from tetra to hexa had actually solved my problem. Maybe you can try that aswell.

Regards,
Ricky
__________________
If it is easy, then something is fishy!
kera is offline   Reply With Quote

Old   March 5, 2017, 13:02
Default
  #11
Senior Member
 
kandelabr's Avatar
 
Nejc
Join Date: Feb 2017
Location: Slovenia
Posts: 196
Rep Power: 9
kandelabr is on a distinguished road
Hello,

checkMesh says the mesh is OK. I have two options now, either try hexahedral mesh with salome, use snappyHexMesh or do a MRF simulation with modelled volute as well.

This moment i'm busy with another project but I'll report here whatever I discover.

Thanks for now.
kandelabr 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
Frozen rotor centrifugal pump energy382 CFX 2 April 24, 2022 13:52
Frozen viscosity option not listed in configuration template files OSE SU2 0 April 27, 2016 12:05
The difference between frozen rotor and unsteady frozen rotor in turbo machinery? samane_81 CFX 11 April 7, 2016 13:54
Frozen Rotor Model CFX windsim CFX 13 January 5, 2012 13:25
Frozen Rotor Interface (CFX 5.5) gilberto CFX 4 November 14, 2001 21:07


All times are GMT -4. The time now is 06:34.