-
Notifications
You must be signed in to change notification settings - Fork 222
#4219 - Mininal Fix: do NOT add a Controller:MEchanicalVentilation if it does not have any DSOA on it (E+ error) #5403
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
Conversation
…tionOutdoorAir() const`
…the DSOAs Without a DesignDay, the translateSizingZone is never called, and in turn the Controller:MechanicalVentilation does NOT receive the DSOAs This has been the case since the first ever commit of OS SDK on github, but it is wrong IMHO.
| /// return all spaces that have a design specification outdoor air assigned | ||
| std::vector<Space> spacesWithDesignSpecificationOutdoorAir() const; |
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.
New helper
| // Convenience method to check whether it links to zones that have DesignSpecificationOutdoorAir(s) assigned | ||
| bool hasZonesWithDesignSpecificationOutdoorAir() const; |
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.
New helper
| boost::optional<IdfObject> ForwardTranslator::translateControllerMechanicalVentilation(ControllerMechanicalVentilation& modelObject) { | ||
|
|
||
| // NOTE: don't translate it if it has no DSOA | ||
| if (!modelObject.hasZonesWithDesignSpecificationOutdoorAir()) { | ||
| return boost::none; | ||
| } |
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.
Don't translate if no DSOA found.
|
CI Results for ab9f0eb:
|
|
Happy to test this when an Ubuntu or Windows build is available... |
|
|
||
| // TODO: Without a DesignDay, the translateSizingZone is never called, and in turn the Controller:MechanicalVentilation does NOT receive the DSOAs | ||
| // This has been the case since the first ever commit of OS SDK on github, but it is wrong IMHO. | ||
| DesignDay d(m); |
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.
I think you're trying to keep the PR focused on the task, which I appreciate. But, should there be a separate PR to move the assignment of DSOA objects from ForwardTranslateSizingZone.cpp to ForwardTranslateControllerMechanicalVentilation.cpp? Are you thinking it is too risky and there will be unintended consequences?
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.
As I said in the OP:
This is a mininal fix extracted from #5384
I handle that there...
The issue is that E+ crashes when a ControllerMV uses a DSOA:SpaceList:
Pull request overview
Pull Request Author
src/model/test)src/energyplus/Test)Labels:
IDDChangeAPIChangePull Request - Ready for CIso that CI builds your PRReview Checklist
This will not be exhaustively relevant to every PR.