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

multiphaseEulerFoam/tank discharge

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 3, 2017, 16:15
Default multiphaseEulerFoam/tank discharge
  #1
ves
New Member
 
Veskov Eugene
Join Date: Feb 2011
Posts: 27
Rep Power: 11
ves is on a distinguished road
Dear colleagues!
I have a model hemisferical tank with vertical feedline. Feedline consist from vertical pipe, collector with 4 small pipe. Tank have a suction device and rib for prevent liquid rotation.
When tank almost emty, gas entrainedin feedline with confined plunging jet. I am attempt calculate this process with multiphaseEulerFoam, but solver diverge on first iteration. What wrong in configuration file?. Please, help me.
Boundary condition: pressure opening on top tank surface, Volume Flow Rate in outlet, symmetry and wall.

OpenFoam files:
fvSolution

Code:
solvers
{
    "alpha.*"
    {
      nAlphaCorr 1;  
      nAlphaSubCycles 3;
      cAlpha  1;
      icAlpha 0.25;
      MULESCorr yes;
      nLimiterIter 8;
    }

    p_rgh
    {
        solver          GAMG;
        tolerance       1e-7;
        relTol          0.05;
        smoother        GaussSeidel;
    }

    p_rghFinal
    {
        solver          PCG;
        preconditioner
        {
            preconditioner  GAMG;
            tolerance       1e-7;
            relTol          0;
            nVcycles        2;
            smoother        GaussSeidel;
        }
        tolerance       1e-7;
        relTol          0;
        maxIter         20;
    }

    pcorr
    {
        $p_rghFinal;
        tolerance       1e-5;
        relTol          0;
    }

    U
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
        tolerance       1e-8;
        relTol          0.1;
        nSweeps         1;
    }

    UFinal
    {
        $U;
        tolerance       1e-7;
        relTol          0;
    }
}

PIMPLE
{
    nCorrectors     3;
    nNonOrthogonalCorrectors 1;
}

relaxationFactors
{
    "U.*"           1;
}
 
fvSchemes

ddtSchemes
{
    default         Euler;
}

gradSchemes
{
    default         Gauss linear;
}

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

    "div\(alphaPhi.*,U.*\)" Gauss limitedLinearV 1;
    div(Rc)                 Gauss linear;
    "div\(phi.*,U.*\)"      Gauss limitedLinearV 1;
    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; 
}

laplacianSchemes
{
    default         Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         corrected;
}
p_rgh

Code:
dimensions      [1 -1 -2 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    bigrib
    {
        type            fixedFluxPressure;
        value           uniform 0;
    }
    smallrib
    {
        type            fixedFluxPressure;
        value           uniform 0;
    }
    plate
    {
        type            fixedFluxPressure;
        value           uniform 0;
    }
    wall
    {
        type            fixedFluxPressure;
        value           uniform 0;
    }
    wall-solid1 
    {
        type            fixedFluxPressure;
        value           uniform 0;
    }
    opening
    {
        type            totalPressure;
        p0              uniform 0;
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
U

Code:
dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    bigrib
    {
        type            noSlip;
    }
    smallrib
    {
        type            noSlip;
    }
    plate
    {
        type            noSlip;
    }
    wall
    {
        type            noSlip;
    }
    wall-solid1 
    {
        type           noSlip;
    }    
    opening
    {
        type            fluxCorrectedVelocity;
        value           uniform (0 0 0);
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
U.air
Code:
dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    bigrib
    {
        type            noSlip;
    }
    smallrib
    {
        type            noSlip;
    }
    plate
    {
        type            noSlip;
    }
    wall
    {
        type            noSlip;
    }
    wall-solid1 
    {
        type           noSlip;
    }    
    opening
    {
        type            fluxCorrectedVelocity;
        value           uniform (0 0 0);
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
U.water

Code:
dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    bigrib
    {
        type            noSlip;
    }
    smallrib
    {
        type            noSlip;
    }
    plate
    {
        type            noSlip;
    }
    wall
    {
        type            noSlip;
    }
    wall-solid1 
    {
        type           noSlip;
    }    
    opening
    {
        type            fluxCorrectedVelocity;
        value           uniform (0 0 0);
    }
    out1
    {
        type            flowRateInletVelocity;
        volumetricFlowRate -0.025;
        
    }
    out2
    {
        type            flowRateInletVelocity;
        volumetricFlowRate -0.025;
        
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
alphas

Code:
dimensions      [0 0 0 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    bigrib
    {
        type            zeroGradient;
    }
    smallrib
    {
        type            zeroGradient;
    }
    plate
    {
        type            zeroGradient;
    }
    wall
    {
        type            zeroGradient;
    }
    wall-solid1 
    {
        type            zeroGradient;
    }
    opening
    {
        type            zeroGradient;
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
alpha.air

Code:
dimensions      [0 0 0 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    bigrib
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    smallrib
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    plate
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    wall
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    wall-solid1 
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }    
    opening
    {
        type            inletOutlet;
        inletValue      uniform 1;
        value           uniform 1;
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
alpha.water

Code:
dimensions      [0 0 0 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    bigrib
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    smallrib
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    plate
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    wall
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }
    wall-solid1 
    {
        type            alphaContactAngle;
        thetaProperties
        (
            ( water air ) 90 0 0 0
            
        );
        value           uniform 0;
    }    
    opening
    {
        type            inletOutlet;
        inletValue      uniform 0;
        value           uniform 0;
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
k

Code:
dimensions      [0 2 -2 0 0];

internalField   uniform 10;

boundaryField
{
    bigrib
    {
        type            kqRWallFunction;
        value           uniform 10;
    }
    smallrib
    {
        type            kqRWallFunction;
        value           uniform 10;
    }
    plate
    {
        type            kqRWallFunction;
        value           uniform 10;
    }
    wall
    {
        type            kqRWallFunction;
        value           uniform 10;
    }
    wall-solid1 
    {
        type            kqRWallFunction;
        value           uniform 10;
    }
    opening
    {
        type            zeroGradient;
    }
    out1
    {
        type            zeroGradient;
    }
    out2
    {
        type            zeroGradient;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}
nut

Code:
dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    bigrib
    {
        type            nutUSpaldingWallFunction;
        value           uniform 0;
    }
    smallrib
    {
        type            nutUSpaldingWallFunction;
        value           uniform 0;
    }
    plate
    {
        type            nutUSpaldingWallFunction;
        value           uniform 0;
    }
    wall
    {
        type            nutUSpaldingWallFunction;
        value           uniform 0;
    }
    wall-solid1 
    {
        type            nutUSpaldingWallFunction;
        value           uniform 0;
    }
    opening
    {
        type            calculated;
        value           uniform 0;
    }
    out1
    {
        type            calculated;
        value           uniform 0;
    }
    out2
    {
        type            calculated;
        value           uniform 0;
    }
    symmetry:xyplane
    {
        type            symmetry;
    }
    symmetry:yzplane
    {
        type            symmetry;
    }
}

Last edited by wyldckat; December 31, 2017 at 15:56. Reason: Added [CODE][/CODE] markers
ves is offline   Reply With Quote

Old   August 8, 2017, 11:32
Default
  #2
Senior Member
 
Join Date: Aug 2014
Location: Germany
Posts: 292
Rep Power: 10
BlnPhoenix is on a distinguished road
You have two outlets. I don't see an inlet. Is this correct? If yes, how is this supposed to work physically?
BlnPhoenix is offline   Reply With Quote

Old   August 8, 2017, 17:17
Default
  #3
ves
New Member
 
Veskov Eugene
Join Date: Feb 2011
Posts: 27
Rep Power: 11
ves is on a distinguished road
Pressure opening boundary condition on face "opening" . OpenFoam have not "opening" boundary condition, I am using "Total pressure", air.vof=1 on "opening".
Volume fraction in setFieldDict dictionary ( tank and feedline filled water exept box adjacent to "opening" boundary):

defaultFieldValues
(
volScalarFieldValue alpha.water 1
);

regions
(
boxToCell
{
box (1.5 0.64 1.5) (1.5 0.9 1.5);
fieldValues
(
volScalarFieldValue alpha.air 1
);
}
);

In ANSYS CFX 12.1 Pressure opening on "opening boundary" and MassFlowRate on "out1" and "out2" working, but VOF give bad results (DNS technically impossible). I am need multiscale solver like multiphaseEulerFoam
ves is offline   Reply With Quote

Old   August 8, 2017, 17:18
Default
  #4
ves
New Member
 
Veskov Eugene
Join Date: Feb 2011
Posts: 27
Rep Power: 11
ves is on a distinguished road
If t=0 liquid resting
ves is offline   Reply With Quote

Old   August 9, 2017, 10:24
Default
  #5
Senior Member
 
Join Date: Aug 2014
Location: Germany
Posts: 292
Rep Power: 10
BlnPhoenix is on a distinguished road
I'm still suspecting that no air can enter your domain through "opening", as water flows out of the domain. You use type fluxCorrectedVelocity;
value uniform (0 0 0); which i suspect acts as a wall. But i'm not 100% sure as i have never used this BC.

Can you describe when exactly the error happens after some time steps or right with the first one?
BlnPhoenix is offline   Reply With Quote

Old   August 9, 2017, 16:23
Default
  #6
ves
New Member
 
Veskov Eugene
Join Date: Feb 2011
Posts: 27
Rep Power: 11
ves is on a distinguished road
PCG solver failed on first iteration. I am not sure in fvScemes and mesh quality. Mesh check in OpenFoam successfull, but mesh have some element with low ortogonal quality
ves is offline   Reply With Quote

Old   August 10, 2017, 04:17
Default
  #7
Senior Member
 
Join Date: Aug 2014
Location: Germany
Posts: 292
Rep Power: 10
BlnPhoenix is on a distinguished road
Can you try for U.air / U.water / U :


Code:
    opening
    {
        type               pressureInletOutletVelocity;
        phi                 phi.air;
        value              $internalField;
    }
And for outlets p:

Code:
    {
        type            fixedFluxPressure;
        value           $internalField;
    }
With non-orthogonal cells it should still run at least one time step. Something is wrong with your BC's.

Last edited by wyldckat; December 31, 2017 at 15:57. Reason: Added [CODE][/CODE] markers
BlnPhoenix is offline   Reply With Quote

Old   August 11, 2017, 15:40
Default
  #8
ves
New Member
 
Veskov Eugene
Join Date: Feb 2011
Posts: 27
Rep Power: 11
ves is on a distinguished road
Changes in boundary condition not working

Setting environment for OpenFOAM 4.x mingw-w64 Double Precision (of4-64), using MSMPI71 - please wait...
Environment is now ready.

Code:
admin@admin-PC MINGW64 OpenFOAM-4.x /d/a14
$ multiphaseEulerFoam
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  4.x                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
/*   Windows 32 and 64 bit porting by blueCAPE: http://www.bluecape.com.pt   *\
|  Based on Windows porting (2.0.x v4) by Symscape: http://www.symscape.com   |
\*---------------------------------------------------------------------------*/
Build  : 4.x-ed69f631ce88
Exec   : C:/PROGRA~1/BLUECF~1/OpenFOAM-4.x/platforms/mingw_w64GccDPInt32Opt/bin/multiphaseEulerFoam.exe
Date   : Aug 11 2017
Time   : 21:38:00
Host   : "ADMIN-PC"
PID    : 7728
Case   : D:/a14
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create mesh for time = 0


PIMPLE: Operating solver in PISO mode

Reading field p_rgh

Calculating face flux field phi.water
Selecting diameterModel for phase water: constant
Calculating face flux field phi.air
Selecting diameterModel for phase air: constant
Selecting dragModel for phase air: blended
Selecting dragModel for phase air: SchillerNaumann
Selecting dragModel for phase water: SchillerNaumann
Selecting turbulence model type LES
Selecting LES turbulence model kEqn
Selecting LES delta type smooth
Selecting LES delta type cubeRootVol
kEqnCoeffs
{
    Ce              1.048;
    Ck              0.094;
}


Reading g

Reading hRef
Calculating field g.h

No MRF models present

GAMGPCG:  Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0
GAMGPCG:  Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 0, global = 0, cumulative = 0
Courant Number mean: 2.8588e-006 max: 0.0141556
We're sorry, but the application crashed and safe stack tracing isn't available in this current implementation of blueCFD-Core patches for OpenFOAM.

admin@admin-PC MINGW64 OpenFOAM-4.x /d/a14
$

Last edited by wyldckat; December 31, 2017 at 15:57. Reason: Added [CODE][/CODE] markers
ves is offline   Reply With Quote

Old   December 31, 2017, 15:59
Default
  #9
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,958
Blog Entries: 45
Rep Power: 122
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, although I'm late to this discussion.

@ves: If you have not solved this problem yet, please upgrade to blueCFD-Core 2017-1, which already provides stack tracing. Hopefully the stack trace will help diagnose what was wrong.

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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
High pressure nitrogen discharge simulation in Fluent jzapatau FLUENT 0 October 2, 2016 18:54
Need ideas-fuel discharge system Jan FLUENT 1 October 11, 2006 00:05
Need ideas-fuel discharge system Jan CFX 1 October 9, 2006 09:16
need ideas-fuel discharge system Jan Siemens 0 October 9, 2006 05:31
Need ideas-fuel discharge system Jan Main CFD Forum 0 October 9, 2006 05:27


All times are GMT -4. The time now is 00:38.