High-CO2 LNG with amine capture and CO2 reinjection
One 5.3 Mtpa LNG train on a reservoir whose gas is 14 mol% CO2, where the CO2 is not vented but compressed to dense phase and injected — 2.8 Mtpa of it, at 200 bar, which is the scale that makes this a storage project rather than a gesture. Two things make this different from every other LNG example here. First, the acid-gas removal is real chemistry, in the same flowsheet as the cryogenics: per-node thermo_overrides run the absorber, the rich/lean loop and the stripper on the 'enrtl-mdea-pz' electrolyte package (MDEA protonation + piperazine carbamate/dicarbamate speciation) while the gas train and the cold end run Peng-Robinson — the amine unit and the MCHE are not two models bolted together, they are one solve. Second, the CO2 goes somewhere: the stripper overhead is knocked back, two-stage compressed with interstage cooling and drying, and pumped to 200 bar as a ~96 mol% dense-phase stream ready for a reinjection well, rather than leaving as a vent. The sweet gas is water-washed, dried and liquefied in the C3MR cold end to LNG at ~116 K. Honesty notes: (1) the absorber drives CO2 to exactly zero in the treated gas, and that is a model artifact, not a design result — an equilibrium Kremser absorber against a reactive solvent has no mass-transfer resistance to leave a slip behind, so this flowsheet cannot tell you what the AGRU outlet spec should be. That number has to come from the freeze-out limit instead: analysis/co2_freezeout.py (and the 'CO2 freeze-out' analysis tab) puts it at a few hundred ppm at 116 K, which is why the real spec is <=50 ppmv with margin, and why this field's gas would plug the MCHE with dry ice ~1000x over if it were fed raw. Use the rate-based 'rate-based-amine-absorber' showcase for a contactor that does resolve a slip. (2) The lean-amine loop is left OPEN (the regenerated solvent is a product, not recycled onto the absorber) with makeup steam as the reboiler surrogate — the same simplification 'mixed-amine-acid-gas-treating' discloses. (3) Streams crossing the PR<->eNRTL boundary are rebased onto the shared 298.15 K ideal-gas datum, so the material balance and the datum are consistent, but the Kremser absorber attempts no rigorous energy balance of its own. (4) The reservoir CO2 content is representative of a high-CO2 field; the injection well itself is out of scope — this train delivers CO2 at wellhead conditions, it does not model the reservoir. (5) Single-level precool and one MCHE bundle; refrigerant charges are set via tear_specs.
The flowsheet
The solved topology — every unit op's real duty, conversion, or split, read straight off a genuine converged solve.
The stream table
Every stream's flow, temperature, pressure, and composition — real converged numbers, not placeholders.