/*--------------------------------*- 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                ("libcustomBC.so");

application         pimpleFoam;

startFrom           latestTime;

startTime           0;

stopAt              endTime;

endTime             2.0;

deltaT              1e-4;

writeControl        adjustableRunTime;  // adjustableRunTime;  // timeStep;

writeInterval       1e-2;

purgeWrite          0;

writeFormat         ascii;

writePrecision      9;

writeCompression    off;

timeFormat          general;

timePrecision       6;

runTimeModifiable   yes;

adjustTimeStep      on;
maxDeltaT           1e-2;
maxCo               5.0;


functions
{

    flowRateInlet
    {
        type            surfaceFieldValue;
        libs            ("libfieldFunctionObjects.so");
        enabled         true;
        writeControl    writeTime;
        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    writeTime;
        writeInterval   1;
        log             true;
        valueOutput     true;
        writeFields     no;
        regionType      patch;
        name            outlet;
        operation       sum;
        fields          (phi);
    }

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

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

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

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

};

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