Skip to content
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

Update Spawn to EnergyPlus 24.2.0 #3911

Open
kbenne opened this issue Jun 25, 2024 · 19 comments · May be fixed by #4018
Open

Update Spawn to EnergyPlus 24.2.0 #3911

kbenne opened this issue Jun 25, 2024 · 19 comments · May be fixed by #4018
Assignees
Labels
spawn Development for Spawn of EnergyPlus

Comments

@kbenne
Copy link
Contributor

kbenne commented Jun 25, 2024

No description provided.

@kbenne kbenne added the spawn Development for Spawn of EnergyPlus label Jun 25, 2024
@kbenne kbenne self-assigned this Jun 25, 2024
@Mov0
Copy link

Mov0 commented Aug 9, 2024

May I ask how this is moving along? An update soon to a more recent EnergyPlus version would be much needed here, as the IDFVersion Updater does not allow to downgrade.

@mwetter
Copy link
Member

mwetter commented Aug 11, 2024

I expect to issue a release in the next couple of months.

@kbenne
Copy link
Contributor Author

kbenne commented Aug 12, 2024

I posted a early buiild for Linux that supports EnergyPlus 24.1.0 here

I'm moving forward on a branch that folds in the new autosizing variables. My preference is to wrap this up and then do an update that includes the EnergyPlus update and the autosizing update, but if you want to roll out the EnergyPlus update by itself we could do that.

@Mov0
Copy link

Mov0 commented Aug 13, 2024

I am currently in a situation where it was not clear from the beginning that I would be using SOEP and I was not aware that it was based on EnergyPlus 9.6.0. Therefore, I spent two months creating eight building models in OpenStudio-1.7.1/EnergyPlus-23.2.0 that I would have to manually downgrade to EnergyPlus 9.6.0 in order to use them with SOEP. If the EnergyPlus update could be released on its own, I would be very grateful, but if it disrupts your intended workflow too much, I understand.

@kbenne
Copy link
Contributor Author

kbenne commented Aug 13, 2024

Can you use Linux or do you need a windows build?

@Mov0
Copy link

Mov0 commented Aug 13, 2024

I am unfortunately dependent on Windows because our Dymola licenses are used on Windows PCs.

@mwetter
Copy link
Member

mwetter commented Sep 4, 2024

@kbenne : I tested an intermediate release on branch issue3911_EP_24_1_0, e.g., hash 2b19281 that uses https://spawn.s3.amazonaws.com/custom/Spawn-light-0.6.0-69002307aa-Linux.tar.gz

On Dymola, this fails with

Process Simulating: Initialization
 stopped without any error indication.

--idd: File does not exist: /home/mwetter/proj/ldrd/bie/modeling/github/lbl-srg/modelica-buildings/Buildings/Energy+.idd
Run with --help for more information.
terminate called after throwing an instance of 'CLI::ValidationError'
  what():  --idd: File does not exist: /home/mwetter/proj/ldrd/bie/modeling/github/lbl-srg/modelica-buildings/Buildings/Energy+.idd
Aborted (core dumped)

Did anything regarding handling the idd file change? The idd file is here after the crash:

$ find . -name Energy+.idd
./Resources/bin/Spawn-light-0.6.0-69002307aa/linux64/etc/Energy+.idd
./spawn-Unconditioned/resources/Energy+.idd

It looks like E+ expects it in the working directory rather than picking the one from ./spawn-Unconditioned/resources/Energy+.idd that is being created. Also the core dumped is unexpected.

@mwetter
Copy link
Member

mwetter commented Sep 13, 2024

@kbenne : Kyle, did you isolate what causes this change in idd handling, and is the path forward to recreate the old behavior (as with the current Spawn coupling).

@mwetter mwetter added this to the Release 12.0.0 milestone Sep 13, 2024
@kbenne
Copy link
Contributor Author

kbenne commented Oct 9, 2024

@mwetter as we discussed via email, I updated the IDF files from v24.1.0 to v24.2.0 here. Can you create the remaining directories and files to support 24.2.0?

There is one more thing, which is that as of v24.2.0 EnergyPlus has dropped support for Ubuntu 20.04 and now the minimum version is Ubuntu 22.04. Should we follow?

@kbenne
Copy link
Contributor Author

kbenne commented Oct 9, 2024

@kbenne : Kyle, did you isolate what causes this change in idd handling, and is the path forward to recreate the old behavior (as with the current Spawn coupling).

Yes. idd path issues are resolved now.

@mwetter mwetter linked a pull request Oct 17, 2024 that will close this issue
5 tasks
@mwetter
Copy link
Member

mwetter commented Oct 17, 2024

@kbenne : Let's stay with Ubuntu 20.04 as later versions cause issues with Dymola. Please let me know when binaries for Spawn are available so I can add the right hash to #4018 and test it.

@mwetter mwetter changed the title Update Spawn to EnergyPlus 24.1.0 Update Spawn to EnergyPlus 24.2.0 Oct 17, 2024
@kbenne
Copy link
Contributor Author

kbenne commented Oct 22, 2024

@mwetter These are based on EnergyPlus v24.2.0a. My tests are functional and qualitative. You will have better quantitative tests. We should expect some change in the results, but I will be interested to learn what the magnitude of the difference is.

https://spawn.s3.amazonaws.com/custom/Spawn-light-0.6.0-3794215efe-Linux.tar.gz
https://spawn.s3.amazonaws.com/custom/Spawn-light-0.6.0-3794215efe-win64.zip

@mwetter
Copy link
Member

mwetter commented Oct 25, 2024

@kbenne : Thanks for the binaries. I tested them on issue3911_EP_24_2_0_mw but there is an issue when writing to surface temperatures:
Running simulateModel("Buildings.ThermalZones.EnergyPlus_24_2_0.Validation.SurfaceComparison.SurfaceComparison", stopTime=2592000, method="Cvode", tolerance=1e-06, resultFile="SurfaceComparison");
creates a dslog.txt file that has lot of entries of the form

600.000 SurfaceComparison.zonSur.building: Warning from EnergyPlus: Data Exchange API: You seem to already have tried to get an Actuator Handle on this one.
600.000 SurfaceComparison.zonSur.building: Warning from EnergyPlus: Occurred for componentType='SURFACE', controlType='SURFACE INSIDE TEMPERATURE', uniqueKey='GARAGE:INTERIOR'.
600.000 SurfaceComparison.zonSur.building: Warning from EnergyPlus: The getActuatorHandle function will still return the handle (= 279) but caller should take note that there is a risk of overwritting.
600.000 SurfaceComparison.zonSur.building: Warning from EnergyPlus: Data Exchange API: You seem to already have tried to get an Actuator Handle on this one.

at every time step, and the simulation takes about 30 seconds for 1 day. (This model should take almost no time to simulate a day.)

Can you please look into this and add a test to write to zoneSurfaces.

@kbenne
Copy link
Contributor Author

kbenne commented Oct 28, 2024

Thank you for testing @mwetter. I do have tests on the surface IO, but I didn't notice the perfermance regression. I think I can fix this today.

@kbenne
Copy link
Contributor Author

kbenne commented Oct 28, 2024

@mwetter
Copy link
Member

mwetter commented Oct 28, 2024

@kbenne : The warnings go away, but the reported units are wrong: In 9.6.0 (as on the master branch), I get for this model

Output SurfaceComparison.zonSur.wes.extSurHea.y has in Modelica the unit W.
Output SurfaceComparison.zonSur.eas.extSurHea.y has in Modelica the unit W.
Output SurfaceComparison.refSur.TGarAir.y has in Modelica the unit K.
Output SurfaceComparison.refSur.TIntWalLivSur.y has in Modelica the unit K.
Output SurfaceComparison.refSur.TIntWalGarSur.y has in Modelica the unit K.
Output SurfaceComparison.refSur.TWesWalGarSur.y has in Modelica the unit K.
Output SurfaceComparison.refSur.TEasWalGarSur.y has in Modelica the unit K.
Output SurfaceComparison.zonSur.TGarAir.y has in Modelica the unit K.
Output SurfaceComparison.zonSur.TIntWalLivSur.y has in Modelica the unit K.
Output SurfaceComparison.zonSur.TIntWalGarSur.y has in Modelica the unit K.
Output SurfaceComparison.zonSur.TWesWalGarSur.y has in Modelica the unit K.
Output SurfaceComparison.zonSur.TEasWalGarSur.y has in Modelica the unit K.
Model: Buildings.ThermalZones.EnergyPlus_9_6_0.Validation.SurfaceComparison.SurfaceComparison
Integration started at 0 using integration method:

With today's version, I get

Output SurfaceComparison.zonSur.wes.extSurHea.y has in Modelica the unit 1.
Output SurfaceComparison.zonSur.eas.extSurHea.y has in Modelica the unit 1.
Output SurfaceComparison.refSur.TGarAir.y has in Modelica the unit 1.
Output SurfaceComparison.refSur.TIntWalLivSur.y has in Modelica the unit 1.
Output SurfaceComparison.refSur.TIntWalGarSur.y has in Modelica the unit 1.
Output SurfaceComparison.refSur.TWesWalGarSur.y has in Modelica the unit 1.
Output SurfaceComparison.refSur.TEasWalGarSur.y has in Modelica the unit 1.
Output SurfaceComparison.zonSur.TGarAir.y has in Modelica the unit 1.
Output SurfaceComparison.zonSur.TIntWalLivSur.y has in Modelica the unit 1.
Output SurfaceComparison.zonSur.TIntWalGarSur.y has in Modelica the unit 1.
Output SurfaceComparison.zonSur.TWesWalGarSur.y has in Modelica the unit 1.
Output SurfaceComparison.zonSur.TEasWalGarSur.y has in Modelica the unit 1.
Model: Buildings.ThermalZones.EnergyPlus_24_2_0.Validation.SurfaceComparison.SurfaceComparison

@mwetter
Copy link
Member

mwetter commented Oct 28, 2024

@kbenne : Another new issue are the ERROR messages from fmi, which look like the xml writing changed:
image

kbenne added a commit to NREL/Spawn that referenced this issue Oct 29, 2024
1. In _TAveInlet variable, fix the value for "causality". There was
   extra padding, " input ", when we want "input".
2. Fixed the units custom output variables, which we left at the default
   "one", because the unit initialization happened *after* the metadata
   generation.

ref lbl-srg/modelica-buildings#3911 (comment)
ref lbl-srg/modelica-buildings#3911 (comment)
@kbenne
Copy link
Contributor Author

kbenne commented Oct 30, 2024

Hi @mwetter. Here are corrections related to units and the causality attribute.

https://spawn.s3.us-east-1.amazonaws.com/custom/Spawn-light-0.6.0-0eed8d916f-Linux.tar.gz
https://spawn.s3.us-east-1.amazonaws.com/custom/Spawn-light-0.6.0-0eed8d916f-win64.zip

I also validated the generated FMUs with fmpy's validator and there are a couple of warnings still remaining. I don't think that these remaining items are regressions, I think they are long standing, but in any case I am working on corrections and will issue another update within one or two days.

@mwetter
Copy link
Member

mwetter commented Nov 1, 2024

@kbenne : Here is some feedback from testing with the latest E+ binaries.

  1. With this version I still get four entries of the form
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
EnergyPlus Completed Successfully.

for the model Buildings.ThermalZones.EnergyPlus_24_2_0.Examples.SingleFamilyHouse.AirHeating

For the SmallOffice this gives

[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XML] Start attribute is required for this causality, variability and initial combination
[ERROR][FMI2XM
...(message truncated)

So let's fix this so we are not cluttering up the output and possible truncating real errors.

  1. In Unconditioned, I get a new warning
431400.000 Unconditioned.building: Warning from EnergyPlus: ** Warning ** Zone 3 has multiple people objects with different PMV. 

But there is only one People object in the idf file. Do you know what causes this and how to correct it?

  1. Regarding regressions, I see the following (summarized):
    image
    Above, one model uses Sunday the other Monday as the start day but both have now the same trajectory which is unexpected.

image
Initial transients are slower, perhaps this is acceptable if it is related to the thermal mass warmup?

image
Here, the zone air temperature of the garage now starts at 20 degC. This is an unconditioned zone (not connected to Modelica) and the outdoor temperature is -12 degC. It appears that the initialization is fixing the room temperature at 20 degC? This may also explain the above change in initial transients.

kbenne added a commit to NREL/Spawn that referenced this issue Nov 5, 2024
fmpy validation still reports two warnings about the xml metadata.

* ModelStructure/Outputs must have exactly one entry for each variable with causality="output".
* ModelStructure/InitialUnknowns does not contain the expected set of variables.

We have not historically defined these elements, but may consider adding
them in a future commit.

ref lbl-srg/modelica-buildings#3911 (comment)
kbenne added a commit to NREL/Spawn that referenced this issue Nov 5, 2024
Prior to this, every Spawn zone received a default people input object,
which was to avoid errors when accessing the people related outputs for
zones without people (such as attics).

As of version 24.2, EnergyPlus will issue a warning if there are
duplicate people inputs with different PMV, so to avoid such a possible
error the default people input is only provided when there is not an
existing people input for a particular zone.

ref lbl-srg/modelica-buildings#3911 (comment)
kbenne added a commit to NREL/Spawn that referenced this issue Nov 5, 2024
This change corrects a regression that prevented "unconnected" zones
from updating.

ref lbl-srg/modelica-buildings#3911 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spawn Development for Spawn of EnergyPlus
Projects
Status: To do
Development

Successfully merging a pull request may close this issue.

3 participants