Formula masses are summed from MOLAR_MASS_G_PER_MOL, including
waters of hydration, and saltIonPpmPerGramPerLitre derives the
per-gram ion yields from them. None of the values are copied from a table.
Two entries need a note:
Calcium chloride comes in two forms, and homebrew suppliers label them
inconsistently. The dihydrate (the usual damp, clumping "calcium chloride"
in a jar) yields 272.6 ppm Ca per g/L, and the anhydrous prills yield
361.1 ppm, which is 32 % more calcium and chloride per gram. Picking the
wrong one gives no visible error, so the form is part of the salt's id.
Chalk is modelled as dissolving completely by CaCO₃ + CO₂ + H₂O → Ca²⁺ + 2 HCO₃⁻, which makes "1 g/L of chalk = 1000 ppm alkalinity as CaCO₃"
consistent with the definition of alkalinity. Some older calculators use
one bicarbonate per chalk, which halves its alkalinity. In a real mash tun
chalk barely dissolves. See SaltAddition.dissolvedFraction and the
warning applySalts raises.
The brewing salt table.
Formula masses are summed from MOLAR_MASS_G_PER_MOL, including waters of hydration, and saltIonPpmPerGramPerLitre derives the per-gram ion yields from them. None of the values are copied from a table.
Two entries need a note:
CaCO₃ + CO₂ + H₂O → Ca²⁺ + 2 HCO₃⁻, which makes "1 g/L of chalk = 1000 ppm alkalinity as CaCO₃" consistent with the definition of alkalinity. Some older calculators use one bicarbonate per chalk, which halves its alkalinity. In a real mash tun chalk barely dissolves. See SaltAddition.dissolvedFraction and the warning applySalts raises.