OpenSWMM Engine  6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
SurfaceExchange.cpp File Reference

Phase H2 body — latent/sensible surface exchange. More...

#include "SurfaceExchange.hpp"
#include <algorithm>
#include <cmath>
#include "../../../core/SimulationContext.hpp"
Include dependency graph for SurfaceExchange.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::transport
 
namespace  openswmm::transport::heat
 

Functions

double openswmm::transport::heat::airTempCelsius (const SimulationContext &ctx) noexcept
 Convert held native climate air temperature from Fahrenheit to Celsius.
 
double openswmm::transport::heat::relaxT (double j0, double j1, double h, double area_m2, double vol_m3, double dt, double rho, double cp) noexcept
 One element's temperature change, integrated SEMI-IMPLICITLY [°C].
 
double openswmm::transport::heat::equilibriumT (double t0_c, double j0, double j1, double h) noexcept
 Compute the positive-damping linearized equilibrium temperature.
 
double openswmm::transport::heat::saturationVapourPressure (double t_c) noexcept
 Compute saturation vapor pressure from the Magnus water-temperature formula.
 
double openswmm::transport::heat::latentHeatOfVaporization (double t_c) noexcept
 Compute temperature-dependent latent heat of vaporization.
 
double openswmm::transport::heat::windFunction (double wind_ms, double a, double b) noexcept
 Evaluate the mass-transfer wind function with nonnegative wind speed.
 
double openswmm::transport::heat::evaporationRate (double t_water_c, double t_air_c, double humidity_pct, double wind_ms, double a, double b) noexcept
 Compute signed vapor-deficit-driven water surface evaporation velocity.
 
double openswmm::transport::heat::latentFlux (double t_water_c, double t_air_c, double humidity_pct, double wind_ms, double a, double b, double water_density) noexcept
 Convert signed surface evaporation into outward latent heat flux.
 
double openswmm::transport::heat::bowenRatio (double t_water_c, double t_air_c, double humidity_pct, double pressure_ratio) noexcept
 Compute the dimensionless Bowen sensible-to-latent ratio at held weather.
 
double openswmm::transport::heat::sensibleFlux (double latent_flux, double bowen_ratio) noexcept
 Form signed outward sensible flux from latent flux and Bowen ratio.
 
double openswmm::transport::heat::surfaceFluxOut (const SimulationContext &ctx, const HeatElement &elem, double t_w) noexcept
 Evaluate one element's enabled latent+sensible outward atmospheric flux.
 

Detailed Description

Phase H2 body — latent/sensible surface exchange.

D-H5e moved the node and link BINDING out of this file into HeatFluxes.cpp. What remains is the formulation plus one evaluator, surfaceFluxOut, which is this module's contribution to a single net flux. Owning a binding of its own is what let this module and RadiativeExchange each relax separately toward their own equilibrium.

Author
Caleb Buahin caleb.nosp@m..bua.nosp@m.hin@g.nosp@m.mail.nosp@m..com
License
Apache-2.0