Skip to content

Support CoilSystem:Cooling:Water#218

Merged
joseph-robertson merged 9 commits intodevelopfrom
coilsystem-cooling-water
May 7, 2025
Merged

Support CoilSystem:Cooling:Water#218
joseph-robertson merged 9 commits intodevelopfrom
coilsystem-cooling-water

Conversation

@joseph-robertson
Copy link
Contributor

@joseph-robertson joseph-robertson commented Mar 26, 2025

Pull request overview

Companion PR:

Link to relevant GitHub Issue(s) if appropriate:

Link to the Ubuntu 22.04 .deb installer to use for CI Testing. If not set, it will default to latest official release.
[OpenStudio Installer]: http://openstudio-ci-builds.s3-website-us-west-2.amazonaws.com/PR-5350/OpenStudio-3.10.0-alpha%2Bbe13f9f3fe-Ubuntu-22.04-x86_64.deb

This Pull Request is concerning:

  • Case 1 - NewTest: a new test for a new model API class,
  • Case 2 - TestFix: a fix for an existing test. The GitHub issue should be referenced in the PR description
  • Case 3 - NewTestForExisting: a new test for an already-existing model API class
  • Case 4 - Other: Something else, like maintenance of the repo, or just committing test results with a new OpenStudio version.

Depending on your answer, please fill out the required section below, and delete the three others.
Leave the review checklist in place.


Case 1: New test for a new model API class

Please include which class(es) you are adding a test to specifically test for.
Include a link to the OpenStudio Pull Request in which you are adding the new classes, or the class itself if already on develop.

Work Checklist

The following has been checked to ensure compliance with the guidelines:

  • Tests pass either:

    • with official OpenStudio release (include version):

      • A matching OSM test has been added from the successful run of the Ruby one with the official OpenStudio release
      • The label AddedOSM has been added to this PR
      • All new out.osw have been committed
    • with current develop (incude SHA):

      • The label PendingOSM has been added to this PR
      • A matching OSM test has not yet been added because the official release is pending, but model_tests.rb has a TODO.
        def test_airterminal_cooledbeam_rb
          result = sim_test('airterminal_cooledbeam.rb')
        end
        
        # TODO: To be added in the next official release after: 2.5.0
        # def test_airterminal_fourpipebeam_osm
        #   result = sim_test('airterminal_fourpipebeam.osm')
        # end
      • No out.osw have been committed as they need to be run with an official OpenStudio version
  • Ruby test is stable: when run multiple times on the same machine, it produces the same total site kBTU.
    Please paste the heatmap png generated after running the following commands:

    • I ensured that I assign systems/loads/etc in a repeatable manner (eg: if I assign stuff to thermalZones, I do model.getThermalZones.sort_by{|z| z.name.to_s}.each do ... so I am sure I put the same ZoneHVAC systems to the same zones regardless of their order)
    • I tested stability using process_results.py (see python process_results.py --help for usage).
      Please paste the text output or heatmap png generated after running the following commands:
      # Clean up all custom-tagged OSWs
      python process_results.py test-stability clean
      # Run your test 5 times in a row. Replace `testname_rb` (eg `airterminal_fourpipebeam_rb`)
      python process_results.py test-stability run -n testname_rb
      # Check that they all passed
      python process_results.py test-status --tagged
      # Check site kBTU differences
      python process_results.py heatmap --tagged
      
  • Object has been added to autosize_hvac.rb to ensure the autosizedXXX values methods do work


Review Checklist

  • Code style (indentation, variable names, strip trailing spaces)
  • Functional code review (it has to work!)
  • Matching OSM test has been added or # TODO added to model_tests.rb
  • Appropriate out.osw have been committed
  • Test is stable
  • Object is tested in autosize_hvac as appropriate
  • The appropriate labels have been added to this PR:
    • One of: NewTest, TestFix, NewTestForExisting, Other
    • If NewTest: add PendingOSM or AddedOSM

@joseph-robertson joseph-robertson added NewTest PR type: a new test for a new model API class PendingOSM A matching OSM test has yet to be added with the next official OpenStudio Release labels Mar 26, 2025
@joseph-robertson joseph-robertson self-assigned this Mar 26, 2025
Copy link
Contributor

@jmarrec jmarrec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm getting some concerning warnings, we need to fix these

   ** Warning ** In calculating the design coil UA for Coil:Cooling:Water AIRLOOPHVAC COILSYSTEMCOOLINGWATER PRIMARY HR COIL
   **   ~~~   ** no apparatus dew-point can be found for the initial entering and leaving conditions;
   **   ~~~   ** the coil outlet design conditions will be changed to correct the problem.
   **   ~~~   ** The initial design conditions are: Tair,in = 33.3000
   **   ~~~   **                                    Wair,in = 1.498555E-002
   **   ~~~   **                                    Twater,in = 7.0000
   **   ~~~   **                                    Tair,out = 12.8000
   **   ~~~   **                                    Wair,out = 8.000000E-003
   **   ~~~   ** The revised design conditions are: Tair,out = 12.3006
   **   ~~~   **                                    Wair,out = 8.201796E-003
   ** Warning ** In calculating the design coil UA for Coil:Cooling:Water AIRLOOPHVAC COILSYSTEMCOOLINGWATER COMPANION HR COIL
   **   ~~~   ** no apparatus dew-point can be found for the initial entering and leaving conditions;
   **   ~~~   ** the coil outlet design conditions will be changed to correct the problem.
   **   ~~~   ** The initial design conditions are: Tair,in = 33.3000
   **   ~~~   **                                    Wair,in = 1.498555E-002
   **   ~~~   **                                    Twater,in = 7.0000
   **   ~~~   **                                    Tair,out = 12.8000
   **   ~~~   **                                    Wair,out = 8.000000E-003
   **   ~~~   ** The revised design conditions are: Tair,out = 12.3006
   **   ~~~   **                                    Wair,out = 8.201796E-003
   ** Warning ** SetpointManager:MixedAir="{E9F49731-67A1-4132-8747-EFB37A5244E7}"
   **   ~~~   ** ...setpoint node conflicts with another setpoint manager.
   **   ~~~   ** ...conflicting setpoint manager = SetpointManager:MixedAir:"NODE 31 OS DEFAULT SPM"
   **   ~~~   ** ...conflicting node name = NODE 31
   **   ~~~   ** ...control type variable = Temperature
   ** Warning ** SetpointManager:MixedAir="{29247B9E-66FB-4F17-8CF3-EB008AFA8E8C}"
   **   ~~~   ** ...setpoint node conflicts with another setpoint manager.
   **   ~~~   ** ...conflicting setpoint manager = SetpointManager:MixedAir:"AIRLOOPHVAC COILSYSTEMCOOLINGWATER OUTLET TO HEATING COIL INLET NODE OS DEFAULT SPM"
   **   ~~~   ** ...conflicting node name = AIRLOOPHVAC COILSYSTEMCOOLINGWATER OUTLET TO HEATING COIL INLET NODE
   **   ~~~   ** ...control type variable = Temperature

# we sort the zones by names (only one here anyways...)
zones = m.getThermalZones.sort_by { |z| z.name.to_s }

### Water Size Economizer Model ###
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Side

Comment on lines 51 to 54
# Replace the default CoilCoolingWater with CoilSystem, then remove the default one
# Note: it's probably going to end up badly controlled when you place the
# CoilSystem directly on the AirLoopHVAC path and not inside another component
# (such as UnitarySys, cf: https://github.com/NREL/EnergyPlus/issues/7222)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

copy pasta

Comment on lines 57 to 64

coil = airloop.supplyComponents(OpenStudio::Model::CoilCoolingWater.iddObjectType).first.to_CoilCoolingWater.get
# Note that we connect the CoilSystem, NOT the underlying CoilCoolingWater
coil_system.addToNode(coil.airOutletModelObject.get.to_Node.get)
plant = coil.plantLoop.get
# But we have to connect the water_coil itself...
plant.addDemandBranchForComponent(water_coil)
coil.remove
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: We need a packaged DX system or coil cooling water downstream of the CoilSystem here on the AirLoopHVAC, but you're removing it.

The coil should we connected to a CondenserLoop on the demand side I think ideally, here it's a chilled water loop

As a water-side economizer the CoilSystem:Cooling:Water object is placed upstream of packaged DX systems or chilled water main cooling coil

…e Central CHW Coil, and connect it to the Condenser Loop
@jmarrec jmarrec force-pushed the coilsystem-cooling-water branch from d45435b to 4fd7769 Compare May 5, 2025 17:07
Refactors node naming for clarity and consistency in the
coil system cooling water test.
@jmarrec jmarrec marked this pull request as ready for review May 5, 2025 21:06
@jmarrec
Copy link
Contributor

jmarrec commented May 5, 2025

@joseph-robertson I made some changes

@jmarrec jmarrec force-pushed the coilsystem-cooling-water branch from ea7b36f to aceb273 Compare May 5, 2025 21:13
@joseph-robertson joseph-robertson merged commit f2706d9 into develop May 7, 2025
1 of 4 checks passed
@joseph-robertson joseph-robertson deleted the coilsystem-cooling-water branch May 7, 2025 16:19
@jmarrec jmarrec added AddedOSM A matching OSM test has been added with an official OpenStudio release and removed PendingOSM A matching OSM test has yet to be added with the next official OpenStudio Release labels Jun 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AddedOSM A matching OSM test has been added with an official OpenStudio release NewTest PR type: a new test for a new model API class

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants