Version: dev

IndirectAerosolForcing

First indirect aerosol effect (Twomey effect): change in shortwave forcing from aerosol-induced increase in cloud droplet number concentration — Seinfeld & Pandis (2006) Ch. 24 §24.8.2, Eqs. 24.42–24.43.

Domain
aerosol
Subdomain
radiative_forcing
Type
model
.esm schema
1.0.0
Source
components/aerosol/radiative_forcing/indirect_aerosol.esm
Tags
#aerosol #radiative_forcing #model

Description

First indirect aerosol effect (Twomey effect): change in shortwave forcing from aerosol-induced increase in cloud droplet number concentration — Seinfeld & Pandis (2006) Ch. 24 §24.8.2, Eqs. 24.42–24.43.

Reference

Seinfeld, J. H., and Pandis, S. N. (2006). Atmospheric Chemistry and Physics: From Air Pollution to Climate Change, 2nd Edition, Chapter 24, Section 24.8.2, Equations 24.42–24.43.

_source_ref: Aerosol.jl@c8c640bb:src/aerosol_radiative_forcing.jl:306 First indirect aerosol effect (Twomey/cloud-albedo effect). Aerosols acting as CCN increase cloud droplet number concentration N at fixed liquid water content, reducing mean droplet radius and increasing cloud optical depth and albedo. The Twomey susceptibility S = dR_c/d(ln N) = R_c*(1-R_c)/3 (Eq. 24.41) gives the change in cloud albedo per fractional change in N: ΔR_c = S * Δln_N (Eq. 24.42). Eq. 24.43 converts ΔR_c to a top-of-atmosphere shortwave forcing: ΔF_c = -F_0 * A_c * T_a² * ΔR_c. The negative sign reflects that increased cloud albedo cools by reflecting more incoming solar radiation.

After MTK structural_simplify, the two algebraic equations reduce to zero ODE states — both ΔR_c and ΔF_c are pure observed bindings. The standalone model treats R_c as a fixed parameter (default 0.5, peak susceptibility); coupling with CloudAlbedo would promote R_c to a shared variable.

Tolerance rationale (model-level rel=1e-8 / abs=1e-12): both outputs are short products of bounded dimensionless parameters. ΔR_c is a four-factor product (R_c, 1-R_c, 1/3, Δln_N); ΔF_c is a five-factor product (F_0, A_c, T_a², ΔR_c) — float64 roundoff accumulates to ~4 ULP, well within rel=1e-8. abs=1e-12 floors the Δln_N → 0 limit where both outputs vanish._

Parameters

NameUnitsDefaultDescription
F_0W/m^21370.0Incident solar flux
A_c10.6Cloud fraction (dimensionless)
T_a10.76Atmospheric transmittance (dimensionless)
R_c10.5Cloud albedo (dimensionless). At R_c = 0.5 the Twomey susceptibility S = R_c*(1-R_c)/3 is maximised (1/12 ≈ 0.0833).
Δln_N10.262Fractional change in cloud droplet number concentration, Δln(N) = ln(N₁/N₀) (dimensionless). Default ≈ ln(1.3): a 30% increase in CDNC.

Observed

NameUnitsDefaultDescription
ΔR_c1Change in cloud albedo from the Twomey effect: ΔR_c = R_c*(1−R_c)/3 * Δln_N — Eq. 24.42.
ΔF_cW/m^2Change in shortwave forcing from the first indirect aerosol effect: ΔF_c = −F_0 * A_c * T_a² * ΔR_c — Eq. 24.43. Negative = cooling (increased albedo reflects more solar radiation).

Observed expressions

$$ ΔR_{c} = \frac{R_{c} \cdot \left(1 + \left(-1\right) \cdot R_{c}\right)}{3} \cdot Δln_{N} $$

Change in cloud albedo from the Twomey effect: ΔR_c = R_c*(1−R_c)/3 * Δln_N — Eq. 24.42.

$$ ΔF_{c} = \left(-1\right) \cdot F_{0} \cdot A_{c} \cdot T_{a}^{2} \cdot ΔR_{c} $$

Change in shortwave forcing from the first indirect aerosol effect: ΔF_c = −F_0 * A_c * T_a² * ΔR_c — Eq. 24.43. Negative = cooling (increased albedo reflects more solar radiation).

Analyses

indirect_forcing_vs_cdnc_change

Indirect aerosol forcing ΔF_c as a function of fractional CDNC change Δln_N at the default parameters (R_c=0.5, F_0=1370 W/m², A_c=0.6, T_a=0.76). The linear Twomey relationship gives ΔF_c ≈ −10.4 W/m² for a 30% CDNC increase (Δln_N = ln(1.3) ≈ 0.262). Illustrates how the indirect forcing scales with the anthropogenic perturbation to cloud droplet number.

Time span: 0.0 → 1.0

Swept over: Δln_N

Indirect shortwave forcing ΔF_c (W/m²) as a function of fractional CDNC change Δln_N. The linear relationship reflects the Twomey susceptibility; cooling (negative ΔF_c) increases with CDNC perturbation.

cloud_albedo_change_vs_Rc

Change in cloud albedo ΔR_c as a function of background cloud albedo R_c at fixed Δln_N = ln(1.3) ≈ 0.262 (30% CDNC increase). The parabolic Twomey susceptibility S = R_c*(1−R_c)/3 peaks at R_c = 0.5, so clouds with intermediate albedo respond most strongly to aerosol perturbations. Connects to the CloudAlbedoSensitivity component.

Time span: 0.0 → 1.0

Swept over: R_c

Cloud albedo change ΔR_c as a function of background cloud albedo R_c. The symmetric parabola peaks at R_c = 0.5 (maximum Twomey susceptibility) and vanishes at R_c = 0 and R_c = 1.

Indirect shortwave forcing ΔF_c (W/m²) as a function of background cloud albedo R_c. Same parabolic shape as ΔR_c — forcing is most negative at R_c = 0.5.

forcing_sensitivity_to_cloud_fraction

Indirect forcing ΔF_c as a function of cloud fraction A_c at fixed Δln_N = ln(1.3) and R_c = 0.5. The linear dependence on A_c reflects that indirect forcing is proportional to the fraction of sky covered — more cloud means more total forcing. Covers the realistic range A_c ∈ [0.1, 1.0].

Time span: 0.0 → 1.0

Swept over: A_c

Indirect forcing ΔF_c (W/m²) as a function of cloud fraction A_c. Linear relationship — at A_c = 0.6 (global mean) ΔF_c ≈ −10.4 W/m².

Raw .esm

Raw .esm JSON (this component)
{
  "reference": {
    "citation": "Seinfeld, J. H., and Pandis, S. N. (2006). Atmospheric Chemistry and Physics: From Air Pollution to Climate Change, 2nd Edition, Chapter 24, Section 24.8.2, Equations 24.42–24.43.",
    "notes": "source_ref: Aerosol.jl@c8c640bb:src/aerosol_radiative_forcing.jl:306\nFirst indirect aerosol effect (Twomey/cloud-albedo effect). Aerosols acting as CCN increase cloud droplet number concentration N at fixed liquid water content, reducing mean droplet radius and increasing cloud optical depth and albedo. The Twomey susceptibility S = dR_c/d(ln N) = R_c*(1-R_c)/3 (Eq. 24.41) gives the change in cloud albedo per fractional change in N: ΔR_c = S * Δln_N (Eq. 24.42). Eq. 24.43 converts ΔR_c to a top-of-atmosphere shortwave forcing: ΔF_c = -F_0 * A_c * T_a² * ΔR_c. The negative sign reflects that increased cloud albedo cools by reflecting more incoming solar radiation.\n\nAfter MTK structural_simplify, the two algebraic equations reduce to zero ODE states — both ΔR_c and ΔF_c are pure observed bindings. The standalone model treats R_c as a fixed parameter (default 0.5, peak susceptibility); coupling with CloudAlbedo would promote R_c to a shared variable.\n\nTolerance rationale (model-level rel=1e-8 / abs=1e-12): both outputs are short products of bounded dimensionless parameters. ΔR_c is a four-factor product (R_c, 1-R_c, 1/3, Δln_N); ΔF_c is a five-factor product (F_0, A_c, T_a², ΔR_c) — float64 roundoff accumulates to ~4 ULP, well within rel=1e-8. abs=1e-12 floors the Δln_N → 0 limit where both outputs vanish."
  },
  "variables": {
    "F_0": {
      "type": "parameter",
      "units": "W/m^2",
      "default": 1370.0,
      "description": "Incident solar flux"
    },
    "A_c": {
      "type": "parameter",
      "units": "1",
      "default": 0.6,
      "description": "Cloud fraction (dimensionless)"
    },
    "T_a": {
      "type": "parameter",
      "units": "1",
      "default": 0.76,
      "description": "Atmospheric transmittance (dimensionless)"
    },
    "R_c": {
      "type": "parameter",
      "units": "1",
      "default": 0.5,
      "description": "Cloud albedo (dimensionless). At R_c = 0.5 the Twomey susceptibility S = R_c*(1-R_c)/3 is maximised (1/12 ≈ 0.0833)."
    },
    "Δln_N": {
      "type": "parameter",
      "units": "1",
      "default": 0.262,
      "description": "Fractional change in cloud droplet number concentration, Δln(N) = ln(N₁/N₀) (dimensionless). Default ≈ ln(1.3): a 30% increase in CDNC."
    },
    "ΔR_c": {
      "type": "unknown",
      "units": "1",
      "description": "Change in cloud albedo from the Twomey effect: ΔR_c = R_c*(1−R_c)/3 * Δln_N — Eq. 24.42."
    },
    "ΔF_c": {
      "type": "unknown",
      "units": "W/m^2",
      "description": "Change in shortwave forcing from the first indirect aerosol effect: ΔF_c = −F_0 * A_c * T_a² * ΔR_c — Eq. 24.43. Negative = cooling (increased albedo reflects more solar radiation)."
    }
  },
  "equations": [
    {
      "lhs": "ΔR_c",
      "rhs": {
        "op": "*",
        "args": [
          {
            "op": "/",
            "args": [
              {
                "op": "*",
                "args": [
                  "R_c",
                  {
                    "op": "+",
                    "args": [
                      1,
                      {
                        "op": "*",
                        "args": [
                          -1,
                          "R_c"
                        ]
                      }
                    ]
                  }
                ]
              },
              3
            ]
          },
          "Δln_N"
        ]
      }
    },
    {
      "lhs": "ΔF_c",
      "rhs": {
        "op": "*",
        "args": [
          -1,
          {
            "op": "*",
            "args": [
              "F_0",
              {
                "op": "*",
                "args": [
                  "A_c",
                  {
                    "op": "*",
                    "args": [
                      {
                        "op": "^",
                        "args": [
                          "T_a",
                          2
                        ]
                      },
                      "ΔR_c"
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  ],
  "tolerance": {
    "rel": 1e-08,
    "abs": 1e-12
  },
  "tests": [
    {
      "id": "eq_24_43_default_30pct_cdnc_increase",
      "description": "Reproduces the upstream Aerosol.jl 'Indirect Forcing - Section 24.8.2 Validation' testitem. At the canonical 30% CDNC increase (Δln_N = ln(1.3) ≈ 0.262), R_c = 0.5, F_0 = 1370 W/m², A_c = 0.6, T_a = 0.76: ΔR_c ≈ 0.02186 and ΔF_c ≈ −10.38 W/m². Upstream asserts ΔR_c ≈ 0.0219 rtol=0.05, ΔF_c < 0, |ΔF_c| ∈ (5, 20) W/m²; we pin the exact analytic float64 values.",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.5,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.021863688705624253
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": -10.380599542214963
        },
        {
          "variable": "ΔR_c",
          "time": 1.0,
          "expected": 0.021863688705624253
        },
        {
          "variable": "ΔF_c",
          "time": 1.0,
          "expected": -10.380599542214963
        }
      ]
    },
    {
      "id": "zero_cdnc_change_no_forcing",
      "description": "Boundary condition: Δln_N = 0 (no change in CDNC) yields ΔR_c = 0 and ΔF_c = 0 exactly — no cloud albedo change, no indirect forcing.",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.5,
        "Δln_N": 0.0
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.0
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": 0.0
        }
      ]
    },
    {
      "id": "linearity_double_delta_lnN",
      "description": "Linearity check: doubling Δln_N doubles both ΔR_c and ΔF_c because both formulas are linear in Δln_N. At 2*ln(1.3) ≈ 0.5247, ΔR_c and ΔF_c are exactly twice the Δln_N=ln(1.3) values.",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.5,
        "Δln_N": 0.5247285289349821
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.043727377411248505
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": -20.761199084429926
        }
      ]
    },
    {
      "id": "twomey_symmetry_low_albedo",
      "description": "Twomey susceptibility symmetry: S(R_c) = R_c*(1-R_c)/3 is symmetric about R_c = 0.5, so S(0.1) = S(0.9). ΔR_c at R_c = 0.1 matches ΔR_c at R_c = 0.9 (within float64 roundoff).",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.1,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.007870927934024732
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": -3.7370158351973872
        }
      ]
    },
    {
      "id": "twomey_symmetry_high_albedo",
      "description": "Twomey susceptibility symmetry: S(0.9) = S(0.1) = 0.1*0.9/3. ΔR_c and |ΔF_c| at R_c = 0.9 are equal to those at R_c = 0.1 (symmetric partner). Upstream asserts S(0.1) ≈ S(0.9) — we pin the exact analytic value.",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.9,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.00787092793402473
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": -3.7370158351973863
        }
      ]
    },
    {
      "id": "twomey_symmetry_quarter_and_threequarter",
      "description": "Exact binary-fraction symmetry pair: R_c = 0.25 and R_c = 0.75 give identical ΔR_c = 0.25*0.75/3 * Δln_N (both are exact in float64). Confirms S(R_c) = S(1-R_c) for a rational symmetric pair.",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.25,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.01639776652921819
        }
      ]
    },
    {
      "id": "cloud_fraction_scaling",
      "description": "Linear scaling with cloud fraction A_c: at A_c = 0.3 (half of default), |ΔF_c| is halved. Indirect forcing scales linearly with the fraction of sky covered by cloud.",
      "parameter_overrides": {
        "F_0": 1370.0,
        "A_c": 0.3,
        "T_a": 0.76,
        "R_c": 0.5,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.021863688705624253
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": -5.190299771107481
        }
      ]
    },
    {
      "id": "solar_flux_scaling",
      "description": "Linear scaling with incident solar flux F_0: at F_0 = 685 W/m² (half of default), |ΔF_c| is halved (ΔR_c is unchanged). Indirect forcing scales linearly with the available solar resource.",
      "parameter_overrides": {
        "F_0": 685.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.5,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "assertions": [
        {
          "variable": "ΔR_c",
          "time": 0.0,
          "expected": 0.021863688705624253
        },
        {
          "variable": "ΔF_c",
          "time": 0.0,
          "expected": -5.190299771107481
        }
      ]
    }
  ],
  "analyses": [
    {
      "id": "indirect_forcing_vs_cdnc_change",
      "description": "Indirect aerosol forcing ΔF_c as a function of fractional CDNC change Δln_N at the default parameters (R_c=0.5, F_0=1370 W/m², A_c=0.6, T_a=0.76). The linear Twomey relationship gives ΔF_c ≈ −10.4 W/m² for a 30% CDNC increase (Δln_N = ln(1.3) ≈ 0.262). Illustrates how the indirect forcing scales with the anthropogenic perturbation to cloud droplet number.",
      "parameters": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "R_c": 0.5
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "Δln_N",
            "range": {
              "start": 0.0,
              "stop": 0.6,
              "count": 60,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "dF_c_vs_delta_lnN",
          "type": "line",
          "description": "Indirect shortwave forcing ΔF_c (W/m²) as a function of fractional CDNC change Δln_N. The linear relationship reflects the Twomey susceptibility; cooling (negative ΔF_c) increases with CDNC perturbation.",
          "x": {
            "variable": "Δln_N",
            "label": "Fractional CDNC change Δln(N)"
          },
          "y": {
            "variable": "ΔF_c",
            "label": "Indirect forcing ΔF_c (W/m²)"
          }
        }
      ]
    },
    {
      "id": "cloud_albedo_change_vs_Rc",
      "description": "Change in cloud albedo ΔR_c as a function of background cloud albedo R_c at fixed Δln_N = ln(1.3) ≈ 0.262 (30% CDNC increase). The parabolic Twomey susceptibility S = R_c*(1−R_c)/3 peaks at R_c = 0.5, so clouds with intermediate albedo respond most strongly to aerosol perturbations. Connects to the CloudAlbedoSensitivity component.",
      "parameters": {
        "F_0": 1370.0,
        "A_c": 0.6,
        "T_a": 0.76,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "R_c",
            "range": {
              "start": 0.01,
              "stop": 0.99,
              "count": 60,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "dR_c_vs_R_c",
          "type": "line",
          "description": "Cloud albedo change ΔR_c as a function of background cloud albedo R_c. The symmetric parabola peaks at R_c = 0.5 (maximum Twomey susceptibility) and vanishes at R_c = 0 and R_c = 1.",
          "x": {
            "variable": "R_c",
            "label": "Cloud albedo R_c"
          },
          "y": {
            "variable": "ΔR_c",
            "label": "Cloud albedo change ΔR_c"
          }
        },
        {
          "id": "dF_c_vs_R_c",
          "type": "line",
          "description": "Indirect shortwave forcing ΔF_c (W/m²) as a function of background cloud albedo R_c. Same parabolic shape as ΔR_c — forcing is most negative at R_c = 0.5.",
          "x": {
            "variable": "R_c",
            "label": "Cloud albedo R_c"
          },
          "y": {
            "variable": "ΔF_c",
            "label": "Indirect forcing ΔF_c (W/m²)"
          }
        }
      ]
    },
    {
      "id": "forcing_sensitivity_to_cloud_fraction",
      "description": "Indirect forcing ΔF_c as a function of cloud fraction A_c at fixed Δln_N = ln(1.3) and R_c = 0.5. The linear dependence on A_c reflects that indirect forcing is proportional to the fraction of sky covered — more cloud means more total forcing. Covers the realistic range A_c ∈ [0.1, 1.0].",
      "parameters": {
        "F_0": 1370.0,
        "T_a": 0.76,
        "R_c": 0.5,
        "Δln_N": 0.26236426446749106
      },
      "time_span": {
        "start": 0.0,
        "end": 1.0
      },
      "parameter_sweep": {
        "type": "cartesian",
        "dimensions": [
          {
            "parameter": "A_c",
            "range": {
              "start": 0.1,
              "stop": 1.0,
              "count": 40,
              "scale": "linear"
            }
          }
        ]
      },
      "plots": [
        {
          "id": "dF_c_vs_A_c",
          "type": "line",
          "description": "Indirect forcing ΔF_c (W/m²) as a function of cloud fraction A_c. Linear relationship — at A_c = 0.6 (global mean) ΔF_c ≈ −10.4 W/m².",
          "x": {
            "variable": "A_c",
            "label": "Cloud fraction A_c"
          },
          "y": {
            "variable": "ΔF_c",
            "label": "Indirect forcing ΔF_c (W/m²)"
          }
        }
      ]
    }
  ]
}