MaximaLabs

Neutralizer (acid/base titration) simulation

2 inlets (liquor + reagent supply) -> neutralized liquor, unused reagent

Governing equations

The exact equations the solver works for a neutralizer (acid/base titration) — the same math shown in the app's "Theory" panel, not a black box.

[H+]−[OH−]+∑ici zi([H+])=0[\mathrm{H^+}] - [\mathrm{OH^-}] + \sum_i c_i\,z_i([\mathrm{H^+}]) = 0
pH(n˙reagent)=pHtarget(solved for the dose)\mathrm{pH}(\dot n_{reagent}) = \mathrm{pH}_{target}\quad(\text{solved for the dose})
Q=Hliquor+Hreagent−Hmix,H=∑ici ∑jΔHdiss,j α>j+ΔHw([OH−]−cSB)Q = H_{liquor} + H_{reagent} - H_{mix},\quad H = \sum_i c_i\,\sum_j \Delta H_{diss,j}\,\alpha_{>j} + \Delta H_w([\mathrm{OH^-}] - c_{SB})
Fout h(Tout)=∑Fin hin+QF_{out}\,h(T_{out}) = \sum F_{in}\,h_{in} + Q
cic_i
analytical molarity of acid/base i [mol/L], from the water-flow volume
ziz_i
net charge per mole of i at this [H+] (its speciation)
pHtarget\mathrm{pH}_{target}
the setpoint the reagent dose is solved to
QQ
heat of neutralization released [W]
HH
proton-transfer enthalpy of a solution relative to fully protonated acids, neutral weak bases and un-ionised water [J/s]
ΔHdiss,j\Delta H_{diss,j}
dissociation enthalpy of step j (the van't Hoff slope x R)
α>j\alpha_{>j}
fraction of the solute past dissociation step j
ΔHw\Delta H_w
water ionisation enthalpy, 55.8 kJ/mol
cSBc_{SB}
OH- delivered by strong bases [mol/L]
FF
molar flow [mol/s]
hh
molar enthalpy from the property package [J/mol]

Parameters

Acid/base titration on the aqueous speciation (hcl, hno3, h2so4, phosphoric_acid, ammonia, naoh, koh, lioh, lime = Ca(OH)2, acetic_acid, co2); inlets in order liquor then reagent (or an edge into port 'reagent') and outlets in order out then excess (the unused reagent); optional target_ph [-, the reagent dose is SOLVED by titration and drawn from the reagent inlet, which is the supply; a supply too small is dosed whole and reported unconverged with reagent_required_mol_s; blank = the whole reagent is mixed and the pH reported], temperature [K, outlet held here and duty reports the heat to add, negative = cooling; blank = adiabatic], species_map {component: solute id}, water_component [default 'water'], solution_density_kg_m3 [kg/m^3, default 1000], pressure [Pa]; heat of neutralization from the equilibria's own van't Hoff enthalpies (55.8 kJ/mol for H+ + OH- and 52.2 kJ/mol for NH3 + H+); the outlet carries the analytical totals of both inlets (exact component balance) and the salt formed is reported from the speciation (ammonium_mol_s, sulfate_mol_s, dihydrogen_phosphate_mol_s ...); not modelled: heats of dilution (metal hydrolysis and NH3 volatilisation neither); gypsum supersaturation is reported but not removed

Example flowsheets that use it

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