Tabulation

This is a description a tabulation method based on computing, retaining and accessing are large, on the order of millions, number of individual kinetic time step calculations. A kinetic time step is stored as a configuration and the change (gradient) in that configuration, both n-valued vectors. The individual configurations are accessed by m progress variables, temperature, pressure and selected species mass fractions, in an m-leveled tree, one progress variable per level. The values of the progress variables are divided up into a fixed number of intervals. The set of kinetics configurations at the leaf nodes of the tree are all within a hypercube of values. To maintain a reasonable memory usage, the entire database resides on disc and only the 'most used' information resides in memory. How much resides in memory can be specified, dependent on availability. For calculations over limited conditions, all configurations can reside in memory for maximum efficiency. Initial tests were made with the GRI-3.0 mechanism, with 55 species. It was found that with 9 progress variables, temperature, pressure, HO2, CH4, O2, CO2, H2O, H2O2 and C2H4, was adaquate to describe the configurations for conditions of initial temperature from 1300 to 1900 (10 degrees steps), pressure from 1 to 40 atmospheres (5 atm steps), and equivalence ratio from 0.4 to 2.0 (0.2 steps). These ranges are described by 144616 configurations in 132281 hypercubes accessed by a tree with 487471 nodes. The data structure is tested with the premixed pairwise mixing stirred reactor with over 100 particles. Time-step access times range from 0.01 ms, where all the relevant configurations reside in memory, to 1-2ms, where significant 'swapping' occurs between memory and disc. For the full database, with a 'reasonable' portion residing within memory, an average of 0.3ms can be expected. These timing calculations are made on an INSPIRON 9400 laptop, 1.98GHz, compiled with gcc optimized compiler.