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

twoPhaseEulerFoam bubble column crashes due to problems at outlet region

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 30, 2015, 07:05
Default twoPhaseEulerFoam bubble column crashes due to problems at outlet region
  #1
Member
 
Join Date: May 2014
Location: Germany
Posts: 31
Rep Power: 11
hester is on a distinguished road
Hello everyone,

I'm investigating a water air bubble column in a cuboid after Deen.
When using more complex modells for the interface momentum transport coefficients I get problems at the outlet area (see pictures below). With SchillerNaumann for drag coefficient everything worked fine, while with IshiiZuber for drag coefficient the simulation crashes.

This is my case setup:

//========= 1. Mesh =============================//

The cuboid measurements are 0.15 m x 0.15 m x 0.45 m. The inlet at the bottom is modelled as rectangular. The water surface is not included.
I generated my mesh using blockMesh. It is equidistant. CheckMesh is okay.

//========= 2. Boundary conditions ==================//

I am using the following boundary condtitions:

alpha.air
Code:
internalField   uniform 0;
boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform 1;
    }
    outlet
    {
        type            inletOutlet;
        phi             phi.air;
        inletValue      uniform 0;
        value           uniform 0;
    }
    walls
    {
        type            zeroGradient;
    }
}
U.air
Code:
internalField   uniform (0 0 0);
boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform (0 0 0.0784);
    }
    outlet
    {
        type            zeroGradient;
    }
    walls
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
}
U.water

Code:
internalField   uniform (0 0 0);
boundaryField
{
    inlet
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    outlet
    {
        type            slip;
    }
    walls
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
}
p
Code:
internalField   uniform 100000;
boundaryField
{
    inlet
    {
        type            zeroGradient;
    }
    outlet
    {
        type            fixedValue;
        value           $internalField;
    }
    walls
    {
        type            zeroGradient;
    }
}
k.*
Code:
internalField   uniform 1e-4;
boundaryField
{
    inlet
    {
        type             turbulentIntensityKineticEnergyInlet;
        intensity       0.05;
        value            uniform 0;
    }
    outlet
    {
        type            inletOutlet;
        phi             phi.air;
        inletValue      $internalField;
        value           uniform 0;
    }
    walls
    {
        type            zeroGradient;
    }
}
epsilon.air
Code:
internalField   uniform 1e-5;
boundaryField
{
    inlet
    {
        type            turbulentMixingLengthDissipationRateInlet;
        mixingLength    1e-3;
        k               k.air;
        value           uniform 0;
    }
    outlet
    {
        type            inletOutlet;
        phi             phi.air;
        inletValue      $internalField;
        value           uniform 0;
    }
    walls
    {
        type            zeroGradient;
    }
}
epsilon.water
Code:
internalField   uniform 1e-5;
boundaryField
{
    inlet
    {
        type            fixedValue; 
        value           $internalField;
    }
    outlet
    {
        type            inletOutlet;
        phi             phi.water;
        inletValue      $internalField;
        value           uniform 0;
    }
    walls
    {
        type            zeroGradient;
    }
}
//========= 3. Phase Properties =====================//

I'm assuming a constant air bubble diameter of 4 mm. I only consider drag, lift and virtual mass force. Drag is modelled after Ishii and Zuber as describes here:
http://cfd-online.com/Forums/openfoa...eulerfoam.html
Lift and virtual mass coefficents are both constant with a value of 0.5.

//========= 4. Discretization =======================//

Used methods in fvScheme
Code:
ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
}

divSchemes
{
    
    // from bubble column tutorial
    default                     Gauss linear;

    "div\(phi,alpha.*\)"        Gauss vanLeer;
    "div\(phir,alpha.*\)"       Gauss vanLeer

    "div\(alphaPhi.*,U.*\)"     Gauss limitedLinearV 1;
    "div\(phi.*,U.*\)"          Gauss limitedLinearV 1;
    "div\(alphaPhi.*,.*rho.*\)" Gauss linear;

    "div\(alphaPhi.*,(h|e).*\)" Gauss limitedLinear 1;
    "div\(alphaPhi.*,(K.*|p)\)" Gauss limitedLinear 1;

    "div\(alphaPhi.*,(k|epsilon).*\)"  Gauss limitedLinear 1;
    "div\(phim,(k|epsilon)m\)"    Gauss limitedLinear 1;

    "div\(\(\(alpha.*nuEff.*\)*dev2\(T\(grad\(U.*\)\)\)\)\)" Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear uncorrected;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         uncorrected;
}

fluxRequired
{
    default         no;
    p               ;
}
//========= 5. Solution ===========================//

I only use GAMG as suggested by my professor.
fvSolution:
Code:
solvers
{
    alpha.air
    {
        nAlphaCorr      1;
        nAlphaSubCycles 2;
    }

    p
    {
        solver          GAMG;
        smoother        DIC;
        nPreSweeps      0;
        nPostSweeps     2;
        nFinestSweeps   2;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 160;
        agglomerator    faceAreaPair;
        mergeLevels     2;
        tolerance       1e-6;
        relTol          0.0001;
    }

    pFinal
    {
        $p;
        relTol          0;
    }

    
    "e.*"
    {
        solver          GAMG;
        smoother        DILU;
        nPreSweeps      0;
        nPostSweeps     2;
        nFinestSweeps   2;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 160;
        agglomerator    faceAreaPair;
        mergeLevels     2;
        tolerance       1e-6;
        relTol          0.0001;
    }
    
    "(k|epsilon|Theta).*"
    {
        solver          GAMG;
        smoother        DILU;
        nPreSweeps      0;
        nPostSweeps     2;
        nFinestSweeps   2;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 160;
        agglomerator    faceAreaPair;
        mergeLevels     2;
        tolerance       1e-6;
        relTol          0.0001;
    }
}

PIMPLE
{
    nOuterCorrectors 1;
    nCorrectors      2;
    nNonOrthogonalCorrectors 0;
    
    residualControl
    {
        "(U|k|epsilon)"
        {
            relTol          0.0001;
            tolerance       0.0001;
        }
    }

    turbOnFinalIterOnly off;
}

relaxationFactors
{
}
The used Co number is 0.3. The mixtureKEpsilon modell is applied.

//========= 6. Problem ===========================//

After air reaches the outlet area it didn't seem to leave. alpha.air gets big (still <1) in the upper cells and the solution eventually crashes shortly after 7.6 s flow. The flow field for U.water shows there is water inflow. I first set up my case using SchillerNaumann for drag and everything worked fine. But using IshiiZuber instead breaks my simulation. I already tried different things that I found on the forum:
  • setting turbulence setting to laminar: same problem, turbulence modell is not the problem
  • Co = 0.1 instead of 0.3: same problem, is just takes longer to crash
  • nCorrectors = 8 in PISO algorithm: same problem, is just takes much longer to crash
  • including the water surface: high velocities for air in area above water surface, simulation crashes
  • using 1st order discretization: same problem, athough simulation doesn't crash
I hope someone knows what might be the problem or even has encountered the problem already and knows how to deal with it. I've been struggling with this case for a while now. Any help is greatly appreciated.

Regards,
hester
Attached Images
File Type: jpg alpha.air_GAMG.jpg (20.6 KB, 98 views)
File Type: jpg u.air_glyph_GAMG.jpg (37.3 KB, 79 views)
File Type: jpg u.water_glyph_GAMG.jpg (34.4 KB, 58 views)
Attached Files
File Type: gz DeenBubbleColumnIshiiZuber.tar.gz (4.8 KB, 33 views)

Last edited by hester; March 30, 2015 at 08:33.
hester is offline   Reply With Quote

Old   March 30, 2015, 08:47
Default
  #2
Member
 
Join Date: May 2014
Location: Germany
Posts: 31
Rep Power: 11
hester is on a distinguished road
Here are the source files of the used Ishii Zuber drag model.
Attached Files
File Type: c IshiiZuberExtended.C (2.8 KB, 45 views)
File Type: h IshiiZuberExtended.H (2.6 KB, 29 views)
hester is offline   Reply With Quote

Old   March 30, 2015, 16:00
Default
  #3
Member
 
Mattia de\' Michieli Vitturi
Join Date: Mar 2009
Posts: 50
Rep Power: 17
demichie is on a distinguished road
Hi Hester,
I am wondering why you are using a "slip" boundary condition at the outlet for the liquid velocity and not a "zeroGradient". Have you tested the zeroGradient?

Ciao
Mattia
demichie is offline   Reply With Quote

Old   March 31, 2015, 06:47
Default
  #4
Member
 
Join Date: May 2014
Location: Germany
Posts: 31
Rep Power: 11
hester is on a distinguished road
Hello Mattia,

thank you for your answer. I tried zeroGradient for the liquid face at the outlet. I get no simulation problems but the results were wrong. I didn't observe the recirculation pattern in the liquid face. Also was the velocity compared with experimental results too low. So zeroGradient is not what I want here. I use slip because the the outlet boundary is where the water surface would be if I included it in my simulation. I don't want any water to leave the domain.

Regards,
hester
hester is offline   Reply With Quote

Old   May 18, 2016, 10:20
Default
  #5
Senior Member
 
Join Date: Aug 2014
Location: Germany
Posts: 292
Rep Power: 13
BlnPhoenix is on a distinguished road
Quote:
Originally Posted by hester View Post
Hello Mattia,

thank you for your answer. I tried zeroGradient for the liquid face at the outlet. I get no simulation problems but the results were wrong. I didn't observe the recirculation pattern in the liquid face. Also was the velocity compared with experimental results too low. So zeroGradient is not what I want here. I use slip because the the outlet boundary is where the water surface would be if I included it in my simulation. I don't want any water to leave the domain.

Regards,
hester
Hello Hester,

were you able to resolve your problem at the outlet region? I think the slip BC is OK to model water surface but i recognized you did not post your alpha.water file. What did you put there for outlet?

For the other approach, when i try to model water and air as two different parts in my domain via setFields i experience that even with a fine mesh the water/air interface (surface) becomes very fuzzy over time which i can not explain or resolve so far..
BlnPhoenix is offline   Reply With Quote

Reply

Tags
bubble column, twophaseeulerfoam


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
Solving bubble column using twoPhaseEulerFoam vishal3 OpenFOAM Pre-Processing 0 July 11, 2013 06:19
Some problems with twoPhaseEulerFoam su_junwei OpenFOAM Running, Solving & CFD 2 November 2, 2012 01:12
ATTENTION! Reliability problems in CFX 5.7 Joseph CFX 14 April 20, 2010 15:45
VOF Outlet boundary condition in cfd - ace JM Main CFD Forum 0 December 15, 2006 08:07
Bubble Column Glen Main CFD Forum 0 January 24, 2006 00:56


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