Skip to content

Add FluidLoop #514

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: develop-v2
Choose a base branch
from
Open

Add FluidLoop #514

wants to merge 13 commits into from

Conversation

JieXiong9119
Copy link
Contributor

Any background context you want to provide?

This is an effort of introducing new element in alignment with the task of mapping with ASHRAE 229p for BEM tools.

What does this PR do?

See proposal.

How should this be manually tested?

What are the relevant tickets?

Screenshots (if appropriate)

@JieXiong9119
Copy link
Contributor Author

JieXiong9119 commented Mar 14, 2025

Please review the proposal and make comment on the proposal file.
@ThibaultMarzullo could you please add Craig and whoever are interested in reviewing this? I could not find them in the repo's team group.

</xs:element>
<xs:element name="MinimumFlowFraction">
<xs:annotation>
<xs:documentation>Minimum fraction of full flow allowed. (0-1)</xs:documentation>

Choose a reason for hiding this comment

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

Does "full flow" refer to the loop design flow referenced in line 15899? i.e. "Total design pump power divided by the loop design flow rate."? If so, could consider renaming description in 15955 to "Minimum fraction of full (i.e. loop design) flow allowed."

<xs:sequence>
<xs:element name="OutdoorHighForLoopSupplyTemperatureReset" minOccurs="0">
<xs:annotation>
<xs:documentation>Outdoor high for loop supply temp reset. (°C)</xs:documentation>
Copy link

@Sashadf1 Sashadf1 Mar 18, 2025

Choose a reason for hiding this comment

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

Is this referring to the outdoor air drybulb temp? Maybe worth clarifying in xs:documentation.

If yes, suggest renaming to:
"Outdoor air drybulb temperature high for loop supply temp reset. (°C)"

</xs:element>
<xs:element name="OutdoorLowForLoopSupplyTemperatureReset" minOccurs="0">
<xs:annotation>
<xs:documentation>Outdoor low for loop supply temp reset. (°C)</xs:documentation>

Choose a reason for hiding this comment

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

see comment above re outdoor high.

Choose a reason for hiding this comment

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

Realized I was annotating removed lines. Not sure if the comments above could apply to the additions (in green), but if so, they could still be considered.

</xs:element>
<xs:element name="LoopSupplyTemperatureAtOutdoorHigh" minOccurs="0">
<xs:annotation>
<xs:documentation>Loop supply temperature at outdoor high temperature. (°C)</xs:documentation>

Choose a reason for hiding this comment

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

Don't think we need to clarify that the outdoor high is OADBT here if we are clarifying it above.

</xs:element>
<xs:element name="PumpPowerPerFlowRate" minOccurs="0">
<xs:annotation>
<xs:documentation>Total design pump power divided by the loop design flow rate. (W-s/L)</xs:documentation>

Choose a reason for hiding this comment

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

correct units

</xs:element>
<xs:element name="MinimumFlowFraction" minOccurs="0">
<xs:annotation>
<xs:documentation>Minimum fraction of full flow allowed. (0-1)</xs:documentation>

Choose a reason for hiding this comment

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

see comment in red removed lines re documentation for min. fraction of full flow allowed. Would it be useful to clarify?

<xs:sequence>
<xs:element name="OutdoorHighForLoopSupplyTemperatureReset" minOccurs="0">
<xs:annotation>
<xs:documentation>Outdoor high for loop supply temp reset. (°C)</xs:documentation>

Choose a reason for hiding this comment

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

could clarify outdoor high as outdoor air drybulb temp

</xs:element>
<xs:element name="OutdoorLowForLoopSupplyTemperatureReset" minOccurs="0">
<xs:annotation>
<xs:documentation>Outdoor low for loop supply temp reset. (°C)</xs:documentation>

Choose a reason for hiding this comment

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

see comment above re outdoor high

</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="FluidLoop" type="auc:FluidLoopType">

Choose a reason for hiding this comment

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

type="auc:FluidLoopType" is definitely better than type="auc:FluidLoopTypeType".

It's hard to tell what has changed from the diffs in the xsd, b.c. they aren't side by side. Is this what the proposal is for?

<xs:annotation>
<xs:documentation>An list of properties of a general fluid loop.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="FluidLoopType" minOccurs="0">
<!-- Note that element FluidLoopType is different from complexType FluidLoopType although they have the same name. -->

Choose a reason for hiding this comment

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

@@ -103,20 +103,21 @@ Global definition
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="FluidLoop" type="auc:FluidLoopTypes" maxOccurs="unbounded">
<xs:element name="FluidLoop" type="auc:FluidLoopType" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>fluid loop for HeatingSource.</xs:documentation>
Copy link

@Sashadf1 Sashadf1 Mar 18, 2025

Choose a reason for hiding this comment

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

e.g. hydronic loop served by a boiler (HeatingSource)?

@@ -187,7 +188,7 @@ Global definition
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="MinimumFlowFraction">
<xs:element name="MinimumFlowFraction" minOccurs="0">

Choose a reason for hiding this comment

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

Is there a reason we are making DesignSupplyTemperature, DesignReturnTemperature, MinimumFlowFraction optional (minOccurs=0?)

Copy link

@Sashadf1 Sashadf1 left a comment

Choose a reason for hiding this comment

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

Waiting for Thibault to give explicit merge approval. It looks fine to me and I didn't notice very many significant changes. I had a few comments about the documentation elements in the xsd that maybe could help users w/ clarity.

@ThibaultMarzullo
Copy link
Contributor

Thanks Jie and Sasha! I'll add my review. I added @markborkum to the reviewers to keep him in the fluid loop, Craig will follow soon.


## Overview
This proposal is to add new elements related to Loop components used in BEM tools such as EnergyPlus/OpenStudio, and to map with the standardized usage of Loop or `FluidLoop` elements in ASHRAE Standard 229P - Protocols for Evaluating Ruleset Application in Building Performance Models. In 229P, `FluidLoop` element is defined and used in [schema](https://github.com/open229/ruleset-model-description-schema/blob/6509fdcc546053e13f06eb78b3fba99328fda58d/docs229/ASHRAE229.schema.json#L3316) for elements as follow:
* `FluidLoop` -> `fuild_loop`: list of all loops and sources to link from
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo: fuild_loop

</xs:simpleType>
</xs:element>
<xs:element ref="auc:LinkedScheduleIDs" minOccurs="0"/>
<xs:element name="FluidLoopFlowControlTypes" minOccurs="0">
Copy link
Contributor

Choose a reason for hiding this comment

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

These should match the capitalization of preexisting enumerations (e.g., "Fixed Flow" and "Variable Flow").

Also, consider adding a "Two Position Flow" enumeration (c.f., https://github.com/BuildingSync/schema/blob/develop-v2/BuildingSync.xsd#L13908-L13921).

<xs:restriction base="xs:string">
<xs:enumeration value="Heating"/>
<xs:enumeration value="Cooling"/>
<xs:enumeration value="Heating and cooling"/>
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider renaming this enumeration to "Closed".

<xs:enumeration value="Continuous"/>
<xs:enumeration value="Intermittent"/>
<xs:enumeration value="Demand"/>
<xs:enumeration value="Scheduled"/>
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider renaming this enumeration to "Timer" to match preexisting enumerations (e.g., https://github.com/BuildingSync/schema/blob/develop-v2/BuildingSync.xsd#L8075-L8089).

</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="FluidLoopType">
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this type have child elements for year installed, year of manufacture, primary fuel, manufacturer, model number, location, linked premises, quantity, equipment ID, etc.?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants