Temps
- AdjustedLayerThickness
model
urban_canopy
temps
Adjusted top layer thickness for pervious and impervious road surfaces in the urban canopy thermal scheme. The adjustment compensates for the offset between the layer-averaged temperature carried by the finite-volume soil column and the surface temperature used in the surface-energy-balance kernel, using the tunable Yang (1998) coefficient c_a = 0.34. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:601 (`AdjustedLayerThickness` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.30. Parameterized as observed-only: z_i, z_h_im1, z_ip1, c_a are inputs (parameters); Δz_star is the algebraic output.
- BuildingTemperature
model
urban_canopy
temps
Weighted-average internal building temperature from canyon and roof surface temperatures, implementing Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.37–4.38. The roof length L_roof in an infinite canyon (Eq. 4.38) and the unclamped building temperature T_iB_unclamped (Eq. 4.37) are both algebraic functions of the canyon geometry (H_canyon, H_W, W_roof) and the inner-surface temperatures of the shaded wall, sunlit wall, and roof. T_iB is the area-weighted average with the two walls contributing 2*H_canyon of effective length and the roof contributing L_roof. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:401 (`BuildingTemperature` @component). NOTE: the migration-tracker entry listed `blocking_gap: other:discretization-plan` citing line :1152, but that line belongs to `RoofWallHeatConduction` (a separate non-exported helper function). `BuildingTemperature` itself is a pure two-equation algebraic `@component` with no PDESystem or MOLFiniteDifference — this migration is unblocked.
- ExponentialGrid
model
urban_canopy
temps
Exponential vertical grid discretization for pervious and impervious road columns in the urban canopy thermal solver. Computes node depths (Oleson Eq. 4.8), layer thicknesses (Eq. 4.6), and interface depths (Eq. 4.7) with a scaling factor f_s = 0.025 m that produces finer resolution near the surface — a requirement because urban roads overlie real soil and the near-surface diurnal cycle dominates thermal exchange. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:890 (`ExponentialGrid` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.1, Eqs. 4.6-4.8). Parameterized as observed-only: f_s is the only input parameter; z_node_i, dz_layer_i, z_interface_j are algebraic outputs. Upstream `N` (number of layers) is fixed to its canonical default 15 for serialization (per-N templating lives outside the ESM scalar schema and is not needed for the urban-canopy use case).
- FreezingPointDepression
model
urban_canopy
temps
Maximum liquid water content in a soil layer below the freezing point, following the supercooled-soil-water freezing-point depression treatment of Niu and Yang (2006). Below T_f, liquid coexists with ice via the matric-potential / latent-heat balance of Oleson et al. (2010) Eq. 4.58; above T_f, the layer holds the fully-saturated maximum Δz·θ_sat·ρ_liq. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:949 (`FreezingPointDepression` @component). Parameterized as observed-only: T_i, θ_sat, Δz, ψ_sat, B_i, ρ_liq are inputs (parameters); w_liq_max is the algebraic output.
- HeatFlux
model
urban_canopy
temps
Vertical heat flux across the interface between two soil/snow/road/wall/roof layers via the finite-difference discretization of Fourier's law of heat conduction (Oleson et al. 2010 Eq. 4.11). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:312 (`HeatFlux` @component). Implements the canonical layer-pair flux F = -λ_interface * (T_i - T_{i+1}) / (z_{i+1} - z_i), positive upward (heat flowing from layer i+1 to layer i, i.e. from deeper layer to shallower layer when stacking depth-increasing-downward). λ_interface is the harmonic-mean interface conductivity (Eq. 4.12), produced upstream by InterfaceThermalConductivity from the adjacent-layer bulk conductivities. Parameterized as observed-only with one algebraic equation: F is the state variable; λ_interface, T_i, T_ip1, z_i, z_ip1 are inputs (parameters in standalone form, wired to upstream components in a full column build).
- HeatingCoolingFlux
model
urban_canopy
temps
Heating/cooling fluxes through the building floor for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:638 (`HeatingCoolingFlux` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.51 and 4.52: the building uses HVAC to clamp the internal building temperature T_iB to the prescribed comfort window [T_iB_min, T_iB_max]. The combined floor flux F_combined is the Crank-Nicholson average of F_bottom_n (time n) and F_bottom_np1 (time n+1) per Eq. 4.53/4.54; if T_iB falls below T_iB_min the absolute value of F_combined is reported as the heating flux F_heat (Eq. 4.51); if T_iB rises above T_iB_max the absolute value is reported as the cooling flux F_cool (Eq. 4.52); inside the comfort window both F_heat and F_cool are zero (no HVAC demand). Parameterized as observed-only with three algebraic equations: F_combined, F_heat, F_cool are state variables; T_iB, T_iB_min, T_iB_max, F_bottom_n, F_bottom_np1 are inputs (parameters in standalone form).
- InterfaceThermalConductivity
model
urban_canopy
temps
Thermal conductivity at the interface between two adjacent thermal layers of the urban canopy column. Implements the conductivity-weighted harmonic mean (Oleson et al. 2010, CLM Tech Note Ch. 4, Eq. 4.12) derived from continuity of conductive heat flux across the interface (Eq. 4.13). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:278 (`InterfaceThermalConductivity` @component). Parameterized as observed-only: λ_i, λ_ip1, z_i, z_ip1, z_h are inputs (parameters); λ_interface is the algebraic output.
- LayerPhaseChangeEnergy
model
urban_canopy
temps
Per-layer phase change energy for the urban canopy snow/soil thermodynamics: the energy required to change a single layer's ice mass from w_ice_n at time n to w_ice_np1 at time n+1 over time step Δt (Oleson et al. 2010 Eq. 4.73). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1037 (`LayerPhaseChangeEnergy` @component). The column-summed output of this component over all layers is the E_p_layers input of `TotalPhaseChangeEnergy` (Eq. 4.72). Parameterized as observed-only: w_ice_n, w_ice_np1, Δt are inputs (parameters); E_p is the algebraic output.
- PhaseChangeAdjustment
model
urban_canopy
temps
Per-layer phase-change adjustment for ice/liquid water redistribution and temperature correction in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:686 (`PhaseChangeAdjustment` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.60–4.65: given the excess/deficit energy H_i (W/m²) available for phase change in layer i (from `PhaseChangeEnergy`), recompute ice mass w_ice^{n+1}, liquid water mass w_liq^{n+1}, and layer temperature T^{n+1}. Melting occurs when H_i > 0 (surplus energy melts ice up to available mass); freezing occurs when H_i < 0 (deficit energy freezes liquid water). Residual energy H_res = H_i - L_f*(w_ice^n - w_ice^{n+1})/Δt that cannot drive further phase change adjusts the layer temperature. The upstream MTK component is parameterized at construction time by `layer_type ∈ {:interior, :top}`. The two variants share equations 1–4 (Eqs. 4.60–4.64) and differ only in Eq. 4.65 (temperature correction): the :top variant divides by (1 - (Δt/(c_i*Δz_i))*dh_dT) to account for the linearized surface-heat-flux feedback; the :interior variant uses the denominator = 1 (no surface feedback). Both variants are unified here via a dimensionless switch parameter `is_top` (0.0 = interior, 1.0 = top), identical to the unification strategy used by the sibling `PhaseChangeEnergy` component. NOTE: the migration-tracker entry for this component listed `blocking_gap: other:discretization-plan` citing line :1227, but that line belongs to `RoadHeatConduction` (a separate non-exported helper function). `PhaseChangeAdjustment` itself is a pure algebraic MTK `@component` with no PDESystem or MOLFiniteDifference — this migration is unblocked.
- PhaseChangeEnergy
model
urban_canopy
temps
Per-layer energy excess/deficit available for phase change in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:496 (`PhaseChangeEnergy` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.59 for layer i: the imbalance between net heat fluxes (Crank-Nicholson average of times n and n+1) and the thermal storage required to bring the layer to the freezing point T_f. When H_excess > 0 the layer has surplus energy that can melt ice; when H_excess < 0 it has deficit energy that can freeze liquid water. The upstream MTK component is parameterized at construction time by `layer_type ∈ {:interior, :top}`. The two variants share a Crank-Nicholson bottom-flux contribution and the thermal-storage term but differ in the upper boundary: the :top variant adds a surface heat flux `h_n + dh_dT*(T_f - T_i_n)` (Eq. 4.59 for i = snl+1), while the :interior variant subtracts the upper-interface Crank-Nicholson flux `α_CN*F_im1_n + (1-α_CN)*F_im1_np1` (Eq. 4.59 for i > snl+1). Both variants are merged here into a single algebraic equation switched by an `is_top` dimensionless parameter (0.0 = interior, 1.0 = top); both upstream test fixtures pass against this merged form with the appropriate parameter set.
- SnowLayerGeometry
model
urban_canopy
temps
Single-layer snow-pack geometry for the CLMU urban canopy thermal stack: given the total snow depth z_sno, computes the bottom-layer thickness, node depth, and top interface depth used by the snow conduction column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:33 (`SnowLayerGeometry` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) §4.1 Eqs. 4.9-4.10 in the simplest snl = -1 (single snow layer) regime, where Δz_0 = z_sno (pp. 92-93). Parameterized as observed-only: z_sno is the input (parameter); Δz_snow_0, z_node_snow_0, z_interface_snow_neg1 are the algebraic outputs of three identity/linear equations.
- SnowMeltNoLayers
model
urban_canopy
temps
Surface snow melt for the no-layer (single-layer-flag) snow model: discrete-time update of snow mass and depth from excess top-soil-layer energy, with residual energy and phase-change diagnostics. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:773 (`SnowMeltNoLayers` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.66-4.71. Parameterized as observed-only: H_1, W_sno_n, z_sno_n, Δt are inputs (parameters); W_sno_np1, z_sno_np1, H_residual, M_1S, E_p1S are algebraic outputs.
- SnowSoilBlendedHeatCapacity
model
urban_canopy
temps
Blended snow/soil heat capacity for the urban canopy top-soil layer when a thin (no-layer) snowpack rides on top: combines the dry soil volumetric heat capacity with the additional contribution of the overlying snow mass. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1003 (`SnowSoilBlendedHeatCapacity` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.88. Parameterized as observed-only: c_soil, W_sno, Δz are inputs (parameters); c_blended is the algebraic output.
- SnowThermalProperties
model
urban_canopy
temps
Thermal conductivity and volumetric heat capacity of an urban-canopy snow layer. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:190 (`SnowThermalProperties` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.3) Eq. 4.84 for snow bulk density, Eq. 4.83 (Jordan 1991 quadratic) for thermal conductivity, and Eq. 4.87 (additive ice + liquid contributions) for volumetric heat capacity. Parameterized as observed-only: w_ice, w_liq, Δz are inputs (parameters); ρ_sno, λ_snow, c_snow are algebraic outputs.
- SoilThermalProperties
model
urban_canopy
temps
Thermal conductivity and volumetric heat capacity for soil layers in the pervious-road column of the urban canopy thermal solver. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:75 (`SoilThermalProperties` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.3): thermal conductivity follows Farouki (1981) using the Kersten-number method (Eqs. 4.77-4.82); volumetric heat capacity follows de Vries (1963) (Eqs. 4.85-4.86). Parameterized as observed-only: pct_sand, pct_clay, θ_sat, θ_liq, T_i, w_ice, w_liq, Δz are inputs (parameters); λ_s, λ_sat, λ_dry, ρ_d, S_r, K_e, λ_soil, c_s, c_soil are algebraic outputs. The component carries two temperature-conditioned `ifelse` branches: λ_sat and K_e switch between frozen (T_i < T_f) and unfrozen (T_i ≥ T_f) regimes, while λ_soil falls back to λ_dry whenever S_r drops below a small numerical threshold.
- 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.
- TotalPhaseChangeEnergy
model
urban_canopy
temps
Column-total phase change energy for the urban canopy snow/soil thermodynamics: the sum of the surface snow melt energy E_p1S (Oleson et al. 2010 Eq. 4.71) and the column-summed per-layer phase change energies E_p_layers (Eq. 4.73). Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:1071 (`TotalPhaseChangeEnergy` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.72. Parameterized as observed-only: E_p1S and E_p_layers are inputs (parameters); E_p_total is the algebraic output.
- UniformGrid
model
urban_canopy
temps
Uniform vertical grid discretization for roof and wall columns in the urban canopy thermal solver. Computes node depths at layer midpoints (Oleson Eq. 4.5), layer thicknesses (Eq. 4.6), and interface depths (Eq. 4.7) for a column of total thickness `dz_total` divided into N equal-thickness layers. Used for roofs and walls (homogeneous opaque material — concrete, brick, etc.); the road column uses the exponential grid (sibling `exponential_grid.esm`) because it overlies real soil where near-surface diurnal cycles dominate. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:830 (`UniformGrid` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4 §4.1, Eqs. 4.5-4.7). Parameterized as observed-only: `dz_total` is the only input parameter; z_node_i, dz_layer_i, z_interface_j are algebraic outputs. Upstream `N` (number of layers) is fixed to its canonical default 15 for serialization (per-N templating lives outside the ESM scalar schema and is not needed for the urban-canopy use case).
- UrbanSurfaceThermalProperties
model
urban_canopy
temps
Prescribed thermal conductivity and volumetric heat capacity for urban surface layers (roof, wall, and impervious road) in the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:245 (`UrbanSurfaceThermalProperties` @component). Implements Section 4.3 of Oleson et al. (2010, CLM Tech Note Ch. 4): for roof, wall, and impervious road layers (i = 1, ..., N_imprvrd) the thermal conductivity λ_surf and the volumetric heat capacity c_surf are specified by the surface dataset (Table 1.3) rather than computed from the layer state. The component takes those prescribed values as parameters and returns them as time-indexed observables — a passthrough/identity wrapper that exposes the surface dataset values on the canonical (λ_surf, c_surf) names the downstream HeatFlux / SurfaceEnergyFlux components consume. Parameterized as observed-only with two algebraic equations: λ_surf and c_surf are state variables; λ_prescribed and c_prescribed are inputs (parameters in standalone form).
- WasteHeatAirConditioning
model
urban_canopy
temps
Waste heat and air-conditioning heat removal aggregation for the urban canopy thermal column. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:440 (`WasteHeatAirConditioning` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eqs. 4.55-4.56: the unclamped total waste heat H_wasteheat_unclamped distributes heating/cooling fluxes from the roof and the two walls (sunlit and shaded) into the canyon air, weighted by the efficiency factors f_heat = 1/0.75 and f_cool = 1/0.25, the roof area fraction W_roof, and the canyon-wall geometry factor (1 - W_roof) * H_W per Eq. 4.55; this is clamped at H_wasteheat_max = 100 W/m^2 to produce H_wasteheat. The air-conditioning heat removal H_aircond is the sum of the three cooling fluxes (F_cool_roof + F_cool_sunwall + F_cool_shdwall) per Eq. 4.56. Parameterized as observed-only with three algebraic equations: H_wasteheat_unclamped, H_wasteheat, H_aircond are state variables; F_heat_roof, F_cool_roof, F_heat_sunwall, F_cool_sunwall, F_heat_shdwall, F_cool_shdwall, W_roof, H_W are inputs (parameters in standalone form).
- WasteHeatAllocation
model
urban_canopy
temps
Allocates the column-total anthropogenic waste heat (H_wasteheat) and air conditioning heat removal (H_aircond) to the pervious and impervious urban road surfaces under the CLMU urban canopy model. Migrated from UrbanCanopy.jl@9200edd4 src/roof_wall_road_snow_temperatures.jl:561 (`WasteHeatAllocation` @component). Implements Oleson et al. (2010, CLM Tech Note Ch. 4) Eq. 4.27: per the CLMU convention, waste heat and air-conditioning heat are deposited ONLY on the pervious and impervious road tiles (walls and roof receive zero by construction); each road tile receives the same per-unit-area flux equal to the column total divided by the non-roof areal fraction (1 - W_roof). Parameterized as observed-only with four algebraic equations: H_wasteheat_prvrd, H_wasteheat_imprvrd, H_aircond_prvrd, H_aircond_imprvrd are state variables; H_wasteheat, H_aircond, W_roof are inputs (parameters in standalone form).