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

Phase H6a — solar position, clear-sky irradiance, cloud. More...

#include "Radiation.hpp"
#include <stdexcept>
#include <algorithm>
#include <cmath>
#include "../core/DateTime.hpp"
#include "../core/SimulationContext.hpp"
#include "../data/TableData.hpp"
Include dependency graph for Radiation.cpp:

Namespaces

namespace  openswmm
 
namespace  openswmm::climate
 

Functions

SolarPosition openswmm::climate::solarPosition (int day_of_year, double hour_local, double lat_deg, double lon_deg, double tz_hours) noexcept
 Compute Spencer/NOAA sun geometry at a local civil-clock instant.
 
double openswmm::climate::airMass (double zenith_deg) noexcept
 Compute Kasten-Young relative optical air mass.
 
double openswmm::climate::pressureFromElevation (double elevation_m) noexcept
 Estimate standard-atmosphere station pressure from elevation.
 
double openswmm::climate::birdClearSkyGHI (const SolarPosition &pos, double pressure_mb, const SolarConfig &cfg) noexcept
 Estimate clear-sky global horizontal irradiance with Bird-Hulstrom terms.
 
double openswmm::climate::cloudShortwaveFactor (double cloud_fraction, double k, double n) noexcept
 Compute the cloud attenuation multiplier max(0,1-k*C^n).
 
double openswmm::climate::cloudLongwaveFactor (double cloud_fraction, double k_lw) noexcept
 Compute the cloud atmospheric-emissivity multiplier 1+k_lw*C^2.
 
void openswmm::climate::updateSolarForcing (SimulationContext &ctx, double seconds=1)
 Update shared heat shortwave/cloud forcing with mesh radiation disabled.
 
void openswmm::climate::updateSolarForcing (SimulationContext &ctx, double seconds, bool mesh_enabled)
 Resolve shared incoming heat shortwave and cloud forcing at current_date.
 

Detailed Description

Phase H6a — solar position, clear-sky irradiance, cloud.

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