From 3573d20f70e879764c2ea0bcbf31ac9d6cb610a4 Mon Sep 17 00:00:00 2001 From: lymereJ Date: Mon, 22 Jun 2026 22:56:31 -0700 Subject: [PATCH 1/7] Add first version of NFP. --- .../FY2026/NFP-Datacenter_LiquidCooledCoil.md | 222 ++++++++++++++++++ design/FY2026/cold_plate.jpg | Bin 0 -> 91254 bytes 2 files changed, 222 insertions(+) create mode 100644 design/FY2026/NFP-Datacenter_LiquidCooledCoil.md create mode 100644 design/FY2026/cold_plate.jpg diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md new file mode 100644 index 00000000000..f0c640dc354 --- /dev/null +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -0,0 +1,222 @@ +Liquid-Cooled Plant Equipment +=============================== + +**Jeremy Lerond, Pacific Northwest National Laboratory** + + - Original Date: 06/2026 + - Revision Date: 06/2026 + +## Justification for New Feature ## + +The rapid expansion of datacenter projects across the US has driven industry stakeholders to request native modeling capabilities for liquid-cooled ITE in EnergyPlus, as documented in [[0]][Issue #11408]. Currently, EnergyPlus lacks plant equipment capable of modeling loads introduced by ElectricEquipment:ITE objects. This NFP proposes a new plant equipment object designed to capture these loads and interact with supply-side plant equipment to satisfy them. + +## E-mail and Conference Call Conclusions ## + +## Overview ## + +[[0]][Issue #11408] provides an overview of current liquid-cooled datacenter technologies. Expanded information is available in [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]. Based on these resources, rear-door heat exchanger (RDHx) and direct-to-chip (D2C) technologies emerge as the dominant solutions. Immersion cooling remains limited to experimental applications and is not yet widely deployed. Consequently, this proposal focuses on developing a new plant equipment object capable of simulating both RDHx and D2C technologies. + +## Approach ## + +One new plant object will be implemented as part of the new feature proposal. This new object will be used to model either D2C or RDHx cooling. + +### D2C +The new object will simulate D2C devices as a cold plate (liquid-to-solid) heat exchanger. The heat transfer through the cold plate can be characterized by the interface's case-to-fluid thermal resistance. As documented in [[2]][Wang et. al], [[3]][Cheng et. al], [[4]][Shaeri et. al], and [[6]][Martinez et. al], the case-to-fluid thermal resistance of a cold plate, $R_{th}$, is expressed as follows: + +$R_{th} = \frac{T_{case} - T_f}{\dot{q}}$ + +Where: +- $T_{case}$ is the case temperature (see $T_{c}$ in Figure 1 below where TIM is the thermal interface material) +- $T_{f}$ is the liquid coolant temperature +- $\dot{q}$ is the heat transfer rate + +As mentioned in [[2]][Wang et. al], $T_{f}$ corresponds to the inlet fluid temperature for single-phase coolant, while for two-phase coolant $T_{f}$ is taken as the saturation temperature inside the cold plate. + +The enthalpy of the fluid leaving the cold plate will be calculated as follows: + +$h_{out} = h_{in} + \frac{\dot{q}}{\dot{m}}$ + +Temperature and other properties will subsequently be calculated based on the fluid properties data. + +Project Screenshot + +_Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et. al]) + + +[[5]][Eaton] shows that cold plate designs are selected based on a maximum allowable cold plate temperature. Since $R_{th}$ is a function of $T_{case}$, a user-defined maximum case temperature will be used to estimate the maximum heat transfer rate at nominal conditions. As mentioned in [[0]][Issue #11408], D2C systems are not always able to address all IT-generated loads, and air systems are used to meet the remainder. When the maximum $T_{case}$ is reached, the rest of the heat generated will be added to the zone heat balance. + +[[2]][Wang et. al], [[3]][Cheng et. al], and [[4]][Shaeri et. al] show that the thermal resistance varies as a function of coolant flow rate and heat flux (for two-phase flow), so the nominal thermal resistance will be adjusted using a user-defined empirical curve. + +The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et. al]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. + +Moreover, [[6]][Martinez et. al] proposes an LMTD-based thermal resistance definition for single-phase liquid-cooled cold plates, which could be considered an alternative approach to the traditional thermal resistance. We propose to focus on the $R_{th}$ approach for now, since it appears to be the current standard practice. + +### RDHx + +RDHxs are air-to-liquid heat exchangers placed on the back of server cabinets. RDHx can be either active or passive. The former uses dedicated fans to push hot air from the server to the coils, while the latter relies on natural airflow and server rack fans only. + +The new object will simulate RDHx by assuming that the system operates as a sensible-only air-to-liquid heat exchanger. Heat transfer and air-/liquid-stream conditions will be analyzed using the effectiveness-NTU method. + +The connection to the ITE equipment will be used to determine the conditions of air entering the rack and how much heat is added by the equipment. A user-defined temperature schedule will be used to define the targeted leaving air temperature. Knowing the entering and leaving air temperatures, the airflow rate can be determined. + +[[8]][Legrand] shows that active RDHx systems are equipped with electronically commutated fans capable of variable-speed control, so the new object will assume a variable-speed airflow to meet the load. Fan heat from the dedicated fan system will be added to the load. For passive systems, airflow through the heat exchanger depends on server rack fans and natural ventilation and is therefore difficult to predict. Instead of using the dedicated fan input, users can specify an airflow schedule — for instance, a constant flow rate schedule if server rack fans operate at a constant nominal flow rate during ITE equipment operation. Server rack fan power will be accounted for by the ITE equipment, but could also be accounted for by the auxiliary power input. Auxiliary power inputs were requested in [[0]][Issue #11408]: "_Allow specification of auxiliary electric power associated with the liquid cooling system_". + +## Testing/Validation/Data Sources ## + +TBD + +## Input Output Reference Documentation ## + +TBD + +## Input Description ## + +``` +Coil:Cooling:ITE + \memo This object can be used to simulate a cold-plate or rear-door heat exchanger for liquid-cooled datacenter equipment + A1, \field Name + \required-field + \type alpha + A2, \field ITE Equipment + \reference ITEequipments + \note Name of an ElectricEquipment:ITE:LiquidCooled object + A3, \field Inlet Node + \note Inlet node name + \required-field + \type node + A4, \field Outlet Node + \note Outlet node name + \required-field + \type node + A5, \field Cooling Type + \note Type of liquid-cooled technology to be simulated + \type choice + \key ColdPlate + \key RearDoorHeatExchangerActive + \key RearDoorHeatExchangerPassive + \required-field + N1, \field Cold Plate Nominal Thermal Resistance + \note This is the cold plate thermal resistance at the nominal flow rate + \default 0.025 + \minimum> 0.0 + \units K/W + N2, \field Cold Plate Maximum Case Temperature + \note Maximum allowed case temperature + \minimum> 0.0 + A6, \field Cold Plate Thermal Resistance Degradation Curve Name + \type object-list + \object-list UnivariateFunctions + \object-list BivariateFunctions + \note Flow rate ratio (Flow rate / Nominal Flow Rate) is used as the first independent variable + \note Heat transfer rate ratio (Heat transfer rate / Nominal Transfer Rate) is used as the second independent variable + A7, \field Cold Plate Fluid Temperature for Thermal Resistance Calculation + \note Reference temperature used to calculate the cold plate's thermal resistance + \note Liquid Inlet Temperature is typical for single-phase coolant + \note Saturation Temperature is typical for two-phase coolant + \type choice + \key Liquid Inlet Temperature + \key Saturation Temperature + N3, \field Rear Door Heat Exchanger UA + \units W/K + N4, \field Rear Door Heat Exchanger Fan Power + \note Nominal power of the dedicated fan (only when Cooling Type is RearDoorHeatExchangerActive) + \units W + A8, \field Rear Door Heat Exchanger Fan Power Modifier Function of Flow Fraction + \note The output of this curve adjusts the nominal fan power based on varying flow fraction (actual fan air flow rate / nominal fan flow rate) + \type object-list + \object-list UnivariateFunctions + A9, \field Rear Door Heat Exchanger Fan Flow Rate Schedule Name + \note Specifies the flow rate through the rear door heat exchanger (only used when Cooling Type is RearDoorHeatExchangerPassive) + \note Schedule values should be in m3/s + \type object-list + \object-list ScheduleNames + A10, \field Rear Door Heat Exchanger Leaving Air Temperature Setpoint Schedule Name + \note Temperature schedule that represents the targeted leaving air setpoint temperature + \note Schedule values should be in degrees C + \type object-list + \object-list ScheduleNames + N5, \field Nominal Liquid Flow Rate + \note Nominal liquid flow rate of the device + \autosizable + \minimum> 0.0 + N6, \field Nominal Air Flow Rate + \note Nominal air flow rate of the device (only for rear door heat exchangers) + \autosizable + \minimum> 0.0 + N7, \field Auxiliary Electric Power + \type real + \units W + \minimum 0.0 + \ip-units W + \default 0.0 + \note The auxiliary electric power input in watts when the unit is running + A11, \field ZoneName + \note Zone where excess heat from the heat exchanger will be discharged + \type object-list + \object-list ZoneNames + A12; \field End-Use Subcategory + \note Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table. + \type alpha + \retaincase + \default General +``` + +## Outputs Description ## + +TBD + +## Engineering Reference ## + +TBD + +## Example File and Transition Changes ## + +This new object, along with the other liquid-cooled data center objects, will be integrated into a single example file. This effort will be coordinated with other entities involved in the development of these liquid-cooled data center objects. + +No transition will be required. + +## References ## + +- [0] Issue #11408 + +[Issue #11408]: https://github.com/NatLabRockies/EnergyPlus/issues/11408 + +- [1] Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT + +[Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]: https://calnext.com/wp-content/uploads/2025/12/ET24SWE0065_Datacenter-Liquid-Cooling-Market-Characterization_Final-Report.pdf + +- [2] Universal Direct-to-Chip Cold Plates for Single- and Two-Phase Cooling, Wang et. al + +[Wang et. al]: https://accelsius.com/wp-content/uploads/Universal-Direct-to-Chip-Cold-Plate-2.pdf + +- [3] OCP OAI System Liquid Cooling Guidelines, Cheng et. al + +[Cheng et. al]: https://www.opencompute.org/documents/oai-system-liquid-cooling-guidelines-in-ocp-template-mar-3-2023-update-pdf + +- [4] Demonstration of CTE-Matched Two-Phase Minichannel Heat Sink, Shaeri et. al + +[Shaeri et. al]: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10177605&utm_source=sciencedirect_contenthosting&getft_integrator=sciencedirect_contenthosting + +- [5] Selecting a Liquid Cold Plate Technology + +[Eaton]: https://www.eaton.com/us/en-us/products/thermal-management-solutions/cold-plate-heat-exchanger/selecting-a-cold-plate-technology-and-performance-comparison.html + +- [6] Experimental validation of the effectiveness-NTU approach for single-phase liquid cold plates and a consistent definition of thermal resistance + +[Martinez et. al]: https://www.sciencedirect.com/science/article/pii/S0017931025004673 + +- [7] Performance Comparison of R1233zd(E) and R515B for Two-Phase Direct-to-Chip Cooling + +[Wang et. al 2]: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=11235787 + +- [8] Rear-Door Heat Exchangers Smart Cooling at the Rack Level + +[Legrand]: https://www.legrand.com/datacenter/at-en/news/rear-door-heat-exchangers-rdhx-smart-cooling-at-the-rack-level + +- [9] A Practical Metric for Cold Plate Thermal Performance in Two-Phase Direct-to-Chip Cooling + +[Wang et. al 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf + +- [10] Experimental evaluation of direct-to-chip cold plate liquid cooling for high-heat-density data centers + +[Heydari et. al]: https://www.sciencedirect.com/science/article/pii/S1359431123021518?casa_token=yMz4c59NaAoAAAAA:njacRyk_Tos7PSyigDx1yWpRixkV3-Vbiqv1IR7vkgFqLkSTbfue6P6pvFMKMt6bWbwFj4f9aQ \ No newline at end of file diff --git a/design/FY2026/cold_plate.jpg b/design/FY2026/cold_plate.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09db3fdda456398bf7222c30efc725aa9e441940 GIT binary patch literal 91254 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 YOK!(%-P&bNK09{bS#oK*Kz?5MA9pqSC;$Ke literal 0 HcmV?d00001 From 2a2406fde7fcbbe14a85e41da11911e2769ede70 Mon Sep 17 00:00:00 2001 From: lymereJ Date: Wed, 24 Jun 2026 22:08:39 -0700 Subject: [PATCH 2/7] Update NFP. --- .../FY2026/NFP-Datacenter_LiquidCooledCoil.md | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md index f0c640dc354..a0ccec786ff 100644 --- a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -18,10 +18,10 @@ The rapid expansion of datacenter projects across the US has driven industry sta ## Approach ## -One new plant object will be implemented as part of the new feature proposal. This new object will be used to model either D2C or RDHx cooling. +The new feature proposal includes a single plant object designed to model either D2C or RDHx cooling. Although both [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT] and [[11]][Fernandes et al.] indicate that D2C and RDHx can operate simultaneously, the current plant object implementation supports only one approach at a time. Future work could extend this capability to simulate hybrid configurations. ### D2C -The new object will simulate D2C devices as a cold plate (liquid-to-solid) heat exchanger. The heat transfer through the cold plate can be characterized by the interface's case-to-fluid thermal resistance. As documented in [[2]][Wang et. al], [[3]][Cheng et. al], [[4]][Shaeri et. al], and [[6]][Martinez et. al], the case-to-fluid thermal resistance of a cold plate, $R_{th}$, is expressed as follows: +The new object will simulate D2C devices as a cold plate (liquid-to-solid) heat exchanger. The heat transfer through the cold plate can be characterized by the interface's case-to-fluid thermal resistance. As documented in [[2]][Wang et al.], [[3]][Cheng et al.], [[4]][Shaeri et al.], and [[6]][Martinez et al.], the case-to-fluid thermal resistance of a cold plate, $R_{th}$, is expressed as follows: $R_{th} = \frac{T_{case} - T_f}{\dot{q}}$ @@ -30,7 +30,7 @@ Where: - $T_{f}$ is the liquid coolant temperature - $\dot{q}$ is the heat transfer rate -As mentioned in [[2]][Wang et. al], $T_{f}$ corresponds to the inlet fluid temperature for single-phase coolant, while for two-phase coolant $T_{f}$ is taken as the saturation temperature inside the cold plate. +As mentioned in [[2]][Wang et al.], $T_{f}$ corresponds to the inlet fluid temperature for single-phase coolant, while for two-phase coolant $T_{f}$ is taken as the saturation temperature inside the cold plate. The enthalpy of the fluid leaving the cold plate will be calculated as follows: @@ -40,16 +40,16 @@ Temperature and other properties will subsequently be calculated based on the fl Project Screenshot -_Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et. al]) +_Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et al.]) [[5]][Eaton] shows that cold plate designs are selected based on a maximum allowable cold plate temperature. Since $R_{th}$ is a function of $T_{case}$, a user-defined maximum case temperature will be used to estimate the maximum heat transfer rate at nominal conditions. As mentioned in [[0]][Issue #11408], D2C systems are not always able to address all IT-generated loads, and air systems are used to meet the remainder. When the maximum $T_{case}$ is reached, the rest of the heat generated will be added to the zone heat balance. -[[2]][Wang et. al], [[3]][Cheng et. al], and [[4]][Shaeri et. al] show that the thermal resistance varies as a function of coolant flow rate and heat flux (for two-phase flow), so the nominal thermal resistance will be adjusted using a user-defined empirical curve. +[[2]][Wang et al.], [[3]][Cheng et al.], and [[4]][Shaeri et al.] show that the thermal resistance varies as a function of coolant flow rate and heat flux (for two-phase flow), so the nominal thermal resistance will be adjusted using a user-defined empirical curve. -The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et. al]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. +The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et al.]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. -Moreover, [[6]][Martinez et. al] proposes an LMTD-based thermal resistance definition for single-phase liquid-cooled cold plates, which could be considered an alternative approach to the traditional thermal resistance. We propose to focus on the $R_{th}$ approach for now, since it appears to be the current standard practice. +Moreover, [[6]][Martinez et al.] proposes an LMTD-based thermal resistance definition for single-phase liquid-cooled cold plates, which could be considered an alternative approach to the traditional thermal resistance. We propose to focus on the $R_{th}$ approach for now, since it appears to be the current standard practice. ### RDHx @@ -185,17 +185,17 @@ No transition will be required. [Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]: https://calnext.com/wp-content/uploads/2025/12/ET24SWE0065_Datacenter-Liquid-Cooling-Market-Characterization_Final-Report.pdf -- [2] Universal Direct-to-Chip Cold Plates for Single- and Two-Phase Cooling, Wang et. al +- [2] Universal Direct-to-Chip Cold Plates for Single- and Two-Phase Cooling, Wang et al. -[Wang et. al]: https://accelsius.com/wp-content/uploads/Universal-Direct-to-Chip-Cold-Plate-2.pdf +[Wang et al.]: https://accelsius.com/wp-content/uploads/Universal-Direct-to-Chip-Cold-Plate-2.pdf -- [3] OCP OAI System Liquid Cooling Guidelines, Cheng et. al +- [3] OCP OAI System Liquid Cooling Guidelines, Cheng et al. -[Cheng et. al]: https://www.opencompute.org/documents/oai-system-liquid-cooling-guidelines-in-ocp-template-mar-3-2023-update-pdf +[Cheng et al.]: https://www.opencompute.org/documents/oai-system-liquid-cooling-guidelines-in-ocp-template-mar-3-2023-update-pdf -- [4] Demonstration of CTE-Matched Two-Phase Minichannel Heat Sink, Shaeri et. al +- [4] Demonstration of CTE-Matched Two-Phase Minichannel Heat Sink, Shaeri et al. -[Shaeri et. al]: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10177605&utm_source=sciencedirect_contenthosting&getft_integrator=sciencedirect_contenthosting +[Shaeri et al.]: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10177605&utm_source=sciencedirect_contenthosting&getft_integrator=sciencedirect_contenthosting - [5] Selecting a Liquid Cold Plate Technology @@ -203,11 +203,11 @@ No transition will be required. - [6] Experimental validation of the effectiveness-NTU approach for single-phase liquid cold plates and a consistent definition of thermal resistance -[Martinez et. al]: https://www.sciencedirect.com/science/article/pii/S0017931025004673 +[Martinez et al.]: https://www.sciencedirect.com/science/article/pii/S0017931025004673 - [7] Performance Comparison of R1233zd(E) and R515B for Two-Phase Direct-to-Chip Cooling -[Wang et. al 2]: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=11235787 +[Wang et al. 2]: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=11235787 - [8] Rear-Door Heat Exchangers Smart Cooling at the Rack Level @@ -215,8 +215,16 @@ No transition will be required. - [9] A Practical Metric for Cold Plate Thermal Performance in Two-Phase Direct-to-Chip Cooling -[Wang et. al 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf +[Wang et al. 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf - [10] Experimental evaluation of direct-to-chip cold plate liquid cooling for high-heat-density data centers -[Heydari et. al]: https://www.sciencedirect.com/science/article/pii/S1359431123021518?casa_token=yMz4c59NaAoAAAAA:njacRyk_Tos7PSyigDx1yWpRixkV3-Vbiqv1IR7vkgFqLkSTbfue6P6pvFMKMt6bWbwFj4f9aQ \ No newline at end of file +[Heydari et al.]: https://www.sciencedirect.com/science/article/pii/S1359431123021518?casa_token=yMz4c59NaAoAAAAA:njacRyk_Tos7PSyigDx1yWpRixkV3-Vbiqv1IR7vkgFqLkSTbfue6P6pvFMKMt6bWbwFj4f9aQ + +- [11] Liquid to Liquid CDU Test Methodology and Performance Rating + +[Wondium et al.]: https://www.opencompute.org/documents/ocp-wp-l-lcdu-test-methodology-performance-rating-r1-pdf + +- [12] ACS Door Heat Exchanger Requirements for Open Rack + +[Fernandes et al.]: https://www.opencompute.org/documents/acs-door-hx-open-compute-requirements-for-open-rack-rev1-0-1-pdf \ No newline at end of file From 4d6552ec424c6aa9f3ad16ae567bde429bdfa500 Mon Sep 17 00:00:00 2001 From: lymereJ Date: Thu, 2 Jul 2026 16:27:11 -0700 Subject: [PATCH 3/7] =?UTF-8?q?Update=20NFP=20based=20on=20internal=20disc?= =?UTF-8?q?ussions=20[ci=20skip]=E2=80=8B=20[decent=5Fci=5Fskip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FY2026/NFP-Datacenter_LiquidCooledCoil.md | 101 ++++++------------ 1 file changed, 34 insertions(+), 67 deletions(-) diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md index a0ccec786ff..a615d8723ad 100644 --- a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -4,7 +4,7 @@ Liquid-Cooled Plant Equipment **Jeremy Lerond, Pacific Northwest National Laboratory** - Original Date: 06/2026 - - Revision Date: 06/2026 + - Revision Date: 07/2026 ## Justification for New Feature ## @@ -14,14 +14,14 @@ The rapid expansion of datacenter projects across the US has driven industry sta ## Overview ## -[[0]][Issue #11408] provides an overview of current liquid-cooled datacenter technologies. Expanded information is available in [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]. Based on these resources, rear-door heat exchanger (RDHx) and direct-to-chip (D2C) technologies emerge as the dominant solutions. Immersion cooling remains limited to experimental applications and is not yet widely deployed. Consequently, this proposal focuses on developing a new plant equipment object capable of simulating both RDHx and D2C technologies. +[[0]][Issue #11408] provides an overview of current liquid-cooled datacenter technologies. Expanded information is available in [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]. Based on these resources, rear-door heat exchanger (RDHx) and direct-to-chip (D2C) technologies emerge as the dominant solutions. Immersion cooling remains limited to experimental applications and is not yet widely deployed. Consequently, this proposal focuses on developing a new plant equipment object capable of simulating D2C cooling. RDHx will be considered next. ## Approach ## -The new feature proposal includes a single plant object designed to model either D2C or RDHx cooling. Although both [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT] and [[11]][Fernandes et al.] indicate that D2C and RDHx can operate simultaneously, the current plant object implementation supports only one approach at a time. Future work could extend this capability to simulate hybrid configurations. +The new feature proposal introduces a plant object for modeling D2C cooling of `ElectricEquipment:ITE:LiquidCooled` objects. While research [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT] and [[11]][Fernandes et al.] demonstrates that D2C and RDHx systems can work together to cool a single server rack, the current plant object design handles only one cooling system per rack. Hybrid cooling configurations could be modeled in future updates once RDHx support is available. ### D2C -The new object will simulate D2C devices as a cold plate (liquid-to-solid) heat exchanger. The heat transfer through the cold plate can be characterized by the interface's case-to-fluid thermal resistance. As documented in [[2]][Wang et al.], [[3]][Cheng et al.], [[4]][Shaeri et al.], and [[6]][Martinez et al.], the case-to-fluid thermal resistance of a cold plate, $R_{th}$, is expressed as follows: +The new object will simulate D2C cooling devices as a cold plate (liquid-to-solid) heat exchanger. The heat transfer through the cold plate can be characterized by the interface's case-to-fluid thermal resistance. As documented in [[2]][Wang et al.], [[3]][Cheng et al.], [[4]][Shaeri et al.], and [[6]][Martinez et al.], the case-to-fluid thermal resistance of a cold plate, $R_{th}$, is expressed as follows: $R_{th} = \frac{T_{case} - T_f}{\dot{q}}$ @@ -43,23 +43,13 @@ Temperature and other properties will subsequently be calculated based on the fl _Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et al.]) -[[5]][Eaton] shows that cold plate designs are selected based on a maximum allowable cold plate temperature. Since $R_{th}$ is a function of $T_{case}$, a user-defined maximum case temperature will be used to estimate the maximum heat transfer rate at nominal conditions. As mentioned in [[0]][Issue #11408], D2C systems are not always able to address all IT-generated loads, and air systems are used to meet the remainder. When the maximum $T_{case}$ is reached, the rest of the heat generated will be added to the zone heat balance. +[[5]][Eaton] shows that cold plate designs are selected based on a maximum allowable cold plate temperature. Since $R_{th}$ is a function of $T_{case}$, a user-defined maximum case temperature will be used to estimate the maximum heat transfer rate at nominal conditions. As mentioned in [[0]][Issue #11408], D2C cooling systems are not always able to address all IT-generated loads, and air systems are used to meet the remainder. When the maximum $T_{case}$ is reached, the rest of the heat generated will be added to the zone heat balance. [[2]][Wang et al.], [[3]][Cheng et al.], and [[4]][Shaeri et al.] show that the thermal resistance varies as a function of coolant flow rate and heat flux (for two-phase flow), so the nominal thermal resistance will be adjusted using a user-defined empirical curve. The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et al.]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. -Moreover, [[6]][Martinez et al.] proposes an LMTD-based thermal resistance definition for single-phase liquid-cooled cold plates, which could be considered an alternative approach to the traditional thermal resistance. We propose to focus on the $R_{th}$ approach for now, since it appears to be the current standard practice. - -### RDHx - -RDHxs are air-to-liquid heat exchangers placed on the back of server cabinets. RDHx can be either active or passive. The former uses dedicated fans to push hot air from the server to the coils, while the latter relies on natural airflow and server rack fans only. - -The new object will simulate RDHx by assuming that the system operates as a sensible-only air-to-liquid heat exchanger. Heat transfer and air-/liquid-stream conditions will be analyzed using the effectiveness-NTU method. - -The connection to the ITE equipment will be used to determine the conditions of air entering the rack and how much heat is added by the equipment. A user-defined temperature schedule will be used to define the targeted leaving air temperature. Knowing the entering and leaving air temperatures, the airflow rate can be determined. - -[[8]][Legrand] shows that active RDHx systems are equipped with electronically commutated fans capable of variable-speed control, so the new object will assume a variable-speed airflow to meet the load. Fan heat from the dedicated fan system will be added to the load. For passive systems, airflow through the heat exchanger depends on server rack fans and natural ventilation and is therefore difficult to predict. Instead of using the dedicated fan input, users can specify an airflow schedule — for instance, a constant flow rate schedule if server rack fans operate at a constant nominal flow rate during ITE equipment operation. Server rack fan power will be accounted for by the ITE equipment, but could also be accounted for by the auxiliary power input. Auxiliary power inputs were requested in [[0]][Issue #11408]: "_Allow specification of auxiliary electric power associated with the liquid cooling system_". +Moreover, [[6]][Martinez et al.] proposes an LMTD-based thermal resistance definition for single-phase liquid-cooled cold plates. We focus on the $R_{th}$ approach while offering users the option to apply the correction factor established in this publication. ## Testing/Validation/Data Sources ## @@ -72,14 +62,16 @@ TBD ## Input Description ## ``` -Coil:Cooling:ITE - \memo This object can be used to simulate a cold-plate or rear-door heat exchanger for liquid-cooled datacenter equipment +Coil:Cooling:ITE:ColdPlate A1, \field Name \required-field \type alpha - A2, \field ITE Equipment - \reference ITEequipments - \note Name of an ElectricEquipment:ITE:LiquidCooled object + A2, \field Availability Schedule Name + \note Availability schedule name for this cold plate. Schedule value > 0 means the cold plate is available: + \note - If this field is blank, the cold plate is always available + \note - If the cold plate is not available, all heat passed by the ElectricEquipment:ITE:LiquidCooled object + \note will be added to the zone specified in this object + \type object-list A3, \field Inlet Node \note Inlet node name \required-field @@ -88,74 +80,49 @@ Coil:Cooling:ITE \note Outlet node name \required-field \type node - A5, \field Cooling Type - \note Type of liquid-cooled technology to be simulated - \type choice - \key ColdPlate - \key RearDoorHeatExchangerActive - \key RearDoorHeatExchangerPassive - \required-field - N1, \field Cold Plate Nominal Thermal Resistance - \note This is the cold plate thermal resistance at the nominal flow rate + N1, \field Nominal Thermal Resistance + \note This is the cold plate thermal resistance at the nominal flow rate where: + \note R = (Tc - Tf) / q_dot + \note Where R is the Nominal Thermal Resistance + \note Tc is the case temperature + \note Tf is the liquid inlet temperature + \note q_dot is the heat flow to the cold plate \default 0.025 \minimum> 0.0 \units K/W - N2, \field Cold Plate Maximum Case Temperature + N2, \field Maximum Case Temperature \note Maximum allowed case temperature \minimum> 0.0 - A6, \field Cold Plate Thermal Resistance Degradation Curve Name + A5, \field Thermal Resistance Degradation Curve Name \type object-list \object-list UnivariateFunctions \object-list BivariateFunctions \note Flow rate ratio (Flow rate / Nominal Flow Rate) is used as the first independent variable \note Heat transfer rate ratio (Heat transfer rate / Nominal Transfer Rate) is used as the second independent variable - A7, \field Cold Plate Fluid Temperature for Thermal Resistance Calculation - \note Reference temperature used to calculate the cold plate's thermal resistance - \note Liquid Inlet Temperature is typical for single-phase coolant - \note Saturation Temperature is typical for two-phase coolant + A6, \field Apply LMTD Correction Factor + \note Apply a correction factor to the Nominal Thermal Resistance input for consistency with the effectiveness-NTU cold plate modeling approach \type choice - \key Liquid Inlet Temperature - \key Saturation Temperature - N3, \field Rear Door Heat Exchanger UA - \units W/K - N4, \field Rear Door Heat Exchanger Fan Power - \note Nominal power of the dedicated fan (only when Cooling Type is RearDoorHeatExchangerActive) - \units W - A8, \field Rear Door Heat Exchanger Fan Power Modifier Function of Flow Fraction - \note The output of this curve adjusts the nominal fan power based on varying flow fraction (actual fan air flow rate / nominal fan flow rate) - \type object-list - \object-list UnivariateFunctions - A9, \field Rear Door Heat Exchanger Fan Flow Rate Schedule Name - \note Specifies the flow rate through the rear door heat exchanger (only used when Cooling Type is RearDoorHeatExchangerPassive) - \note Schedule values should be in m3/s - \type object-list - \object-list ScheduleNames - A10, \field Rear Door Heat Exchanger Leaving Air Temperature Setpoint Schedule Name - \note Temperature schedule that represents the targeted leaving air setpoint temperature - \note Schedule values should be in degrees C - \type object-list - \object-list ScheduleNames - N5, \field Nominal Liquid Flow Rate + \key Yes + \key No + \default No + N3, \field Nominal Liquid Flow Rate \note Nominal liquid flow rate of the device \autosizable \minimum> 0.0 - N6, \field Nominal Air Flow Rate - \note Nominal air flow rate of the device (only for rear door heat exchangers) - \autosizable - \minimum> 0.0 - N7, \field Auxiliary Electric Power + \units m3/s + N4, \field Auxiliary Electric Power \type real \units W \minimum 0.0 \ip-units W \default 0.0 - \note The auxiliary electric power input in watts when the unit is running - A11, \field ZoneName + \note The auxiliary electric power input in watts when the unit is available + A7, \field Zone Name \note Zone where excess heat from the heat exchanger will be discharged \type object-list \object-list ZoneNames - A12; \field End-Use Subcategory - \note Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table. + A8; \field End-Use Subcategory + \note Any text may be used here to categorize the end-uses in the ABUPS End Uses by Subcategory table \type alpha \retaincase \default General From bb07c7e0c39996b1ad6d946447582e5805486436 Mon Sep 17 00:00:00 2001 From: lymereJ Date: Thu, 2 Jul 2026 21:41:46 -0700 Subject: [PATCH 4/7] =?UTF-8?q?Small=20clarificatin=20[ci=20skip]=E2=80=8B?= =?UTF-8?q?=20[decent=5Fci=5Fskip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FY2026/NFP-Datacenter_LiquidCooledCoil.md | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md index a615d8723ad..59968003e31 100644 --- a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -49,7 +49,7 @@ _Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et al.]) The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et al.]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. -Moreover, [[6]][Martinez et al.] proposes an LMTD-based thermal resistance definition for single-phase liquid-cooled cold plates. We focus on the $R_{th}$ approach while offering users the option to apply the correction factor established in this publication. +Moreover, [[6]][Martinez et al.] propose an LMTD-based thermal resistance ($R_{LMTD}$) definition for single-phase liquid-cooled cold plates. The default implementation uses the $R_{th}$ approach, though users may optionally apply the $R_{LMTD}$ approach instead. ## Testing/Validation/Data Sources ## @@ -81,12 +81,7 @@ Coil:Cooling:ITE:ColdPlate \required-field \type node N1, \field Nominal Thermal Resistance - \note This is the cold plate thermal resistance at the nominal flow rate where: - \note R = (Tc - Tf) / q_dot - \note Where R is the Nominal Thermal Resistance - \note Tc is the case temperature - \note Tf is the liquid inlet temperature - \note q_dot is the heat flow to the cold plate + \note This is the cold plate thermal resistance at the nominal flow rate \default 0.025 \minimum> 0.0 \units K/W @@ -99,8 +94,15 @@ Coil:Cooling:ITE:ColdPlate \object-list BivariateFunctions \note Flow rate ratio (Flow rate / Nominal Flow Rate) is used as the first independent variable \note Heat transfer rate ratio (Heat transfer rate / Nominal Transfer Rate) is used as the second independent variable - A6, \field Apply LMTD Correction Factor - \note Apply a correction factor to the Nominal Thermal Resistance input for consistency with the effectiveness-NTU cold plate modeling approach + A6, \field Use LMTD Thermal Resistance + \note If No, the thermal resistance is defined as follows: + \note R = (Tc - Tf) / q_dot + \note Where R is the Nominal Thermal Resistance + \note Tc is the case temperature + \note Tf is the liquid inlet temperature + \note q_dot is the heat flow to the cold plate + \note If Yes, a LMTD-based thermal resistance is considered + \note R = LMTD / q_dot \type choice \key Yes \key No From 8943010dd4348e86596f25f7aec683f81d65f1ea Mon Sep 17 00:00:00 2001 From: lymereJ Date: Fri, 10 Jul 2026 09:33:11 -0700 Subject: [PATCH 5/7] =?UTF-8?q?Add=20target=20case=20operating=20temperatu?= =?UTF-8?q?re=20and=20outputs=20[ci=20skip]=E2=80=8B=20[decent=5Fci=5Fskip?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FY2026/NFP-Datacenter_LiquidCooledCoil.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md index 59968003e31..8bd6a2f1d10 100644 --- a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -47,6 +47,8 @@ _Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et al.]) [[2]][Wang et al.], [[3]][Cheng et al.], and [[4]][Shaeri et al.] show that the thermal resistance varies as a function of coolant flow rate and heat flux (for two-phase flow), so the nominal thermal resistance will be adjusted using a user-defined empirical curve. +A target operating temperature will also be available as an input. It will be used to size the liquid coolant flow rate through the device. During operation, the flow rate will be adjusted to target this temperature. If the maximum flow rate is reached, the case temperature will be allowed to rise to the user-specified maximum value. + The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et al.]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. Moreover, [[6]][Martinez et al.] propose an LMTD-based thermal resistance ($R_{LMTD}$) definition for single-phase liquid-cooled cold plates. The default implementation uses the $R_{th}$ approach, though users may optionally apply the $R_{LMTD}$ approach instead. @@ -87,7 +89,14 @@ Coil:Cooling:ITE:ColdPlate \units K/W N2, \field Maximum Case Temperature \note Maximum allowed case temperature + \required-field \minimum> 0.0 + \units C + N3, \field Target Case Operating Temperature + \note Targeted operating case temperature, used to size and control liquid flow rate through the cold plate + \note It defaults to the Maximum Case Temperature and cannot exceed it + \minimum> 0.0 + \units C A5, \field Thermal Resistance Degradation Curve Name \type object-list \object-list UnivariateFunctions @@ -107,12 +116,12 @@ Coil:Cooling:ITE:ColdPlate \key Yes \key No \default No - N3, \field Nominal Liquid Flow Rate + N4, \field Nominal Liquid Flow Rate \note Nominal liquid flow rate of the device \autosizable \minimum> 0.0 \units m3/s - N4, \field Auxiliary Electric Power + N5, \field Auxiliary Electric Power \type real \units W \minimum 0.0 @@ -132,7 +141,10 @@ Coil:Cooling:ITE:ColdPlate ## Outputs Description ## -TBD +The following outputs will be added: +- Case temperature +- Heat transfer rate/energy +- Inlet/outlet mass flow rate and temperature ## Engineering Reference ## From db8157a2e9b3541dde1a9e65852a32195ddf98a3 Mon Sep 17 00:00:00 2001 From: lymereJ Date: Wed, 15 Jul 2026 13:37:26 -0700 Subject: [PATCH 6/7] =?UTF-8?q?Clean-up=20and=20expand=20NFP,=20clarify=20?= =?UTF-8?q?some=20proposed=20input=20fields=20[ci=20skip]=E2=80=8B=20[dece?= =?UTF-8?q?nt=5Fci=5Fskip]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FY2026/NFP-Datacenter_LiquidCooledCoil.md | 195 +++++++++++------- 1 file changed, 123 insertions(+), 72 deletions(-) diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md index 8bd6a2f1d10..ae7479f6532 100644 --- a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -3,59 +3,97 @@ Liquid-Cooled Plant Equipment **Jeremy Lerond, Pacific Northwest National Laboratory** - - Original Date: 06/2026 - - Revision Date: 07/2026 + - Original Date: June 2026 + - Revision Date: 07/15/2026 ## Justification for New Feature ## -The rapid expansion of datacenter projects across the US has driven industry stakeholders to request native modeling capabilities for liquid-cooled ITE in EnergyPlus, as documented in [[0]][Issue #11408]. Currently, EnergyPlus lacks plant equipment capable of modeling loads introduced by ElectricEquipment:ITE objects. This NFP proposes a new plant equipment object designed to capture these loads and interact with supply-side plant equipment to satisfy them. +The rapid expansion of datacenter projects across the US has driven industry stakeholders to request native modeling capabilities for liquid-cooled IT equipment (ITE) in EnergyPlus, as documented in [[0]][Issue #11408]. Currently, EnergyPlus lacks both an IT equipment object for liquid-cooled ITE and plant equipment capable of modeling the resulting loads. The `ElectricEquipment:ITE:LiquidCooled` object is being developed concurrently. This NFP proposes a new plant equipment object designed to capture those loads and interact with supply-side equipment to satisfy them. ## E-mail and Conference Call Conclusions ## ## Overview ## -[[0]][Issue #11408] provides an overview of current liquid-cooled datacenter technologies. Expanded information is available in [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]. Based on these resources, rear-door heat exchanger (RDHx) and direct-to-chip (D2C) technologies emerge as the dominant solutions. Immersion cooling remains limited to experimental applications and is not yet widely deployed. Consequently, this proposal focuses on developing a new plant equipment object capable of simulating D2C cooling. RDHx will be considered next. +[[0]][Issue #11408] provides an overview of current liquid-cooled datacenter technologies. Expanded information is available in [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]. Based on these resources, rear-door heat exchanger (RDHx) and direct-to-chip (D2C) technologies have emerged as the dominant solutions. Immersion cooling remains limited to experimental applications and is not yet widely deployed. Consequently, this NFP focuses on developing a new plant equipment object capable of simulating D2C cooling. RDHx will be considered in a subsequent NFP. ## Approach ## -The new feature proposal introduces a plant object for modeling D2C cooling of `ElectricEquipment:ITE:LiquidCooled` objects. While research [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT] and [[11]][Fernandes et al.] demonstrates that D2C and RDHx systems can work together to cool a single server rack, the current plant object design handles only one cooling system per rack. Hybrid cooling configurations could be modeled in future updates once RDHx support is available. +This NFP introduces a plant object for modeling D2C cooling of `ElectricEquipment:ITE:LiquidCooled` objects, which are being developed concurrently. While research [[1]][Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT] and [[2]][Fernandes et al.] demonstrate that D2C and RDHx systems can work together to cool a single server rack, the proposed object supports only one cooling system per rack. Hybrid cooling configurations could be modeled in a future NFP once RDHx support is available. ### D2C -The new object will simulate D2C cooling devices as a cold plate (liquid-to-solid) heat exchanger. The heat transfer through the cold plate can be characterized by the interface's case-to-fluid thermal resistance. As documented in [[2]][Wang et al.], [[3]][Cheng et al.], [[4]][Shaeri et al.], and [[6]][Martinez et al.], the case-to-fluid thermal resistance of a cold plate, $R_{th}$, is expressed as follows: +The new object models D2C devices as cold plate heat exchangers. The heat transfer through the cold plate is characterized by the case-to-fluid thermal resistance, $R_{th}$, expressed as follows (see [[5]][Wang et al.], [[6]][Cheng et al.], [[10]][Shaeri et al.], and [[7]][Martinez et al.]): $R_{th} = \frac{T_{case} - T_f}{\dot{q}}$ -Where: -- $T_{case}$ is the case temperature (see $T_{c}$ in Figure 1 below where TIM is the thermal interface material) -- $T_{f}$ is the liquid coolant temperature +or $T_{case} = T_f + \dot{q} \cdot R_{th}$ + +where: +- $T_{case}$ is the chip case temperature (labeled $T_c$ in Figure 1, with TIM denoting the thermal interface material) +- $T_{f}$ is the liquid coolant inlet temperature - $\dot{q}$ is the heat transfer rate +- $R_{th}$ is the cold plate thermal resistance +- $R_{th,nom}$ is the nominal thermal resistance -As mentioned in [[2]][Wang et al.], $T_{f}$ corresponds to the inlet fluid temperature for single-phase coolant, while for two-phase coolant $T_{f}$ is taken as the saturation temperature inside the cold plate. +Cold plate cross section -The enthalpy of the fluid leaving the cold plate will be calculated as follows: +_Figure 1 - Cross Section of a Cold Plate_ (source: [[7]][Martinez et al.]) -$h_{out} = h_{in} + \frac{\dot{q}}{\dot{m}}$ +The maximum heat transfer rate at the nominal flow rate is therefore: + +$\dot{q}_{max} = \frac{T_{case,max} - T_f}{R_{th,nom}}$ + +where $T_{case,max}$ is the maximum allowable chip case temperature. + +As shown in [[8]][Eaton], cold plate selection is driven by $T_{case,max}$, which together with $R_{th,nom}$ determines $\dot{q}_{max}$. As mentioned in [[0]][Issue #11408], D2C systems are not always able to address all IT-generated loads, and air systems are used to meet the remainder. When $T_{case,max}$ is reached, the remaining heat generated by the IT equipment will be added to the zone heat balance. + +[[5]][Wang et al.], [[6]][Cheng et al.], and [[10]][Shaeri et al.] show that the thermal resistance varies as a function of coolant flow rate (and, for two-phase flow, heat flux as well), so the thermal resistance will be adjusted from its nominal value using a dimensionless multiplier from a user-defined empirical curve. For the single-phase flow supported in this NFP, only the flow rate dependence is relevant. + +A target case operating temperature is used to size the nominal liquid coolant flow rate through the cold plate. During operation, the flow rate is then adjusted to maintain this target temperature. If the maximum flow rate is reached, the case temperature may rise up to $T_{case,max}$. + +The proposed object, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). Users will add it to the demand side of a `PlantLoop`. As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_". Additionally, this approach supports the requirement that liquids with other heat transfer properties "_be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25 (a mixture of 25% propylene glycol and water) is a widely used single-phase coolant (see [[5]][Wang et al.]) natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus; this NFP therefore focuses on single-phase D2C. Two-phase D2C can be modeled using the `Coil:Cooling:ITE:UserDefined` object being developed concurrently, or addressed in a future NFP. + +As an alternative to the $R_{th}$ approach, [[7]][Martinez et al.] introduce an LMTD (Log Mean Temperature Difference)-based thermal resistance ($R_{LMTD}$) definition for single-phase liquid-cooled cold plates. By default, the $R_{th}$ approach is used. -Temperature and other properties will subsequently be calculated based on the fluid properties data. +If the $R_{LMTD}$ approach is used, then: -Project Screenshot +$R_{LMTD} = \frac{1}{\dot{m} \cdot c_p \cdot \text{NTU}_{LMTD}}$ -_Figure 1 - Cross Section of a Cold Plate_ (source: [[6]][Martinez et al.]) +and $\varepsilon = 1 - e^{-\text{NTU}_{LMTD}}$ +so $T_{case} = T_{in} + \frac{T_{out} - T_{in}}{\varepsilon}$ -[[5]][Eaton] shows that cold plate designs are selected based on a maximum allowable cold plate temperature. Since $R_{th}$ is a function of $T_{case}$, a user-defined maximum case temperature will be used to estimate the maximum heat transfer rate at nominal conditions. As mentioned in [[0]][Issue #11408], D2C cooling systems are not always able to address all IT-generated loads, and air systems are used to meet the remainder. When the maximum $T_{case}$ is reached, the rest of the heat generated will be added to the zone heat balance. +where: +- $T_{case}$ is the chip case temperature +- $\varepsilon$ is the heat exchanger effectiveness +- $\varepsilon_{nom}$ is the heat exchanger effectiveness at the nominal flow rate +- $\text{NTU}_{LMTD}$ is the number of transfer units as defined in [[7]][Martinez et al.] +- $R_{LMTD}$ is the LMTD-based thermal resistance +- $\dot{m}$ is the liquid coolant mass flow rate +- $\dot{m}_{nom}$ is the nominal liquid coolant mass flow rate +- $c_p$ is the liquid coolant specific heat capacity +- $T_{in}$ is the liquid coolant inlet temperature +- $T_{out}$ is the liquid coolant outlet temperature -[[2]][Wang et al.], [[3]][Cheng et al.], and [[4]][Shaeri et al.] show that the thermal resistance varies as a function of coolant flow rate and heat flux (for two-phase flow), so the nominal thermal resistance will be adjusted using a user-defined empirical curve. +The maximum heat transfer rate at the nominal flow rate is therefore: -A target operating temperature will also be available as an input. It will be used to size the liquid coolant flow rate through the device. During operation, the flow rate will be adjusted to target this temperature. If the maximum flow rate is reached, the case temperature will be allowed to rise to the user-specified maximum value. +$\dot{q}_{max} = \dot{m}_{nom} \cdot c_p \cdot \varepsilon_{nom} \cdot (T_{case,max} - T_{in})$ -The proposed object will be added by users to the demand side of a `PlantLoop` and, together with a `HeatExchanger:FluidToFluid` object and a pump (on the supply side of the same `PlantLoop`), will represent a coolant distribution unit (CDU). As requested by [[0]][Issue #11408], this approach allows D2C to "_be connected to existing EnergyPlus PlantLoop architecture_" and "_support for liquids with other heat transfer properties would be handled at the loop level with the fluid_type and user_defined_fluid_type fields_". Coolant properties can be specified using the `FluidProperties` family of objects. Note that PG25, which according to the literature (see [[2]][Wang et al.]) is a widely used single-phase coolant (a mixture of 25% propylene glycol and water), is natively supported by EnergyPlus when using the `FluidProperties:GlycolConcentration` object. Two-phase heat transfer is not currently handled in EnergyPlus, so we propose to focus on single-phase D2C this FY and add capabilities for two-phase D2C in the next FY. +where $T_{case,max}$ is the maximum allowable chip case temperature. -Moreover, [[6]][Martinez et al.] propose an LMTD-based thermal resistance ($R_{LMTD}$) definition for single-phase liquid-cooled cold plates. The default implementation uses the $R_{th}$ approach, though users may optionally apply the $R_{LMTD}$ approach instead. +For both approaches, the outlet fluid enthalpy is: + +$h_{out} = h_{in} + \frac{\dot{q}}{\dot{m}}$ + +where: +- $h_{out}$ is the specific enthalpy of the fluid leaving the cold plate +- $h_{in}$ is the specific enthalpy of the fluid entering the cold plate +- $\dot{m}$ is the liquid coolant mass flow rate + +Temperature and other properties will subsequently be calculated from the fluid property data. ## Testing/Validation/Data Sources ## -TBD +Performance curves for the thermal resistance modifier will be developed based on data from [[5]][Wang et al.], [[7]][Martinez et al.], and other peer-reviewed publications. ## Input Output Reference Documentation ## @@ -71,53 +109,55 @@ Coil:Cooling:ITE:ColdPlate A2, \field Availability Schedule Name \note Availability schedule name for this cold plate. Schedule value > 0 means the cold plate is available: \note - If this field is blank, the cold plate is always available - \note - If the cold plate is not available, all heat passed by the ElectricEquipment:ITE:LiquidCooled object + \note - If the cold plate is not available, all heat generated by the ElectricEquipment:ITE:LiquidCooled object \note will be added to the zone specified in this object \type object-list + \object-list ScheduleNames A3, \field Inlet Node - \note Inlet node name + \note Liquid coolant inlet node \required-field \type node A4, \field Outlet Node - \note Outlet node name + \note Liquid coolant outlet node \required-field \type node N1, \field Nominal Thermal Resistance - \note This is the cold plate thermal resistance at the nominal flow rate + \note Cold plate thermal resistance at the nominal liquid coolant flow rate \default 0.025 \minimum> 0.0 \units K/W N2, \field Maximum Case Temperature - \note Maximum allowed case temperature + \note Maximum allowed chip case temperature \required-field \minimum> 0.0 \units C N3, \field Target Case Operating Temperature - \note Targeted operating case temperature, used to size and control liquid flow rate through the cold plate - \note It defaults to the Maximum Case Temperature and cannot exceed it + \note Targeted operating case temperature, used to size the nominal liquid coolant flow rate; during operation, the flow rate is adjusted to maintain this target temperature + \note If not specified, defaults to the Maximum Case Temperature; the Target Case Operating Temperature cannot exceed the Maximum Case Temperature \minimum> 0.0 \units C - A5, \field Thermal Resistance Degradation Curve Name + A5, \field Thermal Resistance Modifier Curve Name \type object-list \object-list UnivariateFunctions \object-list BivariateFunctions - \note Flow rate ratio (Flow rate / Nominal Flow Rate) is used as the first independent variable - \note Heat transfer rate ratio (Heat transfer rate / Nominal Transfer Rate) is used as the second independent variable - A6, \field Use LMTD Thermal Resistance - \note If No, the thermal resistance is defined as follows: - \note R = (Tc - Tf) / q_dot - \note Where R is the Nominal Thermal Resistance - \note Tc is the case temperature - \note Tf is the liquid inlet temperature - \note q_dot is the heat flow to the cold plate - \note If Yes, a LMTD-based thermal resistance is considered + \note For univariate curves, flow rate ratio (Flow rate / Nominal Flow Rate) is used as the independent variable + \note For bivariate curves, flow rate ratio is used as the first independent variable + \note and heat transfer rate ratio (Heat transfer rate / Nominal Heat Transfer Rate) as the second + A6, \field Thermal Resistance Method + \note If Standard, the thermal resistance is defined as follows: + \note R = (Tc - Tf) / q_dot + \note where R is the cold plate thermal resistance (equal to Nominal Thermal Resistance at nominal conditions) + \note Tc is the chip case temperature + \note Tf is the liquid inlet temperature + \note q_dot is the heat transfer rate + \note If LMTD, a LMTD-based thermal resistance is used instead \note R = LMTD / q_dot \type choice - \key Yes - \key No - \default No + \key Standard + \key LMTD + \default Standard N4, \field Nominal Liquid Flow Rate - \note Nominal liquid flow rate of the device + \note Nominal liquid flow rate through the cold plate \autosizable \minimum> 0.0 \units m3/s @@ -127,9 +167,9 @@ Coil:Cooling:ITE:ColdPlate \minimum 0.0 \ip-units W \default 0.0 - \note The auxiliary electric power input in watts when the unit is available + \note Auxiliary power consumed when the cold plate is available A7, \field Zone Name - \note Zone where excess heat from the heat exchanger will be discharged + \note Zone where heat not captured by the cold plate will be added \type object-list \object-list ZoneNames A8; \field End-Use Subcategory @@ -142,9 +182,14 @@ Coil:Cooling:ITE:ColdPlate ## Outputs Description ## The following outputs will be added: -- Case temperature -- Heat transfer rate/energy -- Inlet/outlet mass flow rate and temperature +- Chip case temperature +- Heat transfer rate +- Heat transfer energy +- Inlet liquid temperature +- Outlet liquid temperature +- Liquid mass flow rate +- Auxiliary electric power +- Auxiliary electric energy ## Engineering Reference ## @@ -152,60 +197,66 @@ TBD ## Example File and Transition Changes ## -This new object, along with the other liquid-cooled data center objects, will be integrated into a single example file. This effort will be coordinated with other entities involved in the development of these liquid-cooled data center objects. +This object, along with the other liquid-cooled data center objects, will be integrated into a single example file. This effort will be coordinated with other entities involved in their development. No transition will be required. ## References ## +### General + - [0] Issue #11408 [Issue #11408]: https://github.com/NatLabRockies/EnergyPlus/issues/11408 -- [1] Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT +- [1] Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT [Datacenter Liquid Cooling Market Characterization, Final Report, 12/12/2025, CalNEXT]: https://calnext.com/wp-content/uploads/2025/12/ET24SWE0065_Datacenter-Liquid-Cooling-Market-Characterization_Final-Report.pdf -- [2] Universal Direct-to-Chip Cold Plates for Single- and Two-Phase Cooling, Wang et al. - -[Wang et al.]: https://accelsius.com/wp-content/uploads/Universal-Direct-to-Chip-Cold-Plate-2.pdf +- [2] ACS Door Heat Exchanger Requirements for Open Rack, Fernandes et al. -- [3] OCP OAI System Liquid Cooling Guidelines, Cheng et al. +[Fernandes et al.]: https://www.opencompute.org/documents/acs-door-hx-open-compute-requirements-for-open-rack-rev1-0-1-pdf -[Cheng et al.]: https://www.opencompute.org/documents/oai-system-liquid-cooling-guidelines-in-ocp-template-mar-3-2023-update-pdf +- [3] Rear-Door Heat Exchangers Smart Cooling at the Rack Level -- [4] Demonstration of CTE-Matched Two-Phase Minichannel Heat Sink, Shaeri et al. +[Legrand]: https://www.legrand.com/datacenter/at-en/news/rear-door-heat-exchangers-rdhx-smart-cooling-at-the-rack-level -[Shaeri et al.]: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10177605&utm_source=sciencedirect_contenthosting&getft_integrator=sciencedirect_contenthosting +- [4] Liquid to Liquid CDU Test Methodology and Performance Rating, Wondium et al. -- [5] Selecting a Liquid Cold Plate Technology +[Wondium et al.]: https://www.opencompute.org/documents/ocp-wp-l-lcdu-test-methodology-performance-rating-r1-pdf -[Eaton]: https://www.eaton.com/us/en-us/products/thermal-management-solutions/cold-plate-heat-exchanger/selecting-a-cold-plate-technology-and-performance-comparison.html +### Single-Phase D2C -- [6] Experimental validation of the effectiveness-NTU approach for single-phase liquid cold plates and a consistent definition of thermal resistance +- [5] Universal Direct-to-Chip Cold Plates for Single- and Two-Phase Cooling, Wang et al. -[Martinez et al.]: https://www.sciencedirect.com/science/article/pii/S0017931025004673 +[Wang et al.]: https://accelsius.com/wp-content/uploads/Universal-Direct-to-Chip-Cold-Plate-2.pdf -- [7] Performance Comparison of R1233zd(E) and R515B for Two-Phase Direct-to-Chip Cooling +- [6] OCP OAI System Liquid Cooling Guidelines, Cheng et al. -[Wang et al. 2]: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=11235787 +[Cheng et al.]: https://www.opencompute.org/documents/oai-system-liquid-cooling-guidelines-in-ocp-template-mar-3-2023-update-pdf -- [8] Rear-Door Heat Exchangers Smart Cooling at the Rack Level +- [7] Experimental validation of the effectiveness-NTU approach for single-phase liquid cold plates and a consistent definition of thermal resistance, Martinez et al. -[Legrand]: https://www.legrand.com/datacenter/at-en/news/rear-door-heat-exchangers-rdhx-smart-cooling-at-the-rack-level +[Martinez et al.]: https://www.sciencedirect.com/science/article/pii/S0017931025004673 -- [9] A Practical Metric for Cold Plate Thermal Performance in Two-Phase Direct-to-Chip Cooling +- [8] Selecting a Liquid Cold Plate Technology -[Wang et al. 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf +[Eaton]: https://www.eaton.com/us/en-us/products/thermal-management-solutions/cold-plate-heat-exchanger/selecting-a-cold-plate-technology-and-performance-comparison.html -- [10] Experimental evaluation of direct-to-chip cold plate liquid cooling for high-heat-density data centers +- [9] Experimental evaluation of direct-to-chip cold plate liquid cooling for high-heat-density data centers, Heydari et al. [Heydari et al.]: https://www.sciencedirect.com/science/article/pii/S1359431123021518?casa_token=yMz4c59NaAoAAAAA:njacRyk_Tos7PSyigDx1yWpRixkV3-Vbiqv1IR7vkgFqLkSTbfue6P6pvFMKMt6bWbwFj4f9aQ -- [11] Liquid to Liquid CDU Test Methodology and Performance Rating +### Two-Phase D2C -[Wondium et al.]: https://www.opencompute.org/documents/ocp-wp-l-lcdu-test-methodology-performance-rating-r1-pdf +- [10] Demonstration of CTE-Matched Two-Phase Minichannel Heat Sink, Shaeri et al. + +[Shaeri et al.]: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=10177605&utm_source=sciencedirect_contenthosting&getft_integrator=sciencedirect_contenthosting + +- [11] Performance Comparison of R1233zd(E) and R515B for Two-Phase Direct-to-Chip Cooling, Wang et al. + +[Wang et al. 2]: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=11235787 -- [12] ACS Door Heat Exchanger Requirements for Open Rack +- [12] A Practical Metric for Cold Plate Thermal Performance in Two-Phase Direct-to-Chip Cooling, Wang et al. -[Fernandes et al.]: https://www.opencompute.org/documents/acs-door-hx-open-compute-requirements-for-open-rack-rev1-0-1-pdf \ No newline at end of file +[Wang et al. 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf \ No newline at end of file From 16e09b9fd0413b3f1f40afbb32307dba849ad6f5 Mon Sep 17 00:00:00 2001 From: lymereJ Date: Fri, 7 Aug 2026 15:34:14 -0700 Subject: [PATCH 7/7] Add new field to limit maximum flow rate through the cold plate based on industry expert feedback. --- design/FY2026/NFP-Datacenter_LiquidCooledCoil.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md index ae7479f6532..0857c5be89d 100644 --- a/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md +++ b/design/FY2026/NFP-Datacenter_LiquidCooledCoil.md @@ -161,7 +161,13 @@ Coil:Cooling:ITE:ColdPlate \autosizable \minimum> 0.0 \units m3/s - N5, \field Auxiliary Electric Power + N5, \field Maximum Liquid Flow Rate + \note Maximum liquid flow rate allowed through the cold plate at all times + \note If not specified, the flow rate is unconstrained + \autosizable + \minimum> 0.0 + \units m3/s + N6, \field Auxiliary Electric Power \type real \units W \minimum 0.0 @@ -259,4 +265,4 @@ No transition will be required. - [12] A Practical Metric for Cold Plate Thermal Performance in Two-Phase Direct-to-Chip Cooling, Wang et al. -[Wang et al. 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf \ No newline at end of file +[Wang et al. 3]: https://accelsius.com/wp-content/uploads/A-Practical-Metric-for-Cold-Plate-Thermal-Performance-in-Two-Phase-Direct-to-Chip-Cooling.pdf