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

solution
{
    active          yes;

    calcFrequency   10;
    maxTrackTime    5.0;
    maxCo           0.3;

    coupled         true;
    cellValueSourceCorrection off;

    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-03;
            parcelBasisType mass;
            patchName       inletCentral;
            parcelsPerSecond 100;
            duration        1; // NOTE: set to 1 for steady state
            U0              (0 40 0);
            flowRateProfile constant 1;
            sizeDistribution
            {
                type        general;
                generalDistribution
                {
                    distribution
                    (
                        (10e-06      0.0025)
                        (15e-06      0.0528)
                        (20e-06      0.2795)
                        (25e-06      1.0918)
                        (30e-06      2.3988)
                        (35e-06      4.4227)
                        (40e-06      6.3888)
                        (45e-06      8.6721)
                        (50e-06      10.3153)
                        (55e-06      11.6259)
                        (60e-06      12.0030)
                        (65e-06      10.4175)
                        (70e-06      10.8427)
                        (75e-06      8.0016)
                        (80e-06      6.1333)
                        (85e-06      3.8827)
                        (90e-06      3.4688)
                    );
                }
            }
        }
    }

    dispersionModel stochasticDispersionRAS;

    patchInteractionModel standardWallInteraction;

    heatTransferModel RanzMarshall;

    compositionModel singleMixtureFraction;

    phaseChangeModel liquidEvaporation;

    devolatilisationModel none;

    surfaceReactionModel none;

    stochasticCollisionModel none;

    surfaceFilmModel none;

    radiation       off;

    standardWallInteractionCoeffs
    {
        type            rebound;
    }

    RanzMarshallCoeffs
    {
        BirdCorrection  off;
    }

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

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


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

    particleTracks1
    {
        type            particleTracks;
        trackInterval   5;
        maxSamples      1000000;
        resetOnWrite    yes;
    }
}


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