Stoichiometric dissociation constants

The alkalinity solvers need values for the stoichiometric dissociation constant for each equilibrium that is active over the titration pH range in order to solve for alkalinity. These are collated in a dict called eqConstants, to conveniently pass this information into the solver functions. The dict can be generated using the function of the same name in the dissociation module, or you can assemble your own manually.

All stoichiometric equilibrium constants are on the Free pH scale (as defined by ZW01), and are valid only at a pressure of ~1 atm, unless otherwise specified.

eqConstants: dict of equilibrium constants

Assemble a dict of equilibrium constants on the Free pH scale, as required by other Calkulate functions.


eqConstants = calk.dissociation.eqConstants(tempK, psal, concTotals, WhichKs=10,
    WhoseKSO4=1, WhoseKF=1)

The concTotals dict input, generated by the function of the same name in the concentrations module (see Total concentrations), must contain at least the total sulfate and fluoride concentrations (with keys S and F respectively), which are required to convert all the equilibrium constants to the Free pH scale.

The output eqConstants dict contains the following constants, for dissociation of:

concTotals = {
    'B': <boric acid>,
    'C1': <first carbonic acid>,
    'C2': <second carbonic acid>,
    'F': <hydrofluoric acid>,
    'P1': <first phosphoric acid>,
    'P2': <second phosphoric acid>,
    'P3': <third phosphoric acid>,
    'S': <bisulfate ion>,
    'Si': <orthosilicic acid>,
    'NH3': <ammonia>,
    'H2S': <hydrogen sulfide>,

The stoichiometric dissociation constants are calculated by PyCO2SYS. Inputs WhichKs and WhoseKF are the same as PyCO2SYS inputs K1K2CONSTANTS and KFCONSTANT respectively. Input WhoseKSO4 corresponds to the PyCO2SYS input KSO4CONSTANTS: a value of 1 for WhoseKSO4 is the same as options 1 and 3 for KSO4CONSTANTS, while a value of 2 is the same as options 2 and 4.