Battery black-mass recycling: leach -> SX -> BPED -> LiOH crystallization
Spent-battery black mass (an NMC111-like LiNi1/3Mn1/3Co1/3O2 lump, sulfuric acid-leached at a screening-level yield/stoichiometry — see acid_leach.py's stated scope) dissolves into a pregnant leach solution carrying Li/Co/Ni/Mn. A 15-stage D2EHPA solvent-extraction circuit (the same real pH-isotherm chemistry the co-ni-solvent-extraction example uses, operated at pH 7.5 -- above every curated Co/Ni/Mn pH50 -- so all three transition metals extract into the kerosene organic phase while Li, which has no curated D2EHPA isotherm, stays in the aqueous raffinate untouched) purifies the liquor before it ever reaches the lithium-recovery chemistry. A Faraday's-law bipolar-membrane electrodialysis (BPED) cell (the same real electrochemistry as the direct-lithium-extraction example, sized up for this liquor's larger Li flow) converts Li+ to LiOH, which an MSMPR crystallizer takes to battery-grade LiOH solid. Every step reuses an already-real, independently-tested unit op (acid_leach.py, extraction_column.py, bped.py, crystallizer.py) chained into the one train none of them had been assembled into before. Honesty notes: no acid-consumption or neutralization mass balance between the strongly-acidic leach liquor and the pH-7.5 SX stage (the pH is an operator-set circuit condition, the same simplification co-ni-solvent-extraction already makes, not a titration model); the recovered Co/Ni/Mn organic concentrate leaves as a single product stream rather than being split into separate refined metal products (a further SX/strip train, out of scope here).
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.