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

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

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

    integrationSchemes
    {
        U               Euler;
    }

    sourceTerms
    {
        schemes
        {
            U semiImplicit 1;
        }
    }
}

constantProperties
{
    parcelTypeId 1;

    rhoMin          1e-15;
    minParcelMass   1e-15;

    rho0            2600; //2526;
    youngsModulus   1e8;
    poissonsRatio   0.35;

    constantVolume  false;

    alphaMax        0.2; //0.99;
}

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

    injectionModels
    {
       model1
        {
            type            patchInjection;
            massTotal       40;
            SOI             0.002;
            parcelBasisType fixed;//mass;
            patchName       INLET;
            duration        10;
            nParticle       1e6;
            parcelsPerSecond 5000;
            U0              (5 0 0);

            flowRateProfile constant 1;
            sizeDistribution
            {
                type        fixedValue; //normal;
                fixedValueDistribution //normalDistribution
                {
                     value 100e-6;
                    //expectation 100e-6;
                    //variance 25e-6;
                    //minValue 20e-6;
                    //maxValue 180e-6;
                }
            }
        }
    }

    packingModel    none;

    dispersionModel none;

    patchInteractionModel localInteraction;

    localInteractionCoeffs
    {
        patches
        (

            INLET
            {
                type escape;

            }

            OUTLET
            {
                type escape;

            }

            SOFA
            {
                type rebound;
                e    0.97;
                mu   0.09;

            }

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

            WALL
            {
                type rebound;
                e    0.97;
                mu   0.09;

            }

        );
    }

    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
{}


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