This model takes into account reaction. It is possible to have several (independent, parallel or consecutive) reactions, irreversible as well as reversible reactions. A kinetic approach is used, i.e. the equilibrium is not attained at once.
The parameter nR denotes the number of reactions. For each reaction, it has to be stated whether the reaction is reversible or irreversible using the boolean parameter vector reversible. The stocheometric coefficients of the reaction are stored in the parameter nu. The reaction order for forward and reverse reaction is stored in powerCoeffForward and powerCoeffReverse respectively. If no reverse reaction takes place, any values for powerCoeffReverse can be used. The reaction order can not vary during simulation (even though in reality there are reactions where the reaction order changes; often due to a change in temperature). The reaction rate equation is usually written for one component. The number of this component has to be stated in the parameter reacComp.
The reaction rate coefficient of the reverse reaction, k_reverse, is calculated using the reaction rate coefficient of the forward reaction, k_forward, and the equilibrium constant K. The values for k_forward and K are calculated in separate classes which are declared replaceable in this model. The assumption that K is the ratio of k_forward to k_reverse only holds for elementary reactions, not for overall reactions (so it is true for example for A+B <--> C and C+B <--> D but not necessarily for A+2B <--> D).
Example:
A + D <--> C
r_A = k1_forward * c_D*c_A - k1_reverse * c_C
B--> E
r_B = k2 * c_B^2