/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "constant";
    object      chemistryProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

chemistryType
{
    chemistrySolver   ode;
    chemistryThermo   psi;
    TDAC              on;
}

chemistry           on;

importantSpecies
{
    CH4;
    H2O;
    O2;
    CO2;
}

initialChemicalTimeStep 1e-07;

odeCoeffs
{
    solver          Rosenbrock34;  // Rosenbrock34, seulex or rodas23
    absTol          1e-12;
    relTol          1e-7;
}

reduction
{
    // Activate reduction
    active  on;

    // Switch logging of the reduction statistics and performance
    log         on;

    // Tolerance depends on the reduction method, see details for each method
    tolerance   1e-4;

    // Available methods: DRG, DAC, DRGEP, PFA, EFA
    method DAC;

    // Search initiating set (SIS) of species, needed for most methods
    initialSet
    {
        CO;
        CH4;
        HO2;
    }

    // For DAC, option to automatically change the SIS switch from HO2 to H2O
    // and CO to CO2, + disable fuel
    automaticSIS    off;

    // When automaticSIS, the method needs to know the fuel
    fuelSpecies
    {
        CH4 1;
    }
}

tabulation
{
    // Activate tabulation
    active      on;

    // Switch logging of the tabulation statistics and performance
    log         on;

    printProportion    off;

    printNumRetrieve   off;

    // Tolerance used for retrieve and grow
    tolerance   0.003;

    // ISAT is the only method currently available
    method    ISAT;

    // Scale factors used in the definition of the ellipsoid of accuracy
    scaleFactor
    {
        otherSpecies 1;
        Temperature  10000;
        Pressure     1e15;
        deltaT       1;
    }

    // Maximum number of leafs stored in the binary tree
    maxNLeafs  5000;

    // Maximum life time of the leafs (in time steps) used in unsteady
    // simulations to force renewal of the stored chemPoints and keep the tree
    // small
    chPMaxLifeTime 1000;

    // Maximum number of growth allowed on a chemPoint to avoid distorted
    // chemPoints
    maxGrowth  100;

    // Number of time steps between analysis of the tree to remove old
    // chemPoints or try to balance it
    checkEntireTreeInterval  500;

    // Parameters used to decide whether to balance or not if the tree's depth
    // is larger than maxDepthFactor*log2(nLeafs) then balance the tree
    maxDepthFactor   2;

    // Try to balance the tree only if the size of the tree is greater
    minBalanceThreshold 30;

    // Activate the use of a MRU (most recently used) list
    MRURetrieve false;

    // Maximum size of the MRU list
    maxMRUSize 0;

    // Allow to grow points
    growPoints  true;

    // When mechanism reduction is used, new dimensions might be added
    // maxNumNewDim set the maximum number of new dimensions added during a
    // growth
    maxNumNewDim 10;
}


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