Isothermal batch reactor simulator

$$a_1A_1+a_2A_2+...+a_{N_{A}}A_{N_A}\to b_1B_1+b_2B_2+...+b_{N_{B}}B_{N_B}$$

ai - stoichiometric coefficient for substrate Ai
bi - stoichiometric coefficient for product Bi


Documentation of isothermal batch reactor simulation


A batch reactor is simply a tank which holds a chemical mixture while components react. Small batch reactors are often used in laboratory experiments, but volumes as high as 100,000 L are encountered in production. This relatively simple device is most common type of industrial reactors [1, 2]. A batch reactor is schematically shown in Fig. 1.

Scheme of a batch reactor

Fig. 1. Scheme of a batch reactor

Mathematical model

The mathematical model of isothermal batch reactor consists of mass balances equations. As the energy effect is negligible the heat balance equation is not taken into consideration. The non-isothermal batch reactor is simulated and discussed on other page (nonisothermal batch reactor simulation).

The number of equations in the model depends on the complexity of the process. Let's first consider a first-order irreversible reaction:

AProducts(1)A \to Products \tag{1}

with kinetic expression:

rA(CA)=kCA(2)r_A(C_A) = k \cdot C_{A} \tag{2}


rAr_A is the uptake rate of reactant A, mol/(m3s),

CAC_A is the reactant A concentration, mol/m3,

kk is the kinetic constant, 1/s.

For a single irreversible chemical reaction the model will consist of one mass balance equation. To formulate this equation we need to consider balance volume equal to reaction volume V, which is a typical procedure in modelling tanks equipped with impeller. This means we assume perfect mixing in the tank. The left-hand-side of the mass balance equation (3) is the accumulation rate in the volume V, while the right-hand-side is the uptake rate of the reactant A. As there is no inflow or outflow to the reactor, there will be no additional terms in this equation.

VdCAdt=VrA(CA)(3)V\frac{dC_A}{dt}=-V \cdot r_A(C_A) \tag{3}


tt is time, s,

VV is the reactor volume, m3.

After reducing volume V, we get:

dCAdt=rA(CA)(4)\frac{dC_A}{dt}=-r_A(C_A) \tag{4}

To solve the above equation, an initial condition is required. In this case it is the initial concentration of the reactant A:

CA(0)=CA0(5)C_{A} (0) = C_{A0} \tag{5}

Equation (4) with condition (5) will also be suitable for zero-order kinetics or higher orders kinetics, if there is only one reactant. For example, if we deal if zero-order chemical reaction, the kinetic expression will be following:

rA=k(6)r_{A} = k \tag{6}

For second-order chemical reaction, the kinetic expression will be:

rA=kCA2(7)r_{A} = k \cdot C_{A}^{2}\tag{7}

and so on.

When there are more then one reactant, the mathematical model gets more complex. Namely, we need to extend it by further mass balance equations. Let's consider the following chemical reaction:

A+BProducts(8)A + B \to Products \tag{8}

For this chemical reaction, the kinetic expressions are:

rA(CA,CB)=kCACB(9a)r_A(C_A, C_B) = k \cdot C_{A} \cdot C_{B}\tag{9a}

rB(CA,CB)=kCACB(9b)r_B(C_A, C_B) = k \cdot C_{A} \cdot C_{B}\tag{9b}

The above equations can be completed by introducing orders of the reactions, if necessary.

The mathematical model will now consist of two mass balance equations, formulated on the same basis as previously:

dCAdt=rA(CA,CB)(10a)\frac{dC_A}{dt}=-r_A(C_A, C_B) \tag{10a}

dCBdt=rB(CA,CB)(10b)\frac{dC_B}{dt}=-r_B(C_A, C_B) \tag{10b}

Two initial conditions are required to solve the model. In this case they are initial concentrations of A and B:

CA(0)=CA0(11a)C_{A} (0) = C_{A0} \tag{11a}

CB(0)=CB0(11b)C_{B} (0) = C_{B0} \tag{11b}

The above reasoning can be extended to more complex reactions. In general, we can deal with stoichiometric coefficients and reaction orders different than one. For example:

aA+bBProducts(12)aA + bB \to Products \tag{12}

with kinetic expressions:

rA(CA,CB)=akCAn1CBn2(13a)r_A(C_A, C_B) = a \cdot k \cdot C_{A}^{n_1} \cdot C_{B}^{n_2}\tag{13a}

rB(CA,CB)=bkCAn1CBn2(13b)r_B(C_A, C_B) = b \cdot k \cdot C_{A}^{n_1} \cdot C_{B}^{n_2}\tag{13b}

Despite that the mass balance of a product is not necessary to solve the mathematical model, it might be interesting to find its concentration. To do this, we need to append an additional equation:

dCPdt=rP(CA,CB)(14)\frac{dC_P}{dt}=r_P(C_A, C_B) \tag{14}


rP(CA,CB)=pkCAn1CBn2(15)r_P(C_A, C_B) = p \cdot k \cdot C_{A}^{n_1} \cdot C_{B}^{n_2}\tag{15}


CP(0)=CP0(16)C_{P} (0) = C_{P0} \tag{16}

and p denotes stoichiometric coefficient for the product P.

Batch reactor design

The goal of batch reactor design can be specified in two ways. The first one is when we want to run the process for a given time. In such case, we need to solve the model for this value of time. As a result we obtain functions:

CA(t)(17a)C_A(t) \tag{17a}

CB(t)(17b)C_B(t) \tag{17b}

The values at the final time, are the ones when the process is finished.

In other scenario, we want to obtain chosen concentration of a reactant or product after the process. In this case we solve the mathematical model, and read the time from the diagram. This process can be automated, but this will not be discussed in this documentation.

Batch reactor simulation

The simulation in the Sofinery application is very easy. The process parameters are introduced into the table. They include:

  • kinetic constant,
  • time,
  • number of substrates,
  • number of products,
  • initial concentraions of substrates,
  • initial concentration of products,
  • stoichiometric coefficients for substrates,
  • stoichiometric coefficients for products,
  • reaction orders.

After introducing the parametrs, the simulation is performed automatically. According to the input, the reaction is updated. The result of the simulation is visualized on the diagram in the form of kinetic curves, that is the relationships of concetrations vs. time.


[1] Levenspiel, Octave. Chemical reaction engineering. John wiley & sons, 1998. Link

[2] Nauman, E. Bruce. Chemical reactor design, optimization, and scaleup. John Wiley & Sons, 2008. Link