diff --git a/documentation/S05-LicensedAcceptance.md b/documentation/S05-LicensedAcceptance.md new file mode 100644 index 00000000..d7626859 --- /dev/null +++ b/documentation/S05-LicensedAcceptance.md @@ -0,0 +1,123 @@ +# S05 - Licensed Phase A GUI acceptance - acceptance record + +Roadmap: SAM `documentation/SIMULATION_ROADMAP_Q4_2026.md`, task S05 (Phase A). SAM_UI record only: no product code changed. +Preflight (rehearsal, not acceptance): `documentation/S05-LicensedAcceptance-Preflight.md` (SAM_UI#244). + +Status values: **PASS**, **FAIL**, **NOT RUN**, **BLOCKED**. Numerical agreement between Tas and EnergyPlus is not a +criterion (roadmap); engine numbers are recorded, not judged. + +## Status +**All nine cases PASS** on 2026-10-20, run from the real SAM Analytical ribbon on this licensed laptop, on a fresh build of +the merged S01-S04 content. Branch `docs/s05-acceptance`, base `sow/2026-Q4` `ad1f2486`. Record and evidence only. + +## Content under test +- **SAM_UI** `sow/2026-Q4` `ad1f2486`: S01 (SAM_Tas#103 `e483877c`, SAM_UI#240 `5b379191`), S02 (#241 `49eebe13`), + S03 (#242 `1e460bbe`), S04 (#243 `307cb0e3`) merged, with green post-merge Q4 builds (`1e460bbe`, `307cb0e3`). +- **Dependencies** at their `sow/2026-Q4` tips, clean (`build-revisions.txt`): SAM `62b54156`, SAM_Tas `e84aeff6`, + SAM_OpenStudio `d4216f3`, SAM_Validation `68eded0`, and the other 22 BuildAll repositories. +- **Why a full rebuild was needed (finding):** before this session the laptop's `SAM\build` dated from 2026-10-17, before + SAM#212 (F1, EPW writer). Every overnight real-engine run (S03, S04 evidence and the S05 preflight) therefore used a pre-F1 + `SAM.Weather.dll`. This record's runs use a fresh build; see case 4 for the proof that F1 is in effect. + +## Build (machine-local, reproducible) +1. Dependency stack: `BuildAlls_v5.bat skip2027 nopause` (Debug, Restore/Clean/Rebuild of 26 repositories, 3 min 35 s, exit 0, + 0 errors), with `APPDATA=C:\TasOut\s05\sandbox\AppData`, `USERPROFILE=C:\TasOut\s05\sandbox\Profile`, + `NUGET_PACKAGES` the real cache. The sandbox `AppData\SAM` was first seeded with `SAM_OCCT\build` (BuildAll's OCCT runtime + check otherwise tries a native rebuild, which failed in the sandbox; first attempt logged, nothing changed). +2. App: `MSBuild "Application\SAM Analytical\SAM Analytical.csproj" -restore -t:Rebuild -p:Configuration=Release + -p:OutDir=C:\TasOut\s05\app\` with the same environment: exit 0, 480 files. +3. Checks (`build-hashes.txt`): `SAM.Weather.dll` (`5e6a1a7d…`, contains the F1 code), `SAM.Analytical.dll` and `SAM.Core.dll` + are byte-identical in `SAM\build`, `SAM_Tas\build`, the OpenStudio producer folder and the app; the app's + `SAM.Analytical.Tas.dll` equals `SAM_Tas\build`'s; `SAM.Analytical.Benchmark.dll` is identical in all four places. +4. Side effects removed: untracked `NuGet\` (and SAM_UI `Microsoft\`) folders that MSBuild created in the repository roots under + the sandboxed profile; every file in them was newer than the build start. No tracked file changed in any repository. + Installed SAM and the real `%APPDATA%\SAM` were not touched. + +5. Unit tests on the same content with the rebuilt (post-F1) dependencies: `dotnet test WPF/SAM.Analytical.UI.WPF.Tests -c + Release` **2926/2926 PASS** (4 min 19 s; machine-local log `C:\TasOut\s05\logs\fulltest-q4-fresh-deps.txt`). + +## Environment +- TAS 9.5.7.0 (licensed; `TBD.exe` sha256 `aa658fcd…`). +- OpenStudio 3.10.0 (`.icon-migration\runtime\OpenStudio-3.10.0+86d7e215a1-Windows\bin` first on `PATH`; CLI sha256 + `46a80a3d…`), EnergyPlus 25.1.0-1c11a3d85f. The CLI on `PATH` is set by the harness, as in S01b and the preflight; without it + this laptop finds ladybug's OpenStudio 3.11 / E+ 25.2 (S03 finding, for S06). +- Producers (developer builds from the rebuild): `SAM_Tas\build\benchmark-tas.exe` (`07ab3e45…`) and + `SAM_OpenStudio\benchmark\…\bin\x64\Debug\net8.0\benchmark-openstudio.exe` (`64405919…`). +- **`SAM_COMMIT`** (owner decision 2026-10-20: a temporary requirement for developer-built producers until S06): set only for + the Both routes (cases 3-6, 8a, 9), to `62b5415697d1a5af143c6b581b7d42fbd6551ca8`. It is truthful: SAM's checkout was clean at + that commit (the `sow/2026-Q4` tip) when it was built, and the producers' `SAM.Analytical.dll` is byte-identical to that + build. Every Both manifest records it as a manual override (`environment.SAM_COMMIT`). It identifies a developer build; it + does not prove packaged-app provenance (S06). Tas-only and OpenStudio-only runs had no `SAM_COMMIT` set. +- Each case: a fresh folder `C:\TasOut\s05\runs\` with a copy of the model; the run folder is created beside it. The + app ran with the sandboxed `APPDATA`/`USERPROFILE`. + +## Fixtures +- Box: `box-aperture.json` sha256 `99ba2ab9…` (the S01b/#239 box; machine-local, `C:\TasOut\s05\inputs`). Unchanged after + every case. +- Explicit weather: `Budapest.epw` sha256 `472ffb4e…` (machine-local, as S01b). +- **Multizone (case 6):** SAM_OpenStudio's committed fixture + `tests/resources/models/rawModel-WindowsWeatherDataDDYAdiabaticAirPanel.sam` (sha256 `b2ab6826…`, matching its + `SHA256SUMS.txt`): 2 spaces, 11 panels, an Air partition, 10 apertures, embedded London weather; provenance documented in + that folder's README. It was chosen because HungaryHouse's provenance is not cleared (roadmap owner decision 3). It is used + read-only; nothing new is committed as a fixture. Unchanged after both sessions. + +## Drivers +- Unchanged S01b drivers (`documentation/evidence/s01b-20261019/tools/`): `drive-tas.ps1` (cases 1, 7), `drive-both.ps1` + (cases 3-6), `compare-persisted.ps1` (case 1). +- New for S05 (test harness, `documentation/evidence/s05-20261020/tools/`): `drive-s05.ps1` with `s05-uia.ps1` (cases 2, 8, 9), + `run-s05-case.ps1` (environment and fresh folder per case), `summarise-both.ps1`. + +## Acceptance matrix +| # | Case | Result | Observed (what the UI reported = what the engines did) | Evidence (`documentation/evidence/s05-20261020/cases/`) | +|---|---|---|---|---| +| 1 | Tas only: Run Simulation > Tas, box, embedded weather, Full Year | **PASS** | "Model successfuly converted", 21 s. `box.tas-run.json` `Succeeded`; TAS 9.5.7.0 + `TBD.exe` hash; weather `Embedded` (content hash `7666c3a7…`); design days `DerivedFromWeather`; the workflow settings that ran. Persisted results **602/602 exact** against the S01b baseline S1 (2 space + 28 surface results). Model file unchanged. | `c1-tas-run-simulation/` (`cmp-S1-vs-c1.json`) | +| 2 | OpenStudio only: Run Simulation > OpenStudio, box, explicit EPW | **PASS** | Summary "finished. The open model was not changed", 12 s. `openstudio-run.json` `Succeeded`, E+ exit 0, 10 warnings, 0 severe/fatal, 13 results; CLI 3.10.0 hash, SDK 3.10.0, E+ 25.1.0 from `eplusout.err`; weather `File` `472ffb4e…`. Snapshot `0c30db14…` has no view state; the result model has it (S04). Its four stored model metrics equal case 3's OpenStudio values exactly. | `c2-openstudio-explicit/` | +| 3 | Both, explicit EPW, two app sessions | **PASS** | Both sessions `Compared` (28 s, 29 s). Snapshot `0c30db14…` and both producers' `canonicalModelHash` `05c1e334…` in both sessions (S04). Producers report `samCommit` `62b54156…`, runner commits `e84aeff6` (SAM_Tas) / `d4216f3` (SAM_OpenStudio), TAS 9.5.7.0, E+ 25.1.0. `comparison.csv` identical (LF-normalised) in both sessions, to the preflight and to the S01b run B2: unchanged outputs. | `c3a-…`, `c3b-…`, `both-summary.txt` | +| 4 | Both, box, embedded weather (post-F1) | **PASS** | `Compared`; weather `Embedded`; the exported EPW is `5afbeb32…`, **byte-identical to SAM#212's `embedded-corrected.epw`**. The preflight's case 4 exported `e1353bd2…` = SAM#212's `embedded-before.epw` (pre-F1). Same snapshot and canonical hash as case 3. Engine numbers differ from the pre-F1 run, as F1 intends. | `c4-both-embedded/` | +| 5 | Both, box, explicit EPW | **PASS** | The case 3 runs: weather `File`, `472ffb4e…`, the same hash reported by both producers. | `c3a-…`, `c3b-…` | +| 6 | Both, multizone model, explicit EPW, two sessions | **PASS** | Both sessions `Compared` (33 s, 34 s); 2 spaces matched by GUID; coverage Pass; 28/28 metrics comparable. Snapshot `a3b8cff8…` and canonical hash `356dcbed…` identical across sessions. Tas values identical; OpenStudio values differ between sessions by ~1e-11 relative (EnergyPlus run-to-run variation on this air-boundary model, already recorded for it in `OpenStudio-Simulation-PR229.md`; identical inputs). | `c6a-…`, `c6b-…` | +| 7 | Injected Tas refusal: Energy Simulation with a directory at `box.tsd` | **PASS** | One "Simulation failed" box: TAS return code 0, error log `box_error_log.txt` ("Error accessing the TSD file for writing"), TAS-SIM-001 lines, "The open model was not changed". `box.tas-run.json` `Failed` with the same text. Harness: see below. | `c7-tas-refusal-energy-simulation/` | +| 8 | Cancel: (a) Both while the Tas producer runs; (b) OpenStudio while EnergyPlus runs | **PASS** | (a) Cancel 4 s into `benchmark-tas.exe`: run `Cancelled`, banner "CANCELLED - nothing to show or compare", no comparison, OpenStudio producer never started, no B1a (recorded unknown with its reason); no engine process left. (b) Cancel while `openstudio.exe` and its `energyplus.exe` ran: "The OpenStudio simulation was cancelled. No result model was saved", SAM-OS-RUN-001 "process tree was terminated", `openstudio-run.json` `Cancelled`, no result model; no engine process left. Both manifests carry provenance. | `c8a-cancel-both/`, `c8b-cancel-openstudio/` (`processes.txt`) | +| 9 | Concurrent start | **PASS** | While Both ran (its progress window open, `benchmark-tas.exe` running): Energy Simulation, Run Simulation and OpenStudio Simulation each refused with "A Tas + OpenStudio run is already running for this model, so nothing was started." While an OpenStudio Simulation ran (comparison window open): the comparison window's Run and Energy Simulation each refused with "An OpenStudio simulation is already running…". Both first runs completed (`Compared`, `Succeeded`); the folder holds exactly those two run folders, nothing from a refused start. | `c9-concurrent-start-run2/` (`concurrency.txt`, `refusals.txt`) | + +Every case's model file kept its hash. GitHub CI for this PR is reported in the PR description, separately from these local +licensed runs. + +## Test-harness defects (classified; product behaviour unaffected) +- **Case 2, attempts 1-2** (kept in `cases/c2-attempt*`): the folder dialog's "Select Folder" mouse click was lost; then the + EPW file dialog showed "C:\TasOut\s05\sandbox\Profile\Desktop is unavailable", because the sandboxed profile had no + Desktop folder. Fixed in the harness: BM_CLICK on Win32 buttons, the profile's standard folders created, and the EPW path set + with WM_SETTEXT instead of SendKeys. No product run had started. +- **Case 7:** the S01b driver's BM_CLICK on "OK" was ignored because TAS had put Notepad (its error log) in the foreground, + so the box stayed open (as S01b E3 and the preflight). WM_ACTIVATE then BM_CLICK closed it, and no second box appeared. One + message box; recorded in `driver.log`. +- **Case 8:** the log line "… never appeared; cancelling anyway" is wrong: a CIM result was not counted. The process snapshot + taken immediately before Cancel (`processes.txt`) shows the engines running. The helper now returns a boolean. +- **Case 9, run 1** (kept in `cases/c9-concurrent-start`): the comparison-window refusal box is titled "Compare Tas / + OpenStudio" and owned by the comparison window, two levels below the main window; the driver looked for "Simulation already + running" one level down and logged "NOT REFUSED". Run 2, with the detection fixed, shows the refusal (screenshot). + +## Scope notes +- The Optimisation window's "Run Energy Simulation…" follow-up was not driven: it calls the same `SimulateTas` guard path as + Energy Simulation, which case 9 refused; S02's `SimulationConcurrencyGuardTests` cover it. +- The Part O Hub simulations are not guarded (S02 owner decision outstanding) and are not part of this matrix. +- Not observed in these runs: the `ProgressWindowHost` 5 s shutdown fail-safe that reported one S03 unit test Cancelled under + full-suite load (recorded in the S04 closeout). + +## Unresolved, risks +- Both with developer-built producers still requires `SAM_COMMIT`; S06's stamped producers remove it. +- OpenStudio CLI/SDK selection depends on `PATH` on this laptop (S06). +- The app reports `application.sourceRevision: unknown` (developer build); component hashes identify it. An installed candidate + is S06's scope. +- Machine-local evidence: `C:\TasOut\s05` (app, sandbox, run folders with TBD/TSD/OSM/SQL); TAS licence; OpenStudio 3.10 + runtime under `.icon-migration\runtime`; the S01b baseline `C:\TasOut\s01b\runs\S1-base-es-success`. + +## Reproduce +From `C:\TasOut\s05` after the build above: `tools\run-s05-case.ps1 -Name -Kind +TasRunSimulation|TasEnergySimulationRefusal|OpenStudio|Both|CancelBoth|CancelOpenStudio|Concurrent [-Model ] +[-EpwPath ]`; `tools\summarise-both.ps1 -Cases …`; `compare-persisted.ps1 -Baseline … -Candidate … -Out …`. + +## Next step +Merge this record (owner authorisation 2026-10-20), close out S05 in `PROJECT_PROGRESS.md`, and update the roadmap status +(S01-S05 Done) through a reviewed SAM PR. S06 (early SAM_Deploy smoke candidate) is the next roadmap task and needs its own +owner start. diff --git a/documentation/evidence/s05-20261020/README.md b/documentation/evidence/s05-20261020/README.md new file mode 100644 index 00000000..e964bbdd --- /dev/null +++ b/documentation/evidence/s05-20261020/README.md @@ -0,0 +1,15 @@ +# S05 licensed acceptance evidence (2026-10-20) + +Record: `documentation/S05-LicensedAcceptance.md`. Real SAM Analytical ribbon runs on a licensed laptop, on a fresh build of +`sow/2026-Q4` `ad1f2486` and the dependency tips in `build-revisions.txt`. + +- `build-revisions.txt`, `build-hashes.txt`, `producers.txt`: what was built and run (`producers.txt` holds the `SAM_COMMIT` + value used for the Both routes). +- `both-summary.txt`: every Both run's status, snapshot, weather, producer outcomes, reported provenance and canonical hashes. +- `cases//`: `driver.log`, the message-box / summary / diagnostics text, the run manifests (`box.tas-run.json`, + `openstudio-run.json`, `engine-comparison-run.json`), B1a documents and `comparison.csv` for Both, `processes.txt` + (cases 8-9), `concurrency.txt` and `refusals.txt` (case 9), `run-folder-*.txt` and `case-folder.txt` (listings), and a few + screenshots. `c2-attempt*` and `c9-concurrent-start` are harness attempts kept as evidence (see the record). +- `tools/`: the S05 harness. The S01b drivers it calls are unchanged in `../s01b-20261019/tools/`. + +Machine-local, not committed: `C:\TasOut\s05` (app, sandbox profile, full run folders with TBD/TSD/OSM/SQL/EPW, logs). diff --git a/documentation/evidence/s05-20261020/both-summary.txt b/documentation/evidence/s05-20261020/both-summary.txt new file mode 100644 index 00000000..7f4cc133 --- /dev/null +++ b/documentation/evidence/s05-20261020/both-summary.txt @@ -0,0 +1,86 @@ +== c3a-both-explicit-session1 / 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268 + status: Compared started 2026-10-20T05:40:48.8423401Z finished 2026-10-20T05:41:16.8778057Z + snapshot: sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 + weather: File sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 + environment SAM_COMMIT: 62b5415697d1a5af143c6b581b7d42fbd6551ca8 RUNNER_COMMIT: not set + producer Tas: succeeded=True exit=0 21.0s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=e84aeff687033354e3f17891635fdf10d42ad68f engine=Tas 9.5.7.0 route=Native-TAS weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=None + sourceFileHash=sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 canonicalModelHash=sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500 canonicalization=1.0.0 + executable sha256: sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2 + producer OpenStudio: succeeded=True exit=0 6.6s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=d4216f3525c01ca762c1b3e9b6d099733d037f54 engine=EnergyPlus 25.1.0 route=Native-OpenStudio weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=None + sourceFileHash=sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 canonicalModelHash=sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500 canonicalization=1.0.0 + executable sha256: sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06 + comparison.csv (LF-normalised): sha256:a88bceb0a13f15c5 + comparison.md (LF-normalised): sha256:62a669814d5c4d25 + unknown: application.sourceRevision: this build's InformationalVersion '1.0.0' has no source revision after '+' (a local developer build); the component SHA-256 values identify the binaries + unknown: producers.Tas.reported.engine.sdkVersion: the producer reported none (null in its B1a document; its warnings and notes say why) +== c3b-both-explicit-session2 / 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7 + status: Compared started 2026-10-20T05:41:50.0566200Z finished 2026-10-20T05:42:19.3370897Z + snapshot: sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 + weather: File sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 + environment SAM_COMMIT: 62b5415697d1a5af143c6b581b7d42fbd6551ca8 RUNNER_COMMIT: not set + producer Tas: succeeded=True exit=0 21.3s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=e84aeff687033354e3f17891635fdf10d42ad68f engine=Tas 9.5.7.0 route=Native-TAS weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=None + sourceFileHash=sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 canonicalModelHash=sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500 canonicalization=1.0.0 + executable sha256: sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2 + producer OpenStudio: succeeded=True exit=0 7.5s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=d4216f3525c01ca762c1b3e9b6d099733d037f54 engine=EnergyPlus 25.1.0 route=Native-OpenStudio weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=None + sourceFileHash=sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 canonicalModelHash=sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500 canonicalization=1.0.0 + executable sha256: sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06 + comparison.csv (LF-normalised): sha256:a88bceb0a13f15c5 + comparison.md (LF-normalised): sha256:62a669814d5c4d25 + unknown: application.sourceRevision: this build's InformationalVersion '1.0.0' has no source revision after '+' (a local developer build); the component SHA-256 values identify the binaries + unknown: producers.Tas.reported.engine.sdkVersion: the producer reported none (null in its B1a document; its warnings and notes say why) +== c4-both-embedded / 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579 + status: Compared started 2026-10-20T05:42:43.3272327Z finished 2026-10-20T05:43:11.4277726Z + snapshot: sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 + weather: Embedded sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082 + environment SAM_COMMIT: 62b5415697d1a5af143c6b581b7d42fbd6551ca8 RUNNER_COMMIT: not set + producer Tas: succeeded=True exit=0 20.5s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=e84aeff687033354e3f17891635fdf10d42ad68f engine=Tas 9.5.7.0 route=Native-TAS weather=sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082 designDays=None + sourceFileHash=sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 canonicalModelHash=sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500 canonicalization=1.0.0 + executable sha256: sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2 + producer OpenStudio: succeeded=True exit=0 7.0s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=d4216f3525c01ca762c1b3e9b6d099733d037f54 engine=EnergyPlus 25.1.0 route=Native-OpenStudio weather=sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082 designDays=None + sourceFileHash=sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05 canonicalModelHash=sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500 canonicalization=1.0.0 + executable sha256: sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06 + comparison.csv (LF-normalised): sha256:454e42dcde74cabf + comparison.md (LF-normalised): sha256:8b18894da5619f4e + unknown: application.sourceRevision: this build's InformationalVersion '1.0.0' has no source revision after '+' (a local developer build); the component SHA-256 values identify the binaries + unknown: weather.originalPath: the weather is the model's embedded WeatherData, exported to EPW once for both producers; sha256 identifies the exported file + unknown: producers.Tas.reported.engine.sdkVersion: the producer reported none (null in its B1a document; its warnings and notes say why) +== c6a-multizone-both-session1 / 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309 + status: Compared started 2026-10-20T05:44:18.1627020Z finished 2026-10-20T05:44:51.6211360Z + snapshot: sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07 + weather: File sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 + environment SAM_COMMIT: 62b5415697d1a5af143c6b581b7d42fbd6551ca8 RUNNER_COMMIT: not set + producer Tas: succeeded=True exit=0 24.0s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=e84aeff687033354e3f17891635fdf10d42ad68f engine=Tas 9.5.7.0 route=Native-TAS weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=EmbeddedModel + sourceFileHash=sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07 canonicalModelHash=sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317 canonicalization=1.0.0 + executable sha256: sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2 + producer OpenStudio: succeeded=True exit=0 8.9s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=d4216f3525c01ca762c1b3e9b6d099733d037f54 engine=EnergyPlus 25.1.0 route=Native-OpenStudio weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=EmbeddedModel + sourceFileHash=sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07 canonicalModelHash=sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317 canonicalization=1.0.0 + executable sha256: sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06 + comparison.csv (LF-normalised): sha256:cd42ab3f46bbaf0c + comparison.md (LF-normalised): sha256:aa53107e4253fcbb + unknown: application.sourceRevision: this build's InformationalVersion '1.0.0' has no source revision after '+' (a local developer build); the component SHA-256 values identify the binaries + unknown: producers.Tas.reported.engine.sdkVersion: the producer reported none (null in its B1a document; its warnings and notes say why) +== c6b-multizone-both-session2 / 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc + status: Compared started 2026-10-20T05:45:24.9298332Z finished 2026-10-20T05:45:59.1803598Z + snapshot: sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07 + weather: File sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 + environment SAM_COMMIT: 62b5415697d1a5af143c6b581b7d42fbd6551ca8 RUNNER_COMMIT: not set + producer Tas: succeeded=True exit=0 24.9s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=e84aeff687033354e3f17891635fdf10d42ad68f engine=Tas 9.5.7.0 route=Native-TAS weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=EmbeddedModel + sourceFileHash=sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07 canonicalModelHash=sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317 canonicalization=1.0.0 + executable sha256: sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2 + producer OpenStudio: succeeded=True exit=0 9.0s error= + reported: state=Success samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 runnerCommit=d4216f3525c01ca762c1b3e9b6d099733d037f54 engine=EnergyPlus 25.1.0 route=Native-OpenStudio weather=sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3 designDays=EmbeddedModel + sourceFileHash=sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07 canonicalModelHash=sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317 canonicalization=1.0.0 + executable sha256: sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06 + comparison.csv (LF-normalised): sha256:2288ac7755b3159f + comparison.md (LF-normalised): sha256:aa53107e4253fcbb + unknown: application.sourceRevision: this build's InformationalVersion '1.0.0' has no source revision after '+' (a local developer build); the component SHA-256 values identify the binaries + unknown: producers.Tas.reported.engine.sdkVersion: the producer reported none (null in its B1a document; its warnings and notes say why) diff --git a/documentation/evidence/s05-20261020/build-hashes.txt b/documentation/evidence/s05-20261020/build-hashes.txt new file mode 100644 index 00000000..b6754559 --- /dev/null +++ b/documentation/evidence/s05-20261020/build-hashes.txt @@ -0,0 +1,15 @@ +# S05 build hashes (2026-10-20). Dependency stack: BuildAlls_v5 skip2027 (Debug, Rebuild) at build-revisions.txt; app: MSBuild Release Rebuild of SAM_UI ad1f2486. +5e6a1a7da6077e17274bee3a3ce995dc6f382a3671e824c12afb6b9233ff74ef *SAM/build/SAM.Weather.dll +186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12 *SAM/build/SAM.Analytical.dll +166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132 *SAM/build/SAM.Core.dll +07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2 *SAM_Tas/build/benchmark-tas.exe +2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9 *SAM_Tas/build/benchmark-tas.dll +c4f19541b888298349390af2eaef795efbd8929b1ef8dfd542e09f753987e44a *SAM_Tas/build/SAM.Analytical.Tas.dll +644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06 *C:/Users/michal/Documents/GitHub/SAM-BIM/SAM_OpenStudio/benchmark/SAM.Analytical.OpenStudio.Benchmark/bin/x64/Debug/net8.0/benchmark-openstudio.exe +4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd *C:/Users/michal/Documents/GitHub/SAM-BIM/SAM_OpenStudio/benchmark/SAM.Analytical.OpenStudio.Benchmark/bin/x64/Debug/net8.0/benchmark-openstudio.dll +965716bd87ded52ded7ac085810ef6b93d1fb3a000f0e12e9f74be32b7958c66 *C:/Users/michal/Documents/GitHub/SAM-BIM/SAM_OpenStudio/benchmark/SAM.Analytical.OpenStudio.Benchmark/bin/x64/Debug/net8.0/SAM.Analytical.OpenStudio.dll +4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16 *SAM_Validation/build/SAM.Analytical.Benchmark.dll +d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e *SAM_Validation/build/SAM.Analytical.Benchmark.Compare.dll +b1d436d557577e0b096eddd026fefe303e04877c06aa676dca7e28d857d1fa2d *C:/TasOut/s05/app/SAM Analytical.exe +0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15 *C:/TasOut/s05/app/SAM.Analytical.UI.WPF.dll +5e6a1a7da6077e17274bee3a3ce995dc6f382a3671e824c12afb6b9233ff74ef *C:/TasOut/s05/app/SAM.Weather.dll diff --git a/documentation/evidence/s05-20261020/build-revisions.txt b/documentation/evidence/s05-20261020/build-revisions.txt new file mode 100644 index 00000000..207c30a3 --- /dev/null +++ b/documentation/evidence/s05-20261020/build-revisions.txt @@ -0,0 +1,26 @@ +SAM 62b5415697d1a5af143c6b581b7d42fbd6551ca8 +SAM_Psychrometrics 83d53326506b4c53b0e76a11fb717e140c626990 +SAM_Mollier 7f61916adad9ad913904d18047ec6bfe835d1611 +SAM_Systems f0838ca3eba3e4b5f1cee008ba0831b6d7e95625 +SAM_Windows 11bbecfa8aa854f4d9b2494c8bca737298982751 +SAM_IFC 77046bef504474619cf39afbbc70ee7975aad50c +SAM_Acoustic baed72cb439f6c23fdd16725f497be67938dc54a +SAM_BHoM 995caace61164bf281501613e8ec4f3008053f39 +SAM_gbXML 43b5d018ac7a8a14f332e8bcde9cb0d613bf1efb +SAM_GEM 1bf41916fefa6dd5fe44a735c294619d3d8df8d9 +SAM_LadybugTools 0ffbaecf1097a33de2044ee919c963eaeb0a0da2 +SAM_Solver fd63b4670cd4baeb20a74312aacc17eb177ecc18 +SAM_SolarCalculator 277a3a4864f2bf900504a64a4830cb9438312d78 +SAM_Validation 68eded0060047af714853a02a152fb9c960bfeb1 +SAM_Tas e84aeff687033354e3f17891635fdf10d42ad68f +SAM_Tas_Grasshopper e94880e6088e6d9873d2fb6872f4c48939204b10 +SAM_Excel 6669977d07cc6488c0dd91fe0a48ccd2dc833627 +SAM_SQLite ec2eb86d00cac6e4cadf52b429f9d293eeabbd5e +SAM_OpenStudio d4216f3525c01ca762c1b3e9b6d099733d037f54 +SAM_Origin 74c19a1ebf3fc11a136cc9b055edf68b2b91a087 +SAM_Multitasker 1fe5598fbfa478c5fcc2b65e94cd4b4e27c338f4 +SAM_OCCT dc871f7e6ee7d0e53adb826a2b597645e2eab4cb +SAM_UI ade096d01e3d7a216e8b52f7939f30bfb0e89451 +SAM_Rhino_UI 24fafda03cef5168abf1e43a1669a2fe42490f8d +SAM_Revit 431d34ef4bcff8f34e8caa32e893ebfc471cb678 +SAM_Revit_UI 06cf245af93dfd29521bbf925a4b7f3cf934af18 diff --git a/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/04-message-box.png b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/04-message-box.png new file mode 100644 index 00000000..8e2eda53 Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/04-message-box.png differ diff --git a/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/box.tas-run.json b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/box.tas-run.json new file mode 100644 index 00000000..1eeb3c1d --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/box.tas-run.json @@ -0,0 +1,702 @@ +{ + "schema": "sam-ui.tas-run/1", + "id": "97d5745e", + "status": "Succeeded", + "startedUtc": "2026-10-20T05:24:48.7418143Z", + "finishedUtc": "2026-10-20T05:25:09.8195872Z", + "durationSeconds": 21.078, + "sourcePath": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\box-aperture.json", + "projectName": "box", + "model": { + "name": "000000_SAM_AnalyticalModel", + "guid": "1988f7b93ec047d0b87bf9cb345d9eab" + }, + "outputs": { + "directory": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\out", + "tbd": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\out\\box.tbd", + "tsd": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\out\\box.tsd" + }, + "refusal": null, + "failure": null, + "notes": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Tas", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Tas", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Tas.dll", + "sha256": "sha256:c4f19541b888298349390af2eaef795efbd8929b1ef8dfd542e09f753987e44a" + } + ] + }, + "engine": { + "comServer": "TBD.Document", + "executable": { + "path": "C:\\Program Files\\Environmental Design Solutions Ltd\\Tas\\TBD.exe", + "sha256": "sha256:aa658fcdeec8f5e3acbd64523376b5a7362c499beecc280715edca64851e49ae", + "fileVersion": "2, 0, 0, 1", + "productVersion": "9.5.7.0" + }, + "version": "9.5.7.0" + }, + "weather": { + "source": "Embedded", + "name": "HUN_CEN_Budapest.Met.Center, 128400, SRC-TMYx", + "contentSha256": "sha256:7666c3a7e89324372b595aa685aeac965588eb39a8096f02cb2fa7c3ca33a65b", + "contentHashOf": "the SAM WeatherData JSON given to TAS without its own Guid, canonical JSON v1 (SAM_Validation)", + "file": "unknown" + }, + "designDays": { + "source": "DerivedFromWeather", + "heating": [ + "Budapest.Met.Center ANN HTG 100% CONDS DB" + ], + "cooling": [ + "Budapest.Met.Center ANN CLG 0% CONDS DB=\u003EGRad" + ], + "usedForSizing": true + }, + "settings": { + "inputs": { + "simulate": true, + "fullYearSimulation": true, + "fullYearSimulationFrom": 1, + "fullYearSimulationTo": 365, + "sizing": true, + "unmetHours": false, + "useWidths": false, + "solarCalculationMethod": "TAS", + "directT3D": false, + "updateConstructionLayersByPanelType": true, + "createTM59": false, + "createSAP": false, + "createTPD": false, + "createPartL": false, + "printRoomDataSheets": false, + "zoneCategory": "(none)" + }, + "workflow": { + "_type": "SAM.Analytical.Tas.WorkflowSettings,SAM.Analytical.Tas", + "Path_TBD": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\out\\box.tbd", + "Path_gbXML": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\out\\box.xml", + "T3DRoute": "GbXML", + "WeatherData": { + "name": "HUN_CEN_Budapest.Met.Center, 128400, SRC-TMYx", + "contentSha256": "sha256:7666c3a7e89324372b595aa685aeac965588eb39a8096f02cb2fa7c3ca33a65b" + }, + "DesignDays_Heating": [ + { + "_type": "SAM.Analytical.DesignDay,SAM.Analytical", + "Data": [ + { + "Name": "DryBulbTemperature", + "Values": [ + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9 + ] + }, + { + "Name": "WetBulbTemperature", + "Values": [ + -16.3, + -16.5, + -16.6, + -16.3, + -15.4, + -15.2, + -16.1, + -16.2, + -15.9, + -14.5, + -15.2, + -13.5, + -14.4, + -14.5, + -14.5, + -15, + -15.8, + -15.1, + -14.1, + -13.8, + -13.8, + -13, + -12.8, + -14.6 + ] + }, + { + "Name": "RelativeHumidity", + "Values": [ + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65 + ] + }, + { + "Name": "AtmosphericPressure", + "Values": [ + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310 + ] + }, + { + "Name": "GlobalSolarRadiation", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "DiffuseSolarRadiation", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "WindDirection", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "WindSpeed", + "Values": [ + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4 + ] + }, + { + "Name": "CloudCover", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "Name": "Budapest.Met.Center ANN HTG 100% CONDS DB", + "Description": "Heating Design Day automated :) \n *calculated from weather data as day with min temp - single value and its wind speed all remaining values are zero", + "Year": 2018, + "Month": 2, + "Day": 8 + } + ], + "DesignDays_Cooling": [ + { + "_type": "SAM.Analytical.DesignDay,SAM.Analytical", + "Data": [ + { + "Name": "DryBulbTemperature", + "Values": [ + 21.1, + 21.7, + 22.4, + 22.6, + 23.1, + 23.8, + 22.1, + 23.9, + 25.6, + 27.2, + 28.9, + 30.6, + 32.2, + 33.9, + 33.2, + 32.6, + 32, + 31.3, + 24.4, + 23.3, + 22.8, + 22.9, + 23, + 23.1 + ] + }, + { + "Name": "WetBulbTemperature", + "Values": [ + 19.1, + 19.6, + 20, + 20.7, + 20.4, + 20.1, + 21.9, + 19.4, + 18.9, + 18.3, + 17.8, + 17.2, + 16.6, + 16.1, + 15.7, + 15.1, + 14.6, + 14, + 24.2, + 23.2, + 21.7, + 20.7, + 19.5, + 18.7 + ] + }, + { + "Name": "RelativeHumidity", + "Values": [ + 89, + 88, + 86, + 89, + 85, + 80, + 100, + 76, + 66, + 58, + 51, + 45, + 39, + 35, + 35, + 35, + 35, + 35, + 99, + 99, + 93, + 87, + 80, + 76 + ] + }, + { + "Name": "AtmosphericPressure", + "Values": [ + 99788, + 99758, + 99718, + 99733, + 99677, + 99631, + 99825, + 99544, + 99514, + 99484, + 99455, + 99425, + 99395, + 99365, + 99333, + 99300, + 99267, + 99235, + 99709, + 99788, + 99829, + 99830, + 99830, + 99831 + ] + }, + { + "Name": "GlobalSolarRadiation", + "Values": [ + 0, + 0, + 0, + 22, + 101, + 141, + 251, + 523, + 739, + 851, + 903, + 896, + 835, + 680, + 501, + 357, + 208, + 71, + 4, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "DiffuseSolarRadiation", + "Values": [ + 0, + 0, + 0, + 22, + 83, + 123, + 200, + 259, + 205, + 154, + 177, + 211, + 193, + 230, + 243, + 179, + 120, + 49, + 4, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "WindDirection", + "Values": [ + 140, + 138, + 159, + 198, + 177, + 195, + 168, + 84, + 263, + 204, + 23, + 77, + 315, + 164, + 277, + 95, + 27, + 292, + 97, + 160, + 79, + 147, + 74, + 40 + ] + }, + { + "Name": "WindSpeed", + "Values": [ + 1, + 1, + 1, + 1, + 0.8, + 0.5, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0.8, + 1.5, + 2.3, + 3.1, + 3.8, + 4.6, + 4.6, + 4.6, + 4.6, + 4.6 + ] + }, + { + "Name": "CloudCover", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "Name": "Budapest.Met.Center ANN CLG 0% CONDS DB=\u003EGRad", + "Description": "Cooling Design Day automated :) \n *calculated from weather data as day with max temp and then radation replaced from max global radation day and cloud cover removed", + "Year": 2018, + "Month": 7, + "Day": 1 + } + ], + "SurfaceOutputSpecs": [ + { + "_type": "SAM.Core.Tas.SurfaceOutputSpec,SAM.Core.Tas", + "Name": "Tas.Simulate", + "Guid": "2167c7d8-ddc1-4201-83a9-45da69102e5d", + "ApertureData": true, + "Condensation": false, + "Convection": false, + "SolarGain": true, + "Conduction": true, + "LongWave": false, + "Temperature": true + } + ], + "UnmetHours": false, + "Simulate": true, + "Sizing": true, + "UpdateZones": true, + "UseWidths": false, + "AddIZAMs": true, + "RemoveIZAMs": false, + "RemoveMechanicalVentilationGains": false, + "SimulateFrom": 1, + "SimulateTo": 365, + "RemoveExistingTBD": false, + "UpdateWindowPositionType": false + } + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "application.components[SAM.Analytical.Tas].informationalVersion": "the assembly carries no InformationalVersion", + "weather.file": "the weather is the model\u0027s embedded WeatherData, not a file; contentSha256 identifies it" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/case-folder.txt b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/case-folder.txt new file mode 100644 index 00000000..dc3b5db3 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/case-folder.txt @@ -0,0 +1,8 @@ + +0 . +0 .. +507507 box-aperture.json +926 cmp-S1-vs-c1.json +3555 driver-console.txt +0 evidence +0 out diff --git a/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/cmp-S1-vs-c1.json b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/cmp-S1-vs-c1.json new file mode 100644 index 00000000..10f73643 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/cmp-S1-vs-c1.json @@ -0,0 +1,19 @@ +{ + "criterion": "Exact equality of every numeric leaf of persisted simulation parameters, aligned by result type/name/load type and surface reference. No tolerance. Run-generated identities and timestamps are metadata.", + "baseline": "C:\\TasOut\\s01b\\runs\\S1-base-es-success\\out\\box.json", + "candidate": "C:\\TasOut\\s05\\runs\\c1-tas-run-simulation\\out\\box.json", + "baselineCounts": { + "SAM.Analytical.SpaceSimulationResult": 2, + "SAM.Analytical.SurfaceSimulationResult": 28 + }, + "candidateCounts": { + "SAM.Analytical.SpaceSimulationResult": 2, + "SAM.Analytical.SurfaceSimulationResult": 28 + }, + "baselineNumbers": 602, + "candidateNumbers": 602, + "exactMatch": true, + "differences": [ + + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/message-box.txt b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/message-box.txt new file mode 100644 index 00000000..d11c6722 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c1-tas-run-simulation/message-box.txt @@ -0,0 +1,3 @@ +Title: +Model successfuly converted. + Time elapsed: 0min21sec diff --git a/documentation/evidence/s05-20261020/cases/c2-attempt1-harness-folder-click/case-folder.txt b/documentation/evidence/s05-20261020/cases/c2-attempt1-harness-folder-click/case-folder.txt new file mode 100644 index 00000000..950f2265 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-attempt1-harness-folder-click/case-folder.txt @@ -0,0 +1,6 @@ + +0 . +0 .. +507507 box-aperture.json +2072 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c2-attempt2-harness-sandbox-desktop/case-folder.txt b/documentation/evidence/s05-20261020/cases/c2-attempt2-harness-sandbox-desktop/case-folder.txt new file mode 100644 index 00000000..cd271b64 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-attempt2-harness-sandbox-desktop/case-folder.txt @@ -0,0 +1,6 @@ + +0 . +0 .. +507507 box-aperture.json +1933 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c2-attempt2-harness-sandbox-desktop/harness-epw-typing.txt b/documentation/evidence/s05-20261020/cases/c2-attempt2-harness-sandbox-desktop/harness-epw-typing.txt new file mode 100644 index 00000000..7c6cf0c5 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-attempt2-harness-sandbox-desktop/harness-epw-typing.txt @@ -0,0 +1,3 @@ +Title: Location is not available + + diff --git a/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/04-summary.png b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/04-summary.png new file mode 100644 index 00000000..3d434e23 Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/04-summary.png differ diff --git a/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/04-summary.txt b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/04-summary.txt new file mode 100644 index 00000000..4386e82d --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/04-summary.txt @@ -0,0 +1,13 @@ +Title: OpenStudio Simulation +The OpenStudio/EnergyPlus simulation finished. The open model was not changed. + +Run folder: C:\TasOut\s05\runs\c2-openstudio-explicit\000000_SAM_AnalyticalModel_OpenStudio_20261020-053948_275dbafb +Result model: 000000_SAM_AnalyticalModel_OpenStudio.json (13 results) +Weather: File +EnergyPlus: exit code 0, 10 warnings, 0 severe, 0 fatal + +Diagnostics: +- Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) + +Open the run folder? + diff --git a/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/case-folder.txt b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/case-folder.txt new file mode 100644 index 00000000..ca6f3595 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_OpenStudio_20261020-053948_275dbafb +507507 box-aperture.json +3297 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/openstudio-run.json b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/openstudio-run.json new file mode 100644 index 00000000..b33aa4ba --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/openstudio-run.json @@ -0,0 +1,157 @@ +{ + "schema": "sam-ui.openstudio-run/1", + "id": "275dbafb", + "status": "Succeeded", + "startedUtc": "2026-10-20T05:39:48.9470237Z", + "finishedUtc": "2026-10-20T05:39:56.9126967Z", + "durationSeconds": 7.966, + "sourcePath": "C:\\TasOut\\s05\\runs\\c2-openstudio-explicit\\box-aperture.json", + "model": { + "name": "000000_SAM_AnalyticalModel", + "guid": "1988f7b93ec047d0b87bf9cb345d9eab" + }, + "snapshot": { + "path": "snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "engine": { + "route": "Native-OpenStudio", + "samOpenStudioVersion": "1.0.0.0", + "cliPath": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "exitCode": 0, + "warningCount": 10, + "severeCount": 0, + "fatalCount": 0 + }, + "outputs": { + "osm": "000000_SAM_AnalyticalModel.osm", + "osw": "000000_SAM_AnalyticalModel.osw", + "sql": "run/eplusout.sql", + "err": "run/eplusout.err", + "resultModel": "000000_SAM_AnalyticalModel_OpenStudio.json" + }, + "resultCount": 13, + "removedResultCount": 0, + "diagnostics": [ + "Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope)", + "Information SAM-OS-HVAC-001: Exhaust air flows (ExhaustAirFlowPerPerson) are not converted \u2014 exhaust needs fan/air-loop equipment, deferred to the detailed-HVAC programme", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (5.565) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2.7) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (24) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-RUN-002: Annual weather source: explicit EPW (Budapest.epw)", + "Information SAM-OS-RUN-001: Site coordinates taken from the SAM model Location (lat 47.517, lon 19.033, elevation 129 m), overriding the EPW header; the time zone stays with the EPW header", + "Information SAM-OS-RUN-002: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "Information SAM-OS-RUN-002: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ], + "resultDiagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "OpenStudio", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.OpenStudio.dll", + "sha256": "sha256:965716bd87ded52ded7ac085810ef6b93d1fb3a000f0e12e9f74be32b7958c66" + }, + { + "name": "SAM.Core.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.OpenStudio.dll", + "sha256": "sha256:f9bf4cd63a390425c8d9bb527713f34e91247e1b69991ae656f02356e4bc43d3" + } + ] + }, + "engine": { + "openStudioSdkVersion": "3.10.0", + "energyPlusVersionOfSdk": "25.1.0", + "energyPlusVersion": "25.1.0-1c11a3d85f", + "cli": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "sha256": "sha256:46a80a3d340696bcc189d9a7ae7ec4b70ea4db0fdb4565a33ecd25aa8ebf6361", + "fileVersion": "3.10.0", + "productVersion": "3.10.0.86d7e215a1" + } + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "None" + }, + "settings": { + "runOptions": { + "epwPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw", + "outputDirectory": "C:\\TasOut\\s05\\runs\\c2-openstudio-explicit\\000000_SAM_AnalyticalModel_OpenStudio_20261020-053948_275dbafb", + "conversionOptions": "SAM_OpenStudio defaults", + "run": true, + "cliPath": "(discovered by SAM_OpenStudio; the CLI that ran is engine.cli)", + "runDirectory": "(not set: a directory next to the OSW file)", + "ddyPath": "(none)", + "timeoutSeconds": 3600, + "useUniqueRunDirectory": false, + "extractTimeSeries": false + } + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "application.components[SAM.Analytical.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion", + "application.components[SAM.Core.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/run-folder-OpenStudio_20261020-053948_275dbafb.txt b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/run-folder-OpenStudio_20261020-053948_275dbafb.txt new file mode 100644 index 00000000..f49f3a97 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c2-openstudio-explicit/run-folder-OpenStudio_20261020-053948_275dbafb.txt @@ -0,0 +1,10 @@ +000000_SAM_AnalyticalModel.osm +000000_SAM_AnalyticalModel.osw +000000_SAM_AnalyticalModel_OpenStudio.json +generated_files +openstudio-run.json +out.osw +reports +run +snapshot.json +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/benchmark-OpenStudio.json new file mode 100644 index 00000000..63ac6dd0 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/benchmark-OpenStudio.json @@ -0,0 +1,140 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:41:10.8812347Z", + "durationSeconds": 4.4310736, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + }, + "model": { + "consumptionHeating": { + "value": 2173.9185033546732, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 4556.226212241192, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 3.2591834042717536, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.332620570657522, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 3259.1834042717537, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 5332.620570657522, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/benchmark-TAS.json new file mode 100644 index 00000000..7ef20a5d --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/benchmark-TAS.json @@ -0,0 +1,136 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:40:49.8321168Z", + "durationSeconds": 19.1795053, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 220.62682055425643, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 5540.314465834558, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.4238231201171876, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 775, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 3.126279052734375, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3901, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1927.0106201171875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1926.94873046875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 3415.618896484375, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 3415.45556640625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/case-folder.txt b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/case-folder.txt new file mode 100644 index 00000000..c6a134f2 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268 +507507 box-aperture.json +4664 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/comparison-summary.json new file mode 100644 index 00000000..c5de8435 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/comparison-summary.json @@ -0,0 +1,627 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Warn", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 6, + "warn": 0, + "fail": 10, + "notApplicable": 2 + }, + "coverage": { + "status": "Warn", + "requiredMetricCount": 18, + "comparableMetricCount": 16, + "unavailableRequiredMetricCount": 2, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:40:49.8321168Z", + "durationSeconds": 19.1795053, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:41:10.8812347Z", + "durationSeconds": 4.4310736, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 220.62682055425643, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 2173.9185033546732, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 1953.2916828004168, + "relativeDifference": 0.8985119174367405, + "signedDifference": 1953.2916828004168 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5540.314465834558, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 4556.226212241192, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 984.0882535933661, + "relativeDifference": 0.17762317638501215, + "signedDifference": -984.0882535933661 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.4238231201171876, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 3.2591834042717536, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 1.835360284154566, + "relativeDifference": 0.5631350115949265, + "signedDifference": 1.835360284154566 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 775, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1080, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3.126279052734375, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 5.332620570657522, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 2.2063415179231467, + "relativeDifference": 0.4137443286446125, + "signedDifference": 2.2063415179231467 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3901, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1128, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "tasName": "Office", + "openStudioName": "Office", + "matchKind": "Guid", + "metrics": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 1927.0106201171875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1926.94873046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 3259.1834042717537, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1332.2346738030037, + "relativeDifference": 0.408763333802224, + "signedDifference": 1332.2346738030037 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1241, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 3415.618896484375, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3415.45556640625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 5332.620570657522, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1917.165004251272, + "relativeDifference": 0.3595164851593561, + "signedDifference": 1917.165004251272 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 1, + "openStudioCount": 1, + "matchedByGuid": 1, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/comparison.csv b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/comparison.csv new file mode 100644 index 00000000..9cc7c3cd --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/comparison.csv @@ -0,0 +1,19 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,220.62682055425643,2173.9185033546732,1953.2916828004168,0.8985119174367405,89.85119174367405,1953.2916828004168,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,5540.314465834558,4556.226212241192,984.0882535933661,0.17762317638501215,17.762317638501216,-984.0882535933661,Fail,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.4238231201171876,3.2591834042717536,1.835360284154566,0.5631350115949265,56.31350115949265,1.835360284154566,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,775,8455,1080,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,3.126279052734375,5.332620570657522,2.2063415179231467,0.4137443286446125,41.374432864461255,2.2063415179231467,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3901,5029,1128,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,area,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,heating.designLoad,W,TasOnly,1927.0106201171875,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakLoad,W,Both,1926.94873046875,3259.1834042717537,1332.2346738030037,0.408763333802224,40.8763333802224,1332.2346738030037,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakHour,hourOfYear,Both,936,8455,1241,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +cb68bed195af496bb255a13ffa5c58e9,cooling.designLoad,W,TasOnly,3415.618896484375,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakLoad,W,Both,3415.45556640625,5332.620570657522,1917.165004251272,0.3595164851593561,35.95164851593561,1917.165004251272,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/diagnostics.txt b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/diagnostics.txt new file mode 100644 index 00000000..ea5cd735 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/diagnostics.txt @@ -0,0 +1,28 @@ +Banner: Gate Fail: 6 match, 0 warn, 10 fail (4 contributing to numerical status, 6 informational and excluded); 2 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 1 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Warn, provenance Pass, reconciliation Pass) +Metrics: 6 match, 0 warn, 10 fail, 2 N/A; 16 of 18 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 1, OpenStudio 1; matched by GUID 1, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 50, sum of 1 spaces 50 m2 -> Match + TAS volume: model 150, sum of 1 spaces 150 m3 -> Match + OpenStudio floorArea: model 50, sum of 1 spaces 50 m2 -> Match + OpenStudio volume: model 150, sum of 1 spaces 150 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) → SAM_InternalCondition_S39_OfficeOpen_30b69a1f + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Note: [SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c3a-both-explicit-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268 +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 21 s, log C:\TasOut\s05\runs\c3a-both-explicit-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 6.6 s, log C:\TasOut\s05\runs\c3a-both-explicit-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c3a-both-explicit-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/engine-comparison-run.json new file mode 100644 index 00000000..a1899a2e --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/engine-comparison-run.json @@ -0,0 +1,231 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "48f88268", + "status": "Compared", + "startedUtc": "2026-10-20T05:40:48.8423401Z", + "finishedUtc": "2026-10-20T05:41:16.8778057Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\box-aperture.json", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 20.958, + "log": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 6.646, + "log": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\comparison.md", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c3a-both-explicit-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054048_48f88268\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/run-folder-TasOpenStudio_20261020-054048_48f88268.txt b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/run-folder-TasOpenStudio_20261020-054048_48f88268.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3a-both-explicit-session1/run-folder-TasOpenStudio_20261020-054048_48f88268.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/benchmark-OpenStudio.json new file mode 100644 index 00000000..c2cac354 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/benchmark-OpenStudio.json @@ -0,0 +1,140 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:42:12.6266397Z", + "durationSeconds": 5.3232893, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + }, + "model": { + "consumptionHeating": { + "value": 2173.9185033546732, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 4556.226212241192, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 3.2591834042717536, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.332620570657522, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 3259.1834042717537, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 5332.620570657522, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/benchmark-TAS.json new file mode 100644 index 00000000..3dde91bb --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/benchmark-TAS.json @@ -0,0 +1,136 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:41:51.0254363Z", + "durationSeconds": 19.5807316, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 220.62682055425643, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 5540.314465834558, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.4238231201171876, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 775, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 3.126279052734375, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3901, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1927.0106201171875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1926.94873046875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 3415.618896484375, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 3415.45556640625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/case-folder.txt b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/case-folder.txt new file mode 100644 index 00000000..33132497 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7 +507507 box-aperture.json +4666 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/comparison-summary.json new file mode 100644 index 00000000..a3601804 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/comparison-summary.json @@ -0,0 +1,627 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Warn", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 6, + "warn": 0, + "fail": 10, + "notApplicable": 2 + }, + "coverage": { + "status": "Warn", + "requiredMetricCount": 18, + "comparableMetricCount": 16, + "unavailableRequiredMetricCount": 2, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:41:51.0254363Z", + "durationSeconds": 19.5807316, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:42:12.6266397Z", + "durationSeconds": 5.3232893, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 220.62682055425643, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 2173.9185033546732, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 1953.2916828004168, + "relativeDifference": 0.8985119174367405, + "signedDifference": 1953.2916828004168 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5540.314465834558, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 4556.226212241192, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 984.0882535933661, + "relativeDifference": 0.17762317638501215, + "signedDifference": -984.0882535933661 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.4238231201171876, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 3.2591834042717536, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 1.835360284154566, + "relativeDifference": 0.5631350115949265, + "signedDifference": 1.835360284154566 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 775, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1080, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3.126279052734375, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 5.332620570657522, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 2.2063415179231467, + "relativeDifference": 0.4137443286446125, + "signedDifference": 2.2063415179231467 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3901, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1128, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "tasName": "Office", + "openStudioName": "Office", + "matchKind": "Guid", + "metrics": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 1927.0106201171875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1926.94873046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 3259.1834042717537, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1332.2346738030037, + "relativeDifference": 0.408763333802224, + "signedDifference": 1332.2346738030037 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1241, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 3415.618896484375, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3415.45556640625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 5332.620570657522, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1917.165004251272, + "relativeDifference": 0.3595164851593561, + "signedDifference": 1917.165004251272 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 1, + "openStudioCount": 1, + "matchedByGuid": 1, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/comparison.csv b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/comparison.csv new file mode 100644 index 00000000..9cc7c3cd --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/comparison.csv @@ -0,0 +1,19 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,220.62682055425643,2173.9185033546732,1953.2916828004168,0.8985119174367405,89.85119174367405,1953.2916828004168,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,5540.314465834558,4556.226212241192,984.0882535933661,0.17762317638501215,17.762317638501216,-984.0882535933661,Fail,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.4238231201171876,3.2591834042717536,1.835360284154566,0.5631350115949265,56.31350115949265,1.835360284154566,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,775,8455,1080,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,3.126279052734375,5.332620570657522,2.2063415179231467,0.4137443286446125,41.374432864461255,2.2063415179231467,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3901,5029,1128,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,area,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,heating.designLoad,W,TasOnly,1927.0106201171875,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakLoad,W,Both,1926.94873046875,3259.1834042717537,1332.2346738030037,0.408763333802224,40.8763333802224,1332.2346738030037,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakHour,hourOfYear,Both,936,8455,1241,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +cb68bed195af496bb255a13ffa5c58e9,cooling.designLoad,W,TasOnly,3415.618896484375,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakLoad,W,Both,3415.45556640625,5332.620570657522,1917.165004251272,0.3595164851593561,35.95164851593561,1917.165004251272,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/diagnostics.txt b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/diagnostics.txt new file mode 100644 index 00000000..b3530a51 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/diagnostics.txt @@ -0,0 +1,28 @@ +Banner: Gate Fail: 6 match, 0 warn, 10 fail (4 contributing to numerical status, 6 informational and excluded); 2 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 1 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Warn, provenance Pass, reconciliation Pass) +Metrics: 6 match, 0 warn, 10 fail, 2 N/A; 16 of 18 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 1, OpenStudio 1; matched by GUID 1, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 50, sum of 1 spaces 50 m2 -> Match + TAS volume: model 150, sum of 1 spaces 150 m3 -> Match + OpenStudio floorArea: model 50, sum of 1 spaces 50 m2 -> Match + OpenStudio volume: model 150, sum of 1 spaces 150 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) → SAM_InternalCondition_S39_OfficeOpen_30b69a1f + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Note: [SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c3b-both-explicit-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7 +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 21.3 s, log C:\TasOut\s05\runs\c3b-both-explicit-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 7.5 s, log C:\TasOut\s05\runs\c3b-both-explicit-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c3b-both-explicit-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/engine-comparison-run.json new file mode 100644 index 00000000..2ceb2f81 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/engine-comparison-run.json @@ -0,0 +1,231 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "1d63d4f7", + "status": "Compared", + "startedUtc": "2026-10-20T05:41:50.0566200Z", + "finishedUtc": "2026-10-20T05:42:19.3370897Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\box-aperture.json", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 21.297, + "log": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 7.496, + "log": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\comparison.md", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c3b-both-explicit-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054150_1d63d4f7\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/run-folder-TasOpenStudio_20261020-054150_1d63d4f7.txt b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/run-folder-TasOpenStudio_20261020-054150_1d63d4f7.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c3b-both-explicit-session2/run-folder-TasOpenStudio_20261020-054150_1d63d4f7.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c4-both-embedded/benchmark-OpenStudio.json new file mode 100644 index 00000000..f87352c3 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/benchmark-OpenStudio.json @@ -0,0 +1,140 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:43:05.1896039Z", + "durationSeconds": 4.7303882, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + }, + "model": { + "consumptionHeating": { + "value": 2081.898258221715, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 4731.6249445886115, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 3.1898434973694196, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.3905924182132985, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 3189.8434973694198, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 5390.5924182132985, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c4-both-embedded/benchmark-TAS.json new file mode 100644 index 00000000..374263ac --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/benchmark-TAS.json @@ -0,0 +1,136 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:42:44.4153865Z", + "durationSeconds": 18.8313655, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 220.62682055425643, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 5540.314465834558, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.4238231201171876, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 775, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 3.126279052734375, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3901, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1927.0106201171875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1926.94873046875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 3415.618896484375, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 3415.45556640625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/case-folder.txt b/documentation/evidence/s05-20261020/cases/c4-both-embedded/case-folder.txt new file mode 100644 index 00000000..b16f7b1b --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579 +507507 box-aperture.json +4515 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c4-both-embedded/comparison-summary.json new file mode 100644 index 00000000..cb571f53 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/comparison-summary.json @@ -0,0 +1,627 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Warn", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 6, + "warn": 1, + "fail": 9, + "notApplicable": 2 + }, + "coverage": { + "status": "Warn", + "requiredMetricCount": 18, + "comparableMetricCount": 16, + "unavailableRequiredMetricCount": 2, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:42:44.4153865Z", + "durationSeconds": 18.8313655, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:43:05.1896039Z", + "durationSeconds": 4.7303882, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 220.62682055425643, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 2081.898258221715, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 1861.2714376674585, + "relativeDifference": 0.8940261275098486, + "signedDifference": 1861.2714376674585 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Warn", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5540.314465834558, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 4731.6249445886115, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 808.6895212459467, + "relativeDifference": 0.14596455241537104, + "signedDifference": -808.6895212459467 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.4238231201171876, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 3.1898434973694196, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 1.766020377252232, + "relativeDifference": 0.5536385652489292, + "signedDifference": 1.766020377252232 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 775, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1080, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3.126279052734375, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 5.3905924182132985, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 2.2643133654789236, + "relativeDifference": 0.42004907620699433, + "signedDifference": 2.2643133654789236 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3901, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1128, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "tasName": "Office", + "openStudioName": "Office", + "matchKind": "Guid", + "metrics": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 1927.0106201171875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1926.94873046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 3189.8434973694198, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1262.8947669006698, + "relativeDifference": 0.3959112000140903, + "signedDifference": 1262.8947669006698 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1241, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 3415.618896484375, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3415.45556640625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 5390.5924182132985, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1975.1368518070485, + "relativeDifference": 0.36640441320208433, + "signedDifference": 1975.1368518070485 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 1, + "openStudioCount": 1, + "matchedByGuid": 1, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/comparison.csv b/documentation/evidence/s05-20261020/cases/c4-both-embedded/comparison.csv new file mode 100644 index 00000000..8a383ea1 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/comparison.csv @@ -0,0 +1,19 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,220.62682055425643,2081.898258221715,1861.2714376674585,0.8940261275098486,89.40261275098486,1861.2714376674585,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,5540.314465834558,4731.6249445886115,808.6895212459467,0.14596455241537104,14.596455241537104,-808.6895212459467,Warn,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.4238231201171876,3.1898434973694196,1.766020377252232,0.5536385652489292,55.36385652489292,1.766020377252232,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,775,8455,1080,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,3.126279052734375,5.3905924182132985,2.2643133654789236,0.42004907620699433,42.004907620699434,2.2643133654789236,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3901,5029,1128,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,area,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,heating.designLoad,W,TasOnly,1927.0106201171875,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakLoad,W,Both,1926.94873046875,3189.8434973694198,1262.8947669006698,0.3959112000140903,39.59112000140903,1262.8947669006698,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakHour,hourOfYear,Both,936,8455,1241,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +cb68bed195af496bb255a13ffa5c58e9,cooling.designLoad,W,TasOnly,3415.618896484375,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakLoad,W,Both,3415.45556640625,5390.5924182132985,1975.1368518070485,0.36640441320208433,36.64044132020843,1975.1368518070485,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/diagnostics.txt b/documentation/evidence/s05-20261020/cases/c4-both-embedded/diagnostics.txt new file mode 100644 index 00000000..1c4e6ba6 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/diagnostics.txt @@ -0,0 +1,28 @@ +Banner: Gate Fail: 6 match, 1 warn, 9 fail (3 contributing to numerical status, 6 informational and excluded); 2 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 1 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Warn, provenance Pass, reconciliation Pass) +Metrics: 6 match, 1 warn, 9 fail, 2 N/A; 16 of 18 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 1, OpenStudio 1; matched by GUID 1, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 50, sum of 1 spaces 50 m2 -> Match + TAS volume: model 150, sum of 1 spaces 150 m3 -> Match + OpenStudio floorArea: model 50, sum of 1 spaces 50 m2 -> Match + OpenStudio volume: model 150, sum of 1 spaces 150 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) → SAM_InternalCondition_S39_OfficeOpen_30b69a1f + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Note: [SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c4-both-embedded\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579 +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 20.5 s, log C:\TasOut\s05\runs\c4-both-embedded\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 7 s, log C:\TasOut\s05\runs\c4-both-embedded\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c4-both-embedded\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c4-both-embedded/engine-comparison-run.json new file mode 100644 index 00000000..7b36f1cb --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/engine-comparison-run.json @@ -0,0 +1,232 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "0850a579", + "status": "Compared", + "startedUtc": "2026-10-20T05:42:43.3272327Z", + "finishedUtc": "2026-10-20T05:43:11.4277726Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\box-aperture.json", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "Embedded", + "path": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\weather.epw", + "sha256": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 20.535, + "log": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 7.007, + "log": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\comparison.md", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c4-both-embedded\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054243_0850a579\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "Embedded", + "sha256": "sha256:5afbeb329bea4ce807f402f095fbc695f7fce8a2a29aa6c7b0d93a31a0063082", + "originalPath": "unknown" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "weather.originalPath": "the weather is the model\u0027s embedded WeatherData, exported to EPW once for both producers; sha256 identifies the exported file", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c4-both-embedded/run-folder-TasOpenStudio_20261020-054243_0850a579.txt b/documentation/evidence/s05-20261020/cases/c4-both-embedded/run-folder-TasOpenStudio_20261020-054243_0850a579.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c4-both-embedded/run-folder-TasOpenStudio_20261020-054243_0850a579.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/benchmark-OpenStudio.json new file mode 100644 index 00000000..c97c19d7 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/benchmark-OpenStudio.json @@ -0,0 +1,202 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:44:43.3937215Z", + "durationSeconds": 5.5837984, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition a7560745-3e17-4a82-a7e3-e6f4878feb62) \u2192 SAM_InternalCondition_S37_OfficeCell_950dd279", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly humidity profile was approximated as a constant dew point (13.8 \u00B0C) from 31% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 1.0; daily dry-bulb range, mean wind/pressure and the SummerDesignDay day type are derived from the SAM hourly profile", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly humidity profile was approximated as a constant dew point (-8.9 \u00B0C) from 55% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 0.0; daily dry-bulb range, mean wind/pressure and the WinterDesignDay day type are derived from the SAM hourly profile" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Design-day source: AnalyticalModel heating/cooling design days (2 imported)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)" + ] + }, + "model": { + "consumptionHeating": { + "value": 32586.624958703087, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 3928.4621857377015, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 17.98919781223135, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 22.221319656078137, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 80, + "unit": "m2", + "available": true + }, + "volume": { + "value": 240, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "36181d863fae4cd999a7397be71f1147", + "name": "Cell 1", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 742.7775192618877, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 8986.196025194962, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2733.000340122116, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 11119.755912860499, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + }, + { + "guid": "ac7a101a974e4f48962092d649ccf0ad", + "name": "Cell 2", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 742.6694335805023, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 9003.001787036388, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2697.479436878951, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 11101.563743217635, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/benchmark-TAS.json new file mode 100644 index 00000000..2247426f --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/benchmark-TAS.json @@ -0,0 +1,194 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:44:19.1666482Z", + "durationSeconds": 22.3211706, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 250.31320778632164, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 9895.84994206661, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.866144775390625, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.26841064453125, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3902, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 80, + "unit": "m2", + "available": true + }, + "volume": { + "value": 240, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "36181d863fae4cd999a7397be71f1147", + "name": "Cell 1", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1423.5592041015625, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1423.5155029296875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2915.32373046875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 2915.218017578125, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + }, + { + "guid": "ac7a101a974e4f48962092d649ccf0ad", + "name": "Cell 2", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1423.5572509765625, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1423.5166015625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2614.4775390625, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 2614.3857421875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4359, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/case-folder.txt b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/case-folder.txt new file mode 100644 index 00000000..3ccbda94 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309 +5726 driver-console.txt +0 evidence +109908 two-cell.sam diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/comparison-summary.json new file mode 100644 index 00000000..5f07d5ba --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/comparison-summary.json @@ -0,0 +1,870 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Pass", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 12, + "warn": 3, + "fail": 13, + "notApplicable": 0 + }, + "coverage": { + "status": "Pass", + "requiredMetricCount": 28, + "comparableMetricCount": 28, + "unavailableRequiredMetricCount": 0, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:44:19.1666482Z", + "durationSeconds": 22.3211706, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:44:43.3937215Z", + "durationSeconds": 5.5837984, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition a7560745-3e17-4a82-a7e3-e6f4878feb62) \u2192 SAM_InternalCondition_S37_OfficeCell_950dd279", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly humidity profile was approximated as a constant dew point (13.8 \u00B0C) from 31% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 1.0; daily dry-bulb range, mean wind/pressure and the SummerDesignDay day type are derived from the SAM hourly profile", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly humidity profile was approximated as a constant dew point (-8.9 \u00B0C) from 55% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 0.0; daily dry-bulb range, mean wind/pressure and the WinterDesignDay day type are derived from the SAM hourly profile" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Design-day source: AnalyticalModel heating/cooling design days (2 imported)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 250.31320778632164, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 32586.624958703087, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 32336.311750916764, + "relativeDifference": 0.9923185292093445, + "signedDifference": 32336.311750916764 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 9895.84994206661, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 3928.4621857377015, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 5967.387756328909, + "relativeDifference": 0.6030192243479697, + "signedDifference": -5967.387756328909 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.866144775390625, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 17.98919781223135, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 16.123053036840723, + "relativeDifference": 0.8962630354688865, + "signedDifference": 16.123053036840723 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Match", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 0, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5.26841064453125, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 22.221319656078137, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 16.952909011546886, + "relativeDifference": 0.7629118915496004, + "signedDifference": 16.952909011546886 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3902, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1127, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 80, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 80, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 240, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 240, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "36181d863fae4cd999a7397be71f1147", + "guid": "36181d863fae4cd999a7397be71f1147", + "tasName": "Cell 1", + "openStudioName": "Cell 1", + "matchKind": "Guid", + "metrics": [ + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 40, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 40, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 120, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 120, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.designLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5592041015625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 742.7775192618877, + "available": true, + "unit": "W" + }, + "absoluteDifference": 680.7816848396748, + "relativeDifference": 0.47822505932890236, + "signedDifference": -680.7816848396748 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5155029296875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 8986.196025194962, + "available": true, + "unit": "W" + }, + "absoluteDifference": 7562.680522265275, + "relativeDifference": 0.8415886434105689, + "signedDifference": 7562.680522265275 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Warn", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 17, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.designLoad", + "unit": "W", + "availability": "Both", + "band": "Warn", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2915.32373046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 2733.000340122116, + "available": true, + "unit": "W" + }, + "absoluteDifference": 182.32339034663391, + "relativeDifference": 0.06253967216097762, + "signedDifference": -182.32339034663391 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2915.218017578125, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 11119.755912860499, + "available": true, + "unit": "W" + }, + "absoluteDifference": 8204.537895282374, + "relativeDifference": 0.7378343517229057, + "signedDifference": 8204.537895282374 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "guid": "ac7a101a974e4f48962092d649ccf0ad", + "tasName": "Cell 2", + "openStudioName": "Cell 2", + "matchKind": "Guid", + "metrics": [ + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 40, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 40, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 120, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 120, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.designLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5572509765625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 742.6694335805023, + "available": true, + "unit": "W" + }, + "absoluteDifference": 680.8878173960602, + "relativeDifference": 0.47830026992519625, + "signedDifference": -680.8878173960602 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5166015625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 9003.001787036388, + "available": true, + "unit": "W" + }, + "absoluteDifference": 7579.485185473888, + "relativeDifference": 0.841884225368893, + "signedDifference": 7579.485185473888 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Warn", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 17, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.designLoad", + "unit": "W", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2614.4775390625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 2697.479436878951, + "available": true, + "unit": "W" + }, + "absoluteDifference": 83.00189781645122, + "relativeDifference": 0.03077016887753792, + "signedDifference": 83.00189781645122 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2614.3857421875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 11101.563743217635, + "available": true, + "unit": "W" + }, + "absoluteDifference": 8487.178001030135, + "relativeDifference": 0.7645029292576258, + "signedDifference": 8487.178001030135 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4359, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 670, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 2, + "openStudioCount": 2, + "matchedByGuid": 2, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 80, + "modelTotalAvailable": true, + "sumOfSpaces": 80, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 240, + "modelTotalAvailable": true, + "sumOfSpaces": 240, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 80, + "modelTotalAvailable": true, + "sumOfSpaces": 80, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 240, + "modelTotalAvailable": true, + "sumOfSpaces": 240, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/comparison.csv b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/comparison.csv new file mode 100644 index 00000000..ac050262 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/comparison.csv @@ -0,0 +1,29 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,250.31320778632164,32586.624958703087,32336.311750916764,0.9923185292093445,99.23185292093444,32336.311750916764,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,9895.84994206661,3928.4621857377015,5967.387756328909,0.6030192243479697,60.30192243479697,-5967.387756328909,Fail,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.866144775390625,17.98919781223135,16.123053036840723,0.8962630354688865,89.62630354688865,16.123053036840723,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,919,919,0,,,,Match,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,5.26841064453125,22.221319656078137,16.952909011546886,0.7629118915496004,76.29118915496004,16.952909011546886,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3902,5029,1127,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,80,80,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,240,240,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +36181d863fae4cd999a7397be71f1147,area,m2,Both,40,40,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +36181d863fae4cd999a7397be71f1147,volume,m3,Both,120,120,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +36181d863fae4cd999a7397be71f1147,heating.designLoad,W,Both,1423.5592041015625,742.7775192618877,680.7816848396748,0.47822505932890236,47.82250593289024,-680.7816848396748,Fail,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,heating.peakLoad,W,Both,1423.5155029296875,8986.196025194962,7562.680522265275,0.8415886434105689,84.1588643410569,7562.680522265275,Fail,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,heating.peakHour,hourOfYear,Both,936,919,17,,,,Warn,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +36181d863fae4cd999a7397be71f1147,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +36181d863fae4cd999a7397be71f1147,cooling.designLoad,W,Both,2915.32373046875,2733.000340122116,182.32339034663391,0.06253967216097762,6.253967216097762,-182.32339034663391,Warn,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,cooling.peakLoad,W,Both,2915.218017578125,11119.755912860499,8204.537895282374,0.7378343517229057,73.78343517229057,8204.537895282374,Fail,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +36181d863fae4cd999a7397be71f1147,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +ac7a101a974e4f48962092d649ccf0ad,area,m2,Both,40,40,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +ac7a101a974e4f48962092d649ccf0ad,volume,m3,Both,120,120,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +ac7a101a974e4f48962092d649ccf0ad,heating.designLoad,W,Both,1423.5572509765625,742.6694335805023,680.8878173960602,0.47830026992519625,47.83002699251963,-680.8878173960602,Fail,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,heating.peakLoad,W,Both,1423.5166015625,9003.001787036388,7579.485185473888,0.841884225368893,84.18842253688929,7579.485185473888,Fail,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,heating.peakHour,hourOfYear,Both,936,919,17,,,,Warn,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +ac7a101a974e4f48962092d649ccf0ad,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +ac7a101a974e4f48962092d649ccf0ad,cooling.designLoad,W,Both,2614.4775390625,2697.479436878951,83.00189781645122,0.03077016887753792,3.0770168877537922,83.00189781645122,Match,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,cooling.peakLoad,W,Both,2614.3857421875,11101.563743217635,8487.178001030135,0.7645029292576258,76.45029292576257,8487.178001030135,Fail,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,cooling.peakHour,hourOfYear,Both,4359,5029,670,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +ac7a101a974e4f48962092d649ccf0ad,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/diagnostics.txt b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/diagnostics.txt new file mode 100644 index 00000000..a39735e2 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/diagnostics.txt @@ -0,0 +1,32 @@ +Banner: Gate Fail: 12 match, 3 warn, 13 fail (8 contributing to numerical status, 5 informational and excluded); 0 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 2 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Pass, provenance Pass, reconciliation Pass) +Metrics: 12 match, 3 warn, 13 fail, 0 N/A; 28 of 28 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 2, OpenStudio 2; matched by GUID 2, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 80, sum of 2 spaces 80 m2 -> Match + TAS volume: model 240, sum of 2 spaces 240 m3 -> Match + OpenStudio floorArea: model 80, sum of 2 spaces 80 m2 -> Match + OpenStudio volume: model 240, sum of 2 spaces 240 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition a7560745-3e17-4a82-a7e3-e6f4878feb62) → SAM_InternalCondition_S37_OfficeCell_950dd279 + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=>GRad': the hourly humidity profile was approximated as a constant dew point (13.8 °C) from 31% RH at the maximum-dry-bulb hour + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=>GRad': the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 1.0; daily dry-bulb range, mean wind/pressure and the SummerDesignDay day type are derived from the SAM hourly profile + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB': the hourly humidity profile was approximated as a constant dew point (-8.9 °C) from 55% RH at the maximum-dry-bulb hour + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB': the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 0.0; daily dry-bulb range, mean wind/pressure and the WinterDesignDay day type are derived from the SAM hourly profile + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Design-day source: AnalyticalModel heating/cooling design days (2 imported) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c6a-multizone-both-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309 +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 24 s, log C:\TasOut\s05\runs\c6a-multizone-both-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 8.9 s, log C:\TasOut\s05\runs\c6a-multizone-both-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c6a-multizone-both-session1\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/engine-comparison-run.json new file mode 100644 index 00000000..0a005bd8 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/engine-comparison-run.json @@ -0,0 +1,231 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "cf022309", + "status": "Compared", + "startedUtc": "2026-10-20T05:44:18.1627020Z", + "finishedUtc": "2026-10-20T05:44:51.6211360Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\two-cell.sam", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\snapshot.json", + "sha256": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 24.029, + "log": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 8.929, + "log": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\comparison.md", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c6a-multizone-both-session1\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054418_cf022309\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/run-folder-TasOpenStudio_20261020-054418_cf022309.txt b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/run-folder-TasOpenStudio_20261020-054418_cf022309.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6a-multizone-both-session1/run-folder-TasOpenStudio_20261020-054418_cf022309.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/benchmark-OpenStudio.json new file mode 100644 index 00000000..e112462a --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/benchmark-OpenStudio.json @@ -0,0 +1,202 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:45:50.677093Z", + "durationSeconds": 6.3495347, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition a7560745-3e17-4a82-a7e3-e6f4878feb62) \u2192 SAM_InternalCondition_S37_OfficeCell_950dd279", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly humidity profile was approximated as a constant dew point (13.8 \u00B0C) from 31% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 1.0; daily dry-bulb range, mean wind/pressure and the SummerDesignDay day type are derived from the SAM hourly profile", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly humidity profile was approximated as a constant dew point (-8.9 \u00B0C) from 55% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 0.0; daily dry-bulb range, mean wind/pressure and the WinterDesignDay day type are derived from the SAM hourly profile" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Design-day source: AnalyticalModel heating/cooling design days (2 imported)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)" + ] + }, + "model": { + "consumptionHeating": { + "value": 32586.624958690154, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 3928.4621856845138, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 17.98919781226556, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 22.22131965605325, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 80, + "unit": "m2", + "available": true + }, + "volume": { + "value": 240, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "36181d863fae4cd999a7397be71f1147", + "name": "Cell 1", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 742.777519282341, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 8986.196025213874, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2733.0003400824153, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 11119.755912844083, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + }, + { + "guid": "ac7a101a974e4f48962092d649ccf0ad", + "name": "Cell 2", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 742.669433603851, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 9003.001787051686, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2697.4794368746548, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 11101.563743209164, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/benchmark-TAS.json new file mode 100644 index 00000000..5e04f789 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/benchmark-TAS.json @@ -0,0 +1,194 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:45:25.8545522Z", + "durationSeconds": 23.0974819, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 250.31320778632164, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 9895.84994206661, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.866144775390625, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 919, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.26841064453125, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3902, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 80, + "unit": "m2", + "available": true + }, + "volume": { + "value": 240, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "36181d863fae4cd999a7397be71f1147", + "name": "Cell 1", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1423.5592041015625, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1423.5155029296875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2915.32373046875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 2915.218017578125, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + }, + { + "guid": "ac7a101a974e4f48962092d649ccf0ad", + "name": "Cell 2", + "area": { + "value": 40, + "unit": "m2", + "available": true + }, + "volume": { + "value": 120, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1423.5572509765625, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1423.5166015625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 2614.4775390625, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 2614.3857421875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4359, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/case-folder.txt b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/case-folder.txt new file mode 100644 index 00000000..c4e99c5e --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc +5726 driver-console.txt +0 evidence +109908 two-cell.sam diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/comparison-summary.json new file mode 100644 index 00000000..eb60e530 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/comparison-summary.json @@ -0,0 +1,870 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Pass", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 12, + "warn": 3, + "fail": 13, + "notApplicable": 0 + }, + "coverage": { + "status": "Pass", + "requiredMetricCount": 28, + "comparableMetricCount": 28, + "unavailableRequiredMetricCount": 0, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:45:25.8545522Z", + "durationSeconds": 23.0974819, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "b74990da73b240978846cc12560be0aa", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "runTimestampUtc": "2026-10-20T05:45:50.677093Z", + "durationSeconds": 6.3495347, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition a7560745-3e17-4a82-a7e3-e6f4878feb62) \u2192 SAM_InternalCondition_S37_OfficeCell_950dd279", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly humidity profile was approximated as a constant dew point (13.8 \u00B0C) from 31% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=\u003EGRad\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 1.0; daily dry-bulb range, mean wind/pressure and the SummerDesignDay day type are derived from the SAM hourly profile", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly humidity profile was approximated as a constant dew point (-8.9 \u00B0C) from 55% RH at the maximum-dry-bulb hour", + "[SAM-OS-RUN-002] Warning: Embedded design day \u0027London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB\u0027: the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 0.0; daily dry-bulb range, mean wind/pressure and the WinterDesignDay day type are derived from the SAM hourly profile" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Design-day source: AnalyticalModel heating/cooling design days (2 imported)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 250.31320778632164, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 32586.624958690154, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 32336.31175090383, + "relativeDifference": 0.9923185292093415, + "signedDifference": 32336.31175090383 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 9895.84994206661, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 3928.4621856845138, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 5967.387756382097, + "relativeDifference": 0.6030192243533445, + "signedDifference": -5967.387756382097 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.866144775390625, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 17.98919781226556, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 16.123053036874932, + "relativeDifference": 0.8962630354690838, + "signedDifference": 16.123053036874932 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Match", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 0, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5.26841064453125, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 22.22131965605325, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 16.952909011522, + "relativeDifference": 0.7629118915493348, + "signedDifference": 16.952909011522 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3902, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1127, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 80, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 80, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 240, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 240, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "36181d863fae4cd999a7397be71f1147", + "guid": "36181d863fae4cd999a7397be71f1147", + "tasName": "Cell 1", + "openStudioName": "Cell 1", + "matchKind": "Guid", + "metrics": [ + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 40, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 40, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 120, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 120, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.designLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5592041015625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 742.777519282341, + "available": true, + "unit": "W" + }, + "absoluteDifference": 680.7816848192215, + "relativeDifference": 0.4782250593145347, + "signedDifference": -680.7816848192215 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5155029296875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 8986.196025213874, + "available": true, + "unit": "W" + }, + "absoluteDifference": 7562.680522284187, + "relativeDifference": 0.8415886434109023, + "signedDifference": 7562.680522284187 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Warn", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 17, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.designLoad", + "unit": "W", + "availability": "Both", + "band": "Warn", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2915.32373046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 2733.0003400824153, + "available": true, + "unit": "W" + }, + "absoluteDifference": 182.32339038633472, + "relativeDifference": 0.06253967217459559, + "signedDifference": -182.32339038633472 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2915.218017578125, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 11119.755912844083, + "available": true, + "unit": "W" + }, + "absoluteDifference": 8204.537895265958, + "relativeDifference": 0.7378343517225187, + "signedDifference": 8204.537895265958 + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "36181d863fae4cd999a7397be71f1147", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "guid": "ac7a101a974e4f48962092d649ccf0ad", + "tasName": "Cell 2", + "openStudioName": "Cell 2", + "matchKind": "Guid", + "metrics": [ + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 40, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 40, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 120, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 120, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.designLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5572509765625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 742.669433603851, + "available": true, + "unit": "W" + }, + "absoluteDifference": 680.8878173727115, + "relativeDifference": 0.47830026990879465, + "signedDifference": -680.8878173727115 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1423.5166015625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 9003.001787051686, + "available": true, + "unit": "W" + }, + "absoluteDifference": 7579.485185489186, + "relativeDifference": 0.8418842253691615, + "signedDifference": 7579.485185489186 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Warn", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 919, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 17, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.designLoad", + "unit": "W", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2614.4775390625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 2697.4794368746548, + "available": true, + "unit": "W" + }, + "absoluteDifference": 83.00189781215477, + "relativeDifference": 0.030770168875994163, + "signedDifference": 83.00189781215477 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 2614.3857421875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 11101.563743209164, + "available": true, + "unit": "W" + }, + "absoluteDifference": 8487.178001021664, + "relativeDifference": 0.7645029292574461, + "signedDifference": 8487.178001021664 + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4359, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 670, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "ac7a101a974e4f48962092d649ccf0ad", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 2, + "openStudioCount": 2, + "matchedByGuid": 2, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 80, + "modelTotalAvailable": true, + "sumOfSpaces": 80, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 240, + "modelTotalAvailable": true, + "sumOfSpaces": 240, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 80, + "modelTotalAvailable": true, + "sumOfSpaces": 80, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 240, + "modelTotalAvailable": true, + "sumOfSpaces": 240, + "contributingSpaces": 2, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/comparison.csv b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/comparison.csv new file mode 100644 index 00000000..f9aa629d --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/comparison.csv @@ -0,0 +1,29 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,250.31320778632164,32586.624958690154,32336.31175090383,0.9923185292093415,99.23185292093414,32336.31175090383,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,9895.84994206661,3928.4621856845138,5967.387756382097,0.6030192243533445,60.301922435334454,-5967.387756382097,Fail,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.866144775390625,17.98919781226556,16.123053036874932,0.8962630354690838,89.62630354690837,16.123053036874932,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,919,919,0,,,,Match,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,5.26841064453125,22.22131965605325,16.952909011522,0.7629118915493348,76.29118915493348,16.952909011522,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3902,5029,1127,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,80,80,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,240,240,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +36181d863fae4cd999a7397be71f1147,area,m2,Both,40,40,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +36181d863fae4cd999a7397be71f1147,volume,m3,Both,120,120,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +36181d863fae4cd999a7397be71f1147,heating.designLoad,W,Both,1423.5592041015625,742.777519282341,680.7816848192215,0.4782250593145347,47.82250593145347,-680.7816848192215,Fail,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,heating.peakLoad,W,Both,1423.5155029296875,8986.196025213874,7562.680522284187,0.8415886434109023,84.15886434109024,7562.680522284187,Fail,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,heating.peakHour,hourOfYear,Both,936,919,17,,,,Warn,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +36181d863fae4cd999a7397be71f1147,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +36181d863fae4cd999a7397be71f1147,cooling.designLoad,W,Both,2915.32373046875,2733.0003400824153,182.32339038633472,0.06253967217459559,6.253967217459559,-182.32339038633472,Warn,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,cooling.peakLoad,W,Both,2915.218017578125,11119.755912844083,8204.537895265958,0.7378343517225187,73.78343517225187,8204.537895265958,Fail,,default,0.05,0.15,1,24,10,false +36181d863fae4cd999a7397be71f1147,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +36181d863fae4cd999a7397be71f1147,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +ac7a101a974e4f48962092d649ccf0ad,area,m2,Both,40,40,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +ac7a101a974e4f48962092d649ccf0ad,volume,m3,Both,120,120,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +ac7a101a974e4f48962092d649ccf0ad,heating.designLoad,W,Both,1423.5572509765625,742.669433603851,680.8878173727115,0.47830026990879465,47.83002699087947,-680.8878173727115,Fail,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,heating.peakLoad,W,Both,1423.5166015625,9003.001787051686,7579.485185489186,0.8418842253691615,84.18842253691615,7579.485185489186,Fail,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,heating.peakHour,hourOfYear,Both,936,919,17,,,,Warn,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +ac7a101a974e4f48962092d649ccf0ad,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +ac7a101a974e4f48962092d649ccf0ad,cooling.designLoad,W,Both,2614.4775390625,2697.4794368746548,83.00189781215477,0.030770168875994163,3.077016887599416,83.00189781215477,Match,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,cooling.peakLoad,W,Both,2614.3857421875,11101.563743209164,8487.178001021664,0.7645029292574461,76.4502929257446,8487.178001021664,Fail,,default,0.05,0.15,1,24,10,false +ac7a101a974e4f48962092d649ccf0ad,cooling.peakHour,hourOfYear,Both,4359,5029,670,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +ac7a101a974e4f48962092d649ccf0ad,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/diagnostics.txt b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/diagnostics.txt new file mode 100644 index 00000000..db226ed1 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/diagnostics.txt @@ -0,0 +1,32 @@ +Banner: Gate Fail: 12 match, 3 warn, 13 fail (8 contributing to numerical status, 5 informational and excluded); 0 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 2 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Pass, provenance Pass, reconciliation Pass) +Metrics: 12 match, 3 warn, 13 fail, 0 N/A; 28 of 28 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 2, OpenStudio 2; matched by GUID 2, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 80, sum of 2 spaces 80 m2 -> Match + TAS volume: model 240, sum of 2 spaces 240 m3 -> Match + OpenStudio floorArea: model 80, sum of 2 spaces 80 m2 -> Match + OpenStudio volume: model 240, sum of 2 spaces 240 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition a7560745-3e17-4a82-a7e3-e6f4878feb62) → SAM_InternalCondition_S37_OfficeCell_950dd279 + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=>GRad': the hourly humidity profile was approximated as a constant dew point (13.8 °C) from 31% RH at the maximum-dry-bulb hour + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN CLG 0% CONDS DB=>GRad': the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 1.0; daily dry-bulb range, mean wind/pressure and the SummerDesignDay day type are derived from the SAM hourly profile + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB': the hourly humidity profile was approximated as a constant dew point (-8.9 °C) from 55% RH at the maximum-dry-bulb hour + Warning: [SAM-OS-RUN-002] Warning: Embedded design day 'London.Wea.Ctr-St.James.Park ANN HTG 100% CONDS DB': the hourly solar profile was approximated by the ASHRAEClearSky model with clearness 0.0; daily dry-bulb range, mean wind/pressure and the WinterDesignDay day type are derived from the SAM hourly profile + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Design-day source: AnalyticalModel heating/cooling design days (2 imported) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c6b-multizone-both-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 24.9 s, log C:\TasOut\s05\runs\c6b-multizone-both-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 9 s, log C:\TasOut\s05\runs\c6b-multizone-both-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c6b-multizone-both-session2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/engine-comparison-run.json new file mode 100644 index 00000000..cff2b1c9 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/engine-comparison-run.json @@ -0,0 +1,231 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "7e6722bc", + "status": "Compared", + "startedUtc": "2026-10-20T05:45:24.9298332Z", + "finishedUtc": "2026-10-20T05:45:59.1803598Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\two-cell.sam", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\snapshot.json", + "sha256": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 24.87, + "log": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 8.956, + "log": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\comparison.md", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c6b-multizone-both-session2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054524_7e6722bc\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "EmbeddedModel", + "sourceFileHash": "sha256:a3b8cff8c90cb5e9827688fe56e244045585420268638c8667b8c11f44507f07", + "canonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/run-folder-TasOpenStudio_20261020-054524_7e6722bc.txt b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/run-folder-TasOpenStudio_20261020-054524_7e6722bc.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c6b-multizone-both-session2/run-folder-TasOpenStudio_20261020-054524_7e6722bc.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/box.tas-run.json b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/box.tas-run.json new file mode 100644 index 00000000..6a353fa4 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/box.tas-run.json @@ -0,0 +1,702 @@ +{ + "schema": "sam-ui.tas-run/1", + "id": "9fc75fce", + "status": "Failed", + "startedUtc": "2026-10-20T05:46:36.7549046Z", + "finishedUtc": "2026-10-20T05:46:52.6026415Z", + "durationSeconds": 15.848, + "sourcePath": "C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\box-aperture.json", + "projectName": "box", + "model": { + "name": "000000_SAM_AnalyticalModel", + "guid": "1988f7b93ec047d0b87bf9cb345d9eab" + }, + "outputs": { + "directory": "C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out", + "tbd": "C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box.tbd", + "tsd": null + }, + "refusal": null, + "failure": "TAS return code: 0\nTAS error log: C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box_error_log.txt\nError: Simulating Model: TAS refused the simulation: TBDDocument.simulate returned 0. TAS return code: 0; TAS error log: C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box_error_log.txt. (TAS-SIM-001)\nError: Simulating Model: TAS wrote an error log for this run: C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box_error_log.txt (TAS return code: 0)\r\nError accessing the TSD file for writing (TAS-SIM-001)\nError: Simulating Model: The run produced no output file: C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box.tsd TAS return code: 0; TAS error log: C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box_error_log.txt. (TAS-SIM-001)", + "notes": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Tas", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Tas", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Tas.dll", + "sha256": "sha256:c4f19541b888298349390af2eaef795efbd8929b1ef8dfd542e09f753987e44a" + } + ] + }, + "engine": { + "comServer": "TBD.Document", + "executable": { + "path": "C:\\Program Files\\Environmental Design Solutions Ltd\\Tas\\TBD.exe", + "sha256": "sha256:aa658fcdeec8f5e3acbd64523376b5a7362c499beecc280715edca64851e49ae", + "fileVersion": "2, 0, 0, 1", + "productVersion": "9.5.7.0" + }, + "version": "9.5.7.0" + }, + "weather": { + "source": "Embedded", + "name": "HUN_CEN_Budapest.Met.Center, 128400, SRC-TMYx", + "contentSha256": "sha256:7666c3a7e89324372b595aa685aeac965588eb39a8096f02cb2fa7c3ca33a65b", + "contentHashOf": "the SAM WeatherData JSON given to TAS without its own Guid, canonical JSON v1 (SAM_Validation)", + "file": "unknown" + }, + "designDays": { + "source": "DerivedFromWeather", + "heating": [ + "Budapest.Met.Center ANN HTG 100% CONDS DB" + ], + "cooling": [ + "Budapest.Met.Center ANN CLG 0% CONDS DB=\u003EGRad" + ], + "usedForSizing": true + }, + "settings": { + "inputs": { + "simulate": true, + "fullYearSimulation": true, + "fullYearSimulationFrom": 1, + "fullYearSimulationTo": 365, + "sizing": true, + "unmetHours": false, + "useWidths": false, + "solarCalculationMethod": "TAS", + "directT3D": false, + "updateConstructionLayersByPanelType": true, + "createTM59": false, + "createSAP": false, + "createTPD": false, + "createPartL": false, + "printRoomDataSheets": false, + "zoneCategory": "(none)" + }, + "workflow": { + "_type": "SAM.Analytical.Tas.WorkflowSettings,SAM.Analytical.Tas", + "Path_TBD": "C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box.tbd", + "Path_gbXML": "C:\\TasOut\\s05\\runs\\c7-tas-refusal-energy-simulation\\out\\box.xml", + "T3DRoute": "GbXML", + "WeatherData": { + "name": "HUN_CEN_Budapest.Met.Center, 128400, SRC-TMYx", + "contentSha256": "sha256:7666c3a7e89324372b595aa685aeac965588eb39a8096f02cb2fa7c3ca33a65b" + }, + "DesignDays_Heating": [ + { + "_type": "SAM.Analytical.DesignDay,SAM.Analytical", + "Data": [ + { + "Name": "DryBulbTemperature", + "Values": [ + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9, + -10.9 + ] + }, + { + "Name": "WetBulbTemperature", + "Values": [ + -16.3, + -16.5, + -16.6, + -16.3, + -15.4, + -15.2, + -16.1, + -16.2, + -15.9, + -14.5, + -15.2, + -13.5, + -14.4, + -14.5, + -14.5, + -15, + -15.8, + -15.1, + -14.1, + -13.8, + -13.8, + -13, + -12.8, + -14.6 + ] + }, + { + "Name": "RelativeHumidity", + "Values": [ + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65, + 65 + ] + }, + { + "Name": "AtmosphericPressure", + "Values": [ + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310, + 100310 + ] + }, + { + "Name": "GlobalSolarRadiation", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "DiffuseSolarRadiation", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "WindDirection", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "WindSpeed", + "Values": [ + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4, + 2.4 + ] + }, + { + "Name": "CloudCover", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "Name": "Budapest.Met.Center ANN HTG 100% CONDS DB", + "Description": "Heating Design Day automated :) \n *calculated from weather data as day with min temp - single value and its wind speed all remaining values are zero", + "Year": 2018, + "Month": 2, + "Day": 8 + } + ], + "DesignDays_Cooling": [ + { + "_type": "SAM.Analytical.DesignDay,SAM.Analytical", + "Data": [ + { + "Name": "DryBulbTemperature", + "Values": [ + 21.1, + 21.7, + 22.4, + 22.6, + 23.1, + 23.8, + 22.1, + 23.9, + 25.6, + 27.2, + 28.9, + 30.6, + 32.2, + 33.9, + 33.2, + 32.6, + 32, + 31.3, + 24.4, + 23.3, + 22.8, + 22.9, + 23, + 23.1 + ] + }, + { + "Name": "WetBulbTemperature", + "Values": [ + 19.1, + 19.6, + 20, + 20.7, + 20.4, + 20.1, + 21.9, + 19.4, + 18.9, + 18.3, + 17.8, + 17.2, + 16.6, + 16.1, + 15.7, + 15.1, + 14.6, + 14, + 24.2, + 23.2, + 21.7, + 20.7, + 19.5, + 18.7 + ] + }, + { + "Name": "RelativeHumidity", + "Values": [ + 89, + 88, + 86, + 89, + 85, + 80, + 100, + 76, + 66, + 58, + 51, + 45, + 39, + 35, + 35, + 35, + 35, + 35, + 99, + 99, + 93, + 87, + 80, + 76 + ] + }, + { + "Name": "AtmosphericPressure", + "Values": [ + 99788, + 99758, + 99718, + 99733, + 99677, + 99631, + 99825, + 99544, + 99514, + 99484, + 99455, + 99425, + 99395, + 99365, + 99333, + 99300, + 99267, + 99235, + 99709, + 99788, + 99829, + 99830, + 99830, + 99831 + ] + }, + { + "Name": "GlobalSolarRadiation", + "Values": [ + 0, + 0, + 0, + 22, + 101, + 141, + 251, + 523, + 739, + 851, + 903, + 896, + 835, + 680, + 501, + 357, + 208, + 71, + 4, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "DiffuseSolarRadiation", + "Values": [ + 0, + 0, + 0, + 22, + 83, + 123, + 200, + 259, + 205, + 154, + 177, + 211, + 193, + 230, + 243, + 179, + 120, + 49, + 4, + 0, + 0, + 0, + 0, + 0 + ] + }, + { + "Name": "WindDirection", + "Values": [ + 140, + 138, + 159, + 198, + 177, + 195, + 168, + 84, + 263, + 204, + 23, + 77, + 315, + 164, + 277, + 95, + 27, + 292, + 97, + 160, + 79, + 147, + 74, + 40 + ] + }, + { + "Name": "WindSpeed", + "Values": [ + 1, + 1, + 1, + 1, + 0.8, + 0.5, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0.8, + 1.5, + 2.3, + 3.1, + 3.8, + 4.6, + 4.6, + 4.6, + 4.6, + 4.6 + ] + }, + { + "Name": "CloudCover", + "Values": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "Name": "Budapest.Met.Center ANN CLG 0% CONDS DB=\u003EGRad", + "Description": "Cooling Design Day automated :) \n *calculated from weather data as day with max temp and then radation replaced from max global radation day and cloud cover removed", + "Year": 2018, + "Month": 7, + "Day": 1 + } + ], + "SurfaceOutputSpecs": [ + { + "_type": "SAM.Core.Tas.SurfaceOutputSpec,SAM.Core.Tas", + "Name": "Tas.Simulate", + "Guid": "9e587c1c-aec0-416b-9165-ca374f18a289", + "ApertureData": true, + "Condensation": false, + "Convection": false, + "SolarGain": true, + "Conduction": true, + "LongWave": false, + "Temperature": true + } + ], + "UnmetHours": false, + "Simulate": true, + "Sizing": true, + "UpdateZones": true, + "UseWidths": false, + "AddIZAMs": true, + "RemoveIZAMs": false, + "RemoveMechanicalVentilationGains": false, + "SimulateFrom": 1, + "SimulateTo": 365, + "RemoveExistingTBD": false, + "UpdateWindowPositionType": false + } + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "application.components[SAM.Analytical.Tas].informationalVersion": "the assembly carries no InformationalVersion", + "weather.file": "the weather is the model\u0027s embedded WeatherData, not a file; contentSha256 identifies it" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/box_error_log.txt b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/box_error_log.txt new file mode 100644 index 00000000..d60e98a8 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/box_error_log.txt @@ -0,0 +1 @@ +Error accessing the TSD file for writing \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/case-folder.txt b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/case-folder.txt new file mode 100644 index 00000000..c1781125 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +507507 box-aperture.json +5587 driver-console.txt +0 evidence +0 out diff --git a/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/message-box.txt b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/message-box.txt new file mode 100644 index 00000000..a15941d2 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c7-tas-refusal-energy-simulation/message-box.txt @@ -0,0 +1,12 @@ +Title: Simulation failed +Simulation failed: the TAS simulation did not complete, so this run produced no results. + +TAS return code: 0 +TAS error log: C:\TasOut\s05\runs\c7-tas-refusal-energy-simulation\out\box_error_log.txt +Error: Simulating Model: TAS refused the simulation: TBDDocument.simulate returned 0. TAS return code: 0; TAS error log: C:\TasOut\s05\runs\c7-tas-refusal-energy-simulation\out\box_error_log.txt. (TAS-SIM-001) +Error: Simulating Model: TAS wrote an error log for this run: C:\TasOut\s05\runs\c7-tas-refusal-energy-simulation\out\box_error_log.txt (TAS return code: 0) +Error accessing the TSD file for writing (TAS-SIM-001) +Error: Simulating Model: The run produced no output file: C:\TasOut\s05\runs\c7-tas-refusal-energy-simulation\out\box.tsd TAS return code: 0; TAS error log: C:\TasOut\s05\runs\c7-tas-refusal-energy-simulation\out\box_error_log.txt. (TAS-SIM-001) + +The open model was not changed. + Time elapsed: 0min16sec diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/04-progress-before-cancel.png b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/04-progress-before-cancel.png new file mode 100644 index 00000000..872cde4c Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/04-progress-before-cancel.png differ diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/05-compare.png b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/05-compare.png new file mode 100644 index 00000000..be013521 Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/05-compare.png differ diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/05-diagnostics.txt b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/05-diagnostics.txt new file mode 100644 index 00000000..65aba62f --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/05-diagnostics.txt @@ -0,0 +1,5 @@ +Banner: CANCELLED - nothing to show or compare. See Diagnostics for each engine's exit code, error and log. + +Run: Cancelled - C:\TasOut\s05\runs\c8a-cancel-both\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a +Tas producer: did not complete, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code -, 5.3 s, log C:\TasOut\s05\runs\c8a-cancel-both\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\benchmark-tas.log +Run record: C:\TasOut\s05\runs\c8a-cancel-both\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/case-folder.txt b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/case-folder.txt new file mode 100644 index 00000000..0794fa9a --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a +507507 box-aperture.json +3045 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/engine-comparison-run.json new file mode 100644 index 00000000..f3cdf4e9 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/engine-comparison-run.json @@ -0,0 +1,143 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "eb0e846a", + "status": "Cancelled", + "startedUtc": "2026-10-20T05:49:52.2277903Z", + "finishedUtc": "2026-10-20T05:49:57.8794166Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\box-aperture.json", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\benchmark-TAS.json" + ], + "exitCode": null, + "durationSeconds": 5.324, + "log": "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\benchmark-tas.log", + "benchmark": null, + "error": null, + "succeeded": false + } + ], + "gate": null, + "reports": [], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c8a-cancel-both\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-054952_eb0e846a\\benchmark-TAS.json" + ], + "succeeded": false, + "reported": "unknown" + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported": "the producer wrote no B1a document" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/processes.txt b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/processes.txt new file mode 100644 index 00000000..fe48c67c --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/processes.txt @@ -0,0 +1,2 @@ +2026-10-20T05:49:57.5165373Z [running, before Cancel] benchmark-tas.exe#44424(parent 28180) +2026-10-20T05:50:04.7824093Z [after the comparison window opened] none diff --git a/documentation/evidence/s05-20261020/cases/c8a-cancel-both/run-folder-TasOpenStudio_20261020-054952_eb0e846a.txt b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/run-folder-TasOpenStudio_20261020-054952_eb0e846a.txt new file mode 100644 index 00000000..1a909e4c --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8a-cancel-both/run-folder-TasOpenStudio_20261020-054952_eb0e846a.txt @@ -0,0 +1,5 @@ +benchmark-tas.log +engine-comparison-run.json +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/05-summary.png b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/05-summary.png new file mode 100644 index 00000000..39c6354c Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/05-summary.png differ diff --git a/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/05-summary.txt b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/05-summary.txt new file mode 100644 index 00000000..ba2c21ff --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/05-summary.txt @@ -0,0 +1,13 @@ +Title: OpenStudio Simulation +The OpenStudio simulation was cancelled. No result model was saved and the open model was not changed. + +Run folder: C:\TasOut\s05\runs\c8b-cancel-openstudio\000000_SAM_AnalyticalModel_OpenStudio_20261020-055053_87a6b4d4 +Weather: File +EnergyPlus: exit code -1, 0 warnings, 0 severe, 0 fatal + +Diagnostics: +- Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) +- Warning SAM-OS-RUN-001: Simulation cancelled; the CLI/EnergyPlus process tree was terminated + +Open the run folder? + diff --git a/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/case-folder.txt b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/case-folder.txt new file mode 100644 index 00000000..d8702b00 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/case-folder.txt @@ -0,0 +1,7 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_OpenStudio_20261020-055053_87a6b4d4 +507507 box-aperture.json +3575 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/openstudio-run.json b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/openstudio-run.json new file mode 100644 index 00000000..c8bab800 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/openstudio-run.json @@ -0,0 +1,159 @@ +{ + "schema": "sam-ui.openstudio-run/1", + "id": "87a6b4d4", + "status": "Cancelled", + "startedUtc": "2026-10-20T05:50:53.6380124Z", + "finishedUtc": "2026-10-20T05:50:56.5074801Z", + "durationSeconds": 2.869, + "sourcePath": "C:\\TasOut\\s05\\runs\\c8b-cancel-openstudio\\box-aperture.json", + "model": { + "name": "000000_SAM_AnalyticalModel", + "guid": "1988f7b93ec047d0b87bf9cb345d9eab" + }, + "snapshot": { + "path": "snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "engine": { + "route": "Native-OpenStudio", + "samOpenStudioVersion": "1.0.0.0", + "cliPath": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "exitCode": -1, + "warningCount": 0, + "severeCount": 0, + "fatalCount": 0 + }, + "outputs": { + "osm": "000000_SAM_AnalyticalModel.osm", + "osw": "000000_SAM_AnalyticalModel.osw", + "sql": "run/eplusout.sql", + "err": "run/eplusout.err", + "resultModel": null + }, + "resultCount": 0, + "removedResultCount": 0, + "diagnostics": [ + "Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope)", + "Information SAM-OS-HVAC-001: Exhaust air flows (ExhaustAirFlowPerPerson) are not converted \u2014 exhaust needs fan/air-loop equipment, deferred to the detailed-HVAC programme", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (5.565) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2.7) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (24) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-RUN-002: Annual weather source: explicit EPW (Budapest.epw)", + "Information SAM-OS-RUN-001: Site coordinates taken from the SAM model Location (lat 47.517, lon 19.033, elevation 129 m), overriding the EPW header; the time zone stays with the EPW header", + "Information SAM-OS-RUN-002: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "Information SAM-OS-RUN-002: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides", + "Warning SAM-OS-RUN-001: Simulation cancelled; the CLI/EnergyPlus process tree was terminated" + ], + "resultDiagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "OpenStudio", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.OpenStudio.dll", + "sha256": "sha256:965716bd87ded52ded7ac085810ef6b93d1fb3a000f0e12e9f74be32b7958c66" + }, + { + "name": "SAM.Core.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.OpenStudio.dll", + "sha256": "sha256:f9bf4cd63a390425c8d9bb527713f34e91247e1b69991ae656f02356e4bc43d3" + } + ] + }, + "engine": { + "openStudioSdkVersion": "3.10.0", + "energyPlusVersionOfSdk": "25.1.0", + "energyPlusVersion": "unknown", + "cli": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "sha256": "sha256:46a80a3d340696bcc189d9a7ae7ec4b70ea4db0fdb4565a33ecd25aa8ebf6361", + "fileVersion": "3.10.0", + "productVersion": "3.10.0.86d7e215a1" + } + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "None" + }, + "settings": { + "runOptions": { + "epwPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw", + "outputDirectory": "C:\\TasOut\\s05\\runs\\c8b-cancel-openstudio\\000000_SAM_AnalyticalModel_OpenStudio_20261020-055053_87a6b4d4", + "conversionOptions": "SAM_OpenStudio defaults", + "run": true, + "cliPath": "(discovered by SAM_OpenStudio; the CLI that ran is engine.cli)", + "runDirectory": "(not set: a directory next to the OSW file)", + "ddyPath": "(none)", + "timeoutSeconds": 3600, + "useUniqueRunDirectory": false, + "extractTimeSeries": false + } + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "application.components[SAM.Analytical.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion", + "application.components[SAM.Core.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion", + "engine.energyPlusVersion": "EnergyPlus wrote no eplusout.err with its version line (it did not run, or the run stopped before it)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/processes.txt b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/processes.txt new file mode 100644 index 00000000..de5062f7 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/processes.txt @@ -0,0 +1,2 @@ +2026-10-20T05:50:56.4216194Z [running, before Cancel] openstudio.exe#56332(parent 51980), energyplus.exe#36496(parent 56332) +2026-10-20T05:51:03.4796590Z [3 s after the summary] none diff --git a/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/run-folder-OpenStudio_20261020-055053_87a6b4d4.txt b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/run-folder-OpenStudio_20261020-055053_87a6b4d4.txt new file mode 100644 index 00000000..ee50a8a2 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c8b-cancel-openstudio/run-folder-OpenStudio_20261020-055053_87a6b4d4.txt @@ -0,0 +1,7 @@ +000000_SAM_AnalyticalModel.osm +000000_SAM_AnalyticalModel.osw +generated_files +openstudio-run.json +run +snapshot.json +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/05-diagnostics.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/05-diagnostics.txt new file mode 100644 index 00000000..50125ded --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/05-diagnostics.txt @@ -0,0 +1,28 @@ +Banner: Gate Fail: 6 match, 0 warn, 10 fail (4 contributing to numerical status, 6 informational and excluded); 2 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 1 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Warn, provenance Pass, reconciliation Pass) +Metrics: 6 match, 0 warn, 10 fail, 2 N/A; 16 of 18 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 1, OpenStudio 1; matched by GUID 1, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 50, sum of 1 spaces 50 m2 -> Match + TAS volume: model 150, sum of 1 spaces 150 m3 -> Match + OpenStudio floorArea: model 50, sum of 1 spaces 50 m2 -> Match + OpenStudio volume: model 150, sum of 1 spaces 150 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) → SAM_InternalCondition_S39_OfficeOpen_30b69a1f + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Note: [SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c9-concurrent-start-run2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247 +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 20.8 s, log C:\TasOut\s05\runs\c9-concurrent-start-run2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 6.9 s, log C:\TasOut\s05\runs\c9-concurrent-start-run2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c9-concurrent-start-run2\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/07-summary.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/07-summary.txt new file mode 100644 index 00000000..7b9286ba --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/07-summary.txt @@ -0,0 +1,13 @@ +Title: OpenStudio Simulation +The OpenStudio/EnergyPlus simulation finished. The open model was not changed. + +Run folder: C:\TasOut\s05\runs\c9-concurrent-start-run2\000000_SAM_AnalyticalModel_OpenStudio_20261020-055443_c894a4a3 +Result model: 000000_SAM_AnalyticalModel_OpenStudio.json (13 results) +Weather: File +EnergyPlus: exit code 0, 10 warnings, 0 severe, 0 fatal + +Diagnostics: +- Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) + +Open the run folder? + diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/benchmark-OpenStudio.json new file mode 100644 index 00000000..703275ae --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/benchmark-OpenStudio.json @@ -0,0 +1,140 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:54:29.7143415Z", + "durationSeconds": 4.9093101, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + }, + "model": { + "consumptionHeating": { + "value": 2173.9185033546732, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 4556.226212241192, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 3.2591834042717536, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.332620570657522, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 3259.1834042717537, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 5332.620570657522, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/benchmark-TAS.json new file mode 100644 index 00000000..5dbbc6a2 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/benchmark-TAS.json @@ -0,0 +1,136 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:54:08.7571499Z", + "durationSeconds": 18.9989642, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 220.62682055425643, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 5540.314465834558, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.4238231201171876, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 775, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 3.126279052734375, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3901, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1927.0106201171875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1926.94873046875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 3415.618896484375, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 3415.45556640625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/case-folder.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/case-folder.txt new file mode 100644 index 00000000..67619b66 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/case-folder.txt @@ -0,0 +1,8 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_OpenStudio_20261020-055443_c894a4a3 +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247 +507507 box-aperture.json +7870 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/comparison-summary.json new file mode 100644 index 00000000..232efd8d --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/comparison-summary.json @@ -0,0 +1,627 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Warn", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 6, + "warn": 0, + "fail": 10, + "notApplicable": 2 + }, + "coverage": { + "status": "Warn", + "requiredMetricCount": 18, + "comparableMetricCount": 16, + "unavailableRequiredMetricCount": 2, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:54:08.7571499Z", + "durationSeconds": 18.9989642, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:54:29.7143415Z", + "durationSeconds": 4.9093101, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 220.62682055425643, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 2173.9185033546732, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 1953.2916828004168, + "relativeDifference": 0.8985119174367405, + "signedDifference": 1953.2916828004168 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5540.314465834558, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 4556.226212241192, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 984.0882535933661, + "relativeDifference": 0.17762317638501215, + "signedDifference": -984.0882535933661 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.4238231201171876, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 3.2591834042717536, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 1.835360284154566, + "relativeDifference": 0.5631350115949265, + "signedDifference": 1.835360284154566 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 775, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1080, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3.126279052734375, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 5.332620570657522, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 2.2063415179231467, + "relativeDifference": 0.4137443286446125, + "signedDifference": 2.2063415179231467 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3901, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1128, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "tasName": "Office", + "openStudioName": "Office", + "matchKind": "Guid", + "metrics": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 1927.0106201171875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1926.94873046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 3259.1834042717537, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1332.2346738030037, + "relativeDifference": 0.408763333802224, + "signedDifference": 1332.2346738030037 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1241, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 3415.618896484375, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3415.45556640625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 5332.620570657522, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1917.165004251272, + "relativeDifference": 0.3595164851593561, + "signedDifference": 1917.165004251272 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 1, + "openStudioCount": 1, + "matchedByGuid": 1, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/comparison.csv b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/comparison.csv new file mode 100644 index 00000000..9cc7c3cd --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/comparison.csv @@ -0,0 +1,19 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,220.62682055425643,2173.9185033546732,1953.2916828004168,0.8985119174367405,89.85119174367405,1953.2916828004168,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,5540.314465834558,4556.226212241192,984.0882535933661,0.17762317638501215,17.762317638501216,-984.0882535933661,Fail,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.4238231201171876,3.2591834042717536,1.835360284154566,0.5631350115949265,56.31350115949265,1.835360284154566,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,775,8455,1080,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,3.126279052734375,5.332620570657522,2.2063415179231467,0.4137443286446125,41.374432864461255,2.2063415179231467,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3901,5029,1128,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,area,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,heating.designLoad,W,TasOnly,1927.0106201171875,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakLoad,W,Both,1926.94873046875,3259.1834042717537,1332.2346738030037,0.408763333802224,40.8763333802224,1332.2346738030037,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakHour,hourOfYear,Both,936,8455,1241,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +cb68bed195af496bb255a13ffa5c58e9,cooling.designLoad,W,TasOnly,3415.618896484375,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakLoad,W,Both,3415.45556640625,5332.620570657522,1917.165004251272,0.3595164851593561,35.95164851593561,1917.165004251272,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/concurrency.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/concurrency.txt new file mode 100644 index 00000000..24b15bfa --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/concurrency.txt @@ -0,0 +1,15 @@ +Energy Simulation (ribbon): REFUSED: A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +Run Simulation (ribbon): REFUSED: A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +OpenStudio Simulation (ribbon): REFUSED: A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +Comparison window Run: REFUSED: An OpenStudio simulation is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +Energy Simulation during OpenStudio (ribbon): REFUSED: An OpenStudio simulation is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/engine-comparison-run.json new file mode 100644 index 00000000..6b471123 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/engine-comparison-run.json @@ -0,0 +1,231 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "40b31247", + "status": "Compared", + "startedUtc": "2026-10-20T05:54:07.7920838Z", + "finishedUtc": "2026-10-20T05:54:35.9378513Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\box-aperture.json", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 20.825, + "log": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 6.91, + "log": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\comparison.md", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055407_40b31247\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/openstudio-run.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/openstudio-run.json new file mode 100644 index 00000000..822f6ec7 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/openstudio-run.json @@ -0,0 +1,157 @@ +{ + "schema": "sam-ui.openstudio-run/1", + "id": "c894a4a3", + "status": "Succeeded", + "startedUtc": "2026-10-20T05:54:43.7139802Z", + "finishedUtc": "2026-10-20T05:54:51.5543448Z", + "durationSeconds": 7.84, + "sourcePath": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\box-aperture.json", + "model": { + "name": "000000_SAM_AnalyticalModel", + "guid": "1988f7b93ec047d0b87bf9cb345d9eab" + }, + "snapshot": { + "path": "snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "engine": { + "route": "Native-OpenStudio", + "samOpenStudioVersion": "1.0.0.0", + "cliPath": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "exitCode": 0, + "warningCount": 10, + "severeCount": 0, + "fatalCount": 0 + }, + "outputs": { + "osm": "000000_SAM_AnalyticalModel.osm", + "osw": "000000_SAM_AnalyticalModel.osw", + "sql": "run/eplusout.sql", + "err": "run/eplusout.err", + "resultModel": "000000_SAM_AnalyticalModel_OpenStudio.json" + }, + "resultCount": 13, + "removedResultCount": 0, + "diagnostics": [ + "Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope)", + "Information SAM-OS-HVAC-001: Exhaust air flows (ExhaustAirFlowPerPerson) are not converted \u2014 exhaust needs fan/air-loop equipment, deferred to the detailed-HVAC programme", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (5.565) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2.7) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (24) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-RUN-002: Annual weather source: explicit EPW (Budapest.epw)", + "Information SAM-OS-RUN-001: Site coordinates taken from the SAM model Location (lat 47.517, lon 19.033, elevation 129 m), overriding the EPW header; the time zone stays with the EPW header", + "Information SAM-OS-RUN-002: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "Information SAM-OS-RUN-002: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ], + "resultDiagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "OpenStudio", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.OpenStudio.dll", + "sha256": "sha256:965716bd87ded52ded7ac085810ef6b93d1fb3a000f0e12e9f74be32b7958c66" + }, + { + "name": "SAM.Core.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.OpenStudio.dll", + "sha256": "sha256:f9bf4cd63a390425c8d9bb527713f34e91247e1b69991ae656f02356e4bc43d3" + } + ] + }, + "engine": { + "openStudioSdkVersion": "3.10.0", + "energyPlusVersionOfSdk": "25.1.0", + "energyPlusVersion": "25.1.0-1c11a3d85f", + "cli": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "sha256": "sha256:46a80a3d340696bcc189d9a7ae7ec4b70ea4db0fdb4565a33ecd25aa8ebf6361", + "fileVersion": "3.10.0", + "productVersion": "3.10.0.86d7e215a1" + } + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "None" + }, + "settings": { + "runOptions": { + "epwPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw", + "outputDirectory": "C:\\TasOut\\s05\\runs\\c9-concurrent-start-run2\\000000_SAM_AnalyticalModel_OpenStudio_20261020-055443_c894a4a3", + "conversionOptions": "SAM_OpenStudio defaults", + "run": true, + "cliPath": "(discovered by SAM_OpenStudio; the CLI that ran is engine.cli)", + "runDirectory": "(not set: a directory next to the OSW file)", + "ddyPath": "(none)", + "timeoutSeconds": 3600, + "useUniqueRunDirectory": false, + "extractTimeSeries": false + } + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "application.components[SAM.Analytical.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion", + "application.components[SAM.Core.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/processes.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/processes.txt new file mode 100644 index 00000000..7eb7a268 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/processes.txt @@ -0,0 +1,5 @@ +2026-10-20T05:54:08.9164425Z [before Energy Simulation (ribbon)] benchmark-tas.exe#29660(parent 41572) +2026-10-20T05:54:10.2090007Z [before Run Simulation (ribbon)] benchmark-tas.exe#29660(parent 41572) +2026-10-20T05:54:11.4079273Z [before OpenStudio Simulation (ribbon)] benchmark-tas.exe#29660(parent 41572) +2026-10-20T05:54:44.6832379Z [before Comparison window Run] openstudio.exe#29896(parent 41572) +2026-10-20T05:54:46.0718128Z [before Energy Simulation during OpenStudio (ribbon)] openstudio.exe#29896(parent 41572), energyplus.exe#22688(parent 29896) diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusal-ComparisonwindowRun.png b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusal-ComparisonwindowRun.png new file mode 100644 index 00000000..cb049c44 Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusal-ComparisonwindowRun.png differ diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusal-EnergySimulationribbon.png b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusal-EnergySimulationribbon.png new file mode 100644 index 00000000..ae6be2ba Binary files /dev/null and b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusal-EnergySimulationribbon.png differ diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusals.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusals.txt new file mode 100644 index 00000000..ba65fbad --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/refusals.txt @@ -0,0 +1,25 @@ +Title: Simulation already running +A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Simulation already running +A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Simulation already running +A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Compare Tas / OpenStudio +An OpenStudio simulation is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Simulation already running +An OpenStudio simulation is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/run-folder-OpenStudio_20261020-055443_c894a4a3.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/run-folder-OpenStudio_20261020-055443_c894a4a3.txt new file mode 100644 index 00000000..f49f3a97 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/run-folder-OpenStudio_20261020-055443_c894a4a3.txt @@ -0,0 +1,10 @@ +000000_SAM_AnalyticalModel.osm +000000_SAM_AnalyticalModel.osw +000000_SAM_AnalyticalModel_OpenStudio.json +generated_files +openstudio-run.json +out.osw +reports +run +snapshot.json +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/run-folder-TasOpenStudio_20261020-055407_40b31247.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/run-folder-TasOpenStudio_20261020-055407_40b31247.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start-run2/run-folder-TasOpenStudio_20261020-055407_40b31247.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/05-diagnostics.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/05-diagnostics.txt new file mode 100644 index 00000000..6d35b2fd --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/05-diagnostics.txt @@ -0,0 +1,28 @@ +Banner: Gate Fail: 6 match, 0 warn, 10 fail (4 contributing to numerical status, 6 informational and excluded); 2 missing on one engine, 0 unit mismatch, 0 not reported. Spaces: 1 matched, 0 only in Tas, 0 only in OpenStudio. + +Overall gate: Fail (numerical Fail, coverage Warn, provenance Pass, reconciliation Pass) +Metrics: 6 match, 0 warn, 10 fail, 2 N/A; 16 of 18 required metrics comparable. Tolerance profile 'default'. A band is a tolerance band, not an engineering verdict (SAM_UI#232/#233). + +Spaces: Tas 1, OpenStudio 1; matched by GUID 1, by name 0. + +Model total vs sum of spaces: + TAS floorArea: model 50, sum of 1 spaces 50 m2 -> Match + TAS volume: model 150, sum of 1 spaces 150 m3 -> Match + OpenStudio floorArea: model 50, sum of 1 spaces 50 m2 -> Match + OpenStudio volume: model 150, sum of 1 spaces 150 m3 -> Match + +Tas run: Success + Note: Shared gbXML was exported from the source model (no --gbxml supplied). + Result sources: SAM.Analytical.Tas + +OpenStudio run: Success + Warning: [SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) → SAM_InternalCondition_S39_OfficeOpen_30b69a1f + Note: [SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw) + Note: [SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values) + Note: [SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides + Result sources: SAM.Analytical.OpenStudio + +Run: Compared - C:\TasOut\s05\runs\c9-concurrent-start\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de +Tas producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe, exit code 0, 20.4 s, log C:\TasOut\s05\runs\c9-concurrent-start\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\benchmark-tas.log +OpenStudio producer: completed, C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe, exit code 0, 7.1 s, log C:\TasOut\s05\runs\c9-concurrent-start\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\benchmark-openstudio.log +Run record: C:\TasOut\s05\runs\c9-concurrent-start\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\engine-comparison-run.json diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/07-summary.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/07-summary.txt new file mode 100644 index 00000000..1c517d08 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/07-summary.txt @@ -0,0 +1,13 @@ +Title: OpenStudio Simulation +The OpenStudio/EnergyPlus simulation finished. The open model was not changed. + +Run folder: C:\TasOut\s05\runs\c9-concurrent-start\000000_SAM_AnalyticalModel_OpenStudio_20261020-055231_dc3f547b +Result model: 000000_SAM_AnalyticalModel_OpenStudio.json (13 results) +Weather: File +EnergyPlus: exit code 0, 10 warnings, 0 severe, 0 fatal + +Diagnostics: +- Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) + +Open the run folder? + diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/benchmark-OpenStudio.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/benchmark-OpenStudio.json new file mode 100644 index 00000000..f8693438 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/benchmark-OpenStudio.json @@ -0,0 +1,140 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:52:18.1041202Z", + "durationSeconds": 5.1856947, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + }, + "model": { + "consumptionHeating": { + "value": 2173.9185033546732, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 4556.226212241192, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 3.2591834042717536, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 5.332620570657522, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 3259.1834042717537, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 8455, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": null, + "unit": "W", + "available": false + }, + "peakLoad": { + "value": 5332.620570657522, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 5029, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/benchmark-TAS.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/benchmark-TAS.json new file mode 100644 index 00000000..d02a2c44 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/benchmark-TAS.json @@ -0,0 +1,136 @@ +{ + "schemaVersion": "1.0.0", + "provenance": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:51:57.4777035Z", + "durationSeconds": 18.4908279, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "model": { + "consumptionHeating": { + "value": 220.62682055425643, + "unit": "kWh", + "available": true + }, + "consumptionCooling": { + "value": 5540.314465834558, + "unit": "kWh", + "available": true + }, + "peakHeatingLoad": { + "value": 1.4238231201171876, + "unit": "kW", + "available": true + }, + "peakHeatingHour": { + "value": 775, + "unit": "hourOfYear", + "available": true + }, + "peakCoolingLoad": { + "value": 3.126279052734375, + "unit": "kW", + "available": true + }, + "peakCoolingHour": { + "value": 3901, + "unit": "hourOfYear", + "available": true + }, + "floorArea": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + } + }, + "spaces": [ + { + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "name": "Office", + "area": { + "value": 50, + "unit": "m2", + "available": true + }, + "volume": { + "value": 150, + "unit": "m3", + "available": true + }, + "heating": { + "designLoad": { + "value": 1927.0106201171875, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 1926.94873046875, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 936, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + }, + "cooling": { + "designLoad": { + "value": 3415.618896484375, + "unit": "W", + "available": true + }, + "peakLoad": { + "value": 3415.45556640625, + "unit": "W", + "available": true + }, + "peakHour": { + "value": 4358, + "unit": "hourOfYear", + "available": true + }, + "unmetHours": { + "value": 0, + "unit": "h", + "available": true + } + } + } + ] +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/case-folder.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/case-folder.txt new file mode 100644 index 00000000..ee9d5c22 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/case-folder.txt @@ -0,0 +1,8 @@ + +0 . +0 .. +0 000000_SAM_AnalyticalModel_OpenStudio_20261020-055231_dc3f547b +0 000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de +507507 box-aperture.json +7484 driver-console.txt +0 evidence diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/comparison-summary.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/comparison-summary.json new file mode 100644 index 00000000..47929062 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/comparison-summary.json @@ -0,0 +1,627 @@ +{ + "summarySchemaVersion": "1.0.0", + "toleranceProfile": "default", + "toleranceProfileDetail": { + "name": "default", + "warnRelative": 0.05, + "failRelative": 0.15, + "hourWarnAbsolute": 1, + "hourFailAbsolute": 24, + "defaultNearZeroFloor": 0, + "nearZeroFloors": { + "kWh": 1, + "Wh": 1000, + "kW": 0.01, + "W": 10, + "m2": 0.01, + "m3": 0.01, + "h": 0.5 + } + }, + "gate": "Fail", + "statuses": { + "overall": "Fail", + "numerical": "Fail", + "coverage": "Warn", + "provenance": "Pass", + "reconciliation": "Pass" + }, + "provenanceCompatibility": { + "compatible": true, + "mismatches": [] + }, + "counts": { + "match": 6, + "warn": 0, + "fail": 10, + "notApplicable": 2 + }, + "coverage": { + "status": "Warn", + "requiredMetricCount": 18, + "comparableMetricCount": 16, + "unavailableRequiredMetricCount": 2, + "unmatchedSpaceCount": 0, + "ambiguousSpaceCount": 0, + "duplicateSpaceIdentityCount": 0 + }, + "schema": { + "tas": "1.0.0", + "openStudio": "1.0.0", + "driftNote": null + }, + "provenance": { + "tas": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": null + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:51:57.4777035Z", + "durationSeconds": 18.4908279, + "state": "Success", + "resultSources": [ + "SAM.Analytical.Tas" + ], + "warnings": [], + "notes": [ + "Shared gbXML was exported from the source model (no --gbxml supplied)." + ] + }, + "openStudio": { + "sourceModelName": "000000_SAM_AnalyticalModel", + "sourceModelGuid": "1988f7b93ec047d0b87bf9cb345d9eab", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "runTimestampUtc": "2026-10-20T05:52:18.1041202Z", + "durationSeconds": 5.1856947, + "state": "Success", + "resultSources": [ + "SAM.Analytical.OpenStudio" + ], + "warnings": [ + "[SAM-OS-IC-001] Warning: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope) (SAM InternalCondition 9e54af09-65fb-4f64-98d7-200db3be2457) \u2192 SAM_InternalCondition_S39_OfficeOpen_30b69a1f" + ], + "notes": [ + "[SAM-OS-RUN-002] Information: Annual weather source: explicit EPW (weather.epw)", + "[SAM-OS-RUN-002] Information: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "[SAM-OS-RUN-002] Information: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ] + } + }, + "modelMetrics": [ + { + "scope": "model", + "key": "consumptionHeating", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 220.62682055425643, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 2173.9185033546732, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 1953.2916828004168, + "relativeDifference": 0.8985119174367405, + "signedDifference": 1953.2916828004168 + }, + { + "scope": "model", + "key": "consumptionCooling", + "unit": "kWh", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 5540.314465834558, + "available": true, + "unit": "kWh" + }, + "openStudio": { + "value": 4556.226212241192, + "available": true, + "unit": "kWh" + }, + "absoluteDifference": 984.0882535933661, + "relativeDifference": 0.17762317638501215, + "signedDifference": -984.0882535933661 + }, + { + "scope": "model", + "key": "peakHeatingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1.4238231201171876, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 3.2591834042717536, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 1.835360284154566, + "relativeDifference": 0.5631350115949265, + "signedDifference": 1.835360284154566 + }, + { + "scope": "model", + "key": "peakHeatingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 775, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1080, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "peakCoolingLoad", + "unit": "kW", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3.126279052734375, + "available": true, + "unit": "kW" + }, + "openStudio": { + "value": 5.332620570657522, + "available": true, + "unit": "kW" + }, + "absoluteDifference": 2.2063415179231467, + "relativeDifference": 0.4137443286446125, + "signedDifference": 2.2063415179231467 + }, + { + "scope": "model", + "key": "peakCoolingHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 3901, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1128, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "model", + "key": "floorArea", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "model", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ], + "spaces": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "guid": "cb68bed195af496bb255a13ffa5c58e9", + "tasName": "Office", + "openStudioName": "Office", + "matchKind": "Guid", + "metrics": [ + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "area", + "unit": "m2", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 50, + "available": true, + "unit": "m2" + }, + "openStudio": { + "value": 50, + "available": true, + "unit": "m2" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "volume", + "unit": "m3", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 150, + "available": true, + "unit": "m3" + }, + "openStudio": { + "value": 150, + "available": true, + "unit": "m3" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 1927.0106201171875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 1926.94873046875, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 3259.1834042717537, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1332.2346738030037, + "relativeDifference": 0.408763333802224, + "signedDifference": 1332.2346738030037 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 936, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 8455, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 1241, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "heating.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.designLoad", + "unit": "W", + "availability": "TasOnly", + "band": "N/A", + "informational": false, + "notApplicableReason": "unavailable", + "circular": false, + "tas": { + "value": 3415.618896484375, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": null, + "available": false, + "unit": "W" + }, + "absoluteDifference": null, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakLoad", + "unit": "W", + "availability": "Both", + "band": "Fail", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 3415.45556640625, + "available": true, + "unit": "W" + }, + "openStudio": { + "value": 5332.620570657522, + "available": true, + "unit": "W" + }, + "absoluteDifference": 1917.165004251272, + "relativeDifference": 0.3595164851593561, + "signedDifference": 1917.165004251272 + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.peakHour", + "unit": "hourOfYear", + "availability": "Both", + "band": "Fail", + "informational": true, + "notApplicableReason": null, + "circular": true, + "tas": { + "value": 4358, + "available": true, + "unit": "hourOfYear" + }, + "openStudio": { + "value": 5029, + "available": true, + "unit": "hourOfYear" + }, + "absoluteDifference": 671, + "relativeDifference": null, + "signedDifference": null + }, + { + "scope": "cb68bed195af496bb255a13ffa5c58e9", + "key": "cooling.unmetHours", + "unit": "h", + "availability": "Both", + "band": "Match", + "informational": false, + "notApplicableReason": null, + "circular": false, + "tas": { + "value": 0, + "available": true, + "unit": "h" + }, + "openStudio": { + "value": 0, + "available": true, + "unit": "h" + }, + "absoluteDifference": 0, + "relativeDifference": 0, + "signedDifference": 0 + } + ] + } + ], + "spaceDiagnostics": { + "tasCount": 1, + "openStudioCount": 1, + "matchedByGuid": 1, + "matchedByName": 0, + "onlyInTas": [], + "onlyInOpenStudio": [], + "duplicateTasGuids": [], + "duplicateOpenStudioGuids": [], + "duplicateTasNames": [], + "duplicateOpenStudioNames": [], + "ambiguousNameMatches": [] + }, + "reconciliation": [ + { + "engine": "TAS", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "TAS", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "floorArea", + "unit": "m2", + "modelTotal": 50, + "modelTotalAvailable": true, + "sumOfSpaces": 50, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + }, + { + "engine": "OpenStudio", + "key": "volume", + "unit": "m3", + "modelTotal": 150, + "modelTotalAvailable": true, + "sumOfSpaces": 150, + "contributingSpaces": 1, + "spacesMissingValue": 0, + "excludedSpaces": 0, + "complete": true, + "absoluteDifference": 0, + "relativeDifference": 0, + "band": "Match", + "notApplicableReason": null + } + ] +} diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/comparison.csv b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/comparison.csv new file mode 100644 index 00000000..9cc7c3cd --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/comparison.csv @@ -0,0 +1,19 @@ +scope,metric,unit,availability,tasValue,openStudioValue,absoluteDifference,relativeDifference,relativePercent,signedDifference,band,note,toleranceProfile,warnRelative,failRelative,hourWarnAbsolute,hourFailAbsolute,nearZeroFloor,informational +model,consumptionHeating,kWh,Both,220.62682055425643,2173.9185033546732,1953.2916828004168,0.8985119174367405,89.85119174367405,1953.2916828004168,Fail,,default,0.05,0.15,1,24,1,false +model,consumptionCooling,kWh,Both,5540.314465834558,4556.226212241192,984.0882535933661,0.17762317638501215,17.762317638501216,-984.0882535933661,Fail,,default,0.05,0.15,1,24,1,false +model,peakHeatingLoad,kW,Both,1.4238231201171876,3.2591834042717536,1.835360284154566,0.5631350115949265,56.31350115949265,1.835360284154566,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakHeatingHour,hourOfYear,Both,775,8455,1080,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,peakCoolingLoad,kW,Both,3.126279052734375,5.332620570657522,2.2063415179231467,0.4137443286446125,41.374432864461255,2.2063415179231467,Fail,informational (excluded from the numerical status),default,0.05,0.15,1,24,0.01,true +model,peakCoolingHour,hourOfYear,Both,3901,5029,1128,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +model,floorArea,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +model,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,area,m2,Both,50,50,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,volume,m3,Both,150,150,0,0,0,0,Match,,default,0.05,0.15,1,24,0.01,false +cb68bed195af496bb255a13ffa5c58e9,heating.designLoad,W,TasOnly,1927.0106201171875,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakLoad,W,Both,1926.94873046875,3259.1834042717537,1332.2346738030037,0.408763333802224,40.8763333802224,1332.2346738030037,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,heating.peakHour,hourOfYear,Both,936,8455,1241,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,heating.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false +cb68bed195af496bb255a13ffa5c58e9,cooling.designLoad,W,TasOnly,3415.618896484375,,,,,,N/A,unavailable (TasOnly),default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakLoad,W,Both,3415.45556640625,5332.620570657522,1917.165004251272,0.3595164851593561,35.95164851593561,1917.165004251272,Fail,,default,0.05,0.15,1,24,10,false +cb68bed195af496bb255a13ffa5c58e9,cooling.peakHour,hourOfYear,Both,4358,5029,671,,,,Fail,circular hour difference; informational (excluded from the numerical status),default,0.05,0.15,1,24,0,true +cb68bed195af496bb255a13ffa5c58e9,cooling.unmetHours,h,Both,0,0,0,0,0,0,Match,,default,0.05,0.15,1,24,0.5,false diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/concurrency.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/concurrency.txt new file mode 100644 index 00000000..058e399a --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/concurrency.txt @@ -0,0 +1,13 @@ +Energy Simulation (ribbon): REFUSED: A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +Run Simulation (ribbon): REFUSED: A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +OpenStudio Simulation (ribbon): REFUSED: A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: True, after: True +Comparison window Run: NOT REFUSED; windows now: 'SAM Analytical [000000_SAM_AnalyticalModel]' (Window), 'OpenStudio Simulation' (#32770), 'Compare Tas / OpenStudio' (Window) | first run's progress window open before: True, after: False +Energy Simulation during OpenStudio (ribbon): REFUSED: An OpenStudio simulation is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. | first run's progress window open before: False, after: False diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/engine-comparison-run.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/engine-comparison-run.json new file mode 100644 index 00000000..6f8ecaec --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/engine-comparison-run.json @@ -0,0 +1,231 @@ +{ + "schema": "sam-ui.engine-comparison-run/1", + "id": "c4d119de", + "status": "Compared", + "startedUtc": "2026-10-20T05:51:56.5947668Z", + "finishedUtc": "2026-10-20T05:52:24.4325037Z", + "sourcePath": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\box-aperture.json", + "modelName": "000000_SAM_AnalyticalModel", + "snapshot": { + "path": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "producers": [ + { + "engine": "Tas", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-TAS.json" + ], + "exitCode": 0, + "durationSeconds": 20.361, + "log": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-tas.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-TAS.json", + "error": null, + "succeeded": true + }, + { + "engine": "OpenStudio", + "executable": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\openstudio" + ], + "exitCode": 0, + "durationSeconds": 7.112, + "log": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-openstudio.log", + "benchmark": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-OpenStudio.json", + "error": null, + "succeeded": true + } + ], + "gate": "Fail", + "reports": [ + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\comparison.md", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\comparison.csv", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\comparison-summary.json" + ], + "diagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "Both", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.Benchmark", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.dll", + "sha256": "sha256:4b90a15b30c0fc9c305db2e8683c5d0d20c2f1bb810b19bc52c06147bf323c16" + }, + { + "name": "SAM.Analytical.Benchmark.Compare", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.Benchmark.Compare.dll", + "sha256": "sha256:d9db90db60c0e4cfac1833adc3da0a3b04c2f96d0fd8b23a02c6307c0db9da2e" + } + ] + }, + "producers": { + "Tas": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.exe", + "sha256": "sha256:07ab3e45b107bdd28a7d6b3622d05014b1edb95e015f86e5dc3e9c7a9ab3fbd2", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_Tas\\build\\benchmark-tas.dll", + "sha256": "sha256:2c13740afdfa6b7478f04e219097362fc6b9d4ef4c10ceed166ec14d51ada7a9", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\weather.epw", + "--tbd", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\tas\\000000_SAM_AnalyticalModel.tbd", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-TAS.json" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "e84aeff687033354e3f17891635fdf10d42ad68f", + "engine": { + "kind": "TAS", + "name": "Tas", + "version": "9.5.7.0", + "sdkVersion": "unknown" + }, + "route": "Native-TAS", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + }, + "OpenStudio": { + "executable": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.exe", + "sha256": "sha256:644059197b0638bdbfcf7d41b3a7c375b40198a7f53336d907c3e727619a5e06", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0", + "assembly": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\SAM_OpenStudio\\benchmark\\SAM.Analytical.OpenStudio.Benchmark\\bin\\x64\\Debug\\net8.0\\benchmark-openstudio.dll", + "sha256": "sha256:4f53433a8617d12c78f792e5885d0ad9b2f027f676d76ba9ec9eb0670a5740dd", + "fileVersion": "1.0.0.0", + "productVersion": "1.0.0" + } + }, + "arguments": [ + "--model", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\snapshot.json", + "--weather", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\weather.epw", + "--out", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\benchmark-OpenStudio.json", + "--work", + "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_TasOpenStudio_20261020-055156_c4d119de\\openstudio" + ], + "succeeded": true, + "reported": { + "samCommit": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "runnerCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "engine": { + "kind": "OpenStudio", + "name": "EnergyPlus", + "version": "25.1.0", + "sdkVersion": "3.10.0" + }, + "route": "Native-OpenStudio", + "weather": { + "identity": "weather", + "hash": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "designDaySource": "None", + "sourceFileHash": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05", + "canonicalModelHash": "sha256:05c1e334af00f339d36d5b97828692d3d7d27269d2168a945dfc4a35919c9500", + "canonicalizationVersion": "1.0.0", + "state": "Success" + } + } + }, + "environment": { + "SAM_COMMIT": "62b5415697d1a5af143c6b581b7d42fbd6551ca8", + "RUNNER_COMMIT": "not set" + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "chosen by each producer from the snapshot (SAM_UI passes none): see producers.\u003Cengine\u003E.reported.designDaySource" + }, + "settings": { + "producers": "each producer\u0027s arguments (producers.\u003Cengine\u003E.arguments) and its built-in workflow settings, which its executable SHA-256 pins" + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "producers.Tas.reported.engine.sdkVersion": "the producer reported none (null in its B1a document; its warnings and notes say why)" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/openstudio-run.json b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/openstudio-run.json new file mode 100644 index 00000000..51c83728 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/openstudio-run.json @@ -0,0 +1,157 @@ +{ + "schema": "sam-ui.openstudio-run/1", + "id": "dc3f547b", + "status": "Succeeded", + "startedUtc": "2026-10-20T05:52:31.8788264Z", + "finishedUtc": "2026-10-20T05:52:39.4171979Z", + "durationSeconds": 7.538, + "sourcePath": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\box-aperture.json", + "model": { + "name": "000000_SAM_AnalyticalModel", + "guid": "1988f7b93ec047d0b87bf9cb345d9eab" + }, + "snapshot": { + "path": "snapshot.json", + "sha256": "sha256:0c30db14a9b10f5e651248e70c942bf875ca93dcee9436998b9960e47c0a6d05" + }, + "weather": { + "source": "File", + "path": "weather.epw", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3" + }, + "engine": { + "route": "Native-OpenStudio", + "samOpenStudioVersion": "1.0.0.0", + "cliPath": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "exitCode": 0, + "warningCount": 10, + "severeCount": 0, + "fatalCount": 0 + }, + "outputs": { + "osm": "000000_SAM_AnalyticalModel.osm", + "osw": "000000_SAM_AnalyticalModel.osw", + "sql": "run/eplusout.sql", + "err": "run/eplusout.err", + "resultModel": "000000_SAM_AnalyticalModel_OpenStudio.json" + }, + "resultCount": 13, + "removedResultCount": 0, + "diagnostics": [ + "Warning SAM-OS-IC-001: Pollutant generation is not converted (EnergyPlus generic contaminant modelling is out of scope)", + "Information SAM-OS-HVAC-001: Exhaust air flows (ExhaustAirFlowPerPerson) are not converted \u2014 exhaust needs fan/air-loop equipment, deferred to the detailed-HVAC programme", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (5.565) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2.7) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (24) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (2) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (1) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-MAT-002: Vapour diffusion factor (9999) is not converted \u2014 EnergyPlus moisture modelling (HAMT/EMPD) needs data SAM does not carry", + "Information SAM-OS-RUN-002: Annual weather source: explicit EPW (Budapest.epw)", + "Information SAM-OS-RUN-001: Site coordinates taken from the SAM model Location (lat 47.517, lon 19.033, elevation 129 m), overriding the EPW header; the time zone stays with the EPW header", + "Information SAM-OS-RUN-002: Ground temperatures taken from the SAM model WeatherData (depth 0.5 m set, 12 monthly values)", + "Information SAM-OS-RUN-002: No design-day source supplied; sizing-period runs stay disabled unless OpenStudioConversionOptions.RunSizingPeriods overrides" + ], + "resultDiagnostics": [], + "error": null, + "provenance": { + "schema": "sam-ui.run-provenance/1", + "route": "OpenStudio", + "application": { + "entryAssembly": { + "name": "SAM Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM Analytical.dll", + "sha256": "sha256:22f51eafdabd1804b6abca0ce92516f8e3b3293533eafdf0dec495fbce9d146f" + }, + "sourceRevision": "unknown", + "sourceRevisionOf": "the \u002Bbuild metadata of SAM.Analytical.UI.WPF\u0027s InformationalVersion; SAM_Deploy installers stamp their SAM_Deploy commit, which pins every repository", + "components": [ + { + "name": "SAM.Core", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.dll", + "sha256": "sha256:166c28cee37681a5276befd3133104821a7a1d6b7e888f6b657d203a41fb3132" + }, + { + "name": "SAM.Analytical", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.dll", + "sha256": "sha256:186f03095d4ec2352fe4dfecf7144561f566c09d6a99d50e5d443d5c0a783e12" + }, + { + "name": "SAM.Analytical.UI.WPF", + "version": "1.0.0.0", + "informationalVersion": "1.0.0", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.UI.WPF.dll", + "sha256": "sha256:0d4e368af288068fde16519e92f60c25a7e0f10740680ac0c750f32f43002a15" + }, + { + "name": "SAM.Analytical.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Analytical.OpenStudio.dll", + "sha256": "sha256:965716bd87ded52ded7ac085810ef6b93d1fb3a000f0e12e9f74be32b7958c66" + }, + { + "name": "SAM.Core.OpenStudio", + "version": "1.0.0.0", + "informationalVersion": "unknown", + "path": "C:\\TasOut\\s05\\app\\SAM.Core.OpenStudio.dll", + "sha256": "sha256:f9bf4cd63a390425c8d9bb527713f34e91247e1b69991ae656f02356e4bc43d3" + } + ] + }, + "engine": { + "openStudioSdkVersion": "3.10.0", + "energyPlusVersionOfSdk": "25.1.0", + "energyPlusVersion": "25.1.0-1c11a3d85f", + "cli": { + "path": "C:\\Users\\michal\\Documents\\GitHub\\SAM-BIM\\.icon-migration\\runtime\\OpenStudio-3.10.0\u002B86d7e215a1-Windows\\bin\\openstudio.exe", + "sha256": "sha256:46a80a3d340696bcc189d9a7ae7ec4b70ea4db0fdb4565a33ecd25aa8ebf6361", + "fileVersion": "3.10.0", + "productVersion": "3.10.0.86d7e215a1" + } + }, + "weather": { + "source": "File", + "sha256": "sha256:472ffb4e2f10867600949a392ce46891fc1bd05f2fc8d8917a99bca7d26209c3", + "originalPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw" + }, + "designDays": { + "source": "None" + }, + "settings": { + "runOptions": { + "epwPath": "C:\\TasOut\\s05\\inputs\\Budapest.epw", + "outputDirectory": "C:\\TasOut\\s05\\runs\\c9-concurrent-start\\000000_SAM_AnalyticalModel_OpenStudio_20261020-055231_dc3f547b", + "conversionOptions": "SAM_OpenStudio defaults", + "run": true, + "cliPath": "(discovered by SAM_OpenStudio; the CLI that ran is engine.cli)", + "runDirectory": "(not set: a directory next to the OSW file)", + "ddyPath": "(none)", + "timeoutSeconds": 3600, + "useUniqueRunDirectory": false, + "extractTimeSeries": false + } + }, + "unknown": { + "application.sourceRevision": "this build\u0027s InformationalVersion \u00271.0.0\u0027 has no source revision after \u0027\u002B\u0027 (a local developer build); the component SHA-256 values identify the binaries", + "application.components[SAM.Analytical.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion", + "application.components[SAM.Core.OpenStudio].informationalVersion": "the assembly carries no InformationalVersion" + } + } +} \ No newline at end of file diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/processes.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/processes.txt new file mode 100644 index 00000000..7f53d890 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/processes.txt @@ -0,0 +1,5 @@ +2026-10-20T05:51:57.6958336Z [before Energy Simulation (ribbon)] benchmark-tas.exe#24388(parent 28848) +2026-10-20T05:51:59.0906431Z [before Run Simulation (ribbon)] benchmark-tas.exe#24388(parent 28848) +2026-10-20T05:52:00.1282347Z [before OpenStudio Simulation (ribbon)] benchmark-tas.exe#24388(parent 28848) +2026-10-20T05:52:32.8168386Z [before Comparison window Run] none +2026-10-20T05:52:53.4182436Z [before Energy Simulation during OpenStudio (ribbon)] none diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/refusals.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/refusals.txt new file mode 100644 index 00000000..564249ee --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/refusals.txt @@ -0,0 +1,20 @@ +Title: Simulation already running +A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Simulation already running +A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Simulation already running +A Tas + OpenStudio run is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + +Title: Simulation already running +An OpenStudio simulation is already running for this model, so nothing was started. + +Wait until it finishes, or cancel it, then start the simulation again. + diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/run-folder-OpenStudio_20261020-055231_dc3f547b.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/run-folder-OpenStudio_20261020-055231_dc3f547b.txt new file mode 100644 index 00000000..f49f3a97 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/run-folder-OpenStudio_20261020-055231_dc3f547b.txt @@ -0,0 +1,10 @@ +000000_SAM_AnalyticalModel.osm +000000_SAM_AnalyticalModel.osw +000000_SAM_AnalyticalModel_OpenStudio.json +generated_files +openstudio-run.json +out.osw +reports +run +snapshot.json +weather.epw diff --git a/documentation/evidence/s05-20261020/cases/c9-concurrent-start/run-folder-TasOpenStudio_20261020-055156_c4d119de.txt b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/run-folder-TasOpenStudio_20261020-055156_c4d119de.txt new file mode 100644 index 00000000..be3afe36 --- /dev/null +++ b/documentation/evidence/s05-20261020/cases/c9-concurrent-start/run-folder-TasOpenStudio_20261020-055156_c4d119de.txt @@ -0,0 +1,12 @@ +benchmark-OpenStudio.json +benchmark-TAS.json +benchmark-openstudio.log +benchmark-tas.log +comparison-summary.json +comparison.csv +comparison.md +engine-comparison-run.json +openstudio +snapshot.json +tas +weather.epw diff --git a/documentation/evidence/s05-20261020/producers.txt b/documentation/evidence/s05-20261020/producers.txt new file mode 100644 index 00000000..5ead6582 --- /dev/null +++ b/documentation/evidence/s05-20261020/producers.txt @@ -0,0 +1,3 @@ +tas=C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_Tas\build\benchmark-tas.exe +openstudio=C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Debug\net8.0\benchmark-openstudio.exe +samCommit=62b5415697d1a5af143c6b581b7d42fbd6551ca8 diff --git a/documentation/evidence/s05-20261020/tools/drive-s05.ps1 b/documentation/evidence/s05-20261020/tools/drive-s05.ps1 new file mode 100644 index 00000000..3667957a --- /dev/null +++ b/documentation/evidence/s05-20261020/tools/drive-s05.ps1 @@ -0,0 +1,235 @@ +param( + [Parameter(Mandatory)] [ValidateSet('OpenStudio', 'CancelOpenStudio', 'CancelBoth', 'Concurrent')] [string] $Scenario, + [Parameter(Mandatory)] [string] $ModelPath, + [Parameter(Mandatory)] [string] $EvidenceDir, + [string] $EpwPath = $null, # null/empty = answer Yes (the model's embedded weather) + [int] $TimeoutMinutes = 20 +) +# S05 licensed acceptance driver (test harness, not product code) for the cases the S01b drivers do not cover: +# OpenStudio case 2: Run Simulation > OpenStudio from the ribbon, to the closing summary. +# CancelOpenStudio case 8: Run Simulation > OpenStudio, Cancel in the progress window while EnergyPlus runs. +# CancelBoth case 8: Run Simulation > Both, Cancel in the progress window while the Tas producer runs. +# Concurrent case 9: while Run Simulation > Both runs, start Energy Simulation, Run Simulation and OpenStudio +# Simulation from the ribbon; then, with the comparison window open, while an OpenStudio Simulation +# runs, start the comparison window's Run. Each must be refused with the S02 message. +# The app under test is $env:SAM_APP_EXE; the run folder is the model's folder (each case uses its own fresh folder). +$ErrorActionPreference = 'Stop' +. (Join-Path $PSScriptRoot 's05-uia.ps1') + +$exe = if ($env:SAM_APP_EXE) { $env:SAM_APP_EXE } else { throw 'Set SAM_APP_EXE to the SAM Analytical.exe under test' } +$folder_Model = Split-Path -Parent $ModelPath +Log "Scenario $Scenario; app $exe; model $ModelPath; EPW '$EpwPath'" +Log ("SAM_BENCHMARK_TAS=" + $env:SAM_BENCHMARK_TAS + " SAM_BENCHMARK_OPENSTUDIO=" + $env:SAM_BENCHMARK_OPENSTUDIO + " SAM_COMMIT=" + $env:SAM_COMMIT) +Get-ChildItem -Force $folder_Model | ForEach-Object { Log (" before: {0}" -f $_.Name) } +$proc = Start-Process -FilePath $exe -ArgumentList "`"/Path=$ModelPath`"" -PassThru +Log "pid $($proc.Id)" +$main = Find-Window 'SAM Analytical `[*' 240 $proc.Id +if (-not $main) { throw 'Main window did not appear' } +Start-Sleep -Seconds 5 +$title_Before = $main.Current.Name +Log "Main window: $title_Before" +Shot $main '01-main.png' + +function Find-Progress([string]$title, [int]$seconds) { + $sw = [Diagnostics.Stopwatch]::StartNew() + while ($sw.Elapsed.TotalSeconds -lt $seconds) { + foreach ($w in (Windows-Of $proc.Id)) { try { if ($w.Current.Name -eq $title -and $w.Current.ClassName -ne '#32770') { return $w } } catch {} } + Start-Sleep -Milliseconds 250 + } + return $null +} +function Progress-Alive([string]$title) { + foreach ($w in (Windows-Of $proc.Id)) { try { if ($w.Current.Name -eq $title -and $w.Current.ClassName -ne '#32770') { return $true } } catch {} } + return $false +} +function Wait-EngineProcess([string]$name, [int]$seconds) { + $sw = [Diagnostics.Stopwatch]::StartNew() + while ($sw.Elapsed.TotalSeconds -lt $seconds) { + $p = @(Get-CimInstance Win32_Process -Filter ("Name='{0}'" -f $name)) + if ($p.Count -gt 0) { return $true } + Start-Sleep -Milliseconds 250 + } + return $false +} +function Start-FromRunSimulation([string]$engine) { + Invoke-El (Find-ById $main 'RibbonTab_Simulate') + Start-Sleep -Seconds 1 + Invoke-El (Find-ById $main 'RibbonButton_RunSimulation') + $dlg = Find-Window 'Run Simulation' 30 $proc.Id + if (-not $dlg) { throw 'Run Simulation dialog not found' } + Invoke-El (Find-ById $dlg ('RadioButton_' + $engine)) + Start-Sleep -Milliseconds 500 + Shot $dlg ('02-run-simulation-' + $engine.ToLowerInvariant() + '.png') + Log "Run Simulation > $engine > Run" + Invoke-El (Find-ById $dlg 'Button_Run') +} +# The folder dialog (preset: the model's folder), then the weather question and, for an explicit EPW, the open dialog. +function Answer-Setup([string]$folderTitle, [string]$weatherTitle, [string]$epwTitle, [string]$prefix) { + $folder = Find-Window $folderTitle 60 $proc.Id + if (-not $folder) { throw "Folder dialog '$folderTitle' not found" } + Shot $folder ($prefix + '-folder.png') + Log 'Folder dialog: accepting the preset folder (the model folder)' + Invoke-El (Find-ByName $folder 'Select Folder') + $msg = Find-Dialog 60 $proc.Id $weatherTitle + if (-not $msg) { Log 'No weather question (model has no embedded weather)' } + else { + Shot $msg ($prefix + '-weather-question.png') + if ([string]::IsNullOrEmpty($EpwPath)) { Log 'Weather: Yes (model weather)'; Click-DialogButton $msg 'Yes'; return } + Log "Weather: No, EPW $EpwPath"; Click-DialogButton $msg 'No' + } + if ([string]::IsNullOrEmpty($EpwPath)) { return } + $open = Find-Window $epwTitle 60 $proc.Id + if (-not $open) { throw 'EPW open dialog not found' } + Shot $open ($prefix + '-epw-dialog.png') + # The file-name box (Edit inside ComboBox 1148) exposes no Value pattern: set its text with WM_SETTEXT and press Open + # (button id 1) with BM_CLICK. Unlike drive-both.ps1's SendKeys this does not depend on keyboard focus. + Start-Sleep -Milliseconds 700 + $edit = $null + foreach ($x in $open.FindAll($TS::Descendants, (New-Object $PC($AE::ClassNameProperty, 'Edit')))) { if ($x.Current.AutomationId -eq '1148') { $edit = $x } } + if (-not $edit) { throw 'EPW file-name box not found' } + [S05W32T]::SendMessage([IntPtr]$edit.Current.NativeWindowHandle, 0x000C, [IntPtr]::Zero, $EpwPath) | Out-Null + Start-Sleep -Milliseconds 300 + $ok = $null + foreach ($x in $open.FindAll($TS::Descendants, (New-Object $PC($AE::ClassNameProperty, 'Button')))) { if ($x.Current.AutomationId -eq '1') { $ok = $x } } + if (-not $ok) { throw 'EPW Open button not found' } + [S05W32]::SendMessage([IntPtr]$ok.Current.NativeWindowHandle, 0xF5, [IntPtr]::Zero, [IntPtr]::Zero) | Out-Null + Log "EPW set: $EpwPath" +} +function Capture-Comparison([string]$prefix) { + $cmp = Find-Window 'Compare Tas / OpenStudio' ($TimeoutMinutes * 60) $proc.Id + if (-not $cmp) { Log 'Compare window did not appear before the timeout'; return $null } + Start-Sleep -Seconds 3 + $banner = (Find-ById $cmp 'TextBlock_Banner').Current.Name + Log "Banner: $banner" + Shot $cmp ($prefix + '-compare.png') + foreach ($tab in $cmp.FindAll($TS::Descendants, (New-Object $PC($AE::ControlTypeProperty, $CT::TabItem)))) { + if ($tab.Current.Name -like '*Diagnostics*') { try { Invoke-El $tab; Start-Sleep -Seconds 1 } catch {} } + } + $diag = Find-ById $cmp 'TextBox_Diagnostics' + $vp = $null + $diagText = if ($diag.TryGetCurrentPattern([System.Windows.Automation.ValuePattern]::Pattern, [ref]$vp)) { $vp.Current.Value } else { $diag.Current.Name } + Set-Content -Path (Join-Path $EvidenceDir ($prefix + '-diagnostics.txt')) -Value ("Banner: " + $banner + "`r`n`r`n" + $diagText) -Encoding UTF8 + Shot $cmp ($prefix + '-compare-diagnostics.png') + return $cmp +} +# The OpenStudio closing summary: a message box titled "OpenStudio Simulation" (the progress window has the same title +# but is not a #32770 dialog). Answers No to "Open the run folder?" (or OK). +function Capture-OpenStudioSummary([string]$prefix) { + $box = Find-Dialog ($TimeoutMinutes * 60) $proc.Id 'OpenStudio Simulation' + if (-not $box) { Log 'No OpenStudio summary before the timeout'; return $null } + Start-Sleep -Seconds 1 + $text = Capture-Dialog $box ($prefix + '-summary.txt') ($prefix + '-summary.png') + $parts = Dialog-Parts $box + if ($parts.Buttons.ContainsKey('No')) { Click-DialogButton $box 'No' } else { Click-DialogButton $box 'OK' } + Start-Sleep -Seconds 2 + return $text +} +# One concurrent start: invoke a ribbon button (or the comparison window's Run) and expect the S02 refusal box. +function Attempt-Start($root, [string]$id, [string]$label, [string]$progressTitle, [string]$refusalTitle = 'Simulation already running') { + $alive = Progress-Alive $progressTitle + Log ("Concurrent attempt: {0} (first run's progress window open: {1})" -f $label, $alive) + Engine-Processes ("before " + $label) | Out-Null + Invoke-El (Find-ById $root $id) + $box = Find-Dialog 20 $proc.Id $refusalTitle + if ($box) { + $text = Capture-Dialog $box 'refusals.txt' ('refusal-' + ($label -replace '[^A-Za-z]', '') + '.png') + Click-DialogButton $box 'OK' + Start-Sleep -Milliseconds 700 + $result = "REFUSED: $text" + } else { + $other = @(Windows-Of $proc.Id | ForEach-Object { try { "'" + $_.Current.Name + "' (" + $_.Current.ClassName + ")" } catch {} }) + $result = "NOT REFUSED; windows now: " + ($other -join ', ') + } + $aliveAfter = Progress-Alive $progressTitle + Log (" -> {0}; first run still running after the attempt: {1}" -f $result, $aliveAfter) + Add-Content -Path (Join-Path $EvidenceDir 'concurrency.txt') -Value ("{0}: {1} | first run's progress window open before: {2}, after: {3}" -f $label, $result, $alive, $aliveAfter) -Encoding UTF8 +} + +$status = 0 +switch ($Scenario) { + 'OpenStudio' { + Start-FromRunSimulation 'OpenStudio' + Answer-Setup 'Select the folder for the OpenStudio run*' 'OpenStudio Simulation' 'Select the EPW weather file for the OpenStudio run' '03' + $started = Get-Date + if (Find-Progress 'OpenStudio Simulation' 60) { Log 'Progress window up' } + $text = Capture-OpenStudioSummary '04' + Log ("Summary after {0:0} s" -f ((Get-Date) - $started).TotalSeconds) + if (-not $text) { $status = 2 } + } + 'CancelOpenStudio' { + Start-FromRunSimulation 'OpenStudio' + Answer-Setup 'Select the folder for the OpenStudio run*' 'OpenStudio Simulation' 'Select the EPW weather file for the OpenStudio run' '03' + $progress = Find-Progress 'OpenStudio Simulation' 60 + if (-not $progress) { throw 'OpenStudio progress window not found' } + $ep = Wait-EngineProcess 'energyplus.exe' 180 + if (-not $ep) { Log 'energyplus.exe never appeared; cancelling anyway' } + Engine-Processes 'running, before Cancel' | Out-Null + Shot $progress '04-progress-before-cancel.png' + Log 'Cancel' + Invoke-El (Find-ById $progress 'Button_Cancel') + $text = Capture-OpenStudioSummary '05' + Start-Sleep -Seconds 3 + Engine-Processes '3 s after the summary' | Out-Null + if (-not $text) { $status = 2 } + } + 'CancelBoth' { + Start-FromRunSimulation 'Both' + Answer-Setup 'Select the folder for the Tas + OpenStudio run*' 'Run Simulation - Tas + OpenStudio' 'Select the EPW weather file for both engines' '03' + $progress = Find-Progress 'Run Simulation - Tas + OpenStudio' 60 + if (-not $progress) { throw 'Both progress window not found' } + $tas = Wait-EngineProcess 'benchmark-tas.exe' 180 + if (-not $tas) { Log 'benchmark-tas.exe never appeared; cancelling anyway' } + Start-Sleep -Seconds 4 # let the producer reach TAS + Engine-Processes 'running, before Cancel' | Out-Null + Shot $progress '04-progress-before-cancel.png' + Log 'Cancel' + Invoke-El (Find-ById $progress 'Button_Cancel') + $cmp = Capture-Comparison '05' + Start-Sleep -Seconds 2 + Engine-Processes 'after the comparison window opened' | Out-Null + if (-not $cmp) { $status = 2 } + } + 'Concurrent' { + Start-FromRunSimulation 'Both' + Answer-Setup 'Select the folder for the Tas + OpenStudio run*' 'Run Simulation - Tas + OpenStudio' 'Select the EPW weather file for both engines' '03' + if (-not (Find-Progress 'Run Simulation - Tas + OpenStudio' 60)) { throw 'Both progress window not found' } + Log 'Both is running; starting the other entry points' + $main = Find-Window 'SAM Analytical `[*' 10 $proc.Id + Attempt-Start $main 'RibbonButton_EnergySimulation' 'Energy Simulation (ribbon)' 'Run Simulation - Tas + OpenStudio' + Attempt-Start $main 'RibbonButton_RunSimulation' 'Run Simulation (ribbon)' 'Run Simulation - Tas + OpenStudio' + Attempt-Start $main 'RibbonButton_OpenStudioSimulation' 'OpenStudio Simulation (ribbon)' 'Run Simulation - Tas + OpenStudio' + $cmp = Capture-Comparison '05' + if (-not $cmp) { $status = 2 } + else { + # Phase 2: the comparison window's Run while an OpenStudio Simulation runs for the same model. + Log 'Phase 2: OpenStudio Simulation from the ribbon, then the comparison window Run while it runs' + Invoke-El (Find-ById $main 'RibbonButton_OpenStudioSimulation') + Answer-Setup 'Select the folder for the OpenStudio run*' 'OpenStudio Simulation' 'Select the EPW weather file for the OpenStudio run' '06' + if (-not (Find-Progress 'OpenStudio Simulation' 60)) { throw 'OpenStudio progress window not found' } + Attempt-Start $cmp 'Button_Run' 'Comparison window Run' 'OpenStudio Simulation' 'Compare Tas / OpenStudio' + Attempt-Start $main 'RibbonButton_EnergySimulation' 'Energy Simulation during OpenStudio (ribbon)' 'OpenStudio Simulation' + $text = Capture-OpenStudioSummary '07' + if (-not $text) { $status = 2 } + } + } +} + +$main = Find-Window 'SAM Analytical `[*' 30 $proc.Id +Log "Main window after: $($main.Current.Name) (before: $title_Before)" +Shot $main '09-main-after.png' +Get-ChildItem -Force $folder_Model | ForEach-Object { Log (" after: {0} {1}" -f $_.Name, $(if ($_.PSIsContainer) { '' } else { $_.Length })) } + +# Close without saving: no route may write the model file. +foreach ($w in @(Windows-Of $proc.Id)) { + try { if ($w.Current.Name -like 'Compare Tas / OpenStudio*') { $wp = $null; if ($w.TryGetCurrentPattern([System.Windows.Automation.WindowPattern]::Pattern, [ref]$wp)) { $wp.Close(); Start-Sleep -Seconds 2 } } } catch {} +} +$wp = $null +if ($main -and $main.TryGetCurrentPattern([System.Windows.Automation.WindowPattern]::Pattern, [ref]$wp)) { $wp.Close() } +$save = Find-Dialog 15 $proc.Id +if ($save) { + Log ("Close prompt: '{0}' {1}" -f $save.Current.Name, ((Dialog-Parts $save).Texts -join ' | ')) + try { Click-DialogButton $save 'No' } catch { Log "$_" } +} +if (-not $proc.WaitForExit(60000)) { Log 'App did not exit within 60 s' } else { Log "App exited ($($proc.ExitCode))" } +Log "Done (driver status $status)" +exit $status diff --git a/documentation/evidence/s05-20261020/tools/run-s05-case.ps1 b/documentation/evidence/s05-20261020/tools/run-s05-case.ps1 new file mode 100644 index 00000000..bfbd6c3d --- /dev/null +++ b/documentation/evidence/s05-20261020/tools/run-s05-case.ps1 @@ -0,0 +1,40 @@ +param( + [Parameter(Mandatory)] [string] $Name, + [Parameter(Mandatory)] [ValidateSet('TasRunSimulation', 'TasEnergySimulationRefusal', 'OpenStudio', 'Both', 'CancelBoth', 'CancelOpenStudio', 'Concurrent')] [string] $Kind, + [string] $Model = 'C:\TasOut\s05\inputs\box-aperture.json', + [string] $EpwPath = '', + [int] $TimeoutMinutes = 20 +) +# One S05 licensed acceptance case (test harness): a fresh folder with a copy of the model, an isolated APPDATA/USERPROFILE, +# the freshly built app and producers, then the driver. The S01b drivers are used unchanged for Tas and Both; drive-s05.ps1 +# covers OpenStudio, cancellation and concurrent starts. +$ErrorActionPreference = 'Stop' +$S05 = 'C:\TasOut\s05' +$R = Join-Path $S05 "runs\$Name" +if (Test-Path $R) { throw "$R exists; each case uses a fresh folder" } +New-Item -ItemType Directory -Force $R | Out-Null +$modelCopy = Join-Path $R (Split-Path -Leaf $Model) +Copy-Item $Model $modelCopy +$env:APPDATA = "$S05\sandbox\AppData" +$env:USERPROFILE = "$S05\sandbox\Profile" +$env:SAM_APP_EXE = "$S05\app\SAM Analytical.exe" +$env:SAM_BENCHMARK_TAS = (Get-Content "$S05\producers.txt" | Select-String '^tas=').ToString().Substring(4) +$env:SAM_BENCHMARK_OPENSTUDIO = (Get-Content "$S05\producers.txt" | Select-String '^openstudio=').ToString().Substring(11) +$env:PATH = 'C:\Users\michal\Documents\GitHub\SAM-BIM\.icon-migration\runtime\OpenStudio-3.10.0+86d7e215a1-Windows\bin;' + $env:PATH +# Owner decision 2026-10-20: SAM_COMMIT is a temporary requirement of developer-built producers in Both runs, until S06. +# It is set only for the Both routes, to the SAM commit the producers were verified to be built from (producers.txt). +Remove-Item Env:SAM_COMMIT -ErrorAction SilentlyContinue +if ($Kind -in 'Both', 'CancelBoth', 'Concurrent') { $env:SAM_COMMIT = (Get-Content "$S05\producers.txt" | Select-String '^samCommit=').ToString().Substring(10) } +$ev = Join-Path $R 'evidence' +$tools = "$S05\tools" +Start-Transcript -Path (Join-Path $R 'driver-console.txt') | Out-Null +try { + switch ($Kind) { + 'TasRunSimulation' { & "$tools\drive-tas.ps1" -ModelPath $modelCopy -EvidenceDir $ev -Entry RunSimulationTas -OutputDirectory "$R\out" -ProjectName box -TimeoutMinutes $TimeoutMinutes } + 'TasEnergySimulationRefusal' { & "$tools\drive-tas.ps1" -ModelPath $modelCopy -EvidenceDir $ev -Entry EnergySimulation -OutputDirectory "$R\out" -ProjectName box -BlockTsd -TimeoutMinutes $TimeoutMinutes } + 'Both' { & "$tools\drive-both.ps1" -ModelPath $modelCopy -EvidenceDir $ev -EpwPath $EpwPath -TimeoutMinutes $TimeoutMinutes } + default { & "$tools\drive-s05.ps1" -Scenario $Kind -ModelPath $modelCopy -EvidenceDir $ev -EpwPath $EpwPath -TimeoutMinutes $TimeoutMinutes } + } +} finally { + Stop-Transcript | Out-Null +} diff --git a/documentation/evidence/s05-20261020/tools/s05-uia.ps1 b/documentation/evidence/s05-20261020/tools/s05-uia.ps1 new file mode 100644 index 00000000..54de65bb --- /dev/null +++ b/documentation/evidence/s05-20261020/tools/s05-uia.ps1 @@ -0,0 +1,133 @@ +# S05 licensed acceptance: UI Automation helpers shared by drive-s05.ps1. Dot-source it after setting $EvidenceDir. +# Taken from the S01b drivers (documentation/evidence/s01b-20261019/tools/drive-tas.ps1 and drive-both.ps1) unchanged in +# behaviour; only gathered in one file so the new S05 scenarios use exactly the same window/dialog handling. +Add-Type -AssemblyName UIAutomationClient, UIAutomationTypes, System.Windows.Forms, System.Drawing +$AE = [System.Windows.Automation.AutomationElement] +$TS = [System.Windows.Automation.TreeScope] +$PC = [System.Windows.Automation.PropertyCondition] +$CT = [System.Windows.Automation.ControlType] +New-Item -ItemType Directory -Force $EvidenceDir | Out-Null +$log = Join-Path $EvidenceDir 'driver.log' +function Log($m) { $l = '{0:o} {1}' -f (Get-Date).ToUniversalTime(), $m; try { Add-Content -Path $log -Value $l -Encoding UTF8 -ErrorAction Stop } catch {}; Write-Host $l } + +function Windows-Of([int]$procId) { + $result = @() + foreach ($w in $AE::RootElement.FindAll($TS::Children, [System.Windows.Automation.Condition]::TrueCondition)) { + try { + if ($w.Current.ProcessId -ne $procId) { continue } + $result += $w + foreach ($c in $w.FindAll($TS::Children, (New-Object $PC($AE::ControlTypeProperty, $CT::Window)))) { $result += $c; foreach ($g in $c.FindAll($TS::Children, (New-Object $PC($AE::ControlTypeProperty, $CT::Window)))) { $result += $g } } + } catch {} + } + return $result +} +function Find-Window([string]$titleLike, [int]$seconds, [int]$procId) { + $sw = [Diagnostics.Stopwatch]::StartNew() + while ($sw.Elapsed.TotalSeconds -lt $seconds) { + foreach ($w in (Windows-Of $procId)) { try { if ($w.Current.Name -like $titleLike) { return $w } } catch {} } + Start-Sleep -Milliseconds 300 + } + return $null +} +# A Win32 dialog (#32770): MessageBox (Windows Forms or WPF) and the common file/folder dialogs. +function Find-Dialog([int]$seconds, [int]$procId, [string]$titleLike = '*') { + $sw = [Diagnostics.Stopwatch]::StartNew() + while ($sw.Elapsed.TotalSeconds -lt $seconds) { + foreach ($w in (Windows-Of $procId)) { try { if ($w.Current.ClassName -eq '#32770' -and $w.Current.Name -like $titleLike) { return $w } } catch {} } + Start-Sleep -Milliseconds 300 + } + return $null +} +function Find-ById($root, [string]$id, [int]$seconds = 30) { + $sw = [Diagnostics.Stopwatch]::StartNew() + while ($sw.Elapsed.TotalSeconds -lt $seconds) { + $e = $root.FindFirst($TS::Descendants, (New-Object $PC($AE::AutomationIdProperty, $id))) + if ($e) { return $e } + Start-Sleep -Milliseconds 300 + } + throw "Element '$id' not found" +} +function Find-ByName($root, [string]$name, [int]$seconds = 30) { + $sw = [Diagnostics.Stopwatch]::StartNew() + while ($sw.Elapsed.TotalSeconds -lt $seconds) { + $e = $root.FindFirst($TS::Descendants, (New-Object $PC($AE::NameProperty, $name))) + if ($e) { return $e } + Start-Sleep -Milliseconds 300 + } + throw "Element named '$name' not found" +} +Add-Type -TypeDefinition @' +using System; using System.Runtime.InteropServices; +public static class S05W32 { + [DllImport("user32.dll")] public static extern IntPtr SendMessage(IntPtr h, uint m, IntPtr w, IntPtr l); + [DllImport("user32.dll")] public static extern bool SetCursorPos(int x, int y); + [DllImport("user32.dll")] public static extern void mouse_event(uint f, uint x, uint y, uint d, UIntPtr e); +} +'@ +Add-Type -TypeDefinition @' +using System; using System.Runtime.InteropServices; +public static class S05W32T { [DllImport("user32.dll", CharSet = CharSet.Unicode)] public static extern IntPtr SendMessage(IntPtr h, uint m, IntPtr w, string l); } +'@ +function Invoke-El($e) { + $p = $null + if ($e.TryGetCurrentPattern([System.Windows.Automation.InvokePattern]::Pattern, [ref]$p)) { $p.Invoke(); return } + if ($e.TryGetCurrentPattern([System.Windows.Automation.SelectionItemPattern]::Pattern, [ref]$p)) { $p.Select(); return } + # A Win32 button with no pattern (the folder dialog's "Select Folder"): BM_CLICK on its handle, which does not depend + # on focus or on what is under the mouse (the S05 first OpenStudio attempt's mouse click was lost). + if ($e.Current.ClassName -eq 'Button' -and $e.Current.NativeWindowHandle -ne 0) { + [S05W32]::SendMessage([IntPtr]$e.Current.NativeWindowHandle, 0xF5, [IntPtr]::Zero, [IntPtr]::Zero) | Out-Null; return + } + # Win32 file-dialog buttons can expose no pattern: click the centre of the element (as drive-both.ps1). + $r = $e.Current.BoundingRectangle + [S05W32]::SetCursorPos([int]($r.X + $r.Width / 2), [int]($r.Y + $r.Height / 2)) | Out-Null + [S05W32]::mouse_event(2, 0, 0, 0, [UIntPtr]::Zero); Start-Sleep -Milliseconds 80; [S05W32]::mouse_event(4, 0, 0, 0, [UIntPtr]::Zero) +} +# MessageBox Static text and Buttons are raw panes with no patterns: read them through the raw view, click with BM_CLICK. +function Dialog-Parts($dialog) { + $walker = [System.Windows.Automation.TreeWalker]::RawViewWalker + $texts = @(); $buttons = @{} + $c = $walker.GetFirstChild($dialog) + while ($c) { + if ($c.Current.ClassName -eq 'Static' -and $c.Current.Name) { $texts += $c.Current.Name } + if ($c.Current.ClassName -eq 'Button') { $buttons[($c.Current.Name -replace '&', '')] = [IntPtr]$c.Current.NativeWindowHandle } + $c = $walker.GetNextSibling($c) + } + return @{ Texts = $texts; Buttons = $buttons } +} +function Click-DialogButton($dialog, [string]$name) { + $parts = Dialog-Parts $dialog + if (-not $parts.Buttons.ContainsKey($name)) { throw "No '$name' button; buttons: $($parts.Buttons.Keys -join ', ')" } + # BM_CLICK can be ignored by an inactive dialog (here: when TAS has put Notepad in the foreground); WM_ACTIVATE first, + # as the Win32 documentation of BM_CLICK advises. + [S05W32]::SendMessage([IntPtr]$dialog.Current.NativeWindowHandle, 0x0006, [IntPtr]1, [IntPtr]::Zero) | Out-Null + [S05W32]::SendMessage($parts.Buttons[$name], 0xF5, [IntPtr]::Zero, [IntPtr]::Zero) | Out-Null +} +# Records a message box (title, text, buttons) to the log and to , takes its screenshot, and returns its text. +function Capture-Dialog($dialog, [string]$file, [string]$shot) { + $parts = Dialog-Parts $dialog + $text = ($parts.Texts -join "`r`n") + Log (" dialog '{0}': {1}" -f $dialog.Current.Name, ($text -replace "`r`n", ' | ' -replace "`n", ' | ')) + Log (" buttons: " + ($parts.Buttons.Keys -join ', ')) + Add-Content -Path (Join-Path $EvidenceDir $file) -Value ("Title: " + $dialog.Current.Name + "`r`n" + $text + "`r`n") -Encoding UTF8 + Shot $dialog $shot + return $text +} +function Shot($w, [string]$name) { + try { + $r = $w.Current.BoundingRectangle + $bmp = New-Object System.Drawing.Bitmap ([int]$r.Width), ([int]$r.Height) + $g = [System.Drawing.Graphics]::FromImage($bmp) + $g.CopyFromScreen([int]$r.X, [int]$r.Y, 0, 0, $bmp.Size) + $bmp.Save((Join-Path $EvidenceDir $name), [System.Drawing.Imaging.ImageFormat]::Png) + $g.Dispose(); $bmp.Dispose() + } catch { Log "screenshot $name failed: $_" } +} +# Engine processes (name, pid, parent) at this moment, for the cancellation and concurrency evidence. +function Engine-Processes([string]$label) { + $names = 'benchmark-tas.exe', 'benchmark-openstudio.exe', 'openstudio.exe', 'energyplus.exe', 'TBD.exe', 'TasEngine.exe', 'TSD.exe' + $ps = @(Get-CimInstance Win32_Process | Where-Object { $names -contains $_.Name }) + $line = if ($ps.Count) { ($ps | ForEach-Object { '{0}#{1}(parent {2})' -f $_.Name, $_.ProcessId, $_.ParentProcessId }) -join ', ' } else { 'none' } + Log ("processes [{0}]: {1}" -f $label, $line) + Add-Content -Path (Join-Path $EvidenceDir 'processes.txt') -Value ('{0:o} [{1}] {2}' -f (Get-Date).ToUniversalTime(), $label, $line) -Encoding UTF8 + return $ps +} diff --git a/documentation/evidence/s05-20261020/tools/summarise-both.ps1 b/documentation/evidence/s05-20261020/tools/summarise-both.ps1 new file mode 100644 index 00000000..328d75da --- /dev/null +++ b/documentation/evidence/s05-20261020/tools/summarise-both.ps1 @@ -0,0 +1,38 @@ +param([Parameter(Mandatory)] [string[]] $Cases, [string] $Out = 'C:\TasOut\s05\both-summary.txt') +# S05 evidence summary of Run Simulation > Both runs: the manifest's status, snapshot, weather, producer outcomes and what +# each producer reported in its B1a document, plus a line-ending-normalised hash of comparison.csv. +$ErrorActionPreference = 'Stop' +function NormHash([string]$path) { + if (-not (Test-Path $path)) { return 'missing' } + $text = [IO.File]::ReadAllText($path) -replace "`r`n", "`n" + $sha = [Security.Cryptography.SHA256]::Create() + return 'sha256:' + (($sha.ComputeHash([Text.Encoding]::UTF8.GetBytes($text)) | ForEach-Object { $_.ToString('x2') }) -join '').Substring(0, 16) +} +$lines = @() +foreach ($case in $Cases) { + $root = "C:\TasOut\s05\runs\$case" + $runs = @(Get-ChildItem $root -Directory | Where-Object { $_.Name -like '*_TasOpenStudio_*' }) + foreach ($run in $runs) { + $j = Get-Content (Join-Path $run.FullName 'engine-comparison-run.json') -Raw | ConvertFrom-Json + $p = $j.provenance + $lines += "== $case / $($run.Name)" + $lines += " status: $($j.status) started $($j.startedUtc) finished $($j.finishedUtc)" + $lines += " snapshot: $($j.snapshot.sha256)" + $lines += " weather: $($j.weather.source) $($j.weather.sha256)" + $lines += " environment SAM_COMMIT: $($p.environment.SAM_COMMIT) RUNNER_COMMIT: $($p.environment.RUNNER_COMMIT)" + foreach ($pr in $j.producers) { + $lines += (" producer {0}: succeeded={1} exit={2} {3:0.0}s error={4}" -f $pr.engine, $pr.succeeded, $pr.exitCode, $pr.durationSeconds, $pr.error) + $r = $p.producers.($pr.engine).reported + if ($r) { + $lines += (" reported: state={0} samCommit={1} runnerCommit={2} engine={3} {4} route={5} weather={6} designDays={7}" -f $r.state, $r.samCommit, $r.runnerCommit, $r.engine.name, $r.engine.version, $r.route, $r.weather.hash, $r.designDaySource) + $lines += (" sourceFileHash={0} canonicalModelHash={1} canonicalization={2}" -f $r.sourceFileHash, $r.canonicalModelHash, $r.canonicalizationVersion) + } + $lines += (" executable sha256: {0}" -f $p.producers.($pr.engine).executable.sha256) + } + $lines += " comparison.csv (LF-normalised): $(NormHash (Join-Path $run.FullName 'comparison.csv'))" + $lines += " comparison.md (LF-normalised): $(NormHash (Join-Path $run.FullName 'comparison.md'))" + if ($p.unknown) { foreach ($k in $p.unknown.PSObject.Properties) { $lines += " unknown: $($k.Name): $($k.Value)" } } + } +} +$lines | Set-Content -Path $Out -Encoding UTF8 +$lines