Chiral API purification: continuous SMB chromatography — a PENG-ROBINSON process flowsheet
A racemic active pharmaceutical ingredient (R/S enantiomers, dilute in ethanol eluent) is resolved continuously by simulated moving bed chromatography — the workhorse of chiral-drug manufacture that legacy steady-state flowsheet simulators have no native model for (engineers script it in MATLAB). This uses the native SMB unit op, which solves the standard steady-state True Moving Bed equivalent: a 4-zone counter-current equilibrium-stage cascade whose zone flow-rate ratios sit inside the triangle-theory separation region, so the more-retained enantiomer reports to the extract and the other to the raffinate — the separation is driven by the chiral adsorption selectivity (the two enantiomers are otherwise thermodynamically identical).
Modeling assumptions & limitations
- 1This is the TMB steady-state equivalent, not the transient multi-column process with discrete port switching; stages are ideal equilibrium stages (no mass-transfer resistance / axial dispersion); the isotherm affinities are illustrative screening values.
184 views 0 forks
- Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
- 1 unit operations modeled: SMB.
- Focus areas: SMB chromatography, Chiral separation, Enantiomer, Pharmaceuticals.
- Thermodynamics
- PENG-ROBINSON
- Components
- r_ibuprofen, s_ibuprofen, ethanol
- Unit operations
- SMB
Opens in a new tab, loaded straight into the app — no setup.
Read the step-by-step guideReproduce this exact result from Python — the real client.get_example() → run_and_wait() path, not a mockup.
from flowsim.sdk import FlowSimClient
client = FlowSimClient()
example = client.get_example("smb-chiral-purification")
sim = client.create_simulation(example["title"], example["flowsheet"])
result = client.run_and_wait(sim["id"])
print(result["status"]) # "converged"
streams = client.streams(sim["id"])Related models
High-fructose corn syrup: SMB glucose/fructose separation
The single largest-volume industrial SMB in the world — separating fructose from glucose to make 55-HFCS. A glucose/fructose isomerate (dilute in water eluent) feeds the native SMB unit op; on a Ca²⁺-form ion-exchange resin fructose is the more-retained sugar, so it reports to the extract (the sweetener product) while glucose leaves in the raffinate (recycled to the isomerase reactor in a real plant). Solved as the steady-state True Moving Bed equivalent — a purely isotherm-driven liquid separation, so the sugars need no vapor-liquid-equilibrium data.
Substrate-inhibited fermenter (Haldane kinetics)
A continuous chemostat where growth is genuinely inhibited at high substrate concentration — the real Haldane mechanism (mu = mu_max*S/(Ks + S + S^2/Ki)), a native solver kinetics option (params['ki']), not a decorative custom block (custom_block structurally can't change stream composition, so faking this through one would misrepresent the reactor's actual material balance). At the same dilution rate a plain Monod fermenter would consume nearly all the feed substrate; here more substrate survives unconverted and less biomass forms, because growth is suppressed in this concentration range — the whole point of modeling inhibition at all. A strongly inhibitory Ki can also make a nominally achievable dilution rate (D < mu_max) physically unreachable and the reactor washes out, since the Haldane mu(S) curve peaks at a finite S and falls again at higher S.
Superheated-steam drying loop with MVR heat recovery
A wet cake is dried in a superheated-steam dryer (steam as the drying medium instead of hot air), and the evaporated moisture — pure steam — is recovered by mechanical vapor recompression (MVR) plus a trim superheater into high-grade superheated steam that reheats the recirculating drying medium. Superheated-steam drying is the energy-efficient route for biofuel and food solids (distillers' grains, beet pulp, lignite): because the drying atmosphere is steam, the evaporated water leaves as more steam whose latent heat is recompressed and reused, instead of being lost in a humid exhaust.
Bioreactor (Monod fermenter)
A steady-state chemostat: substrate is consumed by Monod growth (μ = μmax·S/(Ks + S)) to produce biomass — a modern reactor model legacy tools lack.
Media-prep + Monod fermenter
A production bioprocess step: the growth medium is preheated to fermentation temperature, then a Monod chemostat consumes the substrate to build biomass — the media conditioning + fermentation train around the reactor.
Fatty-ester vacuum fractionation
Biodiesel methyl esters (C₁₆ / C₁₈) split at 0.05 bar — vacuum keeps the bottoms under 515 K; near-total C₁₆ recovery overhead and ~98% C₁₈ in the bottoms (the two components' relative volatility caps bottoms purity there — more stages/reflux do not push it further). From the ChemSep casebook (Fatty_Acids, as methyl esters).