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/)
-   -   DPMFoam - Periodic boundary condition (https://www.cfd-online.com/Forums/openfoam-solving/230896-dpmfoam-periodic-boundary-condition.html)

P4tr1ck_St4r October 11, 2020 09:27

DPMFoam - Periodic boundary condition
 
I am new in OpenFoam and I need to track a cloud of particles in a channel with periodic boundary conditions. I have two main problems:

1. The cyclic boundary condition looks not working for particles. They stick on the outlet boundary.

2. The particle's flow slowing down over time. I have read that this can be solved by adding fvOptions, but I don't know how to do that.

blockMeshDict
Code:

/*--------------------------------*- C++ -*----------------------------------*\
 | =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  v2006                                |
|  \\  /    A nd          | Website:  www.openfoam.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

scale  1; 

vertices
(
    (0 0 0)
    (10 0 0)
    (10 1 0)
    (0 1 0)
    (0 0 2)
    (10 0 2)
    (10 1 2)
    (0 1 2)
);

blocks
(
    hex (0 1 2 3 4 5 6 7) (90 50 1) simpleGrading (1 1 1)
);

edges
(
);

boundary
(
    inlet
    { 
        type cyclic;
        neighbourPatch outlet;
        transform translational;
        separationVector (10 0 0);   
        faces
        (
            (4 7 3 0)
        );
    } 


    outlet
    {
        type cyclic;
        neighbourPatch inlet;
        transform translational;
        separationVector (-10 0 0);
        faces
        (
            (5 1 2 6)
        );
    }

    top
    {
        type wall;
        faces
        (
            (7 6 2 3)
        );
    }

    bottom
    {
        type wall;
        faces
        (
            (0 1 5 4)
        );
    }

    walls
    {
        type wall;
        faces
        (
            (4 5 6 7)
            (0 3 2 1)
        );
    }
);

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

kinematicCloudProperties
Code:

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

solution
{
    active          true;
    coupled        true;
    transient      yes;
    cellValueSourceCorrection off;

    interpolationSchemes
    {
        rho.air        cell;
        U.air          cellPoint;
        mu.air          cell;
    }

    integrationSchemes
    {
        U              Euler;
    }

    sourceTerms
    {
        schemes
        {
            U semiImplicit 1;
        }
    }
}

constantProperties
{
    parcelTypeId 1;

    rhoMin          2;
    minParcelMass  1.04e-6;

    rho0            2;
    youngsModulus  1e8;
    poissonsRatio  0.35;

    constantVolume  true;

    alphaMax        0.99;
}

subModels
{
    particleForces
    {
        ErgunWenYuDrag
        {
            alphac alpha.air;
        }
        gravity;
    }

    injectionModels
    {
        model1
        {
            type            manualInjection;
            massTotal      0;
            parcelBasisType fixed;
            nParticle      1;
            SOI            0;
            positionsFile  "kinematicCloudPositions";
            U0              (0.5 0 0);
            sizeDistribution
            {
                type        fixedValue;
                fixedValueDistribution
                {
                    value  0.01;
                }
            }
        }
    }

    dispersionModel none;

    patchInteractionModel standardWallInteraction;

    StandardWallInteractionCoeffs
    {
        type rebound;
        e    0.97;
        mu  0.09;
    }

    heatTransferModel none;

    surfaceFilmModel none;

    collisionModel pairCollision;

    pairCollisionCoeffs
    {
        maxInteractionDistance  0.0025;

        writeReferredParticleCloud no;

        pairModel pairSpringSliderDashpot;

        pairSpringSliderDashpotCoeffs
        {
            useEquivalentSize  no;
            alpha              0.02;
            b                  1.5;
            mu                  0.10;
            cohesionEnergyDensity 0;
            collisionResolutionSteps 12;
        };

        wallModel wallSpringSliderDashpot;

        wallSpringSliderDashpotCoeffs
        {
            useEquivalentSize no;
            collisionResolutionSteps 12;
            youngsModulus  1e8;
            poissonsRatio  0.23;
            alpha          0.01;
            b              1.5;
            mu              0.09;
            cohesionEnergyDensity 0;
        };

        U    U.air;
    }

    stochasticCollisionModel none;

    radiation off;
}


cloudFunctions
{}


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

0/U.air

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  v2006                                |
|  \\  /    A nd          | Website:  www.openfoam.com                      |
|    \\/    M anipulation  |                                                |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version    2.0;
    format      binary;
    class      volVectorField;
    location    "0";
    object      U.air;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField  uniform (1 0 0);

boundaryField
{
    walls
    {
        type            noSlip;
    }

    top
    {
        type        noSlip;
    }

    bottom
    {
        type        noSlip;
    }

    outlet
    {
        type            cyclic;
    }

    inlet
    {
        type            cyclic;
    }
}


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

0/p

Code:

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

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

internalField  uniform 0;

boundaryField
{
    walls
    {
        type            fixedFluxPressure;
        phi            phi.air;
        value          $internalField;
    }

    inlet
    { 
        type            cyclic;
    } 

    outlet
    { 
        type            cyclic;
    }

    top
    { 
        type            fixedFluxPressure;
        phi            phi.air;
        value          $internalField;
    }

    bottom
    { 
        type            fixedFluxPressure;
        phi            phi.air;
        value          $internalField;
    }
}

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

Hope that helps!

oswald October 14, 2020 02:33

1) One guess: I don't know what happens because you specified both, a patchInteractionModel and a collisionModel? Maybe you should switch one of them off.



2) As you have no boundary condition that keeps pressure/velocity constant at some patch, the coupling of the parcels with the flow's momentum in combination with their energy loss due to collisions should slowly decelerate the flow. You can try turning off "coupled" in kinematicCloudProperties and see if there is a change.


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