Radiation
- BlackbodyRadiation
model
gaschem
radiation
Planck's blackbody radiation law (Seinfeld & Pandis 2006 Ch. 4, Eq. 4.2) — the monochromatic emissive power F_B_λ of a blackbody at temperature T as a function of wavelength λ via Planck's constant h, the speed of light c, and the Boltzmann constant k_B: F_B_λ = 2π·c²·h·λ⁻⁵ / (exp(c·h/(k_B·λ·T)) - 1). The component is observed-only: one algebraic equation on one state variable (F_B_λ the monochromatic emissive power per unit wavelength in W/m³) driven by two input parameters (T temperature in K, λ wavelength in m) and four constants (h Planck's constant, c speed of light, k_B Boltzmann constant, π_val mathematical π as a Float64 value). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:73 (`BlackbodyRadiation` @component). The Planck function is the spectral energy density of thermal radiation from an opaque, non-reflective body in thermodynamic equilibrium — the foundational equation of quantum radiative transfer. Integrating F_B_λ over all wavelengths gives the Stefan-Boltzmann total flux σT⁴ (see stefan_boltzmann.esm); the wavelength where F_B_λ peaks is λ_max = b/T from Wien's displacement law (see wien.esm). At the default T=5800 K (Sun's effective surface temperature) and λ=500 nm (visible green, the canonical solar-peak wavelength), F_B_λ ≈ 8.46e13 W/m³ — the peak intensity that anchors the Sun's irradiance at Earth's distance and the solar-driven photochemistry of the atmosphere. At T=300 K (Earth surface) and λ=10 μm (thermal-IR), F_B_λ ≈ 3.12e7 W/m³ — the canonical longwave outgoing radiation peak that drives the planetary energy balance.
- ClimateSensitivity
model
gaschem
radiation
Climate-sensitivity diagnostic (Seinfeld & Pandis 2006 Ch. 4, Eqs. 4.8-4.10) — the linear-response relation between a top-of-atmosphere radiative-forcing perturbation ΔF_net and the resulting change in planetary equilibrium temperature ΔT_e through the no-feedback climate-sensitivity factor λ_0 = 1 / (4·σ·T_e^3) = T_e / (4·F_L). The component is observed-only: four algebraic equations on four state variables (ΔF_net the net forcing, λ_0 the sensitivity factor, ΔT_e the temperature response, F_L the reference longwave flux) driven by three input parameters (T_e the reference equilibrium temperature, ΔF_S the forcing-side perturbation, ΔF_L the longwave-side perturbation) and one constant (σ the Stefan-Boltzmann constant). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:268 (`ClimateSensitivity` @component). The blackbody reference state (F_L = σ·T_e^4) and the analytic differentiation of Stefan-Boltzmann (dF_L/dT_e = 4·σ·T_e^3 → λ_0 = 1 / (4·σ·T_e^3)) together encode the no-feedback Planck response — the only baseline against which feedback-amplified climate sensitivities (water vapor, lapse rate, albedo, cloud) are conventionally reported in IPCC assessments. At Earth's nominal T_e = 255 K the component reproduces the textbook λ_0 ≈ 0.27 K·m^2/W and a CO2-doubling ΔT_e ≈ 1.22 K (S&P Page 105) using a forcing-doubling estimate of 4.6 W/m^2.
- DudhiaSW
model
atmospheric_radiation
dudhia_sw
The Dudhia (1989) shortwave radiation scheme of WRF (ra_sw_physics = 1, SUBROUTINE SWPARA of phys/module_ra_sw.F, WRF 4.8) as a single-column component on the EarthSciDiscretizations grids/column_nonuniform_1d grid (layer index `lev`, layer 1 at the surface; interface index `lev_nodes`, interface 1 the surface, interface NLEV+1 the top of the atmosphere). The scheme is a single downward pass of the direct solar beam S(z) that is depleted by four processes: absorption by water vapour, absorption by cloud, reflection by cloud, and Rayleigh/aerosol scattering. The first three are functions of CUMULATIVE slant paths from the top of the atmosphere, written here as the integrals W(z) = int_z^top rho q_l,eff dz (effective liquid water path, q_l,eff = qc + 0.1 qi + 0.05 qr + 0.02 qs + 0.05 qg) and U(z) = int_z^top rho qv dz (water-vapour path), lowered by the grid's integral_lev_nodes_cumulative_to_top rule: the vapour absorptance A_v(U/mu) is the Lacis-Hansen (1974) fit, the cloud reflectance R_c(mu, alw) and absorptance A_c(mu, alw) are Stephens (1978) tables in alw = log10(W/(mu 1 g/m^2) + 1), and a layer's fractional contribution is the downward increment of each cumulative function across the layer (SWPARA: TOTABS-OLDABS, ALBA-OLDALB, ABSC-OLDABC, clamped at 0). Scattering is a per-layer fraction cssca rho dz / mu. The beam itself is a genuinely sequential sweep, because SWPARA applies each layer's fraction not to S but to partial beams -- vapour absorption to the beam depleted only by cloud and scattering, cloud reflection and absorption to the beam depleted only by scattering and vapour -- which SWPARA bookkeeps with the running sums DABS, DSCLD, DSCA of the raw (unrenormalised) layer fluxes. The beam S and the two partial beams P_vap = SDOWN(1) - DSCLD - DSCA and P_cld = SDOWN(1) - DSCA - DABS are carried as three interleaved cells of ONE causal recurrence V_sweep (esm-spec 4.3.1.1), each step reading the previous triple at a fixed lag; one recurrence because the format forbids an edge between two distinct recurrence variables. The sweep runs top-down, i.e. against the lev index, and a recurrence folds only ascending, so the sweep variables live on the reversed index sets lev_down / lev_down_nodes / sweep (m = 1 the top layer, n = 1 the top of the atmosphere) and are mapped back by the reversal templates; all physics fields stay on lev / lev_nodes (lev_down: m = 1 the top layer, lev = NLEV + 1 - m; lev_down_nodes: n = 1 the top of the atmosphere, lev_nodes = NLEV + 2 - n; layer m lies between nodes m and m + 1). The heating rate is the applied (renormalised) vapour plus cloud absorption of each layer per unit volume, q_abs, divided by rho cp (SWPARA TTEN); the reflected and scattered parts leave the column without heating it, exactly as in SWPARA, and the surface absorbs (1 - albedo) S(surface). The theta tendency is dT/dt divided by the Exner function (SWRAD: RTHRATEN = RTHRATEN + TTEN1D/PI3D). Night: SWPARA returns all-zero when cos(zenith) <= 1e-9 or the top-of-atmosphere irradiance <= 1e-9 W/m^2; here the sweep is evaluated with the formal value mu = 1 at night (a near-zero mu would overflow the 1/mu slant paths) and the outputs gsw, dT/dt, dtheta/dt carry the factor `daylight`, so a night column yields exactly zero heating and surface flux while the internals are formal. Transcribed guards: negative increments clipped to 0, the table argument clamp alw_max, the renormalisation of a layer whose raw depletion exceeds 1 - tau_min (ff, tau; TRANS0 < 1: FF = 99/(...)), and the beam floor S_min (SDOWN = AMAX1(1.E-9, ...)). Not transcribed: the slope-dependent radiation option (slope_rad and its shadow correction of the surface flux) and the WRF-Chem aerosol optical depth terms (aer_dry1, aer_water1, zero without chemistry; the aerosol absorption XABSA is identically 0 in SWPARA). Reference tests: WRF v4.8.0 em_scm_xy single-column dumps from the instrumented fork ctessum-claude/WRF, commit e42a269 (v4.8.0-2-ge42a269e), replayed through that commit's real64 (-fdefault-real-8) standalone kernels/sw_driver; tolerances documented per test.
- DudhiaSWParameters
model
atmospheric_radiation
dudhia_sw
Scheme constants of the Dudhia (1989) shortwave radiation scheme, transcribed from the in-line literals of SUBROUTINE SWPARA in phys/module_ra_sw.F (WRF 4.8). Mounted by the DudhiaSW component as subsystem `par` so that no tuning constant is written inline in the physics. The clear-sky scattering coefficient (namelist swrad_scat, stored by swinit as cssca = swrad_scat * 1e-5 m^2/kg) is a run-time namelist choice and therefore a parameter of the component itself, not of this table. Values are the nominal decimal values of the Fortran source; the real64 kernel build used for the reference tests promotes these default-real literals to binary64 (-fdefault-real-8), so no single-precision rounding note applies here.
- PhotonEnergy
model
gaschem
radiation
Photon energy equation (Seinfeld & Pandis 2006 Ch. 4, Eq. 4.1) — the energy Δε and frequency ν of a photon as a function of wavelength λ via Planck's constant h and the speed of light c: ν = c/λ and Δε = hν, equivalently the chained form Δε = hc/λ. The component is observed-only: two algebraic equations on two state variables (Δε the photon energy in J and ν the frequency in Hz) driven by one input parameter (λ the wavelength) and two constants (h Planck's constant and c the speed of light). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:25 (`PhotonEnergy` @component). The photon energy equation is the foundational quantum-radiative bridge that maps continuous-wave radiation to the discrete photon picture: paired with the Planck spectral distribution (BlackbodyRadiation), Stefan-Boltzmann total flux (StefanBoltzmann), and Wien peak displacement (WienDisplacement), it lets a radiative-transfer model convert spectral irradiance to photon fluxes and back — the quantity needed for actinic-flux / photolysis-rate calculations that drive atmospheric photochemistry (e.g., O2 + hν → 2 O at ~242 nm and O3 + hν → O + O2 at ~310 nm, the two Chapman-cycle photolysis channels). The defaults (λ = 500 nm) give ν ≈ 600 THz and Δε ≈ 3.97e-19 J ≈ 2.48 eV — visible green light, the canonical solar-peak wavelength matching Wien's law applied to T_sun ≈ 5800 K.
- PlanetaryEnergyBalance
model
gaschem
radiation
Planetary equilibrium temperature from the top-of-atmosphere energy balance (Seinfeld & Pandis 2006 Ch. 4 Eqs. 4.5-4.7). The absorbed solar flux F_S = S_0/4 * (1 - R_p), the emitted longwave flux F_L = sigma * T_e^4 (Stefan-Boltzmann law), and at equilibrium F_S = F_L. Solving the constraint gives T_e = (S_0/4 * (1-R_p) / sigma)^(1/4). At canonical Earth values (S_0 = 1370 W/m^2, R_p = 0.3), F_S = F_L = 239.75 W/m^2 and T_e = 255 K (S&P p. 101). Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:211 (`PlanetaryEnergyBalance` @component).
- RadiationFundamentals
model
gaschem
radiation
Composed radiation-fundamentals system from Seinfeld & Pandis (2006) Chapter 4 (Eqs. 4.1-4.11). A pure structural aggregation (no coupling equations) of seven independent components: PhotonEnergy (photon energy-frequency-wavelength relations, Eq. 4.1), BlackbodyRadiation (Planck's law, Eq. 4.2), WienDisplacement (peak emission wavelength, Eq. 4.3), StefanBoltzmann (total emissive power, Eq. 4.4), PlanetaryEnergyBalance (Earth's equilibrium temperature, Eqs. 4.5-4.7), ClimateSensitivity (temperature response to forcing, Eqs. 4.8-4.10), and TOARadiativeForcing (net top-of-atmosphere flux, Eq. 4.11). Each component is inlined as a named subsystem; variables are dot-namespaced (RadiationFundamentals.<subsystem>.<var>). Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:367 (`RadiationFundamentals` @component).
- RRTMColumn
model
atmospheric_radiation
rrtm_lw
The RRTM radiation column that WRF builds from a model column (SUBROUTINE MM5ATM and the column-amount part of SETCOEF in phys/module_ra_rrtm.F, WRF 4.8): the NLEV model layers plus NBUF buffer layers above the model top, on the index sets `rlay` (RRTM layers, 1 = lowest, NLEV + NBUF members) and `rlev` (RRTM levels, 1 = surface, NLEV + NBUF + 1 members). MM5ATM: (1) the model part is a plain copy in the bottom-up order shared by this grid (PZ(L) = Pw(kte+1-L) undoes the top-down order of the wrapper's 1-D arrays): pz = p_e/100 hPa, tz = T_e, pavel = p/100, tavel = T for the model layers; (2) the buffer part continues the column to p = 0 in steps of deltap = 4 hPa (pz[j] = p_top - deltap (j - NLEV - 1) for the NBUF - 1 full buffer levels, then pz[NLEV+NBUF+1] = 0, so the top buffer layer is thinner) with layer pressures the level means; (3) buffer temperatures follow the MM5 standard atmosphere T_std(p) (the 60-point PPROF/TPROF table, linear in pressure, clamped to its 0.10 hPa end; template standard_atmosphere_temperature) shifted so that it is continuous at the model top, tz = T_std(pz) + (T_e[top] - T_std(p_top)), and tavel the level means; (4) the dry-air column of every layer coldry = (dp/g)(N_A/amm)/(1 + w) in molecules/cm^2 with w the water-vapour volume mixing ratio (qv amdw, floored at 1e-12 kg/kg, in the model layers; the constant 5e-6 above the model top) and amm = (1 - w) amd + w amw the moist molecular weight; (5) the scaled molecular column amounts of SETCOEF, col_x = 1e-20 coldry vmr_x for H2O, CO2 (co2vmr), N2O (n2ovmr) and CH4 (ch4vmr), all uniform above the model top except H2O (the O2 column COLO2 is identically 0, because MM5ATM never fills WKL(7), and RRTM's longwave bands do not read it); (6) the longwave cloud optical depth of the model layers, taucloud = abcw CLWP + abice CIWP + abrn PLWP + absn PIWP with the paths in g/m^2 (CLWP = rho qc dz, the ice path likewise, and the (rho q)^0.75 rain and snow paths), 0 above the model top, and the layer cloud fraction cldfrac = cldfra forced to 1 where taucloud > 0.01 and 0 above the model top; (7) the surface boundary temperature tbound = tsk capped at 339.99 K (the Planck table limit) and the 16-band surface emissivity semiss = emiss. NOT in this component: the ozone column colo3, which MM5ATM takes from the O3DATA annual-mean climatology (31-bin layer-mean average of the summer/winter tables, INIRAD) evaluated on the EXTENDED column PZR -- a pressure-weighted mean of a piecewise-constant profile that will be written as an `integral` over pressure in the next pass (the dumped o3prof is the same climatology on the model column only and is not what colo3 uses; they differ by 33 %); the 1e-32 floors of SETCOEF on zero CO2/N2O/CH4 columns (never active with the WRF trace-gas inputs); and the cross-section species WX (all zero in WRF). NBUF is a metaparameter because RRTMINIT fixes it once from the model top, NLAYERS = kme + nint(p_top/(100 deltap)) - 1, i.e. NBUF = nint(p_top/(100 deltap)); 44 for the reference column with p_top = 177.6 hPa. Inputs are REWRITE-TARGET ops `input_<name>` that the consumer lowers (in the inline tests through a per-test expression_template_imports library extracted from the WRF dumps). Ozone (added 2026-09-06): the annual-mean O3DATA climatology of MM5ATM/O3PROF2 as the layer integral of a piecewise-constant profile, including WRF's one-layer shift (EqWeFiC FORTRAN_BUGS.md B5), and colo3. EqWeFiC, cited here for FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RRTMLWHeating
model
atmospheric_radiation
rrtm_lw
Longwave heating of a model column from the RRTM up- and downwelling fluxes (WRF ra_lw_physics = 1, SUBROUTINE RTRN heating-rate loop 7000 and the TTEN/GLW/OLR mapping of SUBROUTINE RRTM in phys/module_ra_rrtm.F, WRF 4.8), written as the pressure-coordinate flux-divergence PDE dT/dt = -(g/cp) dF_net/ds, s = p_sfc - p on the EarthSciDiscretizations grids/column_nonuniform_1d grid. The grid's interface coordinate `ze` is here the PRESSURE DISTANCE ABOVE THE SURFACE s = p_e[1] - p_e (Pa, monotone increasing with lev), so the grid's layer measure dz is the layer pressure thickness p_e[k] - p_e[k+1] and the imported face_flux_D_lev_supplied_faces rule lowers D(F_net, lev) to (F_net[k+1] - F_net[k]) / (p_e[k] - p_e[k+1]); with the RRTM value of g/cp (HEATFAC) this is exactly RTRN's HTR(L-1) = HEATFAC (FNET(L-1) - FNET(L)) / (PZ(L-1) - PZ(L)), L = 1..NLAYERS, PZ in hPa, HTR in K/day, verified against the instrumented WRF dumps to real32 roundoff (this is the convention the instrumentation pass could not reproduce: HTR(L-1), not HTR(L), is the heating of layer L, and HTR(NLAYERS) is simply set to 0). Column mapping: RRTM indexes its column BOTTOM-UP like this grid -- RRTM layer L is model layer L for L <= NLEV (MM5ATM: PAVEL(L) = p(kte+1-L) undoes the top-down ordering of the RRTMLWRAD 1-D arrays), RRTM level L is the model interface L+1 (PZ(0) the surface p8w(1), PZ(NLEV) the model top p_top) -- and MM5ATM extends the column above p_top with NLAYERS - NLEV buffer layers of thickness deltap = 4 hPa down to PZ(NLAYERS) = 0 (temperatures from a standard profile offset to match the model top, constant water vapour 5e-6, model-top CH4/N2O, climatological ozone) so that the fluxes at the model interfaces include the emission of the atmosphere above the model top. Only the fluxes at the NLEV+1 MODEL interfaces enter this component (inputs F_up, F_dn of shape [lev_nodes], the first NLEV+1 entries of TOTUFLUX/TOTDFLUX); the buffer layers are heated by RTRN but their heating is discarded (RRTM: TTEN(K) = HTR(kte-K)/86400 for K = 1..kte, in the wrapper's top-down order). Outputs: dTdt (K/s, WRF TTEN reversed to bottom-up), dthdt = dTdt/exner (the increment RRTMLWRAD adds to RTHRATEN), glw = F_dn at the surface (GLW = TOTDFLUX(0)) and olr = F_up at the MODEL TOP (WRF sets OLR = TOTUFLUX(kte), the upward flux at p_top, not TOTUFLUX(NLAYERS) at the top of the RRTM column; the two differ by 3-7 W/m^2 in the reference run). The fluxes themselves (the RTRN two-stream sweep over 140 g-points and the gas optics) are the later stages of the RRTM transcription; this component is the flux-to-tendency stage that every longwave scheme shares. Inputs are REWRITE-TARGET ops `input_<name>` that the consumer lowers (in the inline tests through a per-test expression_template_imports library extracted from the WRF dumps, because esm-spec 6.6 parameter_overrides admit scalars only). EqWeFiC, cited here for FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- RRTMParameters
model
atmospheric_radiation
rrtm_lw
Scheme constants of WRF's RRTM longwave radiation (ra_lw_physics = 1, phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997), collected as named parameters so that no literal appears inline in the RRTM components. Physical constants shared with the rest of WRF live in lib/wrf_constants.esm; the values here are the ones RRTM hard-wires for itself, several of which deliberately differ from WRF's (HEATFAC uses g = 9.8066 m/s^2 and cp = 1.004 kJ/(kg K), not WRF's 9.81 and 1004.5). Mounted as subsystem `par` by the RRTM components.
- RTRNSweep
model
atmospheric_radiation
rrtm_lw
RRTM longwave radiative transfer (SUBROUTINE RTRN of phys/module_ra_rrtm.F, WRF 4.8; Mlawer et al. 1997, Iacono's CCM revision): from the quantised gas optical depths ITR and Planck fractions PFRAC of GASABS, the cloud optical depths and fractions, and the layer/level temperatures of the extended RRTM column, compute the Planck sources, the one-angle (diffusivity-angle, secant 1.66) downward and upward radiance sweeps for all 140 g-points with the RRTM cloud-fraction overlap, the clear-sky sweeps, the band-summed and total up/down fluxes, and RRTM's heating rates HTR/HTRC. The two sweeps are esm-spec 4.3.1.1 recurrences over the level index (one per g-point): each level's radiance is the previous level's radiance transmitted through the intervening layer plus that layer's emission, a genuinely sequential integration of the Schwarzschild equation that has no closed form once the layer sources vary (EqWeFiC CLAUDE.md: recurrences are reserved for sequential sweeps such as two-stream up/down passes). Layer 1 of rlay is the lowest RRTM layer (surface), level 1 of rlev the surface; the downward sweep is written on a top-counted index and gathered back so that the recurrence reads strictly earlier cells. Gas optics (GASABS/TAUGB1-16) are not part of this component: ITR and PFRAC are inputs, computed by rrtm_gas_optics.esm. EqWeFiC, cited here for CLAUDE.md, FORTRAN_BUGS.md, couplings/ and components/atmospheric_dynamics/wrf_arw/, is https://github.com/EarthSciML/EqWeFiC, where these components were developed and are coupled into a WRF column.
- StefanBoltzmann
model
gaschem
radiation
Stefan-Boltzmann law for blackbody radiation — Seinfeld & Pandis (2006) Ch. 4 Eq. 4.4. Total emissive power F_B of a blackbody at temperature T integrated over all wavelengths: F_B = σ·T^4, where σ = 5.671×10⁻⁸ W·m⁻²·K⁻⁴. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:164 (`StefanBoltzmann` @component). One observed binding (F_B) over two parameters (T input + σ as a fixed-default parameter encoding the upstream `@constants` block per the rig convention of translating `@constants` to fixed-default parameters so units flow through MTK's unit checker — matches sibling clmu_atmosphere.esm/surface_energy_flux.esm). Closed-form algebraic: after mtkcompile the system has zero ODE states and the inline-test runner exercises F_B at its observed algebraic value.
- SurfaceEnergyFlux
model
urban_canopy
temps
Net surface heat flux and its derivative with respect to surface temperature for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:347 (`SurfaceEnergyFlux` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.26, 4.28, and 4.29: the surface heat flux h is the algebraic sum of absorbed solar radiation, net longwave radiation, sensible heat, latent heat, and waste/AC heat (Eq. 4.26); the longwave-derivative diagnostic dL_g_dT = 4*epsilon_g*sigma_SB*T_g_n^3 (Eq. 4.29) is the Stefan-Boltzmann temperature derivative of the upward longwave emission at the current surface temperature; the total flux derivative dh_dT = -dL_g_dT - dH_g_dT - dlambdaE_g_dT (Eq. 4.28) drives the linearized Crank-Nicholson scheme of Eq. 4.19. Parameterized as observed-only: S_g, L_g, H_g, lambdaE_g, H_wasteheat_g, H_aircond_g, epsilon_g, T_g_n, dH_g_dT, dlambdaE_g_dT are inputs (parameters); h, dL_g_dT, dh_dT are the algebraic state outputs.
- TOARadiativeForcing
model
gaschem
radiation
Top-of-atmosphere (TOA) radiative-flux balance for a 0-D planetary climate model, following Seinfeld & Pandis (2006) Chapter 4 Eq. 4.11. Implements the net incoming flux F_net = S_0/4 · (1 - R_p) - F_L as a single algebraic relation between the absorbed shortwave flux F_S = S_0/4 · (1 - R_p) (Eq. 4.5, the spherical-projection factor of 1/4 accounts for the planet receiving solar flux over its cross-section πR² but emitting over its full surface 4πR²) and the outgoing longwave flux F_L (input parameter, typically supplied by the sibling PlanetaryEnergyBalance / StefanBoltzmann components in this domain). Sign convention: positive F_net means the planet is gaining energy (warming); negative F_net means losing energy (cooling). At default parameters (S_0=1370 W/m², R_p=0.3, F_L=239.75 W/m²) the planet is in exact radiative equilibrium (F_net = 0). Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:327 (`TOARadiativeForcing` @component). Sibling component to PhotonEnergy (Eq. 4.1), BlackbodyRadiation (Eq. 4.2), WienDisplacement (Eq. 4.3), StefanBoltzmann (Eq. 4.4), PlanetaryEnergyBalance (Eqs. 4.5-4.7), ClimateSensitivity (Eqs. 4.8-4.10) — together they compose the upstream RadiationFundamentals (radiation_fundamentals.jl:367) system.
- UrbanRadiation
model
urban_canopy
Urban albedos and radiative fluxes for the Community Land Model Urban (CLMU) parameterization, following Chapter 2 of Oleson et al. (2010). Computes view factors, incident direct beam and diffuse solar radiation, absorbed and reflected solar radiation (with closed-form multi-reflection solution for the urban canyon), incident longwave radiation, and absorbed/reflected/emitted longwave radiation for urban surfaces: roof, sunlit wall, shaded wall, and road. The urban canyon is represented as an infinitely long canyon of width W bordered by buildings of height H. The iterative multi-reflection scheme (Eqs. 2.63-2.85, 2.138-2.170) is solved in closed form using the matrix geometric series S_absorbed = (I - A) * (I - T*A)^{-1} * S_0, where A is the albedo matrix, T is the view-factor transport matrix, and S_0 is the initial incident radiation vector. Migrated from UrbanCanopy.jl@9200edd4 src/albedos_radiative_fluxes.jl:27 (`UrbanRadiation` @component). Parameterized as observed-only: H_W, W_roof, S_atm_*, L_atm_down, μ_zen, surface albedos α_*, emissivities ε_*, and surface temperatures T_* are inputs (parameters); 62 view factor, intermediate, absorbed-flux, and reflected-flux quantities are algebraic state outputs.
- WienDisplacement
model
gaschem
radiation
Wien's displacement law (Seinfeld & Pandis 2006 Ch. 4, Eq. 4.3) — the peak emission wavelength λ_max of a blackbody at temperature T is given by the simple inverse relation λ_max = b / T where b is Wien's displacement constant (2.897×10⁻³ m·K). The component is observed-only: one algebraic equation on one state variable (λ_max the peak wavelength) driven by one input parameter (T the temperature) and one constant (b the displacement constant). No time derivatives, no PDE, no coupling. Migrated from GasChem.jl@8c12c048 src/radiation_fundamentals.jl:121 (`WienDisplacement` @component). Wien's law is one half of the radiative-transfer toolkit for blackbody emission: paired with the Stefan-Boltzmann law σT⁴ (total emitted power) and the Planck function (spectral distribution), it lets a radiative-transfer model identify which spectral region a body's emission concentrates in. The 5800 K Sun peaks at ~500 nm (visible green); the 255 K Earth peaks at ~10 μm (thermal infrared); the 3 K cosmic microwave background peaks at ~1 mm (microwave). The temperature-inverse scaling means hotter sources emit at shorter wavelengths — the canonical fact behind the visible spectrum of stars (red giants vs blue dwarfs) and the separation of solar (shortwave) from terrestrial (longwave) radiation that anchors the planetary energy balance.