top of page

11. marts 2025

||

Humzaa

Python code for CSTR and PFR Simulation



The code for the test is the following.

import
import numpy as np
import matplotlib.pyplot as plt

# Given data
C_A0 = 1.0  # mol/L (inlet concentration of A)
k = 0.2  # min^-1 (rate constant)
F = 10  # L/min (flow rate)
V = 50  # L (reactor volume)

def cstr_concentration(C_A0, k, tau):
"""Calculate outlet concentration for a CSTR."""
return C_A0 / (1 + k * tau)

def pfr_concentration(C_A0, k, tau)
"""Calculate outlet concentration for a PFR."""
return C_A0 * np.exp(-k * tau)

# Calculate residence time (tau)
tau = V / F  # Space time = V/F

# Compute outlet concentration
C_A_CSTR = cstr_concentration(C_A0, k, tau)
C_A_PFR = pfr_concentration(C_A0, k, tau)

# Print results
print(f"CSTR Outlet Concentration: {C_A_CSTR:.4f} mol/L")
print(f"PFR Outlet Concentration: {C_A_PFR:.4f} mol/L")


# Visualization
volumes = np.linspace(0, V, 100)  # Reactor volume range for PFR
tau_values = volumes / F  # Space time values
C_A_PFR_curve = pfr_concentration(C_A0, k, tau_values)

plt.figure(figsize=(8,5))
plt.plot(volumes, C_A_PFR_curve, label='PFR Concentration', color='blue')
plt.axhline(C_A_CSTR, color='red', linestyle='--', label='CSTR Concentration')
plt.xlabel("Reactor Volume (L)")
plt.ylabel("Outlet Concentration (mol/L)")
plt.title("CSTR vs. PFR Outlet Concentrations")
plt.legend()
plt.grid()
plt.show()


bottom of page