Version: dev

DiameterGrowthRate

Diameter growth rate due to vapor condensation in the continuum regime (Seinfeld & Pandis 2006, Ch. 13, Eq. 13.11-13.13). Algebraic growth parameter A = 4·D_diff·M_i·Δp / (R_gas·T·ρ_p), algebraic growth rate I_D = A/D_p, ODE D(D_p) = I_D. Source: Aerosol.jl@c8c640bb:src/dynamics.jl:22.

Domain
aerosol
Subdomain
dynamics
Type
model
.esm schema
1.0.0
Source
components/aerosol/dynamics/diameter_growth.esm
Tags
#aerosol #dynamics #model #condensation #seinfeld-pandis

Description

Diameter growth rate due to vapor condensation in the continuum regime (Seinfeld & Pandis 2006, Ch. 13, Eq. 13.11-13.13). Algebraic growth parameter A = 4·D_diff·M_i·Δp / (R_gas·T·ρ_p), algebraic growth rate I_D = A/D_p, ODE D(D_p) = I_D. Source: Aerosol.jl@c8c640bb:src/dynamics.jl:22.

Reference

Seinfeld, J. H. and Pandis, S. N.: Atmospheric Chemistry and Physics: From Air Pollution to Climate Change, 2nd edition, John Wiley & Sons, 2006. Chapter 13, Eqs. 13.11-13.13 and Figure 13.2.

_Source: Aerosol.jl src/dynamics.jl:22 @ commit c8c640bb636b22f2425460e9ed5cba50793bfee1 (mdl-drx). Scaffolded via mtk2esm (ESS gt-dod2). The component implements the continuum-regime, constant-supersaturation simplification I_D = A/D_p of the general Eq. 13.11. A is algebraic (serialized as a state to keep 1:1 symmetry with the upstream MTK @variables block; mtkcompile eliminates it as observed at test time). Tests and examples are derived from Aerosol.jl test/dynamics_test.jl (‘DiameterGrowthRate analytical solution’) and docs/src/dynamics.md (Figure 13.2 reproduction block).

Tolerance rationale (model-level rel=1e-4): reference D_p(t) trajectories from upstream Aerosol.jl Tsit5 integration of dD_p/dt = A/D_p; 1e-4 absorbs Tsit5↔SciPy LSODA truncation over 1200 s plus float64 roundoff in the algebraic A = 4·D_diff·M_i·Δp/(R_gas·T·ρ_p) (Eq. 13.12). The analytical_sqrt_law_agreement test overrides to rel=1e-3 — see that test’s description._

Variables

NameUnitsDefaultDescription
D_pmParticle diameter

Parameters

NameUnitsDefaultDescription
R_gasJ/mol/K8.314Universal gas constant
TK298Temperature
D_diffm^2/s1e-05Diffusion coefficient of condensing species
M_ikg/mol0.1Molecular weight of condensing species
ρ_pkg/m^31000Particle density
ΔpPa0.0001Vapor pressure difference (p_i - p_eq)

Observed

NameUnitsDefaultDescription
I_Dm/sDiameter growth rate
Am^2/sGrowth parameter

Observed expressions

$$ I_{D} = \frac{A}{D_{p}} $$

Diameter growth rate

$$ A = \frac{4 \cdot D_{diff} \cdot M_{i} \cdot Δp}{R_{gas} \cdot T \cdot ρ_{p}} $$

Growth parameter

Equations

$$ \mathrm{D}\left(D_{p}\right) = I_{D} $$

Analyses

figure_13_2_small_particle

Seinfeld & Pandis Fig. 13.2, 0.2 µm initial particle — growth in diameter over 20 min of condensation in the continuum regime with constant supersaturation. The fastest-growing of the three initial sizes shown in the paper figure.

Time span: 0 → 1200

D_p(t) over 20 min for D_p0 = 0.2 µm — smallest initial size on Figure 13.2.

figure_13_2_medium_particle

Seinfeld & Pandis Fig. 13.2, 0.5 µm initial particle — intermediate curve on the paper figure.

Time span: 0 → 1200

D_p(t) over 20 min for D_p0 = 0.5 µm.

figure_13_2_large_particle

Seinfeld & Pandis Fig. 13.2, 2.0 µm initial particle — slowest-growing curve on the paper figure. The diameter barely increases because I_D = A/D_p is much smaller for large D_p.

Time span: 0 → 1200

D_p(t) over 20 min for D_p0 = 2.0 µm — largest size on Figure 13.2.

elevated_supersaturation

Illustrative sensitivity run (not in the paper): a 0.2 µm particle under 5× reference supersaturation (Δp = 5×10⁻⁴ Pa). Growth is correspondingly faster because A ∝ Δp; D_p reaches ~1.4 µm in the same 20 min window.

Time span: 0 → 1200

D_p(t) at 5× reference supersaturation — illustrates the A ∝ Δp dependence.

Raw .esm

Raw .esm JSON (this component)
{
  "variables": {
    "R_gas": {
      "default": 8.314,
      "type": "parameter",
      "units": "J/mol/K",
      "description": "Universal gas constant"
    },
    "T": {
      "default": 298,
      "type": "parameter",
      "units": "K",
      "description": "Temperature"
    },
    "D_diff": {
      "default": 1e-05,
      "type": "parameter",
      "units": "m^2/s",
      "description": "Diffusion coefficient of condensing species"
    },
    "M_i": {
      "default": 0.1,
      "type": "parameter",
      "units": "kg/mol",
      "description": "Molecular weight of condensing species"
    },
    "ρ_p": {
      "default": 1000,
      "type": "parameter",
      "units": "kg/m^3",
      "description": "Particle density"
    },
    "Δp": {
      "default": 0.0001,
      "type": "parameter",
      "units": "Pa",
      "description": "Vapor pressure difference (p_i - p_eq)"
    },
    "D_p": {
      "type": "unknown",
      "units": "m",
      "description": "Particle diameter"
    },
    "I_D": {
      "type": "unknown",
      "units": "m/s",
      "description": "Diameter growth rate"
    },
    "A": {
      "type": "unknown",
      "units": "m^2/s",
      "description": "Growth parameter"
    }
  },
  "equations": [
    {
      "lhs": {
        "op": "D",
        "wrt": "t",
        "args": [
          "D_p"
        ]
      },
      "rhs": "I_D"
    },
    {
      "lhs": "A",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              4,
              "D_diff",
              "M_i",
              "Δp"
            ]
          },
          {
            "op": "*",
            "args": [
              "R_gas",
              "T",
              "ρ_p"
            ]
          }
        ]
      }
    },
    {
      "lhs": "I_D",
      "rhs": {
        "op": "/",
        "args": [
          "A",
          "D_p"
        ]
      }
    }
  ],
  "tolerance": {
    "rel": 0.0001
  },
  "tests": [
    {
      "id": "figure_13_2_small_particle_growth_curve",
      "description": "Seinfeld & Pandis Fig. 13.2 reference case — D_p0 = 0.2 µm in the continuum regime with constant supersaturation. Checks D_p at t = 0, 60, 300, 600, 900, 1200 s and the algebraic growth rate I_D at t = 0, 300, 1200 s. Mirrors the 'DiameterGrowthRate analytical solution' test in Aerosol.jl/test/dynamics_test.jl but samples more densely. Also pins the growth parameter A (constant in this simplification of Eq. 13.11-13.13).",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 2e-07
      },
      "assertions": [
        {
          "variable": "D_p",
          "time": 0,
          "expected": 2e-07
        },
        {
          "variable": "D_p",
          "time": 60,
          "expected": 2.436674093062e-07
        },
        {
          "variable": "D_p",
          "time": 300,
          "expected": 3.699581474844e-07
        },
        {
          "variable": "D_p",
          "time": 600,
          "expected": 4.834646455265e-07
        },
        {
          "variable": "D_p",
          "time": 900,
          "expected": 5.749844287122e-07
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 6.538165842082e-07
        },
        {
          "variable": "I_D",
          "time": 0,
          "expected": 8.072419287916e-10
        },
        {
          "variable": "I_D",
          "time": 300,
          "expected": 4.363963514687e-10
        },
        {
          "variable": "I_D",
          "time": 1200,
          "expected": 2.469322278722e-10
        },
        {
          "variable": "A",
          "time": 0,
          "expected": 1.614483857583e-16
        },
        {
          "variable": "A",
          "time": 1200,
          "expected": 1.614483857583e-16
        }
      ]
    },
    {
      "id": "figure_13_2_medium_particle_growth",
      "description": "Seinfeld & Pandis Fig. 13.2 — D_p0 = 0.5 µm. Same continuum-regime conditions as the 0.2 µm case, but growth in diameter is slower because I_D = A/D_p is inversely proportional to size. Verifies the size-dependent slowdown.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 5e-07
      },
      "assertions": [
        {
          "variable": "D_p",
          "time": 0,
          "expected": 5e-07
        },
        {
          "variable": "D_p",
          "time": 600,
          "expected": 6.661366705188e-07
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 7.984210203951e-07
        }
      ]
    },
    {
      "id": "figure_13_2_large_particle_growth",
      "description": "Seinfeld & Pandis Fig. 13.2 — D_p0 = 2.0 µm. Growth in absolute diameter is nearly negligible over 20 min because the large initial size suppresses I_D; the same ΔD_p² = 2At increment now spans a much larger D_p.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 2e-06
      },
      "assertions": [
        {
          "variable": "D_p",
          "time": 0,
          "expected": 2e-06
        },
        {
          "variable": "D_p",
          "time": 600,
          "expected": 2.047861827101e-06
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 2.094630307672e-06
        }
      ]
    },
    {
      "id": "supersaturation_sensitivity",
      "description": "Parameter-sensitivity check: raising the vapor-pressure difference Δp by 5× (5 × 10⁻⁴ Pa) scales the growth parameter A linearly (A ∝ Δp in Eq. 13.12). Verifies that the Δp handle drives a proportional change in A and hence accelerates D_p growth.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 2e-07
      },
      "parameter_overrides": {
        "Δp": 0.0005
      },
      "assertions": [
        {
          "variable": "A",
          "time": 0,
          "expected": 8.072419287916e-16
        },
        {
          "variable": "A",
          "time": 1200,
          "expected": 8.072419287916e-16
        },
        {
          "variable": "D_p",
          "time": 600,
          "expected": 1.004335758959e-06
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 1.406193666957e-06
        }
      ]
    },
    {
      "id": "temperature_sensitivity",
      "description": "Parameter-sensitivity check: raising temperature from 298 K to 350 K reduces A by the ratio 298/350 ≈ 0.851 (A ∝ 1/T). Verifies the T handle and the predicted slower-growth regime.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 2e-07
      },
      "parameter_overrides": {
        "T": 350.0
      },
      "assertions": [
        {
          "variable": "A",
          "time": 0,
          "expected": 1.374617684457e-16
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 6.082008255826e-07
        }
      ]
    },
    {
      "id": "diffusion_coefficient_sensitivity",
      "description": "Parameter-sensitivity check: halving the diffusion coefficient D_diff from 1×10⁻⁵ to 5×10⁻⁶ m²/s halves A (A ∝ D_diff). Because D_p² - D_p0² = 2At is linear in A, the final D_p² moves predictably.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 2e-07
      },
      "parameter_overrides": {
        "D_diff": 5e-06
      },
      "assertions": [
        {
          "variable": "A",
          "time": 0,
          "expected": 8.072419287916e-17
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 4.834646449239e-07
        }
      ]
    },
    {
      "id": "analytical_sqrt_law_agreement",
      "description": "Cross-checks numerical D_p(t) against the closed-form solution D_p(t) = √(D_p0² + 2At) from Eq. 13.21 (Aerosol.jl test/dynamics_test.jl 'DiameterGrowthRate analytical solution'). Under default parameters A = 4·D_diff·M_i·Δp / (R_gas·T·ρ_p) = 1.614483857583×10⁻¹⁶ m²/s. Tolerance is 1e-3 relative, matching the upstream test.\n\nTolerance rationale (rel=1e-3, 10× looser than the model default): mirrors upstream Aerosol.jl's tolerance for this test — 1e-3 covers the gap between numerical D_p(t) and the closed-form Eq. 13.21, where ODE truncation accumulated across 1200 s exceeds the integrator-vs-integrator gap captured by the model-level 1e-4.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_conditions": {
        "D_p": 2e-07
      },
      "tolerance": {
        "rel": 0.001
      },
      "assertions": [
        {
          "variable": "D_p",
          "time": 300,
          "expected": 3.699581482479e-07
        },
        {
          "variable": "D_p",
          "time": 600,
          "expected": 4.834646449431e-07
        },
        {
          "variable": "D_p",
          "time": 1200,
          "expected": 6.538165842344e-07
        }
      ]
    }
  ],
  "reference": {
    "citation": "Seinfeld, J. H. and Pandis, S. N.: Atmospheric Chemistry and Physics: From Air Pollution to Climate Change, 2nd edition, John Wiley & Sons, 2006. Chapter 13, Eqs. 13.11-13.13 and Figure 13.2.",
    "notes": "Source: Aerosol.jl src/dynamics.jl:22 @ commit c8c640bb636b22f2425460e9ed5cba50793bfee1 (mdl-drx). Scaffolded via mtk2esm (ESS gt-dod2). The component implements the continuum-regime, constant-supersaturation simplification I_D = A/D_p of the general Eq. 13.11. A is algebraic (serialized as a state to keep 1:1 symmetry with the upstream MTK @variables block; mtkcompile eliminates it as observed at test time). Tests and examples are derived from Aerosol.jl test/dynamics_test.jl ('DiameterGrowthRate analytical solution') and docs/src/dynamics.md (Figure 13.2 reproduction block).\n\nTolerance rationale (model-level rel=1e-4): reference D_p(t) trajectories from upstream Aerosol.jl Tsit5 integration of dD_p/dt = A/D_p; 1e-4 absorbs Tsit5↔SciPy LSODA truncation over 1200 s plus float64 roundoff in the algebraic A = 4·D_diff·M_i·Δp/(R_gas·T·ρ_p) (Eq. 13.12). The analytical_sqrt_law_agreement test overrides to rel=1e-3 — see that test's description."
  },
  "analyses": [
    {
      "id": "figure_13_2_small_particle",
      "description": "Seinfeld & Pandis Fig. 13.2, 0.2 µm initial particle — growth in diameter over 20 min of condensation in the continuum regime with constant supersaturation. The fastest-growing of the three initial sizes shown in the paper figure.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_state": {
        "D_p": 2e-07
      },
      "plots": [
        {
          "id": "Dp_vs_time_0p2um",
          "type": "line",
          "description": "D_p(t) over 20 min for D_p0 = 0.2 µm — smallest initial size on Figure 13.2.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "D_p",
            "label": "D_p (m)"
          }
        }
      ]
    },
    {
      "id": "figure_13_2_medium_particle",
      "description": "Seinfeld & Pandis Fig. 13.2, 0.5 µm initial particle — intermediate curve on the paper figure.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_state": {
        "D_p": 5e-07
      },
      "plots": [
        {
          "id": "Dp_vs_time_0p5um",
          "type": "line",
          "description": "D_p(t) over 20 min for D_p0 = 0.5 µm.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "D_p",
            "label": "D_p (m)"
          }
        }
      ]
    },
    {
      "id": "figure_13_2_large_particle",
      "description": "Seinfeld & Pandis Fig. 13.2, 2.0 µm initial particle — slowest-growing curve on the paper figure. The diameter barely increases because I_D = A/D_p is much smaller for large D_p.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_state": {
        "D_p": 2e-06
      },
      "plots": [
        {
          "id": "Dp_vs_time_2um",
          "type": "line",
          "description": "D_p(t) over 20 min for D_p0 = 2.0 µm — largest size on Figure 13.2.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "D_p",
            "label": "D_p (m)"
          }
        }
      ]
    },
    {
      "id": "elevated_supersaturation",
      "description": "Illustrative sensitivity run (not in the paper): a 0.2 µm particle under 5× reference supersaturation (Δp = 5×10⁻⁴ Pa). Growth is correspondingly faster because A ∝ Δp; D_p reaches ~1.4 µm in the same 20 min window.",
      "time_span": {
        "start": 0,
        "end": 1200
      },
      "initial_state": {
        "D_p": 2e-07
      },
      "parameters": {
        "Δp": 0.0005
      },
      "plots": [
        {
          "id": "Dp_vs_time_high_supersat",
          "type": "line",
          "description": "D_p(t) at 5× reference supersaturation — illustrates the A ∝ Δp dependence.",
          "x": {
            "variable": "t",
            "label": "time (s)"
          },
          "y": {
            "variable": "D_p",
            "label": "D_p (m)"
          }
        }
      ]
    }
  ]
}