MaximaLabs
Back to gallery
Coke-oven ammonia water treatment (illustrative)

Ammonia-water neutralization with sulfuric acid to ammonium sulfate — a BRINE process flowsheet

A 2 wt% ammonia water (a scrubber or coke-oven bleed) is neutralized with 20 wt% sulfuric acid to pH 6.0. The neutralizer solves the acid dose (drawn from the acid supply, the rest returned) on the aqueous speciation (NH4+ pKa 9.25), so at pH 6 nearly every ammonia molecule is protonated and the dose lands at half a mole of sulfuric acid per mole of ammonia: the stream leaves as ammonium sulfate solution, reported from the speciation. The heat of neutralization is the ammonium dissociation enthalpy, 52.2 kJ per mole of ammonia protonated (110 kW here), and the outlet is adiabatic, so the liquor warms by about 12 K.

Modeling assumptions & limitations

  1. 1Only the proton-transfer heat is carried; diluting concentrated acid releases much more on its own, which is why a dilute acid is dosed here
  2. 2The aqueous package treats ammonia as non-volatile, so the ammonia a warm, alkaline liquor loses to the air is not shown; and
  3. 3Activity coefficients are B-dot, a screening model above about 1 mol/kg ionic strength.

7 views 0 forks

Ammonia Water
Sulfuric ACID
liquor
reagent
out
excess
Neutralizer
Ammonium Sulfate Liquor
Unused ACID
What this showcases
  • Rigorous BRINE thermodynamics, solved by the same engine every simulation runs on.
  • 1 unit operations modeled: Neutralizer.
  • Focus areas: Neutralization, Ammonia, Ammonium sulfate, Wastewater.
Specification
Thermodynamics
BRINE
Components
water, ammonia, h2so4
Unit operations
Neutralizer
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("ammonia-water-neutralization")
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

Reference model (ChemSep)

Ammonia refrigeration cycle

A single-stage vapor-compression refrigeration loop using ammonia — the classic industrial (rather than HFC) refrigerant — condensed to subcooled liquid, throttled through a valve, and superheated back to vapor in the evaporator before recycling (inspired by ChemSep's Refrigeration_Ammonia-30C reference case).

Illustrative refinery sour-water unit

Refinery sour water stripper (NH₃ + H₂S)

The standard refinery sour water stripper: sour water carrying ammonia and hydrogen sulfide is steam-stripped in a 10-stage column, sending both overhead as sour gas and returning stripped water fit for reuse. Runs on the new sour-water weak-electrolyte package, which is what makes the result meaningful — ammonia and H₂S suppress each other's volatility (ammonia raises pH and holds sulfide down as HS⁻; H₂S lowers pH and holds ammonia down as NH₄⁺), and heat reverses both, which is precisely why a stripper works. The two removals come out asymmetric for the real reason: H₂S strips essentially completely while ammonia, five orders of magnitude more soluble, is the duty that sets the steam rate.

Cold-storage terminal, Rotterdam, Netherlands

Ammonia refrigeration (−30 °C)

A closed single-stage ammonia vapor-compression cycle serving a −30 °C load: compressor → ambient condenser → JT valve → evaporator. The charge is set via tear_specs; metrics give duty and work (COP ≈ 2). From the ChemSep casebook (Refrigeration_Ammonia-30C).

Battery-recycling hydrometallurgy pilot plant (illustrative)

Battery cobalt recovery: leach, neutralize, D2EHPA Mn SX, Cyanex 272 Co SX, electrowinning

Spent NMC111 black mass is leached in sulfuric acid with the acid consumption tracked (lithium as Li₂SO₄, each transition metal as its sulfate), so the pregnant leach solution carries the residual free acid a real leach leaves. A neutralizer then titrates that liquor with 20 wt% caustic to pH 4.0 on the aqueous speciation: the caustic dose is solved, not assumed, and the heat of neutralization (55.8 kJ per mole of acid neutralized) warms the liquor; the caustic header is the supply, and what the titration does not take is returned. Two solvent-extraction circuits on the pH-isotherm chemistry follow, the common NMC arrangement: D2EHPA at pH 4.0 takes manganese into the organic while cobalt and nickel stay behind, and Cyanex 272 at pH 5.0 then takes cobalt and rejects nickel and lithium to the raffinate. The Cyanex 272 isotherms are one published measurement (Liu et al., Metals 11 (2021) 401: 0.4 M in ShellSol D70, 40 C, sulfate; pH50 cobalt 4.15, nickel 6.06), and the 1.9 pH-unit gap between them is why the cobalt organic carries about 0.6% of the nickel, against about 3% with D2EHPA at the same cobalt recovery. The loaded cobalt organic is stripped into a dilute sulfuric strip liquor, and that advance electrolyte goes to cobalt electrowinning: Faraday's law at a 90% current efficiency, 90% of the cobalt plated as cathode cobalt, the anode's oxygen and the 10% of the charge that evolves hydrogen reported as cell gas, and one mole of sulfuric acid regenerated per mole of cobalt plated.

Butte, Montana, USA

Acid-mine-drainage neutralization: staged lime precipitation

Acidic, metal-laden mine water (dissolved ferric iron, aluminium, nickel and zinc over a sulfate background) is cleaned in a two-stage lime-neutralization circuit — the classic hydrometallurgy / water-treatment precipitation train. Stage 1 doses to pH 4.5, where ferric iron (Fe(OH)3, pKsp 38.6) and aluminium (Al(OH)3, pKsp 33.0) drop out as a sludge while the base metals stay dissolved; stage 2 raises the liquor to pH 9.5, where nickel (Ni(OH)2) and zinc (Zn(OH)2) precipitate, leaving a clarified effluent. Both stages are the new precipitator unit op wrapping the codebase's CRC-cited metal-hydroxide solubility-product chemistry (thermo/electrolytes.hydroxide_precipitation) — dose to a pH setpoint, read off what drops out — the same selective-precipitation workflow a real neutralization plant runs.

Ammonia plant, Ludwigshafen, Germany

Quench-converter ammonia synthesis loop

The multi-bed quench converter BASF first installed in 1942, which displaced the tube-cooled converters before it, running inside a complete 200 bar synthesis loop. Ammonia synthesis is equilibrium-limited and exothermic, so the catalyst wants to run hot for rate and cool for equilibrium, and no single adiabatic bed can do both. The quench converter's answer is mechanical: split the loop gas, send 55% through the interchanger into bed 1 and inject the other 45% as cold shots between the beds, so each bed heats up adiabatically and each quench pulls it back down. What it computes: the sawtooth, 673 → 766 K in bed 1, quenched to 689 K and out at 760 K, quenched to 712 K and out at 766 K; 12.5 mol% ammonia at the converter exit, in the 12-18% band real quench converters deliver, at 20.9% nitrogen conversion per pass; 44.6 mol/s of 97.8% liquid ammonia off the 250 K separator; and argon and methane held at 3.3% and 4.2% in the loop by a 3% purge, with the recycle closed by a Wegstein tear. The acid test is the counterfactual: one adiabatic bed producing that same 12.51 mol% ammonia exit ends at 834.7 K — 562 C, past the sintering limit of promoted-magnetite catalyst — while the three-bed quench converter delivers the identical duty with a 766 K (493 C) peak.

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