General functional algorithms for batch design.

size_batch(F_vol, tau_reaction, tau_cleaning, N_reactors, V_wf)[source]#

Solve for batch reactor volume, cycle time, and loading time.

  • F_vol (float) – Volumetric flow rate.

  • tau_reaction (float) – Reaction time.

  • tau_cleaning (float) – Cleaning in place time.

  • N_reactors (int) – Number of reactors.

  • V_wf (float) – Fraction of working volume.


  • ‘Reactor volume’: float

  • ’Batch time’: float

  • ’Loading time’: float

Return type:



By assuming no downtime, the total volume of all reactors is:

\[V_T = F_{vol}(\tau_{reaction} + \tau_{cleaning} + \tau_{loading})\]

where \(V_T\) is the total volume of all reactors, \(F_{vol}\) is the volumetric flow rate of the feed, \(\tau_{reaction}\) is the reaction time, \(\tau_{cleaning}\) is the cleaning and unloading time, and \(\tau_{loading}\) is the time required to load a vessel. This equation makes the conservative assumption that no reaction takes place when the tank is being filled.

The working volume of an individual reactor is:

\[V_{i,working} = \frac{V_T}{N_{reactors}}\]

where \(N_{reactors}\) is the number of reactor vessels.

The time required to load a reactor (assuming no downtime) is:

\[\tau_{loading} = \frac{V_{i,working}}{F_{vol}}\]

Note that the the actual volume of a reactor is:

\[V_i = \frac{V_{i,working}}{f}\]

where f is the fraction of working volume in a reactor.

Plugging in and solving for the total volume, \(V_{T}\), we have:

\[V_T = F_{vol}\frac{\tau_{reaction} + \tau_{cleaning}}{1 - \frac{1}{N_{reactors}}}\]

Using this equation, \(V_T\) is first calculated, then \(V_{i, working}\), \(\tau_{loading}\), and \(V_i\).

Units of measure may vary so long as they are consistent. The loading time can be considered the cycle time in this scenario.