Data center cooling: 1 MW IT load on warm-water free cooling — a NRTL process flowsheet
A 1 MW data hall cooled the way modern halls are: a warm-water loop — chilled-water supply at 27 °C rather than the legacy 7 °C — picks up the IT heat (10 K rise at 24 kg/s), hands it across a plate exchanger to a condenser-water loop, and an evaporative cooling tower rejects all of it to an 18 °C wet bulb with a 6 K approach. No chiller runs: that is free cooling, and it is only possible because the supply is warm — a 7 °C loop cannot be served by a tower whose water cannot get below the wet bulb plus its approach, which is the whole reason the industry moved to warm-water and ASHRAE's wider allowable envelopes. The tower reports the numbers a data-center operator is judged on: 24.6 mol/s (0.44 kg/s) of evaporation and 32.8 mol/s of makeup water at four cycles of concentration — the water-usage effectiveness (WUE) story. Sweep the IT load and watch the makeup water scale with it. Honest scope: the IT load is a specified duty (no per-rack or airflow model); both loops are drawn open, supply to return, where a plant recirculates with makeup; the tower is a heat and water balance with a Merkel characteristic, not a fill-vendor rating; and a thermal_storage block on the chilled loop would give the ride-through buffer a real hall carries for a chiller or tower trip.
1 views 0 forks
- Rigorous NRTL thermodynamics, solved by the same engine every simulation runs on.
- 3 unit operations modeled: IT LOAD, Plate HX, Tower.
- Focus areas: Data center, Free cooling, Cooling tower, Warm-water cooling, WUE.
- Thermodynamics
- NRTL
- Components
- water
- Unit operations
- IT LOADPlate HXTower
Opens in a new tab, loaded straight into the app — no setup.
Read the step-by-step guideReproduce this exact result from Python — the real client.get_example() → run_and_wait() path, not a mockup.
from flowsim.sdk import FlowSimClient
client = FlowSimClient()
example = client.get_example("data-center-warm-water-cooling")
sim = client.create_simulation(example["title"], example["flowsheet"])
result = client.run_and_wait(sim["id"])
print(result["status"]) # "converged"
streams = client.streams(sim["id"])Related models
Cooling-water tower (Merkel sizing)
A process cooling-water utility: a hot ethanol-water process stream is cooled against cooling water in a counter-current exchanger, and the warmed cooling water is then sent to an evaporative cooling tower that rejects the picked-up heat to ambient air and returns it cold. The tower reports the evaporation + blowdown makeup water and — because the wet-bulb temperature and the water-to-air ratio L/G are given — the Merkel tower characteristic KaV/L a designer sizes the fill to, plus the range (hot→cold water drop, 10 K here) and the approach to the wet-bulb (5 K). Rate a fill against that demand with the standalone Cooling tower (Merkel) analysis tool. Honest scope: the cooling-water side is shown open (supply → exchanger → tower → return); a real plant recycles the return with makeup, and the Merkel model carries Le=1 assumptions.
Hybrid cooling — a closed circuit isolated from the tower by a plate exchanger
Three loops in series, and the middle one is the point. The process is cooled by a closed circuit of treated water that never contacts air; that circuit rejects its heat across a plate exchanger into an open evaporative circuit; and only that outer circuit goes to the tower and loses water. Why a plant pays for the extra exchanger: open cooling water picks up oxygen, airborne dirt and biology, and concentrates its dissolved salts every cycle. Putting that water through a reactor jacket or a condenser is what fouls and corrodes them. The closed loop stays clean, stays at pressure, and its inventory never concentrates — so the equipment the process actually touches sees water that does not scale. Solved here: the process leaves at 318 K, the closed circuit picks that up (303 → 320 K) and is knocked back to 306 K across the plate exchanger, the open circuit takes it (301 → 311 K) and the tower returns it to 301.15 K at a 4.0 K approach to a 297.15 K wet bulb. Water loss appears only in the open circuit — the closed one leaves with exactly the flow it entered with, which is the whole claim made arithmetic. The tower also reports its scaling limit from the makeup analysis: this water saturates in calcite at 2.2 cycles, so the 4 cycles configured here shows negative headroom — a real operating conflict, left visible rather than tuned away. Bounded: steady state, so there is no basin inventory and no level control (a level is only meaningful in the dynamic engine). Fouling is not modelled — the argument for the closed loop is made by the chemistry, not by a fouling rate. Feeds and returns are open rather than recycled, the same convention cooling-water-tower uses.
Geothermal flash-steam power plant (~90 MW)
A single-flash geothermal power plant on the IAPWS steam tables. A liquid-dominated geothermal well arrives at 240 °C / 35 bar and flashes across a separator down to 8 bar: about 15% of the brine becomes saturated steam and the rest is reinjected. The steam drives a condensing turbine to a 10 kPa vacuum (82% isentropic, exhaust quality ~0.9 — a real wet-steam expansion), a water-cooled condenser drops it to ~46 °C condensate, and a hotwell pump lifts it for reinjection alongside the brine. It converges to 89.9 MW of turbine shaft power. The separator (flash) pressure is the plant's key design knob: the defaultSensitivity sweeps it, trading a larger steam fraction at low pressure against higher steam enthalpy at high pressure — the flash-pressure optimization every single-flash geothermal plant makes. It runs on the rigorous IAPWS-95 water properties (steam package), and the turbine tracks steam quality into the two-phase dome rather than assuming a dry expansion.
District-heating stratified thermal store (charge and discharge)
A stratified hot-water thermal energy store on a district-heating loop, shown at one operating point in both directions. The charge leg sends 90 °C supply water through the store, which is standing at four layers of 350 / 335 / 320 / 305 K (hottest on top): the water exhausts in contact with the coldest layer and leaves at 305 K, so the whole 85 K drop goes into the store. The discharge leg draws 30 °C network return through the same store and takes it from the hottest layer, leaving at 350 K. That asymmetry is the entire reason to stratify — a fully mixed store holding the same energy would deliver its 328 K average. The blocks report the stored energy above the 300 K floor, the state of charge over the 300-360 K window, the standing loss through an 80 W/K vessel, and the time to full or empty at the current net rate. Honest scope: this is a steady-state picture — the store's layers do not move within a solve, and the two legs are drawn as separate blocks on one store. The transient (how far the thermocline travels over a six-hour charge, and what outlet temperature the morning discharge actually delivers as the hot layers are consumed) is the Thermal energy storage analysis tool.
Propane (R-290) heat pump heating a hydronic loop
A single-stage vapor-compression heat pump delivering heat to a space-heating water loop — the same cycle as a refrigerator, read from the hot end. Propane evaporates at 4.7 atm (273 K, an air- or ground-source evaporator at 0 °C), is compressed to 21 atm (condensing at 333 K, 60 °C) and condenses against the heating water in a real two-sided exchanger, so the delivered heat is a water stream you can read: 40 °C return warmed to 59 °C. A small makeup feed and purge close the refrigerant mass balance around the recycle, as in the refrigeration examples. Two numbers define the machine: 80 kW delivered for 28 kW of compressor work, a heating COP of 2.9 — 52% of the Carnot limit for this 60 K lift, which is where a real R-290 unit sits. Read COP on the flowsheet as the user variable cop_heating, or sweep the condensing pressure: from 18 to 27 atm the COP falls 3.2 → 2.6 as the lift grows, the trade every heat pump makes between water temperature and electricity. Honest scope: the compressor is a fixed isentropic efficiency, the condenser outlet is a specified subcooling, and there is no defrost, part-load or refrigerant-charge model. Below ~18 atm the specified 326 K condenser outlet sits above saturation and the cycle stops condensing — the sweep starts where the physics does.
Organic Rankine Cycle — marine diesel exhaust waste-heat recovery
A closed R245fa Rankine loop recovers waste heat from a heavy marine diesel engine's exhaust: a two-stream boiler vaporizes the working fluid against the hot exhaust gas, a real isentropic-efficiency turbine expands it to shaft power, an ambient-cooled condenser returns it to saturated liquid, and a pump restores boiler pressure. The exhaust-gas composition is a representative combustion-product mix (N₂/CO₂/O₂/H₂O), not a specific engine's measured flue analysis.