MaxwellianFlux
Continuum-regime molar flux of a gas species to a spherical particle. In the continuum limit (Kn ≪ 1) the steady-state diffusive flux is governed by Fick's law on a spherical geometry: J_c = 4πR_p D_g (c_∞ − c_s) (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.12). A positive J_c indicates net uptake (c_∞ > c_s); a negative value indicates net evaporation or desorption (c_s > c_∞). Migrated from Aerosol.jl src/mass_transfer.jl `MaxwellianFlux`.
Description
Continuum-regime molar flux of a gas species to a spherical particle. In the continuum limit (Kn ≪ 1) the steady-state diffusive flux is governed by Fick’s law on a spherical geometry: J_c = 4πR_p D_g (c_∞ − c_s) (Seinfeld & Pandis 2006, Chapter 12, Eq. 12.12). A positive J_c indicates net uptake (c_∞ > c_s); a negative value indicates net evaporation or desorption (c_s > c_∞). Migrated from Aerosol.jl src/mass_transfer.jl MaxwellianFlux.
Reference
Seinfeld, J. H. and Pandis, S. N. (2006) Atmospheric Chemistry and Physics, 2nd Edition, Chapter 12, Eq. 12.12 — steady-state diffusive molar flux to a spherical particle in the continuum regime. Migrated from Aerosol.jl src/mass_transfer.jl MaxwellianFlux (esm-esr).
_source_ref: Aerosol.jl@c8c640b:src/mass_transfer.jl:173
Upstream MaxwellianFlux is an MTK @component with 4 parameters (R_p, D_g, c_inf, c_s) and 1 variable J_c(t) determined by one explicit algebraic equation with no time derivative — purely observed.
Equation (S&P 2006, Eq. 12.12): J_c = 4π R_p D_g (c_∞ − c_s) [continuum steady-state molar flux, mol/s]
The factor 4π arises from integrating Fick’s law in spherical coordinates at steady state: d/dr(r² dc/dr) = 0, giving c(r) = c_s + (c_∞ − c_s) R_p/r; the flux at the surface is J = 4π R_p² D_g (dc/dr)|{r=R_p} = 4π R_p D_g (c∞ − c_s). The constant 4π = 12.566370614359172 is inlined as a floating-point literal consistent with the convention used across the aerosol/mass_transfer migration family.
Sign convention: J_c > 0 means net absorption (c_∞ > c_s, gas condenses onto particle); J_c < 0 means net evaporation (c_s > c_∞, particle releases gas). J_c = 0 at equilibrium (c_∞ = c_s).
Physics: Valid when Kn = λ/R_p ≪ 1. For typical atmospheric aerosol (R_p ~ 0.1–10 µm at standard conditions λ ~ 65 nm), Kn spans 0.0065–0.65, so continuum corrections are often needed. The Fuchs-Sutugin (fuchs_sutugin.esm) and Dahneke (dahneke.esm) correction factors extend MaxwellianFlux to the transition and free-molecular regimes.
Tolerance rationale (model-level rel=1e-12): purely algebraic expression; a single multiply of four operands in float64. Round-off is ~1e-15 relative; rel=1e-12 leaves three orders of headroom and is tighter than the sibling uptake_coeff.esm (rel=1e-9) because the expression here has fewer floating-point operations._
Parameters
| Name | Units | Default | Description |
|---|---|---|---|
R_p | m | 1e-07 | Particle radius. Default 0.1 µm is a sub-micron aerosol particle in the lower continuum regime. |
D_g | m^2/s | 2e-05 | Gas-phase molecular diffusivity of the condensing/evaporating species. Default 2×10⁻⁵ m²/s is representative of small atmospheric trace gases at 298 K and 1 atm. |
c_inf | mol/m^3 | 1e-06 | Bulk (far-field) gas-phase molar concentration of the species. Represents the ambient concentration far from the particle surface. Default 10⁻⁶ mol/m³ is a trace-gas level. |
c_s | mol/m^3 | 0.0 | Molar concentration of the species at the particle surface. At equilibrium c_s equals the saturation vapor concentration (Raoult/Kelvin corrected). Default 0.0 gives maximum uptake flux. |
Observed
| Name | Units | Default | Description |
|---|---|---|---|
J_c | mol/s | Continuum-regime molar flow rate to the particle: J_c = 4π R_p D_g (c_∞ − c_s). Positive for net absorption (c_∞ > c_s), negative for net evaporation (c_s > c_∞), zero at equilibrium. |
Observed expressions
$$ J_{c} = 12.566370614359172 \cdot R_{p} \cdot D_{g} \cdot \left(c_{inf} - c_{s}\right) $$Continuum-regime molar flow rate to the particle: J_c = 4π R_p D_g (c∞ − c_s). Positive for net absorption (c_∞ > c_s), negative for net evaporation (c_s > c_∞), zero at equilibrium._
Analyses
flux_vs_particle_radius
Sweep particle radius R_p from 1 nm to 10 µm log-spaced at default atmospheric conditions (D_g=2×10⁻⁵ m²/s, c_inf=10⁻⁶ mol/m³, c_s=0). J_c ∝ R_p: the absorption flux grows linearly with particle size, so larger particles in the continuum regime absorb gas at a proportionally higher molar rate.
Time span: 0.0 → 1.0
Swept over: R_p

flux_vs_concentration_gradient
Sweep bulk concentration c_inf from 0 to 10⁻⁵ mol/m³ at c_s = 0. J_c grows linearly with c_inf, illustrating that the driving force for mass transfer is the concentration difference (c_∞ − c_s).
Time span: 0.0 → 1.0
Swept over: c_inf

Raw .esm
Raw .esm JSON (this component)
{
"reference": {
"citation": "Seinfeld, J. H. and Pandis, S. N. (2006) Atmospheric Chemistry and Physics, 2nd Edition, Chapter 12, Eq. 12.12 — steady-state diffusive molar flux to a spherical particle in the continuum regime. Migrated from Aerosol.jl src/mass_transfer.jl `MaxwellianFlux` (esm-esr).",
"notes": "source_ref: Aerosol.jl@c8c640b:src/mass_transfer.jl:173\n\nUpstream `MaxwellianFlux` is an MTK `@component` with 4 parameters (R_p, D_g, c_inf, c_s) and 1 variable J_c(t) determined by one explicit algebraic equation with no time derivative — purely observed.\n\nEquation (S&P 2006, Eq. 12.12):\n J_c = 4π R_p D_g (c_∞ − c_s) [continuum steady-state molar flux, mol/s]\n\nThe factor 4π arises from integrating Fick's law in spherical coordinates at steady state: d/dr(r² dc/dr) = 0, giving c(r) = c_s + (c_∞ − c_s) R_p/r; the flux at the surface is J = 4π R_p² D_g (dc/dr)|_{r=R_p} = 4π R_p D_g (c_∞ − c_s). The constant 4π = 12.566370614359172 is inlined as a floating-point literal consistent with the convention used across the aerosol/mass_transfer migration family.\n\nSign convention: J_c > 0 means net absorption (c_∞ > c_s, gas condenses onto particle); J_c < 0 means net evaporation (c_s > c_∞, particle releases gas). J_c = 0 at equilibrium (c_∞ = c_s).\n\nPhysics: Valid when Kn = λ/R_p ≪ 1. For typical atmospheric aerosol (R_p ~ 0.1–10 µm at standard conditions λ ~ 65 nm), Kn spans 0.0065–0.65, so continuum corrections are often needed. The Fuchs-Sutugin (fuchs_sutugin.esm) and Dahneke (dahneke.esm) correction factors extend MaxwellianFlux to the transition and free-molecular regimes.\n\nTolerance rationale (model-level rel=1e-12): purely algebraic expression; a single multiply of four operands in float64. Round-off is ~1e-15 relative; rel=1e-12 leaves three orders of headroom and is tighter than the sibling uptake_coeff.esm (rel=1e-9) because the expression here has fewer floating-point operations."
},
"tolerance": {
"rel": 1e-12
},
"variables": {
"R_p": {
"type": "parameter",
"units": "m",
"default": 1e-07,
"description": "Particle radius. Default 0.1 µm is a sub-micron aerosol particle in the lower continuum regime."
},
"D_g": {
"type": "parameter",
"units": "m^2/s",
"default": 2e-05,
"description": "Gas-phase molecular diffusivity of the condensing/evaporating species. Default 2×10⁻⁵ m²/s is representative of small atmospheric trace gases at 298 K and 1 atm."
},
"c_inf": {
"type": "parameter",
"units": "mol/m^3",
"default": 1e-06,
"description": "Bulk (far-field) gas-phase molar concentration of the species. Represents the ambient concentration far from the particle surface. Default 10⁻⁶ mol/m³ is a trace-gas level."
},
"c_s": {
"type": "parameter",
"units": "mol/m^3",
"default": 0.0,
"description": "Molar concentration of the species at the particle surface. At equilibrium c_s equals the saturation vapor concentration (Raoult/Kelvin corrected). Default 0.0 gives maximum uptake flux."
},
"J_c": {
"type": "unknown",
"units": "mol/s",
"description": "Continuum-regime molar flow rate to the particle: J_c = 4π R_p D_g (c_∞ − c_s). Positive for net absorption (c_∞ > c_s), negative for net evaporation (c_s > c_∞), zero at equilibrium."
}
},
"equations": [
{
"lhs": "J_c",
"rhs": {
"op": "*",
"args": [
12.566370614359172,
"R_p",
"D_g",
{
"op": "-",
"args": [
"c_inf",
"c_s"
]
}
]
}
}
],
"tests": [
{
"id": "default_conditions",
"description": "Default parameters: R_p=0.1 µm, D_g=2×10⁻⁵ m²/s, c_inf=10⁻⁶ mol/m³, c_s=0. J_c = 4π × 10⁻⁷ × 2×10⁻⁵ × 10⁻⁶ = 8π × 10⁻¹⁸ ≈ 2.513×10⁻¹⁷ mol/s. Anchors the basic absorption case at the declared defaults.",
"time_span": {
"start": 0.0,
"end": 1.0
},
"assertions": [
{
"variable": "J_c",
"time": 0.0,
"expected": 2.5132741228718345e-17,
"tolerance": {
"rel": 1e-12
}
}
]
},
{
"id": "larger_particle",
"description": "Particle radius R_p = 1 µm = 10⁻⁶ m (10× the default). J_c scales linearly with R_p, so the flux rises by 10× to ≈2.513×10⁻¹⁶ mol/s. Exercises the R_p wiring and confirms linear scaling.",
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_overrides": {
"R_p": 1e-06
},
"assertions": [
{
"variable": "J_c",
"time": 0.0,
"expected": 2.5132741228718343e-16,
"tolerance": {
"rel": 1e-12
}
}
]
},
{
"id": "nonzero_surface_concentration",
"description": "Surface concentration c_s = 5×10⁻⁷ mol/m³ (half the bulk), c_inf = 10⁻⁶. The driving gradient Δc = 5×10⁻⁷ halves the default Δc = 10⁻⁶, so J_c drops to half its default value ≈ 1.257×10⁻¹⁷ mol/s. Exercises the (c_inf − c_s) concentration-gradient wiring.",
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_overrides": {
"c_s": 5e-07
},
"assertions": [
{
"variable": "J_c",
"time": 0.0,
"expected": 1.2566370614359173e-17,
"tolerance": {
"rel": 1e-12
}
}
]
},
{
"id": "equilibrium_zero_flux",
"description": "Surface and bulk concentrations equal (c_inf = c_s = 10⁻⁶ mol/m³). The driving gradient vanishes and J_c = 0 exactly. Confirms that equilibrium produces exactly zero flux regardless of R_p, D_g.",
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_overrides": {
"c_inf": 1e-06,
"c_s": 1e-06
},
"assertions": [
{
"variable": "J_c",
"time": 0.0,
"expected": 0.0,
"tolerance": {
"abs": 1e-30
}
}
]
},
{
"id": "reverse_flux_evaporation",
"description": "Surface concentration c_s = 10⁻⁶ mol/m³ > c_inf = 0: the particle evaporates. J_c = 4π × 10⁻⁷ × 2×10⁻⁵ × (0 − 10⁻⁶) = −2.513×10⁻¹⁷ mol/s (same magnitude as default absorption, opposite sign). Confirms sign convention for net evaporation.",
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_overrides": {
"c_inf": 0.0,
"c_s": 1e-06
},
"assertions": [
{
"variable": "J_c",
"time": 0.0,
"expected": -2.5132741228718345e-17,
"tolerance": {
"rel": 1e-12
}
}
]
},
{
"id": "higher_diffusivity",
"description": "Gas-phase diffusivity D_g = 4×10⁻⁵ m²/s (2× the default). J_c scales linearly with D_g, so the flux doubles to ≈ 5.027×10⁻¹⁷ mol/s. Exercises the D_g wiring and confirms linear scaling.",
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_overrides": {
"D_g": 4e-05
},
"assertions": [
{
"variable": "J_c",
"time": 0.0,
"expected": 5.026548245743669e-17,
"tolerance": {
"rel": 1e-12
}
}
]
}
],
"analyses": [
{
"id": "flux_vs_particle_radius",
"description": "Sweep particle radius R_p from 1 nm to 10 µm log-spaced at default atmospheric conditions (D_g=2×10⁻⁵ m²/s, c_inf=10⁻⁶ mol/m³, c_s=0). J_c ∝ R_p: the absorption flux grows linearly with particle size, so larger particles in the continuum regime absorb gas at a proportionally higher molar rate.",
"initial_state": {},
"parameters": {},
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_sweep": {
"type": "cartesian",
"dimensions": [
{
"parameter": "R_p",
"range": {
"start": 1e-09,
"stop": 1e-05,
"count": 51,
"scale": "log"
}
}
]
},
"plots": [
{
"id": "Jc_vs_Rp",
"type": "line",
"description": "Continuum-regime molar flux J_c as a function of particle radius R_p. Linear on a log-log plot with slope 1, confirming J_c ∝ R_p.",
"x": {
"variable": "R_p",
"label": "Particle radius R_p (m)"
},
"y": {
"variable": "J_c",
"label": "Molar flux J_c (mol/s)"
}
}
]
},
{
"id": "flux_vs_concentration_gradient",
"description": "Sweep bulk concentration c_inf from 0 to 10⁻⁵ mol/m³ at c_s = 0. J_c grows linearly with c_inf, illustrating that the driving force for mass transfer is the concentration difference (c_∞ − c_s).",
"initial_state": {},
"parameters": {
"c_s": 0.0
},
"time_span": {
"start": 0.0,
"end": 1.0
},
"parameter_sweep": {
"type": "cartesian",
"dimensions": [
{
"parameter": "c_inf",
"range": {
"start": 1e-08,
"stop": 1e-05,
"count": 51,
"scale": "log"
}
}
]
},
"plots": [
{
"id": "Jc_vs_cinf",
"type": "line",
"description": "Continuum-regime molar flux J_c as a function of bulk concentration c_inf (c_s = 0). Linear on a log-log plot with slope 1, confirming J_c ∝ Δc.",
"x": {
"variable": "c_inf",
"label": "Bulk concentration c_inf (mol/m³)"
},
"y": {
"variable": "J_c",
"label": "Molar flux J_c (mol/s)"
}
}
]
}
]
}