Version: dev

MeanFreePath

Mean free path of air molecules. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:22 (`MeanFreePath` @component). Calculates the mean free path from dynamic viscosity, pressure, molecular weight, and temperature (Seinfeld & Pandis 2006, Chapter 9, Eq. 9.6).

Domain
aerosol
Subdomain
particle_dyn
Type
model
.esm schema
1.0.0
Source
components/aerosol/particle_dyn/mean_free_path.esm
Tags
#aerosol #particle_dyn #model #particle-dynamics #mean-free-path

Description

Mean free path of air molecules. Migrated from Aerosol.jl@c8c640bb src/single_particle_dynamics.jl:22 (MeanFreePath @component). Calculates the mean free path from dynamic viscosity, pressure, molecular weight, and temperature (Seinfeld & Pandis 2006, Chapter 9, Eq. 9.6).

Reference

_source_ref: Aerosol.jl@c8c640bb636b22f2425460e9ed5cba50793bfee1:src/single_particle_dynamics.jl:22 Upstream MeanFreePath is an MTK @component with three constants (R, M_air, π_val), three parameters (T, P, μ), and one variable (λ). The equation is: • λ ~ 2 * μ / (P * sqrt(8 * M_air / (π_val * R * T))) (Eq. 9.6 — mean free path) The equation is algebraic (no derivatives), making this an observed-only component.

Observability classification: observed-only — the single output λ is given by an algebraic equation. Test scenarios use time_span: [0, 1] and sample at t=0.

Tolerance rationale (model-level rel=1e-9): observed-only algebraic system (no ODE integration); the equation involves multiplication, division, and sqrt. Floating-point round-off is ~1e-15. 1e-9 leaves comfortable headroom._

Parameters

NameUnitsDefaultDescription
RJ/(mol*K)8.314Molar gas constant
M_airkg/mol0.02897Molecular weight of air
π_val13.141592653589793Pi (dimensionless)
TK298.15Temperature
PPa101325.0Pressure
μkg/(m*s)1.8e-05Dynamic viscosity of air

Observed

NameUnitsDefaultDescription
λmMean free path of air

Observed expressions

$$ λ = \frac{2 \cdot μ}{P \cdot \sqrt{\frac{8 \cdot M_{air}}{π_{val} \cdot R \cdot T}}} $$

Mean free path of air

Analyses

temperature_dependence

Sweep temperature from 250 K to 350 K to show how mean free path varies with temperature (λ ∝ sqrt(T)).

Time span: 0.0 → 1.0

Swept over: T

Mean free path vs temperature — shows λ ∝ sqrt(T) through the sqrt dependence in Eq. 9.6.

Raw .esm

Raw .esm JSON (this component)
{
  "reference": {
    "notes": "source_ref: Aerosol.jl@c8c640bb636b22f2425460e9ed5cba50793bfee1:src/single_particle_dynamics.jl:22\nUpstream `MeanFreePath` is an MTK `@component` with three constants (R, M_air, π_val), three parameters (T, P, μ), and one variable (λ). The equation is:\n  • λ ~ 2 * μ / (P * sqrt(8 * M_air / (π_val * R * T)))  (Eq. 9.6 — mean free path)\nThe equation is algebraic (no derivatives), making this an observed-only component.\n\nObservability classification: observed-only — the single output λ is given by an algebraic equation. Test scenarios use `time_span: [0, 1]` and sample at t=0.\n\nTolerance rationale (model-level rel=1e-9): observed-only algebraic system (no ODE integration); the equation involves multiplication, division, and sqrt. Floating-point round-off is ~1e-15. 1e-9 leaves comfortable headroom."
  },
  "tolerance": {
    "rel": 1e-09
  },
  "variables": {
    "R": {
      "type": "parameter",
      "units": "J/(mol*K)",
      "default": 8.314,
      "description": "Molar gas constant"
    },
    "M_air": {
      "type": "parameter",
      "units": "kg/mol",
      "default": 0.02897,
      "description": "Molecular weight of air"
    },
    "π_val": {
      "type": "parameter",
      "units": "1",
      "default": 3.141592653589793,
      "description": "Pi (dimensionless)"
    },
    "T": {
      "type": "parameter",
      "units": "K",
      "default": 298.15,
      "description": "Temperature"
    },
    "P": {
      "type": "parameter",
      "units": "Pa",
      "default": 101325.0,
      "description": "Pressure"
    },
    "μ": {
      "type": "parameter",
      "units": "kg/(m*s)",
      "default": 1.8e-05,
      "description": "Dynamic viscosity of air"
    },
    "λ": {
      "type": "unknown",
      "units": "m",
      "description": "Mean free path of air"
    }
  },
  "equations": [
    {
      "lhs": "λ",
      "rhs": {
        "op": "/",
        "args": [
          {
            "op": "*",
            "args": [
              2,
              "μ"
            ]
          },
          {
            "op": "*",
            "args": [
              "P",
              {
                "op": "sqrt",
                "args": [
                  {
                    "op": "/",
                    "args": [
                      {
                        "op": "*",
                        "args": [
                          8,
                          "M_air"
                        ]
                      },
                      {
                        "op": "*",
                        "args": [
                          "π_val",
                          {
                            "op": "*",
                            "args": [
                              "R",
                              "T"
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  ],
  "tests": [
    {
      "id": "default_conditions",
      "description": "Default conditions: T = 298.15 K, P = 101325 Pa, μ = 1.8e-5 kg/(m*s). λ = 2*1.8e-5 / (101325 * sqrt(8*0.02897 / (π*8.314*298.15))) ≈ 6.513e-8 m.",
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "λ",
          "time": 0.0,
          "expected": 6.512744e-08,
          "tolerance": {
            "rel": 0.0001
          }
        }
      ]
    }
  ],
  "analyses": [
    {
      "id": "temperature_dependence",
      "description": "Sweep temperature from 250 K to 350 K to show how mean free path varies with temperature (λ ∝ sqrt(T)).",
      "initial_state": {},
      "parameters": {
        "P": 101325.0,
        "μ": 1.8e-05
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "T",
            "range": {
              "start": 250.0,
              "stop": 350.0,
              "count": 50
            }
          }
        ]
      },
      "plots": [
        {
          "id": "mfp_vs_temperature",
          "type": "line",
          "description": "Mean free path vs temperature — shows λ ∝ sqrt(T) through the sqrt dependence in Eq. 9.6.",
          "x": {
            "variable": "T",
            "label": "T (K)"
          },
          "y": {
            "variable": "λ",
            "label": "λ (m)"
          }
        }
      ]
    }
  ]
}