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

ERCOFTAC Centrifugal Pump with kOmegaSST Model

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

Reply
 
LinkBack Thread Tools Display Modes
Old   November 7, 2012, 09:48
Default ERCOFTAC Centrifugal Pump with kOmegaSST Model
  #1
New Member
 
Marcel Günter
Join Date: Mar 2012
Location: Stuttgart, Germany
Posts: 20
Rep Power: 5
marcelgt87 is on a distinguished road
Hi everyone,

I recently got the ERCOFTAC Centrifugal Pump Validation Test Case to run in OF 2.1.0. Originally this Case uses MRFSimpleFoam and the kEpsilon Turbulence Model. More Info on the Case here.

Now I want to run the same Case using the kOmegaSST Model. Unfortunately I did not yet succeed. The Computation always crashes pretty quickly after about 4 or 5 Iterations.

With the Help of http://turbmodels.larc.nasa.gov/sst.html I assembled the following Boundary Conditions:
(though I'm not really sure if they're correct)

INLET:
k: fixedValue 0.48735 ... k = \frac{3}{2} U_0^2 I^2 , with U_0 = 11.4 \frac{m}{s} and I = 0.05)
nut: calculated 0
omega: fixedValue 4873.5 ... \omega = \frac {k} {\nu} \cdot \left( \frac{\mu_T}{\mu} \right)^{-1} with \nu = 10^{-5} \frac{m^2}{s} and \frac{\mu_T}{\mu}  = 10
p: zeroGradient
U: surfaceNormalFixedValue -11.4 m/s

OUTLET:
k: zeroGradient
nut: calculated 0
omega: zeroGradient
p: fixedValue 0
U: zeroGradient

ROTOR and STATOR:
k: kqRWallFunction 0 ... k = 0 at Wall (right?)
nut: nutkWallFunction 0
omega: omegaWallFunction 12500 ... \omega = 10 \cdot \frac{6 \nu}{0.075 \cdot \Delta d^2} with \nu = 10^-{5} \frac{m^2}{s}.
(I'm not really sure what \Delta d is supposed to be. But since I've seen pretty small values being used for it, I assumed it to be the width of the celllayer next to the wall, which would be around 8 \cdot 10^{-4} m in my case. Please correct me if I'm wrong!!!)
p: zeroGradient
U: fixedValue 0

INTERNAL FIELD:
k: 3e-7
nut: 0
omega: 100
p: 0
U: 0

FVSCHEMES:

Code:
ddtSchemes
{
    default         steadyState;
}

gradSchemes
{
    default         Gauss linear;
    grad(p)         Gauss linear;
    grad(U)         Gauss linear;
}

divSchemes
{
    default         none;
    div(phi,U)      Gauss linearUpwind Gauss;
    div(phi,k)      Gauss upwind;
    div(phi,omega)  Gauss upwind;
    div((nuEff*dev(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
    interpolate(U)  linear;
}

snGradSchemes
{
    default         corrected;
}

fluxRequired
{
    default         no;
    p               ;
}
FVSOLUTION:

Code:
solvers
{
    p
    {
        solver           GAMG;
        tolerance        1e-7;
        relTol           0.1;
        smoother         GaussSeidel;
        nPreSweeps       0;
        nPostSweeps      2;
        cacheAgglomeration on;
        agglomerator     faceAreaPair;
        nCellsInCoarsestLevel 10;
        mergeLevels      1;
    }

    "(U|k|omega)"
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
	nSweeps         1;
        tolerance       1e-08;
        relTol          0.1;
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
}
}

relaxationFactors
{
    fields
    {
        p               0.3;
    }
    equations
    {
        U               0.7;
        k               0.7;
        "omega.*"     	0.7;
    }
}

cache
{
    grad(U);
}
Like I said, I'm not really sure about the BCs for omega. The other BCs should be fine since they are the same as in the kEpsilon Case.

I already tried playing around with the Relaxation Factors, BCs, etc. No Success yet, any ideas?

Any Help would be appreciated!
marcelgt87 is offline   Reply With Quote

Old   November 9, 2012, 10:09
Red face
  #2
New Member
 
Marcel Günter
Join Date: Mar 2012
Location: Stuttgart, Germany
Posts: 20
Rep Power: 5
marcelgt87 is on a distinguished road
Well, I guess that was a lesson I won't forget so soon...

if you look closely at my fvSolutions you see that I have an extra closed curly bracket after the SIMPLE-dictionary. This caused OpenFOAM to ignore the Relaxation Factors completely! OF can be a real bitch sometimes!

I hope this thread can help someone and prevent him from going crazy about why his simulations won't work. ^^

Regards,
Marcel
marcelgt87 is offline   Reply With Quote

Old   November 26, 2012, 11:42
Default
  #3
Member
 
Dogan
Join Date: Nov 2012
Location: Bochum/Germany
Posts: 42
Rep Power: 4
dogan is on a distinguished road
Hello Marcel,
in your previous post, you wrote that you are using OpenFOAM 2.1.0., and you wanted to run ERCOFTAC centrifugal pump test case. I would like to ask you whether you managed to run it with this version of O.F.. Since i know (if i am not wrong), the ERCOFTAC centrifugal pump test case requires GGI algorithm, and only O.F. extended version has this algorithm. I am new in using O.F., and i am also trying to run ERCOFTAC test case, but until now, i am unable to do it, because i don't have the extended version of O.F. so if you managed to run it in any case, can you please let me know how you did it?
thank you very much
Dogan
dogan is offline   Reply With Quote

Old   November 26, 2012, 12:57
Wink
  #4
New Member
 
Marcel Günter
Join Date: Mar 2012
Location: Stuttgart, Germany
Posts: 20
Rep Power: 5
marcelgt87 is on a distinguished road
openfoam 2.1.x has the AMI interface implemented which does pretty much the same as the GGI interface. so no need for a dev- or ext-version. look at the mixervesselAMI2D pimpleDyMFoam-tutorial or here for details.

here are my settings for the steady-state case:

PolyMesh / Boundary File

Code:
7
(
    INLET
    {
        type            patch;
        nFaces          434;
        startFace       184170;
    }
    BLADE_ROT
    {
        type            wall;
        nFaces          1743;
        startFace       184604;
    }
    HUB_SHROUD
    {
        type            empty;
        nFaces          187772;
        startFace       186347;
    }
    AMI_INT
    {
        type            cyclicAMI;
        nFaces          707;
        startFace       374119;
        matchTolerance  0.0001;
        neighbourPatch  AMI_EXT;
        transform       noOrdering;
    }
    AMI_EXT
    {
        type            cyclicAMI;
        nFaces          756;
        startFace       374826;
        matchTolerance  0.0001;
        neighbourPatch  AMI_INT;
        transform       noOrdering;
    }
    OUTLET
    {
        type            patch;
        nFaces          804;
        startFace       375582;
    }
    BLADE_STAT
    {
        type            wall;
        nFaces          2760;
        startFace       376386;
    }
)
Boundary Conditions:

epsilon:
Code:
internalField   uniform 0.1;

boundaryField
{
    INLET
    {
        type            fixedValue;
        value           uniform 138.342;
    }
    BLADE_ROT
    {
        type            epsilonWallFunction;
	value           uniform 0;
    }
    HUB_SHROUD
    {
        type            empty;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    BLADE_STAT
    {
        type            epsilonWallFunction;
	value           uniform 0;
    }
    AMI_INT
    {
	type		cyclicAMI;
	value		$internalField;
    }
    AMI_EXT
    {
	type		cyclicAMI;
	value		$internalField;
    }
}
k
Code:
internalField   uniform 0.1;

boundaryField
{
    INLET
    {
        type            fixedValue;
        value           uniform 0.48735;
    }
    BLADE_ROT
    {
        type            kqRWallFunction;
        value           uniform 0;
    }
    HUB_SHROUD
    {
        type            empty;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    BLADE_STAT
    {
        type            kqRWallFunction;
        value           uniform 0;
    }
    AMI_INT
    {
	type		cyclicAMI;
	value		$internalField;
    }
    AMI_EXT
    {
	type		cyclicAMI;
	value		$internalField;
    }
}
nut
Code:
internalField   uniform 0;

boundaryField
{
    INLET
    {
        type            calculated;
        value           uniform 0;
    }
    BLADE_ROT
    {
        type            nutkWallFunction;
        value           uniform 0;
    }
    HUB_SHROUD
    {
        type            empty;
    }
    OUTLET
    {
        type            calculated;
        value           uniform 0;
    }
    BLADE_STAT
    {
        type            nutkWallFunction;
        value           uniform 0;
    }
    AMI_INT
    {
	type		cyclicAMI;
	value		$internalField;
    }
    AMI_EXT
    {
	type		cyclicAMI;
	value		$internalField;
    }
}
p
Code:
internalField   uniform 0;

boundaryField
{
    INLET
    {
        type            zeroGradient;
    }
    OUTLET
    {
        type            fixedValue;
	value		uniform 0;
    }
    BLADE_ROT
    {
        type            zeroGradient;
    }
    BLADE_STAT
    {
        type            zeroGradient;
    }
    HUB_SHROUD
    {
        type            empty;
    }
    AMI_INT
    {
	type		cyclicAMI;
	value		$internalField;
    }
    AMI_EXT
    {
	type		cyclicAMI;
	value		$internalField;
    }
}
U
Code:
internalField   uniform (0 0 0);

boundaryField
{
    INLET
    {
        type            surfaceNormalFixedValue;
	refValue	uniform -11.4;
    }
    OUTLET
    {
        type            zeroGradient;
    }
    BLADE_ROT
    {
        type            fixedValue;
        value           uniform (0 0 0);    
    }
    BLADE_STAT
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    HUB_SHROUD
    {
	type		empty;
    }
    AMI_INT
    {
	type		cyclicAMI;
	value		$internalField;
    }
    AMI_EXT
    {
	type		cyclicAMI;
	value		$internalField;
    }
}
FvSchemes:
Code:
ddtSchemes
{
    default         steadyState;
}

gradSchemes
{
    default         Gauss linear;
    grad(p)         Gauss linear;
    grad(U)         Gauss linear;
}

divSchemes
{
    default         none;
    div(phi,U)      Gauss linearUpwind Gauss;
    div(phi,k)      Gauss upwind;
    div(phi,epsilon) Gauss upwind;
    div(phi,R)      Gauss upwind;
    div(R)          Gauss linear;
    div(phi,nuTilda) Gauss linear;
    div((nuEff*dev(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default         none;
    laplacian(nuEff,U) Gauss linear corrected;
    laplacian((1|A(U)),p) Gauss linear corrected;
    laplacian(DkEff,k) Gauss linear corrected;
    laplacian(DepsilonEff,epsilon) Gauss linear corrected;
    laplacian(DREff,R) Gauss linear corrected;
    laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}

interpolationSchemes
{
    default         linear;
    interpolate(U)  linear;
}

snGradSchemes
{
    default         corrected;
}

fluxRequired
{
    default         no;
    p               ;
}
FvSolution:
Code:
solvers
{
    p
    {
        solver          GAMG;
        smoother        GaussSeidel;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 20;
        agglomerator    faceAreaPair;
        mergeLevels     1;

        tolerance       1e-08;
        relTol          0.05;
    }

    "(U|k|epsilon)"
    {
        solver          smoothSolver;
        smoother        GaussSeidel;
	nSweeps         2;
        tolerance       1e-07;
        relTol          0.1;
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
}

relaxationFactors
{
    fields
    {
        p               0.3;
    }
    equations
    {
        U               0.7;
        k               0.7;
        "epsilon.*"     0.7;
    }
}

cache
{
    grad(U);
}
works like a charm. have fun with it

- marcel
marcelgt87 is offline   Reply With Quote

Old   March 13, 2013, 11:49
Default Centrifugal pump with MRFSimpleFoam
  #5
RDD
New Member
 
Join Date: Mar 2013
Posts: 2
Rep Power: 0
RDD is on a distinguished road
Hello everybody,

I´m new using OpenFOAM and I´m really looking forward to study a case of a centrifugal pump solved with MRFSimpleFoam.

Does anybody have a case already done where I can learn how to run the simulation?

Thank you very much.
Remo
RDD is offline   Reply With Quote

Reply

Thread Tools
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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Use of k-epsilon and k-omega Models Jade M Main CFD Forum 12 June 2, 2015 13:16
flatplate Turbulent BL flow, OF, kOmegaSST model nikesh OpenFOAM Post-Processing 0 October 16, 2012 04:43
centrifugal pump, advice required amir00251 Main CFD Forum 1 August 20, 2012 12:34
Blood Damage Modelling via Particle Tracking in a Centrifugal Heart Pump scatman CFX 5 May 5, 2011 07:23
stator-rotor interaction in the centrifugal pump G.H.Lee Main CFD Forum 4 May 25, 1999 07:33


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