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

application     multiRegionPhaseChangeFlow;

startFrom       latestTime;

startTime       0;

stopAt          endTime;

endTime         0.005;

deltaT          1e-7;

writeControl    adjustableRunTime;

writeInterval   0.0001;

purgeWrite      0;

writeFormat     ascii;

writePrecision  8;

writeCompression on;

timeFormat      general;

timePrecision   10;

runTimeModifiable yes;

adjustTimeStep  yes;

maxCo           0.02;
maxAlphaCo      0.02;
maxDeltaT       1e-5;
maxCapillaryNum 1e8;

libs
(
    "libpostProcess.so"
);

functions
{
    energyFluxes
    {
        type            interfaceEnergyFluxes;
        libs ("libpostProcess.so");

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

    surfaces
    {
        type            surfaces;
        libs
        (
            "libsampling.so"
            "libpostProcess.so"
        );
        writeControl    adjustableRunTime;
	    writeInterval   0.0001;
        region fluid;

        surfaceFormat   raw;
        fields          (interfaceEnergyFluxLiquid interfaceEnergyFluxGas);

        interpolationScheme cell;

        surfaces
        (

            freeSurf
            {
                type            interface;
                interpolate     false;
            }

        );
    }

    intPsi
    {
        type            volFieldValue;
        libs            ("libfieldFunctionObjects.so");

        writeControl    timeStep;
        writeInterval   1;
        writeFields     false;
        log             true;
        region          fluid;

        operation       volIntegrate;

        fields
        (
            psi0_
        );

    }

}

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