Skip to content

Fix 11300 - Crash When Adding Windows to Rotating Building Using Site:VariableLocation#11314

Merged
mitchute merged 4 commits intoNatLabRockies:developfrom
bigladder:Fix-11300-Crash-when-rotating-multiple-windows-with-Site-VariableLocation
Nov 7, 2025
Merged

Fix 11300 - Crash When Adding Windows to Rotating Building Using Site:VariableLocation#11314
mitchute merged 4 commits intoNatLabRockies:developfrom
bigladder:Fix-11300-Crash-when-rotating-multiple-windows-with-Site-VariableLocation

Conversation

@kevin-moos
Copy link
Contributor

@kevin-moos kevin-moos commented Nov 3, 2025

Pull request overview

Description of the purpose of this PR

Fix crash when using multiple windows with Site:VariableLocation. This was due to NewVertex not being allocated.
Fix defect in which fields are not processed in the correct order for Site:VariableLocation.
Add unit test to check for crashes.

Pull Request Author

  • Title of PR should be user-synopsis style (clearly understandable in a standalone changelog context)
  • Label the PR with at least one of: Defect, Refactoring, NewFeature, Performance, and/or DoNoPublish
  • Pull requests that impact EnergyPlus code must also include unit tests to cover enhancement or defect repair
  • Author should provide a "walkthrough" of relevant code changes using a GitHub code review comment process
  • If any diffs are expected, author must demonstrate they are justified using plots and descriptions
  • If changes fix a defect, the fix should be demonstrated in plots and descriptions
  • If any defect files are updated to a more recent version, upload new versions here or on DevSupport
  • If IDD requires transition, transition source, rules, ExpandObjects, and IDFs must be updated, and add IDDChange label
  • If structural output changes, add to output rules file and add OutputChange label
  • If adding/removing any LaTeX docs or figures, update that document's CMakeLists file dependencies
  • If adding/removing any output files (e.g., eplustbl.*)
    • Update ..\scripts\Epl-run.bat
    • Update ..\scripts\RunEPlus.bat
    • Update ..\src\EPLaunch\ MainModule.bas, epl-ui.frm, and epl.vbp (VersionComments)
    • Update ...github\workflows\energyplus.py

Reviewer

  • Perform a Code Review on GitHub
  • If branch is behind develop, merge develop and build locally to check for side effects of the merge
  • If defect, verify by running develop branch and reproducing defect, then running PR and reproducing fix
  • If feature, test running new feature, try creative ways to break it
  • CI status: all green or justified
  • Check that performance is not impacted (CI Linux results include performance check)
  • Run Unit Test(s) locally
  • Check any new function arguments for performance impacts
  • Verify IDF naming conventions and styles, memos and notes and defaults
  • If new idf included, locally check the err file and other outputs

@kevin-moos kevin-moos changed the title Fix 11300 - Allocate NewVertex array for subsurfaces Fix 11300 - Crash When Adding Windows to Rotating Building Using Site:VariableLocation Nov 4, 2025
@kevin-moos kevin-moos marked this pull request as ready for review November 5, 2025 05:21
@mitchute mitchute added the Defect Includes code to repair a defect in EnergyPlus label Nov 6, 2025
Comment on lines -291 to +307
ErrorObjectHeader eoh{routineName, ipsc->cCurrentModuleObject, ""};

if (ipsc->lAlphaFieldBlanks(1)) {
} else if ((state.dataEnvrn->varyingLocationLatSched = Sched::GetSchedule(state, ipsc->cAlphaArgs(1))) == nullptr) {
ShowSevereItemNotFound(state, eoh, ipsc->cAlphaFieldNames(1), ipsc->cAlphaArgs(1));
}
std::string newName = Util::makeUPPER(ipsc->cAlphaArgs(1));
ErrorObjectHeader eoh{routineName, ipsc->cCurrentModuleObject, newName};

if (ipsc->lAlphaFieldBlanks(2)) {
} else if ((state.dataEnvrn->varyingLocationLongSched = Sched::GetSchedule(state, ipsc->cAlphaArgs(2))) == nullptr) {
} else if ((state.dataEnvrn->varyingLocationLatSched = Sched::GetSchedule(state, ipsc->cAlphaArgs(2))) == nullptr) {
ShowSevereItemNotFound(state, eoh, ipsc->cAlphaFieldNames(2), ipsc->cAlphaArgs(2));
}

if (ipsc->lAlphaFieldBlanks(3)) {
} else if ((state.dataEnvrn->varyingOrientationSched = Sched::GetSchedule(state, ipsc->cAlphaArgs(3))) == nullptr) {
} else if ((state.dataEnvrn->varyingLocationLongSched = Sched::GetSchedule(state, ipsc->cAlphaArgs(3))) == nullptr) {
ShowSevereItemNotFound(state, eoh, ipsc->cAlphaFieldNames(3), ipsc->cAlphaArgs(3));
}

if (ipsc->lAlphaFieldBlanks(4)) {
} else if ((state.dataEnvrn->varyingOrientationSched = Sched::GetSchedule(state, ipsc->cAlphaArgs(4))) == nullptr) {
ShowSevereItemNotFound(state, eoh, ipsc->cAlphaFieldNames(4), ipsc->cAlphaArgs(4));
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Looks right. Interesting that this was never caught before.

Copy link
Collaborator

@mitchute mitchute left a comment

Choose a reason for hiding this comment

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

Looks good.

@mitchute mitchute merged commit 59abc87 into NatLabRockies:develop Nov 7, 2025
11 of 12 checks passed
@mitchute mitchute deleted the Fix-11300-Crash-when-rotating-multiple-windows-with-Site-VariableLocation branch November 7, 2025 00:11
@JasonGlazer
Copy link
Contributor

Thanks @kevin-moos and @mitchute

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

Labels

Defect Includes code to repair a defect in EnergyPlus

Projects

None yet

Development

Successfully merging this pull request may close these issues.

EnergyPlus Crashes When Adding Windows to Rotating Building Model Using Site:VariableLocation

5 participants