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

application     simpleFoam;

startFrom       latestTime;

startTime       0;

stopAt          endTime;

endTime         3000;

deltaT          1;

writeControl    timeStep;

writeInterval   200;

purgeWrite      5;

writeFormat     ascii;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;


functions
{
     entrata_massFlow
     {
	    type	surfaceFieldValue;
	    functionObjectLibs	("libs.so");
	    enabled			true;
	    log			false;
	    writeControl      timeStep;
        writeInterval     1;
        writeFields     false;
	
	    regionType	patch;
	    name		entrata;
	    operation	sum;
	    fields (phi);
     }
     uscita_massFlow
     {
	    type	surfaceFieldValue;
	    functionObjectLibs	("libs.so");
	    enabled			true;
	    log			false;
        writeControl      timeStep;
        writeInterval     1;
        writeFields     false;
	
	    regionType	patch;
	    name		uscita;
	    operation	sum;
	    fields (phi);
     }

    pressureDrop
    {
        type            multiFieldValue;
        libs             ("libfieldFunctionObjects.so");
        operation       subtract;

        functions
        {
        region1
        {
            type            surfaceFieldValue;
            libs            ("libfieldFunctionObjects.so");
            
            regionType      patch;
            name            entrata;
            operation       areaAverage;
            fields          (p);

            writeControl    timeStep;
            writeFields     false;
            log             false;
        }

        region2
        {
            type            surfaceFieldValue;
            libs            ("libfieldFunctionObjects.so");

            regionType      patch;
            name            uscita;
            operation       areaAverage;
            fields          (p);

            writeControl    timeStep;
            writeFields     false;
            log             false;
        }
        }
    }

    entrata_average
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");

        log             false;
        writeControl      timeStep;
        writeInterval     1;
        writeFields     false;

        surfaceFormat   none;
        regionType      patch;
        name            entrata;

        operation       areaAverage;

        fields
        (
            U
        );
    }

    uscita_average
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");

        log             false;
        writeControl      timeStep;
        writeInterval     1;
        writeFields     false;

        surfaceFormat   none;
        regionType      patch;
        name            uscita;

        operation       areaAverage;

        fields
        (
            U
        );
    }


}


libs ("libmyIncompressibleTurbulenceModels.so");

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