MaximaLabs
Back to gallery
Chiral API plant, Visp, Switzerland

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

  1. 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

FEED
Desorbent
feed
eluent
extract
raff
SMB
Extract
Raffinate
What this showcases
  • 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.
Specification
Thermodynamics
PENG-ROBINSON
Components
r_ibuprofen, s_ibuprofen, ethanol
Unit operations
SMB
Open in workspace

Opens in a new tab, loaded straight into the app — no setup.

Read the step-by-step guide
Python SDK

Reproduce 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

Corn wet-milling plant, Decatur, Illinois, USA

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.

Corn-ethanol biorefinery / distillers'-grains dryer, Blair, Nebraska, USA

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.

Basel, Switzerland

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.

Basel, Switzerland

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.

Oleochemicals plant, Port Klang, Malaysia

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).

Stop fighting legacy software. Build your first flowsheet in 60 seconds.