Chlor-alkali by membrane-cell electrolysis (100 kt/a Cl2, 50 wt-% caustic soda, hydrogen)

Bipolar membrane-cell electrolysis of recirculated rock-salt brine to dry chlorine gas, 50 wt-% caustic soda and hydrogen, with brine purification, dechlorination, chlorine drying and compression and double-effect caustic evaporation. Concept stage, balanced PFD and a preliminary unallocated gate-to-gate inventory.

Research outputNot engineering advice and not an approved design: do not use it for construction, operation or safety decisions. What this means

Overview

Rock salt is dissolved in return brine and purified (soda ash and caustic precipitation, filtration, chelating ion exchange), acidified, heated and fed to bipolar membrane electrolysers at 6.0 kA/m2 and 3.0 V (EU BREF 2014). The cells are balanced by cheme's Faraday model with a specified voltage and current efficiency (0.965; the rest forms anodic oxygen), never a predicted one. The depleted brine is dechlorinated under vacuum and with sulfite, purged against sulfate and resaturated. Wet chlorine is cooled, dried with sulfuric acid and compressed to 400 kPa(a); hydrogen is cooled and blown to 140 kPa(a); the 32 wt-% catholyte is evaporated to 50 wt-%.

All values are concept estimates from an independent balance script whose inputs are sourced (EU BREF 2014) or assumed; electrolyte enthalpies are not modelled, so the duties outside the cells are first estimates. See DESIGN.md for every decision and gated step.

Capacity
100 kt/a dry chlorine gas (12.5 t/h contained Cl2), ASSUMED
Operation
8,000 h/a
Location
generic (not chosen)
Engineering gates
Concept and feasibility (no results yet)
Maintainers
Artur Schweidtmann
Design basis and assumptions (3)
  • D-001 boundary: salt to dry compressed Cl2, 50 wt-% NaOH and wet low-pressure H2; no liquefaction, no HCl or hypochlorite production, no H2 drying
  • D-006 the balance is a specified-split model (scripts/balance.py); electrolyte enthalpies are not modelled
  • Construction, transport and end of life are outside the preliminary LCI (D-013)

From process/design-basis.yaml.

Engineering model

Loading the drawing…
Drawing of the process (preview)Open the engineering model

The interactive model (drawings, streams, 3D) is made for larger screens.

Snapshot of c3ab348, cheme-as-code 1.6.0.

What goes in and out

In

  • Sodium chlorideFeedstockfeed:SALT: rock salt, about 98.8 wt-% NaCl, 1.70 kg/kg chlorine gas
  • Sodium carbonateFeedstockfeed:NA2CO3: soda ash for brine treatment
  • Hydrogen chlorideFeedstockfeed:HCL: hydrochloric acid 32 wt-%, counted by mass of the solution
  • Sodium sulfiteFeedstockfeed:NA2SO3: sodium sulfite for brine dechlorination
  • Sulfuric acidFeedstockfeed:H2SO4: sulfuric acid 98 wt-% for chlorine drying
  • WaterFeedstockMake-up process water to the salt saturator, 0.93 kg/kg Cl2; demineralised water (feed:DMW, 1.12 kg/kg) to the catholyte and resin rinse

Out

  • ChlorineMain productDry chlorine gas to the consumer (400 kPa(a))
  • Sodium hydroxideCo-productCaustic soda 50 wt-% to storage, counted by mass of the solution
  • HydrogenCo-product29.5 g H2 per kg Cl2, water-saturated at 35 degC, 140 kPa(a)
  • WastewaterWasteBrine purge and resin regeneration effluent, 0.49 kg/kg Cl2 with 57 g NaCl and 2.9 g Na2SO4, dechlorinated and neutral
  • Carbon dioxideEmission2.4 g/kg Cl2 from neutralising the excess soda ash in the feed brine (mineral carbon)

Utilities: Electricity (2.60 kWh/kg Cl2: rectifiers 2.42 (cells 3.0 V, CE 0.965, rectifier 0.97) and auxiliaries 0.18), Steam (MP steam 1000 kPa(a): 0.70 kg/kg Cl2 for caustic evaporation and 0.28 kg/kg for feed brine heating), Cooling water (0.87 kWh/kg Cl2 removed, 25/35 degC (ASSUMED)), Chilled water (Second wet chlorine cooler stage, 0.012 kWh/kg Cl2)

Show in the process graph

Reactions

IdAs writtenReactionOther processes
CA_PRECIPCaSO4 + Na2CO3 → CaCO3 + Na2SO4 · Calcium removal with soda ashCaSO4+Na2CO3givesCaCO3+Na2SO4
CARBONATE_NEUTNa2CO3 + 2 HCl → 2 NaCl + H2O + CO2 · Neutralisation of excess carbonate with hydrochloric acidNa2CO3+2HClgives2NaCl+H2O+CO2
CHLORALKALI2 NaCl + 2 H2O → Cl2 + H2 + 2 NaOH · Chlor-alkali electrolysis (overall cell reaction)2NaCl+2H2OgivesCl2+H2+2NaOH
HYDROXIDE_NEUTNaOH + HCl → NaCl + H2O · Neutralisation of caustic and hydrochloric acidNaOH+HClgivesNaCl+H2O2 other processes
MG_PRECIPMgCl2 + 2 NaOH → Mg(OH)2 + 2 NaCl · Magnesium removal with causticMgCl2+2NaOHgivesMg(OH)2+2NaCl
SULFITE_DECHLORNa2SO3 + Cl2 + 2 NaOH → Na2SO4 + 2 NaCl + H2O · Chemical dechlorination with sulfite in alkaline brineNa2SO3+Cl2+2NaOHgivesNa2SO4+2NaCl+H2O1 other process
WATER_SPLIT2 H2O → 2 H2 + O2 · Anodic oxygen from back-migrated hydroxide (net water electrolysis)2H2Ogives2H2+O21 other process

Each reaction's page has the conversion, heat of reaction, catalyst and sources this process states, next to those of other processes with the same reaction. All reactions

Life cycle assessment

Footprint not publishedThe process changed since the LCA was last run; its values return once it is run again. Method, functional unit and inventory are below.
Method and data
Goal
Preliminary gate-to-gate life cycle inventory of membrane-cell chlor-alkali electrolysis for the concept stage: the foreground exchanges of the balanced flowsheet (D-006) per kg of dry chlorine gas, with caustic soda and hydrogen as co-products (mass of the contained products, D-013), ready to be linked to background datasets later. No impact assessment is claimed.
Functional unit
1 kg Dry chlorine gas (1 kg chlorine)
Boundary
gate-to-gate
Allocation
shares
Characterisation
Factors kept with the process · GWP100
Data quality
Published factors
Result
partial screening carbon footprint · 12 data gaps

Inventory per 1 kg Dry chlorine gas (34 flows)

FlowPhaseDirectionQuantityUnitProvenance
Rock saltoperationinput0.7962kgassumed
Make-up process wateroperationinput0.4327kgassumed
Demineralised wateroperationinput0.5232kgassumed
Soda ashoperationinput0.003581kgassumed
Hydrochloric acid 32 wt-%operationinput0.01578kgassumed
Sodium sulfiteoperationinput0.0001281kgassumed
Sulfuric acid 98 wt-%operationinput0.008884kgassumed
Electric power (AC, grid)operationinput1.21kWhassumed
MP steam 1000 kPa(a)operationinput0.2553kWhassumed
Dry chlorine gas to the consumer (400 kPa(a))operationoutput1.008kgassumed
Caustic soda 50 wt-% to storageoperationoutput2.24kgassumed
Hydrogen to the consumer or fuel (140 kPa(a))operationoutput0.0434kgassumed
Spent sulfuric acid to off-site useoperationoutput0.01155kgassumed
Waste water to treatmentoperationoutput0.2261kgassumed
Brine filter cake to landfilloperationoutput0.01021kgassumed
Feed brine acidification vent to airoperationoutput0.0011kgassumed
Cooling water returnoperationoutput0.4026kWhassumed
Chilled water returnoperationoutput0.005409kWhassumed
CO2 to the environmentoperationoutput0.0011kgassumed
CaCO3 to the environmentoperationoutput0kgassumed
CaSO4 to the environmentoperationoutput0kgassumed
Cl2 to the environmentoperationoutput0kgassumed
H2 to the environmentoperationoutput0kgassumed
H2O to the environmentoperationoutput0.1979kgassumed
HCl to the environmentoperationoutput0kgassumed
MgCl2 to the environmentoperationoutput0kgassumed
MgOH2 to the environmentoperationoutput0kgassumed
Na2CO3 to the environmentoperationoutput0kgassumed
Na2SO3 to the environmentoperationoutput0kgassumed
Na2SO4 to the environmentoperationoutput0.00136kgassumed
NaCl to the environmentoperationoutput0.02691kgassumed
NaOH to the environmentoperationoutput0kgassumed
O2 to the environmentoperationoutput0kgassumed
SiO2 to the environmentoperationoutput0kgassumed

Computed by ChemE-as-Code from lca/README.md, lca/dataset.yaml, lca/factors.yaml, lca/gaps.csv, lca/inventory.csv, lca/lca.yaml, lca/mappings.yaml, lca/results.csv, lca/results.md.

In the open LCI database (cheme-as-code-atlas-preview-c3ab348) as Dry chlorine gas to the consumer (400 kPa(a)); Sodium hydroxide, Caustic soda 50 wt-% to storage; Hydrogen to the consumer or fuel (140 kPa(a)).

Download it for Brightway, openLCA and other tools.

In the LCI database: system model, datasets and KPIs against the benchmarks

In the LCI database

System model
attributional, cut-off (methodology 1.1.0) · 1 exchange left out under it
Allocation
shares (deviation, from study) · product:CL2 46.5 %, product:H2 1.4 %, product:NAOH 52.1 %
Allocation findings
none
Change report
Not available: this build has no change report against an earlier release.
Dataset pages
Dry chlorine gas to the consumer (400 kPa(a)) · Hydrogen to the consumer or fuel (140 kPa(a)) · Sodium hydroxide, Caustic soda 50 wt-% to storage

KPI benchmark positions: not available (no benchmarked KPI for this process's datasets).

Maturity and review

Design maturity Concept (claimed): An idea or first flowsheet; numbers are rough. Concept PFD with closed mass, component and element balances in every block and step (cheme validate, cheme process streams; reactive extents agree with the elements). The electrolysers are checked by cheme process cell (specified 3.0 V, CE 0.965, side reaction O2): DC 2 351 kWh/t Cl2, AC 2 423 kWh/t with rectifier losses, inside the EU BREF 2014 Table 3.10 bipolar range 2 279-2 865. The other units are specified values of scripts/balance.py; energy balances outside the cell are not evaluable in core (no property package for NaCl/NaOH electrolytes). Consumptions per t Cl2 (salt 1.71 t, steam 0.98 t, HCl 10.9 kg, Na2CO3 7.7 kg, H2SO4 18.7 kg, purge 0.33 m3) fall inside the BREF 2014 Chapter 3 ranges, which is a plausibility check, not a validation. Main products and feeds are listed under chemistry with their chemicals registry entries (issue #251). cheme maturity reaches no level yet: the feed flows are design choices (ASSUMED, not sourced or owner-given) and the treatment steps are specified values. Not reviewed.

Calculation maturity, from the checked evidenceNot assessed

The process has no maturity report (cheme maturity, checks/maturity.json), so no calculation maturity is established.

No level shownThe design maturity (Concept) is the manifest's claim, not evidence. A level appears here once the process's repository holds a current report from cheme maturity --write.

Artifact completeness

Which deliverables exist. They never raise a calculation maturity level: a drawing from unchecked numbers is still unchecked.

Not reported without a maturity report.

Independent review

Not independently reviewed

No independent engineering review yet. Automated checks passing is not a review.

Set by people only. Reaching a calculation maturity level or passing automated checks is not an independent review or an approval.

Where the evidence comes from
Report
processes/chlor-alkali-1/checks/maturity.json (not in the library)
Design basis
process/design-basis.yaml
Method
How ChemE-as-Code checks the levels (requirement by requirement)

Open items

Sources

Engineering project
Chlor-alkali (membrane cell) · cheme-as-code>=0.8
Library version
c3ab348 (process last changed in c3ab348)
Drawings rendered by
cheme 1.6.0 (pyDEXPI 2.1.0)
Data
Catalog record (JSON) · CC-BY-4.0
Files
View the files on GitHub · change history and authors

References

  • European Commission JRC (2014) Best Available Techniques (BAT) Reference Document for the Production of Chlor-alkali (Brinkmann, Giner Santonja, Schorcht, Roudier, Delgado Sancho) · doi:10.2791/13138
  • Cox, J.D., Wagman, D.D., Medvedev, V.A. (1989) CODATA Key Values for Thermodynamics. Hemisphere, New York

How to cite

For the data, cite the Process Atlas paper; for the platform that builds and checks it, the ChemE-as-Code paper.

Schweidtmann, A. M. & Weber, J. M. (2026, in preparation). Process Atlas: an open, git-native, reproducible library and life cycle inventory of chemical processes (working title).

For this process: "Chlor-alkali by membrane-cell electrolysis (100 kt/a Cl2, 50 wt-% caustic soda, hydrogen)", ChemE-as-Code process library, version c3ab348.

BibTeX
@unpublished{schweidtmann_process_atlas,
  author = {Schweidtmann, Artur M. and Weber, Jana M.},
  title = {{Process Atlas: an open, git-native, reproducible library and life cycle inventory of chemical processes (working title)}},
  year = {2026},
  url = {https://atlas.cheme-as-code.org},
  note = {in preparation}
}

Schweidtmann, A. M. (2026, in preparation). ChemE-as-Code: An Open-Source Platform for AI-Accelerated Chemical Process Engineering (working title).

BibTeX
@unpublished{schweidtmann_cheme_as_code,
  author = {Schweidtmann, Artur M.},
  title = {{ChemE-as-Code: An Open-Source Platform for AI-Accelerated Chemical Process Engineering (working title)}},
  year = {2026},
  url = {https://cheme-as-code.org},
  note = {in preparation}
}