-
Notifications
You must be signed in to change notification settings - Fork 392
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
V23.2.0-IOFreeze: IDD and transition fixes #10215
Conversation
\type object-list | ||
\object-list UnivariateFunctions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add object-list UnivariateFunctions
for all Crankcase Heater Capacity curves
@@ -57265,6 +57283,7 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, | |||
\note quadratic curve = a + b*PLR + c*PLR**2 | |||
\note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 | |||
\note PLR = part load ratio (cooling load/steady state capacity) | |||
\required-field |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add \requird-field
for all new Part Load Fraction Correlation Curves. They are required. See #10043 (review)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @jmarrec, good catch.
@@ -58175,7 +58194,7 @@ Coil:Heating:WaterToAirHeatPump:EquationFit, | |||
\memo Direct expansion (DX) heating coil for water-to-air heat pump (includes electric | |||
\memo compressor), single-speed, equation-fit model. Equation-fit model uses normalized | |||
\memo curves to describe the heat pump performance. | |||
\min-fields 12 | |||
\min-fields 15 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
N7 + A8 with last one required => \min-fields 15
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, thanks. I really look forward to tying the code and input schema together a little tighter as time marches on so that we don't have these accidental mismatches between the schema file and what the code is expecting.
## Object Change: Coil:Heating:DX:VariableSpeed | ||
|
||
Field 1 to 13 remain the same. | ||
|
||
Field 14 is a new field named "Crankcase Heater Capacity Function of Temperature Curve Name" (labeled A6). It’s an optional field. | ||
|
||
Field 15 and onwards are the same. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing from the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blah, good catch. Trying to blend together all the transition rules was an unusually intertwined mess, and this obviously just got missed in the process. Thanks
CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(14)) | ||
IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:DX:VARIABLESPEED') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not create the PLF curve if it's not going to be used. The only types (4 in total) are
Coil:<Cooling/Heating>:WaterToAirHeatPump:EquationFit
Coil:<Cooling/Heating>:WaterToAirHeatPump:ParameterEstimation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mjwitte this coil type should have a PLF curve?
Coil:Cooling:DX:VariableSpeed,
A4, \field Energy Part Load Fraction Curve Name
\required-field
\type object-list
\object-list UnivariateFunctions
\note quadratic curve = a + b*PLR + c*PLR**2
\note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3
\note PLR = part load ratio (cooling load/steady state capacity)
CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType = MakeUPPERCase(IDFRecords(Num)%Alphas(11)) | ||
IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ZoneHVAC:WaterToAirHeatPump only accepts Coil:<Cooling/Heating>:WaterToAirHeatPump:EquationFit
(and VariableSpeed, but this one doesn't warrant a PLF curve).
idd/Energy+.idd.in
Outdated
N4, \field Earth Tube Dimensionless Boundary Below | ||
\note When set to 1.0, the below boundary is one earth tube radius below the earth tube. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RKStrand Could you suggest the correct \note here please (I know what I wrote is wrong)
cf #10138 (review)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested correction: When set to 1.0, the depth of the solution space is equal to the maximum vertical dimension above the earth tube. This maximum dimension above the earth tube is the depth of the earth tube minus three times the diameter of the earth tube itself. This sets the depth of the solution space below the earth tube node.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But in N3, the note says the maximum dimension above the earth tube is the maximum vertical dimension minus 1 earth tube radius? Should this note say "...minus two times the radius...". This stood out because it is so different from the note above. These 2 notes should look very similar?
\note When set to 1.0, the upper boundary is one earth tube radius below ground.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, @rraustad, I was trying to write a quick response before having to head off to classes. I probably should have waited. Here is another attempt to clarify both of these notes:
For N3: When set to 1.0, the total thickness of the solution space above the earth tube node is equal to the maximum vertical dimension above the earth tube. This maximum dimension above the earth tube is the depth of the earth tube minus three times the radius of the earth tube itself. This sets the depth of the solution space above the earth tube node only. The earth tube node thickness is four times the earth tube radius so when this parameter is set to 1.0, the top node of the solution space is one earth tube radius below the ground surface. When this parameter is less than 1.0, the solution space thickness above the earth tube is simply this parameter times the maximum thickness defined by the earth tube depth and the earth tube radius.
For N4: When set to 1.0, the total thickness of the solution space below the earth tube node is equal to the maximum vertical dimension above the earth tube. This maximum dimension above the earth tube is the depth of the earth tube minus three times the radius of the earth tube itself. This sets the depth of the solution space below the earth tube node only. The earth tube node thickness is four times the earth tube radius so when this parameter is set to 1.0, the bottom node of the solution space is twice the earth tube depth minus the earth tube radius below the ground surface. When this parameter is less than 1.0, the solution space thickness below the earth tube is simply this parameter times the maximum thickness defined by the earth tube depth and the earth tube radius.
Hopefully this makes sense now? Sorry for all the confusion!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jmarrec this still needs final polishing, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but I'm not sure what to put there. The IDD shouldn't replace the IO Ref guide and this seems like a ton of text.
Maybe just keep the first line?
Edit: I committed the one-line version and added suggestions for the full one below, apply them both or don't.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jmarrec Yeah, I went a little too descriptive on my last suggestion. I think it could always be just the first line (sentence) as you suggested or it could be the first three lines (sentences). I don't have a strong preference either way, but agree that the note here get so long because that is why we have the IO Ref documentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a good set of changes, and it's why we have the IO freeze in the first place. Thanks @jmarrec for finding them and dealing with the issues. I have a few comments before I mark it approved:
- @jmarrec does the IDD still need a final tweak from the commentary between @RKStrand and @rraustad ?
- @mjwitte could you scrutinize the IDD/transition changes to make sure this is still good to go? I am open to trying to transition our entire set of test files, running E+ on them, and comparing the outputs, but if it's not justified, I'll avoid it and spend my time elsewhere.
- @jmarrec there was a Slack question about coils, does that relate to this work?
idd/Energy+.idd.in
Outdated
N4, \field Earth Tube Dimensionless Boundary Below | ||
\note When set to 1.0, the below boundary is one earth tube radius below the earth tube. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jmarrec this still needs final polishing, right?
@@ -36467,7 +36467,7 @@ ZoneHVAC:WaterToAirHeatPump, | |||
\note Enter the type of performance specification object used to describe the multispeed coil or fan. | |||
A22; \field Design Specification Multispeed Object Name | |||
\type object-list | |||
\object-list UnitarySystemPerformaceNames | |||
\object-list UnitarySystemPerformanceNames |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, good catch
👀 typos need to watch out for @jmarrec 👀
@@ -57265,6 +57283,7 @@ Coil:Cooling:WaterToAirHeatPump:EquationFit, | |||
\note quadratic curve = a + b*PLR + c*PLR**2 | |||
\note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3 | |||
\note PLR = part load ratio (cooling load/steady state capacity) | |||
\required-field |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @jmarrec, good catch.
@@ -58175,7 +58194,7 @@ Coil:Heating:WaterToAirHeatPump:EquationFit, | |||
\memo Direct expansion (DX) heating coil for water-to-air heat pump (includes electric | |||
\memo compressor), single-speed, equation-fit model. Equation-fit model uses normalized | |||
\memo curves to describe the heat pump performance. | |||
\min-fields 12 | |||
\min-fields 15 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, thanks. I really look forward to tying the code and input schema together a little tighter as time marches on so that we don't have these accidental mismatches between the schema file and what the code is expecting.
## Object Change: Coil:Heating:DX:VariableSpeed | ||
|
||
Field 1 to 13 remain the same. | ||
|
||
Field 14 is a new field named "Crankcase Heater Capacity Function of Temperature Curve Name" (labeled A6). It’s an optional field. | ||
|
||
Field 15 and onwards are the same. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blah, good catch. Trying to blend together all the transition rules was an unusually intertwined mess, and this obviously just got missed in the process. Thanks
@Myoldmopar The changes look correct. I can try to test some transitions tomorrow. |
@@ -24559,14 +24559,14 @@ ZoneEarthtube:Parameters, | |||
\maximum 10 | |||
\default 3 | |||
N3, \field Earth Tube Dimensionless Boundary Above | |||
\note When set to 1.0, the upper boundary is one earth tube radius below ground. | |||
\note When set to 1.0, the total thickness of the solution space above the earth tube node is equal to the maximum vertical dimension above the earth tube. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\note When set to 1.0, the total thickness of the solution space above the earth tube node is equal to the maximum vertical dimension above the earth tube. | |
\note When set to 1.0, the total thickness of the solution space above the earth tube node is equal to the maximum vertical dimension above the earth tube. | |
\note This maximum dimension above the earth tube is the depth of the earth tube minus three times the radius of the earth tube itself. | |
\note This sets the depth of the solution space above the earth tube node only. | |
\note The earth tube node thickness is four times the earth tube radius so when this parameter is set to 1.0, | |
\note the top node of the solution space is one earth tube radius below the ground surface. | |
\note When this parameter is less than 1.0, the solution space thickness above the earth tube is simply | |
\note this parameter times the maximum thickness defined by the earth tube depth and the earth tube radius. |
\note When set to 1.0, the upper boundary is one earth tube radius below ground. | ||
\default 1.0 | ||
N4, \field Earth Tube Dimensionless Boundary Below | ||
\note When set to 1.0, the total thickness of the solution space below the earth tube node is equal to the maximum vertical dimension above the earth tube. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\note When set to 1.0, the total thickness of the solution space below the earth tube node is equal to the maximum vertical dimension above the earth tube. | |
\note When set to 1.0, the total thickness of the solution space below the earth tube node is equal to the maximum vertical dimension above the earth tube. | |
\note This maximum dimension above the earth tube is the depth of the earth tube minus three times the radius of the earth tube itself. | |
\note This sets the depth of the solution space below the earth tube node only. | |
\note The earth tube node thickness is four times the earth tube radius so when this parameter is set to 1.0, | |
\note the bottom node of the solution space is twice the earth tube depth minus the earth tube radius below the ground surface. | |
\note When this parameter is less than 1.0, the solution space thickness below the earth tube is simply | |
\note this parameter times the maximum thickness defined by the earth tube depth and the earth tube radius. |
Kindof. I did remove the superfluous curve in transition. Didn't tweak the IDD defaults though (This PR is just stuff I do on the fly while I implement the changes on the OS SDK side) For reference the question I had on IDD defaults was:
|
@jmarrec there is no switch to turn off latent degradation (which is kinda silly) except for the model inputs themselves when 1 or more are 0. When latent degradation is used I think those non-zero defaults are fairly accurate. When the latent degradation model was added, 1 or more of these new inputs needed to have a default of 0 so as not to change the answer. How to resolve this across the coil models is another question.
|
I ran regressions locally and am not seeing any big table diffs at all. I suppose they were purely due to being behind develop. I fixed the tiny conflict and am ready to push my changes, wait a brief moment and merge this in. If anyone disagrees, speak up quick! Thanks @jmarrec. |
I was hoping to catch this before Decent, but I missed, so I guess I'll just let Mac give a set of results and merge it if clean. |
IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:PARAMETERESTIMATION') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. | ||
IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:EQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. | ||
IF (CoilLatentStuff(NumCoilLatentStuff)%CoolingCoilType == 'COIL:COOLING:WATERTOAIRHEATPUMP:VARIABLESPEEDEQUATIONFIT') CoilLatentStuff(NumCoilLatentStuff)%ActuallyCreateCurve = .true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mjwitte this coil type should have a PLF curve?
Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit,
A6, \field Energy Part Load Fraction Curve Name
\required-field
\type object-list
\object-list UnivariateFunctions
\note quadratic curve = a + b*PLR + c*PLR**2
\note cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3
\note PLR = part load ratio (cooling load/steady state capacity)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It already had one in v23.1, so it doesn't need a new one here. If I'm following this correctly.
This is coming out all clean on CI. I would be clicking merge pull request right now, but I will hold for a second after @rraustad 's comment. We are basically out of time, so unless that's a quick fix or an absolute red flag, we may just have to defer it. |
@Myoldmopar This is good to go in as-is. I suppose for good measure, another round of running all test files through transition would be useful before packaging the release. |
OK cool, let's merge then. Thanks all! |
Pull request overview
Just upstreaming some stuff I found while updating the openstudio SDK to use v23.2.0-IOFreeze. Technically an IDDChange, but definitely not a breaking one.
Pull Request Author
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
Reviewer
This will not be exhaustively relevant to every PR.