-
Notifications
You must be signed in to change notification settings - Fork 389
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
Reformat eplusout.dbg file for easier excel viewing #10323
Conversation
@rraustad @Myoldmopar it has been 28 days since this pull request was last updated. |
No defect file for this branch. I took an existing file and made results for develop and this branch to make this review easier. The excel files are included but can also open these dbg files from excel and choose comma delimited to create the excel files in this zip file. FurnaceWithDXSystem_DebugData.zip This is certainly much easier to use in excel (plot from this branch). |
I kinda liked the header of the debug output. The new eplusout.dbl, debug node list file, shows what data is in the eplusout.dbg csv file.
|
The discussion here would be 1- whether to move the header node list to a separate file (eplusout.dbl) or keep both the header and data in the same csv file (eplusout.dbg), and 2- I saw other places where debug output is used and maybe those areas of code also need mods. |
|
My gut says we should try to do a quick wrap on any changes of this for the I/O freeze, or push until the next release. Even though this file is likely not used much, I'd hate to make structural changes after I/O freeze. Given that, @rraustad and @mjwitte do you think we should:
|
@Myoldmopar @rraustad @Myoldmopar it has been 28 days since this pull request was last updated. |
1 similar comment
@Myoldmopar @rraustad @Myoldmopar it has been 28 days since this pull request was last updated. |
I have been using this branch for detailed testing of simulations so I think this can be safely merged. |
@rraustad Testing with some other files. May add some additional values. And will update the I/O Ref which still talks about inputs of 1 and 0 instead of Yes/No. Also, would it be useful to add a third input field for Zone or HVAC timestep? |
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.
@rraustad Thanks for making this useful.
If this is already reporting at the HVAC time step I see only a minor benefit of reporting averages at the zone time step so that graphs are easier to interpret. The other thing I thought of was to supplement ReportDuringWarmup with a flag for ReportDuringSizing and then this debug code would be nearly obsolete except for the fact that this method does not require adding node reports to the input file (but how hard is that really to add a few node reports using wildcards). There could certainly be improvements to what and how this debug data reports but I am more interested at this point to putting this to good use. |
I asked this because the docs (somewhere) said it reports debug output at the zone timestep. If it's already reporting at the HVAC timestep, then we can just update the docs. And I didn't realize this reports during sizing, so we should mention that, too in the I/O Ref. |
I assumed it was reporting at the HVAC time step give the location of code in HVACManager. I can't tell from the time stamp what frequency is being reported. |
print(state.files.debug, | ||
"{:12}{:12} {:22.15N} \n", | ||
"{:12},{:12}, {:22.15N},", | ||
state.dataGlobal->DayOfSim, | ||
state.dataGlobal->HourOfDay, | ||
state.dataGlobal->TimeStep * state.dataGlobal->TimeStepZone); |
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 line is the issue for reporting time correctly.
From what I see now, the debug data is reporting at the zone time step. I see the zone sizing getting hit more times when downshifting and then debug reports at the end of the time step. So the doc is correct. |
@Myoldmopar the last thing needed here is to get the list of nodes and the column headings correct. This data is reported very early in the simulation, before air loop and plant nodes are read in. So Node().size is less than what it will be when the simulation hits state.dataGlobal->BeginEnvrnFlag = true and as a result the list of nodes and the column headings are incomplete as shown in the figure. I thought I could just close the file, read that file into memory, write the header, then add in what was previously written similar to this. No luck trying.
|
Interesting. Adding a 2nd column heading "row" where the number of nodes increases does not seem to impact a column plot. I can't even tell where the row of text is, like excel just ignores it. If I zoom way in to 5 rows before that row of text and 5 after I can see that data point, which plots as 0. Now if I repeat the entire node list (which is a text string in column A many rows long) you do see a gap in the data (for the first set of data (columns) only reported during sizing), if you zoom in. I zoomed in to 30 rows before the column heading and 30 rows after the list of nodes. Again, this is only for the first set of sizing data. There's no impact at all on the new node data reported after zone sizing since there is just a bigger gap of blank rows before getting to the new column heading row and the data directly below that heading. Plotting the entire data set of OAT in column D, you can't even see that gap (row 2771 to 2846, but this gap could be hundreds of rows). |
This is workable for now so I think this is ready to merge. The initial size of Node() is 158 when the node list and column headers are reported. When sizing is complete and other objects are read in the size of Node() increases to 389 and a new node list and column header is reported to the dbg file. The figure shown is one of the nodes that was not initially present and reports after sizing is complete (a plenum node, the plenum objects are read in after sizing). Used to report debug node data and also during warmup:
|
The EpJSON failure is unrelated and fixed in develop. I'm inclined to merge this, and we can always tweak it further later. Thanks @rraustad ! |
Pull request overview
NOTE: ENHANCEMENTS MUST FOLLOW A SUBMISSION PROCESS INCLUDING A FEATURE PROPOSAL AND DESIGN DOCUMENT PRIOR TO SUBMITTING CODE
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.