/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  9
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application     artFoam;

startFrom       latestTime;
//startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         30000;

deltaT          1;

writeControl    timeStep;

writeInterval   1000;

purgeWrite      0;

writeFormat     ascii;

writePrecision  10;

writeCompression off;

timeFormat      general;

timePrecision   6;

runTimeModifiable true;

functions
{
    #includeFunc residuals(S);

    min(S)artOverallZone	// folder name in post-processing specifying the minimum "S" in overall-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	regionType      all;
	//regionType      cellZone;
	//name            artOverallZone;
	operation       min;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
	writeLocation       true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    max(S)artOverallZone	// folder name in post-processing specifying the maximum "S" in overall-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	regionType      all;
	//regionType      cellZone;
	//name            artOverallZone;
	operation       max;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
	writeLocation       true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    volAverage(S)artOverallZone	// folder name in post-processing specifying the volume average of "S" in overall-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	regionType      all;
	//regionType      cellZone;
	//name            artOverallZone;
    	operation       volAverage;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    max(S)artOuterZone	// folder name in post-processing specifying the maximum "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artOuterZone;
	operation       max;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
	writeLocation       true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    volAverage(S)artOuterZone	// folder name in post-processing specifying the volume average of "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artOuterZone;
    	operation       volAverage;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    max(S)artInnerBottomZone	// folder name in post-processing specifying the maximum "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artInnerBottomZone;
	operation       max;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
	writeLocation       true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    volAverage(S)artInnerBottomZone	// folder name in post-processing specifying the volume average of "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artInnerBottomZone;
    	operation       volAverage;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }


    max(S)artInnerMiddleZone	// folder name in post-processing specifying the maximum "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artInnerMiddleZone;
	operation       max;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
	writeLocation       true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    volAverage(S)artInnerMiddleZone	// folder name in post-processing specifying the volume average of "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artInnerMiddleZone;
    	operation       volAverage;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    max(S)artInnerUpperZone	// folder name in post-processing specifying the maximum "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artInnerUpperZone;
	operation       max;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
	writeLocation       true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

    volAverage(S)artInnerUpperZone	// folder name in post-processing specifying the volume average of "S" in specified-zone
    {
	type            volFieldValue;
	libs            ("libfieldFunctionObjects.so");

	//regionType      all;
	regionType      cellZone;
	name            artInnerUpperZone;
    	operation       volAverage;

	//weightField     alpha1;

	fields
	(
		S
	);

        // Optional (inherited) entries
        enabled             true;	// Switch to turn function object on/off
        log                 true;	// Switch to write log info to standard output
	writeFields         true;
        timeStart           0;
        timeEnd             $endTime;
        executeControl      timeStep;
        //executeControl      writeTime;
        executeInterval     100;
        writeControl        timeStep;
        //writeControl        writeTime;
        writeInterval       100;
    }

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