/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     4.1                                |
|   \\  /    A nd           | Web:         http://www.foam-extend.org         |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

libs                ("libWKBC.so");

application         pimpleFoam;

startFrom           latestTime;

startTime           0;

stopAt              endTime;

endTime             8;  // 8;

deltaT              0.001;

writeControl        timeStep;

writeInterval       100;

purgeWrite          0;

writeFormat         ascii;

writePrecision      9;

writeCompression    off;

timeFormat          general;

timePrecision       6;

runTimeModifiable   yes;

adjustTimeStep      no;

maxCo               0.5;


functions
{

    flowRateInlet
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    timeStep;
        writeInterval   1;
        log             true;
        valueOutput     true;
        writeFields     no;
        regionType      patch;
        name            inlet;              // 対象の patch 名（例：inlet）
        operation       sum;                // 合計流量を出力
        fields          (phi);              // 流束フィールド（非圧縮なら phi）
    }

    flowRateOutlet
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    timeStep;
        writeInterval   1;
        log             true;
        valueOutput     true;
        writeFields     no;
        regionType      patch;
        name            outlet;
        operation       sum;
        fields          (phi);
    }

    pAverageInlet
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    timeStep;
        writeInterval   1;
        log             true;
        valueOutput     true;
        writeFields     no;
        regionType      patch;
        name            inlet;
        operation       areaAverage;
        fields          (p);
    }

    pAverageOutlet
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    timeStep;
        writeInterval   1;
        log             true;
        valueOutput     true;
        writeFields     no;
        regionType      patch;
        name            outlet;
        operation       areaAverage;
        fields          (p);
    }

};

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