MaximaLabs
Back to gallery
Brevik, Norway (Heidelberg Materials Norcem — first full-scale cement CCS)

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

  1. 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:
  2. 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
  3. 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
  4. 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.

348 views 2 forks

Limestone FEED
feed
gas
solid
KILN
Clinker
Cool1
Knockout
Condensate
CO2 COMP
Cool2
Liquefy
VENT GAS
Liquid CO2
What this showcases
  • 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.
Specification
Thermodynamics
NRTL
Components
calcium_carbonate, calcium_oxide, co2, water
Unit operations
KILN2× Cool22× LiquefyCO2 COMP
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("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

Squamish, British Columbia, Canada

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.

NET Power demonstration plant, La Porte, Texas, USA

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.

Coal-fired power station, Mongstad, Norway

MEA post-combustion CO2 capture (electrolyte NRTL)

The reference amine process on the reference amine: flue gas (12% CO₂ at 1.1 bar, 313 K) scrubbed with 30 wt% aqueous monoethanolamine at a lean loading of 0.20 mol CO₂ per mol MEA, the rich solvent pumped and heated to 388 K, steam-stripped at 1.9 bar, and the overhead condensed at 313 K into a CO₂ product and a reflux-water stream. It runs on the enrtl package — carbamate/bicarbonate/protonation speciation with Davies activity, the CO₂ partial pressure a function of loading and temperature — which is what sets the rich loading of 0.53 mol/mol the absorber reaches and drives the stripper the other way at 390 K. What it computes: 24 mol/s of CO₂ into 695 mol/s of rich solvent, a 39 mol/s CO₂ product at 94 mol% after the condenser knocks out 109 mol/s of water, 3.9 MW of rich-solvent heating for 650 mol/s of circulation (the sensible-heat penalty the sensitivity sweep traces against solvent rate) and 6.8 MW of overhead condensing.

Pilot plant, Niederaussem, Germany

AMP post-combustion CO2 capture (hindered amine)

The MEA capture loop run on 2-amino-2-methyl-1-propanol: the same flue gas (12% CO₂ at 1.1 bar), 30 wt% AMP (8 mol%) at a lean loading of 0.10, steam stripping at 1.9 bar and an overhead condenser. AMP is sterically hindered — its carbamate is unstable, so CO₂ goes to bicarbonate and one mole of amine can carry one mole of CO₂ where MEA's carbamate stoichiometry stops at half — and the enrtl-amp package's speciation reproduces that: the rich loading comes out at 0.70 mol/mol against the MEA card's 0.53, so 500 mol/s of solvent does what 650 mol/s of MEA did, with 3.1 MW on the rich heater instead of 3.9. The CO₂ product is 27.7 mol/s at 93 mol%. Same.

Illustrative flue-gas adsorption capture unit

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.

Ludwigshafen, Germany

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.

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