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

application     pimpleFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         1.5;

deltaT          0.001;

writeControl    adjustableRunTime;

writeInterval   0.1;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;

adjustTimeStep  yes;

maxCo           5;

functions
{
    probes
    {
        // Where to load it from
        libs            ("libsampling.so");

        type            probes;

        // Name of the directory for probe data
        name            probes;

        // Write at same frequency as fields
        writeControl    writeTime;
        writeInterval   1;

        // Fields to be probed
        fields
        (
            p U
        );

        probeLocations
        (
            ( 1e-06 0 0.01 )        // at inlet
            (0.21 -0.20999 0.01)  // at outlet1
            (0.21 0.20999 0.01)   // at outlet2
            (0.21 0 0.01)         // at central block
        );
    }

    sTransport
    {
        type            scalarTransport;
        libs            ("libsolverFunctionObjects.so");

        enabled         true;
        writeControl    outputTime;
        writeInterval   1;

        field           s;

        write           true;

        fvOptions
        {
            unitySource
            {
                type            scalarSemiImplicitSource;
                enabled         true;

                scalarSemiImplicitSourceCoeffs
                {
                    selectionMode   all;
                    volumeMode      specific;
                    injectionRateSuSp
                    {
                        s           (1 0);
                    }
                }
            }
        }

        resetOnStartUp  false;
    }
}

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