scalarFieldArray1d C1table //AMC C1 coefficient table
(
    etamax,
    scalarField(NVar+1, 0)
);

scalarFieldArray2d Ttable
(
    etamax,
    scalarFieldArray1d 
    (
        NVar+1,
        scalarField(NstList.size(), 0)
    )
);

scalarFieldArray2d Rtable
(
    etamax,
    scalarFieldArray1d
    (
        NVar+1,
        scalarField(NstList.size(), 0)
    )
);

scalarFieldArray3d Ytable
(
    postSpecieNames.size(),
    scalarFieldArray2d
        (
        etamax,
        scalarFieldArray1d
        (
            NVar+1,
            scalarField(NstList.size(), 0)
        )
    )
);

Info<<"Construct C1 coefficient table"<<endl;
for(label j=1 ; j<etamax-1; j++)
{
    bpdf.C1coeff(etaValue[j], varValue, C1table[j]);
}

Info<<"Construct Temp and Rgas table"<<endl;
for(label j=0 ; j<etamax ; j++)
{
    scalar mf = etaValue[j];
    for(label v=0 ; v<=NVar ; v++)
    {
        scalar mfVar = varValue[v]*mf*(1.0-mf);
        for(label n=0 ; n<NstList.size() ; n++)
        {
            Ttable[j][v][n] = bpdf.evaluate(mf, mfVar, etaValue, T_SLFM[n]);
            Rtable[j][v][n] = bpdf.evaluate(mf, mfVar, etaValue, Rgas_SLFM[n]);
            forAll(postSpecieIndices, yi)
            {
                const label y = postSpecieIndices[yi];
                Ytable[yi][j][v][n] = bpdf.evaluate(mf, mfVar, etaValue, Y_SLFM[y][n]);
            }
        }
    }
    Info<<scalar(j+1)/etamax*100<<"%"<<endl;
}
