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/)
-   -   Particle tracking in and after MRF (https://www.cfd-online.com/Forums/openfoam-solving/155842-particle-tracking-after-mrf.html)

andreas0209@hotmail.com July 3, 2015 06:27

Particle tracking in and after MRF
 
3 Attachment(s)
Hi

I am trying to simulate a particle laden air flow in a turbomachinery setup. The setup is a rectangular tunnel with a rotor and a nacelle in the middle. To simulate the rotation of the rotor I am using a multiple reference frame (MRF) approach (in defined in snappyHexmMesh and fvOptions). The solver is simpleReactingParcleFoam.

snappyHexMesh:
Code:

geometry
{
    Dynamic6.stl {type triSurfaceMesh; name Dynamic;}
    Nacelle.stl {type triSurfaceMesh; name Nacelle;}
    MRFcylinder
    {
        type searchableCylinder;
        point1 (7.9 0 0);
        point2 (9.1 0 0);
    radius 1.27;
    name MRFcylinder;
    }
    cylinder {type searchableCylinder; point1 (9.1 0 0); point2 (11.8 0 0); radius 1.27;}
};

//-----------------------------------------
castellatedMeshControls
{

    // Refinement parameters
    maxLocalCells 10000000;
    maxGlobalCells 20000000;
    minRefinementCells 10;
    maxLoadUnbalance 0.10;
    nCellsBetweenLevels 3;

    // Explicit feature edge refinement
    features
    (
   
//          {file "Dynamic_advanced.eMesh"; level 4;}
        {file "Dynamic6.eMesh"; level 2;}
        {file "Nacelle.eMesh"; level 2;}
    );

    // Surface based refinement
    refinementSurfaces
    {
    Dynamic {level (5 6); patchInfo {type wall;}}
    Nacelle {level (5 6); patchInfo {type wall;}}
    MRFcylinder
    {
        level (5 6); patchInfo {type patch;}
        faceZone MRF;  //name of faceZone
        cellZone MRF;  // name of cellZone
        cellZoneInside inside;  // to include all cells inside enclosed cyl.
    }
    }

fvOptions:
Code:

MRF1
{
    type        MRFSource;
    active        true;
    selectionMode  cellZone;
    cellZone        MRF;
   
    MRFSourceCoeffs
    {
        nonRotatingPatches
    (
      inlet
      outlet
      walls
      Nacelle
    );
        // Fixed patches (by default they 'move' with the MRF zone)
      origin    (10 0 0); //1.2
    axis      (1 0 0);
      omega    constant 260;//=1900rpm (V=d*pi*n; v=omega*r)
    }
}

reactingCloud1Properties

Code:

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

solution
{
    active          true;
    coupled        true;
    transient      no;//no;
    calcFrequency  10;
    maxTrackTime    5;
    maxCo          0.3;


    cellValueSourceCorrection on;

    sourceTerms
    {
        resetOnStartup  false;
        schemes
        {
            rho            semiImplicit 1;
            U              semiImplicit 1;
            Yi              semiImplicit 1;
            h              semiImplicit 1;
            radiation      semiImplicit 1;
        }
    }

    interpolationSchemes
    {
        rho            cell;
        U              cellPoint;
        thermo:mu      cell;
    T              cell;
        Cp              cell;
        kappa          cell;
        p              cell;
    }

    integrationSchemes
    {
        U              Euler;
        T              analytical;
    }
}


constantProperties
{
    rho0            1000;
    T0              350;
    Cp0            4100;
    constantVolume  false;
}


subModels
{
    particleForces
    {
        sphereDrag;
        gravity;
    }

    injectionModels
    {
        model1
        {
            type            patchInjection;
            massFlowRate    0.8e-05;
            parcelBasisType mass;
            patchName      inlet;
            parcelsPerSecond 500;
            duration        1; // NOTE: set to 1 for steady state
            U0              (300 0 0);
            position        (0 0 0);
            direction      (1 0 0); 
            flowRateProfile constant 1;
            sizeDistribution
            {
                type        general; //fixedValue;
                generalDistribution //fixedValueDistribution
                {
                    distribution
                    (                       
                        (10e-07    0.0025)
                        (15e-07    0.0528)
                        (20e-07    0.2795)
                        (25e-07    1.0918)
                        (30e-07    2.3988)
                        (35e-07    4.4227)
                        (40e-07    6.3888)
                        (45e-07    8.6721)
                        (50e-07    10.3153)
                        (55e-07    11.6259)
                        (60e-07    12.0030)
                        (65e-07    10.4175)
                        (70e-07    10.8427)
                        (75e-07    8.0016)
                        (80e-07    6.1333)
                        (85e-07    3.8827)
                        (90e-07    3.4688)
                       
                    );
                }
            }
        }
    }

    dispersionModel stochasticDispersionRAS;

    patchInteractionModel none;//standardWallInteraction;

    heatTransferModel none;//RanzMarshall;

    compositionModel singleMixtureFraction;

    phaseChangeModel none; //liquidEvaporation;

    devolatilisationModel none;

    surfaceReactionModel none;

    stochasticCollisionModel none;

    surfaceFilmModel none;

    radiation      off;

    standardWallInteractionCoeffs
    {
        type            rebound;
    }

    /*RanzMarshallCoeffs
    {
        BirdCorrection  off;
    }*/

    singleMixtureFractionCoeffs
    {
        phases
        (
            gas
            {
            }
            liquid
            {
               
            }
            solid
            {
        ash 1;
            }
        );
        YGasTot0        0;
        YLiquidTot0    0;
        YSolidTot0    1;
    }

    /*liquidEvaporationCoeffs
    {
        enthalpyTransfer enthalpyDifference;
        activeLiquids  ( H2O );
    }*/
}


cloudFunctions
{
    patchPostProcessing1
    {
        type            patchPostProcessing;
        maxStoredParcels 200; //100
        patches        ( inlet ); //( outlet );
    }

    particleTracks1
    {
        type            particleTracks;
        trackInterval  5; //5;
        maxSamples      100000;
        resetOnWrite    yes;
    }
}

The aim of this study is to simulate the particle flow around and though the rotor to see if there is a size dependent change in the flow behaviour of these particles.

My problem is that the flow profile and the streamlines look quite ok, but the particle "stuck" somehow at the dynamic part. Also there is a small discontinuity in the the streamline at the dynamic part.

I checked nearly every single setting option (variation in rotational speed, size of the particles, different inlet velocities, k and epsilon values etc.) without success.

I would be more than grateful if someone of you experienced openFoam experts could take a look into my settings or if someone has a hint how to get rid of this effect.

Thank you!

Andreas

andreas0209@hotmail.com July 6, 2015 08:36

Does nobody has a suggestion or idea??

I would be very much thankful..


All times are GMT -4. The time now is 11:30.