Version: dev

HenrysLawTemperature

Temperature-dependent Henry's law equilibrium for gas–liquid partitioning of soluble atmospheric species. Computes the temperature-corrected Henry's law constant H_T via the van't Hoff equation (Eq. 7.5), the aqueous concentration C_aq via Eq. 7.3, and the liquid-water distribution diagnostics w_L (Eq. 7.1), f_A (Eq. 7.7), and X_aq (Eq. 7.9). From Seinfeld & Pandis (2006), Chapter 7, Section 7.2.

.esm schema
1.0.0
Source
components/aerosol/henrys_law/henrys_law_temperature.esm

Description

Temperature-dependent Henry’s law equilibrium for gas–liquid partitioning of soluble atmospheric species. Computes the temperature-corrected Henry’s law constant H_T via the van’t Hoff equation (Eq. 7.5), the aqueous concentration C_aq via Eq. 7.3, and the liquid-water distribution diagnostics w_L (Eq. 7.1), f_A (Eq. 7.7), and X_aq (Eq. 7.9). From Seinfeld & Pandis (2006), Chapter 7, Section 7.2.

Reference

Seinfeld, J. H. and Pandis, S. N. (2006) Atmospheric Chemistry and Physics, 2nd Edition, Chapter 7, Eqs. 7.1, 7.3, 7.5, 7.7, 7.9 — temperature-dependent Henry’s law equilibrium. Migrated from Aerosol.jl src/henrys_law.jl HenrysLawTemperature (esm-qs4).

_source_ref: Aerosol.jl@c8c640bb636b22f2425460e9ed5cba50793bfee1:src/henrys_law.jl:155

Upstream HenrysLawTemperature(; name=:HenrysLawTemp) is an MTK @component with three @constants (R_gas=8.314, T_ref=298.0, rho_water_inv=1e-6), three @parameters (H_298, dH_diss, L), and seven @variables (T, p_A, C_aq, H_T, w_L, f_A, X_aq). It carries five algebraic equations: • Eq. 7.5: H_T ~ H_298 * exp((dH_diss/R_gas) * (1/T_ref - 1/T)) • Eq. 7.3: C_aq ~ H_T * p_A • Eq. 7.1: w_L ~ rho_water_inv * L • Eq. 7.7: f_A ~ H_T * R_gas * T * w_L • Eq. 7.9: X_aq ~ f_A / (1 + f_A)

Observability classification: observed-only — all five outputs (H_T, C_aq, w_L, f_A, X_aq) are given by algebraic equations in terms of the two input variables (T, p_A), three parameters (H_298, dH_diss, L), and three constants. There are no differential states.

ESM representation: the purely-algebraic convention is used (matching components/aerosol/size/marine.esm and components/atmospheric_deposition/dry_aerosol.esm). The two MTK @variables supplied externally (T, p_A) migrate as type: parameter; the three MTK @parameters (H_298, dH_diss, L) also migrate as type: parameter; the three MTK @constants (R_gas, T_ref, rho_water_inv) migrate as type: parameter with fixed evaluated defaults (ESM has no constant variable type). Each of the five MTK outputs (H_T, C_aq, w_L, f_A, X_aq) migrates as a type: observed variable with its defining algebraic expression; the equations array is empty. The runner evaluates observed variables in topological order (H_T, w_L, then C_aq and f_A, then X_aq).

Constant values: R_gas = 8.314 J/(mol·K) (gas constant), T_ref = 298.0 K (reference temperature for Henry’s law constants), rho_water_inv = 1.0e-6 m³/g (reciprocal liquid water density used to convert LWC in g/m³ to the dimensionless volume ratio w_L).

Physical interpretation: H_T (Eq. 7.5) is the van’t Hoff correction of H_298 to temperature T; negative dH_diss (exothermic dissolution) means higher T reduces H_T (less soluble at higher temperature). C_aq (Eq. 7.3) is the equilibrium aqueous concentration. w_L (Eq. 7.1) is the liquid water volume ratio. f_A (Eq. 7.7) and X_aq (Eq. 7.9) are distribution diagnostics: f_A → 0 means nearly all species stay in the gas phase; X_aq → 1 means nearly all partitions into the aqueous phase.

Tolerance rationale (model-level rel=1e-9): purely algebraic system with no ODE integration. Equations involve multiplication, division, and a single exp call. Floating-point round-off is ~1e-15. rel=1e-9 leaves six orders of magnitude of headroom._

Parameters

NameUnitsDefaultDescription
R_gasJ/mol/K8.314Gas constant. Upstream MTK @constants entry R_gas = 8.314; migrated as a fixed-default parameter (ESM has no constant variable type).
T_refK298.0Reference temperature at which Henry’s law constants H_298 are tabulated. Upstream MTK @constants entry T_ref = 298.0; migrated as a fixed-default parameter.
rho_water_invm^3/g1e-06Reciprocal liquid water density used to convert liquid water content L (g/m³) to the dimensionless volume ratio w_L. Upstream MTK @constants entry rho_water_inv = 1.0e-6; migrated as a fixed-default parameter.
H_298mol/m^3/Pa1.0Henry’s law constant at the reference temperature T_ref = 298 K.
dH_dissJ/mol-26150.0Molar enthalpy of dissolution (heat of dissolution). Negative for exothermic dissolution (solubility decreases with increasing temperature). Default corresponds approximately to SO₂ (-6.25 kcal/mol × 4184 J/kcal).
Lg/m^30.3Liquid water content of the air parcel. Typical cloud value ~0.3 g/m³.
TK298.0Air temperature. Input parameter — the observed-only model computes H_T and derived quantities given T.
p_APa1.0Partial pressure of gas species A. Input parameter — the observed-only model computes C_aq given p_A.

Observed

NameUnitsDefaultDescription
H_Tmol/m^3/PaTemperature-corrected Henry’s law constant at temperature T (Eq. 7.5). H_T = H_298 * exp((dH_diss/R_gas) * (1/T_ref - 1/T)).
C_aqmol/m^3Aqueous concentration of species A in equilibrium with the gas phase at temperature T (Eq. 7.3). C_aq = H_T * p_A.
w_L1Liquid water mixing ratio — volume of liquid water per volume of air (dimensionless, Eq. 7.1). w_L = rho_water_inv * L.
f_A1Distribution factor — ratio of aqueous to gas-phase amount for species A (dimensionless, Eq. 7.7). f_A = H_T * R_gas * T * w_L.
X_aq1Aqueous fraction — fraction of total species A in the aqueous phase (dimensionless, Eq. 7.9). X_aq = f_A / (1 + f_A). Ranges from 0 (all gas phase) to 1 (all aqueous phase).

Observed expressions

$$ H_{T} = H_{298} \cdot e^{\frac{dH_{diss}}{R_{gas}} \cdot \left(\frac{1}{T_{ref}} - \frac{1}{T}\right)} $$

Temperature-corrected Henry’s law constant at temperature T (Eq. 7.5). H_T = H_298 * exp((dH_diss/R_gas) * (1/T_ref - 1/T)).

$$ C_{aq} = H_{T} \cdot p_{A} $$

Aqueous concentration of species A in equilibrium with the gas phase at temperature T (Eq. 7.3). C_aq = H_T * p_A.

$$ w_{L} = rho_{water\,inv} \cdot L $$

Liquid water mixing ratio — volume of liquid water per volume of air (dimensionless, Eq. 7.1). w_L = rho_water_inv * L.

$$ f_{A} = H_{T} \cdot R_{gas} \cdot T \cdot w_{L} $$

Distribution factor — ratio of aqueous to gas-phase amount for species A (dimensionless, Eq. 7.7). f_A = H_T * R_gas * T * w_L.

$$ X_{aq} = \frac{f_{A}}{1 + f_{A}} $$

Aqueous fraction — fraction of total species A in the aqueous phase (dimensionless, Eq. 7.9). X_aq = f_A / (1 + f_A). Ranges from 0 (all gas phase) to 1 (all aqueous phase).

Analyses

temperature_sweep

Sweep temperature from 270 K to 330 K to show how the temperature-corrected Henry’s law constant H_T varies with temperature via the van’t Hoff equation. Parameters use SO₂-like values: H_298 = 1.0, dH_diss = -26150.0 J/mol, L = 0.3 g/m³, p_A = 1.0 Pa.

Time span: 0.0 → 1.0

Swept over: T

Temperature-corrected Henry&rsquo;s law constant H_T vs temperature T — shows the van&rsquo;t Hoff exponential increase of solubility as temperature decreases (for exothermic dissolution, dH_diss < 0).

Raw .esm

Raw .esm JSON (this component)
{
  "reference": {
    "citation": "Seinfeld, J. H. and Pandis, S. N. (2006) Atmospheric Chemistry and Physics, 2nd Edition, Chapter 7, Eqs. 7.1, 7.3, 7.5, 7.7, 7.9 — temperature-dependent Henry's law equilibrium. Migrated from Aerosol.jl src/henrys_law.jl `HenrysLawTemperature` (esm-qs4).",
    "notes": "source_ref: Aerosol.jl@c8c640bb636b22f2425460e9ed5cba50793bfee1:src/henrys_law.jl:155\n\nUpstream `HenrysLawTemperature(; name=:HenrysLawTemp)` is an MTK `@component` with three `@constants` (R_gas=8.314, T_ref=298.0, rho_water_inv=1e-6), three `@parameters` (H_298, dH_diss, L), and seven `@variables` (T, p_A, C_aq, H_T, w_L, f_A, X_aq). It carries five algebraic equations:\n  • Eq. 7.5: H_T ~ H_298 * exp((dH_diss/R_gas) * (1/T_ref - 1/T))\n  • Eq. 7.3: C_aq ~ H_T * p_A\n  • Eq. 7.1: w_L ~ rho_water_inv * L\n  • Eq. 7.7: f_A ~ H_T * R_gas * T * w_L\n  • Eq. 7.9: X_aq ~ f_A / (1 + f_A)\n\nObservability classification: observed-only — all five outputs (H_T, C_aq, w_L, f_A, X_aq) are given by algebraic equations in terms of the two input variables (T, p_A), three parameters (H_298, dH_diss, L), and three constants. There are no differential states.\n\nESM representation: the purely-algebraic convention is used (matching components/aerosol/size/marine.esm and components/atmospheric_deposition/dry_aerosol.esm). The two MTK `@variables` supplied externally (T, p_A) migrate as `type: parameter`; the three MTK `@parameters` (H_298, dH_diss, L) also migrate as `type: parameter`; the three MTK `@constants` (R_gas, T_ref, rho_water_inv) migrate as `type: parameter` with fixed evaluated defaults (ESM has no constant variable type). Each of the five MTK outputs (H_T, C_aq, w_L, f_A, X_aq) migrates as a `type: observed` variable with its defining algebraic `expression`; the `equations` array is empty. The runner evaluates observed variables in topological order (H_T, w_L, then C_aq and f_A, then X_aq).\n\nConstant values: R_gas = 8.314 J/(mol·K) (gas constant), T_ref = 298.0 K (reference temperature for Henry's law constants), rho_water_inv = 1.0e-6 m³/g (reciprocal liquid water density used to convert LWC in g/m³ to the dimensionless volume ratio w_L).\n\nPhysical interpretation: H_T (Eq. 7.5) is the van't Hoff correction of H_298 to temperature T; negative dH_diss (exothermic dissolution) means higher T reduces H_T (less soluble at higher temperature). C_aq (Eq. 7.3) is the equilibrium aqueous concentration. w_L (Eq. 7.1) is the liquid water volume ratio. f_A (Eq. 7.7) and X_aq (Eq. 7.9) are distribution diagnostics: f_A → 0 means nearly all species stay in the gas phase; X_aq → 1 means nearly all partitions into the aqueous phase.\n\nTolerance rationale (model-level rel=1e-9): purely algebraic system with no ODE integration. Equations involve multiplication, division, and a single exp call. Floating-point round-off is ~1e-15. rel=1e-9 leaves six orders of magnitude of headroom."
  },
  "tolerance": {
    "rel": 1e-09
  },
  "variables": {
    "R_gas": {
      "type": "parameter",
      "units": "J/mol/K",
      "default": 8.314,
      "description": "Gas constant. Upstream MTK @constants entry R_gas = 8.314; migrated as a fixed-default parameter (ESM has no constant variable type)."
    },
    "T_ref": {
      "type": "parameter",
      "units": "K",
      "default": 298.0,
      "description": "Reference temperature at which Henry's law constants H_298 are tabulated. Upstream MTK @constants entry T_ref = 298.0; migrated as a fixed-default parameter."
    },
    "rho_water_inv": {
      "type": "parameter",
      "units": "m^3/g",
      "default": 1e-06,
      "description": "Reciprocal liquid water density used to convert liquid water content L (g/m³) to the dimensionless volume ratio w_L. Upstream MTK @constants entry rho_water_inv = 1.0e-6; migrated as a fixed-default parameter."
    },
    "H_298": {
      "type": "parameter",
      "units": "mol/m^3/Pa",
      "default": 1.0,
      "description": "Henry's law constant at the reference temperature T_ref = 298 K."
    },
    "dH_diss": {
      "type": "parameter",
      "units": "J/mol",
      "default": -26150.0,
      "description": "Molar enthalpy of dissolution (heat of dissolution). Negative for exothermic dissolution (solubility decreases with increasing temperature). Default corresponds approximately to SO₂ (-6.25 kcal/mol × 4184 J/kcal)."
    },
    "L": {
      "type": "parameter",
      "units": "g/m^3",
      "default": 0.3,
      "description": "Liquid water content of the air parcel. Typical cloud value ~0.3 g/m³."
    },
    "T": {
      "type": "parameter",
      "units": "K",
      "default": 298.0,
      "description": "Air temperature. Input parameter — the observed-only model computes H_T and derived quantities given T."
    },
    "p_A": {
      "type": "parameter",
      "units": "Pa",
      "default": 1.0,
      "description": "Partial pressure of gas species A. Input parameter — the observed-only model computes C_aq given p_A."
    },
    "H_T": {
      "type": "unknown",
      "units": "mol/m^3/Pa",
      "description": "Temperature-corrected Henry's law constant at temperature T (Eq. 7.5). H_T = H_298 * exp((dH_diss/R_gas) * (1/T_ref - 1/T))."
    },
    "C_aq": {
      "type": "unknown",
      "units": "mol/m^3",
      "description": "Aqueous concentration of species A in equilibrium with the gas phase at temperature T (Eq. 7.3). C_aq = H_T * p_A."
    },
    "w_L": {
      "type": "unknown",
      "units": "1",
      "description": "Liquid water mixing ratio — volume of liquid water per volume of air (dimensionless, Eq. 7.1). w_L = rho_water_inv * L."
    },
    "f_A": {
      "type": "unknown",
      "units": "1",
      "description": "Distribution factor — ratio of aqueous to gas-phase amount for species A (dimensionless, Eq. 7.7). f_A = H_T * R_gas * T * w_L."
    },
    "X_aq": {
      "type": "unknown",
      "units": "1",
      "description": "Aqueous fraction — fraction of total species A in the aqueous phase (dimensionless, Eq. 7.9). X_aq = f_A / (1 + f_A). Ranges from 0 (all gas phase) to 1 (all aqueous phase)."
    }
  },
  "equations": [
    {
      "lhs": "H_T",
      "rhs": {
        "op": "*",
        "args": [
          "H_298",
          {
            "op": "exp",
            "args": [
              {
                "op": "*",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      "dH_diss",
                      "R_gas"
                    ]
                  },
                  {
                    "op": "-",
                    "args": [
                      {
                        "op": "/",
                        "args": [
                          1,
                          "T_ref"
                        ]
                      },
                      {
                        "op": "/",
                        "args": [
                          1,
                          "T"
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    },
    {
      "lhs": "C_aq",
      "rhs": {
        "op": "*",
        "args": [
          "H_T",
          "p_A"
        ]
      }
    },
    {
      "lhs": "w_L",
      "rhs": {
        "op": "*",
        "args": [
          "rho_water_inv",
          "L"
        ]
      }
    },
    {
      "lhs": "f_A",
      "rhs": {
        "op": "*",
        "args": [
          "H_T",
          "R_gas",
          "T",
          "w_L"
        ]
      }
    },
    {
      "lhs": "X_aq",
      "rhs": {
        "op": "/",
        "args": [
          "f_A",
          {
            "op": "+",
            "args": [
              1,
              "f_A"
            ]
          }
        ]
      }
    }
  ],
  "tests": [
    {
      "id": "zero_dissolution_heat",
      "description": "When dH_diss = 0 the van't Hoff exponent is zero and H_T = H_298 regardless of temperature. With H_298 = 2.0, dH_diss = 0.0, T = 310.0 K, p_A = 3.0 Pa, L = 0.0 g/m³: H_T = 2.0, C_aq = 6.0.",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_overrides": {
        "H_298": 2.0,
        "dH_diss": 0.0,
        "T": 310.0,
        "p_A": 3.0,
        "L": 0.0
      },
      "assertions": [
        {
          "variable": "H_T",
          "time": 0.0,
          "expected": 2.0,
          "tolerance": {
            "rel": 1e-09
          }
        },
        {
          "variable": "C_aq",
          "time": 0.0,
          "expected": 6.0,
          "tolerance": {
            "rel": 1e-09
          }
        }
      ]
    },
    {
      "id": "reference_temperature",
      "description": "At T = T_ref = 298 K, (1/T_ref - 1/T) = 0 and H_T = H_298 for any dH_diss. With H_298 = 1.0, dH_diss = -26150.0, T = 298.0 K, p_A = 1.0 Pa, L = 0.1 g/m³: H_T = 1.0, C_aq = 1.0, w_L = 1e-7, f_A = 8.314*298*1e-7 = 2.477572e-4, X_aq = f_A/(1+f_A) = 2.476958e-4.",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_overrides": {
        "H_298": 1.0,
        "dH_diss": -26150.0,
        "T": 298.0,
        "p_A": 1.0,
        "L": 0.1
      },
      "assertions": [
        {
          "variable": "H_T",
          "time": 0.0,
          "expected": 1.0,
          "tolerance": {
            "rel": 1e-09
          }
        },
        {
          "variable": "C_aq",
          "time": 0.0,
          "expected": 1.0,
          "tolerance": {
            "rel": 1e-09
          }
        },
        {
          "variable": "w_L",
          "time": 0.0,
          "expected": 1e-07,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "f_A",
          "time": 0.0,
          "expected": 0.0002477572,
          "tolerance": {
            "rel": 1e-06
          }
        },
        {
          "variable": "X_aq",
          "time": 0.0,
          "expected": 0.0002476958,
          "tolerance": {
            "rel": 1e-06
          }
        }
      ]
    },
    {
      "id": "high_temperature_reduces_solubility",
      "description": "For exothermic dissolution (dH_diss < 0), raising T above T_ref decreases H_T. With H_298 = 1.0, dH_diss = -8314.0 J/mol (= -R_gas * 1000 K), T = 308.0 K, p_A = 1.0 Pa, L = 0.0: H_T = exp(-1000*(1/298 - 1/308)) = exp(-10000/91784) ≈ 0.896774, C_aq = H_T.",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_overrides": {
        "H_298": 1.0,
        "dH_diss": -8314.0,
        "T": 308.0,
        "p_A": 1.0,
        "L": 0.0
      },
      "assertions": [
        {
          "variable": "H_T",
          "time": 0.0,
          "expected": 0.896774,
          "tolerance": {
            "rel": 1e-05
          }
        },
        {
          "variable": "C_aq",
          "time": 0.0,
          "expected": 0.896774,
          "tolerance": {
            "rel": 1e-05
          }
        }
      ]
    }
  ],
  "analyses": [
    {
      "id": "temperature_sweep",
      "description": "Sweep temperature from 270 K to 330 K to show how the temperature-corrected Henry's law constant H_T varies with temperature via the van't Hoff equation. Parameters use SO₂-like values: H_298 = 1.0, dH_diss = -26150.0 J/mol, L = 0.3 g/m³, p_A = 1.0 Pa.",
      "initial_state": {},
      "parameters": {
        "H_298": 1.0,
        "dH_diss": -26150.0,
        "L": 0.3,
        "p_A": 1.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "T",
            "range": {
              "start": 270.0,
              "stop": 330.0,
              "count": 61
            }
          }
        ]
      },
      "plots": [
        {
          "id": "ht_vs_temperature",
          "type": "line",
          "description": "Temperature-corrected Henry's law constant H_T vs temperature T — shows the van't Hoff exponential increase of solubility as temperature decreases (for exothermic dissolution, dH_diss < 0).",
          "x": {
            "variable": "T",
            "label": "T (K)"
          },
          "y": {
            "variable": "H_T",
            "label": "H_T (mol/m³/Pa)"
          }
        }
      ]
    }
  ]
}