Aller au contenu

Networks and heat sources data model

The thermal network is the supply side of the study: the pipes that distribute the working fluid, the substations that connect buildings to it, and the energy centers and heat sources that produce the heat. This page describes how those pieces are organised — what design decisions you make at each level, and how the model represents them.

For the project/scenario container, see Projects, scenarios, and the data model. For the district and buildings the network serves, see Districts and buildings data model.

The network at a glance

A thermal network is a graph of nodes (the points where pipes meet, where buildings tap in, where heat is produced) and edges (the pipes that carry the fluid between them), together with the engineering parameters that govern fluid, dispatch, and finance.

flowchart LR D["🗺️ District"] --> TN["🔥 Thermal network"] TN --> NODES["Nodes<br/>━━━━━━━━<br/>⚙️ Energy centers<br/>🔌 Building substations<br/>● Pipe junctions"] TN --> EDGES["Edges<br/>━━━━━━━━<br/>━━ Backbone pipes<br/>━ Building connectors<br/>━ Energy-center connectors"] TN --> FL["💧 Working fluid<br/>━━━━━━━━<br/>Type (water / glycol mix)<br/>Supply / return temps"] TN --> MD["Mode<br/>━━━━━━━━<br/>Heating, cooling, or both"] TN --> FIN["💰 Network costs<br/>and tariffs"] TN --> DC["📈 Aggregate<br/>demand curve"] classDef district fill:#a5d6a7,stroke:#1b5e20,stroke-width:2px,color:#1b5e20 classDef network fill:#ffab91,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef thermal fill:#fff3e0,stroke:#ED6000,stroke-width:1.5px,color:#bf360c classDef finance fill:#fffde7,stroke:#f9a825,stroke-width:1.5px,color:#f57f17 classDef fluid fill:#bbdefb,stroke:#0d47a1,stroke-width:1.5px,color:#0d47a1 class D district class TN network class NODES,EDGES,MD,DC thermal class FIN finance class FL fluid

Three engineering decisions made at the network level shape almost everything that follows:

  • The mode. Heating, cooling, or combined heating-and-cooling. This determines which demands the heat sources have to meet and which simulation paths apply.
  • The supply and return temperatures. Together with the working fluid these define the network's "generation" — high-temperature 4-pipe, low-temperature 4-pipe, anergy / 5G — and constrain what kinds of source and substation are sensible. See Network generations.
  • The working fluid. Water for most warm networks; a glycol mix for cold networks where freeze protection is needed. The model uses fluid properties to compute density, viscosity, and heat capacity, which feed the pipe-sizing and pumping calculations.

The aggregate demand curve is the hourly thermal demand the network must serve, summed from connected building substations. The dispatcher uses it to decide which sources run when.

Node types: junctions, substations, energy centers

The three node types play distinct engineering roles even though they share a position in the graph.

flowchart TD EC["⚙️ Energy center<br/>where heat is produced"] BS["🔌 Building substation<br/>where heat is delivered"] CP["● Pipe junction<br/>where pipes branch"] EC -.injects heat into.- TN BS -.extracts heat from.- TN CP -.routes flow in.- TN TN["🔥 Network"] classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef bs fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#bf360c classDef cp fill:#ffffff,stroke:#bf360c,stroke-width:1.5px,color:#bf360c classDef network fill:#ffab91,stroke:#bf360c,stroke-width:2px,color:#bf360c class EC ec class BS bs class CP cp class TN network
  • Energy centers are where you install one or more heat sources — boilers, heat pumps, biomass plants, geothermal heat pumps using a borehole field. A small network usually has one; a larger network may have a base-load energy center plus a peaking unit elsewhere on the trunk.
  • Building substations are the interface between a building (or a small group of buildings sharing one connection) and the network. The substation type — direct, heat exchanger, or booster heat pump — determines how heat is transferred at that interface.
  • Pipe junctions are pure routing nodes. No heat is added or removed there. They show up wherever the topology branches.

Both energy centers and building substations can hold one or more circulation pumps.

Building substation types

The connection type at a building substation depends on the network's supply temperature relative to what the building needs.

flowchart LR DI["Direct<br/>━━━━━━━━<br/>Network water<br/>circulates in<br/>building system"] HX["Heat exchanger<br/>━━━━━━━━<br/>Hydraulic separation<br/>between network<br/>and building"] BHP["Booster heat pump<br/>━━━━━━━━<br/>Network is cold;<br/>HP at building<br/>lifts the temperature"] classDef direct fill:#ffe0b2,stroke:#e65100,stroke-width:1.5px,color:#bf360c classDef hx fill:#ffe0b2,stroke:#e65100,stroke-width:1.5px,color:#bf360c classDef bhp fill:#ffe0b2,stroke:#e65100,stroke-width:1.5px,color:#bf360c class DI direct class HX hx class BHP bhp

The choice has knock-on effects: a booster-heat-pump substation needs an electrical supply and contributes its own efficiency and emissions to the dispatch picture. A heat exchanger introduces a temperature drop that must be accounted for in the network supply temperature.

Edges: pipes and connectors

There are three kinds of edge in the graph. They share most of their data — geometry, dimensions, flow, hydraulics — but they connect different types of node.

flowchart LR EC["⚙️ Energy<br/>center"] J1["●"] J2["●"] BS1["🔌 Substation"] BS2["🔌 Substation"] EC ===|"━━ EC connector"| J1 J1 ===|"━━ backbone pipe"| J2 J1 ===|"━ building connector"| BS1 J2 ===|"━ building connector"| BS2 classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef bs fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#bf360c classDef cp fill:#ffffff,stroke:#bf360c,stroke-width:1.5px,color:#bf360c class EC ec class BS1,BS2 bs class J1,J2 cp
  • Backbone pipes form the trunk-and-branch (or looped) topology between junctions.
  • Building connectors are the short pipes from a junction on the backbone to a building substation. They have one extra parameter — an active fraction between 0 and 1 — that lets you partially or fully deactivate a building's connection without removing it from the topology, useful when you're modelling phased connections.
  • Energy-center connectors are the analogous short pipes from an energy center to a junction.

What gets stored on each pipe:

flowchart LR P["━━ Pipe"] GEO["Geometry<br/>━━━━━━━━<br/>Length<br/>Altitude difference"] DIM["Dimensions<br/>━━━━━━━━<br/>Nominal diameter<br/>Inner diameter"] FLOW["Flow<br/>━━━━━━━━<br/>Mass flow rate<br/>Volumetric flow<br/>Velocity"] HYD["Hydraulics<br/>━━━━━━━━<br/>Head loss (Darcy-Weisbach)<br/>Pressure loss"] EN["Energy<br/>━━━━━━━━<br/>Heat transported<br/>Heat losses<br/>Power"] LIFE["Cost &amp; life<br/>━━━━━━━━<br/>Investment cost<br/>Construction year"] P --- GEO P --- DIM P --- FLOW P --- HYD P --- EN P --- LIFE classDef pipe fill:#ffab91,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef field fill:#fff3e0,stroke:#ED6000,stroke-width:1.5px,color:#bf360c class P pipe class GEO,DIM,FLOW,HYD,EN,LIFE field

A network that has been laid out but not yet sized has its geometry and topology populated; dimensions are filled in by the pipe-sizing step; flow, hydraulics, and energy fields are populated by the simulation. This is why a freshly laid-out network shows zero head loss and zero heat loss until you run the dimensioning and simulation.

See Network sizing and hydraulics for the sizing method and Heat loss and simulation for what the simulator computes.

Heat sources at an energy center

A single energy center usually has more than one heat source — a base-load unit plus a peaking unit, or a primary unit plus a back-up. TESSA models each as a separate object so the dispatcher can choose between them, the cost engine can sum CAPEX and OPEX correctly, and the report can attribute energy and emissions to each fuel.

flowchart TD EC["⚙️ Energy center"] EC --> TS1["🔥 Source 1<br/>e.g. heat pump<br/>(base load)"] EC --> TS2["🔥 Source 2<br/>e.g. gas boiler<br/>(peaking)"] EC --> TS3["🔥 Source 3<br/>e.g. solar thermal<br/>(seasonal supplement)"] classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef src fill:#fff3e0,stroke:#ED6000,stroke-width:2px,color:#bf360c class EC ec class TS1,TS2,TS3 src

What each heat source carries:

flowchart LR TS["🔥 Heat source"] OP["Operation<br/>━━━━━━━━<br/>Mode (heating / cooling / both)<br/>Efficiency / COP / SPF<br/>Order in dispatch"] PWR["Sizing<br/>━━━━━━━━<br/>Rated power useful<br/>Rated power final<br/>Annual energy useful / final"] FU["Fuel<br/>━━━━━━━━<br/>Price (currency / kWh)<br/>CO₂ intensity (kg / kWh)"] SC["Result<br/>━━━━━━━━<br/>Hourly supply curve<br/>Full-load hours"] FIN["Costs<br/>━━━━━━━━<br/>Investment per kW<br/>Fixed &amp; variable O&amp;M<br/>Lifetime"] EM["Emissions<br/>━━━━━━━━<br/>CO₂eq, NOx, CO,<br/>SOx, PM10, PM2.5"] TS --- OP TS --- PWR TS --- FU TS --- SC TS --- FIN TS --- EM classDef src fill:#fff3e0,stroke:#ED6000,stroke-width:2px,color:#bf360c classDef field fill:#ffe0b2,stroke:#e65100,stroke-width:1.5px,color:#bf360c classDef finance fill:#fffde7,stroke:#f9a825,stroke-width:1.5px,color:#f57f17 class TS src class OP,PWR,SC,EM field class FU,FIN finance

Two pairs of figures are worth understanding clearly:

  • Useful vs final power and energy. Useful is what is delivered to the network; final is what is consumed as fuel or electricity. The ratio is the source's efficiency or COP. Reports use both — useful for sizing and dispatch, final for cost and emissions.
  • Marginal cost and marginal CO₂. Computed automatically as (1 / efficiency) × fuel_price and (1 / efficiency) × fuel_CO₂. These drive merit-order dispatch when several sources can meet demand.

How sources are chosen at each hour — strict merit order, must-run, capacity-share — is governed by the allocation strategy set on the energy center. See Multiple sources allocation.

The same heat-source object is also used at building substations when the substation type is "booster heat pump" — the booster HP is a heat source attached to the substation rather than to an energy center.

Borehole fields

A borehole field is a special kind of heat source — a ground-coupled exchanger that a heat pump uses as its cold source. Because one field can be referenced by either an energy center (a central ground source heat pump) or by several building substations (a network of booster HPs sharing a common loop), it lives at the scenario level rather than inside any one substation.

flowchart TD SC["📄 Scenario"] --> BF["🌍 Borehole field"] EC["⚙️ Energy center"] -.uses as ground source.-> BF BS["🔌 Building substation"] -.uses as ground source.-> BF BF --> CFG["Configuration<br/>━━━━━━━━<br/>Number and layout<br/>of boreholes<br/>Spacing"] BF --> DSGN["Borehole design<br/>━━━━━━━━<br/>Single or double U-tube<br/>Pipe radii<br/>Length, depth<br/>Grout"] BF --> GR["Ground<br/>━━━━━━━━<br/>Thermal conductivity<br/>Volumetric heat capacity<br/>Undisturbed temperature"] BF --> FL["Working fluid<br/>━━━━━━━━<br/>Water or glycol mix"] BF --> RG["Regeneration sources<br/>━━━━━━━━<br/>Solar thermal, dry cooler,<br/>residual heat, …"] BF --> OP["Result<br/>━━━━━━━━<br/>Hourly fluid temperatures<br/>Hourly extracted / injected<br/>Thermal balance ratio"] classDef scenario fill:#c5cae9,stroke:#000072,stroke-width:2px,color:#000072 classDef bf fill:#d7ccc8,stroke:#3e2723,stroke-width:2px,color:#3e2723 classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef bs fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#bf360c classDef field fill:#efebe9,stroke:#5d4037,stroke-width:1.5px,color:#3e2723 class SC scenario class BF bf class EC ec class BS bs class CFG,DSGN,GR,FL,RG,OP field

The pieces that matter for design:

  • Configuration and design. The number, spacing, and depth of boreholes; whether they are single or double U-tube. All boreholes in a single field share the same design.
  • Ground. The thermal conductivity, volumetric heat capacity, and undisturbed ground temperature of the local geology. These come from a Test de Réponse Thermique (TRT) where available, or from typical regional values.
  • Regeneration sources. Heat sources whose job is to inject heat into the ground in summer to balance winter extraction. Without regeneration, a heating-dominated field cools the ground over years and the heat pump's COP drifts down. The thermal balance ratio (annual injection ÷ annual extraction) is the key number to watch — typically you want it near 1 for a long-lived field.
  • The working fluid. Often a glycol mix because borehole loops can run below 0 °C, even when the rest of the network is on water.

Borehole fields have their own simulation that produces hourly fluid temperatures and the field's contribution to the heat pump's COP. See Geothermal borehole fields.

Pumps and the hydraulic loop

Pumps live at substations — at energy centers and at building substations — and are part of the hydraulic loop calculation rather than the heat-source dispatch.

flowchart LR SS["⚙️ / 🔌 Substation"] --> PM["💧 Pump"] PM --- RP["Rated power"] PM --- EFF["Efficiency"] PM --- FL["Design flow"] PM --- HD["Head"] PM --- LIFE["Cost &amp; lifetime"] classDef ss fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef pump fill:#bbdefb,stroke:#0d47a1,stroke-width:2px,color:#0d47a1 classDef field fill:#e3f2fd,stroke:#1565c0,stroke-width:1.5px,color:#0d47a1 class SS ss class PM pump class RP,EFF,FL,HD,LIFE field

The simulator solves the network's pressure losses to determine the head the pump must overcome, then sizes the pump's rated power from the design flow, head, and assumed efficiency. Pump electricity consumption shows up in the network's operating costs and in its CO₂ figures.

Putting it all together

The diagram below shows a simple but complete picture: one energy center with a heat-pump-plus-boiler portfolio, three building substations on a short backbone, and a borehole field acting as the ground source for the heat pump.

flowchart TD EC["⚙️ Energy center<br/>HP + boiler"] EC --> ECC["━━ EC connector"] ECC --> J1["● Junction 1"] J1 ===|"━━ backbone"| J2["● Junction 2"] J1 -->|"━ connector"| BS1["🔌 Substation A<br/>direct"] J2 -->|"━ connector"| BS2["🔌 Substation B<br/>heat exchanger"] J2 -->|"━ connector"| BS3["🔌 Substation C<br/>booster HP"] BS1 -.serves.-> B1["🏠 Building"] BS2 -.serves.-> B2["🏠 Buildings"] BS3 -.serves.-> B3["🏠 Building"] EC -.- HS1["🔥 Heat pump"] EC -.- HS2["🔥 Gas boiler"] HS1 -.cold source.-> BF["🌍 Borehole field"] classDef ec fill:#ffccbc,stroke:#bf360c,stroke-width:2px,color:#bf360c classDef bs fill:#ffe0b2,stroke:#e65100,stroke-width:2px,color:#bf360c classDef cp fill:#ffffff,stroke:#bf360c,stroke-width:1.5px,color:#bf360c classDef pipe fill:#ffab91,stroke:#bf360c,stroke-width:1.5px,color:#bf360c classDef src fill:#fff3e0,stroke:#ED6000,stroke-width:1.5px,color:#bf360c classDef bldg fill:#a5d6a7,stroke:#1b5e20,stroke-width:1.5px,color:#1b5e20 classDef bf fill:#d7ccc8,stroke:#3e2723,stroke-width:2px,color:#3e2723 class EC ec class BS1,BS2,BS3 bs class J1,J2 cp class ECC pipe class HS1,HS2 src class B1,B2,B3 bldg class BF bf

The pieces here are everything you need for a first-pass design:

  • A topology that says where heat enters and leaves the network.
  • Three substation types representative of what you'd see in a real district with mixed building stock.
  • A heat-source portfolio that lets the dispatcher choose between a low-marginal-cost heat pump (limited by capacity) and a higher-marginal-cost boiler that picks up the peaks.
  • A borehole field that ties the heat pump's COP to the ground temperature and to whatever regeneration you put in place.

Where to go next