-
Notifications
You must be signed in to change notification settings - Fork 460
Fix a few EIO headers and newlines #11126
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
Found in #11109: I wrote an EIO parser and realized that some formats were broken
| "! <Building Convection Parameters:Roof>, Area [m2], Perimeter [m], Height [m], Tilt [deg], Azimuth [deg]\n"); | ||
| print(state.files.eio, Format_8800); // header for roof | ||
| static constexpr std::string_view Format_8801("Building Convection Parameters:Roof,{:.2R},{:.2R},{:.2R},{:.2R},{:.2R}"); | ||
| static constexpr std::string_view Format_8801("Building Convection Parameters:Roof,{:.2R},{:.2R},{:.2R},{:.2R},{:.2R}\n"); |
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.
EMSThermochromicWindow/eplusout.eio
! <Building Convection Parameters:Roof>, Area [m2], Perimeter [m], Height [m], Tilt [deg], Azimuth [deg]
-Building Convection Parameters:Roof,598.76,97.10,3.28,18.45,120.62! <ZoneInfiltration Airflow Stats Nominal>,Name,Schedule Name,Zone Name, Zone Floor Area {m2}, # Zone Occupants,Design Volume Flow Rate {m3/s},Volume Flow Rate/Floor Area {m3/s-m2},Volume Flow Rate/Exterior Surface Area {m3/s-m2},ACH - Air Changes per Hour,Equation A - Constant Term Coefficient {},Equation B - Temperature Term Coefficient {1/C},Equation C - Velocity Term Coefficient {s/m}, Equation D - Velocity Squared Term Coefficient {s2/m2}
+Building Convection Parameters:Roof,598.76,97.10,3.28,18.45,120.62
+! <ZoneInfiltration Airflow Stats Nominal>,Name,Schedule Name,Zone Name, Zone Floor Area {m2}, # Zone Occupants,Design Volume Flow Rate {m3/s},Volume Flow Rate/Floor Area {m3/s-m2},Volume Flow Rate/Exterior Surface Area {m3/s-m2},ACH - Air Changes per Hour,Equation A - Constant Term Coefficient {},Equation B - Temperature Term Coefficient {1/C},Equation C - Velocity Term Coefficient {s/m}, Equation D - Velocity Squared Term Coefficient {s2/m2}| } | ||
| print(state.files.eio, | ||
| "{},{:.2R},{},{:.2R},{:.2R}\n", | ||
| "Shelf Details,{},{:.2R},{},{:.2R},{:.2R}\n", |
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.
DaylightingDeviceShelf/eplusout.eio
! <Shelf Details>,Name,View Factor to Outside Shelf,Window Name,Window View Factor to Sky,Window View Factor to Ground
-SHELF,0.29,DAYLIT UPPER WINDOW,0.50,0.21
+Shelf Details,SHELF,0.29,DAYLIT UPPER WINDOW,0.50,0.21| static constexpr std::string_view Format_724("! <{} Airflow Stats Nominal>, {}\n"); | ||
| print(state.files.eio, | ||
| Format_724, | ||
| "RefrigerationDoorMixing ", | ||
| "RefrigerationDoorMixing", |
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.
Avoids double space in header
RefrigeratedWarehouse/eplusout.eio.
-! <RefrigerationDoorMixing Airflow Stats Nominal>, Name, Zone 1 Name,Zone 2 Name,Door Opening Schedule Name,Door Height {m},Door Area {m2},Door Protection Type
+! <RefrigerationDoorMixing Airflow Stats Nominal>, Name, Zone 1 Name,Zone 2 Name,Door Opening Schedule Name,Door Height {m},Door Area {m2},Door Protection Type
RefrigerationDoorMixing Airflow Stats Nominal, FREEZER1_SUBFREEZER1,FREEZER_1,SUBFREEZER,FREEZER1DOORSCHEDA,1.800,2.300,StripCurtain| // Write eio data | ||
| for (auto &thisDomain : state.dataPlantPipingSysMgr->domains) { | ||
| static constexpr std::string_view DomainCellsToEIO("{},{:5},{:5},{:5}\n"); | ||
| static constexpr std::string_view DomainCellsToEIO("Domain Name,{},{:5},{:5},{:5}\n"); |
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.
5ZoneAirCooledWithCoupledInGradeSlab/eplusout.eio
! <Domain Name>, Total Number of Domain Cells, Total Number of Ground Surface Cells, Total Number of Insulation Cells
-INGRADECOUPLEDSLAB, 3380, 120, 182
+Domain Name,INGRADECOUPLEDSLAB, 3380, 120, 182| "Node #,Zone Node Name,Sensible Capacity (W/C),Sensible Capacity (W),Evaporating Temperature (C),DT1 (C),Fan " | ||
| "Power (W),Heater (W),Defrost (W), Air Flow Rate (m3/s)"); | ||
| static constexpr std::string_view Format_152("! <Air Chiller Load>, Air Chiller Name, Air Chiller Number, Zone Name,"); | ||
| static constexpr std::string_view Format_152("! <Air Chiller Load>, Air Chiller Name, Air Chiller Number, Zone Name"); |
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.
RefrigeratedWarehouse/eplusout.eio
Most parsers (eg pandas) would assume there's an extra unnamed column at the end due to the extra comma.
| "Set Name, Front Side Beam-Beam Solar Transmittance, Back Side Beam-Beam Solar Transmittance, " | ||
| "Front Side Beam-Beam Solar Reflectance, Back Side Beam-Beam Solar Reflectance, Front Side " | ||
| "Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, , Front Side " | ||
| "Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, Front Side " |
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.
EquivalentLayerWindow/eplusout.eio
-! <WindowMaterial:Glazing:EquivalentLayer>, Material Name, Optical Data Type, Spectral Data Set Name, Front Side Beam-Beam Solar Transmittance, Back Side Beam-Beam Solar Transmittance, Front Side Beam-Beam Solar Reflectance, Back Side Beam-Beam Solar Reflectance, Front Side Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, , Front Side Beam-Diffuse Solar Reflectance, Back Side Beam-Diffuse Solar Reflectance, Diffuse-Diffuse Solar Transmittance, Front Side Diffuse-Diffuse Solar Reflectance, Back Side Diffuse-Diffuse Solar Reflectance, Infrared Transmittance, Front Side Infrared Emissivity, Back Side Infrared Emissivity
+! <WindowMaterial:Glazing:EquivalentLayer>, Material Name, Optical Data Type, Spectral Data Set Name, Front Side Beam-Beam Solar Transmittance, Back Side Beam-Beam Solar Transmittance, Front Side Beam-Beam Solar Reflectance, Back Side Beam-Beam Solar Reflectance, Front Side Beam-Diffuse Solar Transmittance, Back Side Beam-Diffuse Solar Transmittance, Front Side Beam-Diffuse Solar Reflectance, Back Side Beam-Diffuse Solar Reflectance, Diffuse-Diffuse Solar Transmittance, Front Side Diffuse-Diffuse Solar Reflectance, Back Side Diffuse-Diffuse Solar Reflectance, Infrared Transmittance, Front Side Infrared Emissivity, Back Side Infrared EmissivityExtract:
-Back Side Beam-Diffuse Solar Transmittance, , Front Side Beam-Diffuse Solar Reflectance
+Back Side Beam-Diffuse Solar Transmittance, Front Side Beam-Diffuse Solar Reflectance| print(state.files.eio, Format_722); | ||
| } | ||
| if (state.dataWaterThermalTanks->numChilledWaterMixed > 0) { | ||
| if ((state.dataWaterThermalTanks->numChilledWaterMixed > 0) || (state.dataWaterThermalTanks->numChilledWaterStratified > 0)) { |
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.
5ZoneVAV-ChilledWaterStorage-Stratified/eplusout.eio
The Chilled Water Tank Information value line is issued, but not the header.
$ rg "Chilled Water Tank" 5ZoneVAV-ChilledWaterStorage-Stratified/eplusout.eio
197:! <Chilled Water Tank Stratified Node Information>,Node Number,Height {m},Volume {m3},UA {W/K},Number Of Inlets,Number Of Outlets
399:Chilled Water Tank Stratified Node Information,1,1.3333,8.3333,9.0331,1,1
400:Chilled Water Tank Stratified Node Information,2,1.3333,8.3333,5.9081,0,0
401:Chilled Water Tank Stratified Node Information,3,1.3333,8.3333,5.9081,0,0
402:Chilled Water Tank Stratified Node Information,4,1.3333,8.3333,5.9081,0,0
403:Chilled Water Tank Stratified Node Information,5,1.3333,8.3333,5.9081,0,0
404:Chilled Water Tank Stratified Node Information,6,1.3333,8.3333,9.0331,1,1
416:Chilled Water Tank Information,ThermalStorage:ChilledWater:Stratified,CHILLED WATER STORAGE TANK 1,50.0000,3.0227E-003,5.0000E-003| "Parallel Sims"); | ||
| print(state.files.eio, "{}\n", ThreadingHeader); | ||
| static constexpr std::string_view ThreadReport("Program Control:Threads/Parallel Sims, {},{}, {}, {}, {}, {}, {}, {}\n"); | ||
| static constexpr std::string_view ThreadReport("Program Control Information:Threads/Parallel Sims, {},{}, {}, {}, {}, {}, {}, {}\n"); |
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.
Align with header.
Example 1ZoneUncontrolled/eplusout.eio
! <Program Control Information:Threads/Parallel Sims>, Threading Supported,Maximum Number of Threads, Env Set Threads (OMP_NUM_THREADS), EP Env Set Threads (EP_OMP_NUM_THREADS), IDF Set Threads, Number of Threads Used (Interior Radiant Exchange), Number Nominal Surfaces, Number Parallel Sims
-Program Control:Threads/Parallel Sims, No,1, N/A, N/A, N/A, N/A, N/A, N/A
+Program Control Information:Threads/Parallel Sims, No,1, N/A, N/A, N/A, N/A, N/A, N/A
|
|
|
EIO diffs in all files are expected ---
+++
@@ -551,5 +551,5 @@
-different, but equivalent numeric tokens found in line-
-different, but equivalent numeric tokens found in line-
! , Threading Supported,Maximum Number of Threads, Env Set Threads (OMP_NUM_THREADS), EP Env Set Threads (EP_OMP_NUM_THREADS), IDF Set Threads, Number of Threads Used (Interior Radiant Exchange), Number Nominal Surfaces, Number Parallel Sims
-Program Control:Threads/Parallel Sims, No,1, N/A, N/A, N/A, N/A, N/A, N/A
+Program Control Information:Threads/Parallel Sims, No,1, N/A, N/A, N/A, N/A, N/A, N/A
End of Data |
Myoldmopar
left a comment
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 seems like an easy set of changes. My one thought is that we should have a couple worker functions to send data to the EIO instead of directly printing from it. It would be nice to not have to carefully format everything on each of these calls, and instead just pass a vector of stuff in and let it handle it. I realize there may be complications, but it would be nice to centralize it into a very minimal set of workers. That's for later, thanks @jmarrec
|
I've got no issue with this cleanup. CI is happy and I think I'll just drop this right in. |
Pull request overview
Description of the purpose of this PR
Pull Request Author
Reviewer