CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Adding centrifugal force (https://www.cfd-online.com/Forums/openfoam-solving/76252-adding-centrifugal-force.html)

Gearb0x May 19, 2010 07:24

Adding centrifugal force
 
Dear Foamers,

I'm running a simulation of a duct using simpleFoam.

I would like to add centrifugal force acting on the duct due to its rotation in the model.

Is there an easy way to do this in openfoam with my solver? Where could I find information? (checked on the forum but didn't find anything)

Thanks for your help

Gearb0x May 20, 2010 13:06

Ok after some research, it seems there are two ways :

-MRFSimpleFoam
-SimpleSRFFoam

SimpleSRFFoam could be suitable but apparently you cannot set the coordinate of the rotation axis ...

Does anyone suceeded in makin these solvers working with something else than a propeller, compressor, ... ?

In fact I just want my whole geometry to rotate with a certain angular speed...

Gearb0x May 20, 2010 16:32

Here we go for a detailed explanation of my case, what I have, what I want :)

:::::: Geometry : (2D for now but final will be 3D) ::::::
http://yfrog.com/09geometryp

Very Simple : inlet, outlet, fixedWalls (2D)
I've defined my 6 faces as "rotor" since I want all my geometry to rotate

:::::: Solver, boundary conditions, ... ::::::::
solver : MRFSimpleFoam
turbulence model : LaunderSharmaKE
RANS

Boundary conditions :
k
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.6                                  |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      volScalarField;
    location    "0";
    object      k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField  uniform 0.2646;

boundaryField
{
    inlet
    {
        type            fixedValue;
        value          uniform 0.2646;
    }
    outlet
    {
        type            zeroGradient;
    }
    fixedWalls
    {
        type            fixedValue;
        value                uniform 1e-06;
    }
    frontAndBackPlanes
    {
        type            empty;
    }
}


// ************************************************************************* //

epsilon
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.6                                  |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      volScalarField;
    location    "0";
    object      epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -3 0 0 0 0];

internalField  uniform 4.26;

boundaryField
{
    inlet
    {
        type            fixedValue;
        value          uniform 4.26;
    }
    outlet
    {
        type            zeroGradient;
    }
    fixedWalls
    {
        type            fixedValue;
        value                uniform 1e-06;
    }
    frontAndBackPlanes
    {
        type            empty;
    }
}


// ************************************************************************* //

nut
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.6                                  |
|  \\  /    A nd          | Web:      www.OpenFOAM.org                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      volScalarField;
    location    "0";
    object      nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField  uniform 0;

boundaryField
{
    inlet
    {
        type            calculated;
        value          uniform 0;
    }
    outlet
    {
        type            calculated;
        value          uniform 0;
    }
    fixedWalls
    {
        type            nutWallFunction;
        Cmu            0.09;
        kappa          0.41;
        E              9.8;
        value          uniform 0;
    }
    frontAndBackPlanes
    {
        type            empty;
    }
}


// ************************************************************************* //

p
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.6                                  |
|  \\  /    A nd          | Web:      http://www.OpenFOAM.org              |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField  uniform 0;

boundaryField
{
    fixedWalls
    {
        type            zeroGradient;
    }
    inlet   
    { 
        type                zeroGradient;
    }
    outlet   
    {
        type          fixedValue;
        value          uniform 0;
    }
    frontAndBackPlanes
    {
        type            empty;
    }
}

// ************************************************************************* //

U
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.6                                  |
|  \\  /    A nd          | Web:      http://www.OpenFOAM.org              |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      volVectorField;
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField  uniform (0 0 0);

boundaryField
{
    fixedWalls
    {
        type            fixedValue;
        value          uniform (0 0 0);
    }
    outlet
    {
        type            zeroGradient;
    }
    inlet
    {
        type            fixedValue;
        value                nonuniform List<vector>
50
(

        (0  0.2906        0)
        (0  0.9366        0)
        (0  1.7184        0)
        (0  2.5785        0)
        (0  3.3476        0)
        (0  3.9615        0)
        (0  4.4557        0)
        (0  4.8674        0)
        (0  5.2249        0)
        (0  5.5473        0)
        (0  5.8476        0)
        (0  6.1343        0)
        (0  6.4138        0)
        (0  6.6906        0)
        (0  6.9686        0)
        (0  7.2508        0)
        (0  7.5400        0)
        (0  7.8379        0)
        (0  8.1440        0)
        (0  8.4518        0)
        (0  8.7389        0)
        (0  8.9583        0)
        (0  9.0807        0)
        (0  9.1344        0)
        (0  9.1541        0)
        (0  9.1541        0)
        (0  9.1344        0)
        (0  9.0807        0)
        (0  8.9583        0)
        (0  8.7389        0)
        (0  8.4518        0)
        (0  8.1440        0)
        (0  7.8379        0)
        (0  7.5400        0)
        (0  7.2508        0)
        (0  6.9686        0)
        (0  6.6906        0)
        (0  6.4138        0)
        (0  6.1343        0)
        (0  5.8476        0)
        (0  5.5473        0)
        (0  5.2249        0)
        (0  4.8674        0)
        (0  4.4557        0)
        (0  3.9615        0)
        (0  3.3476        0)
        (0  2.5785        0)
        (0  1.7184        0)
        (0  0.9366        0)
        (0  0.2906        0)

);
    }
    frontAndBackPlanes
    {
        type            empty;
    }

}

// ************************************************************************* //

As you can see, I start with a profile. In fact these BC are in the same as in my stationnary case since I want everything to be the same EXCEPT that it's rotating with a specified velocity.

Now about MRF settings :
MRFZones
Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  1.6                                  |
|  \\  /    A nd          | Web:      http://www.OpenFOAM.org              |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      MRFZones;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

1
(
    rotor
    {
        // Fixed patches (by default they 'move' with the MRF zone)
        nonRotatingPatches ();
        origin    origin [0 1 0 0 0 0 0]  (0 -0.3 0.0375);
        axis      axis  [0 0 0 0 0 0 0]  (0 0 1);
        omega    omega  [0 0 -1 0 0 0 0] 10;
    }
)

// ************************************************************************* //

origin is like this because : I want axis of rotation to @center on Z and X and below my duct (y position)
Axis of rotation is Z
I set low speed to be "easy" on beginning.

I've done nothing else. Mesh was generated with gambit with, like I said, fluid zone set as "rotor" and exported via fluentMeshToFoam -writeSets -writeZones.

Now when I make MRFSimpleFoam, it's working but solutions are very weird. See velocity field and pressure field :
pressure : http://yfrog.com/14pfieldp

velocity : http://yfrog.com/6luyfieldp

vector field : http://yfrog.com/j1vectorrp

What do you think? To me solution is weird ... but vector field seems to take rotation into account... But inlet BC seems not since vecor field near the inlet is shifted to the left since the beginning of the duct...

Could you please help me? Where am I wrong?

Thank you for the help
Convergence for Ux,Uy,p is OK (10^-6) but k and epsilon say @10^-3


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