Site water reuse: RO + EDI polish + MD to near-ZLD — a PENG-ROBINSON process flowsheet
The full hybrid a large chemical site builds when it is reusing its own effluent rather than buying river water: reverse osmosis does the bulk desalting, electrodeionisation polishes the permeate to boiler-feed quality, and the RO concentrate is warmed by waste heat and pushed to salt by membrane distillation and a crystalliser. It is the companion to industrial-water-reuse-ro-md-zld, which stops at reuse-grade water; the delta here is the polishing leg, and it is a genuinely different technology rather than a tighter membrane.
Why EDI and not more RO. RO is pressure-driven and pushes water, so its energy scales with the volume produced. Electrodialysis drags ions out under a field and the water never crosses, so its energy scales with the salt removed — which is why it is hopeless on seawater and excellent on an RO permeate that is already 99% desalted. This model shows that rather than asserting it: at the same stack and current the moles removed are fixed by Faraday's law regardless of how salty the feed is.
The reason the polisher is resin-filled is the interesting part. Plain electrodialysis has a limiting current density proportional to the diluate concentration, so as the water approaches pure the boundary layer runs out of ions to deliver and the salt flux plateaus — ED cannot reach ultrapure at any voltage, and the voltage runs away as the water stops conducting. Packing the diluate compartment with ion-exchange resin fixes both: the resin carries the current, and the water splitting that occurs above the classical limiting current — a fault in a solution-filled stack, causing a pH excursion and scale — is exactly what regenerates the resin in place. That is why an EDI polisher needs no chemical regeneration, and why the same operating point means opposite things in the two stacks.
Modeling assumptions & limitations
- 1The stack's mass-transfer coefficient, membrane area resistance and current efficiency are measured properties of a specific stack at a specific velocity, supplied here as inputs — no ED-stack databank ships, for the same reason no membrane or dust databank does. The same applies to the water-splitting overpotential, and it matters more than it sounds: the ohmic terms alone give a fraction of a volt per cell pair while a real EDI stack runs at 1-2 V, so with that input left at its zero default the model reports an energy floor rather than a prediction. It is set explicitly here (1.2 V/cell pair) so the number below is worth quoting. One lumped 1:1 salt, so no per-ion selectivity and no monovalent-selective membrane. Pretreatment (filtration and pH adjustment) sits upstream of this boundary because the thermo carries no particulate phase, and the concentrate side has no scaling model — screen it with the silica and cooling-water tools, which is what actually decides how far the brine loop can be pushed. The fouling that sets the CIP interval on the RO stage is likewise a separate calculation (the fouling and CIP tool), not part of this steady-state balance.
188 views 0 forks
- Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
- 6 unit operations modeled: RO, EDI, Brine MIX, Waste HEAT, MD, Cryst.
- Focus areas: Water reuse, Electrodialysis, EDI, Ultrapure water, ZLD.
- Thermodynamics
- PENG-ROBINSON
- Components
- water, nacl
- Unit operations
- ROEDIBrine MIXWaste HEATMDCryst
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("site-water-reuse-edi-polish")
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
Industrial water reuse: RO + membrane distillation to near-ZLD
A chemical-site water-reuse train of the kind large industrial water users build when the intake is salinising and freshwater is getting scarce: reverse osmosis makes reuse-grade water, the RO concentrate is warmed by low-grade waste heat and pushed further by membrane distillation, and the MD concentrate is crystallised to salt. Overall water recovery comes out at 94.9%. The point of the flowsheet is why MD is there at all. RO is pressure-driven, so its ceiling is osmotic pressure — and this feed hits that wall hard: at 25 bar the same 75% recovery is infeasible, and the model says so with a number rather than a shrug (osmotic pressure 27.2 bar against a 25 bar feed, a structured SPEC_THERMODYNAMICALLY_IMPOSSIBLE error, which is why the feed here runs at 45 bar). Membrane distillation is driven by a vapour-pressure difference instead, so only vapour crosses and there is no osmotic ceiling at all: it takes the RO concentrate from 2.0 mol% to 9.7 mol% salt, recovering 81% of the water RO had to leave behind, and its distillate is solvent-only. The waste-heat coupling is not decoration. At the RO concentrate's own 25 C the MD flux is about 1 kg/m2/h and the module is pointless; warmed to 60 C it runs at 21.5 kg/m2/h, inside the 10-50 kg/m2/h band real DCMD modules achieve. That is the entire commercial case for MD — it is a heat-driven process, so it is only cheap where low-grade heat is already being vented.
Ethylene glycol plant: closed water loop + multi-effect evaporator dehydration
The water-integrated evolution of the fiber-grade MEG plant. Two changes turn the once-through EO/glycol chain into a real, water-economical process: (1) the recovered process water is RECYCLED back to the hydration reactors through a purge splitter. A pure recycle is inventory-singular (reactors are keyed on the shrinking EO pool, so water consumption is fixed regardless of how much water circulates), so an 8% purge pins the loop and makes it well-posed, cutting fresh water makeup from 10 to ~1.75 mol/s (a >80% reduction). (2) The bulk dehydration is done by a genuine TWO-EFFECT EVAPORATOR TRAIN (forward-feed, real steam economy: effect 1's low-temperature vapor is the heating steam for effect 2) doing rigorous (P,H)-flash water removal, rather than a single spec-based split. The recycle converges through the solver's Wegstein tearing (~15 outer passes) and MEG still comes out fiber-grade (>=99.9%). HONEST SCOPE: the reaction chemistry is rigorous stoichiometry (real atom balances, ~90/9/1 selectivity) and the evaporators are real energy-balanced flash effects — but flash evaporation CANNOT reach glycol dryness without slipping glycol into the overhead vapor (MEG has a real vapor pressure at 90 C), so the evaporators run cool and only pre-concentrate. An overhead knockout returns the ~1-2% slipped glycol to the product (no yield loss), and a final vacuum-refining polish (still a spec-based split, representing the refluxed dehydration column a flash cannot replicate) removes the last water. This mirrors a real MEG plant's multi-effect-evaporator + vacuum-refining dehydration section. The product columns remain spec-based (a converged 99.9% fiber-grade MEG column is not tractable under Peng-Robinson here — the MEG/DEG relative volatility is too narrow for the wide-boiling MESH path).
Pressure-swing ethanol dehydration (Gᴱ mixing rule)
Ethanol–water is the classic azeotrope, and pressure-swing distillation breaks it without an entrainer: the azeotrope moves with pressure, so a low-pressure column and a high-pressure column pass each other's azeotropic distillate and each recovers a pure product. The whole process only works if the property package tracks that shift — which is exactly where a conventional package choice falls between two chairs. This flowsheet runs the high-pressure column at 15 bar on pr-mhv1: Peng-Robinson with an MHV1 excess-Gibbs mixing rule, so the cubic equation of state gets its attraction parameter from NRTL's excess Gibbs energy instead of from a single binary interaction constant. Switch the thermo package (Solver menu) and compare the predicted azeotrope: | package | 1 atm | 15 bar | valid at 15 bar? | |---|---|---|---| | NRTL | 0.891 | 0.802 | no — γ-φ is a low-pressure formulation (~10 bar) | | Peng-Robinson (kij) | 0.586 | 0.613 | yes, but a kij cannot represent this azeotrope | | pr-mhv1 | 0.949 | 0.798 | yes | (mole fraction ethanol; the repo's DECHEMA-validated 1 atm anchor is 0.894.) At 15 bar pr-mhv1 lands within 0.005 of NRTL while remaining a genuine equation of state, whereas plain Peng-Robinson is off by ~0.19 and puts the azeotrope in the wrong place entirely. Selecting nrtl here also trips the applicability guard, which warns that the activity model is past its pressure ceiling and names the fix. The flowsheet demonstrates the mechanism on itself. Drop the column pressure to 1 atm and re-run, changing nothing else: the solve fails with SPEC_THERMODYNAMICALLY_IMPOSSIBLE, because at atmospheric pressure the requested bottoms purity sits beyond the azeotrope and no column can reach it. At 15 bar the same specification converges and the bottoms leaves at x_EtOH ≈ 0.924 — past the atmospheric azeotrope of 0.894, which is precisely the composition an atmospheric column cannot cross.
Phosphoric acid concentration: steam evaporator baseline (29 → 54% P2O5)
The conventional wet-process step, at the scale of one Jorf Lasfar concentration line: 138 t/h of 29% P₂O₅ acid, heated by 3.5 bar LP steam in a graphite exchanger and flashed under vacuum (0.12 bar) to 54% P₂O₅, evaporating 64.0 t/h of water. The steam feed is tuned so the concentrate lands on 54.0 wt% P₂O₅ (the user variable p2o5_wt_product), which takes 73.6 t/h of steam — 1.84 t steam per tonne of P₂O₅, 44.5 MW of condensing duty. That is the single-effect ideal; the published plant benchmark of ~2.8 t/t carries exchanger approach, losses and off-design operation on top. The point of the number here is what it costs the site: at Jorf Lasfar this steam is a co-product of the exothermic sulfuric-acid plants, which is the fact any electric alternative has to beat. Compare the two sibling examples, phosphoric-acid-concentration-microwave and -hybrid. Model scope, stated up front. The acid runs on the brine package, which carries phosphoric acid as a non-volatile molecular solute with its CRC liquid heat capacity (145 J/mol/K) — the streams show the real H₃PO₄/water compositions and the acid's sensible heat is in the balance — and a water activity fitted to measured data: binary boiling points (Li 2017, NIST TRC ThermoML Archive) and 20 °C vapour pressures up to 85 wt% (Kirk-Othmer), with a held-out error of 2% in water activity. The boiling-point elevation is therefore the fitted one, 23.5 K at 54% P₂O₅ and 0.12 bar (the ideal, Raoult's-law activity this replaced gave 9 K). Checked against a boiling point the fit never saw, it puts 85 wt% acid at 164 °C at atmospheric pressure against a measured 158 °C. Above 18 mol% acid the temperature dependence rests on one coefficient and that single check, so read the concentrate temperature to within a few kelvin. No heat of dilution is carried (about 1.5% of the latent duty at 54% P₂O₅). The 320 K feed stands in for a hotter plant feed. The acid heated at 1 atm here partly boils in the exchanger (the model's fitted boiling point at 1 atm); the real acid is kept liquid under static head and flashes in the chamber.
Phosphoric acid concentration: microwave heating (29 → 54% P2O5)
The same duty with the steam exchanger replaced by volumetric microwave heating: 44.5 MW absorbed in the acid, then the same vacuum flash to 54.0 wt% P₂O₅ and the same 64.0 t/h of water removed — the microwave does not remove water, it supplies the latent heat. At a 65% wall-plug magnetron efficiency (915 MHz industrial units reach ~85%) that is 68.5 MW of electricity, 1,710 kWh per tonne of P₂O₅ (1,310 at 85%). The comparison that decides it is the energy carrier, not the heating mechanism: at Jorf Lasfar the baseline's 1.84 t/t of steam is a co-product of the sulfuric-acid plants, and the site turns that steam into electricity at roughly 30%. Sending it through a turbine, a magnetron and back into the acid delivers about a fifth of the heat the exchanger delivers directly (0.30 × 0.65 ≈ 0.2), so on this site the microwave route needs roughly five times the primary steam energy of the baseline. Where microwaves do earn their place is not here but at the superphosphoric end (>70% P₂O₅, viscous, fouling, where the recent literature targets them), and an electric route for the 29-54 step should be compared against mechanical vapour recompression, which reuses the latent heat at a coefficient of performance of 10-30. Sweep the absorbed duty to see the product concentration and the electricity follow it. Model scope, stated up front. The acid runs on the brine package, which carries phosphoric acid as a non-volatile molecular solute with its CRC liquid heat capacity (145 J/mol/K) — the streams show the real H₃PO₄/water compositions and the acid's sensible heat is in the balance — and a water activity fitted to measured data: binary boiling points (Li 2017, NIST TRC ThermoML Archive) and 20 °C vapour pressures up to 85 wt% (Kirk-Othmer), with a held-out error of 2% in water activity. The boiling-point elevation is therefore the fitted one, 23.5 K at 54% P₂O₅ and 0.12 bar (the ideal, Raoult's-law activity this replaced gave 9 K). Checked against a boiling point the fit never saw, it puts 85 wt% acid at 164 °C at atmospheric pressure against a measured 158 °C. Above 18 mol% acid the temperature dependence rests on one coefficient and that single check, so read the concentrate temperature to within a few kelvin. No heat of dilution is carried (about 1.5% of the latent duty at 54% P₂O₅). The 320 K feed stands in for a hotter plant feed. Microwave penetration depth (about a centimetre in a conductive acid at 2.45 GHz) and the HF attack on quartz windows are equipment questions this model does not carry.
Phosphoric acid concentration: microwave-then-steam hybrid (29 → 42 → 54% P2O5)
The transition path the concept proposes: microwaves take the acid from 29 to 42% P₂O₅ in a first vacuum flash (29.6 MW absorbed), a pump returns the 42% acid to atmospheric pressure, and the existing steam exchanger and second flash finish it to 54.0 wt% — 24.2 t/h of steam (0.61 t/t) plus 1,140 kWh of electricity per tonne of P₂O₅ at 65% magnetron efficiency, the same 64.0 t/h of water removed in total. The split is not free: two-thirds of the latent duty moved from a co-product steam to purchased electricity, and nothing about the second stage got easier. What a hybrid does buy is a pilot that can be run beside the existing evaporator without betting the line on it, and the freedom to put the microwave stage where it has a case — the viscous, fouling end — rather than on the dilute feed. Compare phosphoric-acid-concentration-steam and -microwave. Model scope, stated up front. The acid runs on the brine package, which carries phosphoric acid as a non-volatile molecular solute with its CRC liquid heat capacity (145 J/mol/K) — the streams show the real H₃PO₄/water compositions and the acid's sensible heat is in the balance — and a water activity fitted to measured data: binary boiling points (Li 2017, NIST TRC ThermoML Archive) and 20 °C vapour pressures up to 85 wt% (Kirk-Othmer), with a held-out error of 2% in water activity. The boiling-point elevation is therefore the fitted one, 23.5 K at 54% P₂O₅ and 0.12 bar (the ideal, Raoult's-law activity this replaced gave 9 K). Checked against a boiling point the fit never saw, it puts 85 wt% acid at 164 °C at atmospheric pressure against a measured 158 °C. Above 18 mol% acid the temperature dependence rests on one coefficient and that single check, so read the concentrate temperature to within a few kelvin. No heat of dilution is carried (about 1.5% of the latent duty at 54% P₂O₅). The 320 K feed stands in for a hotter plant feed.