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

Mesh thermal state, including bed energy retained through surface drying. More...

#include <limits>
#include <string>
#include <vector>
#include "GroundHeat.hpp"
#include "LidNodeHeat.hpp"
Include dependency graph for MeshHeat.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmm::twoD::MeshHeatState
 
struct  openswmm::twoD::MeshAtmosphericFlux
 
struct  openswmm::twoD::GroundColumnAssembly
 
struct  openswmm::twoD::GroundColumnAssembly::LidEnergy
 

Namespaces

namespace  openswmm
 
namespace  openswmm::twoD
 

Functions

GroundColumnAssembly openswmm::twoD::appendGroundColumnSystem (const MeshData &mesh, const SolverOptions2D &options, GroundHeatState &owner, int i, MeshHeatState *h, double mass, double volume, double evaporated, double dt, double channel_area, std::vector< ThermalStore > &stores, std::vector< ThermalContact > &contacts, std::vector< ThermalBoundary > &boundaries)
 Append one physical column and its finite surface/LID contacts to a shared thermal graph.
 
double openswmm::twoD::commitGroundColumnSystem (GroundColumnAssembly &a, const ThermalSolution &solved) noexcept
 Publish an accepted shared thermal solution into one assembly's canonical owners.
 
std::string openswmm::twoD::initializeMeshHeat (SimulationContext &ctx, const MeshData &mesh, SurfaceStateData &state, const SolverOptions2D &options, GroundHeatState *aquifer, const std::vector< uint8_t > *coverage)
 Prepare optional surface thermal stores, porewater and physical ground ownership.
 
std::string openswmm::twoD::configureGroundLidOwners (SimulationContext &ctx, const MeshData &mesh, GroundHeatState &owner, const std::vector< GwNodeBed > &beds)
 Map persistent Mesh Richards LID thermal owners onto physical ground cells.
 
void openswmm::twoD::prepareMeshHeat (SimulationContext &ctx, SurfaceStateData &state, double dt)
 Prepare inherited exchange flags, weather and fresh per-cell thermal interval accounting.
 
void openswmm::twoD::advanceRemainingGroundColumns (const MeshData &mesh, const SolverOptions2D &options, SurfaceStateData &state, double seconds) noexcept
 Complete each surface-owned physical ground column's unprocessed router interval.
 
double openswmm::twoD::applyMeshHeatCell (const MeshData &mesh, const SolverOptions2D &options, MeshHeatState &h, int i, double mass, double volume, double evaporated, double dt, bool midpoint) noexcept
 Update one mixed surface thermal sample before accepted intensive water sinks.
 
void openswmm::twoD::advectStandaloneGround (MeshHeatState &h, int i, double volume, double donor) noexcept
 Carry accepted infiltration heat through a standalone saturated physical soil column.
 
double openswmm::twoD::applyLocalBedSpecies (const MeshData &mesh, MeshHeatState &h, int i, int r, double mass, double volume, double dt) noexcept
 Exchange one native surface row with finite bed porewater.
 
double openswmm::twoD::applyLocalBedSpeciesEuler (const MeshData &mesh, MeshHeatState &h, int i, int r, double mass, double volume, double dt)
 Exchange one native surface row with finite bed porewater for an Euler RK2 stage.
 
bool openswmm::twoD::ageLocalBedPorewater (MeshHeatState &h, double dt) noexcept
 Advance the local-storage porewater age inventory without altering water volume.
 

Detailed Description

Mesh thermal state, including bed energy retained through surface drying.

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