Cement kiln calcination + CO2 liquefaction — a NRTL process flowsheet
Preheated limestone (CaCO₃) enters an indirectly-heated rotary kiln that calcines it toward CaO, releasing a CO₂-rich off-gas; the gas passes a knockout drum, then is compressed and cooled to liquefy the CO₂ for transport/storage.
Modeling assumptions & limitations
- 1The off-gas is modelled **dry**, so that knockout drum passes it through unchanged rather than condensing anything. A real raw meal carries free moisture, but this flowsheet runs on NRTL, which has no CO₂ group decomposition and cannot flash a CO₂/water mixture at all — the drum marks where moisture removal belongs, it is not a stage that does work here. notes:
- 2This specific kiln model (`rotary_kiln`) heats via an indirect utility-temperature wall duty (an NTU model), not a simulated internal flame, so no combustion stoichiometry runs inside it here — real oxy-fuel combustion IS modeled elsewhere in MaximaLabs (`fired_heater`'s `oxidant="oxy_co2"` mode: near-pure-O₂ combustion diluted by a recycled-CO₂ stream instead of air's nitrogen), see `allam-fetvedt-cycle` for a real working example of it
- 3The calcination conversion shown (~21%) is the real, kinetically-limited result of this model's validated Arrhenius parameters at this residence time/temperature, not a claim of complete calcination — a real cement plant's preheater-tower-plus-kiln train achieves far higher calcination degree than one rotary-kiln unit alone models here
- 4CO₂ must be compressed above roughly 5.2 atm before it can be liquefied by cooling at all (it has no liquid phase at 1 atm at any temperature), which the compressor stage here reflects.
168 views 2 forks
- Rigorous NRTL thermodynamics, solved by the same engine every simulation runs on.
- 4 unit operations modeled: KILN, 2× Cool2, 2× Liquefy, CO2 COMP.
- Focus areas: Cement, Calcination, Rotary kiln, CO2 capture, Carbon capture.
- Thermodynamics
- NRTL
- Components
- calcium_carbonate, calcium_oxide, co2, water
- Unit operations
- KILN2× Cool22× LiquefyCO2 COMP
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("cement-calcination-co2-capture")
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
Direct air capture with solid-sorbent calcination + CO2 liquefaction
A Carbon Engineering-style DAC train: a fan draws ambient air (400 ppm CO₂) through a liquid-KOH contactor (a fixed-recovery separator — the same simplification the existing carbon-capture example uses for chemical absorption, since no CO₂-KOH electrolyte package exists) capturing ~75% of the CO₂. The captured CO₂ is causticized and precipitated into CaCO₃ pellets by the real (unmodeled-in-detail) KOH/Ca(OH)2 loop — represented here as a matched pellet feed sized to the captured CO₂ rate, since the generic reactor unit op can't itself produce a solid product (only a rotary kiln's decomposition path can, which is exactly what's used next). Those pellets calcine at ~977 degC in an indirectly-heated rotary kiln (real Arrhenius decomposition kinetics, Sullivan-Maynard-Valentine residence time), releasing pure CO₂ that's compressed to ~20 atm and chilled to 250 K — above the real Span-Wagner CO₂ saturation pressure at that temperature, so the solved outlet stream is genuine subcooled LIQUID CO₂ (not just dense-phase pipeline gas) — while the CaO leaves for slaking and reuse (the lime side of the closed loop, out of scope for the same reason as the causticization step). Run the Carbon Footprint report on this example for the real Scope 1/2/3 CO2e + carbon-tax liability breakdown already built into MaximaLabs's report generator.
sCO2 Allam-Fetvedt oxy-combustion power cycle
Natural gas burns in near-pure oxygen, diluted by a large recycled supercritical-CO₂ flow instead of air's nitrogen — the oxy-combustion, near-critical-CO₂ cycle that yields pipeline-ready CO₂ with no separate capture step. Main compressor takes CO₂ from just above its critical point (310 K, 8 MPa vs. Tc=304 K/Pc=7.38 MPa) to 30 MPa; the combined CO2+combustion-product stream expands through a real isentropic-efficiency turbine, still supercritical throughout.
Flue-gas CO2 capture by solid-sorbent adsorption
A generic solid-sorbent (zeolite-13X-class) adsorption capture step on real combustion flue gas (13 mol% CO₂ — typical of a natural-gas- or coal-fired flue gas, a much higher CO₂ partial pressure than direct-air-capture's ~400 ppm case, which is why this uses the existing Adsorption unit op's real competitive-Langmuir isotherm directly on the flue-gas stream rather than the fixed-recovery separator shortcut the existing DAC examples use). Adsorption-based flue-gas capture is a real, generically licensed technology category (Linde's HISORP CC targets exactly this application); the isotherm parameters here are representative order-of-magnitude values for a zeolite-13X-class sorbent's CO₂/N₂/O₂/H₂O selectivity (real published 13X studies show CO₂ adsorbing roughly an order of magnitude more strongly than N₂/O₂, and water more strongly still, competing for capacity), not pinned to one specific cited paper's exact figures — disclosed as representative, matching MaximaLabs's convention when a precise source isn't confidently pinnable, rather than presenting invented precision. Adsorbent inventory (adsorbent_mass) is sized to a real, honest ~96% CO₂ capture rate — not assumed/rounded to a marketing-friendly number.
Polymerization reactor comparison: CSTR cascade vs. tubular (PFR)
The same monomer feed, split 50/50 into two trains at equal total reactor volume: a 3-stage CSTR cascade (each stage blending its own new polymer with the MWD already carried by the stream from the stage before it) versus a single tubular (PFR) reactor. Both converge to a real, different Mn/Mw/PDI — the PFR reaches higher conversion at the same total volume, but its cumulative polydispersity is measurably broader than the cascade's, because chain length drifts continuously with conversion along the tube while each CSTR stage makes its own local production under one fixed monomer concentration. See the 'Polymerization Reactors' docs page for the full reasoning.
Helium liquefaction (Linde-Hampson cycle)
A Joule-Thomson liquefaction loop: helium is compressed, aftercooled, precooled well below its ~40-51 K JT-inversion temperature, then throttled through a valve into a flash drum that draws off liquid helium while the cold vapor recycles back to the compressor suction — the same JT-cycle physics as the platform's LNG/refrigeration loops, run on a fluid whose inversion curve makes precooling mandatory before the throttle can cool it at all.
NGL fractionation: single-shell Petlyuk dividing-wall column
A natural-gas-liquids cut (ethane / propane / n-butane) split into three on-spec products by ONE thermally-coupled dividing-wall column instead of two columns in series. This uses the native Petlyuk unit op: a prefractionator whose reflux and boilup are supplied by the main column (the single condenser + single reboiler), solved by an outer Wegstein loop that converges the bidirectional vapor/liquid coupling to self-consistency — the coupling legacy sequential-modular solvers approximate with two connected columns whose recycle fails to converge.