/*--------------------------------*- 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;
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

libs            ("liboverset.so" "libfvMotionSolvers.so");

DebugSwitches
{
    overset                 0;
    dynamicOversetFvMesh    0;
    cellVolumeWeight        0;
}

application     overInterDyMFoam ;

startFrom       latestTime;

startTime       0.0;

stopAt          endTime;

endTime         2;

deltaT          0.001;

writeControl    adjustableRunTime;

writeInterval   0.01;

purgeWrite      0;

writeFormat     ascii;

writePrecision  12;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable yes;

adjustTimeStep  yes;

maxCo           1.5;
maxAlphaCo      2.0;
maxDeltaT       1;

functions
{
    probes
    {
        type            probes;
        libs            ("libsampling.so");

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

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

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

        // Optional: interpolation scheme to use (default is cell)
        interpolationScheme cell;

        probeLocations
        (
             (0.0009999 0.0015 0.003)
        );

    }

    alphaVol
    {
        libs            ("libutilityFunctionObjects.so");
        type            coded;
        name            alphaVolume;
        writeControl    timeStep;
        writeInterval   10;

        codeWrite
        #{

            const volScalarField& alpha =
                mesh().lookupObject<volScalarField>("alpha.water");

            Info<< "Alpha volume = " << alpha.weightedAverage(mesh().Vsc())
                << endl;

        #};
    }
}

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