Figure 5.1 is a schematic of the parallel approach to emissions processing employed by SMOKE. For each SMOKE processing category (i.e., area, biogenic, mobile, and point sources), the following tasks are performed:
Each processing category has its particular complexities and deviations from the above list; these are described in detail in CEP, [2005]. For all categories, however, most of the needed processing steps are factor-based; they are linear operations that can be represented as multiplication by matrices. Further, some of the matrices are sparse matrices (i.e., most of their entries are zeros).
SMOKE is designed to take advantage of these facts by formulating emissions modeling in terms of sparse matrix operations, which can be performed by optimized sparse matrix libraries. Specifically, the inventory emissions are arranged as a vector of emissions sorted in a particular order, with associated vectors that include characteristics about the sources such as the state/county and SCCs. SMOKE then creates matrices that apply the control, gridding, and speciation factors to the vector of emissions. In many cases, these matrices are independent from one another, and can therefore be generated in parallel and applied to the inventory in a final “merge” step, which combines the inventory emissions vector (now an hourly inventory file) with the control, speciation, and gridding matrices to create model-ready emissions. Figure 5.1 shows how the matrix approach allows for a more parallel approach to emissions processing, in which fewer steps depend on other needed steps.