24struct GwTransportData;
25struct SubsurfaceTransportState;
49 std::vector<GroundThermalCell>
cells;
53 std::vector<std::vector<GroundLidThermalOwner>>
lid_owners;
107 bool appendSnowContact(
int cell,
double area, std::vector<ThermalBoundary>&)
const;
121 const std::vector<uint8_t>& coverage);
123 const std::vector<unsigned char>& owned);
150 void appendRk2Cuts(
double start,
double end, std::vector<double>&)
const;
180 std::size_t
boundaries(
int cell,
double exposed_fraction, std::vector<ThermalBoundary>&)
const;
191 std::string
conduct(
int cell,
double seconds,
bool midpoint =
false);
Species inventories in fixed physical soil layers.
Local thermal equilibrium in porous ground layers.
Owned mixed degree-day/UEB snow on remaining mesh weather footprints. Geometry area is horizontal m2;...
Definition MeshSnow.hpp:54
Definition GroundHeat.hpp:19
Definition ExchangeLaw.hpp:60
Definition ExchangeLaw.hpp:60
Central, reentrant simulation context.
Definition SimulationContext.hpp:390
Definition GroundHeat.hpp:45
double water_capacity
Definition GroundHeat.hpp:55
bool appendSnowContact(int cell, double area, std::vector< ThermalBoundary > &) const
Append the top-layer boundary representing a reciprocal finite snow/soil contact.
Definition GroundHeat.cpp:525
double zoneTemperature(int cell, bool saturated) const
Read a water-volume-weighted physical-layer temperature for a hydraulic zone.
Definition GroundHeat.cpp:466
SimulationContext * context
Definition GroundHeat.hpp:46
bool active() const noexcept
Test whether the owner has allocated any thermal cell slots.
Definition GroundHeat.hpp:63
double top_now
Definition GroundHeat.hpp:54
std::vector< std::vector< GroundLidThermalOwner > > lid_owners
Definition GroundHeat.hpp:53
void refreshView(int cell, SubsurfaceTransportState &)
Publish canonical physical heat/porewater inventories into the derived groundwater view.
Definition GroundHeat.cpp:561
void appendRk2Cuts(double start, double end, std::vector< double > &) const
Append thermal forcing knots inside a coupled interval after validating series support.
Definition GroundHeat.cpp:426
double snowContactFraction(int cell) const noexcept
Read the active snow-contact footprint fraction.
Definition GroundHeat.cpp:510
std::string initializeStandalone(SimulationContext &, const MeshData &, const GwTransportData &, const std::vector< unsigned char > &owned)
Build fixed saturated physical soil columns for surface-owned transient storage.
Definition GroundHeat.cpp:321
double deep_now
Definition GroundHeat.hpp:54
double density
Definition GroundHeat.hpp:55
bool snowContactEnabled(int cell) const noexcept
Test reciprocal UEB snow/soil thermal contact availability.
Definition GroundHeat.cpp:505
std::size_t boundaries(int cell, double exposed_fraction, std::vector< ThermalBoundary > &) const
Append configured top/deep thermal boundaries for one physical ground column.
Definition GroundHeat.cpp:608
const GwTransportData * config
Definition GroundHeat.hpp:48
std::string initialize(SimulationContext &, const MeshData &, const SubsurfaceState &, const SubsurfaceTransportState &, const GwTransportData &, const std::vector< uint8_t > &coverage)
Build physical aquifer thermal layers and seed conserved energy from resolved moisture.
Definition GroundHeat.cpp:169
std::vector< GroundThermalCell > cells
Definition GroundHeat.hpp:49
void prepare()
Sample top and deep thermal forcing at context.current_date.
Definition GroundHeat.cpp:381
std::string applySnowContactEnergy(int cell, double soil_j)
Publish reciprocal energy to the active snow owner after a soil contact solve.
Definition GroundHeat.cpp:544
double activeCapacity(int cell, std::size_t layer) const noexcept
Remove promised outgoing water capacity from one physical thermal layer.
Definition GroundHeat.cpp:490
void prepareAt(double elapsed_seconds)
Sample top/deep thermal forcing at a coupled elapsed horizon.
Definition GroundHeat.cpp:402
int deep_series
Definition GroundHeat.hpp:56
std::string conduct(int cell, double seconds, bool midpoint=false)
Advance unowned physical-column conduction once after accepted water advection.
Definition GroundHeat.cpp:648
int top_series
Definition GroundHeat.hpp:56
double activeTemperature(int cell, std::size_t layer) const noexcept
Divide physical-layer energy by its unreserved heat capacity.
Definition GroundHeat.cpp:502
surface::MeshSnow * snow_owner
Definition GroundHeat.hpp:47
void clear()
Reset thermal cells, diagnostics, configuration and borrowed bindings to defaults.
Definition GroundHeat.hpp:70
Definition GroundHeat.hpp:41
int node
Definition GroundHeat.hpp:42
int row
Definition GroundHeat.hpp:42
double area
Definition GroundHeat.hpp:43
Definition GroundPorewater.hpp:20
Definition GroundHeat.hpp:26
int failed
Definition GroundHeat.hpp:38
double water_contact_j
Definition GroundHeat.hpp:35
double initial_j
Definition GroundHeat.hpp:34
double deep_j
Definition GroundHeat.hpp:34
GroundPorewaterColumn porewater
Definition GroundHeat.hpp:28
std::vector< double > reserved_out_water
Definition GroundHeat.hpp:33
double source_j
Definition GroundHeat.hpp:34
double latent_j
Definition GroundHeat.hpp:34
double advective_j
Definition GroundHeat.hpp:34
double geo_flux
Definition GroundHeat.hpp:36
PorousHeatColumn column
Definition GroundHeat.hpp:27
bool surface_owned
Definition GroundHeat.hpp:37
double surface_j
Definition GroundHeat.hpp:34
double lid_contact_j
Definition GroundHeat.hpp:35
double channel_contact_j
Definition GroundHeat.hpp:35
std::string error
Definition GroundHeat.hpp:39
std::vector< double > saturated_water
Definition GroundHeat.hpp:29
double vertical_absolute_j
Definition GroundHeat.hpp:36
double lateral_j
Definition GroundHeat.hpp:35
Every [GW_*] authoring row of one model.
Definition GwTransportData.hpp:187
SoA storage for 2D mixed triangle/quad mesh geometry and topology.
Definition MeshData.hpp:65
Definition PorousHeat.hpp:148
Per-cell resolved parameters and state (SoA).
Definition SubsurfaceData.hpp:219
Species mass in both aquifer zones, and where mass crossed a boundary.
Definition SubsurfaceTransportState.hpp:69