/*--------------------------------*- 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;
    object      controlDict;
}

// NB: the #functions do not work here
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

Documentation
{
    docBrowser      "firefox";
    doxyDocDirs
    (
        "$WM_PROJECT_USER_DIR/html"
        "~OpenFOAM/html"
        "$WM_PROJECT_DIR/doc/Doxygen/html"
        "http://cpp.openfoam.org/9"
    );
    doxySourceFileExt "_8C.html";
}


InfoSwitches
{
    writePrecision          6;
    writeJobControl         0;
    writeJobInfo            0;
    writeDictionaries       0;
    writeOptionalEntries    0;

    // Allow case-supplied C++ code (#codeStream, codedFixedValue)
    allowSystemOperations   1;
}


OptimisationSwitches
{
    // On NFS mounted file system: maximum wait for files to appear/get
    // updated. Set to 0 on distributed case.
    fileModificationSkew 10;

    //- Modification checking:
    //  - timeStamp         : use modification time on file
    //  - inotify           : use inotify framework
    //  - timeStampMaster   : do time stamp (and file reading) only on master.
    //  - inotifyMaster     : do inotify (and file reading) only on master.
    fileModificationChecking timeStampMaster;

    //- Parallel IO file handler
    //  uncollated (default), collated or masterUncollated
    fileHandler uncollated;

    //- collated: thread buffer size for queued file writes.
    //  If set to 0 or not sufficient for the file size threading is not used.
    //  Default: 2e9
    maxThreadFileBufferSize 2e9;

    //- masterUncollated: non-blocking buffer size.
    //  If the file exceeds this buffer size scheduled transfer is used.
    //  Default: 2e9
    maxMasterFileBufferSize 2e9;

    commsType       nonBlocking; // scheduled; // blocking;
    floatTransfer   0;
    nProcsSimpleSum 0;

    // Force dumping (at next timestep) upon signal (-1 to disable)
    writeNowSignal              -1; // 10;

    // Force dumping (at next timestep) upon signal (-1 to disable) and exit
    stopAtWriteNowSignal        -1;

    // Default dictionary scoping syntax
    inputSyntax slash;
}


DebugSwitches
{
    dimensionSet        1;
    fileName            2;
    GAMGAgglomeration   1;
    level               2;
    lduMatrix           1;
    SolverPerformance   1;
    vtkUnstructuredReader 1;
}


DimensionedConstants
{
    unitSet             SI; // USCS

    SICoeffs
    {
        universal
        {
            c       [0 1 -1 0 0 0 0]    2.99792e+08;
            G       [-1 3 -2 0 0 0 0]   6.67429e-11;
            h       [1 2 -1 0 0 0 0]    6.62607e-34;
        }

        electromagnetic
        {
            e       [0 0 1 0 0 1 0]     1.60218e-19;
        }

        atomic
        {
            me      [1 0 0 0 0 0 0]     9.10938e-31;
            mp      [1 0 0 0 0 0 0]     1.67262e-27;
        }

        physicoChemical
        {
            mu      [1 0 0 0 0 0 0]     1.66054e-27;
            k       [1 2 -2 -1 0 0 0]   1.38065e-23;
        }

        standard
        {
            //- Standard pressure [Pa]
            Pstd    [1 -1 -2 0 0 0 0]   1e5;

            //- Standard temperature [K]
            Tstd    [0 0 0 1 0 0 0]     298.15;
        }
    }

    USCSCoeffs
    {
        universal
        {
            c       [0 1 -1 0 0 0 0]    9.83558e+08;
            G       [-1 3 -2 0 0 0 0]   1.06909e-09;
            h       [1 2 -1 0 0 0 0]    1.57234e-32;
        }

        electromagnetic
        {
            e       [0 0 1 0 0 1 0]     1.60218e-19;
        }

        atomic
        {
            me      [1 0 0 0 0 0 0]     2.00825e-30;
            mp      [1 0 0 0 0 0 0]     3.68746e-27;
        }

        physicoChemical
        {
            mu      [1 0 0 0 0 0 0]     3.66083e-27;
            k       [1 2 -2 -1 0 0 0]   1.82012e-22;
        }

        standard
        {
            //- Standard pressure [lbm/ft^2]
            Pstd    [1 -1 -2 0 0 0 0]   2088.6;

            //- Standard temperature [degR]
            Tstd    [0 0 0 1 0 0 0]     536.67;
        }
    }
}


DimensionSets
{
    unitSet             SI; // USCS

    SICoeffs
    {
        // Basic units
        kg          [1 0 0 0 0 0 0]     1;
        m           [0 1 0 0 0 0 0]     1;
        s           [0 0 1 0 0 0 0]     1;
        K           [0 0 0 1 0 0 0]     1;
        mol         [0 0 0 0 1 0 0]     1;
        A           [0 0 0 0 0 1 0]     1;
        Cd          [0 0 0 0 0 0 1]     1;

        // Derived units
        Hz          [s^-1]              1;
        N           [kg m s^-2]         1;
        Pa          [N m^-2]            1;
        J           [N m]               1;
        W           [J s^-1]            1;

        // Some non-symbolic units
        area        [m^2]               1;
        volume      [m^3]               1;
        density     [kg m^-3]           1;
        acceleration [m s^-2]           1;
        kinematicPressure [Pa density^-1] 1;

        // Scaled units. Only allowed in dimensionedType (dimensionedScalar,
        // dimensionedVector etc.) and UniformDimensionedField, not
        // in DimensionedField or GeometricField
        cm          [m]                 1e-2;
        mm          [m]                 1e-3;
        km          [m]                 1e3;

        // Set of units used for printing. Can be any basic or derived
        // but not scaled (only supported for dimensionedScalar, etc)
        // writeUnits (kg m s K mol A Cd);
    }

    USCSCoeffs
    {
        // Basic units
        lb          [1 0 0 0 0 0 0]     1;
        ft          [0 1 0 0 0 0 0]     1;
        s           [0 0 1 0 0 0 0]     1;
        R           [0 0 0 1 0 0 0]     1;
        mol         [0 0 0 0 1 0 0]     1;
        A           [0 0 0 0 0 1 0]     1;
        Cd          [0 0 0 0 0 0 1]     1;

        // Set of units used for printing. Can be any basic or derived
        // but not scaled (only supported for dimensionedScalar, etc)
        // writeUnits (lb ft s R mol A Cd);
    }
}


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