The stoichiometric matrix...a useful and beautiful tool
I wish to make a case for the use of the stoichiometric matrix and vector/matrix methods for reactor models. I rarely see examples in the literature that incorporate matrix methods in their reactor models. Do not be led astray! Below you will find my reasons for using matrix methods when writing programs for reactor models.
Value of the stoichiometric matrix
The importance of this matrix can be shown by comparing (in narrative form) how models would be coded with and without it. For an example of how the stoichiometric matrix is used in a reactor model, see the worksheet for design of a CSTR.
In the CSTR worksheet, the stoichiometric matrix was used four times, (1) to check the network and molecular weights, (2) to compute the heat of reaction at standard conditions, (3) to compute the heat of reaction as a function of temperature, and (4) to compute the net production rates of each species as a function of the temperature and composition. Without the stoichiometric matrix, the reaction network would have to be input four times in the form of numerical coefficients for each of these calculations. If a change in the reaction network is needed, those coefficients would have to be changed in four places unless the stoichiometric matrix is used. If chemical equilibria were important, the matrix would also have been used to calculate free energies of reaction.
Without the stoichiometric matrix and state variables, models are written with individual variable names for each concentration or molar flux. Again, changing the reaction network means recoding both the coefficients and the variables in several portions of the computer program, increasing chances of error.
The use of functions for reaction and specie production rates also helps to debug a program. By breaking the program into simple parts, errors can be found more readily than when the reaction rates are fully displayed in every material and energy balance.
Programs for modeling industrial reactors tend to be complex, regardless of the complexity of the reaction network. Thus, debugged programs need to be easily reused without extensive modification. State variables, vector/matrix methods and the liberal use of functions make that possible. The developers of all process simultation programs will certainly support these reasons.
Finally, the matrix simplifies the conversion of component production rate data into reaction rate data. A document has been created here that shows how reaction rates can be computed from component production rates obtained from a CSTR.
Beauty of the matrix
I like the compact appearance of mathematics written in vector/matrix notation. I also like the fact that Mathcad can produce live equations that look just like equations and notation used in journals and advanced text books. Now if we could only have bold font for vector and matrix names...maybe in Prime?
Automatic generation of a stoichiometric matrix
Early in the development of a process, a reaction network might be needed to simulate the process. The simulation may use a simple stoichiometric reactor model with a specified conversion: a reaction mechanism and kinetic rates are not needed for reactor design at this point. Missen and Smith (http://www.chemical-stoichiometry.net) have developed an algorithm that computes a simple reaction network of independent reactions that satisfies atomic and charge balances. I have implemented that algorithm in a worksheet.
I've read some articles on processes that could have used this algorithm. As a minimum, they could use the method shown in the worksheet for checking the atom balances in their reaction network.
Next: Graphical optimization of a pipeline design with integer and continuous variables