Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Indoor Swimming Pool temperature

asked 2023-11-17 12:17:32 -0600

therealtorte's avatar

updated 2023-11-24 09:27:14 -0600

Keigo's avatar

Hey everyone! My first question here. I am modeling a large sports facility in OpenStudio. The main area of the building is covered by a large olympic indoor pool that I created in Openstudio via CLI. I set the pool in a service water loop heated by a gas boiler, and I set a setpoint temperature for the pool water at 27 °C. After running the simulation and extracting data from E+ I noticed that the boiler works inconsistently and the pool basically never reaches its setpoint temperature. Does anyone knows why this happens? Osm and screenshot attached


edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2023-11-17 17:19:45 -0600

updated 2023-11-20 12:11:26 -0600

@therealtorte, not a pool expert. Hopefully, experienced E+ pool/plant users can chime in.

I simply replaced the water heater with an autosized gas-fired boiler. Seems to do the trick (pool water temperature at a constant ~27°C).

pool boiler

Supply temperature is always coming out at 35°C, despite resetting some of the scheduled values (I must be overlooking something). EDIT: Had skipped over the Plant:Loop settings, where the max loop T° was originally set at 35°C. If you ensure supply temperature settings at e.g. 75°C (boiler, loop, setpoint manager schedule "Sciorba Temperature AC Vasca"), then the average flow rate will drop.


Tested against a much colder climate, the boiler/loop is supplying ~75°C and meeting the target 27°C. If you're investigating the impact of water temperature setbacks or flush + maintenance + refill + re/heat scenarios, then adjust the Loop Design Temperature Difference, e.g. (75°C - 10°C =) 65K rather than (75°C - 27°C =) 48K. This would level up the (autosized) maximum flow rate.


You need both a high supply temperature and adequately-sized flow rate to melt that 4-month (!) reheat period down to hopefully a few days. The nearest olympic/competition swimming facility here (cold climate) states that it takes 6 days to refill the pool (e.g. maintenance), and up to 3 days to reheat to 28°C.

Best of luck.

EDIT: @therealtorte, I'm coming up empty handed with your 2-pool configuration - sorry. Switching to constant flow rates (with a bypass), adjusting loop volumes, hard sizing, etc.; results remain as you observed (the deeper pool remains cold, while the shallower pool meets the setpoint). This may be a bug, possibly related to this recent fix for E+ 23.2 (still an issue?), or related to this. I suggest you triple-check to make sure the inputs to the main (2m-deep) pool/loop/boiler are the same between both models you have submitted (I noticed the "Sciorba Temperatura AC Vasca" values may have been different), and consider submitting an issue (while referring to this UMH post). Alternatively, you could try hard sizing EVERY input related to the pools, loops, boilers (i.e. no autosizing). Buona fortuna!

2nd EDIT: OK, likely not a bug; guess I'm just getting acquainted with E+ pool parameters. Got it working fairly well, with the following adjustments:

  • unless specified below, parameters are left autosized
  • many parameters were adapted from this test file (implementing this one)
  • max supply temperature (e.g. "Sciorba Temperatura AC Vasca" schedule, max boiler/loop settings) reset to 80°C
  • switched to continuously running pumps, modulating between a (low) turnover flow rate and a (high) heating flow rate
  • the turnover flow rate is set at 0.01 m3/s for the shallow pool, 0.03 for the deeper pool (~3x volume); adjust as you see fit (e.g. filtration)
  • the heating flow rate is maintained at 0.1 m3/s for the shallow pool, yet reset to 0.85 m3/s for the deeper pool ...
edit flag offensive delete link more


Thanks! Seems fine to me. Do you know if there is a way to set up an initial condition for the water temperature? Because with the inlet temp at 35C it takes 4 months to reach the 27C for the pool... Otherwise I could run the simulation for 2yrs and discard the first, is that correct? Thanks for your help!

therealtorte's avatar therealtorte  ( 2023-11-18 04:31:51 -0600 )edit

@therealtorte, I updated my initial suggestions.

Denis Bourgeois's avatar Denis Bourgeois  ( 2023-11-18 07:38:56 -0600 )edit

Just tested it works perfectly fine thank you so much!

therealtorte's avatar therealtorte  ( 2023-11-18 07:48:33 -0600 )edit

I still have some strange behaviour. After successfully modeling the main pool (Vasca Principale) following your suggestions I duplicated the loop and added a second pool (Vasca Scioglimento) which is present in the lower level, next to the main pool. When running simulations withe the two pools, the small one meets the setpoint while the main one, previously working good, goes crazy See models and results attached here If you have time to look at it would you be so kind to give me your opinion?Thanks!

therealtorte's avatar therealtorte  ( 2023-11-18 09:04:49 -0600 )edit

I'll try to look into it ... (see edit to the initial response).

Denis Bourgeois's avatar Denis Bourgeois  ( 2023-11-18 14:11:09 -0600 )edit

answered 2023-11-22 21:56:03 -0600

Keigo's avatar

updated 2023-11-22 21:57:05 -0600

A few additions.

  • This issue was already fixed in V23-2-0. Just updating your idf file solves your problem.
  • This issue is not fixed yet in V23-2-0. At this moment, the hot water flow rate supplied to SwimmingPool:Indoor varies according to the heating demand, and the excess water is bypassed.
  • Design Loop Exit Temperature of 75°C in Sizing:Plant is too hot. It should be 35°C to 45°C, but no worries, the supply water temperature is 35°C because your supply water setpoint (Sciorba Temperatura AC Vasca) is 35°C. Sizing:Plant is only used to autosize the boiler capacity[kW] (= Specific heat of water[kJ/(kg·°C)] * Density of water[kg/m3] *Pool Heating System Maximum Water Flow Rate[m3/s] * Loop Design Temperature Difference[°C]).
  • Minimum Loop Temperature in PlantLoop should be 15°C (Make-up Water Temperature) rather than 27°C (Pool Setpoint Temperature).
  • Make-up Water Supply Schedule at DesignDays (i.e., "Hot Water Temperature Summer Design Day 3" and "Hot Water Temperature Winter Design Day 3") is set to 60°C. I think this is a mistake. It should be 15°C.
  • I think there is no way to set the initial condition of Indoor Pool Water Temperature. EnergyPlus uses a warm-up period to achieve a periodic initial condition for simulation. After the warming up period, EnergyPlus sets the first day’s starting conditions the same as the end of that day. You can post a new issue as a NewFeatureRequest to request the additiona input field for the initial condition of the pool water temperature.
  • Unlike reality, EnergyPlus does not consider Average Depth to calculate heat transfer between a swimming pool and adjacent environments. It is only used for calculating the water volume.

But what is more interesting to me is that your earlier model suggests another bug in SwimmingPool:Indoor: When the heating capacity of the heat source (e.g., boiler) is insufficient, it can happen that the hot water loop (boiler and pump) does not turn on even if the pool water temperature is below the setpoint.

I reproduced the bug with the ExampleFile 5ZoneSwimmingPool.idf (V23-2-0). I revised the model a bit:

  • Nominal Capacity of Boiler:HotWater was hardsized to 10000W.
  • The heating setpoints for zones and outdoor air were set to -50°C so as to eliminate space heating.
  • Setpoint Temperature Schedule of SwimmingPool:Indoor was changed from always 27°C to the following.

(This change is important. EnergyPlus developers should test not only at the constant setpont but also at the variable setpoint).

    PoolSetpointTempSched,   !- Name
    Any Number,              !- Schedule Type Limits Name
    Through: 12/31,          !- Field 1
    For: AllDays,            !- Field 2
    Until: 6:00,  16.67,     !- Field 4
    Until: 20:00,  27,       !- Field 6
    Until: 24:00,  16.67;    !- Field 8

The chart below shows the hourly results of Indoor Pool Water Temperature and Indoor Pool Inlet Water Mass Flow Rate during the first two weeks of January. Boiler:HotWater and Pump:VariableSpeed never turn on after ... (more)

edit flag offensive delete link more


Thank you very much for the time you took to look into my problem. I really appreciate your suggestions and corrections!

therealtorte's avatar therealtorte  ( 2023-11-24 13:42:36 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2023-11-17 12:17:32 -0600

Seen: 154 times

Last updated: Nov 24