From 098f613c83a3d11149cc7ea4eb9589dfe8e86766 Mon Sep 17 00:00:00 2001 From: larissakuehn <31502447+larissakuehn@users.noreply.github.com> Date: Mon, 8 Aug 2022 12:57:43 +0200 Subject: [PATCH] Merge for release 1.3.0 (#1318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add discretization of volumes * Change lambda for more realistic thermal wave propagation * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/i1227_SimplePipeVolume/plots/ [skip ci] * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/i1227_SimplePipeVolume/plots/ [skip ci] * [skip ci] * #784 plot script for unit test has been added * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue784_AhuWithHydraulicModules/plots/ [skip ci] * push latest changes * chore: wall names * refactor airload, fix names and extend walls * Fixes wrong connection of fluid ports * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue1123_partialHOMModels/plots/ [skip ci] * Adds moisture balance to partial room model. * temp cmt * Adds documentation for PartialRoom.mo * Make four room partial model more dynamic and extend all relevant examples from it. * add documentation #1123 * Revert changes * Reverts change on port connection to airLoad (happened accidently) * Make parameters optional * Revert "Issue784 ahu with hydraulic modules" * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/revert-1039-issue784_AhuWithHydraulicModules/plots/ [skip ci] * #784 changed parameter in DynamicHX.mo Gc1 and Gc2 to type thermal coductance + use admix as predefined circuit in RegisterModule.mo * "ci_regression_test" * Add fitting description [skip ci] #1215 * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue1215_internalGainsOuput/plots/ [skip ci] * chore: trigger change * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/development_update/plots/ [skip ci] * chore: trigger pipeline again * Fix Regression errors * feat: move NCDataReader to obsolete * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/development_update/plots/ [skip ci] * feat: remove submodule for NetCFD reader as NCdatareader is now obsolete * Fix conditional case * Remove failing examples due to obsolete models #1179 * rm unwanted mos and ref-results * Delete results to trigger update * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue1123_partialHOMModels/plots/ [skip ci] * trigger pipeline * Fix energyDynamics of old model * Fix init problem in OFDHeatLoad.mo * fix initial conditions, this time for real * rm reference result to update * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue1123_partialHOMModels/plots/ [skip ci] * Changed documentation slightly to trigger CI * Deletes parameter ´ratioConvectiveHeat´, updates ´ThermalZone´ For #1248 * [skip-ci] Add conversion script and increase AixLib-version For #1248 * Delete reference results to trigger update * Correct typo in package.mo * Create github-action-slack.yml * #784 add modular AHU model and controller models after revert * #784 plot scripts for modular ahu added * #784 plot script setup modified of GenericAHU.mos * #784 genericAHU: typo in annotations fixed * #784 start values for m_flow nominal in generic ahu to avoid warnings * Update Templates, Script: IBPSA Merge with Image Dymola 2020 with MSL 4.0 * Update IBPSA Merge template * Update validatetest script * Update WhiteList_CheckModel.txt and HTML_IBPSA_WhiteList.txt * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * fix errors manually * Fix errors manually * fix errors manually * fix errors manually * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ [skip ci] * ci_regression_test * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ [skip ci] * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * Fix script annotation * Trigger IBPSA Merge * Update WhiteList_CheckModel.txt and HTML_IBPSA_WhiteList.txt * fix errors manually * ci_check * ci_check * ci_check * Update Slack Scripts * #784 plot script GenericAHU.mos modified * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue784_AhuWithHydraulicModules/plots/ [skip ci] * fix errors manually * fix errors manually * fix errors manually * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue784_AhuWithHydraulicModules/plots/ [skip ci] * #784 temperatures in AHUbus renamed * #784 bug fix in plot script due to renaming of air temperatures * #784 reference results updated * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/issue784_AhuWithHydraulicModules/plots/ [skip ci] * Add Issue Tracker * Fix in github action script * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_regression_test * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_regression_test * lower case for simlate and plot script command * lower case for simlate and plot script command * Update WhiteList_CheckModel.txt and HTML_IBPSA_WhiteList.txt * fix errors manually * ci_update_ref * ci_update_ref * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_update_ref * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_update_ref * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_regression_test * ci_regression_test * ci_regression_test * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_regression_test * ci_simulate * ci_regression_test * remove .github/README.md * remove ci_slack_branch_inactive_list.txt * ci_regression_test * ci_regression_test * ci_update_ref * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * #1122 default for natural infiltration equals default for mechanical ventilation for conversion [scip ci] * ci_regression_test * #1122 Correct connections [scip ci] * #1122 Change affected examples [scip ci] * ci_regression_test * ci_regression_test * ci_regression_test * #1122 add conversion script * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * Update google_charts.py script * #1122 fix errors in multizone and apply equivalent changes as in thermal zone * fix errors * #1122 remove unnecessary comments [scip ci] * #1122 change parameter description [scip ci] * #1122 changed version specifier to 1.0.4 [scip ci] * #1122 correction of annotations * Change Templates * fix errors manually * fix errors manually remove AixLib.Systems.HydraulicModules.Example.Pump from whitelist as it should be fixed * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * ci_regression_test * Update templates: Change to xvfb-run -n 77 * Update templates: Change to xvfb-run -n 77 * Update templates: Change to xvfb-run -n 77 * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * ci_update_ref * ci_update_ref * Automatic push of CI with updated or new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/IBPSA_Merge/plots/ * temp deactivate issue tracker workflow This currently leads to problems with doubled branches because automatic creation of branches might create doubled branches (case sensitivity) * Delete issue-tracker.yml Disabling does not work and results in error emails to people who push content. * Add script, move to obsolete #978 * Fix gitlab templates * Change command convertClass to ConvertModifiers * Add new development stage in gitlab tempaltes * Change in template check_model * Actually delete files * Test Changes in regression templates * Test Changes in regression templates * Automatic push of CI with new regression reference files.Please pull the new files before push again. Plottet Results https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib/Issue1313_fix_RegressionTest_Check_References/plots/ * Added a medium choice in PartialRoom (HOM) (#1303) * Added a medium choice in PartialRoom (HOM) Furthermore a model for air with co2 was added to the selection in PartialRoom * Reverted not necessary changes * Minor Changes - changed the name of the new medium parameter - deleted unused medium parameters (Water and Glycol/Water mixture) Co-authored-by: fabian.wuellhorst * Update version to 1.3.0 for new release Co-authored-by: FelixStege Co-authored-by: ebc-aixlib-bot Co-authored-by: FelixStege <38731996+FelixStege@users.noreply.github.com> Co-authored-by: Alexander Kümpel Co-authored-by: A. Kuempel Co-authored-by: fabian.wuellhorst Co-authored-by: Martin Kremer Co-authored-by: David Jansen Co-authored-by: David Co-authored-by: FWuellhorst Co-authored-by: SvenHinrichs <40233057+SvenHinrichs@users.noreply.github.com> Co-authored-by: SvenHinrichs Co-authored-by: Martin Kremer <48821826+KremerMartin@users.noreply.github.com> Co-authored-by: tobinfiedler <73986053+tobinfiedler@users.noreply.github.com> --- .gitconfig | 1 + .github/issue-branch.yml | 10 + .github/workflows/github-action-slack.yml | 21 + .gitlab-ci.yml | 97 +- .gitmodules | 4 - AixLib/.copiedFiles.txt | 187 +- .../AirCurtain/AirCurtainSimplified.mo | 13 +- AixLib/Airflow/AirHandlingUnit/AHU.mo | 345 +- .../AirHandlingUnit/BaseClasses/PartialAHU.mo | 15 +- .../Airflow/AirHandlingUnit/Examples/AHU.mo | 11 +- .../BaseClasses/SetPower.mo | 10 +- .../DataBase/FVUBaseRecord.mo | 32 +- .../Examples/FacadeVentilationUnit.mo | 18 +- .../FacadeVentilationUnit.mo | 11 +- AixLib/Airflow/Multizone/BaseClasses/Door.mo | 53 +- .../Multizone/BaseClasses/DoorDiscretized.mo | 163 +- .../Multizone/BaseClasses/ErrorControl.mo | 71 +- .../BaseClasses/Examples/Interpolate.mo | 60 + .../BaseClasses/Examples/PowerLaw.mo | 39 +- .../BaseClasses/Examples/PowerLawFixedM.mo | 53 +- .../Examples/WindPressureLowRise.mo | 35 +- .../Examples/WindPressureProfile.mo | 92 + .../BaseClasses/Examples/package.order | 2 + .../BaseClasses/PartialOneWayFlowElement.mo | 125 + .../BaseClasses/PowerLawResistance.mo | 214 - .../PowerLawResistanceParameters.mo | 33 + .../BaseClasses/TwoWayFlowElement.mo | 163 +- .../BaseClasses/TwoWayFlowElementBuoyancy.mo | 69 +- .../Multizone/BaseClasses/ZonalFlow.mo | 68 +- .../Multizone/BaseClasses/interpolate.mo | 82 + .../Multizone/BaseClasses/package.order | 5 +- .../Airflow/Multizone/BaseClasses/powerLaw.mo | 141 +- .../Multizone/BaseClasses/powerLawFixedM.mo | 146 +- .../BaseClasses/windPressureLowRise.mo | 237 +- .../BaseClasses/windPressureProfile.mo | 90 + .../Airflow/Multizone/Coefficient_V_flow.mo | 98 + .../Airflow/Multizone/Coefficient_m_flow.mo | 97 + .../Airflow/Multizone/DoorDiscretizedOpen.mo | 109 +- .../Multizone/DoorDiscretizedOperable.mo | 156 +- AixLib/Airflow/Multizone/DoorOpen.mo | 313 +- AixLib/Airflow/Multizone/DoorOperable.mo | 248 +- .../Multizone/EffectiveAirLeakageArea.mo | 228 +- .../Multizone/Examples/CO2TransportStep.mo | 58 +- .../Examples/ChimneyShaftNoVolume.mo | 146 +- .../Examples/ChimneyShaftWithVolume.mo | 72 +- .../Airflow/Multizone/Examples/ClosedDoors.mo | 76 +- .../Multizone/Examples/NaturalVentilation.mo | 63 +- .../Examples/OneEffectiveAirLeakageArea.mo | 55 +- .../Airflow/Multizone/Examples/OneOpenDoor.mo | 75 +- AixLib/Airflow/Multizone/Examples/OneRoom.mo | 54 +- AixLib/Airflow/Multizone/Examples/Orifice.mo | 51 +- AixLib/Airflow/Multizone/Examples/PowerLaw.mo | 126 + .../Multizone/Examples/PressurizationData.mo | 106 + .../Multizone/Examples/ReverseBuoyancy.mo | 81 +- .../Examples/ReverseBuoyancy3Zones.mo | 85 +- .../Airflow/Multizone/Examples/TrickleVent.mo | 132 + .../Airflow/Multizone/Examples/ZonalFlow.mo | 77 +- .../Airflow/Multizone/Examples/package.order | 3 + AixLib/Airflow/Multizone/MediumColumn.mo | 237 +- .../Airflow/Multizone/MediumColumnDynamic.mo | 148 +- AixLib/Airflow/Multizone/Orifice.mo | 197 +- AixLib/Airflow/Multizone/Point_m_flow.mo | 85 + AixLib/Airflow/Multizone/Points_m_flow.mo | 88 + AixLib/Airflow/Multizone/Table_V_flow.mo | 102 + AixLib/Airflow/Multizone/Table_m_flow.mo | 116 + .../Multizone/Types/densitySelection.mo | 45 +- AixLib/Airflow/Multizone/Types/package.mo | 2 +- AixLib/Airflow/Multizone/UsersGuide.mo | 77 +- .../Multizone/Validation/DoorOpenClosed.mo | 49 +- .../Multizone/Validation/OneWayFlow.mo | 238 + .../Validation/OpenDoorBuoyancyDynamic.mo | 29 +- .../OpenDoorBuoyancyPressureDynamic.mo | 29 +- .../Multizone/Validation/OpenDoorPressure.mo | 23 +- .../Validation/OpenDoorTemperature.mo | 23 +- .../Multizone/Validation/ThreeRoomsContam.mo | 99 +- .../ThreeRoomsContamDiscretizedDoor.mo | 99 +- .../Multizone/Validation/package.order | 1 + AixLib/Airflow/Multizone/ZonalFlow_ACS.mo | 89 +- AixLib/Airflow/Multizone/ZonalFlow_m_flow.mo | 49 +- AixLib/Airflow/Multizone/package.order | 6 + .../GroundTemperatureKusuda.mo | 15 +- .../BaseClasses/PartialInternalGain.mo | 5 +- .../InternalGains/CO2/CO2Balance.mo | 32 +- .../InternalGains/BaseClasses/Humans.mo | 5 +- .../Examples/InternalGains/Lights.mo | 5 +- .../Examples/InternalGains/Machines.mo | 5 +- .../Humans/BaseClasses/PartialHuman.mo | 14 +- .../TemperatureDependentHeatOutputSIA2024.mo | 6 +- ...mperatureDependentMoistureOutputSIA2024.mo | 4 +- .../HumanTotalHeatTemperatureDependent.mo | 10 +- .../Lights/LightsAreaSpecific.mo | 6 +- .../Lights/LightsRelToMaxValue.mo | 6 +- .../Machines/MachinesAreaSpecific.mo | 21 +- .../Machines/MachinesDIN18599.mo | 120 +- .../Machines/MachinesRelToMaxValue.mo | 7 +- .../InternalGains/Moisture/MoistureGains.mo | 9 +- .../SkyTemperature/BlackBody.mo | 121 +- .../SkyTemperature/Examples/BlackBody.mo | 55 +- .../BaseClasses/AltitudeAngle.mo | 41 +- .../SolarGeometry/BaseClasses/Declination.mo | 89 +- .../BaseClasses/Examples/AltitudeAngle.mo | 55 +- .../BaseClasses/Examples/Declination.mo | 33 +- .../BaseClasses/Examples/IncidenceAngle.mo | 57 +- .../BaseClasses/Examples/SolarAzimuth.mo | 50 +- .../BaseClasses/Examples/SolarHourAngle.mo | 31 +- .../BaseClasses/Examples/WallSolarAzimuth.mo | 34 +- .../BaseClasses/Examples/ZenithAngle.mo | 39 +- .../BaseClasses/IncidenceAngle.mo | 67 +- .../SolarGeometry/BaseClasses/SolarAzimuth.mo | 109 +- .../BaseClasses/SolarHourAngle.mo | 31 +- .../BaseClasses/WallSolarAzimuth.mo | 57 +- .../SolarGeometry/BaseClasses/ZenithAngle.mo | 66 +- .../BaseClasses/solarAzimuthNoEvent.mo | 33 +- .../BaseClasses/solarAzimuthWithEvent.mo | 33 +- .../SolarGeometry/Examples/IncidenceAngle.mo | 58 +- .../SolarGeometry/Examples/ZenithAngle.mo | 39 +- .../SolarGeometry/IncidenceAngle.mo | 67 +- .../SolarGeometry/ZenithAngle.mo | 62 +- .../BaseClasses/BrighteningCoefficient.mo | 61 +- .../BaseClasses/DiffuseIsotropic.mo | 49 +- .../BaseClasses/DiffusePerez.mo | 101 +- .../BaseClasses/DirectTiltedSurface.mo | 53 +- .../Examples/BrighteningCoefficient.mo | 77 +- .../BaseClasses/Examples/DiffuseIsotropic.mo | 25 +- .../BaseClasses/Examples/RelativeAirMass.mo | 48 +- .../BaseClasses/Examples/SkyBrightness.mo | 63 +- .../BaseClasses/Examples/SkyClearness.mo | 30 +- .../BaseClasses/PartialSolarIrradiation.mo | 37 +- .../BaseClasses/RelativeAirMass.mo | 69 +- .../BaseClasses/SkyBrightness.mo | 71 +- .../BaseClasses/SkyClearness.mo | 118 +- .../SolarIrradiation/DiffuseIsotropic.mo | 63 +- .../SolarIrradiation/DiffusePerez.mo | 134 +- .../SolarIrradiation/DirectTiltedSurface.mo | 63 +- .../Examples/DiffuseIsotropic.mo | 31 +- .../SolarIrradiation/Examples/DiffusePerez.mo | 54 +- .../Examples/DirectTiltedSurface.mo | 41 +- AixLib/BoundaryConditions/Types.mo | 78 +- .../Validation/BESTEST/WD100.mo | 122 +- .../Validation/BESTEST/WD200.mo | 83 +- .../Validation/BESTEST/WD300.mo | 83 +- .../Validation/BESTEST/WD400.mo | 83 +- .../Validation/BESTEST/WD500.mo | 83 +- .../Validation/BESTEST/WD600.mo | 75 +- .../Validation/BESTEST/package.mo | 4 +- .../IsotropicAndPerezDiffuseRadiation.mo | 72 +- .../BoundaryConditions/Validation/package.mo | 4 +- .../CheckBlackBodySkyTemperature.mo | 57 +- .../BaseClasses/CheckCeilingHeight.mo | 3 +- .../BaseClasses/CheckDewPointTemperature.mo | 67 +- .../BaseClasses/CheckDryBulbTemperature.mo | 67 +- .../BaseClasses/CheckIRRadiation.mo | 2 +- .../WeatherData/BaseClasses/CheckPressure.mo | 49 +- .../WeatherData/BaseClasses/CheckRadiation.mo | 2 +- .../BaseClasses/CheckTemperature.mo | 4 +- .../WeatherData/BaseClasses/CheckWindSpeed.mo | 2 +- .../BaseClasses/ConvertRadiation.mo | 4 +- .../WeatherData/BaseClasses/ConvertTime.mo | 136 +- .../WeatherData/BaseClasses/EquationOfTime.mo | 31 +- .../Examples/CheckBlackBodySkyTemperature.mo | 25 +- .../BaseClasses/Examples/CheckPressure.mo | 35 +- .../BaseClasses/Examples/CheckTemperature.mo | 35 +- .../BaseClasses/Examples/ConvertTime.mo | 25 +- .../Examples/ConvertTimeNegativeStart.mo | 25 +- .../Examples/ConvertTimePositiveStart.mo | 25 +- .../BaseClasses/Examples/EquationOfTime.mo | 25 +- .../BaseClasses/Examples/GetAbsolutePath.mo | 51 +- .../BaseClasses/Examples/GetAltitudeTMY3.mo | 32 + .../BaseClasses/Examples/GetHeaderElement.mo | 53 +- .../BaseClasses/Examples/GetTimeSpanTMY3.mo | 41 +- .../Examples/GetTimeSpanTMY3LongHeader.mo | 37 +- .../Examples/GetTimeSpanTMY3_NonzeroStart.mo | 27 +- .../BaseClasses/Examples/LimitMin.mo | 35 +- .../BaseClasses/Examples/LocalCivilTime.mo | 25 +- .../BaseClasses/Examples/SolarTime.mo | 25 +- .../BaseClasses/Examples/package.order | 1 + .../BaseClasses/LimiterCeilingHeight.mo | 31 +- .../LimiterHorizontalInfraredIrradiation.mo | 31 +- .../BaseClasses/LimiterOpaqueSkyCover.mo | 31 +- .../BaseClasses/LimiterRelativeHumidity.mo | 31 +- .../BaseClasses/LimiterTotalSkyCover.mo | 31 +- .../BaseClasses/LimiterWindDirection.mo | 31 +- .../BaseClasses/LimiterWindSpeed.mo | 31 +- .../WeatherData/BaseClasses/LocalCivilTime.mo | 59 +- .../WeatherData/BaseClasses/PartialLimiter.mo | 51 +- .../BaseClasses/PartialLimiterMin.mo | 49 +- .../WeatherData/BaseClasses/SolarTime.mo | 55 +- .../WeatherData/BaseClasses/SourceSelector.mo | 37 +- .../BaseClasses/SourceSelectorRadiation.mo | 81 +- .../BaseClasses/getAbsolutePath.mo | 92 +- .../BaseClasses/getAltitudeLocationTMY3.mo | 38 + .../BaseClasses/getHeaderElementTMY3.mo | 89 +- .../BaseClasses/getLastHeaderElementTMY3.mo | 92 + .../BaseClasses/getLatitudeTMY3.mo | 39 +- .../BaseClasses/getLongitudeTMY3.mo | 39 +- .../BaseClasses/getTimeSpanTMY3.mo | 42 +- .../BaseClasses/getTimeZoneTMY3.mo | 39 +- .../WeatherData/BaseClasses/package.order | 2 + AixLib/BoundaryConditions/WeatherData/Bus.mo | 23 +- .../WeatherData/Examples/ReaderTMY3.mo | 29 +- .../Old/WeatherTRY/BaseClasses/Sun.mo | 13 +- .../BaseClasses/PartialRadOnTiltedSurf.mo | 13 +- .../RadOnTiltedSurf_Liu.mo | 2 +- .../RadOnTiltedSurf_Perez.mo | 6 +- .../WeatherData/Old/WeatherTRY/Weather.mo | 13 +- .../WeatherData/ReaderTMY3.mo | 1988 +- .../Validation/DecemberToJanuary.mo | 28 +- .../Validation/OverAYear_usingOneYearData.mo | 30 +- .../Validation/ReaderTMY3HDirNor.mo | 35 +- .../Validation/ThreeYears_usingTwoYearData.mo | 24 +- ...hreeYears_usingTwoYearDataNegativeStart.mo | 26 +- ...hreeYears_usingTwoYearDataPositiveStart.mo | 26 +- AixLib/Controls/AirHandling/FVUController.mo | 8 +- AixLib/Controls/Continuous/Examples/LimPID.mo | 71 +- .../Continuous/Examples/LimPIDWithReset.mo | 131 +- .../Continuous/Examples/NumberOfRequests.mo | 53 +- .../Controls/Continuous/Examples/OffTimer.mo | 41 +- .../Continuous/Examples/PIDHysteresis.mo | 93 - .../Continuous/Examples/PIDHysteresisTimer.mo | 95 - .../Continuous/Examples/SignalRanker.mo | 53 +- .../Continuous/Examples/package.order | 2 - AixLib/Controls/Continuous/LimPID.mo | 353 +- .../Controls/Continuous/NumberOfRequests.mo | 91 +- AixLib/Controls/Continuous/OffTimer.mo | 59 +- AixLib/Controls/Continuous/PIDHysteresis.mo | 215 - .../Controls/Continuous/PIDHysteresisTimer.mo | 253 - AixLib/Controls/Continuous/PITemp.mo | 3 +- AixLib/Controls/Continuous/SignalRanker.mo | 66 +- .../Continuous/Validation/LimPIDReset.mo | 65 +- .../Validation/OffTimerNonZeroStart.mo | 25 +- AixLib/Controls/Continuous/package.order | 2 - AixLib/Controls/Discrete/BooleanDelay.mo | 69 +- .../Discrete/Examples/BooleanDelay.mo | 37 +- AixLib/Controls/Discrete/Examples/package.mo | 1 + AixLib/Controls/Discrete/package.mo | 1 + .../HVACAgentBasedControl/Agents/Broker.mo | 36 +- .../Agents/ColdProducerAgent.mo | 18 +- .../Agents/ConsumerAgent.mo | 10 +- .../Agents/HeatProducerAgent.mo | 18 +- .../Agents/IntermediateAgent.mo | 30 +- .../Agents/MessageNotification.mo | 2 +- .../HVACAgentBasedControl/Agents/RoomAgent.mo | 10 +- .../BaseClasses/Internal/sendTo.mo | 2 +- .../BaseClasses/Internal/sendToUDP.mo | 2 +- .../BaseClasses/PartialAgent.mo | 10 +- .../BaseClasses/PartialCostFunction.mo | 2 +- .../BaseClasses/SendSample.mo | 2 +- .../BaseClasses/UDPSend_adapted.mo | 2 +- .../Economic/Constant_Economic_Cost.mo | 2 +- .../Economic/PV_Variable_Economic_Cost.mo | 11 +- .../Exergy/Boiler_ExergyDestruction.mo | 2 +- .../Boiler_ExergyDestruction_Simplified.mo | 2 +- .../HeatPump_ExergyDestruction_Cooling.mo | 11 +- .../HeatPump_ExergyDestruction_Heating.mo | 11 +- .../Exergy/HeatingRod_ExergyDestruction.mo | 2 +- ...HeatingRod_ExergyDestruction_Simplified.mo | 2 +- .../MixingValveAndHEX_ExergyDestruction.mo | 2 +- ...alveAndHEX_ExergyDestruction_Simplified.mo | 2 +- ...ler_PrimaryExergyDestruction_Simplified.mo | 2 +- ...atPump_PrimaryExergyDestruction_Cooling.mo | 11 +- ...atPump_PrimaryExergyDestruction_Heating.mo | 11 +- ...Rod_PrimaryExergyDestruction_Simplified.mo | 2 +- .../Examples/BookTrading/BookBuyerAgent.mo | 25 +- .../Examples/BookTrading/BookSellerAgent.mo | 18 +- .../Examples/BookTrading/BookTrading.mo | 2 +- .../BookTrading/NetworkCommunication1.mo | 2 +- .../BookTrading/NetworkCommunication2.mo | 2 +- .../BuildingHeatingSystems/BuildingHeating.mo | 15 +- .../BuildingHeating_usePoke.mo | 2 +- .../BuildingHeatingSystems/BuildingWithPV.mo | 6 +- .../SimpleCommunication.mo | 2 +- .../HVACAgentBasedControl/UsersGuide/Award.mo | 2 +- .../UsersGuide/Gettingstarted.mo | 2 +- .../UsersGuide/Overview.mo | 2 +- .../UsersGuide/Requirements.mo | 2 +- AixLib/Controls/HeatPump/AntiLegionella.mo | 6 +- .../BaseClasses/InverterControlledHP.mo | 4 +- .../Controls/HeatPump/BaseClasses/OnOffHP.mo | 2 +- .../HeatPump/BaseClasses/PartialTSetToNSet.mo | 12 +- .../Controls/HeatPump/BaseClasses/package.mo | 2 +- .../HeatPump/Examples/HeatPumpController.mo | 2 +- AixLib/Controls/HeatPump/HPControl.mo | 10 +- .../BaseClasses/PartialModularController.mo | 21 +- .../HeatPump/SafetyControls/AntiFreeze.mo | 8 +- .../SafetyControls/BaseClasses/BoundaryMap.mo | 10 +- .../BaseClasses/BoundaryMapIcon.mo | 2 +- .../BaseClasses/PartialSafetyControl.mo | 2 +- .../BaseClasses/RunPerHouBoundary.mo | 4 +- .../SafetyControls/BaseClasses/TimeControl.mo | 4 +- .../SafetyControls/BaseClasses/package.mo | 2 +- .../HeatPump/SafetyControls/DefrostControl.mo | 28 +- .../HeatPump/SafetyControls/OnOffControl.mo | 20 +- .../SafetyControls/OperationalEnvelope.mo | 18 +- .../HeatPump/SafetyControls/SafetyControl.mo | 32 +- .../HeatPump/SafetyControls/package.mo | 2 +- .../Controls/Interfaces/BoilerControlBus.mo | 6 +- AixLib/Controls/Interfaces/CHPControlBus.mo | 117 +- AixLib/Controls/Interfaces/FVUControlBus.mo | 20 +- .../Interfaces/ModularSensorControlBus.mo | 80 +- .../VapourCompressionMachineControlBus.mo | 23 +- .../SetPoints/Examples/OccupancySchedule.mo | 35 +- .../Examples/SupplyReturnTemperatureReset.mo | 51 +- AixLib/Controls/SetPoints/Examples/Table.mo | 27 +- AixLib/Controls/SetPoints/Examples/package.mo | 1 + .../Functions/HeatingCurveFunction.mo | 6 +- .../SetPoints/Functions/PartialBaseFct.mo | 10 +- .../Controls/SetPoints/Functions/package.mo | 2 +- AixLib/Controls/SetPoints/HeatingCurve.mo | 22 +- .../Controls/SetPoints/OccupancySchedule.mo | 151 +- .../SetPoints/SupplyReturnTemperatureReset.mo | 133 +- AixLib/Controls/SetPoints/Table.mo | 124 +- .../OccupancyScheduleNegativeStartTime.mo | 25 +- .../OccupancySchedulePositiveStartTime.mo | 26 +- AixLib/Controls/SetPoints/package.mo | 1 + .../VentilationController/BaseClasses/DEMA.mo | 4 +- .../BaseClasses/OptimalTempDeCarliHumidity.mo | 12 +- AixLib/Controls/package.mo | 1 + .../ActiveWallBaseDataDefinition.mo | 19 +- .../JocoKlimaBodenTOP2000_Parkett.mo | 8 +- .../UponorComfortPanelHL_Cooling.mo | 10 +- .../UponorComfortPanelHL_Heating.mo | 10 +- ...HeatingCurvesDayNightBaseDataDefinition.mo | 4 +- .../HeatingCurves_Vitotronic_Day23_Night10.mo | 2 +- .../HeatingCurves_Vitotronic_Day25_Night10.mo | 2 +- .../BoilerTwoPointBaseDataDefinition.mo | 2 +- .../General/Boiler_Vitocrossal200_311kW.mo | 2 +- .../Boiler/WorkLoad/Buderus_GB202_40_30.mo | 2 +- .../Boiler/WorkLoad/Buderus_GB202_75_60.mo | 2 +- .../CHPDataSimple/CHPBaseDataDefinition.mo | 2 +- .../CHP/CHPDataSimple/CHP_Cleanergy_C9G.mo | 7 +- .../CHP/CHPDataSimple/CHP_XRGI_9kWel.mo | 12 +- .../CHP/CHPDataSimple/CHP_mini_ECO_POWER_3.mo | 2 +- .../CHP_mini_ECO_POWER_3_LiquidGas.mo | 2 +- .../CHP/CHPDataSimple/CHP_mini_ECO_POWER_5.mo | 2 +- .../CHP_mini_ECO_POWER_5_LiquidGas.mo | 2 +- .../CHPEngDataBaseRecord.mo | 69 +- .../CHP_Vitoblock200_EM5_13.mo | 2 +- .../CHPCombustionMixtureGasNasa.mo | 58 +- .../CHPCoolantPropyleneGlycolWater.mo | 101 +- .../CombustionEngineFuelDataBaseRecord.mo | 22 +- .../LiquidFuel_Diesel.mo | 2 +- .../ModularCHPEngineMedia/LiquidFuel_LPG.mo | 2 +- .../LiquidFuel_Petrol.mo | 2 +- .../NaturalGasMixture_GeneralType.mo | 2 +- .../NaturalGasMixture_TypeAachen.mo | 2 +- .../NaturalGasMixture_TypeH.mo | 2 +- .../NaturalGasMixture_TypeL.mo | 2 +- .../Chiller/ChillerBaseDataDefinition.mo | 2 +- .../Chiller/EN14511/Vitocal200AWO201.mo | 2 +- AixLib/DataBase/Chiller/EN14511/package.mo | 2 +- .../Chiller/PerformanceData/LookUpTable2D.mo | 2 +- AixLib/DataBase/Chiller/package.mo | 2 +- .../HeatPump/EN14511/Vitocal200AWO201.mo | 2 +- .../Characteristics/CarnotFunction.mo | 6 +- .../Functions/Characteristics/ConstantCoP.mo | 2 +- .../Characteristics/ConstantQualityGrade.mo | 2 +- .../Characteristics/PolynomalApproach.mo | 6 +- .../IcingFactor/BasicIcingApproach.mo | 2 +- .../Functions/IcingFactor/PartialBaseFct.mo | 14 +- .../Functions/IcingFactor/WetterAfjei1996.mo | 2 +- .../HeatPump/Functions/IcingFactor/package.mo | 2 +- .../HeatPump/HeatPumpBaseDataDefinition.mo | 6 +- .../BaseClasses/PartialPerformanceData.mo | 2 +- .../PerformanceData/BaseClasses/package.mo | 2 +- .../HeatPump/PerformanceData/IcingBlock.mo | 2 +- .../HeatPump/PerformanceData/LookUpTable2D.mo | 2 +- .../HeatPump/PerformanceData/LookUpTableND.mo | 2 +- .../PerformanceData/PolynomalApproach.mo | 2 +- .../HeatPump/PerformanceData/VCLibMap.mo | 20 +- .../HeatPump/PerformanceData/calcCOP.mo | 7 +- .../HeatPump/PerformanceData/package.mo | 2 +- .../HeatPump/PerformanceData/package.order | 4 +- ...bleDewStatePropertiesBaseDataDefinition.mo | 314 +- ...mholtzEquationOfStateBaseDateDefinition.mo | 2 +- .../R134a/BDSP_IIR_P1_395_T233_370.mo | 137 +- .../R134a/EoS_IIR_P1_395_T233_370.mo | 139 +- .../R134a/TSP_IIR_P1_395_T233_370.mo | 137 +- .../R290/BDSP_IIR_P05_30_T263_343.mo | 148 +- .../R290/EoS_IIR_P05_30_T263_343.mo | 148 +- .../R290/TSP_IIR_P05_30_T263_343.mo | 148 +- .../R410a/BDSP_IIR_P1_48_T233_340.mo | 137 +- .../R410a/EoS_IIR_P1_48_T233_340.mo | 137 +- .../R410a/TSP_IIR_P1_48_T233_340.mo | 137 +- ...ynamicStatePropertiesBaseDataDefinition.mo | 316 +- .../Pipes/InsulationBaseDataDefinition.mo | 2 +- .../DataBase/Pipes/PipeBaseDataDefinition.mo | 2 +- .../Examples/testMaxMinHeightTable.mo | 4 +- .../Examples/testPumpSpeedCalculation.mo | 4 +- .../PumpPolynomialBased/PumpBaseRecord.mo | 15 +- .../Pumps/PumpPolynomialBased/Pump_DN100.mo | 2 +- .../PumpPolynomialBased/Pump_DN100_H1_17.mo | 2 +- .../Pumps/PumpPolynomialBased/Pump_DN200.mo | 2 +- .../PumpPolynomialBased/Pump_DN25_H1_4_V3.mo | 2 +- .../PumpPolynomialBased/Pump_DN25_H1_6_V4.mo | 2 +- .../PumpPolynomialBased/Pump_DN25_H1_6_V8.mo | 2 +- .../PumpPolynomialBased/Pump_DN25_H1_8_V5.mo | 2 +- .../PumpPolynomialBased/Pump_DN25_H1_8_V9.mo | 2 +- .../Pump_DN30_H1_12_V13.mo | 2 +- .../Pumps/PumpPolynomialBased/Pump_DN32.mo | 2 +- .../Pumps/PumpPolynomialBased/Pump_DN40.mo | 2 +- .../PumpPolynomialBased/Pump_DN40_H10.mo | 2 +- .../Pump_DN40_H1_12_V24.mo | 2 +- .../Pump_DN40_H1_16_V29.mo | 2 +- .../PumpPolynomialBased/Pump_DN40_H1_45.mo | 2 +- .../PumpPolynomialBased/Pump_DN40_H1_8_V17.mo | 2 +- .../Pumps/PumpPolynomialBased/Pump_DN50.mo | 2 +- .../PumpPolynomialBased/Pump_DN50_H10.mo | 2 +- .../PumpPolynomialBased/Pump_DN50_H1_38.mo | 2 +- .../PumpPolynomialBased/Pump_DN50_H1_9_V29.mo | 2 +- .../Pumps/PumpPolynomialBased/Pump_DN65.mo | 2 +- .../PumpPolynomialBased/Pump_DN65_H15.mo | 2 +- .../Pump_DN65_H1_12_V48.mo | 2 +- .../Pump_DN65_H1_16_V26.mo | 2 +- .../PumpPolynomialBased/Pump_DN65_H1_17.mo | 2 +- .../Radiators/RadiatorBaseDataDefinition.mo | 25 +- .../Radiator_Bathroom.mo | 2 +- .../Radiator_Bedroom.mo | 2 +- .../Radiator_Children.mo | 2 +- .../Radiator_Kitchen.mo | 2 +- .../Radiator_Livingroom.mo | 2 +- .../SolarElectric/SchuecoSPV170SME1.mo | 2 +- AixLib/DataBase/SolarElectric/package.mo | 77 +- AixLib/DataBase/SolarElectric/package.order | 4 +- .../SolarThermalBaseDataDefinition.mo | 3 +- .../BufferStorageBaseDataDefinition.mo | 10 +- .../DataBase/ThermalZones/ZoneBaseRecord.mo | 129 +- .../DataBase/ThermalZones/ZoneRecordDummy.mo | 1 + .../Walls/Collections/BaseDataMultiWalls.mo | 2 +- .../Ceiling/CEattic_EnEV2009_SML_loHalf.mo | 2 +- .../Ceiling/CEcellar_EnEV2009_SML_loHalf.mo | 2 +- .../Ceiling/CEpartition_EnEV2009_L_loHalf.mo | 2 +- .../Ceiling/CEpartition_EnEV2009_SM_loHalf.mo | 2 +- .../Ceiling/ROsaddleAttic_EnEV2009_SML.mo | 2 +- .../Ceiling/ROsaddleRoom_EnEV2009_SML.mo | 2 +- .../Floor/FLcellar_EnEV2009_SML_upHalf.mo | 2 +- .../EnEV2009/Floor/FLground_EnEV2009_SML.mo | 2 +- .../Floor/FLground_EnEV2009_SML_loHalf.mo | 2 +- .../Floor/FLground_EnEV2009_SML_upHalf.mo | 2 +- .../Floor/FLpartition_EnEV2009_L_upHalf.mo | 2 +- .../Floor/FLpartition_EnEV2009_SM_upHalf.mo | 2 +- .../EnEV2009/IW/IWload_EnEV2009_L_half.mo | 2 +- .../EnEV2009/IW/IWload_EnEV2009_M_half.mo | 2 +- .../EnEV2009/IW/IWload_EnEV2009_S_half.mo | 2 +- .../IW/IWneighbour_EnEV2009_L_half.mo | 2 +- .../IW/IWneighbour_EnEV2009_M_half.mo | 2 +- .../IW/IWneighbour_EnEV2009_S_half.mo | 2 +- .../EnEV2009/IW/IWsimple_EnEV2009_L_half.mo | 2 +- .../EnEV2009/IW/IWsimple_EnEV2009_M_half.mo | 2 +- .../EnEV2009/IW/IWsimple_EnEV2009_S_half.mo | 2 +- .../Walls/EnEV2009/OW/OW_EnEV2009_L.mo | 2 +- .../Walls/EnEV2009/OW/OW_EnEV2009_M.mo | 2 +- .../Walls/EnEV2009/OW/OW_EnEV2009_M_MFD.mo | 2 +- .../Walls/EnEV2009/OW/OW_EnEV2009_S.mo | 2 +- .../Walls/EnEV2009/OW/OW_EnEV2009_S_MFD.mo | 2 +- .../Ceiling/CEattic_WSchV1984_SML_loHalf.mo | 2 +- .../Ceiling/CEcellar_WSchV1984_SML_loHalf.mo | 2 +- .../Ceiling/CEpartition_WSchV1984_L_loHalf.mo | 2 +- .../CEpartition_WSchV1984_SM_loHalf.mo | 2 +- .../Ceiling/ROsaddleAttic_WSchV1984_SML.mo | 2 +- .../Ceiling/ROsaddleRoom_WSchV1984_SML.mo | 2 +- .../Floor/FLcellar_WSchV1984_SML_upHalf.mo | 2 +- .../WSchV1984/Floor/FLground_WSchV1984_SML.mo | 2 +- .../Floor/FLground_WSchV1984_SML_loHalf.mo | 2 +- .../Floor/FLground_WSchV1984_SML_upHalf.mo | 2 +- .../Floor/FLpartition_WSchV1984_L_upHalf.mo | 2 +- .../Floor/FLpartition_WSchV1984_SM_upHalf.mo | 2 +- .../WSchV1984/IW/IWload_WSchV1984_L_half.mo | 2 +- .../WSchV1984/IW/IWload_WSchV1984_M_half.mo | 2 +- .../WSchV1984/IW/IWload_WSchV1984_S_half.mo | 2 +- .../IW/IWneighbour_WSchV1984_L_half.mo | 2 +- .../IW/IWneighbour_WSchV1984_M_half.mo | 2 +- .../IW/IWneighbour_WSchV1984_S_half.mo | 2 +- .../WSchV1984/IW/IWsimple_WSchV1984_L_half.mo | 2 +- .../WSchV1984/IW/IWsimple_WSchV1984_M_half.mo | 2 +- .../WSchV1984/IW/IWsimple_WSchV1984_S_half.mo | 2 +- .../Walls/WSchV1984/OW/OW_WSchV1984_L.mo | 2 +- .../Walls/WSchV1984/OW/OW_WSchV1984_M.mo | 2 +- .../Walls/WSchV1984/OW/OW_WSchV1984_M_MFD.mo | 2 +- .../Walls/WSchV1984/OW/OW_WSchV1984_S.mo | 2 +- .../Walls/WSchV1984/OW/OW_WSchV1984_S_MFD.mo | 2 +- .../Ceiling/CEattic_WSchV1995_SML_loHalf.mo | 2 +- .../Ceiling/CEcellar_WSchV1995_SML_loHalf.mo | 2 +- .../Ceiling/CEpartition_WSchV1995_L_loHalf.mo | 2 +- .../CEpartition_WSchV1995_SM_loHalf.mo | 2 +- .../Ceiling/ROsaddleAttic_WSchV1995_SML.mo | 2 +- .../Ceiling/ROsaddleRoom_WSchV1995_SML.mo | 2 +- .../Floor/FLcellar_WSchV1995_SML_upHalf.mo | 2 +- .../WSchV1995/Floor/FLground_WSchV1995_SML.mo | 2 +- .../Floor/FLground_WSchV1995_SML_loHalf.mo | 2 +- .../Floor/FLground_WSchV1995_SML_upHalf.mo | 2 +- .../Floor/FLpartition_WSchV1995_L_upHalf.mo | 2 +- .../Floor/FLpartition_WSchV1995_SM_upHalf.mo | 2 +- .../WSchV1995/IW/IWload_WSchV1995_L_half.mo | 2 +- .../WSchV1995/IW/IWload_WSchV1995_M_half.mo | 2 +- .../WSchV1995/IW/IWload_WSchV1995_S_half.mo | 2 +- .../IW/IWneighbour_WSchV1995_L_half.mo | 2 +- .../IW/IWneighbour_WSchV1995_M_half.mo | 2 +- .../IW/IWneighbour_WSchV1995_S_half.mo | 2 +- .../WSchV1995/IW/IWsimple_WSchV1995_L_half.mo | 2 +- .../WSchV1995/IW/IWsimple_WSchV1995_M_half.mo | 2 +- .../WSchV1995/IW/IWsimple_WSchV1995_S_half.mo | 2 +- .../Walls/WSchV1995/OW/OW_WSchV1995_L.mo | 2 +- .../Walls/WSchV1995/OW/OW_WSchV1995_M.mo | 2 +- .../Walls/WSchV1995/OW/OW_WSchV1995_M_MFD.mo | 2 +- .../Walls/WSchV1995/OW/OW_WSchV1995_S.mo | 2 +- .../Walls/WSchV1995/OW/OW_WSchV1995_S_MFD.mo | 2 +- .../DataBase/Walls/WallBaseDataDefinition.mo | 22 +- .../SurfaceOrientationBaseDataDefinition.mo | 4 +- .../SurfaceOrientationData_NE_SE_SW_NW_Hor.mo | 5 +- .../SurfaceOrientationData_N_E_S_W_Hor.mo | 5 +- ...aceOrientationData_N_E_S_W_RoofN_Roof_S.mo | 5 +- .../Simple/OWBaseDataDefinition_Simple.mo | 2 +- AixLib/DataBase/WindowsDoors/package.mo | 2 +- .../Electrical/Machines/InductionMachine.mo | 50 +- AixLib/Electrical/Machines/PVInverterRMS.mo | 4 +- AixLib/Electrical/Machines/package.order | 1 - .../BaseClasses/CellTemperatureOpenRack.mo | 4 +- .../IVCharacteristics5pAnalytical.mo | 36 +- .../BaseClasses/PVRadiationHorizontal.mo | 16 +- .../BaseClasses/PartialCellTemperature.mo | 4 +- .../PVSystem/BaseClasses/package.mo | 48 +- .../PVSystem/BaseClasses/package.order | 10 +- .../PVSystem/Examples/ExamplePVSystem.mo | 4 +- AixLib/Electrical/PVSystem/PVSystem.mo | 27 +- .../PVSystem/Validation/ValidationPVSystem.mo | 7 +- .../Actuators/BaseClasses/ActuatorSignal.mo | 179 +- .../EqualPercentageDerivativeCheck.mo | 27 +- .../BaseClasses/PartialDamperExponential.mo | 331 +- .../BaseClasses/PartialThreeWayValve.mo | 220 +- .../BaseClasses/PartialTwoWayValve.mo | 390 +- .../BaseClasses/PartialTwoWayValveKv.mo | 69 +- .../Actuators/BaseClasses/ValveParameters.mo | 199 +- .../BaseClasses/der_equalPercentage.mo | 49 +- .../Actuators/BaseClasses/equalPercentage.mo | 59 +- .../BaseClasses/exponentialDamper.mo | 93 +- .../Actuators/Dampers/Examples/Damper.mo | 35 +- .../Actuators/Dampers/Examples/MixingBox.mo | 27 +- .../Dampers/Examples/VAVBoxExponential.mo | 41 +- .../Actuators/Dampers/Examples/package.mo | 1 + AixLib/Fluid/Actuators/Dampers/Exponential.mo | 184 +- AixLib/Fluid/Actuators/Dampers/MixingBox.mo | 190 +- .../Actuators/Dampers/PressureIndependent.mo | 238 +- .../Actuators/Dampers/VAVBoxExponential.mo | 4 +- .../Dampers/Validation/PressureIndependent.mo | 109 +- .../Actuators/Motors/Examples/IdealMotor.mo | 29 +- .../Actuators/Motors/Examples/package.mo | 1 + AixLib/Fluid/Actuators/Motors/IdealMotor.mo | 97 +- AixLib/Fluid/Actuators/Motors/package.mo | 1 + .../Actuators/Valves/Data/EqualPercentage.mo | 19 + AixLib/Fluid/Actuators/Valves/Data/Generic.mo | 45 +- .../Actuators/Valves/Data/GenericThreeWay.mo | 26 + AixLib/Fluid/Actuators/Valves/Data/Linear.mo | 51 +- .../Valves/Data/LinearEqualPercentage.mo | 24 + .../Actuators/Valves/Data/LinearLinear.mo | 23 + .../Fluid/Actuators/Valves/Data/package.order | 4 + .../Examples/MixingValveBackwardDirection.mo | 3 +- .../Examples/MixingValveForwardDirection.mo | 3 +- .../Valves/Examples/ThreeWayValves.mo | 49 +- .../TwoWayValvePressureIndependent.mo | 21 +- .../Valves/Examples/TwoWayValveTable.mo | 91 +- .../Actuators/Valves/Examples/TwoWayValves.mo | 69 +- .../Valves/Examples/TwoWayValvesMotor.mo | 61 +- .../Valves/Examples/TwoWayValvesTable.mo | 55 +- .../BaseClasses/PartialExpansionValve.mo | 276 +- .../BaseClasses/PartialFlowCoefficient.mo | 215 +- .../PartialModularExpansionVavles.mo | 61 +- .../Examples/BaseModelStaticHeatPumps.mo | 95 +- .../Examples/ExpansionValveMassFlowRate.mo | 15 +- .../ExpansionValvePressureDifference.mo | 19 +- .../ModularExpansionValvesMassFlowRate.mo | 17 +- ...odularExpansionValvesPressureDifference.mo | 17 +- .../Examples/StaticHeatPumpBoundaries.mo | 97 +- .../ExpansionValves/Examples/package.order | 2 +- .../ModularExpansionValvesSensors.mo | 38 +- .../ExpansionValves/UsersGuide/Approaches.mo | 1043 +- .../ExpansionValves/UsersGuide/References.mo | 2 +- .../PolynomialFlowCoefficient.mo | 182 +- .../FlowCoefficient/PowerFlowCoefficient.mo | 244 +- .../Buck_R22R407CR410A_EEV_15_22.mo | 120 +- .../Buck_R22R407CR410A_EEV_16_18.mo | 112 +- .../Poly_R22R407CR410A_EEV_15_22.mo | 116 +- .../Poly_R22_EEV_16.mo | 116 +- .../Poly_R407c_EEV_18.mo | 116 +- .../Poly_R410a_EEV_18.mo | 116 +- .../Power_R134a_EEV_15.mo | 117 +- .../Utilities/FlowCoefficient/package.mo | 289 +- .../Utilities/ModularSensors.mo | 35 +- .../Valves/ThreeWayEqualPercentageLinear.mo | 134 +- .../Fluid/Actuators/Valves/ThreeWayLinear.mo | 112 +- .../Fluid/Actuators/Valves/ThreeWayTable.mo | 216 +- .../Fluid/Actuators/Valves/TwoWayButterfly.mo | 72 +- .../Actuators/Valves/TwoWayEqualPercentage.mo | 146 +- AixLib/Fluid/Actuators/Valves/TwoWayLinear.mo | 114 +- .../Actuators/Valves/TwoWayPolynomial.mo | 94 +- .../Valves/TwoWayPressureIndependent.mo | 267 +- .../Actuators/Valves/TwoWayQuickOpening.mo | 124 +- AixLib/Fluid/Actuators/Valves/TwoWayTable.mo | 254 +- .../ThreeWayValveParameterization.mo | 40 +- .../Validation/TwoWayValveParameterization.mo | 72 +- .../Actuators/Valves/Validation/package.mo | 1 - AixLib/Fluid/Actuators/Valves/package.mo | 1 + AixLib/Fluid/Actuators/package.mo | 2 +- AixLib/Fluid/BaseClasses/ActuatorFilter.mo | 110 + .../BasicFlowFunction_dp_DerivativeCheck.mo | 59 +- .../BasicFlowFunction_dp_DerivativeCheck2.mo | 77 +- ...asicFlowFunction_m_flow_DerivativeCheck.mo | 59 +- ...sicFlowFunction_m_flow_DerivativeCheck2.mo | 63 +- .../Validation/InverseFlowFunctions.mo | 74 +- .../InvertingBasicFlowFunction_dp.mo | 68 +- .../InvertingBasicFlowFunction_m_flow.mo | 68 +- .../FlowModels/basicFlowFunction_dp.mo | 195 +- .../FlowModels/basicFlowFunction_dp_der.mo | 89 +- .../FlowModels/basicFlowFunction_dp_der2.mo | 75 +- .../FlowModels/basicFlowFunction_m_flow.mo | 165 +- .../basicFlowFunction_m_flow_der.mo | 63 +- .../basicFlowFunction_m_flow_der2.mo | 73 +- AixLib/Fluid/BaseClasses/IndexMassFraction.mo | 65 +- .../BaseClasses/MassFlowRateMultiplier.mo | 57 +- AixLib/Fluid/BaseClasses/PartialInnerCycle.mo | 2 +- AixLib/Fluid/BaseClasses/PartialResistance.mo | 307 +- ...rtialReversibleVapourCompressionMachine.mo | 195 +- .../BaseClasses/PartialThreeWayResistance.mo | 212 +- .../BaseClasses/Validation/ActuatorFilter.mo | 66 + .../Validation/MassFlowRateMultiplier.mo | 27 +- .../BaseClasses/Validation/package.order | 1 + AixLib/Fluid/BaseClasses/package.mo | 1 + AixLib/Fluid/BaseClasses/package.order | 1 + .../BaseClasses/CondensingBoilerEfficiency.mo | 17 +- .../Controllers/ControllerOnOffModularCHP.mo | 2 +- .../Controllers/DelayedOnOffController.mo | 9 +- .../Controllers/ExternalControlNightDayHC.mo | 18 +- .../Controllers/InternalControl.mo | 8 +- .../BaseClasses/Controllers/PIController.mo | 3 +- .../BaseClasses/PartialHeatGenerator.mo | 27 +- AixLib/Fluid/BoilerCHP/Boiler.mo | 26 +- AixLib/Fluid/BoilerCHP/BoilerNoControl.mo | 14 +- AixLib/Fluid/BoilerCHP/CHP.mo | 24 +- AixLib/Fluid/BoilerCHP/CHPNoControl.mo | 229 + AixLib/Fluid/BoilerCHP/Data.mo | 9 +- .../Examples/BoilerNoControlSystem.mo | 2 +- .../Fluid/BoilerCHP/Examples/BoilerSystem.mo | 5 +- .../BoilerCHP/Examples/CHPSystemNoControl.mo | 67 + .../BoilerCHP/Examples/ModularCHPSystem.mo | 72 +- AixLib/Fluid/BoilerCHP/Examples/package.order | 1 + .../Fluid/BoilerCHP/HeatGeneratorNoControl.mo | 2 +- .../GasolineEngineChp_EngineHousing.mo | 87 +- ...eEngineChp_EngineHousing_CylToInnerWall.mo | 15 +- ...lineEngineChp_EngineHousing_EngineBlock.mo | 51 +- .../GasolineEngineChp_EngineModel.mo | 123 +- .../BaseClasses/CHP_ElectricMachine.mo | 58 +- .../BaseClasses/ExhaustHeatExchanger.mo | 87 +- .../BaseClasses/GasolineEngineChp.mo | 15 +- .../BaseClasses/ModularCHP_PowerUnit.mo | 64 +- .../ModularCHP/BaseClasses/SubmodelCooling.mo | 2 +- .../ModularCHP/ModularCHPIntegrated.mo | 81 +- AixLib/Fluid/BoilerCHP/package.order | 1 + AixLib/Fluid/Chillers/BaseClasses/Carnot.mo | 272 +- .../Chillers/BaseClasses/PartialCarnot_T.mo | 29 +- .../Chillers/BaseClasses/PartialCarnot_y.mo | 161 +- AixLib/Fluid/Chillers/Carnot_TEva.mo | 232 +- AixLib/Fluid/Chillers/Carnot_y.mo | 309 +- AixLib/Fluid/Chillers/Examples/Carnot_TEva.mo | 56 +- AixLib/Fluid/Chillers/Examples/Carnot_y.mo | 79 +- AixLib/Fluid/Chillers/Examples/Chiller.mo | 5 +- AixLib/Fluid/Chillers/Examples/package.mo | 1 + .../Chillers/Validation/CarnotVerifyCOP.mo | 62 +- .../Validation/CarnotVerifyEtaCarnot.mo | 68 +- .../Chillers/Validation/Carnot_TEva_2ndLaw.mo | 81 +- .../Validation/Carnot_TEva_HighTemperature.mo | 39 +- .../Validation/Carnot_TEva_LimitedCapacity.mo | 29 +- .../Chillers/Validation/Carnot_TEva_etaPL.mo | 29 +- .../Validation/Carnot_TEva_reverseFlow.mo | 66 +- .../Chillers/Validation/Carnot_y_etaPL.mo | 29 +- AixLib/Fluid/Chillers/package.mo | 1 + AixLib/Fluid/Delays/DelayFirstOrder.mo | 89 +- AixLib/Fluid/Delays/Examples/Delay.mo | 3 +- AixLib/Fluid/Delays/Examples/package.mo | 1 + AixLib/Fluid/Delays/package.mo | 1 + .../DHCSubstationHeatPumpChiller.mo | 42 +- .../DHCSubstationHeatPumpDirectCooling.mo | 30 +- .../Examples/OpenLoopHeatPumpCarnot.mo | 12 +- .../Demands/Examples/OpenLoopVarTSupplyDp.mo | 12 +- .../Examples/OpenLoopVarTSupplyDpBypass.mo | 12 +- ...opVarTSupplyDpFixedTempDifferenceBypass.mo | 12 +- .../Demands/OpenLoop/HeatPumpCarnot.mo | 27 +- .../Demands/OpenLoop/VarTSupplyDp.mo | 20 +- .../Demands/OpenLoop/VarTSupplyDpBypass.mo | 22 +- .../VarTSupplyDpFixedTempDifferenceBypass.mo | 17 +- .../Pipes/BaseClassesStatic/StaticCore.mo | 24 +- .../BaseClassesStatic/StaticTransportDelay.mo | 24 +- .../DistrictHeatingCooling/Pipes/DHCPipe.mo | 90 +- .../Pipes/PlugFlowPipeEmbedded.mo | 78 +- .../Pipes/PlugFlowPipeZeta.mo | 49 +- .../Pipes/StaticPipe.mo | 49 +- .../DHCSupplyHeaterCoolerStorage.mo | 8 +- .../Examples/DHCSupplyHeaterCoolerStorage.mo | 32 +- .../Supplies/OpenLoop/SourceIdeal.mo | 6 +- AixLib/Fluid/Examples/FlowSystem/Basic.mo | 125 +- .../Fluid/Examples/FlowSystem/Simplified1.mo | 40 +- .../Fluid/Examples/FlowSystem/Simplified2.mo | 36 +- .../Fluid/Examples/FlowSystem/Simplified3.mo | 30 +- .../Fluid/Examples/FlowSystem/Simplified4.mo | 50 +- .../Fluid/Examples/FlowSystem/Simplified5.mo | 42 +- .../Fluid/Examples/FlowSystem/Simplified6.mo | 36 +- .../BaseClasses/GeothermalHeatPumpBase.mo | 108 +- .../Components/BaseClasses/BoilerBase.mo | 2 +- .../Control/PumpControlBus.mo | 10 +- .../Control/geothermalFieldController.mo | 8 +- .../GeothermalHeatPump/GeothermalHeatPump.mo | 23 +- .../Performance/BaseClasses/Example1.mo | 67 +- .../Fluid/Examples/Performance/Example1v1.mo | 184 +- .../Fluid/Examples/Performance/Example1v2.mo | 108 +- AixLib/Fluid/Examples/Performance/Example2.mo | 140 +- AixLib/Fluid/Examples/Performance/Example3.mo | 128 +- AixLib/Fluid/Examples/Performance/Example4.mo | 115 +- AixLib/Fluid/Examples/Performance/Example5.mo | 114 +- AixLib/Fluid/Examples/Performance/Example6.mo | 144 +- AixLib/Fluid/Examples/Performance/Example7.mo | 52 +- AixLib/Fluid/Examples/Performance/Example8.mo | 54 +- .../Performance/PressureDrop/ParallelDp.mo | 38 +- .../PressureDrop/ParallelDpOptimised.mo | 33 +- .../Performance/PressureDrop/ParallelFlow.mo | 38 +- .../PressureDrop/ParallelFlowOptimised.mo | 32 +- .../Performance/PressureDrop/SeriesDp.mo | 38 +- .../PressureDrop/SeriesDpOptimised.mo | 32 +- .../Performance/PressureDrop/SeriesFlow.mo | 38 +- .../PressureDrop/SeriesFlowOptimised.mo | 32 +- .../PressureDrop/SeriesParallelDp.mo | 38 +- .../PressureDrop/SeriesParallelDpOptimised.mo | 32 +- .../PressureDrop/SeriesParallelFlow.mo | 38 +- .../SeriesParallelFlowOptimised.mo | 32 +- .../Examples/ResistanceVolumeFlowReversal.mo | 166 +- AixLib/Fluid/Examples/SimpleHouse.mo | 131 +- AixLib/Fluid/Examples/package.order | 2 - .../Examples/ThermalZoneHVACNoExhaust.mo | 105 +- .../Examples/ThermalZoneHVACWithExhaust.mo | 49 +- AixLib/Fluid/FMI/Adaptors/HVAC.mo | 245 +- AixLib/Fluid/FMI/Adaptors/Inlet.mo | 111 +- AixLib/Fluid/FMI/Adaptors/Outlet.mo | 99 +- AixLib/Fluid/FMI/Adaptors/ThermalZone.mo | 233 +- AixLib/Fluid/FMI/BaseClasses/X_w_toX.mo | 61 +- AixLib/Fluid/FMI/BaseClasses/hOut_toT.mo | 37 +- AixLib/Fluid/FMI/Conversion/AirToOutlet.mo | 85 +- AixLib/Fluid/FMI/Conversion/InletToAir.mo | 147 +- .../FMI/Conversion/Validation/AirToOutlet.mo | 41 +- .../Validation/AirToOutletFlowReversal.mo | 41 +- .../Conversion/Validation/InletToAirDryAir.mo | 33 +- .../Validation/InletToAirDryAirCO2.mo | 33 +- .../Validation/InletToAirMoistAir.mo | 57 +- .../Validation/InletToAirMoistAirCO2.mo | 49 +- .../FMI/ExportContainers/Examples/FMUs/Fan.mo | 63 +- .../Examples/FMUs/FlowSplitter_u.mo | 31 +- .../Examples/FMUs/HVACZone.mo | 156 +- .../Examples/FMUs/HVACZones.mo | 148 +- .../Examples/FMUs/HeaterCooler_u.mo | 78 +- .../Examples/FMUs/Heater_T.mo | 77 +- .../Examples/FMUs/Humidifier_u.mo | 86 +- .../Examples/FMUs/IdealSource_m_flow.mo | 39 +- .../Examples/FMUs/MixingVolume.mo | 51 +- .../Examples/FMUs/PressureDrop.mo | 49 +- .../Examples/FMUs/ResistanceVolume.mo | 73 +- .../Examples/FMUs/ThermalZone.mo | 146 +- .../Examples/FMUs/ThermalZones.mo | 128 +- .../Examples/FMUs/TwoPortPassThrough.mo | 31 +- AixLib/Fluid/FMI/ExportContainers/HVACZone.mo | 257 +- .../Fluid/FMI/ExportContainers/HVACZones.mo | 295 +- .../FMI/ExportContainers/PartialTwoPort.mo | 61 +- .../ExportContainers/ReplaceableTwoPort.mo | 91 +- .../Fluid/FMI/ExportContainers/ThermalZone.mo | 293 +- .../FMI/ExportContainers/ThermalZones.mo | 309 +- .../Validation/FMUs/HVACThermalZoneAir1.mo | 31 +- .../Validation/FMUs/HVACThermalZoneAir2.mo | 31 +- .../Validation/FMUs/HVACThermalZoneAir3.mo | 31 +- .../FMUs/HVACThermalZoneSimpleAir1.mo | 31 +- .../FMUs/HVACThermalZoneSimpleAir2.mo | 31 +- .../FMUs/HVACThermalZoneSimpleAir3.mo | 31 +- .../Validation/FMUs/ThermalZoneAir1.mo | 66 +- .../Validation/FMUs/ThermalZoneAir2.mo | 33 +- .../Validation/FMUs/ThermalZoneAir3.mo | 33 +- .../Validation/FMUs/ThermalZoneSimpleAir1.mo | 33 +- .../Validation/FMUs/ThermalZoneSimpleAir2.mo | 33 +- .../Validation/FMUs/ThermalZoneSimpleAir3.mo | 33 +- AixLib/Fluid/FMI/FlowSplitter_u.mo | 121 +- .../Fluid/FMI/Interfaces/FluidProperties.mo | 107 +- AixLib/Fluid/FMI/Interfaces/Inlet.mo | 163 +- .../FMI/Interfaces/MassFractionConnector.mo | 47 +- AixLib/Fluid/FMI/Interfaces/Outlet.mo | 165 +- AixLib/Fluid/FMI/Interfaces/PressureInput.mo | 32 +- AixLib/Fluid/FMI/Interfaces/PressureOutput.mo | 32 +- AixLib/Fluid/FMI/Sink_T.mo | 103 +- AixLib/Fluid/FMI/Source_T.mo | 93 +- AixLib/Fluid/FMI/Validation/FlowSplitter_u.mo | 39 +- AixLib/Fluid/FMI/Validation/HeaterFan.mo | 85 +- .../FMI/Validation/HeaterFanPressureDriven.mo | 89 +- .../FMI/Validation/HeaterFan_noReverseFlow.mo | 73 +- .../FixedResistances/BaseClasses/PlugFlow.mo | 146 +- .../BaseClasses/PlugFlowCore.mo | 138 +- .../BaseClasses/PlugFlowHeatLoss.mo | 160 +- .../BaseClasses/PlugFlowPipe.mo | 495 + .../BaseClasses/PlugFlowTransportDelay.mo | 185 +- .../BaseClasses/Validation/PlugFlowCore.mo | 128 - .../BaseClasses/Validation/package.mo | 21 - .../BaseClasses/Validation/package.order | 1 - .../FixedResistances/BaseClasses/package.mo | 1 + .../BaseClasses/package.order | 4 +- AixLib/Fluid/FixedResistances/CheckValve.mo | 141 +- .../FixedResistances/Examples/CheckValve.mo | 28 +- .../FixedResistances/Examples/FlowJunction.mo | 49 +- .../FixedResistances/Examples/GenericPipe.mo | 2 +- .../Examples/HydraulicDiameter.mo | 37 +- .../FixedResistances/Examples/PlugFlowPipe.mo | 134 +- .../Examples/PlugFlowPipeDiscretized.mo | 87 + .../FixedResistances/Examples/PressureDrop.mo | 27 +- .../FixedResistances/Examples/SimplePipe.mo | 8 +- .../FixedResistances/Examples/package.order | 1 + AixLib/Fluid/FixedResistances/GenericPipe.mo | 33 +- .../FixedResistances/HydraulicDiameter.mo | 306 +- .../FixedResistances/HydraulicResistance.mo | 14 +- AixLib/Fluid/FixedResistances/Junction.mo | 229 +- AixLib/Fluid/FixedResistances/LosslessPipe.mo | 53 +- AixLib/Fluid/FixedResistances/Pipe.mo | 61 +- AixLib/Fluid/FixedResistances/PlugFlowPipe.mo | 405 +- .../PlugFlowPipeDiscretized.mo | 278 + AixLib/Fluid/FixedResistances/PressureDrop.mo | 361 +- AixLib/Fluid/FixedResistances/SimplePipe.mo | 35 +- .../Validation/FlowJunctionSteadyState.mo | 47 +- .../FlowJunctionSteadyStateNoPressureDrop.mo | 49 +- .../Validation/LosslessPipe.mo | 25 +- .../BaseClasses/PipeDataBaseDefinition.mo | 65 +- .../Data/BaseClasses/PipeDataULg.mo | 135 +- .../PlugFlowPipes/Data/PipeDataAIT151218.mo | 109 +- .../PlugFlowPipes/Data/PipeDataULg150801.mo | 63 +- .../PlugFlowPipes/Data/PipeDataULg151202.mo | 63 +- .../PlugFlowPipes/Data/PipeDataULg151204_1.mo | 65 +- .../PlugFlowPipes/Data/PipeDataULg151204_2.mo | 63 +- .../PlugFlowPipes/Data/PipeDataULg151204_4.mo | 63 +- .../PlugFlowPipes/Data/PipeDataULg160104_2.mo | 63 +- .../PlugFlowPipes/Data/PipeDataULg160118_1.mo | 63 +- .../Validation/PlugFlowPipes/Data/TestData.mo | 45 +- .../Validation/PlugFlowPipes/FlowReversal.mo | 42 +- .../Validation/PlugFlowPipes/MSLAIT.mo | 194 +- .../Validation/PlugFlowPipes/MSLAIT2Nodes.mo | 180 +- .../Validation/PlugFlowPipes/PlugFlowAIT.mo | 236 +- .../Validation/PlugFlowPipes/PlugFlowULg.mo | 114 +- .../PlugFlowPipes/TransportWaterAir.mo | 38 +- .../Validation/PressureDropsExplicit.mo | 23 +- .../PressureDropsExplicitLinearized.mo | 24 +- .../Validation/PressureDropsParallel.mo | 23 +- .../Validation/PressureDropsSeries.mo | 25 +- AixLib/Fluid/FixedResistances/package.mo | 2 +- AixLib/Fluid/FixedResistances/package.order | 1 + .../Examples/InternalHEXOneUTube.mo | 31 +- .../Examples/InternalHEXTwoUTube.mo | 31 +- .../Examples/InternalResistancesOneUTube.mo | 38 +- .../Examples/InternalResistancesTwoUTube.mo | 40 +- .../ConvectionResistanceCircularPipe.mo | 55 +- .../Validation/InternalResistancesOneUTube.mo | 61 +- .../InternalResistancesOneUTubeNegative.mo | 71 +- .../Validation/InternalResistancesTwoUTube.mo | 63 +- .../InternalResistancesTwoUTubeNegative.mo | 73 +- .../MultipoleThermalResistances_OneUTube.mo | 65 +- .../MultipoleThermalResistances_TwoUTube.mo | 65 +- .../convectionResistanceCircularPipe.mo | 132 +- .../Functions/internalResistancesOneUTube.mo | 155 +- .../Functions/internalResistancesTwoUTube.mo | 164 +- .../Functions/multipoleFluidTemperature.mo | 65 +- .../BaseClasses/Functions/multipoleFmk.mo | 47 +- .../Functions/multipoleThermalResistances.mo | 52 +- .../Functions/partialInternalResistances.mo | 93 +- .../BaseClasses/InternalHEXOneUTube.mo | 142 +- .../BaseClasses/InternalHEXTwoUTube.mo | 142 +- .../InternalResistancesOneUTube.mo | 89 +- .../InternalResistancesTwoUTube.mo | 88 +- .../Boreholes/BaseClasses/PartialBorehole.mo | 55 +- .../BaseClasses/PartialInternalHEX.mo | 132 +- .../BaseClasses/PartialInternalResistances.mo | 51 +- .../Examples/BaseClasses/PartialBorehole.mo | 29 +- .../Boreholes/Examples/BoreholeDynamics.mo | 38 +- .../Boreholes/Examples/BoreholeOneUTube.mo | 46 +- .../Boreholes/Examples/BoreholeTwoUTube.mo | 44 +- .../BaseClasses/Boreholes/OneUTube.mo | 63 +- .../BaseClasses/Boreholes/TwoUTube.mo | 65 +- .../BaseClasses/HeatTransfer/Cylindrical.mo | 178 +- .../HeatTransfer/GroundTemperatureResponse.mo | 346 +- .../Validation/AggregationCellTimes.mo | 40 +- .../Validation/AggregationWeightingFactors.mo | 35 +- .../Validation/CountAggregationCells.mo | 29 +- .../Validation/ShiftAggregationCells.mo | 43 +- .../Validation/TemperatureResponseMatrix.mo | 37 +- .../Validation/TemporalSuperposition.mo | 34 +- .../LoadAggregation/aggregationCellTimes.mo | 44 +- .../aggregationWeightingFactors.mo | 43 +- .../LoadAggregation/countAggregationCells.mo | 45 +- .../LoadAggregation/shiftAggregationCells.mo | 49 +- .../temperatureResponseMatrix.mo | 91 +- .../LoadAggregation/temporalSuperposition.mo | 37 +- .../Validation/CylindricalHeatSource.mo | 36 +- .../CylindricalHeatSource_Integrand.mo | 25 +- .../Validation/FiniteLineSource.mo | 44 +- .../Validation/FiniteLineSource_Erfint.mo | 25 +- .../Validation/FiniteLineSource_Integrand.mo | 38 +- .../FiniteLineSource_Integrand_Length.mo | 38 +- .../Validation/GFunction_100boreholes.mo | 47 +- .../Validation/GFunction_1borehole_5meters.mo | 47 +- .../GFunction_SmallScaleValidation.mo | 60 +- .../Validation/InfiniteLineSource.mo | 36 +- .../Validation/ShaGFunction.mo | 25 +- .../Validation/TimeGeometric.mo | 32 +- .../cylindricalHeatSource.mo | 83 +- .../cylindricalHeatSource_Integrand.mo | 27 +- .../finiteLineSource.mo | 115 +- .../finiteLineSource_Erfint.mo | 29 +- .../finiteLineSource_Integrand.mo | 45 +- .../ThermalResponseFactors/gFunction.mo | 222 +- .../infiniteLineSource.mo | 71 +- .../ThermalResponseFactors/shaGFunction.mo | 88 +- .../ThermalResponseFactors/timeGeometric.mo | 59 +- .../Validation/Analytic_20Years.mo | 53 +- .../BaseClasses/SmallScale_Borefield.mo | 45 +- .../BaseClasses/SmallScale_Configuration.mo | 49 +- .../BaseClasses/SmallScale_Filling.mo | 41 +- .../Validation/BaseClasses/SmallScale_Soil.mo | 43 +- .../Validation/BaseClasses/package.mo | 1 + .../HeatTransfer/Validation/Cylindrical.mo | 39 +- .../Validation/FiniteDifference_1Week.mo | 51 +- .../Validation/Measured_SmallScale.mo | 75 +- .../BaseClasses/PartialBorefield.mo | 160 +- .../Borefields/Data/Borefield/Example.mo | 35 +- .../Borefields/Data/Borefield/Template.mo | 37 +- .../Borefields/Data/Configuration/Example.mo | 39 +- .../Borefields/Data/Configuration/Template.mo | 67 +- .../Borefields/Data/Filling/Bentonite.mo | 33 +- .../Borefields/Data/Filling/Template.mo | 43 +- .../Borefields/Data/Soil/SandStone.mo | 49 +- .../Borefields/Data/Soil/Template.mo | 47 +- .../Borefields/Examples/Borefields.mo | 46 +- .../Examples/RectangularBorefield.mo | 80 +- .../Fluid/Geothermal/Borefields/OneUTube.mo | 51 +- .../Fluid/Geothermal/Borefields/TwoUTubes.mo | 51 +- AixLib/Fluid/Geothermal/Borefields/Types.mo | 49 +- ...antHeatInjection_100Boreholes_Borefield.mo | 23 +- ...eatInjection_100Boreholes_Configuration.mo | 23 +- ...stantHeatInjection_100Boreholes_Filling.mo | 23 +- ...ConstantHeatInjection_100Boreholes_Soil.mo | 23 +- .../BaseClasses/SandBox_Borefield.mo | 45 +- .../BaseClasses/SandBox_Configuration.mo | 45 +- .../Validation/BaseClasses/SandBox_Filling.mo | 45 +- .../Validation/BaseClasses/SandBox_Soil.mo | 45 +- .../Validation/BaseClasses/package.mo | 1 + .../ConstantHeatInjection_100Boreholes.mo | 69 +- .../Borefields/Validation/Sandbox.mo | 95 +- AixLib/Fluid/Geothermal/Borefields/package.mo | 1 + AixLib/Fluid/Geothermal/package.mo | 1 + .../ActiveBeams/BaseClasses/Convector.mo | 79 +- .../BaseClasses/DerivativesCubicSpline.mo | 47 +- .../BaseClasses/Examples/Convector.mo | 47 +- .../Examples/DerivateCubicSpline.mo | 41 +- .../Examples/ModificationFactor.mo | 35 +- .../BaseClasses/ModificationFactor.mo | 47 +- .../HeatExchangers/ActiveBeams/Cooling.mo | 175 +- .../ActiveBeams/CoolingAndHeating.mo | 75 +- .../ActiveBeams/Data/BaseClasses/AirFlow.mo | 45 +- .../Data/BaseClasses/TemperatureDifference.mo | 81 +- .../ActiveBeams/Data/BaseClasses/WaterFlow.mo | 45 +- .../ActiveBeams/Data/Generic.mo | 46 +- .../HeatExchangers/ActiveBeams/Data/Trox.mo | 69 +- .../ActiveBeams/Examples/CoolingAndHeating.mo | 67 +- .../ActiveBeams/Examples/CoolingOnly.mo | 49 +- .../ActiveBeams/Examples/HeatingOnly.mo | 49 +- .../ActiveBeams/Validation/NumberOfBeams.mo | 59 +- .../Validation/NumberOfBeamsDynamics.mo | 34 +- .../BaseClasses/HeatConductionSegment.mo | 6 +- .../BaseClasses/PanelHeatingSegment.mo | 22 +- .../ActiveWalls/BaseClasses/PressureDropPH.mo | 2 +- .../ActiveWalls/BaseClasses/logDT.mo | 4 +- .../HeatExchangers/ActiveWalls/Distributor.mo | 14 +- .../Examples/PanelHeatingMultiple.mo | 20 +- .../ActiveWalls/PanelHeating.mo | 32 +- .../BaseClasses/Examples/HACoilInside.mo | 29 +- .../BaseClasses/Examples/HADryCoil.mo | 25 +- .../BaseClasses/Examples/HANaturalCylinder.mo | 11 +- .../BaseClasses/HACoilInside.mo | 60 +- .../HeatExchangers/BaseClasses/HADryCoil.mo | 147 +- .../BaseClasses/HANaturalCylinder.mo | 143 +- .../HeatExchangers/BaseClasses/Internal.mo | 2 +- .../BaseClasses/PartialEffectiveness.mo | 185 +- .../BaseClasses/PartialEffectivenessNTU.mo | 192 +- .../BaseClasses/PartialPrescribedOutlet.mo | 98 +- .../BaseClasses/WetCoilDryRegime.mo | 97 + .../BaseClasses/WetCoilDryWetRegime.mo | 421 + .../BaseClasses/WetCoilUARated.mo | 216 + .../BaseClasses/WetCoilWetRegime.mo | 256 + .../BaseClasses/determineWaterIndex.mo | 48 + .../BaseClasses/dynamicViscosityWater.mo | 39 +- .../HeatExchangers/BaseClasses/epsilon_C.mo | 107 +- .../BaseClasses/epsilon_ntuZ.mo | 69 +- .../isobaricExpansionCoefficientWater.mo | 39 +- .../Fluid/HeatExchangers/BaseClasses/lmtd.mo | 41 + .../BaseClasses/ntu_epsilonZ.mo | 122 +- .../HeatExchangers/BaseClasses/package.order | 6 + .../BaseClasses/prandtlNumberWater.mo | 39 +- .../HeatExchangers/ConstantEffectiveness.mo | 95 +- .../HeatExchangers/DryCoilEffectivenessNTU.mo | 91 +- AixLib/Fluid/HeatExchangers/DynamicHX.mo | 19 +- .../HeatExchangers/EvaporatorCondenser.mo | 122 +- .../EvaporatorCondenserWithCapacity.mo | 14 +- .../HeatExchangers/Examples/AirHeater_T.mo | 73 +- .../HeatExchangers/Examples/AirHeater_u.mo | 73 +- .../BaseClasses/EffectivenessNTUMassFlow.mo | 21 +- .../Examples/BaseClasses/Heater.mo | 107 +- .../DryCoilEffectivenessNTUMassFlow.mo | 29 +- .../DryCoilEffectivenessNTUPControl.mo | 68 +- .../HeatExchangers/Examples/DynamicHX.mo | 2 +- .../HeatExchangers/Examples/WaterCooler_T.mo | 65 +- .../HeatExchangers/Examples/WaterHeater_T.mo | 67 +- .../HeatExchangers/Examples/WaterHeater_u.mo | 81 +- .../WetCoilEffectivenessNTUMassFlow.mo | 84 + .../HeatExchangers/Examples/package.order | 21 +- AixLib/Fluid/HeatExchangers/HeaterCooler_u.mo | 203 +- AixLib/Fluid/HeatExchangers/Heater_T.mo | 198 +- AixLib/Fluid/HeatExchangers/HeatingRod.mo | 9 +- .../Fluid/HeatExchangers/PrescribedOutlet.mo | 258 +- .../Radiators/BaseClasses/HeatConvRadiator.mo | 3 +- .../BaseClasses/MultiLayerThermalDelta.mo | 24 +- .../Radiators/BaseClasses/RadiatorWall.mo | 23 +- .../Radiators/BaseClasses/package.order | 1 - .../Radiators/Examples/Radiator.mo | 2 +- .../Radiators/Examples/RadiatorEN442_2.mo | 64 +- .../HeatExchangers/Radiators/Radiator.mo | 1279 +- .../Radiators/RadiatorEN442_2.mo | 435 +- .../Fluid/HeatExchangers/SensibleCooler_T.mo | 206 +- .../Validation/ConstantEffectiveness.mo | 29 +- .../Validation/DryCoilEffectivenessNTU.mo | 65 +- .../Validation/EvaporatorCondenser.mo | 42 +- .../Validation/HeaterCooler_u.mo | 57 +- .../Validation/PrescribedOutlet.mo | 63 +- .../Validation/PrescribedOutlet_dynamic.mo | 41 +- .../Validation/WetCoilEffectivenessNTU.mo | 236 + .../HeatExchangers/Validation/package.order | 1 + .../HeatExchangers/WetCoilEffectivenessNTU.mo | 632 + AixLib/Fluid/HeatExchangers/package.order | 33 +- .../BaseClasses/InnerCycle_HeatPump.mo | 2 +- .../BaseClasses/PartialWaterToWater.mo | 113 +- .../BaseClasses/PartialWaterToWater.mo | 51 +- .../Calibration/ScrollWaterToWater.mo | 79 +- AixLib/Fluid/HeatPumps/Carnot_TCon.mo | 210 +- AixLib/Fluid/HeatPumps/Carnot_y.mo | 315 +- .../BaseClasses/PartialCompressor.mo | 130 +- .../BaseClasses/TemperatureProtection.mo | 59 +- .../Validation/TemperatureProtection.mo | 29 +- .../Compressors/ReciprocatingCompressor.mo | 127 +- .../HeatPumps/Compressors/ScrollCompressor.mo | 131 +- .../Validation/ReciprocatingCompressor.mo | 29 +- .../ReciprocatingCompressor_ZeroInput.mo | 31 +- .../Validation/ScrollCompressor.mo | 29 +- .../Validation/ScrollCompressor_ZeroInput.mo | 31 +- .../Compressors/Validation/package.mo | 2 +- AixLib/Fluid/HeatPumps/Compressors/package.mo | 2 +- .../HeatPumps/Data/BaseClasses/HeatPumps.mo | 44 +- .../Data/ReciprocatingWaterToWater/Generic.mo | 29 +- .../Data/ScrollWaterToWater/Generic.mo | 29 +- .../Carrier_50PSW122_38kW_4_29COP_R410A.mo | 24 +- .../Carrier_50PSW180_52kW_4_50COP_R410A.mo | 24 +- .../Carrier_50PSW210_70kW_4_40COP_R410A.mo | 24 +- .../Carrier_50PSW240_93kW_4_40COP_R410A.mo | 24 +- .../Carrier_50PSW360_105kW_4_50COP_R410A.mo | 24 +- .../Carrier_50PSW420_140kW_4_40COP_R410A.mo | 24 +- ...ClimateMaster_TMW036_12kW_4_90COP_R410A.mo | 24 +- ...ClimateMaster_TMW060_21kW_4_60COP_R410A.mo | 24 +- ...ClimateMaster_TMW120_42kW_4_50COP_R410A.mo | 24 +- ...ClimateMaster_TMW170_48kW_4_30COP_R410A.mo | 24 +- ...ClimateMaster_TMW340_98kW_4_40COP_R410A.mo | 24 +- .../Daikin_WRA036_13kW_4_50COP_R410A.mo | 24 +- .../Daikin_WRA048_16kW_4_60COP_R410A.mo | 24 +- .../Daikin_WRA060_19kW_4_50COP_R410A.mo | 24 +- .../Daikin_WRA072_24kW_4_30COP_R410A.mo | 24 +- .../Daikin_WRA120_37kW_4_40COP_R410A.mo | 24 +- .../Daikin_WRA150_49kW_4_70COP_R410A.mo | 24 +- .../Daikin_WRA180_63kW_4_50COP_R410A.mo | 24 +- .../Daikin_WRA240_79kW_4_40COP_R410A.mo | 24 +- .../Daikin_WRA300_93kW_4_60COP_R410A.mo | 24 +- .../Daikin_WRA360_116kW_4_60COP_R410A.mo | 24 +- .../Daikin_WRA420_137kW_4_50COP_R410A.mo | 24 +- .../Trane_EXW060_21kW_4_30COP_R410A.mo | 24 +- .../Trane_EXW120_40kW_3_90COP_R410A.mo | 24 +- .../Trane_EXW240_76kW_4_10COP_R410A.mo | 24 +- .../Viessmann_BW301A21_28kW_5_94COP_R410A.mo | 9 +- .../Viessmann_BW301A29_37kW_6_0COP_R410A.mo | 9 +- .../Viessmann_BW301A45_58kW_5_50COP_R410A.mo | 9 +- .../Fluid/HeatPumps/Examples/Carnot_TCon.mo | 55 +- AixLib/Fluid/HeatPumps/Examples/Carnot_y.mo | 87 +- AixLib/Fluid/HeatPumps/Examples/HeatPump.mo | 4 +- .../ScrollWaterToWater_OneRoomRadiator.mo | 96 +- AixLib/Fluid/HeatPumps/Examples/package.mo | 1 + AixLib/Fluid/HeatPumps/HeatPump.mo | 2 +- .../HeatPumps/ReciprocatingWaterToWater.mo | 147 +- AixLib/Fluid/HeatPumps/ScrollWaterToWater.mo | 167 +- .../Validation/Carnot_TCon_LimitedCapacity.mo | 29 +- .../Validation/Carnot_TCon_LowTemperature.mo | 39 +- .../HeatPumps/Validation/Carnot_TCon_etaPL.mo | 29 +- .../Validation/Carnot_TCon_reverseFlow.mo | 61 +- .../HeatPumps/Validation/Carnot_y_etaCar.mo | 29 +- .../HeatPumps/Validation/Carnot_y_etaPL.mo | 30 +- .../ReciprocatingWaterToWater_Dynamic.mo | 57 +- ...ReciprocatingWaterToWater_ScalingFactor.mo | 57 +- .../ReciprocatingWaterToWater_Static.mo | 55 +- ...ReciprocatingWaterToWater_VariableSpeed.mo | 61 +- .../Validation/ScrollWaterToWater_Dynamic.mo | 57 +- .../ScrollWaterToWater_ScalingFactor.mo | 57 +- .../Validation/ScrollWaterToWater_Static.mo | 55 +- ...crollWaterToWater_TemperatureProtection.mo | 63 +- .../ScrollWaterToWater_VariableSpeed.mo | 53 +- AixLib/Fluid/HeatPumps/package.mo | 2 +- .../Examples/GenericHumidifier_u.mo | 6 +- .../Humidifiers/Examples/Humidifier_u.mo | 52 +- .../Fluid/Humidifiers/GenericHumidifier_u.mo | 13 +- AixLib/Fluid/Humidifiers/Humidifier_u.mo | 169 +- AixLib/Fluid/Humidifiers/SprayAirWasher_X.mo | 191 +- AixLib/Fluid/Humidifiers/SteamHumidifier_X.mo | 168 +- .../Validation/SprayAirWasher_X.mo | 51 +- .../Validation/SprayAirWasher_X_dynamic.mo | 31 +- .../Validation/SteamHumidifier_X.mo | 42 +- .../Validation/SteamHumidifier_X_dynamic.mo | 31 +- .../Fluid/Interfaces/ConservationEquation.mo | 838 +- AixLib/Fluid/Interfaces/EightPort.mo | 49 +- .../EightPortFlowResistanceParameters.mo | 51 +- .../Interfaces/EightPortHeatMassExchanger.mo | 154 +- .../BaseClasses/PrescribedOutletState.mo | 69 +- .../Examples/ConservationEquation.mo | 45 +- .../Examples/EightPortHeatMassExchanger.mo | 32 +- .../Examples/FourPortHeatMassExchanger.mo | 32 +- .../Interfaces/Examples/HeaterCooler_u.mo | 123 +- .../Fluid/Interfaces/Examples/Humidifier_u.mo | 151 +- .../Interfaces/Examples/PrescribedOutlet.mo | 41 +- .../Examples/PrescribedOutlet_TSetOnly.mo | 41 +- .../Examples/PrescribedOutlet_Water.mo | 41 +- .../Examples/PrescribedOutlet_X_wSetOnly.mo | 41 +- .../Examples/ReverseFlowHumidifier.mo | 105 +- .../Examples/ReverseFlowMassExchanger.mo | 109 +- .../StaticTwoPortConservationEquation.mo | 41 +- .../FourPortFlowResistanceParameters.mo | 61 +- .../Fluid/Interfaces/FourPortHeatExchanger.mo | 24 +- .../Interfaces/FourPortHeatMassExchanger.mo | 360 +- .../Interfaces/LumpedVolumeDeclarations.mo | 167 +- .../Interfaces/PartialEightPortInterface.mo | 202 +- AixLib/Fluid/Interfaces/PartialFourPort.mo | 177 +- .../Interfaces/PartialFourPortInterface.mo | 322 +- .../Interfaces/PartialFourPortParallel.mo | 73 +- .../Fluid/Interfaces/PartialModularPort_a.mo | 8 +- .../Fluid/Interfaces/PartialModularPort_b.mo | 8 +- AixLib/Fluid/Interfaces/PartialTwoPort.mo | 125 +- .../Interfaces/PartialTwoPortInterface.mo | 321 +- .../Interfaces/PartialTwoPortTransport.mo | 217 +- .../Fluid/Interfaces/PartialTwoPortVector.mo | 165 +- AixLib/Fluid/Interfaces/PrescribedOutlet.mo | 235 +- .../StaticFourPortHeatMassExchanger.mo | 257 +- .../StaticTwoPortConservationEquation.mo | 701 +- .../StaticTwoPortHeatMassExchanger.mo | 418 +- .../TwoPortFlowResistanceParameters.mo | 50 +- .../Interfaces/TwoPortHeatMassExchanger.mo | 317 +- AixLib/Fluid/Interfaces/package.mo | 2 +- AixLib/Fluid/Interfaces/package.order | 2 +- .../MassExchangers/ConstantEffectiveness.mo | 155 +- .../Examples/ConstantEffectiveness.mo | 11 +- .../BaseClasses/AirDuct.mo | 48 +- .../CoefficientCrossToCounterFlow.mo | 2 +- .../Functions/CollisionIntegral.mo | 4 +- .../Functions/DiffusionCoefficient.mo | 12 +- .../Functions/NusseltNumberMuzychka.mo | 2 +- .../Functions/NusseltNumberStephan.mo | 4 +- .../Functions/SherwoodNumberMuzychka.mo | 2 +- .../Functions/SherwoodNumberStephan.mo | 4 +- .../HeatTransfer/AdsorptionEnthalpy.mo | 20 +- .../HeatTransfer/CrossFlowReduction.mo | 20 +- .../LocalDuctConvectiveHeatFlow.mo | 2 +- .../HeatTransfer/MembraneHeatTransfer.mo | 43 +- .../HeatTransfer/PartialDuctHeatTransfer.mo | 17 +- .../HeatTransfer/PartialFlowHeatTransfer.mo | 4 +- .../HeatTransfer/PartialHeatTransfer.mo | 7 +- .../MassTransfer/CrossFlowReduction.mo | 12 +- .../LocalDuctConvectiveMassFlow.mo | 2 +- .../MassTransfer/MembraneMassTransfer.mo | 25 +- .../MassTransfer/PartialDuctMassTransfer.mo | 21 +- .../MassTransfer/PartialFlowMassTransfer.mo | 4 +- .../MassTransfer/PartialMassTransfer.mo | 6 +- .../BaseClasses/Membrane.mo | 48 +- .../EnthalpyExchanger.mo | 98 +- .../Examples/Test_EnthalpyExchanger.mo | 8 +- .../Validation/DynamicValidation.mo | 33 +- .../Validation/StaticValidation.mo | 39 +- .../ConstantEffectivenessZeroFlow.mo | 34 +- ...onstantEffectivenessZeroFlowBothStreams.mo | 34 +- .../MixingVolumeHeatMoisturePort.mo | 67 +- .../BaseClasses/MixingVolumeHeatPort.mo | 67 +- .../BaseClasses/PartialMixingVolume.mo | 782 +- .../MixingVolumeHeatMoisturePort.mo | 41 +- .../Validation/MixingVolumeHeatPortAir.mo | 29 +- .../Validation/MixingVolumeHeatPortWater.mo | 39 +- .../Examples/HydraulicSeparator.mo | 6 +- .../Examples/MixingVolumeHeatConduction.mo | 28 +- .../Examples/MixingVolumeMoistAir.mo | 73 +- .../MixingVolumePrescribedHeatFlowRate.mo | 36 +- .../Fluid/MixingVolumes/HydraulicSeparator.mo | 23 +- AixLib/Fluid/MixingVolumes/MixingVolume.mo | 435 +- .../MixingVolumes/MixingVolumeMoistAir.mo | 307 +- .../BaseClasses/MixingVolumeReverseFlow.mo | 67 +- .../BaseClasses/MoistureMixingConservation.mo | 64 +- .../BaseClasses/TraceSubstanceConservation.mo | 38 +- .../Validation/CoupledVolumesAir.mo | 35 +- .../Validation/CoupledVolumesGlycol47.mo | 35 +- .../CoupledVolumesSpecializedAirPerfectGas.mo | 35 +- ...esSpecializedWaterConstantProperties_pT.mo | 35 +- ...ializedWaterTemperatureDependentDensity.mo | 35 +- .../Validation/CoupledVolumesWater.mo | 35 +- .../MixingVolumes/Validation/MixingVolume.mo | 119 +- .../MixingVolumeAdiabaticCooling.mo | 63 +- .../Validation/MixingVolumeHeatReverseFlow.mo | 37 +- ...meHeatReverseFlowPrescribedHeatFlowRate.mo | 43 +- .../Validation/MixingVolumeInitialization.mo | 39 +- .../Validation/MixingVolumeMFactor.mo | 89 +- .../Validation/MixingVolumeMassFlow.mo | 86 +- .../MixingVolumeMoistureReverseFlow.mo | 49 +- ...istureReverseFlowPrescribedHeatFlowRate.mo | 43 +- .../Validation/MixingVolumeSteadyStateMass.mo | 37 +- .../Validation/MixingVolumeTraceSubstance.mo | 39 +- .../MixingVolumeTraceSubstanceReverseFlow.mo | 51 +- ...stanceReverseFlowPrescribedHeatFlowRate.mo | 43 +- .../Validation/MixingVolumeZeroFlow.mo | 116 +- ...oistureMixingConservationDynamicBalance.mo | 106 +- .../MoistureMixingConservationSteadyState.mo | 78 +- ...raceSubstanceConservationDynamicBalance.mo | 86 +- .../TraceSubstanceConservationSteadyState.mo | 74 +- AixLib/Fluid/MixingVolumes/package.mo | 1 + .../BaseClasses/Characteristics/efficiency.mo | 109 +- .../Characteristics/efficiencyParameters.mo | 41 +- .../Characteristics/flowParameters.mo | 52 +- .../Characteristics/flowParametersInternal.mo | 82 +- .../BaseClasses/Characteristics/power.mo | 79 +- .../Characteristics/powerParameters.mo | 47 +- .../BaseClasses/Characteristics/pressure.mo | 92 +- .../BaseClasses/FlowMachineInterface.mo | 390 +- .../Fluid/Movers/BaseClasses/IdealSource.mo | 143 +- .../Movers/BaseClasses/PartialFlowMachine.mo | 405 +- .../Movers/BaseClasses/PowerInterface.mo | 75 +- AixLib/Fluid/Movers/BaseClasses/Types.mo | 9 +- .../Validation/FlowMachineInterface.mo | 25 +- .../BaseClasses/Validation/PowerInterface.mo | 25 +- .../BaseClasses/PartialCompression.mo | 386 +- .../BaseClasses/PartialCompressor.mo | 137 +- .../BaseClasses/PartialEfficiency.mo | 199 +- .../BaseClasses/PartialModularCompressors.mo | 167 +- .../Examples/ModularRotaryCompressor.mo | 20 +- .../Compressors/Examples/RotaryCompressor.mo | 18 +- .../RotaryCompressorPressureHeatLosses.mo | 18 +- .../RotaryCompressorPressureLosses.mo | 18 +- .../ModularCompressorsSensors.mo | 38 +- .../CompressionProcesses/RotaryCompression.mo | 2 +- .../Compressors/UsersGuide/Approaches.mo | 1931 +- .../Compressors/UsersGuide/References.mo | 2 +- .../PartialEngineEfficiency.mo | 215 +- .../PolynomialEngineEfficiency.mo | 241 +- .../EngineEfficiency/PowerEngineEfficiency.mo | 116 +- ...zee_VarDisVol_ReciprocatingRotaryScroll.mo | 107 +- .../ConstantEfficiency.mo | 2 +- .../Generic_VarRef_VarDisVol_RotaryScroll.mo | 99 +- .../Utilities/EngineEfficiency/package.mo | 226 +- .../HeatTransfer/SimpleFictitiousWall.mo | 24 +- .../HeatTransfer/SimpleHeatTransfer.mo | 13 +- .../PartialIsentropicEfficiency.mo | 215 +- .../PolynomialIsentropicEfficiency.mo | 197 +- .../PowerIsentropicEfficiency.mo | 116 +- ...R1234yfR1234zee_VarDisVol_Reciprocating.mo | 107 +- ...4aR450aR1234yfR1234zee_VarDisVol_Rotary.mo | 107 +- ...4aR450aR1234yfR1234zee_VarDisVol_Scroll.mo | 107 +- .../ConstantEfficiency.mo | 2 +- .../Generic_VarRef_VarDisVol_RotaryScroll.mo | 95 +- .../Poly_R134a_169_Reciprocating.mo | 102 +- .../Poly_R407C_Unknown_Scroll.mo | 98 +- .../Utilities/IsentropicEfficiency/package.mo | 227 +- .../PartialVolumetricEfficiency.mo | 215 +- .../PolynomialVolumetricEfficiency.mo | 478 +- .../PowerVolumetricEfficiency.mo | 115 +- ...R1234yfR1234zee_VarDisVol_Reciprocating.mo | 106 +- ...4aR450aR1234yfR1234zee_VarDisVol_Rotary.mo | 106 +- ...4aR450aR1234yfR1234zee_VarDisVol_Scroll.mo | 106 +- .../ConstantEfficiency.mo | 2 +- .../Generic_VarRef_VarDisVol_RotaryScroll.mo | 101 +- .../Poly_R134a_169_Reciprocating.mo | 105 +- .../Poly_R134a_170_Reciprocating.mo | 99 +- .../Poly_R134a_54_Scroll.mo | 99 +- .../Poly_R22_20_Rotary.mo | 99 +- .../Poly_R407C_Unknown_Scroll.mo | 99 +- .../Poly_R410a_130_Rotary.mo | 95 +- .../Utilities/VolumetricEfficiency/package.mo | 227 +- .../Validation/EfficiencyModels.mo | 13 +- .../Validation/ModularInactiveCompressors.mo | 17 +- .../Validation/SimpleHeatTransfer.mo | 12 +- .../BaseModelStaticBoundaries.mo | 2 +- .../BaseModelStaticHeatPump.mo | 88 +- .../BaseModelStaticHeatPumpController.mo | 88 +- .../RefrigerantR134aScrollCompressor.mo | 2 +- AixLib/Fluid/Movers/Data/Generic.mo | 177 +- .../Wilo/CronolineIL80slash220dash4slash4.mo | 51 +- .../Data/Pumps/Wilo/Stratos25slash1to4.mo | 59 +- .../Data/Pumps/Wilo/Stratos25slash1to6.mo | 91 +- .../Data/Pumps/Wilo/Stratos25slash1to8.mo | 59 +- .../Data/Pumps/Wilo/Stratos30slash1to4.mo | 59 +- .../Data/Pumps/Wilo/Stratos30slash1to8.mo | 59 +- .../Data/Pumps/Wilo/Stratos32slash1to12.mo | 59 +- .../Data/Pumps/Wilo/Stratos40slash1to12.mo | 59 +- .../Data/Pumps/Wilo/Stratos40slash1to8.mo | 59 +- .../Data/Pumps/Wilo/Stratos50slash1to12.mo | 59 +- .../Data/Pumps/Wilo/Stratos80slash1to12.mo | 59 +- .../Movers/Data/Pumps/Wilo/TopS25slash10.mo | 60 +- .../Movers/Data/Pumps/Wilo/TopS30slash10.mo | 59 +- .../Movers/Data/Pumps/Wilo/TopS30slash5.mo | 59 +- .../Movers/Data/Pumps/Wilo/TopS40slash10.mo | 59 +- .../Movers/Data/Pumps/Wilo/TopS40slash7.mo | 59 +- .../Wilo/VeroLine50slash150dash4slash2.mo | 23 +- .../VeroLine80slash115dash2comma2slash2.mo | 51 +- .../DpControlledMovers/DpControlled_dp.mo | 550 + .../Examples/DpControlled_dpConst.mo | 76 + .../Examples/DpControlled_dpVar.mo | 10 + .../DpControlledMovers/Examples/package.mo | 4 + .../DpControlledMovers/Examples/package.order | 2 + .../DpControlledMovers/Types/CtrlType.mo | 8 + .../DpControlledMovers/Types/package.mo | 6 + .../DpControlledMovers/Types/package.order | 1 + .../Movers/DpControlledMovers/package.mo | 3 + .../Movers/DpControlledMovers/package.order | 3 + AixLib/Fluid/Movers/Examples/ClosedLoop_y.mo | 43 +- .../Fluid/Movers/Examples/MoverContinuous.mo | 27 +- .../Fluid/Movers/Examples/MoverParameter.mo | 53 +- AixLib/Fluid/Movers/Examples/MoverStages.mo | 56 +- AixLib/Fluid/Movers/Examples/PumpsParallel.mo | 69 +- AixLib/Fluid/Movers/Examples/PumpsSeries.mo | 63 +- .../Examples/SpeedControlled_y_pumpCurves.mo | 77 +- AixLib/Fluid/Movers/FlowControlled_dp.mo | 361 +- AixLib/Fluid/Movers/FlowControlled_m_flow.mo | 200 +- .../BaseClasses/PumpBus.mo | 8 +- .../baseEfficiency.mo | 8 +- .../BaseClasses/powerInt.mo | 2 +- .../Controls/CtrlDpVarH.mo | 15 +- .../Controls/CtrlDpVarN.mo | 23 +- .../Controls/CtrlPassThroughN.mo | 2 +- .../Examples/PumpHdpVarControlTest.mo | 121 - .../Examples/PumpHeadControlled.mo | 110 + ...ntrolledTest.mo => PumpSpeedControlled.mo} | 72 +- ...ntrolTest.mo => PumpSpeedControlledDpV.mo} | 80 +- .../PumpSpeedControlledLimiterTest.mo | 129 - .../PumpsPolynomialBased/Examples/package.mo | 114 +- .../Examples/package.order | 7 +- .../PumpHeadControlled.mo | 274 +- .../PumpSpeedControlled.mo | 290 +- .../Movers/PumpsPolynomialBased/package.mo | 2 +- AixLib/Fluid/Movers/SpeedControlled_Nrpm.mo | 214 +- AixLib/Fluid/Movers/SpeedControlled_y.mo | 201 +- AixLib/Fluid/Movers/UsersGuide.mo | 14 +- .../BaseClasses/ControlledFlowMachine.mo | 7 +- .../BaseClasses/FlowMachine_ZeroFlow.mo | 63 +- .../Validation/ControlledFlowMachine.mo | 17 +- .../ControlledFlowMachineDynamic.mo | 10 +- .../Movers/Validation/FlowControlled_dp.mo | 65 +- .../Validation/FlowControlled_dpSystem.mo | 47 +- .../Validation/FlowControlled_m_flow.mo | 39 +- AixLib/Fluid/Movers/Validation/PowerExact.mo | 51 +- .../Movers/Validation/PowerSimplified.mo | 125 +- .../Validation/PumpCurveConstruction.mo | 83 +- .../Movers/Validation/PumpCurveDerivatives.mo | 75 +- .../Movers/Validation/Pump_Nrpm_stratos.mo | 79 +- .../Fluid/Movers/Validation/Pump_stratos.mo | 31 +- .../Movers/Validation/SpeedControlled_Nrpm.mo | 39 +- .../Movers/Validation/SpeedControlled_y.mo | 39 +- .../Validation/SpeedControlled_y_linear.mo | 71 +- AixLib/Fluid/Movers/package.order | 1 + .../BaseClasses/PartialAbsoluteSensor.mo | 97 +- .../BaseClasses/PartialDynamicFlowSensor.mo | 77 +- .../Sensors/BaseClasses/PartialFlowSensor.mo | 68 +- .../Conversions/Examples/To_VolumeFraction.mo | 65 +- .../Sensors/Conversions/Examples/package.mo | 1 + .../Sensors/Conversions/To_VolumeFraction.mo | 74 +- AixLib/Fluid/Sensors/Conversions/package.mo | 1 + AixLib/Fluid/Sensors/Density.mo | 79 +- AixLib/Fluid/Sensors/DensityTwoPort.mo | 95 +- AixLib/Fluid/Sensors/EnthalpyFlowRate.mo | 143 +- AixLib/Fluid/Sensors/EntropyFlowRate.mo | 89 +- AixLib/Fluid/Sensors/Examples/Density.mo | 33 +- .../Sensors/Examples/EnthalpyFlowRate.mo | 55 +- .../Fluid/Sensors/Examples/EntropyFlowRate.mo | 29 +- AixLib/Fluid/Sensors/Examples/MassFraction.mo | 23 +- .../Examples/MoistAirEnthalpyFlowRate.mo | 43 +- AixLib/Fluid/Sensors/Examples/PPM.mo | 57 +- AixLib/Fluid/Sensors/Examples/Pressure.mo | 23 +- .../Sensors/Examples/RelativeHumidity.mo | 27 +- .../Sensors/Examples/SpecificEnthalpy.mo | 31 +- .../Fluid/Sensors/Examples/SpecificEntropy.mo | 23 +- .../Sensors/Examples/TemperatureDryBulb.mo | 41 +- .../Sensors/Examples/TemperatureWetBulb.mo | 37 +- .../Fluid/Sensors/Examples/TraceSubstances.mo | 105 +- AixLib/Fluid/Sensors/Examples/Velocity.mo | 39 +- .../Fluid/Sensors/Examples/VolumeFlowRate.mo | 37 +- AixLib/Fluid/Sensors/Examples/package.mo | 1 + .../Fluid/Sensors/LatentEnthalpyFlowRate.mo | 236 +- AixLib/Fluid/Sensors/MassFlowRate.mo | 61 +- AixLib/Fluid/Sensors/MassFraction.mo | 137 +- AixLib/Fluid/Sensors/MassFractionTwoPort.mo | 151 +- AixLib/Fluid/Sensors/ModularSensors.mo | 38 +- AixLib/Fluid/Sensors/PPM.mo | 126 +- AixLib/Fluid/Sensors/PPMTwoPort.mo | 68 +- AixLib/Fluid/Sensors/Pressure.mo | 57 +- AixLib/Fluid/Sensors/RelativeHumidity.mo | 99 +- .../Fluid/Sensors/RelativeHumidityTwoPort.mo | 111 +- AixLib/Fluid/Sensors/RelativePressure.mo | 83 +- AixLib/Fluid/Sensors/RelativeTemperature.mo | 79 +- .../Fluid/Sensors/SensibleEnthalpyFlowRate.mo | 237 +- AixLib/Fluid/Sensors/SpecificEnthalpy.mo | 77 +- .../Fluid/Sensors/SpecificEnthalpyTwoPort.mo | 91 +- AixLib/Fluid/Sensors/SpecificEntropy.mo | 77 +- .../Fluid/Sensors/SpecificEntropyTwoPort.mo | 99 +- AixLib/Fluid/Sensors/Temperature.mo | 79 +- AixLib/Fluid/Sensors/TemperatureTwoPort.mo | 177 +- .../Sensors/TemperatureWetBulbTwoPort.mo | 113 +- AixLib/Fluid/Sensors/TraceSubstances.mo | 123 +- .../Fluid/Sensors/TraceSubstancesTwoPort.mo | 163 +- AixLib/Fluid/Sensors/Velocity.mo | 99 +- AixLib/Fluid/Sensors/VolumeFlowRate.mo | 119 +- AixLib/Fluid/Sensors/package.mo | 3 +- .../BaseClasses/SolarThermalEfficiency.mo | 4 +- AixLib/Fluid/Solar/Thermal/SolarThermal.mo | 403 +- AixLib/Fluid/Sources/BaseClasses/Outside.mo | 153 +- .../BaseClasses/PartialPropertySource.mo | 55 +- .../Sources/BaseClasses/PartialSource.mo | 91 +- .../Sources/BaseClasses/PartialSource_Xi_C.mo | 69 +- AixLib/Fluid/Sources/Boundary_pT.mo | 199 +- AixLib/Fluid/Sources/Boundary_ph.mo | 183 +- .../Examples/MassFlowSource_WeatherData.mo | 33 +- AixLib/Fluid/Sources/Examples/Outside.mo | 31 +- .../Fluid/Sources/Examples/Outside_CpData.mo | 91 + .../Sources/Examples/Outside_CpData_Angles.mo | 111 + .../Examples/Outside_CpData_Specification.mo | 58 + .../Sources/Examples/Outside_CpLowRise.mo | 49 +- .../Sources/Examples/PropertySource_T.mo | 34 +- .../Sources/Examples/PropertySource_h.mo | 34 +- .../Examples/TraceSubstancesFlowSource.mo | 73 +- AixLib/Fluid/Sources/Examples/package.order | 3 + AixLib/Fluid/Sources/MassFlowSource_T.mo | 157 +- .../Sources/MassFlowSource_WeatherData.mo | 119 +- AixLib/Fluid/Sources/MassFlowSource_h.mo | 157 +- AixLib/Fluid/Sources/Outside.mo | 87 +- AixLib/Fluid/Sources/Outside_CpData.mo | 203 + AixLib/Fluid/Sources/Outside_CpLowRise.mo | 269 +- AixLib/Fluid/Sources/PropertySource_T.mo | 65 +- AixLib/Fluid/Sources/PropertySource_h.mo | 65 +- .../Sources/TraceSubstancesFlowSource.mo | 190 +- .../Validation/BaseClasses/BoundarySystem.mo | 46 +- .../BaseClasses/BoundarySystemWithX_in.mo | 29 +- .../BaseClasses/BoundarySystemWithXi_in.mo | 29 +- .../Sources/Validation/BaseClasses/package.mo | 1 + AixLib/Fluid/Sources/Validation/Boundary.mo | 36 +- .../Sources/Validation/BoundaryWithX_in.mo | 36 +- .../Sources/Validation/BoundaryWithXi_in.mo | 36 +- .../Validation/Outside_CpData_Directions.mo | 97 + AixLib/Fluid/Sources/Validation/package.order | 1 + AixLib/Fluid/Sources/package.order | 1 + AixLib/Fluid/Storage/BaseClasses/Bouyancy.mo | 18 +- AixLib/Fluid/Storage/BaseClasses/Buoyancy.mo | 97 +- .../Examples/IndirectTankHeatExchanger.mo | 69 +- .../BaseClasses/HeatTransferBuoyancyWetter.mo | 11 +- .../BaseClasses/HeatTransferLambdaEff.mo | 21 +- .../HeatTransferLambdaEffSmooth.mo | 21 +- .../BaseClasses/HeatTransferLambdaSimple.mo | 16 +- .../BaseClasses/HeatTransferOnlyConduction.mo | 11 +- .../Fluid/Storage/BaseClasses/HeatingCoil.mo | 23 +- .../BaseClasses/IndirectTankHeatExchanger.mo | 223 +- .../Storage/BaseClasses/PartialStratified.mo | 298 +- .../Fluid/Storage/BaseClasses/StorageCover.mo | 58 +- .../Storage/BaseClasses/StorageMantle.mo | 46 +- .../BaseClasses/ThirdOrderStratifier.mo | 137 +- AixLib/Fluid/Storage/BufferStorage.mo | 93 +- .../Fluid/Storage/Examples/ExpansionVessel.mo | 15 +- .../Fluid/Storage/Examples/StorageBoiler.mo | 62 +- .../Storage/Examples/StorageSolarCollector.mo | 51 +- AixLib/Fluid/Storage/Examples/Stratified.mo | 35 +- .../Examples/StratifiedEnhancedInternalHex.mo | 141 +- .../StratifiedUnloadAtMinimumTemperature.mo | 61 +- .../Storage/Examples/TwoPhaseSeparator.mo | 12 +- AixLib/Fluid/Storage/ExpansionVessel.mo | 152 +- AixLib/Fluid/Storage/Storage.mo | 63 +- AixLib/Fluid/Storage/Stratified.mo | 243 +- AixLib/Fluid/Storage/StratifiedEnhanced.mo | 117 +- .../Storage/StratifiedEnhancedInternalHex.mo | 292 +- AixLib/Fluid/Storage/TwoPhaseSeparator.mo | 278 +- .../Validation/HeatExchangerDynamics.mo | 62 +- .../Validation/HeatExchangerLocation.mo | 64 +- .../Validation/StratifiedLoadingUnloading.mo | 33 +- .../Validation/StratifiedNonUniformInitial.mo | 31 +- AixLib/Fluid/Storage/package.mo | 1 + AixLib/Fluid/Types.mo | 267 +- AixLib/Media/Air.mo | 1180 +- AixLib/Media/AirIncompressible.mo | 66 +- .../BaseClasses/PropertyCoefficients.mo | 45 +- .../Media/Antifreeze/EthyleneGlycolWater.mo | 580 +- .../Media/Antifreeze/PropyleneGlycolWater.mo | 570 +- .../BaseClasses/EthyleneGlycolWater.mo | 234 +- .../Validation/BaseClasses/FluidProperties.mo | 67 +- .../BaseClasses/PropyleneGlycolWater.mo | 234 +- .../Validation/EthyleneGlycolWater.mo | 38 +- .../Validation/PropyleneGlycolWater.mo | 38 +- AixLib/Media/Examples/AirDerivativeCheck.mo | 73 +- AixLib/Media/Examples/AirProperties.mo | 25 +- .../AirTemperatureEnthalpyInversion.mo | 27 +- .../Examples/BaseClasses/FluidProperties.mo | 63 +- .../Examples/BaseClasses/PartialProperties.mo | 143 +- .../TestTemperatureEnthalpyInversion.mo | 74 +- .../PropyleneGlycolWaterDerivativeCheck.mo | 41 +- .../PropyleneGlycolWaterProperties.mo | 26 +- ...GlycolWaterTemperatureEnthalpyInversion.mo | 30 +- AixLib/Media/Examples/SteamDerivativeCheck.mo | 72 + AixLib/Media/Examples/SteamProperties.mo | 59 + .../SteamSaturationConsistencyCheck.mo | 122 + .../SteamTemperatureEnthalpyInversion.mo | 34 + AixLib/Media/Examples/WaterDerivativeCheck.mo | 53 +- AixLib/Media/Examples/WaterProperties.mo | 23 +- .../WaterTemperatureEnthalpyInversion.mo | 27 +- AixLib/Media/Examples/package.order | 4 + .../Examples/RefrigerantProperties.mo | 57 +- .../PartialHybridTwoPhaseMediumFormula.mo | 788 +- .../PartialHybridTwoPhaseMediumRecord.mo | 800 +- .../TemplateHybridTwoPhaseMediumFormula.mo | 8 +- .../TemplateHybridTwoPhaseMediumRecord.mo | 8 +- .../R134a_IIR_P1_395_T233_370_Formula.mo | 216 +- .../R134a/R134a_IIR_P1_395_T233_370_Record.mo | 216 +- .../R134a_IIR_P1_395_T233_455_Formula.mo | 216 +- .../R134a/R134a_IIR_P1_395_T233_455_Horner.mo | 216 +- .../R290/R290_IIR_P05_30_T263_343_Formula.mo | 193 +- .../R290/R290_IIR_P05_30_T263_343_Horner.mo | 193 +- .../R290/R290_IIR_P05_30_T263_343_Record.mo | 193 +- .../R410A/dPressureVap_dSpecificVolume_Tv.mo | 60 +- .../R410A/dPressureVap_dTemperature_Tv.mo | 60 +- .../R410A/dSpecificVolumeVap_pT.mo | 36 +- .../Refrigerants/R410A/enthalpySatLiq_T.mo | 44 +- .../Refrigerants/R410A/enthalpySatVap_T.mo | 44 +- .../R410A/isentropicExponentVap_Tv.mo | 79 +- AixLib/Media/Refrigerants/R410A/package.mo | 17 +- AixLib/Media/Refrigerants/R410A/package.order | 5 +- .../Refrigerants/R410A/pressureSatVap_T.mo | 42 +- .../Refrigerants/R410A/pressureVap_Tv.mo | 65 +- .../specificIsobaricHeatCapacityVap_Tv.mo | 88 +- .../specificIsochoricHeatCapacityVap_Tv.mo | 95 +- .../R410A/specificVolumeVap_pT.mo | 76 +- .../package.mo | 235 +- .../package.order | 30 + .../package.mo | 235 +- .../package.order | 8 + .../package.mo | 235 +- .../package.order | 30 + .../package.mo | 235 +- .../package.order | 30 + .../Refrigerants/UsersGuide/Approaches.mo | 695 +- .../Media/Refrigerants/UsersGuide/Naming.mo | 446 +- .../Refrigerants/UsersGuide/References.mo | 2 +- .../Validation/R410A_dSpecificVolumeVap_pT.mo | 44 +- .../Validation/RefrigerantInversions.mo | 43 +- .../RefrigerantsDerivativesR134a.mo | 24 +- .../RefrigerantsFittedFormulasR134a.mo | 78 +- .../Air/Examples/PerfectGasDerivativeCheck.mo | 53 +- .../PerfectGasTemperatureEnthalpyInversion.mo | 27 +- AixLib/Media/Specialized/Air/PerfectGas.mo | 391 +- .../Water/ConstantProperties_pT/package.mo | 49 +- ...peratureDependentDensityDerivativeCheck.mo | 53 +- .../TemperatureDependentDensityProperties.mo | 23 +- ...dentDensityTemperatureEnthalpyInversion.mo | 27 +- .../Water/Examples/WaterProperties_pT.mo | 27 +- .../Water/TemperatureDependentDensity.mo | 1087 +- AixLib/Media/Steam.mo | 931 + AixLib/Media/Water.mo | 389 +- AixLib/Media/package.order | 1 + AixLib/Obsolete/BaseClasses/ObsoleteModel.mo | 13 +- .../DataBase/SolarElectric/package.order | 1 - .../Fluid/HeatPumps/BaseClasses/CycleHP.mo | 23 +- .../HeatPumps/Examples/HeatPumpDetailed.mo | 2 +- .../Fluid/HeatPumps/HeatPumpDetailed.mo | 10 +- .../Fluid/HeatPumps/HeatPumpSimple.mo | 15 +- .../Year2019/Fluid/Storage/StorageWall.mo | 9 +- .../Utilities/HeatTransfer/HeatToStar.mo | 4 +- .../Humans/HumanSensibleHeatAreaSpecific.mo | 17 +- .../Humans/HumanSensibleHeat_VDI2078.mo | 14 +- .../Humans/HumanTotalHeat_VDI2078.mo | 8 +- .../Year2020/FastHVAC/Storage/HeatStorage.mo | 45 +- .../Components/Walls/Wall_ASHRAE140.mo | 62 +- .../Rooms/MFD/CellarAttic/Attic_Ro2Lf1.mo | 58 +- .../HighOrder/Rooms/MFD/CellarAttic/Cellar.mo | 31 +- AixLib/Obsolete/Year2021/DataBase.mo | 16 +- .../Obsolete/Year2021/Electrical/PVSystem.mo | 65 +- .../Fluid/Actuators/Valves/MixingValve.mo | 4 +- .../Fluid/Actuators/Valves/SimpleValve.mo | 2 +- .../Actuators/Valves/ThermostaticValve.mo | 2 +- .../Examples/PumpRadiatorThermostaticValve.mo | 9 +- .../Fluid/Examples/PumpRadiatorValve.mo | 9 +- .../Year2021/Fluid/Examples/package.mo | 4 + .../Year2021/Fluid/Examples/package.order | 2 + AixLib/Obsolete/Year2021/Fluid/Movers/Pump.mo | 18 +- AixLib/Obsolete/Year2021/Fluid/package.order | 1 + .../Year2022}/Examples/NcDataReader.mo | 6 +- AixLib/Obsolete/Year2022/Examples/package.mo | 4 + .../Obsolete/Year2022/Examples/package.order | 1 + .../HighOrder/Examples/Appartment_VoWo.mo | 49 +- .../HighOrder/Examples/package.mo | 4 + .../HighOrder/Examples/package.order | 1 + .../House/MFD/BuildingAndEnergySystem.mo | 241 + .../HighOrder/House/MFD/BuildingEnvelope.mo | 275 + .../HighOrder/House/MFD/EnergySystem.mo | 529 + .../HighOrder/House/MFD/package.mo | 3 + .../HighOrder/House/MFD/package.order | 2 +- .../ThermalZones/HighOrder/House/package.mo | 3 + .../HighOrder/House/package.order | 1 + .../ThermalZones/HighOrder/Rooms/MFD.mo | 2006 ++ .../ThermalZones/HighOrder/Rooms/package.mo | 3 + .../HighOrder/Rooms/package.order | 1 + .../ThermalZones/HighOrder/package.mo | 3 + .../ThermalZones/HighOrder/package.order | 3 + .../Obsolete/Year2022/ThermalZones/package.mo | 3 + .../Year2022/ThermalZones/package.order | 1 + .../Year2022/Utilities}/NcDataReader.mo | 19 +- AixLib/Obsolete/Year2022/Utilities/package.mo | 23 + .../Obsolete/Year2022/Utilities/package.order | 1 + AixLib/Obsolete/Year2022/package.mo | 3 + AixLib/Obsolete/Year2022/package.order | 3 + .../EvaporatorCondenserWithCapacity.mo | 17 +- .../FastHVAC/BaseClasses/WorkingFluid.mo | 4 +- .../FastHVAC/Components/Chiller/Chiller.mo | 135 +- .../BaseClasses/ML_thermal_delta.mo | 39 +- .../HeatExchangers/DHWHeatExchanger.mo | 17 +- .../HeatExchangers/MultiRadiator.mo | 6 +- .../HeatExchangers/RadiatorMultiLayer.mo | 1228 +- .../HeatGenerators/Boiler/Boiler.mo | 10 +- .../Components/HeatGenerators/CHP/CHP_PT1.mo | 46 +- .../HeatGenerators/HeatPump/HeatPump.mo | 135 +- .../Components/Pipes/BaseClasses/PipeBase.mo | 16 +- .../FastHVAC/Components/Pipes/DynamicPipe.mo | 63 +- .../Components/Pipes/DynamicPipeAggregated.mo | 81 +- .../FastHVAC/Components/Pumps/FluidSource.mo | 2 +- .../FastHVAC/Components/Pumps/Pump.mo | 2 +- .../BaseClasses/HeatTransferBuoyancyWetter.mo | 10 +- .../HeatTransferDirectedHeatTransfer.mo | 18 +- .../BaseClasses/HeatTransferLambdaEff.mo | 14 +- .../HeatTransferLambdaEffSmooth.mo | 14 +- .../BaseClasses/HeatTransferOnlyConduction.mo | 10 +- .../Storage/BaseClasses/HeatTransferQbuoy.mo | 16 +- .../BaseClasses/HeatTransferQbuoyTimer.mo | 20 +- .../Storage/BaseClasses/HeatingCoil.mo | 12 +- .../Storage/BaseClasses/QBuoyFunction.mo | 33 +- .../BaseClasses/QBuoyFunctions/cBotDown.mo | 4 +- .../BaseClasses/QBuoyFunctions/cBotUp.mo | 4 +- .../BaseClasses/QBuoyFunctions/cTopDown.mo | 4 +- .../BaseClasses/QBuoyFunctions/cTopUp.mo | 4 +- .../BaseClasses/QBuoyFunctions/dToverEff.mo | 4 +- .../BaseClasses/QBuoyFunctions/dhDown.mo | 2 +- .../BaseClasses/QBuoyFunctions/isBuoy.mo | 2 +- .../BaseClasses/QBuoyFunctions/package.order | 20 +- .../BaseClasses/QBuoyFunctions/qBotmix.mo | 8 +- .../BaseClasses/QBuoyFunctions/qFreebuoy.mo | 6 +- .../BaseClasses/QBuoyFunctions/qTopmix.mo | 8 +- .../BaseClasses/QBuoyFunctions/qbot.mo | 6 +- .../BaseClasses/QBuoyFunctions/qbuoy0.mo | 4 +- .../BaseClasses/QBuoyFunctions/qbuoySingle.mo | 8 +- .../BaseClasses/QBuoyFunctions/qbuoyTotal.mo | 10 +- .../BaseClasses/QBuoyFunctions/qtop.mo | 6 +- .../BaseClasses/QBuoyFunctions/xDown.mo | 2 +- .../buoyancyDitribution/buoyancyDist.mo | 3 +- .../buoyancyDitribution/package.order | 4 +- .../Storage/HeatStorageVariablePorts.mo | 41 +- .../Components/Storage/StorageSimpleWall.mo | 33 +- .../Valves/BaseClases/HysteresisValve.mo | 2 +- .../Components/Valves/ThermostaticValve.mo | 17 +- ...HeatingCurvesDayNightBaseDataDefinition.mo | 4 +- .../BoilerTwoPointBaseDataDefinition.mo | 4 +- .../FastHVAC/Data/CHP/BaseDataDefinition.mo | 12 +- .../FastHVAC/Examples/Chiller/Chiller.mo | 4 +- .../HeatGenerators/HeatPump/HeatPump.mo | 2 +- .../Valves/ThermostaticValveRadiator.mo | 5 +- .../FastHVAC/Examples/Valves/ThreeWayValve.mo | 2 +- .../FastHVAC/Interfaces/EnthalpyPort.mo | 8 +- .../Interfaces/TwoPortHeatMassExchanger.mo | 21 +- .../Media/BaseClasses/MediumSimple.mo | 8 +- .../YearIndependent/Utilities/HeatTransfer.mo | 32 +- AixLib/Obsolete/package.order | 14 +- .../Resources/C-Sources/cryptographicsHash.c | 2 +- AixLib/Resources/C-Sources/fileWriterFree.c | 4 +- AixLib/Resources/C-Sources/fileWriterInit.c | 1 + .../Resources/C-Sources/fileWriterStructure.c | 2 + AixLib/Resources/C-Sources/getTimeSpan.c | 8 +- AixLib/Resources/C-Sources/jsonWriterInit.c | 4 +- .../BESTEST/{725650.epw => WD100.epw} | 17536 ++++++++-------- .../BESTEST/{725650.mos => WD100.mos} | 0 .../Validation/BESTEST/WD200.epw | 8768 ++++++++ .../Validation/BESTEST/WD200.mos | 8800 ++++++++ .../Validation/BESTEST/WD300.epw | 8768 ++++++++ .../Validation/BESTEST/WD300.mos | 8800 ++++++++ .../Validation/BESTEST/WD400.epw | 8768 ++++++++ .../Validation/BESTEST/WD400.mos | 8800 ++++++++ .../Validation/BESTEST/WD500.epw | 8768 ++++++++ .../Validation/BESTEST/WD500.mos | 8800 ++++++++ .../Validation/BESTEST/WD600.epw | 17536 ++++++++-------- .../Validation/BESTEST/generateResults.py | 34 +- .../Examples/CSVReader/{Data.csv => Data.txt} | 2 +- .../userGuide/source/_static/lbl-logo.png | Bin .../SkyTemperature/BaseClasses/Cloud.jpg | Bin .../WeatherData/RadiationTimeShift.png | Bin .../Continuous/Examples/PIDHysteresis.png | Bin 10274 -> 0 bytes .../Examples/PIDHysteresisTimerError.png | Bin 6592 -> 0 bytes .../Examples/PIDHysteresisTimerOutput.png | Bin 4470 -> 0 bytes .../Continuous/Examples/SignalRankerU.png | Bin 12892 -> 9143 bytes .../Continuous/Examples/SignalRankerY.png | Bin 13007 -> 9364 bytes .../Movers/DpControlledMovers/CurveTypes.jpg | Bin 0 -> 35885 bytes .../Movers/DpControlledMovers/CurveTypes.xlsx | Bin 0 -> 14837 bytes .../Movers/UsersGuide/2013-IBPSA-Wetter.pdf | Bin .../Fluid/Movers/Validation/PowerExact.png | Bin 51058 -> 45955 bytes .../Fluid/Movers/Validation/PowerExact.svg | 1192 +- .../Movers/Validation/PowerSimplified.png | Bin 44232 -> 48379 bytes .../Movers/Validation/PowerSimplified.svg | 1255 +- .../Images/Fluid/Sources/Outside_CpData.png | Bin 0 -> 63801 bytes .../Images/Fluid/Sources/Outside_CpData.svg | 430 + ...b_Airflow_AirHandlingUnit_Examples_AHU.txt | 2 +- ...izone_BaseClasses_Examples_Interpolate.txt | 9 + ...seClasses_Examples_WindPressureProfile.txt | 9 + ...Airflow_Multizone_Examples_ClosedDoors.txt | 14 +- ...Airflow_Multizone_Examples_OneOpenDoor.txt | 18 +- ...ib_Airflow_Multizone_Examples_PowerLaw.txt | 13 + ..._Multizone_Examples_PressurizationData.txt | 13 + ...low_Multizone_Examples_ReverseBuoyancy.txt | 32 +- ...Airflow_Multizone_Examples_TrickleVent.txt | 11 + ...ow_Multizone_Validation_DoorOpenClosed.txt | 2 +- ...irflow_Multizone_Validation_OneWayFlow.txt | 25 + ...one_Validation_OpenDoorBuoyancyDynamic.txt | 14 +- ...dation_OpenDoorBuoyancyPressureDynamic.txt | 12 +- ..._Multizone_Validation_OpenDoorPressure.txt | 2 +- ...ltizone_Validation_OpenDoorTemperature.txt | 2 +- ...dation_ThreeRoomsContamDiscretizedDoor.txt | 26 +- ...ry_BaseClasses_Examples_IncidenceAngle.txt | 13 +- ...metry_BaseClasses_Examples_ZenithAngle.txt | 13 +- ..._SolarGeometry_Examples_IncidenceAngle.txt | 21 +- ...ons_SolarGeometry_Examples_ZenithAngle.txt | 13 +- ...n_BaseClasses_Examples_RelativeAirMass.txt | 13 +- ...tion_BaseClasses_Examples_SkyClearness.txt | 12 +- ...SolarIrradiation_Examples_DiffusePerez.txt | 16 +- ...radiation_Examples_DirectTiltedSurface.txt | 17 +- ...aryConditions_Validation_BESTEST_WD100.txt | 24 +- ...aryConditions_Validation_BESTEST_WD200.txt | 24 +- ...aryConditions_Validation_BESTEST_WD300.txt | 32 +- ...aryConditions_Validation_BESTEST_WD400.txt | 24 +- ...aryConditions_Validation_BESTEST_WD500.txt | 52 +- ...aryConditions_Validation_BESTEST_WD600.txt | 24 +- ...a_BaseClasses_Examples_GetAltitudeTMY3.txt | 9 + ...ses_Examples_GetTimeSpanTMY3LongHeader.txt | 2 +- ...therData_BaseClasses_Examples_LimitMin.txt | 2 +- ...ls_Continuous_Examples_LimPIDWithReset.txt | 12 +- ...trols_Continuous_Examples_SignalRanker.txt | 23 +- ...ib_Electrical_Examples_ExamplePVSystem.txt | 9 + ...ectrical_Validation_ValidationPVSystem.txt | 10 + ...d_Actuators_Dampers_Examples_MixingBox.txt | 8 +- ...ors_Dampers_Examples_VAVBoxExponential.txt | 10 +- ...Dampers_Validation_PressureIndependent.txt | 4 +- ..._BaseClasses_Validation_ActuatorFilter.txt | 13 + ..._BoilerCHP_Examples_CHPSystemNoControl.txt | 13 + ...AixLib_Fluid_Chillers_Examples_Chiller.txt | 16 +- ...emands_Examples_OpenLoopHeatPumpCarnot.txt | 10 +- ..._Demands_Examples_OpenLoopVarTSupplyDp.txt | 10 +- ...ds_Examples_OpenLoopVarTSupplyDpBypass.txt | 14 +- ...pVarTSupplyDpFixedTempDifferenceBypass.txt | 8 +- ...tHeatingCooling_Pipes_Examples_DHCPipe.txt | 16 +- ...AixLib_Fluid_Examples_FlowSystem_Basic.txt | 8 +- ..._Fluid_Examples_FlowSystem_Simplified1.txt | 6 +- ..._Fluid_Examples_FlowSystem_Simplified2.txt | 6 +- ..._Fluid_Examples_FlowSystem_Simplified3.txt | 6 +- ..._Fluid_Examples_FlowSystem_Simplified4.txt | 18 +- ..._Fluid_Examples_FlowSystem_Simplified5.txt | 8 +- ...xLib_Fluid_Examples_GeothermalHeatPump.txt | 20 +- .../AixLib_Fluid_Examples_SimpleHouse.txt | 10 +- ...tors_Examples_ThermalZoneHVACNoExhaust.txt | 8 +- ...xportContainers_Examples_FMUs_HVACZone.txt | 34 +- ...portContainers_Examples_FMUs_HVACZones.txt | 112 +- ...rtContainers_Examples_FMUs_ThermalZone.txt | 4 +- ...tContainers_Examples_FMUs_ThermalZones.txt | 4 +- .../AixLib_Fluid_FMI_Validation_HeaterFan.txt | 4 +- ...FMI_Validation_HeaterFanPressureDriven.txt | 4 +- ...FixedResistances_Examples_PlugFlowPipe.txt | 8 +- ...ances_Examples_PlugFlowPipeDiscretized.txt | 17 + ...d_FixedResistances_Examples_SimplePipe.txt | 4 +- ..._Validation_PlugFlowPipes_FlowReversal.txt | 19 +- ...tances_Validation_PlugFlowPipes_MSLAIT.txt | 10 +- ..._Validation_PlugFlowPipes_MSLAIT2Nodes.txt | 10 +- ...s_Validation_PlugFlowPipes_PlugFlowAIT.txt | 14 +- ...s_Validation_PlugFlowPipes_PlugFlowULg.txt | 6 +- ...dation_PlugFlowPipes_TransportWaterAir.txt | 26 +- ...ances_Validation_PressureDropsExplicit.txt | 6 +- ...seClasses_Examples_InternalHEXTwoUTube.txt | 4 +- ...es_Boreholes_Examples_BoreholeDynamics.txt | 4 +- ...es_Boreholes_Examples_BoreholeTwoUTube.txt | 4 +- ...thermal_Borefields_Examples_Borefields.txt | 4 +- ...ActiveBeams_Examples_CoolingAndHeating.txt | 6 +- ...ngers_ActiveBeams_Examples_HeatingOnly.txt | 8 +- ...id_HeatExchangers_Examples_AirHeater_u.txt | 8 +- ...amples_DryCoilEffectivenessNTUPControl.txt | 16 +- ...uid_HeatExchangers_Examples_HeatingRod.txt | 8 +- ..._HeatExchangers_Examples_WaterCooler_T.txt | 8 +- ..._HeatExchangers_Examples_WaterHeater_T.txt | 10 +- ..._HeatExchangers_Examples_WaterHeater_u.txt | 8 +- ...amples_WetCoilEffectivenessNTUMassFlow.txt | 18 + ...ers_Validation_DryCoilEffectivenessNTU.txt | 2 +- ...ers_Validation_WetCoilEffectivenessNTU.txt | 23 + ...ation_ScrollWaterToWater_ScalingFactor.txt | 6 +- ...rs_Validation_SprayAirWasher_X_dynamic.txt | 10 +- ...s_Validation_SteamHumidifier_X_dynamic.txt | 18 +- ...aces_Examples_ReverseFlowMassExchanger.txt | 4 +- ...xchangers_Validation_DynamicValidation.txt | 8 +- ...Exchangers_Validation_StaticValidation.txt | 8 +- ...edMovers_Examples_DpControlled_dpConst.txt | 20 + ...lledMovers_Examples_DpControlled_dpVar.txt | 20 + ...Lib_Fluid_Movers_Examples_ClosedLoop_y.txt | 6 +- ...b_Fluid_Movers_Examples_MoverParameter.txt | 4 +- ...ib_Fluid_Movers_Examples_PumpsParallel.txt | 10 +- ...xLib_Fluid_Movers_Examples_PumpsSeries.txt | 10 +- ...omialBased_Examples_PumpHeadControlled.txt | 18 + ...mialBased_Examples_PumpSpeedControlled.txt | 18 + ...lBased_Examples_PumpSpeedControlledDpV.txt | 18 + ...overs_Validation_ControlledFlowMachine.txt | 16 +- ...alidation_ControlledFlowMachineDynamic.txt | 18 +- ...Movers_Validation_PumpCurveDerivatives.txt | 8 +- ...id_Movers_Validation_Pump_Nrpm_stratos.txt | 32 +- ..._Fluid_Sources_Examples_Outside_CpData.txt | 13 + ...Sources_Examples_Outside_CpData_Angles.txt | 13 + ..._Examples_Outside_CpData_Specification.txt | 11 + ...xLib_Fluid_Sources_Validation_Boundary.txt | 28 +- ...id_Sources_Validation_BoundaryWithX_in.txt | 20 +- ...d_Sources_Validation_BoundaryWithXi_in.txt | 20 +- ...s_Validation_Outside_CpData_Directions.txt | 17 + ...b_Fluid_Storage_Examples_BufferStorage.txt | 8 +- ...orage_Validation_HeatExchangerDynamics.txt | 12 +- ...orage_Validation_HeatExchangerLocation.txt | 6 +- ..._Validation_StratifiedLoadingUnloading.txt | 28 +- ...ifreeze_Validation_EthyleneGlycolWater.txt | 2 +- .../AixLib_Media_Examples_AirProperties.txt | 54 +- ...ib_Media_Examples_SteamDerivativeCheck.txt | 15 + .../AixLib_Media_Examples_SteamProperties.txt | 28 + ...amples_SteamSaturationConsistencyCheck.txt | 20 + ...ples_SteamTemperatureEnthalpyInversion.txt | 10 + ...eatPumpSystems_Examples_HeatPumpSystem.txt | 21 + ...Systems_ModularAHU_Examples_GenericAHU.txt | 21 + ...mpareDynamicAndStaticSolarFrac_Case270.txt | 4 +- ...alZones_HighOrder_Examples_OFDHeatLoad.txt | 26 +- ...hOrder_Examples_RoomGFOw2_DayNightMode.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case210.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case220.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case230.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case240.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case250.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case270.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case280.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case300.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case320.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case395.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case400.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case410.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case420.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case430.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case440.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case600.txt | 14 +- ...ghOrder_Validation_ASHRAE140_Case600FF.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case620.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case640.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case650.txt | 12 +- ...ghOrder_Validation_ASHRAE140_Case650FF.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case800.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case810.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case900.txt | 14 +- ...ghOrder_Validation_ASHRAE140_Case900FF.txt | 12 +- ...HighOrder_Validation_ASHRAE140_Case920.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case940.txt | 14 +- ...HighOrder_Validation_ASHRAE140_Case950.txt | 12 +- ...ghOrder_Validation_ASHRAE140_Case950FF.txt | 12 +- ...dation_EmpiricalValidation_TwinHouseN2.txt | 6 +- ...lidation_EmpiricalValidation_Warehouse.txt | 6 +- ...cedOrder_Examples_MultizoneMoistAirCO2.txt | 6 +- ..._Examples_MultizoneMoistAirCO2Equipped.txt | 6 +- ...dOrder_Examples_SimpleRoomFourElements.txt | 6 +- ...s_SimpleRoomFourElementsTraceSubstance.txt | 8 +- ...cedOrder_Examples_SimpleRoomOneElement.txt | 4 +- ...Order_Examples_SimpleRoomThreeElements.txt | 4 +- ...edOrder_Examples_SimpleRoomTwoElements.txt | 4 +- ...educedOrder_Validation_RoomSteadyState.txt | 2 +- ...cedOrder_Validation_RoomWithLatentGain.txt | 10 +- ...Order_Validation_RoomWithoutLatentGain.txt | 8 +- ...ucedOrder_Validation_VDI6007_TestCase1.txt | 22 +- ...cedOrder_Validation_VDI6007_TestCase10.txt | 22 +- ...cedOrder_Validation_VDI6007_TestCase11.txt | 8 +- ...cedOrder_Validation_VDI6007_TestCase12.txt | 22 +- ...ucedOrder_Validation_VDI6007_TestCase2.txt | 22 +- ...ucedOrder_Validation_VDI6007_TestCase3.txt | 22 +- ...ucedOrder_Validation_VDI6007_TestCase4.txt | 22 +- ...ucedOrder_Validation_VDI6007_TestCase5.txt | 22 +- ...ucedOrder_Validation_VDI6007_TestCase6.txt | 8 +- ...ucedOrder_Validation_VDI6007_TestCase7.txt | 8 +- ...ucedOrder_Validation_VDI6007_TestCase8.txt | 22 +- ...ucedOrder_Validation_VDI6007_TestCase9.txt | 22 +- ...SignalExchange_Examples_WeatherStation.txt | 10 +- ..._Utilities_Math_Examples_MovingAverage.txt | 11 + ...Lib_Utilities_Math_Examples_Polynomial.txt | 4 + ...ns_Examples_SmoothHeavisideDerivatives.txt | 4 +- ...Examples_SpliceFunctionDerivativeCheck.txt | 18 +- ...ples_SaturationPressureDerivativeCheck.txt | 16 +- ...tilities_Sensors_Examples_ExergyMeters.txt | 11 + ...amples_DryCoilEffectivenessNTUPControl.txt | 24 - .../ConvertIBPSA_from_3.0_to_4.0.mos | 188 + .../ConvertAixLib_from_0.7.9_to_0.7.10.mos | 4 + .../ConvertAixLib_from_1.0.1_to_1.0.2.mos | 7 + .../ConvertAixLib_from_1.0.2_to_1.0.3.mos | 6 + .../ConvertAixLib_from_1.0.3_to_1.0.4.mos | 10 + .../ConvertAixLib_from_1.0.3_to_1.1.0.mos | 187 + .../ConvertAixLib_from_1.1.0_to_1.2.0.mos | 80 + .../ConvertAixLib_from_1.2.0_to_1.2.1.mos | 5 + .../ConvertAixLib_from_1.2.1_to_1.2.2.mos | 14 + .../BaseClasses/Examples/Interpolate.mos | 2 + .../Examples/WindPressureProfile.mos | 2 + .../Multizone/Examples/OneOpenDoor.mos | 2 +- .../Airflow/Multizone/Examples/PowerLaw.mos | 2 + .../Multizone/Examples/PressurizationData.mos | 7 + .../Multizone/Examples/TrickleVent.mos | 3 + .../Multizone/Validation/OneWayFlow.mos | 3 + .../BaseClasses/Examples/GetAltitudeTMY3.mos | 2 + .../Continuous/Examples/PIDHysteresis.mos | 25 - .../Examples/PIDHysteresisTimer.mos | 25 - .../Electrical/Examples/ExamplePVSystem.mos | 7 + .../Validation/ValidationPVSystem.mos | 7 + .../BaseClasses/Validation/ActuatorFilter.mos | 4 + .../BoilerCHP/Examples/CHPSystemNoControl.mos | 3 + .../Examples/OpenLoopHeatPumpCarnot.mos | 10 +- .../Examples/OpenLoopVarTSupplyDpBypass.mos | 4 - .../Fluid/Examples/GeothermalHeatPump.mos | 2 +- .../BaseClasses/Validation/PlugFlowCore.mos | 13 - .../Examples/PlugFlowPipe.mos | 4 +- .../Examples/PlugFlowPipeDiscretized.mos | 6 + .../Validation/PlugFlowPipes/FlowReversal.mos | 2 +- .../PlugFlowPipes/TransportWaterAir.mos | 6 +- .../WetCoilEffectivenessNTUMassFlow.mos | 15 + .../Validation/WetCoilEffectivenessNTU.mos | 62 + .../Examples/DpControlled_dpConst.mos | 29 + .../Examples/DpControlled_dpVar.mos | 29 + .../Examples/PumpHdpVarControlTest.mos | 31 - .../Examples/PumpHeadControlled.mos | 7 + .../Examples/PumpNdpVarControlTest.mos | 18 - .../Examples/PumpSpeedControlled.mos | 6 + .../Examples/PumpSpeedControlledDpV.mos | 6 + .../PumpSpeedControlledLimiterTest.mos | 12 - .../Examples/PumpSpeedControlledTest.mos | 19 - .../Fluid/Movers/Validation/PowerExact.mos | 2 +- .../Movers/Validation/PowerSimplified.mos | 2 +- .../Fluid/Sources/Examples/Outside_CpData.mos | 31 + .../Examples/Outside_CpData_Angles.mos | 31 + .../Examples/Outside_CpData_Specification.mos | 2 + .../Validation/Outside_CpData_Directions.mos | 4 + .../Media/Examples/SteamDerivativeCheck.mos | 15 + .../Dymola/Media/Examples/SteamProperties.mos | 121 + .../SteamSaturationConsistencyCheck.mos | 44 + .../SteamTemperatureEnthalpyInversion.mos | 11 + .../ModularAHU/Examples/GenericAHU.mos | 4 + .../Systems/ModularAHU/Examples/Heater.mos | 6 + .../Examples/MultizoneMoistAirCO2Equipped.mos | 23 - .../Validation/VDI6007/TestCase11.mos | 2 +- .../Utilities/Math/Examples/MovingAverage.mos | 4 + .../Utilities/Math/Examples/Polynomial.mos | 4 + .../Utilities/Math/Examples/Polynominal.mos | 4 - .../Math/Functions/Examples/Polynomial.mos | 4 +- .../SpliceFunctionDerivativeCheck.mos | 29 +- .../Sensors/Examples/ExergyMeters.mos | 2 + .../Resources/Scripts/mergeModelicaIBPSA.py | 4 +- AixLib/Resources/Scripts/travis/dymola/dymola | 2 +- .../jm_ipython.sh => travis/omc/omc} | 28 +- AixLib/Resources/src/convertEPW/Makefile | 0 AixLib/Resources/src/convertEPW/src/Makefile | 0 ...meManufacturer_ABC060_70kW_4_0COP_R410A.mo | 41 +- .../bootstrap-3.4.1/css/bootstrap-theme.css | 587 + .../css/bootstrap-theme.css.map | 1 + .../css/bootstrap-theme.min.css | 6 + .../css/bootstrap-theme.min.css.map | 1 + .../_static/bootstrap-3.4.1/css/bootstrap.css | 6834 ++++++ .../bootstrap-3.4.1/css/bootstrap.css.map | 1 + .../bootstrap-3.4.1/css/bootstrap.min.css | 6 + .../bootstrap-3.4.1/css/bootstrap.min.css.map | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../_static/bootstrap-3.4.1/js/bootstrap.js | 2580 +++ .../bootstrap-3.4.1/js/bootstrap.min.js | 6 + .../html/_static/bootstrap-3.4.1/js/npm.js | 13 + .../cerulean/bootstrap.min.css | 11 + .../bootswatch-3.4.1/cosmo/bootstrap.min.css | 11 + .../bootswatch-3.4.1/cyborg/bootstrap.min.css | 11 + .../bootswatch-3.4.1/darkly/bootstrap.min.css | 11 + .../bootswatch-3.4.1/flatly/bootstrap.min.css | 11 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../journal/bootstrap.min.css | 11 + .../bootswatch-3.4.1/lumen/bootstrap.min.css | 11 + .../bootswatch-3.4.1/paper/bootstrap.min.css | 11 + .../readable/bootstrap.min.css | 11 + .../sandstone/bootstrap.min.css | 11 + .../simplex/bootstrap.min.css | 11 + .../bootswatch-3.4.1/slate/bootstrap.min.css | 11 + .../spacelab/bootstrap.min.css | 11 + .../superhero/bootstrap.min.css | 11 + .../bootswatch-3.4.1/united/bootstrap.min.css | 11 + .../bootswatch-3.4.1/yeti/bootstrap.min.css | 11 + .../doc/build/html/_static/jquery-3.5.1.js | 10872 ++++++++++ .../html/_static/js/jquery-1.12.4.min.js | 5 + .../doc/build/html/_static/language_data.js | 297 - .../build/html/_static/underscore-1.13.1.js | 2042 ++ .../calibration/doc/requirements.txt | 31 + .../weatherdata/TRY2015_Jahr_City_Aachen.mos | 8799 ++++++++ .../BaseClasses/HPSystemController.mo | 43 +- .../BaseClasses/HeatPumpSystemParameters.mo | 48 +- .../BaseClasses/PartialHeatPumpSystem.mo | 125 +- .../HeatPumpSystems/BaseClasses/package.mo | 2 +- .../Examples/HeatPumpSystem.mo | 2 +- .../HeatPumpSystems/Examples/package.mo | 2 +- .../Systems/HeatPumpSystems/HeatPumpSystem.mo | 79 +- AixLib/Systems/HeatPumpSystems/package.mo | 2 +- AixLib/Systems/HydraulicModules/Admix.mo | 18 +- .../BaseClasses/BasicPumpInterface.mo | 6 +- .../BaseClasses/HydraulicBus.mo | 4 +- .../BaseClasses/PartialHydraulicModule.mo | 32 +- .../PumpInterface_PumpHeadControlled.mo | 143 +- .../PumpInterface_PumpSpeedControlled.mo | 125 +- .../PumpInterface_SpeedControlledNrpm.mo | 11 +- .../Controller/CalcHydraulicPower.mo | 79 + .../HydraulicModules/Controller/CtrMix.mo | 23 +- .../HydraulicModules/Controller/CtrPump.mo | 5 +- .../Controller/CtrPumpVFlow.mo | 29 +- .../Controller/CtrThrottle.mo | 37 +- .../Controller/CtrThrottleQFlow.mo | 166 + .../Controller/CtrThrottleVFlow.mo | 29 +- .../HydraulicModules/Controller/package.order | 2 + .../Systems/HydraulicModules/Example/Admix.mo | 3 +- .../ERC_ExperimentalHall_CoolingCircuit.mo | 31 +- .../HydraulicModules/Example/Injection.mo | 3 +- .../Example/Injection2WayValve.mo | 2 +- .../Systems/HydraulicModules/Example/Pump.mo | 2 +- .../HydraulicModules/Example/Throttle.mo | 2 +- .../HydraulicModules/Example/ThrottlePump.mo | 2 +- AixLib/Systems/HydraulicModules/Injection.mo | 140 +- .../HydraulicModules/Injection2WayValve.mo | 32 +- AixLib/Systems/HydraulicModules/Pump.mo | 2 +- .../HydraulicModules/SimpleConsumer.mo | 20 +- AixLib/Systems/HydraulicModules/Throttle.mo | 7 +- .../Systems/HydraulicModules/ThrottlePump.mo | 26 +- .../ModularAHU/BaseClasses/GenericAHUBus.mo | 43 + .../ModularAHU/BaseClasses/RegisterBus.mo | 5 +- .../ModularAHU/BaseClasses/package.order | 1 + .../ModularAHU/Controller/CtrAHUBasic.mo | 272 + .../ModularAHU/Controller/CtrRegBasic.mo | 90 +- .../ModularAHU/Controller/package.order | 1 + AixLib/Systems/ModularAHU/Examples/Cooler.mo | 19 +- .../ModularAHU/Examples/EONERC_AHU2.mo | 253 + .../Systems/ModularAHU/Examples/GenericAHU.mo | 190 + AixLib/Systems/ModularAHU/Examples/Heater.mo | 12 +- .../Systems/ModularAHU/Examples/package.order | 2 + AixLib/Systems/ModularAHU/GenericAHU.mo | 721 + AixLib/Systems/ModularAHU/RegisterModule.mo | 58 +- .../ModularAHU/Validation/AHU2_Cooler.mo | 97 +- .../ModularAHU/Validation/AHU2_Heater.mo | 94 +- .../ModularAHU/Validation/AHU2_Preheater.mo | 65 +- AixLib/Systems/ModularAHU/package.order | 1 + AixLib/Systems/TABS/BaseClasses/TabsBus.mo | 20 + AixLib/Systems/TABS/BaseClasses/package.mo | 5 + AixLib/Systems/TABS/BaseClasses/package.order | 1 + AixLib/Systems/TABS/Controller/CtrTabs.mo | 163 + AixLib/Systems/TABS/Controller/package.mo | 4 + AixLib/Systems/TABS/Controller/package.order | 1 + AixLib/Systems/TABS/Examples/Tabs.mo | 77 + AixLib/Systems/TABS/Examples/package.mo | 4 + AixLib/Systems/TABS/Examples/package.order | 1 + AixLib/Systems/TABS/Tabs.mo | 491 + AixLib/Systems/TABS/package.mo | 10 + AixLib/Systems/TABS/package.order | 4 + AixLib/Systems/package.order | 1 + .../HighOrder/Components/DryAir/Airload.mo | 12 +- .../Components/DryAir/DynamicVentilation.mo | 6 +- .../DryAir/InfiltrationRate_DIN12831.mo | 556 +- .../Components/DryAir/VarAirExchange.mo | 6 +- .../Components/Examples/DryAir/DryAir_test.mo | 23 +- .../Components/Examples/Walls/InsideWall.mo | 14 +- .../Components/Examples/Walls/OutsideWall.mo | 7 +- .../Examples/WindowsDoors/WindowSimple.mo | 3 +- .../MoistAir/VarMoistAirExchange.mo | 11 +- .../Sunblinds/BaseClasses/PartialSunblind.mo | 5 +- .../Components/Sunblinds/Sunblind.mo | 2 +- .../Components/Sunblinds/Sunblind_Task44.mo | 2 +- .../BaseClasses/ConvNLayerClearanceStar.mo | 43 +- .../Walls/BaseClasses/SimpleNLayer.mo | 12 +- .../HighOrder/Components/Walls/Wall.mo | 92 +- .../HighOrder/Components/Walls/package.mo | 2 +- .../CorrectionSolarGain/CorG_ASHRAE140.mo | 4 +- .../CorrectionSolarGain/CorG_VDI6007.mo | 2 +- .../CorrectionSolarGain/PartialCorG.mo | 4 +- .../WindowsDoors/BaseClasses/PartialWindow.mo | 4 +- .../HighOrder/Components/WindowsDoors/Door.mo | 17 +- .../Components/WindowsDoors/WindowSimple.mo | 5 +- .../WindowsDoors/Window_ASHRAE140.mo | 9 +- ...ompareDynamicAndStaticSolarFrac_Case270.mo | 37 +- .../HighOrder/Examples/OFDHeatLoad.mo | 25 +- .../HighOrder/Examples/OFD_1Jan.mo | 176 +- .../Examples/RoomGFOw2_DayNightMode.mo | 35 +- .../HighOrder/Examples/package.order | 1 - .../OneAppartment_Radiators.mo | 168 - .../MFD/BuildingAndEnergySystem/package.mo | 30 - .../MFD/BuildingAndEnergySystem/package.order | 1 - .../BuildingEnvelope/OneAppartment_VoWo.mo | 200 - .../House/MFD/BuildingEnvelope/package.mo | 12 - .../House/MFD/BuildingEnvelope/package.order | 1 - .../EnergySystem/OneAppartment/Radiators.mo | 464 - .../MFD/EnergySystem/OneAppartment/package.mo | 14 - .../EnergySystem/OneAppartment/package.order | 1 - .../House/MFD/EnergySystem/package.mo | 20 - .../House/MFD/EnergySystem/package.order | 1 - .../HighOrder/House/MFD/package.mo | 33 - .../GroundFloorBuildingEnvelope.mo | 114 +- .../UpperFloorBuildingEnvelope.mo | 103 +- .../WholeHouseBuildingEnvelope.mo | 127 +- .../HighOrder/House/package.order | 1 - .../Rooms/ASHRAE140/EastWestFacingWindows.mo | 348 +- .../Rooms/ASHRAE140/SouthFacingWindows.mo | 343 +- .../Rooms/BaseClasses/PartialRoom.mo | 208 +- .../Rooms/BaseClasses/PartialRoomFourWalls.mo | 338 + .../Rooms/BaseClasses/PartialRoomParams.mo | 75 +- .../HighOrder/Rooms/BaseClasses/package.order | 1 + .../Rooms/MFD/OneAppartment/Bathroom_VoWo.mo | 295 - .../Rooms/MFD/OneAppartment/Bedroom_VoWo.mo | 303 - .../Rooms/MFD/OneAppartment/Children_VoWo.mo | 306 - .../Rooms/MFD/OneAppartment/Corridor_VoWo.mo | 313 - .../Rooms/MFD/OneAppartment/Kitchen_VoWo.mo | 314 - .../MFD/OneAppartment/Livingroom_VoWo.mo | 309 - .../Rooms/MFD/OneAppartment/package.mo | 13 - .../Rooms/MFD/OneAppartment/package.order | 6 - .../HighOrder/Rooms/MFD/package.mo | 41 - .../HighOrder/Rooms/MFD/package.order | 1 - .../HighOrder/Rooms/OFD/Attic_Ro2Lf5.mo | 40 +- .../HighOrder/Rooms/OFD/Ow1IwL2IwS1Gr1Uf1.mo | 16 +- .../Rooms/OFD/Ow1IwL2IwS1Lf1At1Ro1.mo | 16 +- .../HighOrder/Rooms/OFD/Ow2IwL1IwS1Gr1Uf1.mo | 20 +- .../Rooms/OFD/Ow2IwL1IwS1Lf1At1Ro1.mo | 20 +- .../HighOrder/Rooms/OFD/Ow2IwL2IwS1Gr1Uf1.mo | 22 +- .../Rooms/OFD/Ow2IwL2IwS1Lf1At1Ro1.mo | 22 +- .../HighOrder/Rooms/OFD/package.mo | 2 +- .../RoomTwinHouseN2.mo | 354 +- .../RoomEmpiricalValidation/RoomWarehouse.mo | 244 +- .../HighOrder/Rooms/package.order | 1 - .../CheckResultsAccordingToASHRAE.mo | 3 +- .../ASHRAE140/BaseClasses/PartialCase.mo | 22 +- .../HighOrder/Validation/ASHRAE140/Case220.mo | 2 +- .../HighOrder/Validation/ASHRAE140/Case320.mo | 2 +- .../HighOrder/Validation/ASHRAE140/Case600.mo | 2 +- .../HighOrder/Validation/ASHRAE140/Case640.mo | 2 +- .../HighOrder/Validation/ASHRAE140/Case650.mo | 2 +- .../HighOrder/Validation/ASHRAE140/Case940.mo | 2 +- .../HighOrder/Validation/ASHRAE140/Case950.mo | 2 +- .../ASHRAE140/UsersGuide/package.mo | 2018 +- .../EmpiricalValidation/TwinHouseN2.mo | 9 +- .../EmpiricalValidation/Warehouse.mo | 11 +- .../BaseClasses/PartialVDI6007.mo | 93 +- .../EquivalentAirTemperature/VDI6007.mo | 43 +- .../VDI6007WithWindow.mo | 61 +- .../ComparisonThermalZoneMoistAndDryAir.mo | 10 +- .../ReducedOrder/Examples/Multizone.mo | 5 +- .../Examples/MultizoneEquipped.mo | 9 +- .../Examples/MultizoneMoistAirCO2.mo | 5 +- .../Examples/MultizoneMoistAirCO2Equipped.mo | 12 +- .../Examples/MultizonePartlyCooled.mo | 5 +- .../Examples/SimpleRoomFourElements.mo | 101 +- .../SimpleRoomFourElementsTraceSubstance.mo | 95 +- .../Examples/SimpleRoomOneElement.mo | 97 +- .../Examples/SimpleRoomThreeElements.mo | 101 +- .../Examples/SimpleRoomTwoElements.mo | 97 +- .../ReducedOrder/Examples/ThermalZone.mo | 5 +- .../Examples/ThermalZoneAirExchange.mo | 12 +- .../Examples/ThermalZoneMoistAir.mo | 5 +- .../ThermalZoneMoistCO2AirExchange.mo | 8 +- .../ReducedOrder/Examples/package.mo | 3 +- .../Multizone/BaseClasses/AbsToRelHum.mo | 6 +- .../BaseClasses/MultizonePostProcessing.mo | 310 + .../Multizone/BaseClasses/PartialMultizone.mo | 58 +- .../Multizone/BaseClasses/RelToAbsHum.mo | 6 +- .../Multizone/BaseClasses/package.order | 1 + .../ReducedOrder/Multizone/Multizone.mo | 6 +- .../Multizone/MultizoneEquipped.mo | 32 +- .../RC/BaseClasses/ExteriorWall.mo | 78 +- .../RC/BaseClasses/InteriorWall.mo | 72 +- .../RC/BaseClasses/ThermSplitter.mo | 53 +- .../RC/BaseClasses/splitFacVal.mo | 117 +- .../ReducedOrder/RC/FourElements.mo | 146 +- .../ReducedOrder/RC/OneElement.mo | 257 +- .../ReducedOrder/RC/ThreeElements.mo | 129 +- .../ReducedOrder/RC/TwoElements.mo | 111 +- .../BaseClasses/PartialCorrectionG.mo | 33 +- .../BaseClasses/PartialCorrectionGTaue.mo | 118 +- .../SolarGain/CorrectionGDoublePane.mo | 133 +- .../SolarGain/CorrectionGTaueDoublePane.mo | 65 +- .../BaseClasses/PartialThermalZone.mo | 19 +- .../ReducedOrder/ThermalZone/ThermalZone.mo | 391 +- .../ASHRAE140/FourElements/TestCase600.mo | 20 +- .../ASHRAE140/FourElements/TestCase600FF.mo | 20 +- .../ASHRAE140/FourElements/TestCase620.mo | 20 +- .../ASHRAE140/FourElements/TestCase640.mo | 20 +- .../ASHRAE140/FourElements/TestCase650.mo | 20 +- .../ASHRAE140/FourElements/TestCase650FF.mo | 20 +- .../ASHRAE140/FourElements/TestCase900.mo | 20 +- .../ASHRAE140/FourElements/TestCase900FF.mo | 20 +- .../ASHRAE140/FourElements/TestCase920.mo | 20 +- .../ASHRAE140/FourElements/TestCase940.mo | 20 +- .../ASHRAE140/FourElements/TestCase950.mo | 20 +- .../ASHRAE140/FourElements/TestCase950FF.mo | 20 +- .../ASHRAE140/OneElement/TestCase600.mo | 8 +- .../ASHRAE140/OneElement/TestCase600FF.mo | 8 +- .../ASHRAE140/OneElement/TestCase620.mo | 8 +- .../ASHRAE140/OneElement/TestCase640.mo | 8 +- .../ASHRAE140/OneElement/TestCase650.mo | 8 +- .../ASHRAE140/OneElement/TestCase650FF.mo | 8 +- .../ASHRAE140/OneElement/TestCase900.mo | 8 +- .../ASHRAE140/OneElement/TestCase900FF.mo | 8 +- .../ASHRAE140/OneElement/TestCase920.mo | 8 +- .../ASHRAE140/OneElement/TestCase940.mo | 8 +- .../ASHRAE140/OneElement/TestCase950.mo | 8 +- .../ASHRAE140/OneElement/TestCase950FF.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase600.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase600FF.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase620.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase640.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase650.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase650FF.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase900.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase900FF.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase920.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase940.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase950.mo | 8 +- .../ASHRAE140/ThreeElements/TestCase950FF.mo | 8 +- .../ASHRAE140/TwoElements/TestCase600.mo | 8 +- .../ASHRAE140/TwoElements/TestCase600FF.mo | 8 +- .../ASHRAE140/TwoElements/TestCase620.mo | 8 +- .../ASHRAE140/TwoElements/TestCase640.mo | 8 +- .../ASHRAE140/TwoElements/TestCase650.mo | 8 +- .../ASHRAE140/TwoElements/TestCase650FF.mo | 8 +- .../ASHRAE140/TwoElements/TestCase900.mo | 8 +- .../ASHRAE140/TwoElements/TestCase900FF.mo | 8 +- .../ASHRAE140/TwoElements/TestCase920.mo | 8 +- .../ASHRAE140/TwoElements/TestCase940.mo | 8 +- .../ASHRAE140/TwoElements/TestCase950.mo | 8 +- .../ASHRAE140/TwoElements/TestCase950FF.mo | 8 +- .../Validation/RoomSteadyState.mo | 25 +- .../Validation/RoomWithLatentGain.mo | 35 +- .../Validation/RoomWithoutLatentGain.mo | 35 +- .../VerifyDifferenceThreePeriods.mo | 118 +- .../Validation/VDI6007/TestCase1.mo | 58 +- .../Validation/VDI6007/TestCase10.mo | 70 +- .../Validation/VDI6007/TestCase11.mo | 85 +- .../Validation/VDI6007/TestCase12.mo | 66 +- .../Validation/VDI6007/TestCase2.mo | 58 +- .../Validation/VDI6007/TestCase3.mo | 58 +- .../Validation/VDI6007/TestCase4.mo | 58 +- .../Validation/VDI6007/TestCase5.mo | 66 +- .../Validation/VDI6007/TestCase6.mo | 62 +- .../Validation/VDI6007/TestCase7.mo | 70 +- .../Validation/VDI6007/TestCase8.mo | 74 +- .../Validation/VDI6007/TestCase9.mo | 72 +- .../Validation/VDI6007/package.mo | 3 +- .../ReducedOrder/Validation/package.mo | 3 +- .../Conversions/to_northAzimuth.mo | 8 +- .../Conversions/to_surfaceTiltVDI.mo | 8 +- .../Windows/BaseClasses/HVisible.mo | 46 +- .../Windows/BaseClasses/HWindow.mo | 31 +- .../Windows/BaseClasses/HeatIllumination.mo | 6 +- .../Windows/BaseClasses/Illumination.mo | 25 +- .../Windows/BaseClasses/SelfShadowing.mo | 48 +- .../Windows/BaseClasses/ShadedWindow.mo | 76 +- .../Windows/BaseClasses/SkylineShadowing.mo | 27 +- .../Windows/BaseClasses/Sunblind.mo | 2 +- .../Windows/BaseClasses/VentilationHeat.mo | 22 +- .../Windows/BaseClasses/Window.mo | 39 +- .../Windows/Examples/Illumination.mo | 12 +- .../Windows/Examples/VentilationHeat.mo | 19 +- .../ReducedOrder/Windows/ShadedWindow.mo | 105 +- .../BaseClasses/IncidenceAngleVDI6007.mo | 5 +- .../SolarDeclinationAngleVDI6007.mo | 14 +- .../BaseClasses/SolarHourAngleVDI6007.mo | 24 +- .../BaseClasses/e_ILim_TestCasesVDI.mo | 9 +- .../SelfShadowing/SelfShadowingTestAbove.mo | 8 +- .../SelfShadowing/SelfShadowingTestBelow.mo | 9 +- .../SelfShadowing/SelfShadowingTestLeft.mo | 4 +- .../SelfShadowing/SelfShadowingTestRight.mo | 4 +- .../Validation/SkylineShadowingTest.mo | 4 +- .../ReducedOrder/Windows/Window.mo | 67 +- AixLib/ThermalZones/ReducedOrder/package.mo | 3 +- AixLib/Types/Azimuth/package.mo | 16 +- AixLib/Types/Azimuth/package.order | 10 +- AixLib/Types/Tilt/package.mo | 9 +- .../RealPassThroughWithAssertion.mo | 3 +- .../Components/TCPCommunicatorExample.mo | 4 +- .../Cryptographics/Validation/SHA1.mo | 77 +- AixLib/Utilities/Cryptographics/sha.mo | 47 +- .../Utilities/Diagnostics/AssertEquality.mo | 61 +- .../Utilities/Diagnostics/AssertInequality.mo | 61 +- .../BaseClasses/PartialInputCheck.mo | 43 +- AixLib/Utilities/Diagnostics/CheckEquality.mo | 43 +- .../Diagnostics/Validation/CheckEquality.mo | 42 +- .../Utilities/Examples/HeatTransfer_test.mo | 10 +- AixLib/Utilities/Examples/package.order | 1 - AixLib/Utilities/HeatTransfer/CalcQFlow.mo | 5 +- .../HeatTransfer/CylindricHeatConduction.mo | 8 +- .../HeatTransfer/CylindricHeatTransfer.mo | 14 +- .../Utilities/HeatTransfer/CylindricLoad.mo | 15 +- AixLib/Utilities/HeatTransfer/HeatConv.mo | 5 +- .../Utilities/HeatTransfer/HeatConvInside.mo | 25 +- .../Utilities/HeatTransfer/HeatConvOutside.mo | 13 +- .../HeatTransfer/HeatConvPipeInsideDynamic.mo | 47 +- AixLib/Utilities/HeatTransfer/HeatToRad.mo | 11 +- .../Utilities/HeatTransfer/SolarRadInRoom.mo | 27 +- AixLib/Utilities/HeatTransfer/package.order | 22 +- .../IO/Files/BaseClasses/FileWriter.mo | 68 +- .../IO/Files/BaseClasses/FileWriterObject.mo | 69 +- .../IO/Files/BaseClasses/JSONWriterObject.mo | 69 +- .../IO/Files/BaseClasses/OutputTime.mo | 9 +- .../IO/Files/BaseClasses/cacheVals.mo | 23 +- .../IO/Files/BaseClasses/writeJSON.mo | 23 +- AixLib/Utilities/IO/Files/CSVWriter.mo | 95 +- .../IO/Files/CombiTimeTableWriter.mo | 103 +- .../Files/Examples/BaseClasses/PartialCSV.mo | 27 +- .../Utilities/IO/Files/Examples/CSVReader.mo | 58 +- .../Utilities/IO/Files/Examples/CSVWriter.mo | 40 +- .../Utilities/IO/Files/Examples/JSONWriter.mo | 31 +- AixLib/Utilities/IO/Files/JSONWriter.mo | 97 +- .../Examples/BaseClasses/ExportedModel.mo | 32 +- .../Examples/BaseClasses/OriginalModel.mo | 40 +- .../IO/SignalExchange/Examples/FirstOrder.mo | 37 +- .../SignalExchange/Examples/WeatherStation.mo | 29 +- .../Utilities/IO/SignalExchange/Overwrite.mo | 91 +- AixLib/Utilities/IO/SignalExchange/Read.mo | 128 +- .../SignalTypes/SignalsForKPIs.mo | 121 +- .../IO/SignalExchange/WeatherStation.mo | 51 +- AixLib/Utilities/IO/package.mo | 2 +- AixLib/Utilities/Interfaces/ShortRadSurf.mo | 12 +- AixLib/Utilities/Interfaces/SolarRad_in.mo | 8 +- AixLib/Utilities/Interfaces/SolarRad_out.mo | 8 +- AixLib/Utilities/MassTransfer/Convection.mo | 4 +- .../Utilities/MassTransfer/MassDiffusion.mo | 8 +- .../Utilities/MassTransfer/MassFlowSensor.mo | 2 +- AixLib/Utilities/MassTransfer/MassPort.mo | 4 +- AixLib/Utilities/Math/Average.mo | 29 +- AixLib/Utilities/Math/BesselJ0.mo | 17 +- AixLib/Utilities/Math/BesselJ1.mo | 17 +- AixLib/Utilities/Math/BesselY0.mo | 17 +- AixLib/Utilities/Math/BesselY1.mo | 17 +- AixLib/Utilities/Math/Bicubic.mo | 45 +- AixLib/Utilities/Math/Binomial.mo | 19 +- AixLib/Utilities/Math/Biquadratic.mo | 37 +- AixLib/Utilities/Math/BooleanReplicator.mo | 31 +- AixLib/Utilities/Math/Examples/Average.mo | 27 +- AixLib/Utilities/Math/Examples/BesselJ0.mo | 25 +- AixLib/Utilities/Math/Examples/BesselJ1.mo | 25 +- AixLib/Utilities/Math/Examples/BesselY0.mo | 25 +- AixLib/Utilities/Math/Examples/BesselY1.mo | 25 +- AixLib/Utilities/Math/Examples/Bicubic.mo | 35 +- AixLib/Utilities/Math/Examples/Binomial.mo | 25 +- AixLib/Utilities/Math/Examples/Biquadratic.mo | 35 +- .../Math/Examples/BooleanReplicator.mo | 35 +- .../Math/Examples/ExponentialIntegralE1.mo | 25 +- AixLib/Utilities/Math/Examples/Factorial.mo | 25 +- .../Math/Examples/FallingFactorial.mo | 25 +- .../Math/Examples/IntegerReplicator.mo | 35 +- .../Math/Examples/IntegratorWithReset.mo | 61 +- .../Math/Examples/InverseXRegularized.mo | 27 +- .../Utilities/Math/Examples/MovingAverage.mo | 32 + AixLib/Utilities/Math/Examples/Polynomial.mo | 35 + AixLib/Utilities/Math/Examples/Polynominal.mo | 27 - .../Math/Examples/PowerLinearized.mo | 27 +- .../Math/Examples/QuadraticLinear.mo | 27 +- .../Math/Examples/RegNonZeroPower.mo | 27 +- .../Utilities/Math/Examples/SmoothBlocks.mo | 40 +- .../Math/Examples/SmoothExponential.mo | 27 +- .../Math/Examples/SmoothHeaviside.mo | 27 +- AixLib/Utilities/Math/Examples/SmoothLimit.mo | 29 +- AixLib/Utilities/Math/Examples/SmoothMin.mo | 39 +- AixLib/Utilities/Math/Examples/Splice.mo | 29 +- .../Math/Examples/VectorFunctions.mo | 30 +- AixLib/Utilities/Math/Examples/package.order | 3 +- .../Utilities/Math/ExponentialIntegralE1.mo | 17 +- AixLib/Utilities/Math/Factorial.mo | 19 +- AixLib/Utilities/Math/FallingFactorial.mo | 19 +- .../BaseClasses/der_2_regNonZeroPower.mo | 39 +- .../BaseClasses/der_2_smoothTransition.mo | 41 +- .../BaseClasses/der_inverseXRegularized.mo | 27 +- .../BaseClasses/der_regNonZeroPower.mo | 47 +- .../BaseClasses/der_smoothTransition.mo | 49 +- .../BaseClasses/der_spliceFunction.mo | 100 +- .../Functions/BaseClasses/smoothTransition.mo | 81 +- .../Math/Functions/Examples/BesselJ0.mo | 25 +- .../Math/Functions/Examples/BesselJ1.mo | 25 +- .../Math/Functions/Examples/BesselY0.mo | 25 +- .../Math/Functions/Examples/BesselY1.mo | 25 +- .../Math/Functions/Examples/Binomial.mo | 25 +- .../Math/Functions/Examples/CubicHermite.mo | 37 +- .../Examples/ExponentialIntegralE1.mo | 25 +- .../Math/Functions/Examples/Factorial.mo | 25 +- .../Functions/Examples/FallingFactorial.mo | 25 +- .../Examples/InverseXDerivativeCheck.mo | 51 +- .../Examples/InverseXDerivative_2_Check.mo | 45 +- .../Functions/Examples/InverseXRegularized.mo | 27 +- .../Math/Functions/Examples/IsMonotonic.mo | 31 +- .../Math/Functions/Examples/Polynomial.mo | 67 +- .../Functions/Examples/PowerLinearized.mo | 27 +- .../Math/Functions/Examples/QuinticHermite.mo | 27 +- .../Functions/Examples/RegNonZeroPower.mo | 27 +- .../RegNonZeroPowerDerivativeCheck.mo | 39 +- .../RegNonZeroPowerDerivative_2_Check.mo | 45 +- .../Math/Functions/Examples/RegStep.mo | 27 +- .../SmoothExponentialDerivativeCheck.mo | 39 +- .../Examples/SmoothHeavisideDerivatives.mo | 31 +- .../Math/Functions/Examples/SpliceFunction.mo | 27 +- .../Examples/SpliceFunctionDerivativeCheck.mo | 58 +- .../Examples/TrapezoidalIntegration.mo | 29 +- AixLib/Utilities/Math/Functions/average.mo | 21 +- AixLib/Utilities/Math/Functions/besselJ0.mo | 37 +- AixLib/Utilities/Math/Functions/besselJ1.mo | 37 +- AixLib/Utilities/Math/Functions/besselY0.mo | 37 +- AixLib/Utilities/Math/Functions/besselY1.mo | 37 +- AixLib/Utilities/Math/Functions/bicubic.mo | 39 +- AixLib/Utilities/Math/Functions/binomial.mo | 23 +- .../Utilities/Math/Functions/biquadratic.mo | 31 +- .../Math/Functions/booleanReplicator.mo | 21 +- .../cubicHermiteLinearExtrapolation.mo | 37 +- .../Math/Functions/exponentialIntegralE1.mo | 45 +- AixLib/Utilities/Math/Functions/factorial.mo | 23 +- .../Math/Functions/fallingFactorial.mo | 35 +- .../Math/Functions/integerReplicator.mo | 25 +- .../Math/Functions/inverseXRegularized.mo | 115 +- .../Utilities/Math/Functions/isMonotonic.mo | 29 +- AixLib/Utilities/Math/Functions/package.mo | 1 + AixLib/Utilities/Math/Functions/polynomial.mo | 57 +- .../Math/Functions/powerLinearized.mo | 57 +- .../Math/Functions/quadraticLinear.mo | 31 +- .../Math/Functions/quinticHermite.mo | 35 +- .../Math/Functions/regNonZeroPower.mo | 81 +- AixLib/Utilities/Math/Functions/regStep.mo | 69 +- .../Math/Functions/smoothExponential.mo | 33 +- .../Math/Functions/smoothHeaviside.mo | 83 +- .../Utilities/Math/Functions/smoothLimit.mo | 59 +- AixLib/Utilities/Math/Functions/smoothMax.mo | 61 +- AixLib/Utilities/Math/Functions/smoothMin.mo | 61 +- .../Math/Functions/spliceFunction.mo | 53 +- .../Math/Functions/splineDerivatives.mo | 89 +- .../Math/Functions/trapezoidalIntegration.mo | 23 +- AixLib/Utilities/Math/IntegerReplicator.mo | 21 +- AixLib/Utilities/Math/IntegratorWithReset.mo | 163 +- AixLib/Utilities/Math/InverseXRegularized.mo | 25 +- AixLib/Utilities/Math/Max.mo | 27 +- AixLib/Utilities/Math/Min.mo | 27 +- AixLib/Utilities/Math/MovingAverage.mo | 19 +- AixLib/Utilities/Math/Polynomial.mo | 28 + AixLib/Utilities/Math/Polynominal.mo | 18 - AixLib/Utilities/Math/PowerLinearized.mo | 59 +- AixLib/Utilities/Math/QuadraticLinear.mo | 25 +- AixLib/Utilities/Math/RegNonZeroPower.mo | 75 +- AixLib/Utilities/Math/SmoothExponential.mo | 23 +- AixLib/Utilities/Math/SmoothHeaviside.mo | 57 +- AixLib/Utilities/Math/SmoothLimit.mo | 45 +- AixLib/Utilities/Math/SmoothMax.mo | 45 +- AixLib/Utilities/Math/SmoothMin.mo | 45 +- AixLib/Utilities/Math/Splice.mo | 47 +- .../Utilities/Math/TrapezoidalIntegration.mo | 21 +- AixLib/Utilities/Math/package.mo | 2 +- AixLib/Utilities/Math/package.order | 2 +- .../Utilities/Multiplier/M_flowMultiplier.mo | 11 +- .../BaseClasses/HumidityRatioVaporPressure.mo | 53 +- AixLib/Utilities/Psychrometrics/Constants.mo | 45 +- .../Utilities/Psychrometrics/Density_pTX.mo | 49 +- .../Psychrometrics/Examples/Density_pTX.mo | 23 +- .../Examples/DewPointTemperature.mo | 3 +- .../Examples/HumidityRatioPressure.mo | 3 +- .../Examples/MassFraction_pTphi.mo | 3 +- .../Psychrometrics/Examples/Phi_pTX.mo | 23 +- .../Examples/SaturationPressure.mo | 19 +- .../Examples/SaturationPressureLiquid.mo | 19 +- .../Examples/SublimationPressureIce.mo | 19 +- .../Examples/TWetBul_TDryBulPhi.mo | 67 +- .../Examples/TWetBul_TDryBulXi.mo | 45 +- .../Psychrometrics/Examples/TotalAirDryAir.mo | 3 +- .../DewPointTemperatureDerivativeCheck.mo | 67 +- .../DewPointTemperatureDerivativeCheck_amb.mo | 67 +- ...eDewPointTemperatureDerivativeCheck_amb.mo | 41 +- .../SaturationPressureDerivativeCheck.mo | 71 +- .../WaterVaporPressureDerivativeCheck.mo | 69 +- .../BaseClasses/der_TDewPoi_pW_amb.mo | 45 +- .../Functions/BaseClasses/der_pW_TDewPoi.mo | 25 +- .../BaseClasses/der_pW_TDewPoi_amb.mo | 45 +- .../Functions/BaseClasses/der_pW_X.mo | 33 +- .../der_saturationPressureLiquid.mo | 41 +- .../BaseClasses/der_sublimationPressureIce.mo | 48 +- .../Functions/Examples/Density_pTX.mo | 35 +- .../Functions/Examples/SaturationPressure.mo | 43 +- .../Functions/Examples/X_pSatpphi.mo | 45 +- .../Functions/Examples/pW_TDewPoi.mo | 11 +- .../Examples/pW_TDewPoi_comparison.mo | 13 +- .../Psychrometrics/Functions/Examples/pW_X.mo | 11 +- .../Functions/Examples/phi_pTX.mo | 23 +- .../Psychrometrics/Functions/Internal.mo | 2 +- .../Psychrometrics/Functions/TDewPoi_pW.mo | 109 +- .../Functions/TDewPoi_pW_amb.mo | 81 +- .../Psychrometrics/Functions/X_pSatpphi.mo | 31 +- .../Psychrometrics/Functions/X_pTphi.mo | 39 +- .../Psychrometrics/Functions/X_pW.mo | 76 +- .../Psychrometrics/Functions/density_pTX.mo | 55 +- .../Psychrometrics/Functions/pW_TDewPoi.mo | 79 +- .../Functions/pW_TDewPoi_amb.mo | 79 +- .../Psychrometrics/Functions/pW_X.mo | 56 +- .../Psychrometrics/Functions/phi_pTX.mo | 61 +- .../Functions/saturationPressure.mo | 82 +- .../Functions/saturationPressureLiquid.mo | 52 +- .../Functions/sublimationPressureIce.mo | 58 +- .../Utilities/Psychrometrics/MixedHumidity.mo | 128 + AixLib/Utilities/Psychrometrics/Phi_pTX.mo | 41 +- .../Psychrometrics/SaturationPressure.mo | 51 +- .../SaturationPressureLiquid.mo | 49 +- .../Psychrometrics/SublimationPressureIce.mo | 51 +- AixLib/Utilities/Psychrometrics/TDewPoi_pW.mo | 59 +- .../Psychrometrics/TWetBul_TDryBulPhi.mo | 158 +- .../Psychrometrics/TWetBul_TDryBulXi.mo | 248 +- AixLib/Utilities/Psychrometrics/ToDryAir.mo | 29 +- AixLib/Utilities/Psychrometrics/ToTotalAir.mo | 37 +- AixLib/Utilities/Psychrometrics/X_pTphi.mo | 97 +- AixLib/Utilities/Psychrometrics/X_pW.mo | 72 +- AixLib/Utilities/Psychrometrics/hSat_pTSat.mo | 61 + AixLib/Utilities/Psychrometrics/pW_TDewPoi.mo | 97 +- AixLib/Utilities/Psychrometrics/pW_X.mo | 74 +- AixLib/Utilities/Psychrometrics/package.order | 2 + AixLib/Utilities/Sensors/EnergyMeter.mo | 11 +- .../Sensors/Examples/ExergyMeters.mo | 123 +- .../Sensors/ExergyMeter/FlowExergyMeter.mo | 5 +- .../Sensors/ExergyMeter/HeatExergyMeter.mo | 36 +- .../Sensors/ExergyMeter/StoredExergyMeter.mo | 19 +- AixLib/Utilities/Sensors/FuelCounter.mo | 4 +- AixLib/Utilities/Sources/BaseParameters.mo | 58 +- .../HeaterCooler/PartialHeaterCoolerPI.mo | 14 +- AixLib/Utilities/Sources/HourOfDay.mo | 3 +- AixLib/Utilities/Sources/package.order | 1 - AixLib/Utilities/Tables/CombiTable2DExtra.mo | 7 +- AixLib/Utilities/Tables/package.mo | 2 +- AixLib/Utilities/Time/CalendarTime.mo | 257 +- AixLib/Utilities/Time/DaytimeSwitch.mo | 2 +- .../Utilities/Time/Examples/CalendarTime.mo | 33 +- AixLib/Utilities/Time/Examples/ModelTime.mo | 27 +- AixLib/Utilities/Time/ModelTime.mo | 61 +- AixLib/Utilities/Time/Types/ZeroTime.mo | 65 +- .../Time/Validation/CalendarTimeMonths.mo | 39 +- .../Validation/CalendarTimeMonthsMinus.mo | 39 +- .../Time/Validation/CalendarTimeMonthsPlus.mo | 39 +- AixLib/legal.html | 63 - AixLib/package.mo | 28 +- PUBLICATIONS.md | 9 +- README.md | 4 + bin/01_BaseFunctions/Compare.py | 298 - bin/01_BaseFunctions/DymolaExample.py | 34 - bin/01_BaseFunctions/DymolaInterface.py | 76 - bin/01_BaseFunctions/Functions.py | 197 - bin/01_BaseFunctions/Interface_Python.py | 34 - bin/01_BaseFunctions/html_tidy.py | 265 - .../python_dymola_interface.py | 97 - bin/01_BaseFunctions/view_html_errors.py | 259 - bin/01_BaseFunctions/view_html_errors_v2.py | 267 - bin/02_CITests/CleanUpSkripts/README.md | 7 - .../CleanUpSkripts/deploy_artifacts.py | 67 - .../CleanUpSkripts/dym_check_lic.mos | 6 - .../CleanUpSkripts/dym_check_lic.py | 67 - bin/02_CITests/CleanUpSkripts/sort_models.py | 38 - bin/02_CITests/CleanUpSkripts/time.py | 21 - bin/02_CITests/Converter/Vorlage.html | 56 - bin/02_CITests/Converter/google_charts.py | 533 - bin/02_CITests/Converter/index.html | 58 - bin/02_CITests/SyntaxTests/StyleChecking.py | 245 - bin/02_CITests/SyntaxTests/api_github.py | 136 - bin/02_CITests/SyntaxTests/git_commands.py | 39 - .../SyntaxTests/html_tidy_errors.py | 819 - bin/02_CITests/SyntaxTests/sort_models.py | 46 - .../UnitTests/CheckPackages/sort_models.py | 121 - .../UnitTests/CheckPackages/validatetest.py | 832 - .../UnitTests/list_extended_models.py | 479 - bin/02_CITests/UnitTests/reference_check.py | 245 - bin/02_CITests/UnitTests/runUnitTests.py | 546 - bin/02_CITests/__init__.py | 6 - .../deploy/IBPSA_Merge/PR_IPBSA_Merge.py | 121 - .../IBPSA_Merge/copy_conversion_script.py | 239 - .../deploy/IBPSA_Merge/correct_userguide.py | 36 - .../deploy/IBPSA_Merge/diff_reference.py | 243 - bin/03_WhiteLists/WhiteList_CheckModel.txt | 31 - bin/03_WhiteLists/changedmodels.txt | 27 - bin/04_Documentation/Documentation_GitLab.md | 205 - bin/04_Documentation/GITLAB CICD.pdf | Bin 1466135 -> 0 bytes bin/04_Documentation/Gitlab_CICD_Commands.md | 272 - ...lineProcess [Automatisch gespeichert].pptx | Bin 40147 -> 0 bytes .../Powerpoint/PipelineProcess.pptx | Bin 48895 -> 0 bytes .../Powerpoint/PipelineProcess_v2.pptx | Bin 40652 -> 0 bytes bin/04_Documentation/setup_gitlab_runner.md | 60 - bin/06_Configfiles/README.md | 47 - bin/06_Configfiles/autoMergeRequest.sh | 48 - bin/06_Configfiles/autoPullRequest.sh | 26 - bin/06_Configfiles/checkVariables.sh | 43 - bin/06_Configfiles/delete_merged_branches.sh | 13 - bin/06_Configfiles/exit.sh | 3 - bin/06_Configfiles/list_remote_mirror.sh | 2 - bin/06_Configfiles/showMergeRequest.sh | 47 - bin/CITests/01_CleanUp/README.md | 15 + .../01_CleanUp}/__init__.py | 0 .../01_CleanUp}/cleanmodelica.py | 0 bin/CITests/01_CleanUp/setting_check.py | 82 + .../02_UnitTests/CheckPackages/__init__.py | 4 + .../CheckPackages/validatetest.py | 613 + .../How_to_wirte_a_new_UnitTest.md | 0 .../02_UnitTests}/README.md | 61 +- bin/CITests/02_UnitTests/reference_check.py | 645 + .../03_SyntaxTests}/README.md | 28 +- bin/CITests/03_SyntaxTests/StyleChecking.py | 211 + .../03_SyntaxTests}/__init__.py | 0 .../03_SyntaxTests/html_tidy_errors.py | 628 + .../tidy-5.6.0-vc10-64b/bin/tidy.dll | Bin .../tidy-5.6.0-vc10-64b/bin/tidy.exe | Bin .../tidy-5.6.0-vc10-64b/include/tidy.h | 0 .../tidy-5.6.0-vc10-64b/include/tidybuffio.h | 0 .../tidy-5.6.0-vc10-64b/include/tidyenum.h | 0 .../include/tidyplatform.h | 0 .../tidy-5.6.0-vc10-64b/lib/pkgconfig/tidy.pc | 0 .../tidy-5.6.0-vc10-64b/lib/tidy.lib | Bin .../tidy-5.6.0-vc10-64b/lib/tidys.lib | Bin bin/CITests/04_api_script/README.md | 2 + bin/CITests/04_api_script/api_github.py | 209 + bin/CITests/04_api_script/api_slack.py | 456 + bin/CITests/05_Converter/README.md | 6 + bin/CITests/05_Converter/google_charts.py | 627 + bin/CITests/05_Converter/lock_model.py | 130 + .../IBPSA_Merge/copy_conversion_script.py | 158 + .../IBPSA_Merge/correct_userguide.py | 27 + .../06_deploy/IBPSA_Merge/diff_reference.py | 176 + bin/CITests/06_deploy/README.md | 3 + bin/CITests/06_deploy/deploy_artifacts.py | 87 + bin/CITests/07_ci_templates/README.md | 11 + bin/CITests/07_ci_templates/ci_templates.py | 564 + bin/{02_CITests => CITests}/README.md | 96 +- bin/CITests/_config.py | 56 + bin/{06_Configfiles => Configfiles}/EOF.sh | 2 +- bin/Configfiles/README.md | 11 + bin/Configfiles/ci_changed_model_list.txt | 8 + bin/Configfiles/ci_difference_result.txt | 0 bin/Configfiles/ci_new_created_reference.txt | 5 + bin/Configfiles/ci_reference_list.txt | 1152 + .../ci_slack_branch_inactive_list.txt | 477 + bin/Configfiles/exit.sh | 1 + .../How_to_integrate_new_tests.md | 0 .../Images/Aixliblib.png | Bin .../Images/CreateNewBranch.png | Bin .../Images/DockerRegistry.png | Bin .../Images/GITLABCI.png | Bin .../Images/GitLabCIWorkflow.png | Bin .../Images/HTMLProcess.png | Bin .../Images/Keywords.png | Bin .../Images/MergeProcess.PNG | Bin .../Images/Mirroring_ssh.PNG | Bin .../Images/ModelManagement_StyleChecking.PNG | Bin .../Images/Pipeline.PNG | Bin .../Images/PipelineProcess.png | Bin .../Images/RWTH_AixLib.png | Bin .../Images/Register_Runner.PNG | Bin .../Images/Registry.png | Bin .../Images/RegistryIntegrate.png | Bin .../Images/Stages.png | Bin .../Images/Thumbs.db | Bin .../Images/Webhook_trigger.PNG | Bin .../Images/Workflow.png | Bin .../Images/extends.png | Bin .../Images/only.png | Bin .../Images/public_key.PNG | Bin .../README.md | 2 +- bin/README.md | 294 +- bin/Setting/CI_setting.toml | 1 + bin/Setting/CI_setting_template.txt | 66 + bin/Setting/README.md | 2 + bin/{03_WhiteLists => ci_whitelist}/README.md | 11 +- .../html_whitelist.txt} | 134 +- bin/ci_whitelist/model_whitelist.txt | 236 + .../reference_check_whitelist.txt} | 4 - bin/dymola_scripts/open_MSL_4.0.mos | 9 + bin/interact_CI/README.md | 29 + bin/interact_CI/show_ref.txt | 3 + bin/interact_CI/update_ref.txt | 40 + .../01_google_templates/google_chart.txt | 47 + bin/templates/01_google_templates/index.txt | 16 + .../01_google_templates/layout_index.txt | 86 + ...edOrder_Examples_MultizoneMoistAirCO2.html | 144 + ...Order_Examples_SimpleRoomFourElements.html | 143 + ..._SimpleRoomFourElementsTraceSubstance.html | 144 + ...edOrder_Examples_SimpleRoomOneElement.html | 143 + ...rder_Examples_SimpleRoomThreeElements.html | 143 + ...dOrder_Examples_SimpleRoomTwoElements.html | 143 + bin/templates/02_charts/AixLib/index.html | 19 + bin/templates/02_charts/index.html | 84 + .../01_deploy/IBPSA_Merge.gitlab-ci.yml | 161 + .../03_ci_templates/01_deploy/IBPSA_Merge.txt | 131 + .../01_deploy/gitlab_pages.gitlab-ci.yml | 23 + .../01_deploy/gitlab_pages.txt | 23 + .../02_UnitTests/check_model.gitlab-ci.yml | 397 + .../02_UnitTests/check_model.txt | 201 + .../regression_test.gitlab-ci.yml | 776 + .../02_UnitTests/regression_test.txt | 522 + .../02_UnitTests/simulate_model.gitlab-ci.yml | 360 + .../02_UnitTests/simulate_model.txt | 154 + .../03_SyntaxTest/html_check.gitlab-ci.yml | 235 + .../03_SyntaxTest/html_check.txt | 215 + .../03_SyntaxTest/style_check.gitlab-ci.yml | 106 + .../03_SyntaxTest/style_check.txt | 86 + .../04_CleanUpScript/ci_setting.gitlab-ci.yml | 54 + .../04_CleanUpScript/ci_setting.txt | 54 + bin/templates/03_ci_templates/README.md | 12 + bin/templates/03_ci_templates/gitlab-ci.txt | 18 + bin/templates/README.md | 2 + 2733 files changed, 218374 insertions(+), 95342 deletions(-) create mode 100644 .gitconfig create mode 100644 .github/issue-branch.yml create mode 100644 .github/workflows/github-action-slack.yml create mode 100644 AixLib/Airflow/Multizone/BaseClasses/Examples/Interpolate.mo create mode 100644 AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mo create mode 100644 AixLib/Airflow/Multizone/BaseClasses/PartialOneWayFlowElement.mo delete mode 100644 AixLib/Airflow/Multizone/BaseClasses/PowerLawResistance.mo create mode 100644 AixLib/Airflow/Multizone/BaseClasses/PowerLawResistanceParameters.mo create mode 100644 AixLib/Airflow/Multizone/BaseClasses/interpolate.mo create mode 100644 AixLib/Airflow/Multizone/BaseClasses/windPressureProfile.mo create mode 100644 AixLib/Airflow/Multizone/Coefficient_V_flow.mo create mode 100644 AixLib/Airflow/Multizone/Coefficient_m_flow.mo create mode 100644 AixLib/Airflow/Multizone/Examples/PowerLaw.mo create mode 100644 AixLib/Airflow/Multizone/Examples/PressurizationData.mo create mode 100644 AixLib/Airflow/Multizone/Examples/TrickleVent.mo create mode 100644 AixLib/Airflow/Multizone/Point_m_flow.mo create mode 100644 AixLib/Airflow/Multizone/Points_m_flow.mo create mode 100644 AixLib/Airflow/Multizone/Table_V_flow.mo create mode 100644 AixLib/Airflow/Multizone/Table_m_flow.mo create mode 100644 AixLib/Airflow/Multizone/Validation/OneWayFlow.mo create mode 100644 AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAltitudeTMY3.mo create mode 100644 AixLib/BoundaryConditions/WeatherData/BaseClasses/getAltitudeLocationTMY3.mo create mode 100644 AixLib/BoundaryConditions/WeatherData/BaseClasses/getLastHeaderElementTMY3.mo delete mode 100644 AixLib/Controls/Continuous/Examples/PIDHysteresis.mo delete mode 100644 AixLib/Controls/Continuous/Examples/PIDHysteresisTimer.mo delete mode 100644 AixLib/Controls/Continuous/PIDHysteresis.mo delete mode 100644 AixLib/Controls/Continuous/PIDHysteresisTimer.mo create mode 100644 AixLib/Fluid/Actuators/Valves/Data/EqualPercentage.mo create mode 100644 AixLib/Fluid/Actuators/Valves/Data/GenericThreeWay.mo create mode 100644 AixLib/Fluid/Actuators/Valves/Data/LinearEqualPercentage.mo create mode 100644 AixLib/Fluid/Actuators/Valves/Data/LinearLinear.mo create mode 100644 AixLib/Fluid/BaseClasses/ActuatorFilter.mo create mode 100644 AixLib/Fluid/BaseClasses/Validation/ActuatorFilter.mo create mode 100644 AixLib/Fluid/BoilerCHP/CHPNoControl.mo create mode 100644 AixLib/Fluid/BoilerCHP/Examples/CHPSystemNoControl.mo create mode 100644 AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowPipe.mo delete mode 100644 AixLib/Fluid/FixedResistances/BaseClasses/Validation/PlugFlowCore.mo delete mode 100644 AixLib/Fluid/FixedResistances/BaseClasses/Validation/package.mo delete mode 100644 AixLib/Fluid/FixedResistances/BaseClasses/Validation/package.order create mode 100644 AixLib/Fluid/FixedResistances/Examples/PlugFlowPipeDiscretized.mo create mode 100644 AixLib/Fluid/FixedResistances/PlugFlowPipeDiscretized.mo create mode 100644 AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilDryRegime.mo create mode 100644 AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilDryWetRegime.mo create mode 100644 AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilUARated.mo create mode 100644 AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilWetRegime.mo create mode 100644 AixLib/Fluid/HeatExchangers/BaseClasses/determineWaterIndex.mo create mode 100644 AixLib/Fluid/HeatExchangers/BaseClasses/lmtd.mo create mode 100644 AixLib/Fluid/HeatExchangers/Examples/WetCoilEffectivenessNTUMassFlow.mo create mode 100644 AixLib/Fluid/HeatExchangers/Validation/WetCoilEffectivenessNTU.mo create mode 100644 AixLib/Fluid/HeatExchangers/WetCoilEffectivenessNTU.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/DpControlled_dp.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Examples/DpControlled_dpConst.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Examples/DpControlled_dpVar.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Examples/package.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Examples/package.order create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Types/CtrlType.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Types/package.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/Types/package.order create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/package.mo create mode 100644 AixLib/Fluid/Movers/DpControlledMovers/package.order delete mode 100644 AixLib/Fluid/Movers/PumpsPolynomialBased/Examples/PumpHdpVarControlTest.mo create mode 100644 AixLib/Fluid/Movers/PumpsPolynomialBased/Examples/PumpHeadControlled.mo rename AixLib/Fluid/Movers/PumpsPolynomialBased/Examples/{PumpSpeedControlledTest.mo => PumpSpeedControlled.mo} (64%) rename AixLib/Fluid/Movers/PumpsPolynomialBased/Examples/{PumpNdpVarControlTest.mo => PumpSpeedControlledDpV.mo} (60%) delete mode 100644 AixLib/Fluid/Movers/PumpsPolynomialBased/Examples/PumpSpeedControlledLimiterTest.mo create mode 100644 AixLib/Fluid/Sources/Examples/Outside_CpData.mo create mode 100644 AixLib/Fluid/Sources/Examples/Outside_CpData_Angles.mo create mode 100644 AixLib/Fluid/Sources/Examples/Outside_CpData_Specification.mo create mode 100644 AixLib/Fluid/Sources/Outside_CpData.mo create mode 100644 AixLib/Fluid/Sources/Validation/Outside_CpData_Directions.mo create mode 100644 AixLib/Media/Examples/SteamDerivativeCheck.mo create mode 100644 AixLib/Media/Examples/SteamProperties.mo create mode 100644 AixLib/Media/Examples/SteamSaturationConsistencyCheck.mo create mode 100644 AixLib/Media/Examples/SteamTemperatureEnthalpyInversion.mo create mode 100644 AixLib/Media/Steam.mo rename AixLib/{ => Obsolete/Year2021}/Fluid/Examples/PumpRadiatorThermostaticValve.mo (96%) rename AixLib/{ => Obsolete/Year2021}/Fluid/Examples/PumpRadiatorValve.mo (95%) create mode 100644 AixLib/Obsolete/Year2021/Fluid/Examples/package.mo create mode 100644 AixLib/Obsolete/Year2021/Fluid/Examples/package.order rename AixLib/{Utilities => Obsolete/Year2022}/Examples/NcDataReader.mo (90%) create mode 100644 AixLib/Obsolete/Year2022/Examples/package.mo create mode 100644 AixLib/Obsolete/Year2022/Examples/package.order rename AixLib/{ => Obsolete/Year2022}/ThermalZones/HighOrder/Examples/Appartment_VoWo.mo (80%) create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/Examples/package.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/Examples/package.order create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/House/MFD/BuildingAndEnergySystem.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/House/MFD/BuildingEnvelope.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/House/MFD/EnergySystem.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/House/MFD/package.mo rename AixLib/{ => Obsolete/Year2022}/ThermalZones/HighOrder/House/MFD/package.order (100%) create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/House/package.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/House/package.order create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/Rooms/MFD.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/Rooms/package.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/Rooms/package.order create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/package.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/HighOrder/package.order create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/package.mo create mode 100644 AixLib/Obsolete/Year2022/ThermalZones/package.order rename AixLib/{Utilities/Sources => Obsolete/Year2022/Utilities}/NcDataReader.mo (96%) create mode 100644 AixLib/Obsolete/Year2022/Utilities/package.mo create mode 100644 AixLib/Obsolete/Year2022/Utilities/package.order create mode 100644 AixLib/Obsolete/Year2022/package.mo create mode 100644 AixLib/Obsolete/Year2022/package.order rename AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/{725650.epw => WD100.epw} (99%) rename AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/{725650.mos => WD100.mos} (100%) create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD200.epw create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD200.mos create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD300.epw create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD300.mos create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD400.epw create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD400.mos create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD500.epw create mode 100644 AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD500.mos rename AixLib/Resources/Data/Utilities/IO/Files/Examples/CSVReader/{Data.csv => Data.txt} (97%) mode change 100755 => 100644 AixLib/Resources/Documentation/userGuide/source/_static/lbl-logo.png mode change 100755 => 100644 AixLib/Resources/Images/BoundaryConditions/SkyTemperature/BaseClasses/Cloud.jpg mode change 100755 => 100644 AixLib/Resources/Images/BoundaryConditions/WeatherData/RadiationTimeShift.png delete mode 100644 AixLib/Resources/Images/Controls/Continuous/Examples/PIDHysteresis.png delete mode 100644 AixLib/Resources/Images/Controls/Continuous/Examples/PIDHysteresisTimerError.png delete mode 100644 AixLib/Resources/Images/Controls/Continuous/Examples/PIDHysteresisTimerOutput.png create mode 100644 AixLib/Resources/Images/Fluid/Movers/DpControlledMovers/CurveTypes.jpg create mode 100644 AixLib/Resources/Images/Fluid/Movers/DpControlledMovers/CurveTypes.xlsx mode change 100755 => 100644 AixLib/Resources/Images/Fluid/Movers/UsersGuide/2013-IBPSA-Wetter.pdf create mode 100644 AixLib/Resources/Images/Fluid/Sources/Outside_CpData.png create mode 100644 AixLib/Resources/Images/Fluid/Sources/Outside_CpData.svg create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_BaseClasses_Examples_Interpolate.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_BaseClasses_Examples_WindPressureProfile.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Examples_PowerLaw.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Examples_PressurizationData.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Examples_TrickleVent.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_OneWayFlow.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_WeatherData_BaseClasses_Examples_GetAltitudeTMY3.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Electrical_Examples_ExamplePVSystem.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Electrical_Validation_ValidationPVSystem.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_BaseClasses_Validation_ActuatorFilter.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_BoilerCHP_Examples_CHPSystemNoControl.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_FixedResistances_Examples_PlugFlowPipeDiscretized.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_WetCoilEffectivenessNTUMassFlow.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Validation_WetCoilEffectivenessNTU.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_DpControlledMovers_Examples_DpControlled_dpConst.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_DpControlledMovers_Examples_DpControlled_dpVar.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpHeadControlled.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlled.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Movers_PumpsPolynomialBased_Examples_PumpSpeedControlledDpV.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Examples_Outside_CpData.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Examples_Outside_CpData_Angles.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Examples_Outside_CpData_Specification.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Validation_Outside_CpData_Directions.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamDerivativeCheck.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamProperties.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamSaturationConsistencyCheck.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamTemperatureEnthalpyInversion.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Systems_HeatPumpSystems_Examples_HeatPumpSystem.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Systems_ModularAHU_Examples_GenericAHU.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Utilities_Math_Examples_MovingAverage.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Utilities_Math_Examples_Polynomial.txt create mode 100644 AixLib/Resources/ReferenceResults/Dymola/AixLib_Utilities_Sensors_Examples_ExergyMeters.txt delete mode 100644 AixLib/Resources/ReferenceResults/Dymola/Buildings_Fluid_HeatExchangers_Examples_DryCoilEffectivenessNTUPControl.txt create mode 100644 AixLib/Resources/Scripts/Conversion/ConvertIBPSA_from_3.0_to_4.0.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.0.1_to_1.0.2.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.0.2_to_1.0.3.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.0.3_to_1.0.4.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.0.3_to_1.1.0.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.1.0_to_1.2.0.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.2.0_to_1.2.1.mos create mode 100644 AixLib/Resources/Scripts/ConvertAixLib_from_1.2.1_to_1.2.2.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/Interpolate.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/PowerLaw.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/PressurizationData.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/TrickleVent.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OneWayFlow.mos create mode 100644 AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAltitudeTMY3.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/PIDHysteresis.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/PIDHysteresisTimer.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Electrical/Examples/ExamplePVSystem.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Electrical/Validation/ValidationPVSystem.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/Validation/ActuatorFilter.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/BoilerCHP/Examples/CHPSystemNoControl.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/DistrictHeatingCooling/Demands/Examples/OpenLoopVarTSupplyDpBypass.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/BaseClasses/Validation/PlugFlowCore.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/PlugFlowPipeDiscretized.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Examples/WetCoilEffectivenessNTUMassFlow.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/WetCoilEffectivenessNTU.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/DpControlledMovers/Examples/DpControlled_dpConst.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/DpControlledMovers/Examples/DpControlled_dpVar.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpHdpVarControlTest.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpHeadControlled.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpNdpVarControlTest.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpSpeedControlled.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpSpeedControlledDpV.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpSpeedControlledLimiterTest.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Movers/PumpsPolynomialBased/Examples/PumpSpeedControlledTest.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpData.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpData_Angles.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpData_Specification.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Fluid/Sources/Validation/Outside_CpData_Directions.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Media/Examples/SteamDerivativeCheck.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Media/Examples/SteamProperties.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Media/Examples/SteamSaturationConsistencyCheck.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Media/Examples/SteamTemperatureEnthalpyInversion.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Systems/ModularAHU/Examples/GenericAHU.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Systems/ModularAHU/Examples/Heater.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/ThermalZones/ReducedOrder/Examples/MultizoneMoistAirCO2Equipped.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/MovingAverage.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/Polynomial.mos delete mode 100644 AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/Polynominal.mos create mode 100644 AixLib/Resources/Scripts/Dymola/Utilities/Sensors/Examples/ExergyMeters.mos rename AixLib/Resources/Scripts/{github-actions/jmodelica/jm_ipython.sh => travis/omc/omc} (76%) mode change 100755 => 100644 AixLib/Resources/src/convertEPW/Makefile mode change 100755 => 100644 AixLib/Resources/src/convertEPW/src/Makefile create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.css.map create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css.map create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.css.map create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.min.css.map create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.eot create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.svg create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.ttf create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff2 create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/js/bootstrap.js create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/js/bootstrap.min.js create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/js/npm.js create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/cerulean/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/cosmo/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/cyborg/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/darkly/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/flatly/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.eot create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.svg create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.ttf create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff2 create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/journal/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/lumen/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/paper/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/readable/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/sandstone/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/simplex/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/slate/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/spacelab/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/superhero/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/united/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/yeti/bootstrap.min.css create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/jquery-3.5.1.js create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/js/jquery-1.12.4.min.js delete mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/language_data.js create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/underscore-1.13.1.js create mode 100644 AixLib/Resources/src/fluid/heatpumps/calibration/doc/requirements.txt create mode 100644 AixLib/Resources/weatherdata/TRY2015_Jahr_City_Aachen.mos create mode 100644 AixLib/Systems/HydraulicModules/Controller/CalcHydraulicPower.mo create mode 100644 AixLib/Systems/HydraulicModules/Controller/CtrThrottleQFlow.mo create mode 100644 AixLib/Systems/ModularAHU/BaseClasses/GenericAHUBus.mo create mode 100644 AixLib/Systems/ModularAHU/Controller/CtrAHUBasic.mo create mode 100644 AixLib/Systems/ModularAHU/Examples/EONERC_AHU2.mo create mode 100644 AixLib/Systems/ModularAHU/Examples/GenericAHU.mo create mode 100644 AixLib/Systems/ModularAHU/GenericAHU.mo create mode 100644 AixLib/Systems/TABS/BaseClasses/TabsBus.mo create mode 100644 AixLib/Systems/TABS/BaseClasses/package.mo create mode 100644 AixLib/Systems/TABS/BaseClasses/package.order create mode 100644 AixLib/Systems/TABS/Controller/CtrTabs.mo create mode 100644 AixLib/Systems/TABS/Controller/package.mo create mode 100644 AixLib/Systems/TABS/Controller/package.order create mode 100644 AixLib/Systems/TABS/Examples/Tabs.mo create mode 100644 AixLib/Systems/TABS/Examples/package.mo create mode 100644 AixLib/Systems/TABS/Examples/package.order create mode 100644 AixLib/Systems/TABS/Tabs.mo create mode 100644 AixLib/Systems/TABS/package.mo create mode 100644 AixLib/Systems/TABS/package.order delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/BuildingAndEnergySystem/OneAppartment_Radiators.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/BuildingAndEnergySystem/package.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/BuildingAndEnergySystem/package.order delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/BuildingEnvelope/OneAppartment_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/BuildingEnvelope/package.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/BuildingEnvelope/package.order delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/EnergySystem/OneAppartment/Radiators.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/EnergySystem/OneAppartment/package.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/EnergySystem/OneAppartment/package.order delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/EnergySystem/package.mo delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/EnergySystem/package.order delete mode 100644 AixLib/ThermalZones/HighOrder/House/MFD/package.mo create mode 100644 AixLib/ThermalZones/HighOrder/Rooms/BaseClasses/PartialRoomFourWalls.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/Bathroom_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/Bedroom_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/Children_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/Corridor_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/Kitchen_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/Livingroom_VoWo.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/package.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/OneAppartment/package.order delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/package.mo delete mode 100644 AixLib/ThermalZones/HighOrder/Rooms/MFD/package.order create mode 100644 AixLib/ThermalZones/ReducedOrder/Multizone/BaseClasses/MultizonePostProcessing.mo create mode 100644 AixLib/Utilities/Math/Examples/MovingAverage.mo create mode 100644 AixLib/Utilities/Math/Examples/Polynomial.mo delete mode 100644 AixLib/Utilities/Math/Examples/Polynominal.mo create mode 100644 AixLib/Utilities/Math/Polynomial.mo delete mode 100644 AixLib/Utilities/Math/Polynominal.mo create mode 100644 AixLib/Utilities/Psychrometrics/MixedHumidity.mo create mode 100644 AixLib/Utilities/Psychrometrics/hSat_pTSat.mo delete mode 100644 AixLib/legal.html delete mode 100644 bin/01_BaseFunctions/Compare.py delete mode 100644 bin/01_BaseFunctions/DymolaExample.py delete mode 100644 bin/01_BaseFunctions/DymolaInterface.py delete mode 100644 bin/01_BaseFunctions/Functions.py delete mode 100644 bin/01_BaseFunctions/Interface_Python.py delete mode 100644 bin/01_BaseFunctions/html_tidy.py delete mode 100644 bin/01_BaseFunctions/python_dymola_interface.py delete mode 100644 bin/01_BaseFunctions/view_html_errors.py delete mode 100644 bin/01_BaseFunctions/view_html_errors_v2.py delete mode 100644 bin/02_CITests/CleanUpSkripts/README.md delete mode 100644 bin/02_CITests/CleanUpSkripts/deploy_artifacts.py delete mode 100644 bin/02_CITests/CleanUpSkripts/dym_check_lic.mos delete mode 100644 bin/02_CITests/CleanUpSkripts/dym_check_lic.py delete mode 100644 bin/02_CITests/CleanUpSkripts/sort_models.py delete mode 100644 bin/02_CITests/CleanUpSkripts/time.py delete mode 100644 bin/02_CITests/Converter/Vorlage.html delete mode 100644 bin/02_CITests/Converter/google_charts.py delete mode 100644 bin/02_CITests/Converter/index.html delete mode 100644 bin/02_CITests/SyntaxTests/StyleChecking.py delete mode 100644 bin/02_CITests/SyntaxTests/api_github.py delete mode 100644 bin/02_CITests/SyntaxTests/git_commands.py delete mode 100644 bin/02_CITests/SyntaxTests/html_tidy_errors.py delete mode 100644 bin/02_CITests/SyntaxTests/sort_models.py delete mode 100644 bin/02_CITests/UnitTests/CheckPackages/sort_models.py delete mode 100644 bin/02_CITests/UnitTests/CheckPackages/validatetest.py delete mode 100644 bin/02_CITests/UnitTests/list_extended_models.py delete mode 100644 bin/02_CITests/UnitTests/reference_check.py delete mode 100644 bin/02_CITests/UnitTests/runUnitTests.py delete mode 100644 bin/02_CITests/__init__.py delete mode 100644 bin/02_CITests/deploy/IBPSA_Merge/PR_IPBSA_Merge.py delete mode 100644 bin/02_CITests/deploy/IBPSA_Merge/copy_conversion_script.py delete mode 100644 bin/02_CITests/deploy/IBPSA_Merge/correct_userguide.py delete mode 100644 bin/02_CITests/deploy/IBPSA_Merge/diff_reference.py delete mode 100644 bin/03_WhiteLists/WhiteList_CheckModel.txt delete mode 100644 bin/03_WhiteLists/changedmodels.txt delete mode 100644 bin/04_Documentation/Documentation_GitLab.md delete mode 100644 bin/04_Documentation/GITLAB CICD.pdf delete mode 100644 bin/04_Documentation/Gitlab_CICD_Commands.md delete mode 100644 bin/04_Documentation/Powerpoint/PipelineProcess [Automatisch gespeichert].pptx delete mode 100644 bin/04_Documentation/Powerpoint/PipelineProcess.pptx delete mode 100644 bin/04_Documentation/Powerpoint/PipelineProcess_v2.pptx delete mode 100644 bin/04_Documentation/setup_gitlab_runner.md delete mode 100644 bin/06_Configfiles/README.md delete mode 100644 bin/06_Configfiles/autoMergeRequest.sh delete mode 100644 bin/06_Configfiles/autoPullRequest.sh delete mode 100644 bin/06_Configfiles/checkVariables.sh delete mode 100644 bin/06_Configfiles/delete_merged_branches.sh delete mode 100644 bin/06_Configfiles/exit.sh delete mode 100644 bin/06_Configfiles/list_remote_mirror.sh delete mode 100644 bin/06_Configfiles/showMergeRequest.sh create mode 100644 bin/CITests/01_CleanUp/README.md rename bin/{02_CITests/CleanUpSkripts => CITests/01_CleanUp}/__init__.py (100%) rename bin/{02_CITests/CleanUpSkripts => CITests/01_CleanUp}/cleanmodelica.py (100%) create mode 100644 bin/CITests/01_CleanUp/setting_check.py create mode 100644 bin/CITests/02_UnitTests/CheckPackages/__init__.py create mode 100644 bin/CITests/02_UnitTests/CheckPackages/validatetest.py rename bin/{02_CITests/UnitTests => CITests/02_UnitTests}/How_to_wirte_a_new_UnitTest.md (100%) rename bin/{02_CITests/UnitTests => CITests/02_UnitTests}/README.md (86%) create mode 100644 bin/CITests/02_UnitTests/reference_check.py rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/README.md (76%) create mode 100644 bin/CITests/03_SyntaxTests/StyleChecking.py rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/__init__.py (100%) create mode 100644 bin/CITests/03_SyntaxTests/html_tidy_errors.py rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/bin/tidy.dll (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/bin/tidy.exe (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/include/tidy.h (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/include/tidybuffio.h (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/include/tidyenum.h (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/include/tidyplatform.h (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/lib/pkgconfig/tidy.pc (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/lib/tidy.lib (100%) rename bin/{02_CITests/SyntaxTests => CITests/03_SyntaxTests}/tidy-5.6.0-vc10-64b/lib/tidys.lib (100%) create mode 100644 bin/CITests/04_api_script/README.md create mode 100644 bin/CITests/04_api_script/api_github.py create mode 100644 bin/CITests/04_api_script/api_slack.py create mode 100644 bin/CITests/05_Converter/README.md create mode 100644 bin/CITests/05_Converter/google_charts.py create mode 100644 bin/CITests/05_Converter/lock_model.py create mode 100644 bin/CITests/06_deploy/IBPSA_Merge/copy_conversion_script.py create mode 100644 bin/CITests/06_deploy/IBPSA_Merge/correct_userguide.py create mode 100644 bin/CITests/06_deploy/IBPSA_Merge/diff_reference.py create mode 100644 bin/CITests/06_deploy/README.md create mode 100644 bin/CITests/06_deploy/deploy_artifacts.py create mode 100644 bin/CITests/07_ci_templates/README.md create mode 100644 bin/CITests/07_ci_templates/ci_templates.py rename bin/{02_CITests => CITests}/README.md (58%) create mode 100644 bin/CITests/_config.py rename bin/{06_Configfiles => Configfiles}/EOF.sh (58%) create mode 100644 bin/Configfiles/README.md create mode 100644 bin/Configfiles/ci_changed_model_list.txt create mode 100644 bin/Configfiles/ci_difference_result.txt create mode 100644 bin/Configfiles/ci_new_created_reference.txt create mode 100644 bin/Configfiles/ci_reference_list.txt create mode 100644 bin/Configfiles/ci_slack_branch_inactive_list.txt create mode 100644 bin/Configfiles/exit.sh rename bin/{04_Documentation => Documentation}/How_to_integrate_new_tests.md (100%) rename bin/{04_Documentation => Documentation}/Images/Aixliblib.png (100%) rename bin/{04_Documentation => Documentation}/Images/CreateNewBranch.png (100%) rename bin/{04_Documentation => Documentation}/Images/DockerRegistry.png (100%) rename bin/{04_Documentation => Documentation}/Images/GITLABCI.png (100%) rename bin/{04_Documentation => Documentation}/Images/GitLabCIWorkflow.png (100%) rename bin/{04_Documentation => Documentation}/Images/HTMLProcess.png (100%) rename bin/{04_Documentation => Documentation}/Images/Keywords.png (100%) rename bin/{04_Documentation => Documentation}/Images/MergeProcess.PNG (100%) rename bin/{04_Documentation => Documentation}/Images/Mirroring_ssh.PNG (100%) rename bin/{04_Documentation => Documentation}/Images/ModelManagement_StyleChecking.PNG (100%) rename bin/{04_Documentation => Documentation}/Images/Pipeline.PNG (100%) rename bin/{04_Documentation => Documentation}/Images/PipelineProcess.png (100%) rename bin/{04_Documentation => Documentation}/Images/RWTH_AixLib.png (100%) rename bin/{04_Documentation => Documentation}/Images/Register_Runner.PNG (100%) rename bin/{04_Documentation => Documentation}/Images/Registry.png (100%) rename bin/{04_Documentation => Documentation}/Images/RegistryIntegrate.png (100%) rename bin/{04_Documentation => Documentation}/Images/Stages.png (100%) rename bin/{04_Documentation => Documentation}/Images/Thumbs.db (100%) rename bin/{04_Documentation => Documentation}/Images/Webhook_trigger.PNG (100%) rename bin/{04_Documentation => Documentation}/Images/Workflow.png (100%) rename bin/{04_Documentation => Documentation}/Images/extends.png (100%) rename bin/{04_Documentation => Documentation}/Images/only.png (100%) rename bin/{04_Documentation => Documentation}/Images/public_key.PNG (100%) rename bin/{04_Documentation => Documentation}/README.md (75%) create mode 100644 bin/Setting/CI_setting.toml create mode 100644 bin/Setting/CI_setting_template.txt create mode 100644 bin/Setting/README.md rename bin/{03_WhiteLists => ci_whitelist}/README.md (52%) rename bin/{03_WhiteLists/HTML_IBPSA_WhiteList.txt => ci_whitelist/html_whitelist.txt} (96%) create mode 100644 bin/ci_whitelist/model_whitelist.txt rename bin/{03_WhiteLists/ref_Whitelist.txt => ci_whitelist/reference_check_whitelist.txt} (70%) create mode 100644 bin/dymola_scripts/open_MSL_4.0.mos create mode 100644 bin/interact_CI/README.md create mode 100644 bin/interact_CI/show_ref.txt create mode 100644 bin/interact_CI/update_ref.txt create mode 100644 bin/templates/01_google_templates/google_chart.txt create mode 100644 bin/templates/01_google_templates/index.txt create mode 100644 bin/templates/01_google_templates/layout_index.txt create mode 100644 bin/templates/02_charts/AixLib/AixLib_ThermalZones_ReducedOrder_Examples_MultizoneMoistAirCO2.html create mode 100644 bin/templates/02_charts/AixLib/AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomFourElements.html create mode 100644 bin/templates/02_charts/AixLib/AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomFourElementsTraceSubstance.html create mode 100644 bin/templates/02_charts/AixLib/AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomOneElement.html create mode 100644 bin/templates/02_charts/AixLib/AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomThreeElements.html create mode 100644 bin/templates/02_charts/AixLib/AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomTwoElements.html create mode 100644 bin/templates/02_charts/AixLib/index.html create mode 100644 bin/templates/02_charts/index.html create mode 100644 bin/templates/03_ci_templates/01_deploy/IBPSA_Merge.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/01_deploy/IBPSA_Merge.txt create mode 100644 bin/templates/03_ci_templates/01_deploy/gitlab_pages.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/01_deploy/gitlab_pages.txt create mode 100644 bin/templates/03_ci_templates/02_UnitTests/check_model.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/02_UnitTests/check_model.txt create mode 100644 bin/templates/03_ci_templates/02_UnitTests/regression_test.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/02_UnitTests/regression_test.txt create mode 100644 bin/templates/03_ci_templates/02_UnitTests/simulate_model.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/02_UnitTests/simulate_model.txt create mode 100644 bin/templates/03_ci_templates/03_SyntaxTest/html_check.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/03_SyntaxTest/html_check.txt create mode 100644 bin/templates/03_ci_templates/03_SyntaxTest/style_check.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/03_SyntaxTest/style_check.txt create mode 100644 bin/templates/03_ci_templates/04_CleanUpScript/ci_setting.gitlab-ci.yml create mode 100644 bin/templates/03_ci_templates/04_CleanUpScript/ci_setting.txt create mode 100644 bin/templates/03_ci_templates/README.md create mode 100644 bin/templates/03_ci_templates/gitlab-ci.txt create mode 100644 bin/templates/README.md diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000000..6012034185 --- /dev/null +++ b/.gitconfig @@ -0,0 +1 @@ +anw = !git diff -U0 -w --no-color -- \"$@\" | git apply --cached --ignore-whitespace --unidiff-zero "#" \ No newline at end of file diff --git a/.github/issue-branch.yml b/.github/issue-branch.yml new file mode 100644 index 0000000000..1cf390fedb --- /dev/null +++ b/.github/issue-branch.yml @@ -0,0 +1,10 @@ +# configuration file for automatic issue branch creation +branchName: 'Issue${issue.number}_${issue.title}' +silent: false +autoCloseIssue: true +gitSafeReplacementChar: '_' +defaultBranch: 'development' + +branches: + - label: question + skip: true \ No newline at end of file diff --git a/.github/workflows/github-action-slack.yml b/.github/workflows/github-action-slack.yml new file mode 100644 index 0000000000..ad4c3e5d90 --- /dev/null +++ b/.github/workflows/github-action-slack.yml @@ -0,0 +1,21 @@ +name: github-action-slack +on: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '0 18 1 * *' + + +jobs: + slack_message_job: + runs-on: ubuntu-latest + strategy: + matrix: + # in this example, there is a newer version already installed, 3.7.7, so the older version will be downloaded + python-version: ['3.10'] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: '3.11.0-alpha.1' + - run: pip install requests datetime argparse slack_sdk + - run: python bin/CITests/04_api_script/api_slack.py --github-token ${{ secrets.GIT_TOKEN }} --slack-token ${{ secrets.SLACK_BOT_TOKEN }} --github-repo "RWTH-EBC/AixLib" --base-branch "development" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8d14cf31aa..8a05e5e1ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,58 +1,39 @@ -#!/bin/bash -image: registry.git.rwth-aachen.de/ebc/ebc_intern/dymola-docker:miniconda-latest - -stages: - - deleteBranch - - IBPSA_Merge - - Update_WhiteList - - Release - - SetSettings - - CheckSettings - - Ref_Check - - Ref_Update - - Dif_Ref - - build - - HTMLCheck - - deploy - - openMR - - post - - ChangedModels - - StyleCheck - - Check - - Simulate - - RegressionTest - - -variables: - Praefix_Branch: "Correct_HTML_" - TARGET_BRANCH: $CI_COMMIT_REF_NAME - Newbranch: ${Praefix_Branch}${CI_COMMIT_REF_NAME} - Github_Repository : RWTH-EBC/AixLib - -include: - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/CheckConfiguration/check_settings.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/deploy/deploy_ref.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/development_check.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/deploy/IBPSA_Merge.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/regression_ref_check.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/SyntaxTests/html_check.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/SyntaxTests/style_check.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/check_model.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/regression_test.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/simulate_model.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/changed_simulate_model.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/changed_check_model.gitlab-ci.yml' - - project: 'EBC/EBC_all/gitlab_ci/templates' - file: 'modelica-ci-tests/UnitTests/changed_regression_test.gitlab-ci.yml' \ No newline at end of file + +image: registry.git.rwth-aachen.de/ebc/ebc_intern/dymola-docker:Dymola_2022-miniconda + +stages: + - check_setting + - build_templates + - Ref_Check + - build + - HTML_Check + - IBPSA_Merge + - create_html_whitelist + - Update_WhiteList + - Release + - StyleCheck + - check + - openMR + - post + - create_whitelist + - simulate + - RegressionTest + - Update_Ref + - plot_ref + - prepare + - deploy + +variables: + Github_Repository: RWTH-EBC/AixLib + GITLAB_Page: https://ebc.pages.rwth-aachen.de/EBC_all/github_ci/AixLib + +include: + - 'bin/templates/03_ci_templates/01_deploy/gitlab_pages.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/01_deploy/IBPSA_Merge.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/02_UnitTests/check_model.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/02_UnitTests/regression_test.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/02_UnitTests/simulate_model.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/03_SyntaxTest/html_check.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/03_SyntaxTest/style_check.gitlab-ci.yml' + - 'bin/templates/03_ci_templates/04_CleanUpScript/ci_setting.gitlab-ci.yml' + \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index fd170093ae..e69de29bb2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +0,0 @@ -[submodule "netCDF-DataReader"] - path = netCDF-DataReader - url = https://github.com/modelica-3rdparty/netCDF-DataReader - branch = master diff --git a/AixLib/.copiedFiles.txt b/AixLib/.copiedFiles.txt index fda6dcf0b6..8f67174064 100644 --- a/AixLib/.copiedFiles.txt +++ b/AixLib/.copiedFiles.txt @@ -3,20 +3,27 @@ AixLib/Airflow/Multizone/BaseClasses/Door.mo AixLib/Airflow/Multizone/BaseClasses/DoorDiscretized.mo AixLib/Airflow/Multizone/BaseClasses/ErrorControl.mo +AixLib/Airflow/Multizone/BaseClasses/Examples/Interpolate.mo AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mo AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mo AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mo +AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mo AixLib/Airflow/Multizone/BaseClasses/Examples/package.mo AixLib/Airflow/Multizone/BaseClasses/Examples/package.order -AixLib/Airflow/Multizone/BaseClasses/PowerLawResistance.mo +AixLib/Airflow/Multizone/BaseClasses/PartialOneWayFlowElement.mo +AixLib/Airflow/Multizone/BaseClasses/PowerLawResistanceParameters.mo AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElementBuoyancy.mo AixLib/Airflow/Multizone/BaseClasses/ZonalFlow.mo +AixLib/Airflow/Multizone/BaseClasses/interpolate.mo AixLib/Airflow/Multizone/BaseClasses/package.mo AixLib/Airflow/Multizone/BaseClasses/package.order AixLib/Airflow/Multizone/BaseClasses/powerLaw.mo AixLib/Airflow/Multizone/BaseClasses/powerLawFixedM.mo AixLib/Airflow/Multizone/BaseClasses/windPressureLowRise.mo +AixLib/Airflow/Multizone/BaseClasses/windPressureProfile.mo +AixLib/Airflow/Multizone/Coefficient_V_flow.mo +AixLib/Airflow/Multizone/Coefficient_m_flow.mo AixLib/Airflow/Multizone/DoorDiscretizedOpen.mo AixLib/Airflow/Multizone/DoorDiscretizedOperable.mo AixLib/Airflow/Multizone/DoorOpen.mo @@ -31,19 +38,27 @@ AixLib/Airflow/Multizone/Examples/OneEffectiveAirLeakageArea.mo AixLib/Airflow/Multizone/Examples/OneOpenDoor.mo AixLib/Airflow/Multizone/Examples/OneRoom.mo AixLib/Airflow/Multizone/Examples/Orifice.mo +AixLib/Airflow/Multizone/Examples/PowerLaw.mo +AixLib/Airflow/Multizone/Examples/PressurizationData.mo AixLib/Airflow/Multizone/Examples/ReverseBuoyancy.mo AixLib/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mo +AixLib/Airflow/Multizone/Examples/TrickleVent.mo AixLib/Airflow/Multizone/Examples/ZonalFlow.mo AixLib/Airflow/Multizone/Examples/package.mo AixLib/Airflow/Multizone/Examples/package.order AixLib/Airflow/Multizone/MediumColumn.mo AixLib/Airflow/Multizone/MediumColumnDynamic.mo AixLib/Airflow/Multizone/Orifice.mo +AixLib/Airflow/Multizone/Point_m_flow.mo +AixLib/Airflow/Multizone/Points_m_flow.mo +AixLib/Airflow/Multizone/Table_V_flow.mo +AixLib/Airflow/Multizone/Table_m_flow.mo AixLib/Airflow/Multizone/Types/densitySelection.mo AixLib/Airflow/Multizone/Types/package.mo AixLib/Airflow/Multizone/Types/package.order AixLib/Airflow/Multizone/UsersGuide.mo AixLib/Airflow/Multizone/Validation/DoorOpenClosed.mo +AixLib/Airflow/Multizone/Validation/OneWayFlow.mo AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mo AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mo AixLib/Airflow/Multizone/Validation/OpenDoorPressure.mo @@ -147,6 +162,7 @@ AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/ConvertTimeNegativeSt AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/ConvertTimePositiveStart.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/EquationOfTime.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAbsolutePath.mo +AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAltitudeTMY3.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/GetHeaderElement.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3LongHeader.mo @@ -170,7 +186,9 @@ AixLib/BoundaryConditions/WeatherData/BaseClasses/SolarTime.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/SourceSelector.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/SourceSelectorRadiation.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/getAbsolutePath.mo +AixLib/BoundaryConditions/WeatherData/BaseClasses/getAltitudeLocationTMY3.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/getHeaderElementTMY3.mo +AixLib/BoundaryConditions/WeatherData/BaseClasses/getLastHeaderElementTMY3.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/getLatitudeTMY3.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/getLongitudeTMY3.mo AixLib/BoundaryConditions/WeatherData/BaseClasses/getTimeSpanTMY3.mo @@ -198,16 +216,12 @@ AixLib/Controls/Continuous/Examples/LimPID.mo AixLib/Controls/Continuous/Examples/LimPIDWithReset.mo AixLib/Controls/Continuous/Examples/NumberOfRequests.mo AixLib/Controls/Continuous/Examples/OffTimer.mo -AixLib/Controls/Continuous/Examples/PIDHysteresis.mo -AixLib/Controls/Continuous/Examples/PIDHysteresisTimer.mo AixLib/Controls/Continuous/Examples/SignalRanker.mo AixLib/Controls/Continuous/Examples/package.mo AixLib/Controls/Continuous/Examples/package.order AixLib/Controls/Continuous/LimPID.mo AixLib/Controls/Continuous/NumberOfRequests.mo AixLib/Controls/Continuous/OffTimer.mo -AixLib/Controls/Continuous/PIDHysteresis.mo -AixLib/Controls/Continuous/PIDHysteresisTimer.mo AixLib/Controls/Continuous/SignalRanker.mo AixLib/Controls/Continuous/Validation/LimPIDReset.mo AixLib/Controls/Continuous/Validation/OffTimerNonZeroStart.mo @@ -300,6 +314,7 @@ AixLib/Fluid/Actuators/Valves/package.mo AixLib/Fluid/Actuators/Valves/package.order AixLib/Fluid/Actuators/package.mo AixLib/Fluid/Actuators/package.order +AixLib/Fluid/BaseClasses/ActuatorFilter.mo AixLib/Fluid/BaseClasses/FlowModels/Validation/BasicFlowFunction_dp_DerivativeCheck.mo AixLib/Fluid/BaseClasses/FlowModels/Validation/BasicFlowFunction_dp_DerivativeCheck2.mo AixLib/Fluid/BaseClasses/FlowModels/Validation/BasicFlowFunction_m_flow_DerivativeCheck.mo @@ -321,6 +336,7 @@ AixLib/Fluid/BaseClasses/IndexMassFraction.mo AixLib/Fluid/BaseClasses/MassFlowRateMultiplier.mo AixLib/Fluid/BaseClasses/PartialResistance.mo AixLib/Fluid/BaseClasses/PartialThreeWayResistance.mo +AixLib/Fluid/BaseClasses/Validation/ActuatorFilter.mo AixLib/Fluid/BaseClasses/Validation/MassFlowRateMultiplier.mo AixLib/Fluid/BaseClasses/Validation/package.mo AixLib/Fluid/BaseClasses/Validation/package.order @@ -485,12 +501,9 @@ AixLib/Fluid/FMI/Validation/package.order AixLib/Fluid/FMI/package.mo AixLib/Fluid/FMI/package.order AixLib/Fluid/FixedResistances/BaseClasses/PlugFlow.mo -AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowCore.mo AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowHeatLoss.mo +AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowPipe.mo AixLib/Fluid/FixedResistances/BaseClasses/PlugFlowTransportDelay.mo -AixLib/Fluid/FixedResistances/BaseClasses/Validation/PlugFlowCore.mo -AixLib/Fluid/FixedResistances/BaseClasses/Validation/package.mo -AixLib/Fluid/FixedResistances/BaseClasses/Validation/package.order AixLib/Fluid/FixedResistances/BaseClasses/package.mo AixLib/Fluid/FixedResistances/BaseClasses/package.order AixLib/Fluid/FixedResistances/CheckValve.mo @@ -498,6 +511,7 @@ AixLib/Fluid/FixedResistances/Examples/CheckValve.mo AixLib/Fluid/FixedResistances/Examples/FlowJunction.mo AixLib/Fluid/FixedResistances/Examples/HydraulicDiameter.mo AixLib/Fluid/FixedResistances/Examples/PlugFlowPipe.mo +AixLib/Fluid/FixedResistances/Examples/PlugFlowPipeDiscretized.mo AixLib/Fluid/FixedResistances/Examples/PressureDrop.mo AixLib/Fluid/FixedResistances/Examples/package.mo AixLib/Fluid/FixedResistances/Examples/package.order @@ -505,6 +519,7 @@ AixLib/Fluid/FixedResistances/HydraulicDiameter.mo AixLib/Fluid/FixedResistances/Junction.mo AixLib/Fluid/FixedResistances/LosslessPipe.mo AixLib/Fluid/FixedResistances/PlugFlowPipe.mo +AixLib/Fluid/FixedResistances/PlugFlowPipeDiscretized.mo AixLib/Fluid/FixedResistances/PressureDrop.mo AixLib/Fluid/FixedResistances/Validation/FlowJunctionSteadyState.mo AixLib/Fluid/FixedResistances/Validation/FlowJunctionSteadyStateNoPressureDrop.mo @@ -733,10 +748,16 @@ AixLib/Fluid/HeatExchangers/BaseClasses/HANaturalCylinder.mo AixLib/Fluid/HeatExchangers/BaseClasses/PartialEffectiveness.mo AixLib/Fluid/HeatExchangers/BaseClasses/PartialEffectivenessNTU.mo AixLib/Fluid/HeatExchangers/BaseClasses/PartialPrescribedOutlet.mo +AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilDryRegime.mo +AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilDryWetRegime.mo +AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilUARated.mo +AixLib/Fluid/HeatExchangers/BaseClasses/WetCoilWetRegime.mo +AixLib/Fluid/HeatExchangers/BaseClasses/determineWaterIndex.mo AixLib/Fluid/HeatExchangers/BaseClasses/dynamicViscosityWater.mo AixLib/Fluid/HeatExchangers/BaseClasses/epsilon_C.mo AixLib/Fluid/HeatExchangers/BaseClasses/epsilon_ntuZ.mo AixLib/Fluid/HeatExchangers/BaseClasses/isobaricExpansionCoefficientWater.mo +AixLib/Fluid/HeatExchangers/BaseClasses/lmtd.mo AixLib/Fluid/HeatExchangers/BaseClasses/ntu_epsilonZ.mo AixLib/Fluid/HeatExchangers/BaseClasses/package.mo AixLib/Fluid/HeatExchangers/BaseClasses/package.order @@ -755,6 +776,7 @@ AixLib/Fluid/HeatExchangers/Examples/DryCoilEffectivenessNTUPControl.mo AixLib/Fluid/HeatExchangers/Examples/WaterCooler_T.mo AixLib/Fluid/HeatExchangers/Examples/WaterHeater_T.mo AixLib/Fluid/HeatExchangers/Examples/WaterHeater_u.mo +AixLib/Fluid/HeatExchangers/Examples/WetCoilEffectivenessNTUMassFlow.mo AixLib/Fluid/HeatExchangers/Examples/package.mo AixLib/Fluid/HeatExchangers/Examples/package.order AixLib/Fluid/HeatExchangers/HeaterCooler_u.mo @@ -773,8 +795,10 @@ AixLib/Fluid/HeatExchangers/Validation/EvaporatorCondenser.mo AixLib/Fluid/HeatExchangers/Validation/HeaterCooler_u.mo AixLib/Fluid/HeatExchangers/Validation/PrescribedOutlet.mo AixLib/Fluid/HeatExchangers/Validation/PrescribedOutlet_dynamic.mo +AixLib/Fluid/HeatExchangers/Validation/WetCoilEffectivenessNTU.mo AixLib/Fluid/HeatExchangers/Validation/package.mo AixLib/Fluid/HeatExchangers/Validation/package.order +AixLib/Fluid/HeatExchangers/WetCoilEffectivenessNTU.mo AixLib/Fluid/HeatExchangers/package.mo AixLib/Fluid/HeatExchangers/package.order AixLib/Fluid/HeatPumps/BaseClasses/PartialWaterToWater.mo @@ -1135,6 +1159,9 @@ AixLib/Fluid/Sources/Boundary_pT.mo AixLib/Fluid/Sources/Boundary_ph.mo AixLib/Fluid/Sources/Examples/MassFlowSource_WeatherData.mo AixLib/Fluid/Sources/Examples/Outside.mo +AixLib/Fluid/Sources/Examples/Outside_CpData.mo +AixLib/Fluid/Sources/Examples/Outside_CpData_Angles.mo +AixLib/Fluid/Sources/Examples/Outside_CpData_Specification.mo AixLib/Fluid/Sources/Examples/Outside_CpLowRise.mo AixLib/Fluid/Sources/Examples/PropertySource_T.mo AixLib/Fluid/Sources/Examples/PropertySource_h.mo @@ -1145,6 +1172,7 @@ AixLib/Fluid/Sources/MassFlowSource_T.mo AixLib/Fluid/Sources/MassFlowSource_WeatherData.mo AixLib/Fluid/Sources/MassFlowSource_h.mo AixLib/Fluid/Sources/Outside.mo +AixLib/Fluid/Sources/Outside_CpData.mo AixLib/Fluid/Sources/Outside_CpLowRise.mo AixLib/Fluid/Sources/PropertySource_T.mo AixLib/Fluid/Sources/PropertySource_h.mo @@ -1157,6 +1185,7 @@ AixLib/Fluid/Sources/Validation/BaseClasses/package.order AixLib/Fluid/Sources/Validation/Boundary.mo AixLib/Fluid/Sources/Validation/BoundaryWithX_in.mo AixLib/Fluid/Sources/Validation/BoundaryWithXi_in.mo +AixLib/Fluid/Sources/Validation/Outside_CpData_Directions.mo AixLib/Fluid/Sources/Validation/package.mo AixLib/Fluid/Sources/Validation/package.order AixLib/Fluid/Sources/package.mo @@ -1219,6 +1248,10 @@ AixLib/Media/Examples/BaseClasses/package.order AixLib/Media/Examples/PropyleneGlycolWaterDerivativeCheck.mo AixLib/Media/Examples/PropyleneGlycolWaterProperties.mo AixLib/Media/Examples/PropyleneGlycolWaterTemperatureEnthalpyInversion.mo +AixLib/Media/Examples/SteamDerivativeCheck.mo +AixLib/Media/Examples/SteamProperties.mo +AixLib/Media/Examples/SteamSaturationConsistencyCheck.mo +AixLib/Media/Examples/SteamTemperatureEnthalpyInversion.mo AixLib/Media/Examples/WaterDerivativeCheck.mo AixLib/Media/Examples/WaterProperties.mo AixLib/Media/Examples/WaterTemperatureEnthalpyInversion.mo @@ -1262,6 +1295,7 @@ AixLib/Media/Specialized/Water/package.mo AixLib/Media/Specialized/Water/package.order AixLib/Media/Specialized/package.mo AixLib/Media/Specialized/package.order +AixLib/Media/Steam.mo AixLib/Media/Water.mo AixLib/Media/package.mo AixLib/Media/package.order @@ -1283,11 +1317,19 @@ AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/700260.epw AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/700260.mos AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/722190.epw AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/722190.mos -AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/725650.epw -AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/725650.mos AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/855740.epw AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/855740.mos AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/README.md +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD100.epw +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD100.mos +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD200.epw +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD200.mos +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD300.epw +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD300.mos +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD400.epw +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD400.mos +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD500.epw +AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD500.mos AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD600.epw AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WD600.mos AixLib/Resources/Data/BoundaryConditions/Validation/BESTEST/WeatherDriversResultsSubmittal1.json @@ -1309,7 +1351,7 @@ AixLib/Resources/Data/Fluid/FixedResistances/Validation/PlugFlowPipes/PipeDataUL AixLib/Resources/Data/Fluid/Geothermal/Borefields/HeatTransfer/Validation/Analytic_20Years.txt AixLib/Resources/Data/Fluid/Geothermal/Borefields/HeatTransfer/Validation/Beier_Smith_Spitler_2011_SandBox.txt AixLib/Resources/Data/Fluid/Geothermal/Borefields/HeatTransfer/Validation/Cimmino_Bernier_2015_SmallScale.txt -AixLib/Resources/Data/Utilities/IO/Files/Examples/CSVReader/Data.csv +AixLib/Resources/Data/Utilities/IO/Files/Examples/CSVReader/Data.txt AixLib/Resources/Documentation/userGuide/source/_static/lbl-logo.png AixLib/Resources/Images/Airflow/Multizone/BaseClasses/windPressureLowRise.odp AixLib/Resources/Images/Airflow/Multizone/BaseClasses/windPressureLowRise.png @@ -1336,9 +1378,6 @@ AixLib/Resources/Images/BoundaryConditions/zen_sun.png AixLib/Resources/Images/Controls/Continuous/Examples/NumberOfRequests.png AixLib/Resources/Images/Controls/Continuous/Examples/OffTimer1.png AixLib/Resources/Images/Controls/Continuous/Examples/OffTimer2.png -AixLib/Resources/Images/Controls/Continuous/Examples/PIDHysteresis.png -AixLib/Resources/Images/Controls/Continuous/Examples/PIDHysteresisTimerError.png -AixLib/Resources/Images/Controls/Continuous/Examples/PIDHysteresisTimerOutput.png AixLib/Resources/Images/Controls/Continuous/Examples/SignalRankerU.png AixLib/Resources/Images/Controls/Continuous/Examples/SignalRankerY.png AixLib/Resources/Images/Controls/SetPoints/Examples/OccupancySchedule.png @@ -1405,6 +1444,8 @@ AixLib/Resources/Images/Fluid/Sensors/twoPortHex.png AixLib/Resources/Images/Fluid/Sensors/twoPortHex.tiff AixLib/Resources/Images/Fluid/Sensors/warningIcon.png AixLib/Resources/Images/Fluid/Sensors/warningIcon.svg +AixLib/Resources/Images/Fluid/Sources/Outside_CpData.png +AixLib/Resources/Images/Fluid/Sources/Outside_CpData.svg AixLib/Resources/Images/Fluid/Storage/Stratified.pdf AixLib/Resources/Images/Fluid/Storage/Stratified.png AixLib/Resources/Images/Fluid/Storage/Stratified.svg @@ -1454,31 +1495,32 @@ AixLib/Resources/Images/Utilities/Math/Functions/Examples/cubicHermite.png AixLib/Resources/Images/Utilities/Math/Functions/SmoothExponentialXPower.png AixLib/Resources/Images/Utilities/Math/int.pdf AixLib/Resources/Images/Utilities/Math/int.png -AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_DoorOpenClosed.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_OpenDoorBuoyancyDynamic.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_OpenDoorBuoyancyPressureDynamic.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_OpenDoorPressure.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_OpenDoorTemperature.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_ThreeRoomsContamDiscretizedDoor.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_Validation_BESTEST_WD100.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_Validation_BESTEST_WD200.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_Validation_BESTEST_WD300.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_Validation_BESTEST_WD400.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_Validation_BESTEST_WD500.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_Validation_BESTEST_WD600.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_WeatherData_BaseClasses_Examples_GetTimeSpanTMY3LongHeader.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_WeatherData_BaseClasses_Examples_LimitMin.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Actuators_Dampers_Validation_PressureIndependent.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Validation_DryCoilEffectivenessNTU.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Antifreeze_Validation_EthyleneGlycolWater.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_ThermalZones_ReducedOrder_Examples_SimpleRoomFourElementsTraceSubstance.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_ThermalZones_ReducedOrder_Validation_RoomSteadyState.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Utilities_IO_SignalExchange_Examples_WeatherStation.txt -AixLib/Resources/ReferenceResults/Dymola/AixLib_Utilities_Math_Functions_Examples_SmoothHeavisideDerivatives.txt -AixLib/Resources/ReferenceResults/Dymola/Buildings_Fluid_HeatExchangers_Examples_DryCoilEffectivenessNTUPControl.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_BaseClasses_Examples_Interpolate.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_BaseClasses_Examples_WindPressureProfile.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Examples_PowerLaw.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Examples_PressurizationData.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Examples_TrickleVent.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Airflow_Multizone_Validation_OneWayFlow.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_BoundaryConditions_WeatherData_BaseClasses_Examples_GetAltitudeTMY3.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_BaseClasses_Validation_ActuatorFilter.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_FixedResistances_Examples_PlugFlowPipeDiscretized.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Examples_WetCoilEffectivenessNTUMassFlow.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_HeatExchangers_Validation_WetCoilEffectivenessNTU.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Examples_Outside_CpData.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Examples_Outside_CpData_Angles.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Examples_Outside_CpData_Specification.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Fluid_Sources_Validation_Outside_CpData_Directions.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamDerivativeCheck.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamProperties.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamSaturationConsistencyCheck.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Media_Examples_SteamTemperatureEnthalpyInversion.txt +AixLib/Resources/ReferenceResults/Dymola/AixLib_Utilities_Math_Examples_Polynomial.txt +AixLib/Resources/Scripts/Conversion/ConvertIBPSA_from_3.0_to_4.0.mos +AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/Interpolate.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mos +AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/CO2TransportStep.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ChimneyShaftNoVolume.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ChimneyShaftWithVolume.mos @@ -1488,10 +1530,14 @@ AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/OneEffectiveAirLeakag AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/OneOpenDoor.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/OneRoom.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/Orifice.mos +AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/PowerLaw.mos +AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/PressurizationData.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ReverseBuoyancy.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mos +AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/TrickleVent.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ZonalFlow.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/DoorOpenClosed.mos +AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OneWayFlow.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mos AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorPressure.mos @@ -1530,6 +1576,7 @@ AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examp AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/ConvertTimePositiveStart.mos AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/EquationOfTime.mos AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAbsolutePath.mos +AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAltitudeTMY3.mos AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetHeaderElement.mos AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3.mos AixLib/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3LongHeader.mos @@ -1548,8 +1595,6 @@ AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/LimPID.mos AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/LimPIDWithReset.mos AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/NumberOfRequests.mos AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/OffTimer.mos -AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/PIDHysteresis.mos -AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/PIDHysteresisTimer.mos AixLib/Resources/Scripts/Dymola/Controls/Continuous/Examples/SignalRanker.mos AixLib/Resources/Scripts/Dymola/Controls/Continuous/Validation/LimPIDReset.mos AixLib/Resources/Scripts/Dymola/Controls/Continuous/Validation/OffTimerNonZeroStart.mos @@ -1580,6 +1625,7 @@ AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/FlowModels/Validation/BasicFlo AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/FlowModels/Validation/InverseFlowFunctions.mos AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/FlowModels/Validation/InvertingBasicFlowFunction_dp.mos AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/FlowModels/Validation/InvertingBasicFlowFunction_m_flow.mos +AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/Validation/ActuatorFilter.mos AixLib/Resources/Scripts/Dymola/Fluid/BaseClasses/Validation/MassFlowRateMultiplier.mos AixLib/Resources/Scripts/Dymola/Fluid/Chillers/Examples/Carnot_TEva.mos AixLib/Resources/Scripts/Dymola/Fluid/Chillers/Examples/Carnot_y.mos @@ -1660,11 +1706,11 @@ AixLib/Resources/Scripts/Dymola/Fluid/FMI/Validation/FlowSplitter_u.mos AixLib/Resources/Scripts/Dymola/Fluid/FMI/Validation/HeaterFan.mos AixLib/Resources/Scripts/Dymola/Fluid/FMI/Validation/HeaterFanPressureDriven.mos AixLib/Resources/Scripts/Dymola/Fluid/FMI/Validation/HeaterFan_noReverseFlow.mos -AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/BaseClasses/Validation/PlugFlowCore.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/CheckValve.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/FlowJunction.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/HydraulicDiameter.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/PlugFlowPipe.mos +AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/PlugFlowPipeDiscretized.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Examples/PressureDrop.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Validation/FlowJunctionSteadyState.mos AixLib/Resources/Scripts/Dymola/Fluid/FixedResistances/Validation/FlowJunctionSteadyStateNoPressureDrop.mos @@ -1738,6 +1784,7 @@ AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Examples/DryCoilEffectivene AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Examples/WaterCooler_T.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Examples/WaterHeater_T.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Examples/WaterHeater_u.mos +AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Examples/WetCoilEffectivenessNTUMassFlow.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Radiators/Examples/RadiatorEN442_2.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/ConstantEffectiveness.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/DryCoilEffectivenessNTU.mos @@ -1745,6 +1792,7 @@ AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/EvaporatorConden AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/HeaterCooler_u.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/PrescribedOutlet.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/PrescribedOutlet_dynamic.mos +AixLib/Resources/Scripts/Dymola/Fluid/HeatExchangers/Validation/WetCoilEffectivenessNTU.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatPumps/Calibration/ScrollWaterToWater.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatPumps/Compressors/BaseClasses/Validation/TemperatureProtection.mos AixLib/Resources/Scripts/Dymola/Fluid/HeatPumps/Compressors/Validation/ReciprocatingCompressor.mos @@ -1860,6 +1908,9 @@ AixLib/Resources/Scripts/Dymola/Fluid/Sensors/Examples/Velocity.mos AixLib/Resources/Scripts/Dymola/Fluid/Sensors/Examples/VolumeFlowRate.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/MassFlowSource_WeatherData.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside.mos +AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpData.mos +AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpData_Angles.mos +AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpData_Specification.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/Outside_CpLowRise.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/PropertySource_T.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/PropertySource_h.mos @@ -1867,6 +1918,7 @@ AixLib/Resources/Scripts/Dymola/Fluid/Sources/Examples/TraceSubstancesFlowSource AixLib/Resources/Scripts/Dymola/Fluid/Sources/Validation/Boundary.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Validation/BoundaryWithX_in.mos AixLib/Resources/Scripts/Dymola/Fluid/Sources/Validation/BoundaryWithXi_in.mos +AixLib/Resources/Scripts/Dymola/Fluid/Sources/Validation/Outside_CpData_Directions.mos AixLib/Resources/Scripts/Dymola/Fluid/Storage/BaseClasses/Examples/IndirectTankHeatExchanger.mos AixLib/Resources/Scripts/Dymola/Fluid/Storage/Examples/ExpansionVessel.mos AixLib/Resources/Scripts/Dymola/Fluid/Storage/Examples/Stratified.mos @@ -1884,6 +1936,10 @@ AixLib/Resources/Scripts/Dymola/Media/Examples/AirTemperatureEnthalpyInversion.m AixLib/Resources/Scripts/Dymola/Media/Examples/PropyleneGlycolWaterDerivativeCheck.mos AixLib/Resources/Scripts/Dymola/Media/Examples/PropyleneGlycolWaterProperties.mos AixLib/Resources/Scripts/Dymola/Media/Examples/PropyleneGlycolWaterTemperatureEnthalpyInversion.mos +AixLib/Resources/Scripts/Dymola/Media/Examples/SteamDerivativeCheck.mos +AixLib/Resources/Scripts/Dymola/Media/Examples/SteamProperties.mos +AixLib/Resources/Scripts/Dymola/Media/Examples/SteamSaturationConsistencyCheck.mos +AixLib/Resources/Scripts/Dymola/Media/Examples/SteamTemperatureEnthalpyInversion.mos AixLib/Resources/Scripts/Dymola/Media/Examples/WaterDerivativeCheck.mos AixLib/Resources/Scripts/Dymola/Media/Examples/WaterProperties.mos AixLib/Resources/Scripts/Dymola/Media/Examples/WaterTemperatureEnthalpyInversion.mos @@ -1936,7 +1992,7 @@ AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/FallingFactorial.mos AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/IntegerReplicator.mos AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/IntegratorWithReset.mos AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/InverseXRegularized.mos -AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/Polynominal.mos +AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/Polynomial.mos AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/PowerLinearized.mos AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/QuadraticLinear.mos AixLib/Resources/Scripts/Dymola/Utilities/Math/Examples/RegNonZeroPower.mos @@ -2001,8 +2057,8 @@ AixLib/Resources/Scripts/Dymola/Utilities/Time/Validation/CalendarTimeMonths.mos AixLib/Resources/Scripts/Dymola/Utilities/Time/Validation/CalendarTimeMonthsMinus.mos AixLib/Resources/Scripts/Dymola/Utilities/Time/Validation/CalendarTimeMonthsPlus.mos AixLib/Resources/Scripts/JModelica/buildingspy_to_csv.py -AixLib/Resources/Scripts/github-actions/jmodelica/jm_ipython.sh AixLib/Resources/Scripts/travis/dymola/dymola +AixLib/Resources/Scripts/travis/omc/omc AixLib/Resources/bin/ConvertWeatherData.jar AixLib/Resources/src/convertEPW/Makefile AixLib/Resources/src/convertEPW/doc/ConvertWeatherData.html @@ -2061,7 +2117,47 @@ AixLib/Resources/src/convertEPW/src/ConvertWeatherData.java AixLib/Resources/src/convertEPW/src/Makefile AixLib/Resources/src/convertEPW/src/Manifest.txt AixLib/Resources/src/fluid/heatpumps/calibration/Examples/SomeManufacturer_ABC060_70kW_4_0COP_R410A.mo -AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/language_data.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.css.map +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap-theme.min.css.map +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.css.map +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/css/bootstrap.min.css.map +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.eot +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.svg +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.ttf +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/fonts/glyphicons-halflings-regular.woff2 +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/js/bootstrap.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/js/bootstrap.min.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootstrap-3.4.1/js/npm.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/cerulean/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/cosmo/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/cyborg/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/darkly/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/flatly/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.eot +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.svg +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.ttf +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/fonts/glyphicons-halflings-regular.woff2 +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/journal/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/lumen/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/paper/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/readable/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/sandstone/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/simplex/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/slate/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/spacelab/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/superhero/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/united/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/bootswatch-3.4.1/yeti/bootstrap.min.css +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/jquery-3.5.1.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/js/jquery-1.12.4.min.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/build/html/_static/underscore-1.13.1.js +AixLib/Resources/src/fluid/heatpumps/calibration/doc/requirements.txt AixLib/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw AixLib/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos AixLib/Resources/weatherdata/USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw @@ -2211,7 +2307,7 @@ AixLib/Utilities/Math/Examples/FallingFactorial.mo AixLib/Utilities/Math/Examples/IntegerReplicator.mo AixLib/Utilities/Math/Examples/IntegratorWithReset.mo AixLib/Utilities/Math/Examples/InverseXRegularized.mo -AixLib/Utilities/Math/Examples/Polynominal.mo +AixLib/Utilities/Math/Examples/Polynomial.mo AixLib/Utilities/Math/Examples/PowerLinearized.mo AixLib/Utilities/Math/Examples/QuadraticLinear.mo AixLib/Utilities/Math/Examples/RegNonZeroPower.mo @@ -2300,7 +2396,7 @@ AixLib/Utilities/Math/IntegratorWithReset.mo AixLib/Utilities/Math/InverseXRegularized.mo AixLib/Utilities/Math/Max.mo AixLib/Utilities/Math/Min.mo -AixLib/Utilities/Math/Polynominal.mo +AixLib/Utilities/Math/Polynomial.mo AixLib/Utilities/Math/PowerLinearized.mo AixLib/Utilities/Math/QuadraticLinear.mo AixLib/Utilities/Math/RegNonZeroPower.mo @@ -2381,6 +2477,7 @@ AixLib/Utilities/Psychrometrics/ToDryAir.mo AixLib/Utilities/Psychrometrics/ToTotalAir.mo AixLib/Utilities/Psychrometrics/X_pTphi.mo AixLib/Utilities/Psychrometrics/X_pW.mo +AixLib/Utilities/Psychrometrics/hSat_pTSat.mo AixLib/Utilities/Psychrometrics/pW_TDewPoi.mo AixLib/Utilities/Psychrometrics/pW_X.mo AixLib/Utilities/Psychrometrics/package.mo diff --git a/AixLib/Airflow/AirCurtain/AirCurtainSimplified.mo b/AixLib/Airflow/AirCurtain/AirCurtainSimplified.mo index 9baefc1052..9dcc9a967c 100644 --- a/AixLib/Airflow/AirCurtain/AirCurtainSimplified.mo +++ b/AixLib/Airflow/AirCurtain/AirCurtainSimplified.mo @@ -1,19 +1,18 @@ within AixLib.Airflow.AirCurtain; model AirCurtainSimplified "Ideal model for the usage of an air curtain in the context of low order retail zones" - parameter Modelica.SIunits.VolumeFlowRate V_flowAirCur = 5 + parameter Modelica.Units.SI.VolumeFlowRate V_flowAirCur=5 "Design volume flow rate of the air curtain"; - parameter Modelica.SIunits.TemperatureDifference TAddAirCur = 5 + parameter Modelica.Units.SI.TemperatureDifference TAddAirCur=5 "Temperature increase over the air curtain"; parameter Real etaAirCur = 0.73 "Efficiency of the air curtain"; - parameter Modelica.SIunits.Density rho = 1.25 - "Air density"; - parameter Modelica.SIunits.SpecificHeatCapacity c = 1000 + parameter Modelica.Units.SI.Density rho=1.25 "Air density"; + parameter Modelica.Units.SI.SpecificHeatCapacity c=1000 "Specific heat capacity of air"; - parameter Modelica.SIunits.Temperature TBou = 287.15 + parameter Modelica.Units.SI.Temperature TBou=287.15 "Threshold of the ambient temperature when aircurtain becomes active"; - parameter Modelica.SIunits.Power PAirCur = 27500 + parameter Modelica.Units.SI.Power PAirCur=27500 "The thermal Power of the air curtain, simplified use"; Utilities.Psychrometrics.MixedTemperature mixedTemperature annotation (Placement(transformation(extent={{-6,-10},{14,10}}))); diff --git a/AixLib/Airflow/AirHandlingUnit/AHU.mo b/AixLib/Airflow/AirHandlingUnit/AHU.mo index cc946d63bb..d496fd4c40 100644 --- a/AixLib/Airflow/AirHandlingUnit/AHU.mo +++ b/AixLib/Airflow/AirHandlingUnit/AHU.mo @@ -1,4 +1,4 @@ -within AixLib.Airflow.AirHandlingUnit; +within AixLib.Airflow.AirHandlingUnit; model AHU "Air Handling Unit with Heat Recovery System, Cooling, Heating, Humidification (adiabatic), Dehumidification" extends AixLib.Airflow.AirHandlingUnit.BaseClasses.PartialAHU; @@ -43,57 +43,60 @@ model AHU "efficiency of HRS in the AHU modes when HRS is disabled"; inner Real phi_t(start=0.5); - inner Modelica.SIunits.Temp_K T_oda;//(start=288.15); - inner Modelica.SIunits.Temp_K T_1(start=290.15); - inner Modelica.SIunits.Temp_K T_5(start=293.15); - inner Modelica.SIunits.Temp_K T_sup(start=295.15); - inner Modelica.SIunits.Temp_K T_eta(start=296.15); - inner Modelica.SIunits.Temp_K T_6;//(start=296.15); - - inner Modelica.SIunits.MassFraction X_oda(start=0.007); - Modelica.SIunits.MassFraction X_odaSat(start=0.007); - Modelica.SIunits.MassFraction X_odaRaw(start=0.007); - inner Modelica.SIunits.MassFraction X_sup(start=0.008); - Modelica.SIunits.MassFraction X_supplyMin(start=0.006); - Modelica.SIunits.MassFraction X_supplyMax(start=0.010); - inner Modelica.SIunits.MassFraction X_supMin(start=0.006); - inner Modelica.SIunits.MassFraction X_supMax(start=0.010); - Modelica.SIunits.MassFraction X_extractAir(start=0.008); - Modelica.SIunits.MassFraction X_eta(start=0.008); + inner Modelica.Units.SI.Temperature T_oda; + //(start=288.15); + inner Modelica.Units.SI.Temperature T_1(start=290.15); + inner Modelica.Units.SI.Temperature T_5(start=293.15); + inner Modelica.Units.SI.Temperature T_sup(start=295.15); + inner Modelica.Units.SI.Temperature T_eta(start=296.15); + inner Modelica.Units.SI.Temperature T_6; + //(start=296.15); + + inner Modelica.Units.SI.MassFraction X_oda(start=0.007); + Modelica.Units.SI.MassFraction X_odaSat(start=0.007); + Modelica.Units.SI.MassFraction X_odaRaw(start=0.007); + inner Modelica.Units.SI.MassFraction X_sup(start=0.008); + Modelica.Units.SI.MassFraction X_supplyMin(start=0.006); + Modelica.Units.SI.MassFraction X_supplyMax(start=0.010); + inner Modelica.Units.SI.MassFraction X_supMin(start=0.006); + inner Modelica.Units.SI.MassFraction X_supMax(start=0.010); + Modelica.Units.SI.MassFraction X_extractAir(start=0.008); + Modelica.Units.SI.MassFraction X_eta(start=0.008); Real phi_sup(start=0.5); - inner Modelica.SIunits.HeatFlowRate Q_dot_C(start=1e-3); - inner Modelica.SIunits.HeatFlowRate Q_dot_H(start=1e-3); - Modelica.SIunits.Power P_el_sup(start=1e-3); - Modelica.SIunits.Power P_el_eta(start=1e-3); - inner Modelica.SIunits.VolumeFlowRate V_dot_sup(start=1e-3); - inner Modelica.SIunits.VolumeFlowRate V_dot_eta(start=1e-3); + inner Modelica.Units.SI.HeatFlowRate Q_dot_C(start=1e-3); + inner Modelica.Units.SI.HeatFlowRate Q_dot_H(start=1e-3); + Modelica.Units.SI.Power P_el_sup(start=1e-3); + Modelica.Units.SI.Power P_el_eta(start=1e-3); + inner Modelica.Units.SI.VolumeFlowRate V_dot_sup(start=1e-3); + inner Modelica.Units.SI.VolumeFlowRate V_dot_eta(start=1e-3); // Constants from formulas collection of Thermodynamik (institute: LTT) - constant Modelica.SIunits.SpecificHeatCapacityAtConstantPressure c_pL_iG=1E3; - constant Modelica.SIunits.SpecificHeatCapacityAtConstantPressure c_pW_iG=1.86E3; - constant Modelica.SIunits.SpecificEnthalpy r_0=2465E3 + constant Modelica.Units.SI.SpecificHeatCapacityAtConstantPressure c_pL_iG=1E3; + constant Modelica.Units.SI.SpecificHeatCapacityAtConstantPressure c_pW_iG= + 1.86E3; + constant Modelica.Units.SI.SpecificEnthalpy r_0=2465E3 "enthalpy of vaporization at temperature between T_dew(X_sup=0.008)=11 degC and T_sup = 22 degC"; - constant Modelica.SIunits.Density rho=1.2; - constant Modelica.SIunits.Pressure p_0=101325; - constant Modelica.SIunits.SpecificEnthalpy dhV=2501.3E3; - constant Modelica.SIunits.Temp_K T_0=273.15; + constant Modelica.Units.SI.Density rho=1.2; + constant Modelica.Units.SI.Pressure p_0=101325; + constant Modelica.Units.SI.SpecificEnthalpy dhV=2501.3E3; + constant Modelica.Units.SI.Temperature T_0=273.15; constant Real molarMassRatio=Modelica.Media.IdealGases.Common.SingleGasesData.H2O.MM /Modelica.Media.Air.SimpleAir.MM_const; // auxiliary variable - Modelica.SIunits.TemperatureDifference dTFan; - Modelica.SIunits.Temp_K TsupplyAirOut(start=295.15); + Modelica.Units.SI.TemperatureDifference dTFan; + Modelica.Units.SI.Temperature TsupplyAirOut(start=295.15); // Sampler (time-continous to time-discrete variables) - Modelica_Synchronous.RealSignals.Sampler.SampleVectorizedAndClocked sample(n=9) + Modelica.Clocked.RealSignals.Sampler.SampleVectorizedAndClocked sample(n=9) annotation (Placement(transformation( extent={{-10,-10},{10,10}}, rotation=-90, origin={-66,14}))); - Modelica_Synchronous.ClockSignals.Clocks.PeriodicRealClock periodicClock( + Modelica.Clocked.ClockSignals.Clocks.PeriodicRealClock periodicClock( solverMethod="ExplicitRungeKutta4", useSolver=true, period=clockPeriodGeneric) @@ -107,8 +110,8 @@ model AHU //Start State block StartState - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; equation Q_dot_C = previous(Q_dot_C); @@ -138,30 +141,30 @@ model AHU // Dehumidification block DeHuHRS_true - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2(start=290); - Modelica.SIunits.Temp_K T_3(start=282); - Modelica.SIunits.Temp_K T_4(start=282); - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer input Modelica.SIunits.MassFraction X_supMax; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2(start=290); + Modelica.Units.SI.Temperature T_3(start=282); + Modelica.Units.SI.Temperature T_4(start=282); + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer input Modelica.Units.SI.MassFraction X_supMax; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withHRS; outer parameter Real BPF_DeHu; - Modelica.SIunits.SpecificEnthalpy h_2(start=0.003) "h_in of cooler"; - Modelica.SIunits.SpecificEnthalpy h_surface(start=0.002) + Modelica.Units.SI.SpecificEnthalpy h_2(start=0.003) "h_in of cooler"; + Modelica.Units.SI.SpecificEnthalpy h_surface(start=0.002) "h_surface of cooler"; - Modelica.SIunits.SpecificEnthalpy h_CoilOut(start=0.001) "h_out of cooler"; - Modelica.SIunits.Pressure p_sat_surface(start=2300); - Modelica.SIunits.MassFraction X_surface(start=0.005); - Modelica.SIunits.Temp_K T_surface(start=280); - Modelica.SIunits.Temp_K T_CoilOut(start=278); + Modelica.Units.SI.SpecificEnthalpy h_CoilOut(start=0.001) "h_out of cooler"; + Modelica.Units.SI.Pressure p_sat_surface(start=2300); + Modelica.Units.SI.MassFraction X_surface(start=0.005); + Modelica.Units.SI.Temperature T_surface(start=280); + Modelica.Units.SI.Temperature T_CoilOut(start=278); equation phi_t = phi_t_withHRS "heat recovery system is enabled"; @@ -223,30 +226,30 @@ model AHU // block DeHuHRS_false - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2(start=290); - Modelica.SIunits.Temp_K T_3(start=282); - Modelica.SIunits.Temp_K T_4(start=282); - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer input Modelica.SIunits.MassFraction X_supMax; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2(start=290); + Modelica.Units.SI.Temperature T_3(start=282); + Modelica.Units.SI.Temperature T_4(start=282); + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer input Modelica.Units.SI.MassFraction X_supMax; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withoutHRS; outer parameter Real BPF_DeHu; - Modelica.SIunits.SpecificEnthalpy h_2(start=0.003) "h_in of cooler"; - Modelica.SIunits.SpecificEnthalpy h_surface(start=0.002) + Modelica.Units.SI.SpecificEnthalpy h_2(start=0.003) "h_in of cooler"; + Modelica.Units.SI.SpecificEnthalpy h_surface(start=0.002) "h_surface of cooler"; - Modelica.SIunits.SpecificEnthalpy h_CoilOut(start=0.001) "h_out of cooler"; - Modelica.SIunits.Pressure p_sat_surface(start=2300); - Modelica.SIunits.MassFraction X_surface(start=0.005); - Modelica.SIunits.Temp_K T_surface(start=280); - Modelica.SIunits.Temp_K T_CoilOut(start=278); + Modelica.Units.SI.SpecificEnthalpy h_CoilOut(start=0.001) "h_out of cooler"; + Modelica.Units.SI.Pressure p_sat_surface(start=2300); + Modelica.Units.SI.MassFraction X_surface(start=0.005); + Modelica.Units.SI.Temperature T_surface(start=280); + Modelica.Units.SI.Temperature T_CoilOut(start=278); equation phi_t = phi_t_withoutHRS "heat recovery system is disabled"; @@ -309,16 +312,16 @@ model AHU // Humidification block HuPreHHRS_true - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer input Modelica.SIunits.MassFraction X_supMin; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer input Modelica.Units.SI.MassFraction X_supMin; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withHRS; @@ -356,16 +359,16 @@ model AHU // block HuPreHHRS_false - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer input Modelica.SIunits.MassFraction X_supMin; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer input Modelica.Units.SI.MassFraction X_supMin; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withoutHRS; @@ -403,19 +406,19 @@ model AHU // block HuCHRS_true - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2; - Modelica.SIunits.Temp_K T_3; - Modelica.SIunits.Temp_K T_4; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer input Modelica.SIunits.MassFraction X_supMin; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2; + Modelica.Units.SI.Temperature T_3; + Modelica.Units.SI.Temperature T_4; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer input Modelica.Units.SI.MassFraction X_supMin; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withHRS; @@ -456,19 +459,19 @@ model AHU // block HuCHRS_false - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2; - Modelica.SIunits.Temp_K T_3; - Modelica.SIunits.Temp_K T_4; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer input Modelica.SIunits.MassFraction X_supMin; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2; + Modelica.Units.SI.Temperature T_3; + Modelica.Units.SI.Temperature T_4; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer input Modelica.Units.SI.MassFraction X_supMin; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withoutHRS; @@ -509,18 +512,18 @@ model AHU // Only Heating block OnlyHeatingHRS_true - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2; - Modelica.SIunits.Temp_K T_3; - Modelica.SIunits.Temp_K T_4; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2; + Modelica.Units.SI.Temperature T_3; + Modelica.Units.SI.Temperature T_4; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withHRS; @@ -559,18 +562,18 @@ model AHU // block OnlyHeatingHRS_false - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2; - Modelica.SIunits.Temp_K T_3; - Modelica.SIunits.Temp_K T_4; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2; + Modelica.Units.SI.Temperature T_3; + Modelica.Units.SI.Temperature T_4; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withoutHRS; @@ -609,18 +612,18 @@ model AHU // Only Cooling block OnlyCoolingHRS_true - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2; - Modelica.SIunits.Temp_K T_3; - Modelica.SIunits.Temp_K T_4; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2; + Modelica.Units.SI.Temperature T_3; + Modelica.Units.SI.Temperature T_4; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withHRS; @@ -659,18 +662,18 @@ model AHU // block OnlyCoolingHRS_false - outer output Modelica.SIunits.HeatFlowRate Q_dot_C; - outer output Modelica.SIunits.HeatFlowRate Q_dot_H; - outer input Modelica.SIunits.Temp_K T_oda; - outer input Modelica.SIunits.Temp_K T_1; - Modelica.SIunits.Temp_K T_2; - Modelica.SIunits.Temp_K T_3; - Modelica.SIunits.Temp_K T_4; - outer input Modelica.SIunits.Temp_K T_5; - outer input Modelica.SIunits.Temp_K T_6; - outer input Modelica.SIunits.MassFraction X_oda; - outer output Modelica.SIunits.MassFraction X_sup; - outer input Modelica.SIunits.VolumeFlowRate V_dot_sup; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_C; + outer output Modelica.Units.SI.HeatFlowRate Q_dot_H; + outer input Modelica.Units.SI.Temperature T_oda; + outer input Modelica.Units.SI.Temperature T_1; + Modelica.Units.SI.Temperature T_2; + Modelica.Units.SI.Temperature T_3; + Modelica.Units.SI.Temperature T_4; + outer input Modelica.Units.SI.Temperature T_5; + outer input Modelica.Units.SI.Temperature T_6; + outer input Modelica.Units.SI.MassFraction X_oda; + outer output Modelica.Units.SI.MassFraction X_sup; + outer input Modelica.Units.SI.VolumeFlowRate V_dot_sup; outer output Real phi_t; outer input Real phi_t_withoutHRS; diff --git a/AixLib/Airflow/AirHandlingUnit/BaseClasses/PartialAHU.mo b/AixLib/Airflow/AirHandlingUnit/BaseClasses/PartialAHU.mo index c600f99342..6f1825a81f 100644 --- a/AixLib/Airflow/AirHandlingUnit/BaseClasses/PartialAHU.mo +++ b/AixLib/Airflow/AirHandlingUnit/BaseClasses/PartialAHU.mo @@ -47,16 +47,17 @@ partial model PartialAHU "Defines necessary parameters and connectors" (in case that a HRS is physically installed in the AHU)" annotation (Dialog(group="Settings AHU Value", enable=HRS)); // assumed increase in ventilator pressure - parameter Modelica.SIunits.Pressure dp_sup=800 + parameter Modelica.Units.SI.Pressure dp_sup=800 "pressure difference over supply fan" annotation (Dialog(tab="Fans", group="Constant Assumptions")); - parameter Modelica.SIunits.Pressure dp_eta=800 + parameter Modelica.Units.SI.Pressure dp_eta=800 "pressure difference over extract fan" annotation (Dialog(tab="Fans", group="Constant Assumptions")); // assumed efficiencies of the ventilators - parameter Modelica.SIunits.Efficiency eta_sup=0.7 "efficiency of supply fan" + parameter Modelica.Units.SI.Efficiency eta_sup=0.7 "efficiency of supply fan" annotation (Dialog(tab="Fans", group="Constant Assumptions")); - parameter Modelica.SIunits.Efficiency eta_eta=0.7 "efficiency of extract fan" + parameter Modelica.Units.SI.Efficiency eta_eta=0.7 + "efficiency of extract fan" annotation (Dialog(tab="Fans", group="Constant Assumptions")); Modelica.Blocks.Interfaces.RealInput Vflow_in(unit="m3/s") "m3/s" @@ -147,15 +148,15 @@ partial model PartialAHU "Defines necessary parameters and connectors" extent={{4,-4},{-4,4}}, rotation=180, origin={84,-4}))); - Modelica.Blocks.Interfaces.RealInput Vflow_in_extractAir(unit="m3/s") if - use_Vflow_in_extractAir "Volume flow of extract air" + Modelica.Blocks.Interfaces.RealInput Vflow_in_extractAir(unit="m3/s") +if use_Vflow_in_extractAir "Volume flow of extract air" annotation (Placement(transformation(extent={{114,80},{86,108}}), iconTransformation(extent={{88,32},{80,40}}))); protected Modelica.Blocks.Interfaces.RealInput Vflow_in_extractAir_internal(unit="m3/s") "Needed to connect to conditional connector"; equation dehumidification = if dehumidificationSet and heating and cooling then dehumidificationSet else false; - humidification = if dehumidificationSet and heating and cooling then humidificationSet else false; + humidification = if humidificationSet and heating and cooling then humidificationSet else false; connect(Vflow_in_extractAir, Vflow_in_extractAir_internal); diff --git a/AixLib/Airflow/AirHandlingUnit/Examples/AHU.mo b/AixLib/Airflow/AirHandlingUnit/Examples/AHU.mo index 7c121b53e0..2a6104d78b 100644 --- a/AixLib/Airflow/AirHandlingUnit/Examples/AHU.mo +++ b/AixLib/Airflow/AirHandlingUnit/Examples/AHU.mo @@ -3,9 +3,9 @@ model AHU "Example to test all states of the AHU model - Play with the possible modes (boolean parameters for: heating, cooling, de-/humidification" extends Modelica.Icons.Example; - Modelica.Blocks.Sources.Sine tempOutside( + Modelica.Blocks.Sources.Sine tempOutside( amplitude=10, - freqHz=1/86400, + f=1/86400, phase=-3.1415/2, offset=292) annotation (Placement(transformation(extent={{-100,-16},{-80,4}}))); @@ -24,7 +24,7 @@ model AHU annotation (Placement(transformation(extent={{98,-56},{78,-36}}))); Modelica.Blocks.Sources.Sine waterLoadOutside( - freqHz=1/86400, + f=1/86400, offset=0.008, amplitude=0.002, phase=-0.054829518451402) @@ -32,11 +32,10 @@ model AHU Modelica.Blocks.Sources.Constant phi_RoomExtractAir(k=0.6) annotation (Placement(transformation(extent={{98,-24},{78,-4}}))); Modelica.Blocks.Sources.Sine tempAddInRoom( - freqHz=1/86400, + f=1/86400, amplitude=2, phase=-3.1415/4, - offset=1.7) - annotation (Placement(transformation(extent={{98,20},{78,40}}))); + offset=1.7) annotation (Placement(transformation(extent={{98,20},{78,40}}))); Modelica.Blocks.Math.Add addToExtractTemp annotation (Placement(transformation(extent={{46,12},{34,24}}))); Modelica.Blocks.Interfaces.RealOutput QFlowCool( diff --git a/AixLib/Airflow/FacadeVentilationUnit/BaseClasses/SetPower.mo b/AixLib/Airflow/FacadeVentilationUnit/BaseClasses/SetPower.mo index 9a8fdf162f..cbe7d24553 100644 --- a/AixLib/Airflow/FacadeVentilationUnit/BaseClasses/SetPower.mo +++ b/AixLib/Airflow/FacadeVentilationUnit/BaseClasses/SetPower.mo @@ -5,20 +5,20 @@ model SetPower extends Modelica.Fluid.Interfaces.PartialTwoPort; - parameter Modelica.SIunits.MassFlowRate m_flow_nominal=0.05 + parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=0.05 "Nominal mass flow rate of fan"; parameter Medium.AbsolutePressure p_start=Medium.p_default "Start value of pressure"; parameter Integer noUnits=1 "Number of identical FVU units"; - parameter Modelica.SIunits.PressureDifference dp_nominal=500 + parameter Modelica.Units.SI.PressureDifference dp_nominal=500 "Initial pressure difference"; parameter Medium.Temperature T_start=Medium.T_default "Start value of temperature"; - Modelica.Blocks.Tables.CombiTable1D volumeFlow(table=[0,1; 0.1,25; 0.2,40; + Modelica.Blocks.Tables.CombiTable1Dv volumeFlow(table=[0,1; 0.1,25; 0.2,40; 0.3,60; 0.4,90; 0.5,100; 0.6,140; 0.7,175; 0.8,200; 0.9,225; 1,260]) - "Correlates the relative input signal and a volume flow rate" - annotation (Placement(transformation( + "Correlates the relative input signal and a volume flow rate" annotation ( + Placement(transformation( extent={{-10,-10},{10,10}}, rotation=90, origin={0,-56}))); diff --git a/AixLib/Airflow/FacadeVentilationUnit/DataBase/FVUBaseRecord.mo b/AixLib/Airflow/FacadeVentilationUnit/DataBase/FVUBaseRecord.mo index a83768b530..7bab9b917b 100644 --- a/AixLib/Airflow/FacadeVentilationUnit/DataBase/FVUBaseRecord.mo +++ b/AixLib/Airflow/FacadeVentilationUnit/DataBase/FVUBaseRecord.mo @@ -4,37 +4,35 @@ record FVUBaseRecord extends Modelica.Icons.Record; parameter Integer noUnits=1 "Number of identical FVUs"; - parameter Modelica.SIunits.ThermalConductance UA_heater=120 - "Thermal conductance of heater at nominal flow, used to compute heat + parameter Modelica.Units.SI.ThermalConductance UA_heater=120 "Thermal conductance of heater at nominal flow, used to compute heat capacity"; - parameter Modelica.SIunits.ThermalConductance UA_cooler=65 - "Thermal conductance of cooler at nominal flow, used to compute heat + parameter Modelica.Units.SI.ThermalConductance UA_cooler=65 "Thermal conductance of cooler at nominal flow, used to compute heat capacity"; - parameter Modelica.SIunits.MassFlowRate m1_flow_nominal_heater=0.1 + parameter Modelica.Units.SI.MassFlowRate m1_flow_nominal_heater=0.1 "Nominal mass flow rate on water side of heater"; - parameter Modelica.SIunits.MassFlowRate m2_flow_nominal_heater=0.1 + parameter Modelica.Units.SI.MassFlowRate m2_flow_nominal_heater=0.1 "Nominal mass flow rate on air side of heater"; - parameter Modelica.SIunits.MassFlowRate m1_flow_nominal_cooler=0.1 + parameter Modelica.Units.SI.MassFlowRate m1_flow_nominal_cooler=0.1 "Nominal mass flow rate on water side of cooler"; - parameter Modelica.SIunits.MassFlowRate m2_flow_nominal_cooler=0.05 + parameter Modelica.Units.SI.MassFlowRate m2_flow_nominal_cooler=0.05 "Nominal mass flow rate on air side of cooler"; - parameter Modelica.SIunits.MassFlowRate m_flow_nominal_damper=0.1 + parameter Modelica.Units.SI.MassFlowRate m_flow_nominal_damper=0.1 "Nominal mass flow rate of damper"; - parameter Modelica.SIunits.Pressure dp1_nominal_heater=1000 + parameter Modelica.Units.SI.Pressure dp1_nominal_heater=1000 "Nominal pressure loss on water side of heater"; - parameter Modelica.SIunits.Pressure dp2_nominal_heater=100 + parameter Modelica.Units.SI.Pressure dp2_nominal_heater=100 "Nominal pressure loss on air side of heater"; - parameter Modelica.SIunits.Pressure dp1_nominal_cooler=1000 + parameter Modelica.Units.SI.Pressure dp1_nominal_cooler=1000 "Nominal pressure loss on water side of cooler"; - parameter Modelica.SIunits.Pressure dp2_nominal_cooler=100 + parameter Modelica.Units.SI.Pressure dp2_nominal_cooler=100 "Nominal pressure loss on air side of cooler"; - parameter Modelica.SIunits.Pressure p_default=101300 + parameter Modelica.Units.SI.Pressure p_default=101300 "Default static pressure at outlet"; - parameter Modelica.SIunits.Pressure dp_nominal_damper=500 + parameter Modelica.Units.SI.Pressure dp_nominal_damper=500 "Nominal pressure loss in dampers"; - parameter Modelica.SIunits.Time damperRiseTimeLong = 90 "Rising time of the + parameter Modelica.Units.SI.Time damperRiseTimeLong=90 "Rising time of the slowly moving dampers"; - parameter Modelica.SIunits.Time damperRiseTimeShort = 20 "Rising time of the + parameter Modelica.Units.SI.Time damperRiseTimeShort=20 "Rising time of the slowly moving dampers"; annotation (Documentation(info="

diff --git a/AixLib/Airflow/FacadeVentilationUnit/Examples/FacadeVentilationUnit.mo b/AixLib/Airflow/FacadeVentilationUnit/Examples/FacadeVentilationUnit.mo index 50a1964d4d..0196528939 100644 --- a/AixLib/Airflow/FacadeVentilationUnit/Examples/FacadeVentilationUnit.mo +++ b/AixLib/Airflow/FacadeVentilationUnit/Examples/FacadeVentilationUnit.mo @@ -11,7 +11,8 @@ model FacadeVentilationUnit maxExFanPower=0.6) "Comprehensive rule-based controller for the facade ventilation unit" annotation (Placement(transformation(extent={{-46,-30},{-6,10}}))); - AixLib.Airflow.FacadeVentilationUnit.FacadeVentilationUnit FVU(redeclare package Air = + AixLib.Airflow.FacadeVentilationUnit.FacadeVentilationUnit FVU(redeclare + package Air = Medium1, redeclare package Water = Medium2) "The facade ventilation unit to be tested in this example" annotation (Placement(transformation(extent={{70,-56},{106,-36}}))); @@ -82,30 +83,29 @@ model FacadeVentilationUnit Modelica.Blocks.Sources.Constant coolingWaterTemperature(k=273.15 + 17) "Provides a test value of the cooling water temperatiure" annotation (Placement(transformation(extent={{84,74},{104,94}}))); - AixLib.Fluid.Sensors.TemperatureTwoPort supplyAirTemperature(redeclare package Medium = + AixLib.Fluid.Sensors.TemperatureTwoPort supplyAirTemperature(redeclare + package Medium = Medium1, m_flow_nominal=0.1) "Measures the supply air temperature" annotation (Placement(transformation(extent={{120,-54},{140,-34}}))); Modelica.Blocks.Sources.Sine roomTemperature( amplitude=5, - freqHz=1/86400, + f=1/86400, phase=3.1415926535898, - offset=273.15 + 20) - "Provides a test value of the room temperature" + offset=273.15 + 20) "Provides a test value of the room temperature" annotation (Placement(transformation(extent={{-100,40},{-80,60}}))); Modelica.Blocks.Sources.Sine roomSetTemperature( amplitude=5, - freqHz=1/86400, + f=1/86400, phase=1.5707963267949, - offset=273.15 + 20) - "Provides a test value of the room set temperature" + offset=273.15 + 20) "Provides a test value of the room set temperature" annotation (Placement(transformation(extent={{-100,-36},{-80,-16}}))); Modelica.Blocks.Sources.Constant co2Concentration(k=1000) "Provides a test value of the CO2 concnetration" annotation (Placement(transformation(extent={{-100,-80},{-80,-60}}))); Modelica.Blocks.Sources.Sine outdoorTemperature( amplitude=5, - freqHz=1/86400, + f=1/86400, offset=273.15 + 10) "Provides a test value of the outdoor temperature" annotation (Placement(transformation(extent={{-100,6},{-80,26}}))); AixLib.Controls.Interfaces.FVUControlBus fVUControlBus diff --git a/AixLib/Airflow/FacadeVentilationUnit/FacadeVentilationUnit.mo b/AixLib/Airflow/FacadeVentilationUnit/FacadeVentilationUnit.mo index ccb76a7114..9c17fbce7a 100644 --- a/AixLib/Airflow/FacadeVentilationUnit/FacadeVentilationUnit.mo +++ b/AixLib/Airflow/FacadeVentilationUnit/FacadeVentilationUnit.mo @@ -1,7 +1,6 @@ -within AixLib.Airflow.FacadeVentilationUnit; +within AixLib.Airflow.FacadeVentilationUnit; model FacadeVentilationUnit "Facade Ventilation Unit (FVU) equipped with a recuperator" - replaceable package Water = AixLib.Media.Water "Water Model in the system"; replaceable package Air = AixLib.Media.Air @@ -11,7 +10,7 @@ model FacadeVentilationUnit fVUParam=AixLib.Airflow.FacadeVentilationUnit.DataBase.FVUBaseRecord() "Record containing the characteristic parameters of the unit"; - parameter Modelica.SIunits.ThermodynamicTemperature T_start=273.15 + 20 + parameter Modelica.Units.SI.ThermodynamicTemperature T_start=273.15 + 20 "Initial temperature in unit"; AixLib.Airflow.FacadeVentilationUnit.BaseClasses.SetPower fanExhaustAir( @@ -68,13 +67,15 @@ model FacadeVentilationUnit m2_flow_nominal=fVUParam.m2_flow_nominal_cooler) "The heat exchanger used for cooling" annotation (Placement(transformation(extent={{182,22},{162,42}}))); - Modelica.Fluid.Interfaces.FluidPort_b heaterReturnConnector(redeclare package Medium = + Modelica.Fluid.Interfaces.FluidPort_b heaterReturnConnector(redeclare package + Medium = Water) "Connector to the heating water sink" annotation (Placement(transformation(extent={{82,90},{102,110}}))); Modelica.Fluid.Interfaces.FluidPort_a heaterFlowConnector(redeclare package Medium = Water) "Connector to the heating water source" annotation (Placement(transformation(extent={{112,90},{132,110}}))); - Modelica.Fluid.Interfaces.FluidPort_b coolerReturnConnector(redeclare package Medium = + Modelica.Fluid.Interfaces.FluidPort_b coolerReturnConnector(redeclare package + Medium = Water) "Connector to the cooling water source" annotation (Placement(transformation(extent={{152,90},{172,110}}))); Modelica.Fluid.Interfaces.FluidPort_a coolerFlowConnector(redeclare package Medium = diff --git a/AixLib/Airflow/Multizone/BaseClasses/Door.mo b/AixLib/Airflow/Multizone/BaseClasses/Door.mo index 0088e53a16..c8fa35d402 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/Door.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/Door.mo @@ -16,29 +16,31 @@ partial model Door annotation (choices( choice(redeclare package Medium = AixLib.Media.Air "Moist air"))); - parameter Modelica.SIunits.Length wOpe=0.9 "Width of opening" + parameter Modelica.Units.SI.Length wOpe=0.9 "Width of opening" annotation (Dialog(group="Geometry")); - parameter Modelica.SIunits.Length hOpe=2.1 "Height of opening" + parameter Modelica.Units.SI.Length hOpe=2.1 "Height of opening" annotation (Dialog(group="Geometry")); - parameter Modelica.SIunits.PressureDifference dp_turbulent( + parameter Modelica.Units.SI.PressureDifference dp_turbulent( min=0, displayUnit="Pa") = 0.01 "Pressure difference where laminar and turbulent flow relation coincide" - annotation(Dialog(tab="Advanced")); + annotation (Dialog(tab="Advanced")); - Modelica.SIunits.VolumeFlowRate VAB_flow(nominal=0.001) + Modelica.Units.SI.VolumeFlowRate VAB_flow(nominal=0.001) "Volume flow rate from A to B if positive"; - Modelica.SIunits.VolumeFlowRate VBA_flow(nominal=0.001) + Modelica.Units.SI.VolumeFlowRate VBA_flow(nominal=0.001) "Volume flow rate from B to A if positive"; - input Modelica.SIunits.Velocity vAB(nominal=0.01) "Average velocity from A to B"; - input Modelica.SIunits.Velocity vBA(nominal=0.01) "Average velocity from B to A"; + input Modelica.Units.SI.Velocity vAB(nominal=0.01) + "Average velocity from A to B"; + input Modelica.Units.SI.Velocity vBA(nominal=0.01) + "Average velocity from B to A"; protected - final parameter Modelica.SIunits.Area AOpe = wOpe*hOpe "Open aperture area"; + final parameter Modelica.Units.SI.Area AOpe=wOpe*hOpe "Open aperture area"; - constant Real conTP = AixLib.Media.Air.dStp*Modelica.Media.IdealGases.Common.SingleGasesData.Air.R + constant Real conTP = AixLib.Media.Air.dStp*Modelica.Media.IdealGases.Common.SingleGasesData.Air.R_s "Conversion factor for converting temperature difference to pressure difference"; parameter Medium.ThermodynamicState sta_default=Medium.setState_pTX( @@ -46,12 +48,12 @@ protected p=Medium.p_default, X=Medium.X_default); - parameter Modelica.SIunits.Density rho_default=Medium.density(sta_default) + parameter Modelica.Units.SI.Density rho_default=Medium.density(sta_default) "Density"; - Modelica.SIunits.VolumeFlowRate VABp_flow(nominal=0.001) + Modelica.Units.SI.VolumeFlowRate VABp_flow(nominal=0.001) "Volume flow rate from A to B if positive due to static pressure difference"; - Modelica.SIunits.MassFlowRate mABt_flow(nominal=0.001) + Modelica.Units.SI.MassFlowRate mABt_flow(nominal=0.001) "Mass flow rate from A to B if positive due to buoyancy"; equation @@ -109,17 +111,18 @@ equation fillColor={0,0,0}, fillPattern=FillPattern.Solid)}), Documentation(info=" -

-This is a partial model for the bi-directional air flow through a door. -

-", +

+ This is a partial model for the bi-directional air flow through a door. +

+ ", revisions=" -
    -
  • -October 6, 2020, by Michael Wetter:
    -First implementation for -#1353. -
  • -
-")); +
    +
  • + October 6, 2020, by Michael Wetter:
    + First implementation for + #1353. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end Door; diff --git a/AixLib/Airflow/Multizone/BaseClasses/DoorDiscretized.mo b/AixLib/Airflow/Multizone/BaseClasses/DoorDiscretized.mo index abb4da1545..96d52116da 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/DoorDiscretized.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/DoorDiscretized.mo @@ -5,27 +5,27 @@ partial model DoorDiscretized parameter Integer nCom=10 "Number of compartments for the discretization"; - parameter Modelica.SIunits.PressureDifference dp_turbulent( + parameter Modelica.Units.SI.PressureDifference dp_turbulent( min=0, displayUnit="Pa") = 0.01 "Pressure difference where laminar and turbulent flow relation coincide. Recommended: 0.01"; - Modelica.SIunits.PressureDifference dpAB[nCom](each nominal=1) + Modelica.Units.SI.PressureDifference dpAB[nCom](each nominal=1) "Pressure difference between compartments"; - Modelica.SIunits.Velocity v[nCom](each nominal=0.01) + Modelica.Units.SI.Velocity v[nCom](each nominal=0.01) "Velocity in compartment from A to B"; - Modelica.SIunits.Velocity vTop "Velocity at top of opening from A to B"; - Modelica.SIunits.Velocity vBot "Velocity at bottom of opening from A to B"; + Modelica.Units.SI.Velocity vTop "Velocity at top of opening from A to B"; + Modelica.Units.SI.Velocity vBot "Velocity at bottom of opening from A to B"; protected - parameter Modelica.SIunits.Length dh=hOpe/nCom "Height of each compartment"; + parameter Modelica.Units.SI.Length dh=hOpe/nCom "Height of each compartment"; parameter Medium.ThermodynamicState sta_default=Medium.setState_pTX( T=Medium.T_default, p=Medium.p_default, X=Medium.X_default); - parameter Modelica.SIunits.Density rho_default=Medium.density(sta_default) + parameter Modelica.Units.SI.Density rho_default=Medium.density(sta_default) "Density, used to compute fluid volume"; parameter Real hAg[nCom](each unit="m2/s2")= @@ -35,23 +35,23 @@ protected parameter Real hBg[nCom](each unit="m2/s2")= {Modelica.Constants.g_n*(hB - (i - 0.5)*dh) for i in 1:nCom} "Product g*h_i for each compartment"; - Modelica.SIunits.AbsolutePressure pA[nCom](each nominal=101325) + Modelica.Units.SI.AbsolutePressure pA[nCom](each nominal=101325) "Pressure in compartments of room A"; - Modelica.SIunits.AbsolutePressure pB[nCom](each nominal=101325) + Modelica.Units.SI.AbsolutePressure pB[nCom](each nominal=101325) "Pressure in compartments of room B"; - Modelica.SIunits.VolumeFlowRate dV_flow[nCom] + Modelica.Units.SI.VolumeFlowRate dV_flow[nCom] "Volume flow rate through compartment from A to B"; - Modelica.SIunits.VolumeFlowRate dVAB_flow[nCom] + Modelica.Units.SI.VolumeFlowRate dVAB_flow[nCom] "Volume flow rate through compartment from A to B if positive"; - Modelica.SIunits.VolumeFlowRate dVBA_flow[nCom] + Modelica.Units.SI.VolumeFlowRate dVBA_flow[nCom] "Volume flow rate through compartment from B to A if positive"; - Modelica.SIunits.VolumeFlowRate VZerCom_flow = VZer_flow/nCom + Modelica.Units.SI.VolumeFlowRate VZerCom_flow=VZer_flow/nCom "Small flow rate for regularization"; Real m(min=0.5, max=1) "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; - Real kVal "Flow coefficient for each compartment, k = V_flow/ dp^m"; - Modelica.SIunits.Area dA "Compartment area"; + Real CVal "Flow coefficient for each compartment, C = V_flow/ dp^m"; + Modelica.Units.SI.Area dA "Compartment area"; Real gaiFlo[nCom] "Gain to sum up the positive flows and set the negative to zero in a differentiable way"; equation dA = A/nCom; @@ -102,71 +102,72 @@ equation Line(points={{-54,-58},{-36,-58}}, color={0,0,0}), Line(points={{-54,-32},{-36,-32}}, color={0,0,0})}), Documentation(info=" -

-This is a partial model for the bi-directional air flow through a door. -

-

-To compute the bi-directional flow, -the door is discretize along the height coordinate, and uses -an orifice equation to compute the flow for each compartment. -

-

-The compartment area dA is a variable, which allows -using the model for a door that can be open or closed. -

-", +

+ This is a partial model for the bi-directional air flow through a door. +

+

+ To compute the bi-directional flow, + the door is discretize along the height coordinate, and uses + an orifice equation to compute the flow for each compartment. +

+

+ The compartment area dA is a variable, which allows + using the model for a door that can be open or closed. +

+ ", revisions=" -
    -
  • -January 8, 2019, by Michael Wetter:
    -Moved parameter CD from - -AixLib.Airflow.Multizone.BaseClasses.DoorDiscretized -to - -AixLib.Airflow.Multizone.DoorDiscretizedOpen.
    -This is for -#971. -
  • -
  • -June 27, 2018, by Michael Wetter:
    -Corrected old parameter annotation. -
  • -
  • -June 6, 2018, by Michael Wetter:
    -Removed term that assures non-zero flow rate in each path, and -reformulated flow balance to ensure that model is symmetric. -This is -for #937. -
  • -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -September 26, 2013 by Michael Wetter:
    -Added missing each keyword. -
  • -
  • -December 14, 2012 by Michael Wetter:
    -Renamed protected parameters for consistency with the naming conventions. -
  • -
  • December 6, 2011 by Michael Wetter:
    - Removed protected variable rhoAve. -
  • -
  • August 12, 2011 by Michael Wetter:
    - Changed model to use the new function - - Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM. -
  • -
  • July 20, 2010 by Michael Wetter:
    - Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • February 8, 2005 by Michael Wetter:
    - Released first version. -
  • -
-")); +
    +
  • + January 8, 2019, by Michael Wetter:
    + Moved parameter CD from + + AixLib.Airflow.Multizone.BaseClasses.DoorDiscretized + to + + AixLib.Airflow.Multizone.DoorDiscretizedOpen.
    + This is for + #971. +
  • +
  • + June 27, 2018, by Michael Wetter:
    + Corrected old parameter annotation. +
  • +
  • + June 6, 2018, by Michael Wetter:
    + Removed term that assures non-zero flow rate in each path, and + reformulated flow balance to ensure that model is symmetric. + This is + for #937. +
  • +
  • + January 22, 2016, by Michael Wetter:
    + Corrected type declaration of pressure difference. + This is + for #404. +
  • +
  • + September 26, 2013 by Michael Wetter:
    + Added missing each keyword. +
  • +
  • + December 14, 2012 by Michael Wetter:
    + Renamed protected parameters for consistency with the naming conventions. +
  • +
  • December 6, 2011 by Michael Wetter:
    + Removed protected variable rhoAve. +
  • +
  • August 12, 2011 by Michael Wetter:
    + Changed model to use the new function + + Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM. +
  • +
  • July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • February 8, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end DoorDiscretized; diff --git a/AixLib/Airflow/Multizone/BaseClasses/ErrorControl.mo b/AixLib/Airflow/Multizone/BaseClasses/ErrorControl.mo index 3b6395d9a7..299b7a551c 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/ErrorControl.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/ErrorControl.mo @@ -5,40 +5,41 @@ model ErrorControl "Interface that defines parameters for error control" annotation(Dialog(tab="Advanced")); annotation (Documentation(info=" -

-This is an interface that defines parameters used for error control. -

-

-Dymola does error control on state variables, such as temperature, pressure and -species concentration. -Flow variables such as m_flow are typically not checked during the error control. -This can give large errors in flow variables, as long as the error on the volume's state variables -that are coupled to the flow variables is small. -Obtaining accurate flow variables can be achieved by imposing an error control -on the exchanged mass, which can be defined as -

-
-  dm/dt = m_flow.
-
-

-By setting forceErrorControlOnFlow = true, such an equation is imposed -by models that extend this class. -

-", +

+ This is an interface that defines parameters used for error control. +

+

+ Dymola does error control on state variables, such as temperature, pressure and + species concentration. + Flow variables such as m_flow are typically not checked during the error control. + This can give large errors in flow variables, as long as the error on the volume's state variables + that are coupled to the flow variables is small. + Obtaining accurate flow variables can be achieved by imposing an error control + on the exchanged mass, which can be defined as +

+
+   dm/dt = m_flow.
+ 
+

+ By setting forceErrorControlOnFlow = true, such an equation is imposed + by models that extend this class. +

+ ", revisions=" -
    -
  • -June 27, 2018, by Michael Wetter:
    -Moved parameter forceErrorControlOnFlow to the Advanced tab. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Integrated model into the Buildings library. -
  • -
  • -November 1, 2005 by Michael Wetter:
    -Released first version. -
  • -
-")); +
    +
  • + June 27, 2018, by Michael Wetter:
    + Moved parameter forceErrorControlOnFlow to the Advanced tab. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Integrated model into the Buildings library. +
  • +
  • + November 1, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ErrorControl; diff --git a/AixLib/Airflow/Multizone/BaseClasses/Examples/Interpolate.mo b/AixLib/Airflow/Multizone/BaseClasses/Examples/Interpolate.mo new file mode 100644 index 0000000000..dfddc29793 --- /dev/null +++ b/AixLib/Airflow/Multizone/BaseClasses/Examples/Interpolate.mo @@ -0,0 +1,60 @@ +within AixLib.Airflow.Multizone.BaseClasses.Examples; +model Interpolate "Test model for the function flowElementData" + extends Modelica.Icons.Example; + + parameter Real table[:,:]=[-50,-0.08709; -25,-0.06158; -10,-0.03895; -5,-0.02754; + -3,-0.02133; -2,-0.01742; -1,-0.01232; 0,0; 1,0.01232; 2,0.01742; 3,0.02133; + 4.5,0.02613; 50,0.02614] + "Table of mass flow rate in kg/s (second column) as a function of pressure difference in Pa (first column)"; + + Modelica.Units.SI.PressureDifference dp + "Pressure difference"; + Modelica.Units.SI.MassFlowRate m_flow + "Mass flow rate"; + +protected + parameter Real[:] xd=table[:,1] "X-axis support points"; + parameter Real[size(xd, 1)] yd=table[:,2] "Y-axis support points"; + parameter Real[size(xd, 1)] d(each fixed=false) "Derivatives at the support points"; + + Modelica.Blocks.Sources.Ramp ramp( + duration=500, + height=100, + offset=-50) "Ramp from -50Pa to +50Pa"; +initial equation + d =AixLib.Utilities.Math.Functions.splineDerivatives( + x=xd, + y=yd, + ensureMonotonicity=true); +equation + dp=ramp.y; + m_flow =AixLib.Airflow.Multizone.BaseClasses.interpolate(u=dp,xd=xd,yd=yd,d=d); + + annotation ( +experiment( + StopTime=500, + Tolerance=1e-06), + __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/Interpolate.mos" + "Simulate and plot"), Documentation(info=" +

+ This example demonstrates the function + + AixLib.Airflow.Multizone.BaseClasses.interpolate. +

+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, 2020, by Klaas De Jonge:
    + First implementation +
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end Interpolate; diff --git a/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mo b/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mo index 25f57d52a8..d6d3d644d7 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mo @@ -1,38 +1,39 @@ within AixLib.Airflow.Multizone.BaseClasses.Examples; model PowerLaw "Test model for power law function" extends Modelica.Icons.Example; - parameter Real k = 2/10^m "Flow coefficient, k = V_flow/ dp^m"; + parameter Real C = 2/10^m "Flow coefficient, k = V_flow/ dp^m"; parameter Real m(min=0.5, max=1) = 0.5 "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; - parameter Modelica.SIunits.PressureDifference dp_turbulent(min=0)=5 + parameter Modelica.Units.SI.PressureDifference dp_turbulent(min=0) = 5 "Pressure difference where regularization starts"; - Modelica.SIunits.PressureDifference dp "Pressure difference"; - Modelica.SIunits.VolumeFlowRate V_flow "Volume flow rate"; + Modelica.Units.SI.PressureDifference dp "Pressure difference"; + Modelica.Units.SI.VolumeFlowRate V_flow "Volume flow rate"; equation dp = 10*(-1+2*time); V_flow = AixLib.Airflow.Multizone.BaseClasses.powerLaw( dp=dp, - k=k, + C=C, m=m, dp_turbulent=dp_turbulent); annotation ( experiment(Tolerance=1e-6, StopTime=1.0), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mos" "Simulate and plot"), Documentation(info=" -

-This examples demonstrates the - -Buildings.Airflow.Multizone.BaseClasses.powerLaw -function. -

-", revisions=" -
    -
  • -August 12, 2011, by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This examples demonstrates the + + Buildings.Airflow.Multizone.BaseClasses.powerLaw + function. +

+ ",revisions=" +
    +
  • + August 12, 2011, by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end PowerLaw; diff --git a/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mo b/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mo index 72ed3f952e..9ebb0a0ada 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mo @@ -1,17 +1,17 @@ within AixLib.Airflow.Multizone.BaseClasses.Examples; model PowerLawFixedM "Test model for power law function" extends Modelica.Icons.Example; - parameter Real k = 2/10^m "Flow coefficient, k = V_flow/ dp^m"; + parameter Real C = 2/10^m "Flow coefficient, C = V_flow/ dp^m"; constant Real m(min=0.5, max=1) = 0.5 "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; - parameter Modelica.SIunits.PressureDifference dp_turbulent(min=0)=5 + parameter Modelica.Units.SI.PressureDifference dp_turbulent(min=0) = 5 "Pressure difference where regularization starts"; - Modelica.SIunits.PressureDifference dp "Pressure difference"; - Modelica.SIunits.VolumeFlowRate V_flow + Modelica.Units.SI.PressureDifference dp "Pressure difference"; + Modelica.Units.SI.VolumeFlowRate V_flow "Volume flow rate computed with model powerLaw"; - Modelica.SIunits.VolumeFlowRate VFixed_flow + Modelica.Units.SI.VolumeFlowRate VFixed_flow "Volume flow rate computed with model powerLawFixed"; constant Real gamma(min=1) = 1.5 @@ -29,11 +29,11 @@ equation dp = 10*(-1+2*time); V_flow = AixLib.Airflow.Multizone.BaseClasses.powerLaw( dp=dp, - k=k, + C=C, m=m, dp_turbulent=dp_turbulent); VFixed_flow = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( - k=k, + C=C, dp=dp, m=m, a=a, @@ -46,23 +46,24 @@ equation experiment(Tolerance=1e-6, StopTime=1.0), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/PowerLawFixedM.mos" "Simulate and plot"), Documentation(info=" -

-This examples demonstrates the - -Buildings.Airflow.Multizone.BaseClasses.powerLaw -and - -Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM -functions. -They need to return the same function value. -This is verified by an assert statement. -

-", revisions=" -
    -
  • -August 12, 2011, by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This examples demonstrates the + + Buildings.Airflow.Multizone.BaseClasses.powerLaw + and + + Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM + functions. + They need to return the same function value. + This is verified by an assert statement. +

+ ",revisions=" +
    +
  • + August 12, 2011, by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end PowerLawFixedM; diff --git a/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mo b/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mo index fcf99f93ba..13e4589c70 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mo @@ -3,31 +3,32 @@ model WindPressureLowRise "Test model for wind pressure function" extends Modelica.Icons.Example; parameter Real Cp0 = 0.6 "Wind pressure coefficient for normal wind incidence angle"; - Modelica.SIunits.Angle incAng "Wind incidence angle (0: normal to wall)"; + Modelica.Units.SI.Angle incAng "Wind incidence angle (0: normal to wall)"; parameter Real G = Modelica.Math.log(0.5) "Natural logarithm of side ratio"; Real Cp "Wind pressure coefficient"; equation incAng=time*2*Modelica.Constants.pi; - Cp = AixLib.Airflow.Multizone.BaseClasses.windPressureLowRise( + Cp =AixLib.Airflow.Multizone.BaseClasses.windPressureLowRise( Cp0=Cp0, G=G, - incAng=incAng); + alpha=incAng); annotation ( experiment(StartTime=-2, Tolerance=1e-6, StopTime=2), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/WindPressureLowRise.mos" "Simulate and plot"), Documentation(info=" -

-This examples demonstrates the - -AixLib.Airflow.Multizone.BaseClasses.windPressureLowRise -function. -

-", revisions=" -
    -
  • -October 27, 2011, by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This examples demonstrates the + + AixLib.Airflow.Multizone.BaseClasses.windPressureLowRise + function. +

+ ",revisions=" +
    +
  • + October 27, 2011, by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end WindPressureLowRise; diff --git a/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mo b/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mo new file mode 100644 index 0000000000..176e08ee34 --- /dev/null +++ b/AixLib/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mo @@ -0,0 +1,92 @@ +within AixLib.Airflow.Multizone.BaseClasses.Examples; +model WindPressureProfile + "Test model for wind pressure profile function" + extends Modelica.Icons.Example; + + parameter Modelica.Units.SI.Angle incAngSurNor[:]( + each displayUnit="deg")= + {0, 45, 90, 135, 180, 225, 270, 315}*Modelica.Constants.pi/180 + "Wind incidence angles, relative to the surface normal (normal=0), first point must be 0, last smaller than 2 pi(=360 deg)"; + parameter Real Cp[:]( + each final unit="1")= + {0.4, 0.1, -0.3, -0.35, -0.2, -0.35, -0.3, 0.1} + "Cp values at the corresponding incAngSurNor"; + + Modelica.Units.SI.Angle alpha "Wind incidence angle (0: normal to wall)"; + Real CpAct "Wind pressure coefficient"; + +protected + final parameter Integer n=size(incAngSurNor, 1) + "Number of data points provided by user"; + final parameter Modelica.Units.SI.Angle incAngExt[n + 3](each displayUnit= + "deg") = cat( + 1, + {incAngSurNor[n - 1] - (2*Modelica.Constants.pi)}, + incAngSurNor, + 2*Modelica.Constants.pi .+ {incAngSurNor[1],incAngSurNor[2]}) + "Extended number of incidence angles"; + final parameter Real CpExt[n+3]=cat(1, {Cp[n-1]}, Cp, {Cp[1], Cp[2]}) + "Extended number of Cp values"; + + final parameter Real[n+3] deri= + AixLib.Utilities.Math.Functions.splineDerivatives( + x=incAngExt, + y=CpExt, + ensureMonotonicity=false) "Derivatives for table interpolation"; + + Modelica.Blocks.Sources.Ramp ramp( + duration=500, + height=3*360, + offset=-360) + "Ramp model generating a singal from -360 to 720"; + +initial equation + assert(size(incAngSurNor, 1) == size(Cp, 1), "In " + getInstanceName() + + ": Size of parameters are size(CpincAng, 1) = " + String(size(incAngSurNor, + 1)) + " and size(Cp, 1) = " + String(size(Cp, 1)) + ". They must be equal."); + + assert(abs(incAngSurNor[1]) < 1E-4, "In " + getInstanceName() + + ": First point in the table CpAngAtt must be 0."); + + assert(2*Modelica.Constants.pi - incAngSurNor[end] > 1E-4, "In " + + getInstanceName() + + ": Last point in the table CpAngAtt must be smaller than 2 pi (360 deg)."); + +equation + alpha=Modelica.Constants.D2R*ramp.y; + CpAct =AixLib.Airflow.Multizone.BaseClasses.windPressureProfile( + alpha=alpha, + incAngTab=incAngExt, + CpTab=CpExt, + d=deri) "Actual wind pressure coefficient"; + + + annotation ( +experiment( + StopTime=500, + Tolerance=1e-06), + __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/BaseClasses/Examples/WindPressureProfile.mos" + "Simulate and plot"), Documentation(info=" +

+ This examples demonstrates the + + AixLib.Airflow.Multizone.BaseClasses.windPressureProfile + function. +

+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + First implementation +
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end WindPressureProfile; diff --git a/AixLib/Airflow/Multizone/BaseClasses/Examples/package.order b/AixLib/Airflow/Multizone/BaseClasses/Examples/package.order index e16ffa9072..e841c46bf2 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/Examples/package.order +++ b/AixLib/Airflow/Multizone/BaseClasses/Examples/package.order @@ -1,3 +1,5 @@ +Interpolate PowerLaw PowerLawFixedM WindPressureLowRise +WindPressureProfile diff --git a/AixLib/Airflow/Multizone/BaseClasses/PartialOneWayFlowElement.mo b/AixLib/Airflow/Multizone/BaseClasses/PartialOneWayFlowElement.mo new file mode 100644 index 0000000000..e99337ef06 --- /dev/null +++ b/AixLib/Airflow/Multizone/BaseClasses/PartialOneWayFlowElement.mo @@ -0,0 +1,125 @@ +within AixLib.Airflow.Multizone.BaseClasses; +partial model PartialOneWayFlowElement + "Partial model for flow resistance with one-way flow" + extends AixLib.Fluid.Interfaces.PartialTwoPortInterface( + final allowFlowReversal=true); + extends AixLib.Airflow.Multizone.BaseClasses.ErrorControl; + + constant Boolean homotopyInitialization = true "= true, use homotopy method" + annotation(HideResult=true, Dialog(tab="Advanced")); + + parameter Boolean useDefaultProperties=true + "Set to false to use density and viscosity based on actual medium state, rather than using default values" + annotation(Evaluate=true, Dialog(tab="Advanced")); + parameter Modelica.Units.SI.PressureDifference dp_turbulent(min=0, displayUnit="Pa") = 0.1 + "Pressure difference where laminar and turbulent flow relation coincide. Recommended = 0.1" + annotation(Dialog(tab="Advanced")); + + Modelica.Units.SI.VolumeFlowRate V_flow = m_flow/rho + "Volume flow rate through the component"; + Modelica.Units.SI.Density rho "Fluid density at port_a"; + +protected + parameter Medium.ThermodynamicState sta_default=Medium.setState_pTX( + T=Medium.T_default, + p=Medium.p_default, + X=Medium.X_default) + "State of the medium at the medium default properties"; + parameter Modelica.Units.SI.Density rho_default=Medium.density(sta_default) + "Density at the medium default properties"; + parameter Modelica.Units.SI.DynamicViscosity dynVis_default= + Medium.dynamicViscosity(sta_default) + "Dynamic viscosity at the medium default properties"; + + Medium.ThermodynamicState sta "State of the medium in the component"; + Modelica.Units.SI.DynamicViscosity dynVis "Dynamic viscosity"; + Real mExc(quantity="Mass", final unit="kg") + "Air mass exchanged (for purpose of error control only)"; + +initial equation + mExc=0; + assert(homotopyInitialization, "In " + getInstanceName() + + ": The constant homotopyInitialization has been modified from its default value. This constant will be removed in future releases.", + level = AssertionLevel.warning); + +equation + if forceErrorControlOnFlow then + der(mExc) = port_a.m_flow; + else + der(mExc) = 0; + end if; + + if useDefaultProperties then + sta = sta_default; + rho = rho_default; + dynVis = dynVis_default; + + else + sta = if homotopyInitialization then + Medium.setState_phX( + port_a.p, + homotopy( + actual=actualStream(port_a.h_outflow), + simplified=inStream(port_a.h_outflow)), + homotopy( + actual=actualStream(port_a.Xi_outflow), + simplified=inStream(port_a.Xi_outflow))) + else + Medium.setState_phX( + port_a.p, + actualStream(port_a.h_outflow), + actualStream(port_a.Xi_outflow)); + + rho = Medium.density(sta); + dynVis = Medium.dynamicViscosity(sta); + end if; + + // Isenthalpic state transformation (no storage and no loss of energy) + port_a.h_outflow = inStream(port_b.h_outflow); + port_b.h_outflow = inStream(port_a.h_outflow); + + // Mass balance (no storage) + port_a.m_flow + port_b.m_flow = 0; + + // Transport of substances + port_a.Xi_outflow = inStream(port_b.Xi_outflow); + port_b.Xi_outflow = inStream(port_a.Xi_outflow); + + port_a.C_outflow = inStream(port_b.C_outflow); + port_b.C_outflow = inStream(port_a.C_outflow); + + m_flow=port_a.m_flow; + + annotation ( + Documentation(info=" +

+ This partial model is used to model one way flow-elements. + It holds the conservation equations and should be extended by + definition of one of the following variables: +

+

m_flow = mass flow rate trough the component

+

or

+

V_flow = volume flow rate through the component

+

+ The flow from A->B is the positive flow. + The resulting equation should be in the extends statement, + not in the equation section since this model sets both + m_flow = V_flow*rho and V_flow = m_flow/rho. +

+ ", +revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 06, 2021, by Klaas De Jonge:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); +end PartialOneWayFlowElement; diff --git a/AixLib/Airflow/Multizone/BaseClasses/PowerLawResistance.mo b/AixLib/Airflow/Multizone/BaseClasses/PowerLawResistance.mo deleted file mode 100644 index 6b1dc0c30c..0000000000 --- a/AixLib/Airflow/Multizone/BaseClasses/PowerLawResistance.mo +++ /dev/null @@ -1,214 +0,0 @@ -within AixLib.Airflow.Multizone.BaseClasses; -partial model PowerLawResistance "Flow resistance that uses the power law" - extends AixLib.Fluid.Interfaces.PartialTwoPortInterface( - final allowFlowReversal=true, - final m_flow_nominal=rho_default*k*dp_turbulent, - final m_flow_small=1E-4*abs(m_flow_nominal)); - extends AixLib.Airflow.Multizone.BaseClasses.ErrorControl; - - constant Boolean homotopyInitialization = true "= true, use homotopy method" - annotation(HideResult=true); - - parameter Real m(min=0.5, max=1) - "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; - parameter Boolean useDefaultProperties=true - "Set to false to use density and viscosity based on actual medium state, rather than using default values" - annotation(Evaluate=true, Dialog(tab="Advanced")); - parameter Modelica.SIunits.PressureDifference dp_turbulent(min=0, displayUnit="Pa") = 0.1 - "Pressure difference where laminar and turbulent flow relation coincide. Recommended = 0.1" - annotation(Dialog(tab="Advanced")); - - Modelica.SIunits.VolumeFlowRate V_flow - "Volume flow rate through the component"; - Modelica.SIunits.Velocity v(nominal=1) "Average velocity"; - Modelica.SIunits.Density rho "Fluid density at port_a"; - -protected - constant Real gamma(min=1) = 1.5 - "Normalized flow rate where dphi(0)/dpi intersects phi(1)"; - - parameter Real k "Flow coefficient, k = V_flow/ dp^m"; - - parameter Medium.ThermodynamicState sta_default=Medium.setState_pTX( - T=Medium.T_default, - p=Medium.p_default, - X=Medium.X_default) - "State of the medium at the medium default properties"; - parameter Modelica.SIunits.Density rho_default=Medium.density(sta_default) - "Density at the medium default properties"; - parameter Modelica.SIunits.DynamicViscosity dynVis_default= - Medium.dynamicViscosity(sta_default) - "Dynamic viscosity at the medium default properties"; - - parameter Real a = gamma - "Polynomial coefficient for regularized implementation of flow resistance"; - parameter Real b = 1/8*m^2 - 3*gamma - 3/2*m + 35.0/8 - "Polynomial coefficient for regularized implementation of flow resistance"; - parameter Real c = -1/4*m^2 + 3*gamma + 5/2*m - 21.0/4 - "Polynomial coefficient for regularized implementation of flow resistance"; - parameter Real d = 1/8*m^2 - gamma - m + 15.0/8 - "Polynomial coefficient for regularized implementation of flow resistance"; - - Medium.ThermodynamicState sta "State of the medium in the component"; - Modelica.SIunits.DynamicViscosity dynVis "Dynamic viscosity"; - Real mExc(quantity="Mass", final unit="kg") - "Air mass exchanged (for purpose of error control only)"; -initial equation - mExc=0; - assert(homotopyInitialization, "In " + getInstanceName() + - ": The constant homotopyInitialization has been modified from its default value. This constant will be removed in future releases.", - level = AssertionLevel.warning); - -equation - if forceErrorControlOnFlow then - der(mExc) = port_a.m_flow; - else - der(mExc) = 0; - end if; - - if useDefaultProperties then - sta = sta_default; - rho = rho_default; - dynVis = dynVis_default; - else - sta = if homotopyInitialization then - Medium.setState_phX(port_a.p, - homotopy(actual=actualStream(port_a.h_outflow), - simplified=inStream(port_a.h_outflow)), - homotopy(actual=actualStream(port_a.Xi_outflow), - simplified=inStream(port_a.Xi_outflow))) - else - Medium.setState_phX(port_a.p, - actualStream(port_a.h_outflow), - actualStream(port_a.Xi_outflow)); - - rho = Medium.density(sta); - dynVis = Medium.dynamicViscosity(sta); - end if; - - V_flow = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( - k=k, - dp=dp, - m=m, - a=a, - b=b, - c=c, - d=d, - dp_turbulent=dp_turbulent); - - port_a.m_flow = rho*V_flow; - - // Isenthalpic state transformation (no storage and no loss of energy) - port_a.h_outflow = inStream(port_b.h_outflow); - port_b.h_outflow = inStream(port_a.h_outflow); - - // Mass balance (no storage) - port_a.m_flow + port_b.m_flow = 0; - - // Transport of substances - port_a.Xi_outflow = inStream(port_b.Xi_outflow); - port_b.Xi_outflow = inStream(port_a.Xi_outflow); - - port_a.C_outflow = inStream(port_b.C_outflow); - port_b.C_outflow = inStream(port_a.C_outflow); - annotation ( - Documentation(info=" -

-This model describes the mass flow rate and pressure difference relation -of an orifice in the form -

-
-    V_flow = k * dp^m,
-
-

-where k is a variable and -m a parameter. -For turbulent flow, set m=1/2 and -for laminar flow, set m=1. -

-

-The model is used as a base for the interzonal air flow models. -

-", -revisions=" -
    -
  • -May 12, 2020, by Michael Wetter:
    -Changed assignment of m_flow_small to final. -This quantity are not used in this model and models that extend from it. -Hence there is no need for the user to change the value. -
  • -
  • -April 14, 2020, by Michael Wetter:
    -Changed homotopyInitialization to a constant.
    -This is for -AixLib, #1341. -
  • -
  • -June 24, 2018, by Michael Wetter:
    -Removed parameter A because - -AixLib.Airflow.Multizone.EffectiveAirLeakageArea -uses the effective leakage area L rather than A.
    -Removed calculation v=V_flow/A as parameter A has been removed.
    -Removed parameter lWet as this is only used to compute -the Reynolds number, and the Reynolds number is not used by this model. -Also removed the variable Re for the Reynolds number.
    -This change is non-backward compatible.
    -This is for -AixLib, #932. -
  • -
  • -May 1, 2018, by Filip Jorissen:
    -Set final allowFlowReversal=true. -See #877. -
  • -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -November 19, 2015, by Michael Wetter:
    -Removed assignment of parameter -showDesignFlowDirection in extends statement. -This is for -#349. -
  • -
  • -January 21, 2015 by Michael Wetter:
    -Changed type of mExc as Modelica.SIunits.Mass -sets min=0, but mExc can be negative. -
  • -
  • -October 8, 2013 by Michael Wetter:
    -Changed the parameter useConstantDensity to -useDefaultProperties and also applied the parameter -to the computation of the dynamic viscosity. -The conversion script can be used to update this parameter.
    -Change model to not use the instance sta_a, as this -may be conditionally removed and hence it is not proper Modelica -syntax to use it outside of a connect statement. -
  • -
  • -March 27, 2013 by Michael Wetter:
    -Added assignment of initial value for mExc to avoid error when checking model -in pedantic mode with Dymola 2014. -
  • -
  • -December 14, 2012 by Michael Wetter:
    -Renamed protected parameters for consistency with the naming conventions. -
  • -
  • December 6, 2011 by Michael Wetter:
    - Removed fixed=false attribute of protected parameter - k. -
  • -
  • July 20, 2010 by Michael Wetter:
    - Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • February 4, 2005 by Michael Wetter:
    - Released first version. -
-")); -end PowerLawResistance; diff --git a/AixLib/Airflow/Multizone/BaseClasses/PowerLawResistanceParameters.mo b/AixLib/Airflow/Multizone/BaseClasses/PowerLawResistanceParameters.mo new file mode 100644 index 0000000000..5b30b61ad9 --- /dev/null +++ b/AixLib/Airflow/Multizone/BaseClasses/PowerLawResistanceParameters.mo @@ -0,0 +1,33 @@ +within AixLib.Airflow.Multizone.BaseClasses; +model PowerLawResistanceParameters "Power law resistance parameters" + parameter Real m(min=0.5, max=1) + "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; +protected + constant Real gamma(min=1) = 1.5 + "Normalized flow rate where dphi(0)/dpi intersects phi(1)"; + + parameter Real a = gamma + "Polynomial coefficient for regularized implementation of flow resistance"; + parameter Real b = 1/8*m^2 - 3*gamma - 3/2*m + 35.0/8 + "Polynomial coefficient for regularized implementation of flow resistance"; + parameter Real c = -1/4*m^2 + 3*gamma + 5/2*m - 21.0/4 + "Polynomial coefficient for regularized implementation of flow resistance"; + parameter Real d = 1/8*m^2 - gamma - m + 15.0/8 + "Polynomial coefficient for regularized implementation of flow resistance"; + annotation (Icon(coordinateSystem(preserveAspectRatio=false)), Diagram( + coordinateSystem(preserveAspectRatio=false)), + Documentation(info=" +

+ Parameters that are required for the components that implement a power law resistance. +

+ ",revisions=" +
    +
  • + June 26, 2021, by Filip Jorissen:
    + First implementation. +
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end PowerLawResistanceParameters; diff --git a/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo b/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo index 8d6b4efe71..91c5671a0e 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElement.mo @@ -16,34 +16,34 @@ partial model TwoWayFlowElement "Flow resistance that uses the power law" annotation (choices( choice(redeclare package Medium = AixLib.Media.Air "Moist air"))); - parameter Modelica.SIunits.Velocity vZer=0.001 + parameter Modelica.Units.SI.Velocity vZer=0.001 "Minimum velocity to prevent zero flow. Recommended: 0.001"; - Modelica.SIunits.VolumeFlowRate VAB_flow(nominal=0.001) + Modelica.Units.SI.VolumeFlowRate VAB_flow(nominal=0.001) "Volume flow rate from A to B if positive"; - Modelica.SIunits.VolumeFlowRate VBA_flow(nominal=0.001) + Modelica.Units.SI.VolumeFlowRate VBA_flow(nominal=0.001) "Volume flow rate from B to A if positive"; - Modelica.SIunits.MassFlowRate mAB_flow(nominal=0.001) + Modelica.Units.SI.MassFlowRate mAB_flow(nominal=0.001) "Mass flow rate from A to B if positive"; - Modelica.SIunits.MassFlowRate mBA_flow(nominal=0.001) + Modelica.Units.SI.MassFlowRate mBA_flow(nominal=0.001) "Mass flow rate from B to A if positive"; - Modelica.SIunits.Velocity vAB(nominal=0.01) "Average velocity from A to B"; - Modelica.SIunits.Velocity vBA(nominal=0.01) "Average velocity from B to A"; + Modelica.Units.SI.Velocity vAB(nominal=0.01) "Average velocity from A to B"; + Modelica.Units.SI.Velocity vBA(nominal=0.01) "Average velocity from B to A"; - Modelica.SIunits.Density rho_a1_inflow + Modelica.Units.SI.Density rho_a1_inflow "Density of air flowing in from port_a1"; - Modelica.SIunits.Density rho_a2_inflow + Modelica.Units.SI.Density rho_a2_inflow "Density of air flowing in from port_a2"; - Modelica.SIunits.Area A "Face area"; + Modelica.Units.SI.Area A "Face area"; protected - Modelica.SIunits.VolumeFlowRate VZer_flow(fixed=false) + Modelica.Units.SI.VolumeFlowRate VZer_flow(fixed=false) "Minimum net volume flow rate to prevent zero flow"; - Modelica.SIunits.Mass mExcAB(start=0, fixed=true) + Modelica.Units.SI.Mass mExcAB(start=0, fixed=true) "Air mass exchanged (for purpose of error control only)"; - Modelica.SIunits.Mass mExcBA(start=0, fixed=true) + Modelica.Units.SI.Mass mExcBA(start=0, fixed=true) "Air mass exchanged (for purpose of error control only)"; Medium.MassFraction Xi_a1_inflow[Medium1.nXi] @@ -119,73 +119,74 @@ equation fillPattern=FillPattern.Solid, pattern=LinePattern.None)}), Documentation(info=" -

-This is a partial model for models that describe the bi-directional -air flow through large openings. -

-

-Models that extend this model need to compute -mAB_flow and mBA_flow, -or alternatively VAB_flow and VBA_flow, -and the face area area. -The face area is a variable to allow this partial model to be used -for doors that can be open or closed as a function of an input signal. -

-", +

+ This is a partial model for models that describe the bi-directional + air flow through large openings. +

+

+ Models that extend this model need to compute + mAB_flow and mBA_flow, + or alternatively VAB_flow and VBA_flow, + and the face area area. + The face area is a variable to allow this partial model to be used + for doors that can be open or closed as a function of an input signal. +

+ ", revisions=" -
    -
  • -May 12, 2020, by Michael Wetter:
    -Changed assignment of m1_flow_small and -m2_flow_small to final. -These quantities are not used in this model and models that extend from it. -Hence there is no need for the user to change the value. -
  • -
  • -January 18, 2019, by Jianjun Hu:
    -Limited the media choice to moist air only. -See #1050. -
  • -
  • -September 13, 2018, by Michael Wetter:
    -Set allowFlowReversal=true as the flow can be slightly negative -due to the regularization, in which case the m_flow(min=0) -that is set in the base class - -AixLib.Fluid.Interfaces.PartialFourPort -is violated.
    -See -#937. -
  • -
  • -November 3, 2016, by Michael Wetter:
    -Removed start values for inflowing density -to simplify the parameter window, and because this can usually -be computed from the state variables.
    -This is for -#552. -
  • -
  • -February 24, 2015 by Michael Wetter:
    -Changed model to use - -Buildings.Utilities.Psychrometrics.Functions.density_pTX -for the density computation -as - -Buildings.Media.Air.density -does not depend on temperature. -
  • -
  • June 18, 2014 by Michael Wetter:
    -Added start values and fixed=true attribute for -mExcAB and mExcBA. -This avoids a warning during translation. -
  • -
  • July 20, 2010 by Michael Wetter:
    - Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • February 4, 2005 by Michael Wetter:
    - Released first version. -
-")); +
    +
  • + May 12, 2020, by Michael Wetter:
    + Changed assignment of m1_flow_small and + m2_flow_small to final. + These quantities are not used in this model and models that extend from it. + Hence there is no need for the user to change the value. +
  • +
  • + January 18, 2019, by Jianjun Hu:
    + Limited the media choice to moist air only. + See #1050. +
  • +
  • + September 13, 2018, by Michael Wetter:
    + Set allowFlowReversal=true as the flow can be slightly negative + due to the regularization, in which case the m_flow(min=0) + that is set in the base class + + AixLib.Fluid.Interfaces.PartialFourPort + is violated.
    + See + #937. +
  • +
  • + November 3, 2016, by Michael Wetter:
    + Removed start values for inflowing density + to simplify the parameter window, and because this can usually + be computed from the state variables.
    + This is for + #552. +
  • +
  • + February 24, 2015 by Michael Wetter:
    + Changed model to use + + Buildings.Utilities.Psychrometrics.Functions.density_pTX + for the density computation + as + + Buildings.Media.Air.density + does not depend on temperature. +
  • +
  • June 18, 2014 by Michael Wetter:
    + Added start values and fixed=true attribute for + mExcAB and mExcBA. + This avoids a warning during translation. +
  • +
  • July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • February 4, 2005 by Michael Wetter:
    + Released first version. +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end TwoWayFlowElement; diff --git a/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElementBuoyancy.mo b/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElementBuoyancy.mo index 3e68797381..d33c695f50 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElementBuoyancy.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/TwoWayFlowElementBuoyancy.mo @@ -3,45 +3,44 @@ partial model TwoWayFlowElementBuoyancy "Flow resistance that uses the power law" extends AixLib.Airflow.Multizone.BaseClasses.TwoWayFlowElement; - parameter Modelica.SIunits.Length wOpe=0.9 "Width of opening" + parameter Modelica.Units.SI.Length wOpe=0.9 "Width of opening" annotation (Dialog(group="Geometry")); - parameter Modelica.SIunits.Length hOpe=2.1 "Height of opening" + parameter Modelica.Units.SI.Length hOpe=2.1 "Height of opening" annotation (Dialog(group="Geometry")); - parameter Modelica.SIunits.Length hA=2.7/2 - "Height of reference pressure zone A" - annotation (Dialog(group="Geometry")); - parameter Modelica.SIunits.Length hB=2.7/2 - "Height of reference pressure zone B" - annotation (Dialog(group="Geometry")); + parameter Modelica.Units.SI.Length hA=2.7/2 + "Height of reference pressure zone A" annotation (Dialog(group="Geometry")); + parameter Modelica.Units.SI.Length hB=2.7/2 + "Height of reference pressure zone B" annotation (Dialog(group="Geometry")); annotation (Documentation(info=" -

-This is a partial model for models that describe the bi-directional -air flow through large openings. -

-

-Models that extend this model need to compute -mAB_flow and mBA_flow, -or alternatively VAB_flow and VBA_flow, -and the face area area. -The face area is a variable to allow this partial model to be used -for doors that can be open or closed as a function of an input signal. -

-", +

+ This is a partial model for models that describe the bi-directional + air flow through large openings. +

+

+ Models that extend this model need to compute + mAB_flow and mBA_flow, + or alternatively VAB_flow and VBA_flow, + and the face area area. + The face area is a variable to allow this partial model to be used + for doors that can be open or closed as a function of an input signal. +

+ ", revisions=" -
    -
  • -June 27, 2018, by Michael Wetter:
    -Corrected old parameter annotation. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -February 4, 2005 by Michael Wetter:
    -Released first version. -
-")); +
    +
  • + June 27, 2018, by Michael Wetter:
    + Corrected old parameter annotation. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + February 4, 2005 by Michael Wetter:
    + Released first version. +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end TwoWayFlowElementBuoyancy; diff --git a/AixLib/Airflow/Multizone/BaseClasses/ZonalFlow.mo b/AixLib/Airflow/Multizone/BaseClasses/ZonalFlow.mo index 1b99b283c0..c6ac6cd98f 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/ZonalFlow.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/ZonalFlow.mo @@ -11,6 +11,7 @@ partial model ZonalFlow "Flow across zonal boundaries of a room" final m2_flow_small=1E-4*abs(m2_flow_nominal)); replaceable package Medium = Modelica.Media.Interfaces.PartialMedium + "Medium in the component" annotation (choices( choice(redeclare package Medium = AixLib.Media.Air "Moist air"))); @@ -63,38 +64,39 @@ equation origin={-79,-63}, rotation=360)}), Documentation(info=" -

-This is a partial model for computing the air exchange between volumes. -Models that extend this model need to provide an equation for -port_a1.m_flow and port_a2.m_flow. -

-", +

+ This is a partial model for computing the air exchange between volumes. + Models that extend this model need to provide an equation for + port_a1.m_flow and port_a2.m_flow. +

+ ", revisions=" -
    -
  • -May 12, 2020, by Michael Wetter:
    -Changed assignment of m1_flow_small and -m2_flow_small to final. -These quantities are not used in this model and models that extend from it. -Hence there is no need for the user to change the value. -
  • -
  • -January 18, 2019, by Jianjun Hu:
    -Limited the media choice to moist air only. -See #1050. -
  • -
  • -August 18, 2014, by Michael Wetter:
    -Removed parameter forceErrorControlOnFlow as it was not used. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -January 4, 2006, by Michael Wetter:
    -Implemented first version. -
  • -
-")); +
    +
  • + May 12, 2020, by Michael Wetter:
    + Changed assignment of m1_flow_small and + m2_flow_small to final. + These quantities are not used in this model and models that extend from it. + Hence there is no need for the user to change the value. +
  • +
  • + January 18, 2019, by Jianjun Hu:
    + Limited the media choice to moist air only. + See #1050. +
  • +
  • + August 18, 2014, by Michael Wetter:
    + Removed parameter forceErrorControlOnFlow as it was not used. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + January 4, 2006, by Michael Wetter:
    + Implemented first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ZonalFlow; diff --git a/AixLib/Airflow/Multizone/BaseClasses/interpolate.mo b/AixLib/Airflow/Multizone/BaseClasses/interpolate.mo new file mode 100644 index 0000000000..24ea877e03 --- /dev/null +++ b/AixLib/Airflow/Multizone/BaseClasses/interpolate.mo @@ -0,0 +1,82 @@ +within AixLib.Airflow.Multizone.BaseClasses; +function interpolate + "Function for the interpolation of table data for airflow models" + extends Modelica.Icons.Function; + + input Real u "Independent variable"; + input Real[:] xd "X-axis support points"; + input Real[size(xd, 1)] yd "Y-axis support points"; + input Real[size(xd, 1)] d(each fixed=false) "Derivatives at the support points"; + + output Real z "Dependent variable with monotone interpolation"; + +protected + Integer i "Integer to select data interval"; + +algorithm + i := 1; + for j in 1:size(xd, 1) - 1 loop + if u > xd[j] then + i := j; + end if; + end for; + + // Extrapolate or interpolate the data + if i == 1 then + z:=yd[1]+(u-xd[1])*(yd[2]-yd[1])/(xd[2]-xd[1]); //Interpolate linearly between first and second point + elseif i == (size(xd, 1) - 1) then + z:=yd[end-1]+(u-xd[end-1])*(yd[end]-yd[end-1])/(xd[end]-xd[end-1]); //Interpolate linearly between last and second-to-last point. + + else + z :=AixLib.Utilities.Math.Functions.cubicHermiteLinearExtrapolation( + x=u, + x1=xd[i], + x2=xd[i + 1], + y1=yd[i], + y2=yd[i + 1], + y1d=d[i], + y2d=d[i + 1]); + end if; + + annotation ( + Documentation(info=" +

+ This function returns the value on a cubic hermite spline through the given support points + and provided spline derivatives at these points with monotonically increasing values. + The last 2 points in the table are linearly interpolated. +

+

+ A similar model is also used in the CONTAM software (Dols and Walton, 2015). +

+

+ This function is used in + + AixLib.Airflow.Multizone.Table_m_flow and + AixLib.Airflow.Multizone.Table_V_flow +

+

+ References +

+
    +
  • + W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, + National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: + 10.6028/NIST.TN.1887. +
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + First Implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); +end interpolate; diff --git a/AixLib/Airflow/Multizone/BaseClasses/package.order b/AixLib/Airflow/Multizone/BaseClasses/package.order index b5aba95f32..698bba52a4 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/package.order +++ b/AixLib/Airflow/Multizone/BaseClasses/package.order @@ -1,11 +1,14 @@ Door DoorDiscretized ErrorControl -PowerLawResistance +PartialOneWayFlowElement +PowerLawResistanceParameters TwoWayFlowElement TwoWayFlowElementBuoyancy ZonalFlow +interpolate powerLaw powerLawFixedM windPressureLowRise +windPressureProfile Examples diff --git a/AixLib/Airflow/Multizone/BaseClasses/powerLaw.mo b/AixLib/Airflow/Multizone/BaseClasses/powerLaw.mo index 58572d9f99..dde6ce74a6 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/powerLaw.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/powerLaw.mo @@ -1,13 +1,16 @@ within AixLib.Airflow.Multizone.BaseClasses; function powerLaw "Power law used in orifice equations" - input Real k "Flow coefficient, k = V_flow/ dp^m"; - input Modelica.SIunits.PressureDifference dp(displayUnit="Pa") "Pressure difference"; + extends Modelica.Icons.Function; + + input Real C "Flow coefficient, C = V_flow/ dp^m"; + input Modelica.Units.SI.PressureDifference dp(displayUnit="Pa") + "Pressure difference"; input Real m(min=0.5, max=1) "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; - input Modelica.SIunits.PressureDifference dp_turbulent(min=0, - displayUnit="Pa")=0.001 - "Pressure difference where regularization starts"; - output Modelica.SIunits.VolumeFlowRate V_flow "Volume flow rate"; + input Modelica.Units.SI.PressureDifference dp_turbulent( + min=0, + displayUnit="Pa") = 0.001 "Pressure difference where regularization starts"; + output Modelica.Units.SI.VolumeFlowRate V_flow "Volume flow rate"; protected constant Real gamma(min=1) = 1.5 "Normalized flow rate where dphi(0)/dpi intersects phi(1)"; @@ -23,9 +26,9 @@ protected Real pi2 "Square of normalized pressure"; algorithm if (dp >= dp_turbulent) then - V_flow := k*dp^m; + V_flow :=C *dp^m; elseif (dp <= -dp_turbulent) then - V_flow :=-k*(-dp)^m; + V_flow :=-C*(-dp)^m; else a := gamma; b := 1/8*m^2 - 3*gamma - 3/2*m + 35.0/8; @@ -33,66 +36,74 @@ algorithm d := 1/8*m^2 - gamma - m + 15.0/8; pi := dp/dp_turbulent; pi2 := pi*pi; - V_flow := k*dp_turbulent^m * pi * ( a + pi2 * ( b + pi2 * ( c + pi2 * d))); + V_flow :=C *dp_turbulent^m * pi * ( a + pi2 * ( b + pi2 * ( c + pi2 * d))); end if; annotation (smoothOrder=2, Documentation(info=" -

-This model describes the mass flow rate and pressure difference relation -of an orifice in the form -

-

- V = k sign(Δp) |Δp|m -

-

-where -V is the volume flow rate, -k > 0 is a flow coefficient -Δ p is the pressure drop and -m ∈ [0.5, 1] is a flow coefficient. -The equation is regularized for -|Δp| < Δpt, where -Δpt is a parameter. -For turbulent flow, set m=1 ⁄ 2 and -for laminar flow, set m=1. -

-

-The model is used for the interzonal air flow models. -

-

Implementation

-

-For |Δp| < Δpt, the equation is regularized -so that it is twice continuously differentiable in Δp, and that it -has an infinite number of continuous derivatives in m and in k. -

-

-If m is not a function of time, then -a, b, c and d can be pre-computed. -In this situation, use - -Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM, which allows -to compute these values outside of this function, for example as parameters -of a model. -

-", +

+ This model describes the mass flow rate and pressure difference relation + of an orifice in the form +

+

+ V̇ = C sign(Δp) |Δp|m +

+

+ where + is the volume flow rate, + C > 0 is a flow coefficient + Δ p is the pressure drop and + m ∈ [0.5, 1] is a flow coefficient. + The equation is regularized for + |Δp| < Δpt, where + Δpt is a parameter. + For turbulent flow, set m=1 ⁄ 2 and + for laminar flow, set m=1. +

+

+ The model is used for the interzonal air flow models. +

+

Implementation

+

+ For |Δp| < Δpt, the equation is regularized + so that it is twice continuously differentiable in Δp, and that it + has an infinite number of continuous derivatives in m and in k. +

+

+ If m is not a function of time, then + a, b, c and d can be pre-computed. + In this situation, use + + AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM, which allows + to compute these values outside of this function, for example as parameters + of a model. +

+ ", revisions=" -
    -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -August 12, 2011 by Michael Wetter:
    -Reimplemented model so that it is continuously differentiable. -
  • -
  • July 20, 2010 by Michael Wetter:
    - Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • February 4, 2005 by Michael Wetter:
    - Released first version. -
-")); +
    +
  • + February 8, 2022, by Michael Wetter:
    + Changed to use C for volume flow coefficient (C = V_flow/dp^m), + and k for mass flow coefficient (k = m_flow/dp^m). + This is for consistency with + AixLib.Fluid.BaseClasses.FlowModels. +
  • +
  • + January 22, 2016, by Michael Wetter:
    + Corrected type declaration of pressure difference. + This is + for #404. +
  • +
  • + August 12, 2011 by Michael Wetter:
    + Reimplemented model so that it is continuously differentiable. +
  • +
  • July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • February 4, 2005 by Michael Wetter:
    + Released first version. +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end powerLaw; diff --git a/AixLib/Airflow/Multizone/BaseClasses/powerLawFixedM.mo b/AixLib/Airflow/Multizone/BaseClasses/powerLawFixedM.mo index 1cadfce269..ed39f7aa36 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/powerLawFixedM.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/powerLawFixedM.mo @@ -1,17 +1,20 @@ within AixLib.Airflow.Multizone.BaseClasses; function powerLawFixedM "Power law used in orifice equations when m is constant" - input Real k "Flow coefficient, k = V_flow/ dp^m"; - input Modelica.SIunits.PressureDifference dp(displayUnit="Pa") "Pressure difference"; + extends Modelica.Icons.Function; + + input Real C "Flow coefficient, C = V_flow/ dp^m"; + input Modelica.Units.SI.PressureDifference dp(displayUnit="Pa") + "Pressure difference"; input Real m(min=0.5, max=1) "Flow exponent, m=0.5 for turbulent, m=1 for laminar"; input Real a "Polynomial coefficient"; input Real b "Polynomial coefficient"; input Real c "Polynomial coefficient"; input Real d "Polynomial coefficient"; - input Modelica.SIunits.PressureDifference dp_turbulent(min=0)=0.001 + input Modelica.Units.SI.PressureDifference dp_turbulent(min=0) = 0.001 "Pressure difference where regularization starts"; - output Modelica.SIunits.VolumeFlowRate V_flow "Volume flow rate"; + output Modelica.Units.SI.VolumeFlowRate V_flow "Volume flow rate"; protected constant Real gamma(min=1) = 1.5 "Normalized flow rate where dphi(0)/dpi intersects phi(1)"; @@ -19,71 +22,90 @@ protected Real pi2 "Square of normalized pressure"; algorithm if (dp >= dp_turbulent) then - V_flow := k*dp^m; + V_flow :=C *dp^m; elseif (dp <= -dp_turbulent) then - V_flow :=-k*(-dp)^m; + V_flow :=-C*(-dp)^m; else pi := dp/dp_turbulent; pi2 := pi*pi; - V_flow := k*dp_turbulent^m * pi * ( a + pi2 * ( b + pi2 * ( c + pi2 * d))); + V_flow :=C *dp_turbulent^m * pi * ( a + pi2 * ( b + pi2 * ( c + pi2 * d))); end if; annotation (smoothOrder=2, Documentation(info=" -

-This model describes the mass flow rate and pressure difference relation -of an orifice in the form -

-

- V = k sign(Δp) |Δp|m -

-

-where -V is the volume flow rate, -k > 0 is a flow coefficient -Δ p is the pressure drop and -m ∈ [0.5, 1] is a flow coefficient. -The equation is regularized for -|Δp| < Δpt, where -Δpt is a parameter. -For turbulent flow, set m=1 ⁄ 2 and -for laminar flow, set m=1. -

-

-The model is used for the interzonal air flow models. -It is identical to - -Buildings.Airflow.Multizone.BaseClasses.powerLaw but it -requires the polynomial coefficients as an input. -This allows a more efficient simulation if m and therefore also -a, b, c and d are constant. -

-

Implementation

-

-For |Δp| < Δpt, the equation is regularized -so that it is twice continuously differentiable in Δp, and that it -has an infinite number of continuous derivatives in m and in k. -

-

-If m, and therefore also -a, b, c and d, change with time, then -it is more convenient and efficient to use - -Buildings.Airflow.Multizone.BaseClasses.powerLaw. -

-", +

+ This model describes the mass flow rate and pressure difference relation + of an orifice in the form +

+

+ V̇ = C sign(Δp) |Δp|m +

+

+ where + is the volume flow rate, + C > 0 is a flow coefficient + Δ p is the pressure drop and + m ∈ [0.5, 1] is a flow coefficient. + The equation is regularized for + |Δp| < Δpt, where + Δpt is a parameter. + For turbulent flow, set m=1 ⁄ 2 and + for laminar flow, set m=1. +

+

+ The model is used for the interzonal air flow models. + It is identical to + + AixLib.Airflow.Multizone.BaseClasses.powerLaw but it + requires the polynomial coefficients as an input. + This allows a more efficient simulation if m and therefore also + a, b, c and d are constant. +

+

Implementation

+

+ For |Δp| < Δpt, the equation is regularized + so that it is twice continuously differentiable in Δp, and that it + has an infinite number of continuous derivatives in m and in k. +

+

+ If m, and therefore also + a, b, c and d, change with time, then + it is more convenient and efficient to use + + AixLib.Airflow.Multizone.BaseClasses.powerLaw. +

+ ", revisions=" -
    -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -August 12, 2011 by Michael Wetter:
    -First implementation. -
  • -
-")); +
    +
  • + February 8, 2022, by Michael Wetter:
    + Changed to use C for volume flow coefficient (C = V_flow/dp^m), + and k for mass flow coefficient (k = m_flow/dp^m). + This is for consistency with + AixLib.Fluid.BaseClasses.FlowModels. +
  • +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + April 6, 2021, by Klaas De Jonge:
    + Generalised the function by removing the units for flow. + This is done because the function is used to compute both mass flow rates and volume flow rates. +
  • +
  • + January 22, 2016, by Michael Wetter:
    + Corrected type declaration of pressure difference. + This is + for #404. +
  • +
  • + August 12, 2011 by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end powerLawFixedM; diff --git a/AixLib/Airflow/Multizone/BaseClasses/windPressureLowRise.mo b/AixLib/Airflow/Multizone/BaseClasses/windPressureLowRise.mo index 12bba175ab..6aab5b5ebf 100644 --- a/AixLib/Airflow/Multizone/BaseClasses/windPressureLowRise.mo +++ b/AixLib/Airflow/Multizone/BaseClasses/windPressureLowRise.mo @@ -1,25 +1,27 @@ within AixLib.Airflow.Multizone.BaseClasses; function windPressureLowRise "Wind pressure coefficient for low-rise buildings" - input Real Cp0(min=0) + extends Modelica.Icons.Function; + + input Real Cp0 "Wind pressure coefficient for normal wind incidence angle"; - input Modelica.SIunits.Angle incAng + input Modelica.Units.SI.Angle alpha "Wind incidence angle (0: normal to wall)"; input Real G "Natural logarithm of side ratio"; output Real Cp "Wind pressure coefficient"; protected - constant Modelica.SIunits.Angle pi2 = 2*Modelica.Constants.pi; - constant Modelica.SIunits.Angle aRDel = 5*Modelica.Constants.pi/180 + constant Modelica.Units.SI.Angle pi2=2*Modelica.Constants.pi; + constant Modelica.Units.SI.Angle aRDel=5*Modelica.Constants.pi/180 "Lower bound where transition occurs"; - constant Modelica.SIunits.Angle aRDel2 = aRDel/2 + constant Modelica.Units.SI.Angle aRDel2=aRDel/2 "Half-width of transition interval"; - constant Modelica.SIunits.Angle aRMax = 175*Modelica.Constants.pi/180 + constant Modelica.Units.SI.Angle aRMax=175*Modelica.Constants.pi/180 "Upper bound where transition occurs"; Real a180 = Modelica.Math.log(1.248 - 0.703 + 0.131*Modelica.Math.sin(2*Modelica.Constants.pi*G)^3 + 0.071*G^2) "Attenuation factor at 180 degree incidence angle"; - Modelica.SIunits.Angle aR "alpha, restricted to 0...pi"; - Modelica.SIunits.Angle incAng2 "0.5*wind incidence angle"; + Modelica.Units.SI.Angle aR "alpha, restricted to 0...pi"; + Modelica.Units.SI.Angle incAng2 "0.5*wind incidence angle"; Real sinA2 "=sin(alpha/2)"; Real cosA2 "=cos(alpha/2)"; Real a "Attenuation factor"; @@ -27,7 +29,7 @@ algorithm // Restrict incAng to [0...pi] // Change sign to positive - aR := if incAng < 0 then -incAng else incAng; + aR :=if alpha < 0 then -alpha else alpha; // Constrain to [0...2*pi] if aR > pi2 then aR := aR - integer(aR/pi2)*pi2; @@ -66,110 +68,115 @@ algorithm annotation ( smoothOrder=1, Documentation(info=" -

-This function computes the wind pressure coefficient for -low-rise buildings with rectangular shape. -The correlation is the data fit from Swami and Chandra (1987), -who fitted a function to various wind pressure coefficients from the literature. -The same correlation is also implemented in CONTAM (Persily and Ivy, 2001). -

-

-The wind pressure coefficient is computed based on the -natural logarithm of the side ratio of the walls, which is defined as -

-

-G = ln(x ⁄ y) -

-

-where x is the length of the wall that will be connected to -this model, and y is the length of the adjacent wall as shown -in the figure below. -

-

-\"Definition -

-

-Based on the wind incidence angle α and the side ratio -of the walls, the model computes how much the wind pressure -is attenuated compared to the reference wind pressure Cp0. -The reference wind pressure Cp0 is a user-defined parameter, -and must be equal to the wind pressure at zero wind incidence angle, i.e., -α = 0. -Swami and Chandra (1987) recommend Cp0 = 0.6 for -all low-rise buildings as this represents the average of -various values reported in the literature. -The attenuation factor is -

-

-Cp ⁄ Cp0 = ln(1.248 - 0.703 sin(α ⁄ 2) - - 1.175 sin2(α) - - 0.131 sin3(2 α G) - + 0.769 cos(α ⁄ 2) - +0.071 G2 * sin2(α ⁄ 2) - + 0.717 cos2(α ⁄ 2)), -

-

-where -Cp is the wind pressure coefficient for -the current angle of incidence. -

-

-This function is used in - -Buildings.Fluid.Sources.Outside_CpLowRise -which can be used directly with components of this package. -

-

References

- -

Implementation

-

-Symmetry requires that the first derivative of the wind pressure coefficient -with respect to the incidence angle is zero for incidence angles of zero and π. -However, the correlation of Swami and Chandra has non-zero derivatives at these values. -In this implementation, the original function is therefore slightly modified for incidence angles -between 0 and 5 degree, and between 175 and 180 degree. -This leads to a model that is differentiable in the incidence angle, -which generally leads to better numeric performance. -

-", revisions=" -
    -
  • -March 15, 2016, by Michael Wetter:
    -Replaced spliceFunction with regStep. -This is for -issue 300. -
  • -
  • -January 26, 2016, by Michael Wetter:
    -Removed constant keyword for a180 as its value -depends on the input of the function. -
  • -
  • -October 27, 2011 by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This function computes the wind pressure coefficient for + low-rise buildings with rectangular shape. + The correlation is the data fit from Swami and Chandra (1987), + who fitted a function to various wind pressure coefficients from the literature. + The same correlation is also implemented in CONTAM (Persily and Ivy, 2001). +

+

+ The wind pressure coefficient is computed based on the + natural logarithm of the side ratio of the walls, which is defined as +

+

+ G = ln(x ⁄ y) +

+

+ where x is the length of the wall that will be connected to + this model, and y is the length of the adjacent wall as shown + in the figure below. +

+

+ \"Definition +

+

+ Based on the wind incidence angle α and the side ratio + of the walls, the model computes how much the wind pressure + is attenuated compared to the reference wind pressure Cp0. + The reference wind pressure Cp0 is a user-defined parameter, + and must be equal to the wind pressure at zero wind incidence angle, i.e., + α = 0. + Swami and Chandra (1987) recommend Cp0 = 0.6 for + all low-rise buildings as this represents the average of + various values reported in the literature. + The attenuation factor is +

+

+ Cp ⁄ Cp0 = ln(1.248 - 0.703 sin(α ⁄ 2) + - 1.175 sin2(α) + - 0.131 sin3(2 α G) + + 0.769 cos(α ⁄ 2) + +0.071 G2 * sin2(α ⁄ 2) + + 0.717 cos2(α ⁄ 2)), +

+

+ where + Cp is the wind pressure coefficient for + the current angle of incidence. +

+

+ This function is used in + + Buildings.Fluid.Sources.Outside_CpLowRise + which can be used directly with components of this package. +

+

References

+ +

Implementation

+

+ Symmetry requires that the first derivative of the wind pressure coefficient + with respect to the incidence angle is zero for incidence angles of zero and π. + However, the correlation of Swami and Chandra has non-zero derivatives at these values. + In this implementation, the original function is therefore slightly modified for incidence angles + between 0 and 5 degree, and between 175 and 180 degree. + This leads to a model that is differentiable in the incidence angle, + which generally leads to better numeric performance. +

+ ",revisions=" +
    +
  • + February 16, 2022, by Michael Wetter:
    + Changed argment name to alpha for consistency with figure. +
  • +
  • + March 15, 2016, by Michael Wetter:
    + Replaced spliceFunction with regStep. + This is for + issue 300. +
  • +
  • + January 26, 2016, by Michael Wetter:
    + Removed constant keyword for a180 as its value + depends on the input of the function. +
  • +
  • + October 27, 2011 by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end windPressureLowRise; diff --git a/AixLib/Airflow/Multizone/BaseClasses/windPressureProfile.mo b/AixLib/Airflow/Multizone/BaseClasses/windPressureProfile.mo new file mode 100644 index 0000000000..4047ee0f2d --- /dev/null +++ b/AixLib/Airflow/Multizone/BaseClasses/windPressureProfile.mo @@ -0,0 +1,90 @@ +within AixLib.Airflow.Multizone.BaseClasses; +function windPressureProfile + "Function for the cubic spline interpolation of a wind pressure profile with given support points and spline derivatives at these support points" + extends Modelica.Icons.Function; + + input Modelica.Units.SI.Angle alpha "Wind incidence angle"; + input Real incAngTab[:] "Tabulated points for angle"; + input Real CpTab[size(incAngTab, 1)] "Tabulated points for Cp"; + input Real[size(incAngTab, 1)] d "Derivative values at tabulated points"; + + output Real CpAct "Actual Cp value for given incidence angle alpha"; + +protected + Integer i "Integer to select data interval"; + Real aR "u, restricted to 0...2*pi"; + +algorithm + // Change sign to positive and constrain to [0...2*pi] + aR :=mod(alpha, 2*Modelica.Constants.pi); + + i := 1; + for j in 1:size(incAngTab, 1) - 1 loop + if aR > incAngTab[j] then + i := j; + end if; + end for; + + // Interpolate the data + CpAct :=AixLib.Utilities.Math.Functions.cubicHermiteLinearExtrapolation( + x=aR, + x1=incAngTab[i], + x2=incAngTab[i + 1], + y1=CpTab[i], + y2=CpTab[i + 1], + y1d=d[i], + y2d=d[i + 1]); + + annotation ( +smoothOrder=1, +Documentation(revisions=" + + ", +info=" +

+ This function computes the wind pressure coefficients Cp from a user-defined table data. + The same functionality is also implemented in CONTAM. +

+

+ This function is used in + + AixLib.Fluid.Sources.Outside_CpData. +

+

References

+
    +
  • + W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, + National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: 10.6028/NIST.TN.1887. +
  • +
  • + Andrew K. Persily and Elizabeth M. Ivy. + + + Input Data for Multizone Airflow and IAQ Analysis. + NIST, NISTIR 6585. + January, 2001. + Gaithersburg, MD. +
  • +
  • M. W. Liddament, 1996, A guide to energy efficient ventilation. AIVC Annex V.
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end windPressureProfile; diff --git a/AixLib/Airflow/Multizone/Coefficient_V_flow.mo b/AixLib/Airflow/Multizone/Coefficient_V_flow.mo new file mode 100644 index 0000000000..891455a34a --- /dev/null +++ b/AixLib/Airflow/Multizone/Coefficient_V_flow.mo @@ -0,0 +1,98 @@ +within AixLib.Airflow.Multizone; +model Coefficient_V_flow "Power law with coefficient for volume flow rate" + extends AixLib.Airflow.Multizone.BaseClasses.PartialOneWayFlowElement( + m_flow = V_flow*rho, + V_flow = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( + C=C, + dp=dp, + m=m, + a=a, + b=b, + c=c, + d=d, + dp_turbulent=dp_turbulent), + final m_flow_nominal=rho_default*C*dp_turbulent, + final m_flow_small=1E-4*abs(m_flow_nominal)); + extends AixLib.Airflow.Multizone.BaseClasses.PowerLawResistanceParameters( + m = 0.5); + + parameter Real C "Flow coefficient, C = V_flow/ dp^m"; + + annotation ( + Icon(graphics={ + Rectangle( + extent={{-54,34},{48,-34}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-62,14},{76,-12}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-100,6},{-64,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{48,8},{100,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-70,4},{-52,-4}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-88,6},{-52,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), + defaultComponentName="pow", + Documentation(info=" +

+ This model describes the one-directional pressure driven air flow through an opening, using the equation +

+

+ V̇ = C Δpm, +

+

+ where is the volume flow rate in m3/s, + C is a flow coefficient, + Δp is the pressure difference in Pa, + and m is the flow exponent. +

+

+ A similar model is also used in the CONTAM software (Dols and Walton, 2015). + Dols and Walton (2002) recommend to use for the flow exponent m=0.6 to m=0.7 if the flow exponent is not reported with the test results. +

+

References

+
    +
  • ASHRAE, 1997. ASHRAE Fundamentals, American Society of Heating, Refrigeration and Air-Conditioning Engineers, 1997.
  • +
  • Dols and Walton, 2002. W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, Multizone Airflow and Contaminant Transport Analysis Software, Building and Fire Research Laboratory, National Institute of Standards and Technology, Tech. Report NISTIR 6921, November, 2002.
  • +
  • W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: 10.6028/NIST.TN.1887.
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + First Implementation. Model expecting direct input of volume flow powerlaw coefficients. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); +end Coefficient_V_flow; diff --git a/AixLib/Airflow/Multizone/Coefficient_m_flow.mo b/AixLib/Airflow/Multizone/Coefficient_m_flow.mo new file mode 100644 index 0000000000..7aed539c8e --- /dev/null +++ b/AixLib/Airflow/Multizone/Coefficient_m_flow.mo @@ -0,0 +1,97 @@ +within AixLib.Airflow.Multizone; +model Coefficient_m_flow "Powerlaw with coefficient for mass flow rate" + extends AixLib.Airflow.Multizone.BaseClasses.PartialOneWayFlowElement( + m_flow=rho*AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( + C=C, + dp=dp, + m=m, + a=a, + b=b, + c=c, + d=d, + dp_turbulent=dp_turbulent), + final m_flow_nominal=k*dp_turbulent, + final m_flow_small=1E-4*abs(m_flow_nominal)); + extends AixLib.Airflow.Multizone.BaseClasses.PowerLawResistanceParameters( + m = 0.5); + parameter Real k "Flow coefficient, k = m_flow/ dp^m"; +protected + parameter Real C=k/rho_default "Flow coefficient, C = V_flow/dp^m"; + + annotation ( + Icon(graphics={ + Rectangle( + extent={{-52,34},{50,-34}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-60,14},{78,-12}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-98,6},{-62,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{50,8},{102,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-68,4},{-50,-4}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-86,6},{-50,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), + defaultComponentName="pow", + Documentation(info=" +

+ This model describes the one-directional pressure driven air flow through an opening, using the equation +

+

+ ṁ = k Δpm, +

+

+ where is the mass flow rate in kg/s, + k is a flow coefficient, + Δp is the pressure difference in Pa, + and m is the flow exponent. +

+


A similar model is also used in the CONTAM software (Dols and Walton, 2015). + Dols and Walton (2002) recommend to use for the flow exponent m=0.6 to m=0.7 if the flow exponent is not reported with the test results. +

+

References

+
    +
  • ASHRAE, 1997. ASHRAE Fundamentals, American Society of Heating, Refrigeration and Air-Conditioning Engineers, 1997.
  • +
  • Dols and Walton, 2002. W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, Multizone Airflow and Contaminant Transport Analysis Software, Building and Fire Research Laboratory, National Institute of Standards and Technology, Tech. Report NISTIR 6921, November, 2002. [1]
  • +
  • W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: 10.6028/NIST.TN.1887.
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + First Implementation. Model expecting direct input of mass flow powerlaw coefficients. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); +end Coefficient_m_flow; diff --git a/AixLib/Airflow/Multizone/DoorDiscretizedOpen.mo b/AixLib/Airflow/Multizone/DoorDiscretizedOpen.mo index bf80e923a1..a192ce09a5 100644 --- a/AixLib/Airflow/Multizone/DoorDiscretizedOpen.mo +++ b/AixLib/Airflow/Multizone/DoorDiscretizedOpen.mo @@ -21,11 +21,11 @@ protected equation m=mFixed; A = wOpe*hOpe; - kVal = CD*dA*sqrt(2/rho_default); + CVal = CD*dA*sqrt(2/rho_default); // orifice equation for i in 1:nCom loop dV_flow[i] = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( - k=kVal, + C=CVal, dp=dpAB[i], m=mFixed, a=a, @@ -37,57 +37,58 @@ equation annotation (defaultComponentName="doo", Documentation(info=" -

-This model describes the bi-directional air flow through an open door. -

-

-To compute the bi-directional flow, -the door is discretize along the height coordinate. -An orifice equation is used to compute the flow for each compartment. -

-

-In this model, the door is always open. -Use the model - -Buildings.Airflow.Multizone.DoorDiscretizedOperable -for a door that can either be open or closed. -

-", +

+ This model describes the bi-directional air flow through an open door. +

+

+ To compute the bi-directional flow, + the door is discretize along the height coordinate. + An orifice equation is used to compute the flow for each compartment. +

+

+ In this model, the door is always open. + Use the model + + Buildings.Airflow.Multizone.DoorDiscretizedOperable + for a door that can either be open or closed. +

+ ", revisions=" -
    -
  • -January 8, 2019, by Michael Wetter:
    -Moved parameter CD from - -AixLib.Airflow.Multizone.BaseClasses.DoorDiscretized -to - -AixLib.Airflow.Multizone.DoorDiscretizedOpen.
    -This is for -#971. -
  • -
  • -December 14, 2012 by Michael Wetter:
    -Renamed protected parameters for consistency with the naming conventions. -
  • -
  • December 6, 2011 by Michael Wetter:
    -Changed the computation of the discharge coefficient to use the -nominal density instead of the actual density. -Computing sqrt(2/rho) sometimes causes warnings from the solver, -as it seems to try negative values for the density during iterative solutions. -
  • -
  • August 12, 2011 by Michael Wetter:
    -Changed model to use the new function - -Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM. -
  • -
  • July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -February 10, 2005 by Michael Wetter:
    -Released first version. -
  • -
-")); +
    +
  • + January 8, 2019, by Michael Wetter:
    + Moved parameter CD from + + AixLib.Airflow.Multizone.BaseClasses.DoorDiscretized + to + + AixLib.Airflow.Multizone.DoorDiscretizedOpen.
    + This is for + #971. +
  • +
  • + December 14, 2012 by Michael Wetter:
    + Renamed protected parameters for consistency with the naming conventions. +
  • +
  • December 6, 2011 by Michael Wetter:
    + Changed the computation of the discharge coefficient to use the + nominal density instead of the actual density. + Computing sqrt(2/rho) sometimes causes warnings from the solver, + as it seems to try negative values for the density during iterative solutions. +
  • +
  • August 12, 2011 by Michael Wetter:
    + Changed model to use the new function + + Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM. +
  • +
  • July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + February 10, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end DoorDiscretizedOpen; diff --git a/AixLib/Airflow/Multizone/DoorDiscretizedOperable.mo b/AixLib/Airflow/Multizone/DoorDiscretizedOperable.mo index 7b5b5754d2..b2d3faf2b3 100644 --- a/AixLib/Airflow/Multizone/DoorDiscretizedOperable.mo +++ b/AixLib/Airflow/Multizone/DoorDiscretizedOperable.mo @@ -3,18 +3,18 @@ model DoorDiscretizedOperable "Door model using discretization along height coordinate" extends AixLib.Airflow.Multizone.BaseClasses.DoorDiscretized; - parameter Modelica.SIunits.PressureDifference dpCloRat(min=0, - displayUnit="Pa") = 4 - "Pressure drop at rating condition of closed door" - annotation (Dialog(group="Rating conditions")); + parameter Modelica.Units.SI.PressureDifference dpCloRat( + min=0, + displayUnit="Pa") = 4 "Pressure drop at rating condition of closed door" + annotation (Dialog(group="Rating conditions")); parameter Real CDCloRat(min=0, max=1)=1 "Discharge coefficient at rating conditions of closed door" annotation (Dialog(group="Rating conditions")); - parameter Modelica.SIunits.Area LClo(min=0) + parameter Modelica.Units.SI.Area LClo(min=0) "Effective leakage area of closed door" - annotation (Dialog(group="Closed door")); + annotation (Dialog(group="Closed door")); parameter Real CDOpe=0.65 "Discharge coefficient of open door" annotation (Dialog(group="Open door")); @@ -30,31 +30,30 @@ model DoorDiscretizedOperable "Opening signal, 0=closed, 1=open" annotation (Placement(transformation(extent={{-120,-10},{-100,10}}), iconTransformation(extent={{-120,-10},{-100,10}}))); protected - parameter Modelica.SIunits.Area AOpe=wOpe*hOpe "Open aperture area"; - parameter Modelica.SIunits.Area AClo(fixed=false) "Closed aperture area"; + parameter Modelica.Units.SI.Area AOpe=wOpe*hOpe "Open aperture area"; + parameter Modelica.Units.SI.Area AClo(fixed=false) "Closed aperture area"; - Real kOpe "Open aperture flow coefficient, k = V_flow/ dp^m"; - Real kClo "Closed aperture flow coefficient, k = V_flow/ dp^m"; + Real COpe "Open aperture flow coefficient, C = V_flow/ dp^m"; + Real CClo "Closed aperture flow coefficient, C = V_flow/ dp^m"; Real fraOpe "Fraction of aperture that is open"; initial equation AClo=CDClo/CDCloRat * LClo * dpCloRat^(0.5-mClo); equation fraOpe =y; - kClo = CDClo * AClo/nCom * sqrt(2/rho_default); - kOpe = CDOpe * AOpe/nCom * sqrt(2/rho_default); + CClo = CDClo * AClo/nCom * sqrt(2/rho_default); + COpe = CDOpe * AOpe/nCom * sqrt(2/rho_default); // flow exponent m = fraOpe*mOpe + (1-fraOpe)*mClo; // opening area A = fraOpe*AOpe + (1-fraOpe)*AClo; // friction coefficient for power law - kVal = fraOpe*kOpe + (1-fraOpe)*kClo; + CVal = fraOpe*COpe + (1-fraOpe)*CClo; // orifice equation for i in 1:nCom loop - dV_flow[i] = AixLib.Airflow.Multizone.BaseClasses.powerLaw( - k=kVal, + dV_flow[i] = AixLib.Airflow.Multizone.BaseClasses.powerLaw(C=CVal, dp=dpAB[i], m=m, dp_turbulent=dp_turbulent); @@ -63,7 +62,7 @@ equation annotation (Icon(graphics={ Text( extent={{-118,34},{-98,16}}, - lineColor={0,0,127}, + textColor={0,0,127}, textString= "y"), Rectangle( @@ -86,67 +85,68 @@ equation fillPattern=FillPattern.Solid)}), defaultComponentName="doo", Documentation(info=" -

-This model describes the bi-directional air flow through an open door. -

-

-To compute the bi-directional flow, -the door is discretize along the height coordinate, and uses -an orifice equation to compute the flow for each compartment. -

-

-The door can be either open or closed, depending on the input signal -y. -Set y=0 if the door is closed, and y=1 -if the door is open. -Use the model - -AixLib.Airflow.Multizone.DoorDiscretizedOpen -for a door that is always closed. -

-", +

+ This model describes the bi-directional air flow through an open door. +

+

+ To compute the bi-directional flow, + the door is discretize along the height coordinate, and uses + an orifice equation to compute the flow for each compartment. +

+

+ The door can be either open or closed, depending on the input signal + y. + Set y=0 if the door is closed, and y=1 + if the door is open. + Use the model + + AixLib.Airflow.Multizone.DoorDiscretizedOpen + for a door that is always closed. +

+ ", revisions=" -
    -
  • -June 27, 2018, by Michael Wetter:
    -Corrected old parameter annotation. -
  • -
  • -April 11, 2016 by Michael Wetter:
    -Corrected wrong hyperlink in documentation for -issue 450. -
  • -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -December 14, 2012 by Michael Wetter:
    -Renamed protected parameters for consistency with the naming conventions. -
  • -
  • -December 6, 2011 by Michael Wetter:
    -Changed the computation of the discharge coefficient to use the -nominal density instead of the actual density. -Computing sqrt(2/rho) sometimes causes warnings from the solver, -as it seems to try negative values for the density during iterative solutions. -
  • -
  • -August 12, 2011 by Michael Wetter:
    -Changed model to use the new function - -Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -February 10, 2005 by Michael Wetter:
    -Released first version. -
  • -
-")); +
    +
  • + June 27, 2018, by Michael Wetter:
    + Corrected old parameter annotation. +
  • +
  • + April 11, 2016 by Michael Wetter:
    + Corrected wrong hyperlink in documentation for + issue 450. +
  • +
  • + January 22, 2016, by Michael Wetter:
    + Corrected type declaration of pressure difference. + This is + for #404. +
  • +
  • + December 14, 2012 by Michael Wetter:
    + Renamed protected parameters for consistency with the naming conventions. +
  • +
  • + December 6, 2011 by Michael Wetter:
    + Changed the computation of the discharge coefficient to use the + nominal density instead of the actual density. + Computing sqrt(2/rho) sometimes causes warnings from the solver, + as it seems to try negative values for the density during iterative solutions. +
  • +
  • + August 12, 2011 by Michael Wetter:
    + Changed model to use the new function + + Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + February 10, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end DoorDiscretizedOperable; diff --git a/AixLib/Airflow/Multizone/DoorOpen.mo b/AixLib/Airflow/Multizone/DoorOpen.mo index 05ce1b77bc..7552f662fe 100644 --- a/AixLib/Airflow/Multizone/DoorOpen.mo +++ b/AixLib/Airflow/Multizone/DoorOpen.mo @@ -24,19 +24,19 @@ protected parameter Real d = 1/8*m^2 - gamma - m + 15.0/8 "Polynomial coefficient for regularized implementation of flow resistance"; - parameter Real kVal=CD*AOpe*sqrt(2/rho_default) "Flow coefficient, k = V_flow/ dp^m"; + parameter Real CVal=CD*AOpe*sqrt(2/rho_default) + "Flow coefficient, C = V_flow/ dp^m"; parameter Real kT = rho_default * CD * AOpe/3 * sqrt(Modelica.Constants.g_n /(Medium.T_default*conTP) * hOpe) "Constant coefficient for buoyancy driven air flow rate"; - parameter Modelica.SIunits.MassFlowRate m_flow_turbulent= - kVal * rho_default * sqrt(dp_turbulent) + parameter Modelica.Units.SI.MassFlowRate m_flow_turbulent=CVal*rho_default* + sqrt(dp_turbulent) "Mass flow rate where regularization to laminar flow occurs for temperature-driven flow"; equation // Air flow rate due to static pressure difference - VABp_flow = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( - k=kVal, + VABp_flow = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM(C=CVal, dp=port_a1.p-port_a2.p, m=m, a=a, @@ -57,156 +57,157 @@ equation annotation (defaultComponentName="doo", Documentation(info=" -

-Model for bi-directional air flow through a large opening such as a door. -

-

-In this model, the air flow is composed of two components, -a one-directional bulk air flow -due to static pressure difference in the adjoining two thermal zones, and -a two-directional airflow due to temperature-induced differences in density -of the air in the two thermal zones. -Although turbulent air flow is a nonlinear phenomenon, -the model is based on the simplifying assumption that these two -air flow rates can be superposed. -(Superposition is only exact for laminar flow.) -This assumption is made because -it leads to a simple model and because there is significant uncertainty -and assumptions anyway in such simplified a model for bidirectional flow through a door. -

-

Main equations

-

-The air flow rate due to static pressure difference is -

-

- V̇ab,p = CD w h (2/ρ0)0.5 Δpm, -

-

-where - is the volumetric air flow rate, -CD is the discharge coefficient, -w and h are the width and height of the opening, -ρ0 is the mass density at the medium default pressure, temperature and humidity, -m is the flow exponent and -Δp = pa - pb is the static pressure difference between -the thermal zones. -For this model explanation, we will assume pa > pb. -For turbulent flow, m=1/2 and for laminar flow m=1. -

-

-The air flow rate due to temperature difference in the thermal zones is -ab,t for flow from thermal zone a to b, -and -ba,t for air flow rate from thermal zone b to a. -The model has two air flow paths to allow bi-directional air flow. -The mass flow rates at these two air flow paths are -

-

- ṁa1 = ρ0   (+V̇ab,p/2 +   V̇ab,t), -

-

-and, similarly, -

-

- V̇ba = ρ0   (-V̇ab,p/2 +   V̇ba,t), -

-

-where we simplified the calculation by using the density ρ0. -To calculate ba,t, we again use the density ρ0 -and because of this simplification, we can write -

-

- ṁab,t = -ṁba,t = ρ0   V̇ab,t - = -ρ0   V̇ba,t, -

-

-from which follows that the neutral height, e.g., the height where the air flow rate due to flow -induced by temperature difference is zero, is at h/2. -Hence, -

-

-V̇ab,t = CD0h/2 w v(z) dz, -

-

-where v(z) is the velocity at height z. From the Bernoulli equation, we obtain -

-

-v(z) = (2 g z Δρ ⁄ ρ0)1/2. -

-

-The density difference can be written as -

-

- Δρ = ρab - ≈ ρ0 (Tb - Ta) ⁄ T0, -

-

-where we used -ρa = p0 /(R Ta) and -Ta Tb ≈ T02. -Substituting this expression into the integral and integrating from 0 to z yields -

-

-V̇ab,t = 1⁄3 CD w h -(g h ⁄ (R T0 ρ0))1/2 Δp1/2. -

-

-The above equation is equivalent to (6) in Brown and Solvason (1962). -

Main assumptions

-

-The main assumptions are as follows: -

-
    -
  • -

    -The air flow rates due to static pressure difference and due to temperature-difference can be superposed. -

    -
  • -
  • -

    -For buoyancy-driven air flow, a constant density can be used to convert air volume flow rate to air mass flow rate. -

    -
  • -
-

-From these assumptions follows that the neutral height for buoyancy-driven air flow is at half of the height -of the opening. -

-

Notes

-

-For a more detailed model, use - -AixLib.Airflow.Multizone.DoorDiscretizedOpen. -

-

References

- -", +

+ Model for bi-directional air flow through a large opening such as a door. +

+

+ In this model, the air flow is composed of two components, + a one-directional bulk air flow + due to static pressure difference in the adjoining two thermal zones, and + a two-directional airflow due to temperature-induced differences in density + of the air in the two thermal zones. + Although turbulent air flow is a nonlinear phenomenon, + the model is based on the simplifying assumption that these two + air flow rates can be superposed. + (Superposition is only exact for laminar flow.) + This assumption is made because + it leads to a simple model and because there is significant uncertainty + and assumptions anyway in such simplified a model for bidirectional flow through a door. +

+

Main equations

+

+ The air flow rate due to static pressure difference is +

+

+ V̇ab,p = CD w h (2/ρ0)0.5 Δpm, +

+

+ where + is the volumetric air flow rate, + CD is the discharge coefficient, + w and h are the width and height of the opening, + ρ0 is the mass density at the medium default pressure, temperature and humidity, + m is the flow exponent and + Δp = pa - pb is the static pressure difference between + the thermal zones. + For this model explanation, we will assume pa > pb. + For turbulent flow, m=1/2 and for laminar flow m=1. +

+

+ The air flow rate due to temperature difference in the thermal zones is + ab,t for flow from thermal zone a to b, + and + ba,t for air flow rate from thermal zone b to a. + The model has two air flow paths to allow bi-directional air flow. + The mass flow rates at these two air flow paths are +

+

+ ṁa1 = ρ0   (+V̇ab,p/2 +   V̇ab,t), +

+

+ and, similarly, +

+

+ V̇ba = ρ0   (-V̇ab,p/2 +   V̇ba,t), +

+

+ where we simplified the calculation by using the density ρ0. + To calculate ba,t, we again use the density ρ0 + and because of this simplification, we can write +

+

+ ṁab,t = -ṁba,t = ρ0   V̇ab,t + = -ρ0   V̇ba,t, +

+

+ from which follows that the neutral height, e.g., the height where the air flow rate due to flow + induced by temperature difference is zero, is at h/2. + Hence, +

+

+ V̇ab,t = CD0h/2 w v(z) dz, +

+

+ where v(z) is the velocity at height z. From the Bernoulli equation, we obtain +

+

+ v(z) = (2 g z Δρ ⁄ ρ0)1/2. +

+

+ The density difference can be written as +

+

+ Δρ = ρab + ≈ ρ0 (Tb - Ta) ⁄ T0, +

+

+ where we used + ρa = p0 /(R Ta) and + Ta Tb ≈ T02. + Substituting this expression into the integral and integrating from 0 to z yields +

+

+ V̇ab,t = 1⁄3 CD w h + (g h ⁄ (R T0 ρ0))1/2 Δp1/2. +

+

+ The above equation is equivalent to (6) in Brown and Solvason (1962). +

Main assumptions

+

+ The main assumptions are as follows: +

+
    +
  • +

    + The air flow rates due to static pressure difference and due to temperature-difference can be superposed. +

    +
  • +
  • +

    + For buoyancy-driven air flow, a constant density can be used to convert air volume flow rate to air mass flow rate. +

    +
  • +
+

+ From these assumptions follows that the neutral height for buoyancy-driven air flow is at half of the height + of the opening. +

+

Notes

+

+ For a more detailed model, use + + AixLib.Airflow.Multizone.DoorDiscretizedOpen. +

+

References

+ + ", revisions=" -
    -
  • -January 22, 2020, by Michael Wetter:
    -Revised buoyancy-driven flow based on Brown and Solvason (1962). -
  • -
  • -January 19, 2020, by Klaas De Jonge:
    -Revised influence of stack effect. -
  • -
  • -October 6, 2020, by Michael Wetter:
    -First implementation for -#1353. -
  • -
-")); +
    +
  • + January 22, 2020, by Michael Wetter:
    + Revised buoyancy-driven flow based on Brown and Solvason (1962). +
  • +
  • + January 19, 2020, by Klaas De Jonge:
    + Revised influence of stack effect. +
  • +
  • + October 6, 2020, by Michael Wetter:
    + First implementation for + #1353. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end DoorOpen; diff --git a/AixLib/Airflow/Multizone/DoorOperable.mo b/AixLib/Airflow/Multizone/DoorOperable.mo index fc0b24ea37..e4ca01c5cb 100644 --- a/AixLib/Airflow/Multizone/DoorOperable.mo +++ b/AixLib/Airflow/Multizone/DoorOperable.mo @@ -11,17 +11,17 @@ model DoorOperable parameter Real mOpe = 0.5 "Flow exponent for door of open door" annotation (Dialog(group="Open door")); - parameter Modelica.SIunits.Area LClo(min=0) + parameter Modelica.Units.SI.Area LClo(min=0) "Effective leakage area of closed door" - annotation (Dialog(group="Closed door")); + annotation (Dialog(group="Closed door")); parameter Real mClo= 0.65 "Flow exponent for crack of closed door" annotation (Dialog(group="Closed door")); - parameter Modelica.SIunits.PressureDifference dpCloRat(min=0, - displayUnit="Pa") = 4 - "Pressure drop at rating condition of closed door" - annotation (Dialog(group="Closed door rating conditions")); + parameter Modelica.Units.SI.PressureDifference dpCloRat( + min=0, + displayUnit="Pa") = 4 "Pressure drop at rating condition of closed door" + annotation (Dialog(group="Closed door rating conditions")); parameter Real CDCloRat(min=0, max=1)=1 "Discharge coefficient at rating conditions of closed door" @@ -43,37 +43,36 @@ protected parameter Real d[2] = {1/8*m^2 - gamma - m + 15.0/8 for m in {mOpe, mClo}} "Polynomial coefficient for regularized implementation of flow resistance"; - parameter Modelica.SIunits.Area AClo = LClo * dpCloRat^(0.5-mClo) "Closed area"; - parameter Real kVal[2]={ - CDOpe *AOpe*sqrt(2/rho_default), - CDCloRat*AClo*sqrt(2/rho_default)} - "Flow coefficient, k = V_flow/ dp^m"; + parameter Modelica.Units.SI.Area AClo=LClo*dpCloRat^(0.5 - mClo) + "Closed area"; + parameter Real CVal[2]= + {CDOpe*AOpe*sqrt(2/rho_default), + CDCloRat*AClo*sqrt(2/rho_default)} + "Flow coefficient, C = V_flow/ dp^m"; parameter Real kT = rho_default * CDOpe * AOpe/3 * sqrt(Modelica.Constants.g_n /(Medium.T_default*conTP) * hOpe) "Constant coefficient for buoyancy driven air flow rate"; - parameter Modelica.SIunits.MassFlowRate m_flow_turbulent= - kVal[1] * rho_default * sqrt(dp_turbulent) + parameter Modelica.Units.SI.MassFlowRate m_flow_turbulent=CVal[1]*rho_default + *sqrt(dp_turbulent) "Mass flow rate where regularization to laminar flow occurs for temperature-driven flow"; - Modelica.SIunits.VolumeFlowRate VABpOpeClo_flow[2](each nominal=0.001) - "Volume flow rate from A to B if positive due to static pressure difference"; - Modelica.SIunits.VolumeFlowRate VABp_flow(nominal=0.001) + Modelica.Units.SI.VolumeFlowRate VABpOpeClo_flow[2](each nominal=0.001) "Volume flow rate from A to B if positive due to static pressure difference"; - Modelica.SIunits.Area A "Current opening area"; + Modelica.Units.SI.Area A "Current opening area"; equation // Air flow rate due to static pressure difference VABpOpeClo_flow = AixLib.Airflow.Multizone.BaseClasses.powerLawFixedM( - k=kVal, - dp=port_a1.p-port_a2.p, - m={mOpe, mClo}, - a=a, - b=b, - c=c, - d=d, - dp_turbulent=dp_turbulent); + C=CVal, + dp=port_a1.p-port_a2.p, + m={mOpe, mClo}, + a=a, + b=b, + c=c, + d=d, + dp_turbulent=dp_turbulent); VABp_flow = y*VABpOpeClo_flow[1] + (1-y)*VABpOpeClo_flow[2]; A = y*AOpe + (1-y)*AClo; // Air flow rate due to buoyancy @@ -87,101 +86,108 @@ equation annotation (defaultComponentName="doo", Documentation(info=" -

-Model for bi-directional air flow through a large opening such as a door which can be opened or closed -based on the control input signal y. -

-

-For the control input signal y=1, this model is identical to - -AixLib.Airflow.Multizone.DoorOpen, and for -y=0, the door is assumed to be closed and the air flow rate is -set to the air flow rate through the crack posed by the open door, clo. -

-The air flow rate for the closed door is computed as -

-

- V̇clo = kclo ΔpmClo, -

-

-where -clo is the volume flow rate, -kclo is a flow coefficient and -mClo is the flow exponent. -The flow coefficient is -

-

-kclo = Lclo CDCloRat ΔpRat(0.5-mClo) (2/ρ0)0.5, -

-

-where -Lclo is the effective air leakage area, -CDCloRat is the discharge coefficient at the reference condition, -ΔpRat is the pressure drop at the rating condition, and -ρ0 is the mass density at the medium default pressure, temperature and humidity. -

-

-The effective air leakage area Lclo can be obtained, for example, -from the ASHRAE fundamentals (ASHRAE, 1997, p. 25.18). In -the ASHRAE fundamentals, the effective air leakage area is -based on a reference pressure difference of ΔpRat = 4 Pa and a discharge -coefficient of CDCloRat = 1. -A similar model is also used in the CONTAM software (Dols and Walton, 2002). -Dols and Walton (2002) recommend to use for the flow exponent -mClo=0.6 to mClo=0.7 if the flow exponent is not -reported with the test results. -

-

-For the open door, the air flow rate -ope is computed as described in - -AixLib.Airflow.Multizone.DoorOpen -with the parameters CDOpe and mOpe. -

-

-The actual air flow rate is computed as -

-

-V̇clo = (y-1) V̇clo + y V̇ope, -

-

-where y ∈ [0, 1] is the control signal. -Note that for values of y that are different from 0 and -1, the model simply interpolates the air flow rate between a fully open -and a fully closed door. In practice, the air flow rate would likely increase quickly if the -door is slightly opened, and hence we do not claim that the model is accurate for -values other than y = 0 and y = 1. -

-

References

-
    -
  • -ASHRAE. -ASHRAE Fundamentals, -American Society of Heating, Refrigeration and Air-Conditioning -Engineers, 1997. -
  • -
  • -Dols and Walton. -W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, -Multizone Airflow and Contaminant Transport Analysis Software, -Building and Fire Research Laboratory, -National Institute of Standards and Technology, -Tech. Report NISTIR 6921, -November, 2002. -
  • -
-", +

+ Model for bi-directional air flow through a large opening such as a door which can be opened or closed + based on the control input signal y. +

+

+ For the control input signal y=1, this model is identical to + + AixLib.Airflow.Multizone.DoorOpen, and for + y=0, the door is assumed to be closed and the air flow rate is + set to the air flow rate through the crack posed by the open door, clo. +

+ The air flow rate for the closed door is computed as +

+

+ V̇clo = Cclo ΔpmClo, +

+

+ where + clo is the volume flow rate, + Cclo is a flow coefficient and + mClo is the flow exponent. + The flow coefficient is +

+

+ Cclo = Lclo CDCloRat ΔpRat(0.5-mClo) (2/ρ0)0.5, +

+

+ where + Lclo is the effective air leakage area, + CDCloRat is the discharge coefficient at the reference condition, + ΔpRat is the pressure drop at the rating condition, and + ρ0 is the mass density at the medium default pressure, temperature and humidity. +

+

+ The effective air leakage area Lclo can be obtained, for example, + from the ASHRAE fundamentals (ASHRAE, 1997, p. 25.18). In + the ASHRAE fundamentals, the effective air leakage area is + based on a reference pressure difference of ΔpRat = 4 Pa and a discharge + coefficient of CDCloRat = 1. + A similar model is also used in the CONTAM software (Dols and Walton, 2002). + Dols and Walton (2002) recommend to use for the flow exponent + mClo=0.6 to mClo=0.7 if the flow exponent is not + reported with the test results. +

+

+ For the open door, the air flow rate + ope is computed as described in + + AixLib.Airflow.Multizone.DoorOpen + with the parameters CDOpe and mOpe. +

+

+ The actual air flow rate is computed as +

+

+ V̇clo = (y-1) V̇clo + y V̇ope, +

+

+ where y ∈ [0, 1] is the control signal. + Note that for values of y that are different from 0 and + 1, the model simply interpolates the air flow rate between a fully open + and a fully closed door. In practice, the air flow rate would likely increase quickly if the + door is slightly opened, and hence we do not claim that the model is accurate for + values other than y = 0 and y = 1. +

+

References

+
    +
  • + ASHRAE. + ASHRAE Fundamentals, + American Society of Heating, Refrigeration and Air-Conditioning + Engineers, 1997. +
  • +
  • + Dols and Walton. + W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, + Multizone Airflow and Contaminant Transport Analysis Software, + Building and Fire Research Laboratory, + National Institute of Standards and Technology, + Tech. Report NISTIR 6921, + November, 2002. +
  • +
+ ", revisions=" -
    -
  • -January 22, 2020, by Michael Wetter:
    -Revised buoyancy-driven flow. -
  • -
  • -October 6, 2020, by Michael Wetter:
    -First implementation for -#1353. -
  • -
-")); +
    +
  • + June 11, 2021, by Michael Wetter:
    + Removed duplicate declaration of VABp_flow.
    + This is for + #1496. +
  • +
  • + January 22, 2020, by Michael Wetter:
    + Revised buoyancy-driven flow. +
  • +
  • + October 6, 2020, by Michael Wetter:
    + First implementation for + #1353. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end DoorOperable; diff --git a/AixLib/Airflow/Multizone/EffectiveAirLeakageArea.mo b/AixLib/Airflow/Multizone/EffectiveAirLeakageArea.mo index bf8c3669bc..03fd97a625 100644 --- a/AixLib/Airflow/Multizone/EffectiveAirLeakageArea.mo +++ b/AixLib/Airflow/Multizone/EffectiveAirLeakageArea.mo @@ -1,10 +1,10 @@ within AixLib.Airflow.Multizone; model EffectiveAirLeakageArea "Effective air leakage area" - extends AixLib.Airflow.Multizone.BaseClasses.PowerLawResistance( + extends AixLib.Airflow.Multizone.Coefficient_V_flow( m=0.65, - final k=L * CDRat * sqrt(2.0/rho_default) * dpRat^(0.5-m)); + final C=L * CDRat * sqrt(2.0/rho_default) * dpRat^(0.5-m)); - parameter Modelica.SIunits.PressureDifference dpRat( + parameter Modelica.Units.SI.PressureDifference dpRat( min=0, displayUnit="Pa") = 4 "Pressure drop" annotation (Dialog(group="Rating conditions")); @@ -13,10 +13,10 @@ model EffectiveAirLeakageArea "Effective air leakage area" max=1) = 1 "Discharge coefficient" annotation (Dialog(group="Rating conditions")); - parameter Modelica.SIunits.Area L(min=0) "Effective leakage area"; + parameter Modelica.Units.SI.Area L(min=0) "Effective leakage area"; + + Modelica.Units.SI.Velocity v(nominal=1) = V_flow/L "Average velocity"; -equation - v = V_flow/L; annotation (Icon(graphics={ Rectangle( extent={{-50,48},{50,-42}}, @@ -32,7 +32,7 @@ equation fillPattern=FillPattern.Solid), Text( extent={{-104,92},{-20,54}}, - lineColor={0,0,255}, + textColor={0,0,255}, pattern=LinePattern.None, fillColor={255,255,255}, fillPattern=FillPattern.Solid, @@ -40,7 +40,7 @@ equation "L=%L"), Text( extent={{22,94},{98,56}}, - lineColor={0,0,255}, + textColor={0,0,255}, pattern=LinePattern.None, fillColor={255,255,255}, fillPattern=FillPattern.Solid, @@ -72,105 +72,117 @@ equation fillPattern=FillPattern.Solid)}), defaultComponentName="lea", Documentation(info=" -

-This model describes the one-directional pressure driven -air flow through a crack-like opening, using the equation -

-

- V̇ = k Δpm, -

-

-where - is the volume flow rate, -k is a flow coefficient and -m is the flow exponent. -The flow coefficient is -

-

-k = L CD,Rat ΔpRat(0.5-m) (2/ρ0)0.5, -

-

-where -L is the effective air leakage area, -CD,Rat is the discharge coefficient at the reference condition, -ΔpRat is the pressure drop at the rating condition, and -ρ0 is the mass density at the medium default pressure, temperature and humidity. -

-

-The effective air leakage area L can be obtained, for example, -from the ASHRAE fundamentals (ASHRAE, 1997, p. 25.18). In -the ASHRAE fundamentals, the effective air leakage area is -based on a reference pressure difference of ΔpRat = 4 Pa and a discharge -coefficient of CD,Rat = 1. -A similar model is also used in the CONTAM software (Dols and Walton, 2002). -Dols and Walton (2002) recommend to use for the flow exponent -m=0.6 to m=0.7 if the flow exponent is not -reported with the test results. -

-

References

-
    -
  • -ASHRAE, 1997. -ASHRAE Fundamentals, -American Society of Heating, Refrigeration and Air-Conditioning -Engineers, 1997. -
  • -
  • -Dols and Walton, 2002. -W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, -Multizone Airflow and Contaminant Transport Analysis Software, -Building and Fire Research Laboratory, -National Institute of Standards and Technology, -Tech. Report NISTIR 6921, -November, 2002. -
  • -
-", +

+ This model describes the one-directional pressure driven + air flow through a crack-like opening, using the equation +

+

+ V̇ = C Δpm, +

+

+ where + is the volume flow rate, + C is a flow coefficient and + m is the flow exponent. + The flow coefficient is +

+

+ C = L CD,Rat ΔpRat(0.5-m) (2/ρ0)0.5, +

+

+ where + L is the effective air leakage area, + CD,Rat is the discharge coefficient at the reference condition, + ΔpRat is the pressure drop at the rating condition, and + ρ0 is the mass density at the medium default pressure, temperature and humidity. +

+

+ The effective air leakage area L can be obtained, for example, + from the ASHRAE fundamentals (ASHRAE, 1997, p. 25.18). In + the ASHRAE fundamentals, the effective air leakage area is + based on a reference pressure difference of ΔpRat = 4 Pa and a discharge + coefficient of CD,Rat = 1. + A similar model is also used in the CONTAM software (Dols and Walton, 2002). + Dols and Walton (2002) recommend to use for the flow exponent + m=0.6 to m=0.7 if the flow exponent is not + reported with the test results. +

+

References

+
    +
  • + ASHRAE, 1997. + ASHRAE Fundamentals, + American Society of Heating, Refrigeration and Air-Conditioning + Engineers, 1997. +
  • +
  • + Dols and Walton, 2002. + W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, + Multizone Airflow and Contaminant Transport Analysis Software, + Building and Fire Research Laboratory, + National Institute of Standards and Technology, + Tech. Report NISTIR 6921, + November, 2002. +
  • +
  • Michael Wetter. Multizone Airflow Model in Modelica. Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006.
  • +
+ ", revisions=" -
    -
  • -June 24, 2018, by Michael Wetter:
    -Removed parameter lWet as it is only used to compute -the Reynolds number, and the Reynolds number is not used by this model. -Also removed the variable Re for the Reynolds number.
    -Changed base class to remove the parameters A and CD -which are not used by this model.
    -This change is non-backward compatible.
    -This is for -AixLib, #932. -
  • -
  • -May 30, 2018, by Michael Wetter:
    -Improved documentation for -AixLib, #546. -
  • -
  • -April 24, 2017, by Filip Jorissen:
    -Corrected error in computation of A which was -A=CD/CDRat * L * dpRat^(0.5-m) rather than -A=CDRat/CD * L * dpRat^(0.5-m).
    -See #743. -
  • -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -October 8, 2013 by Michael Wetter:
    -Changed the parameter useConstantDensity to -useDefaultProperties to use consistent names within this package. -A conversion script can be used to update this parameter. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -February 10, 2005 by Michael Wetter:
    -Released first version. -
  • -
-")); +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + Changes due to changes in the baseclass, velocity is now a top-level variable. +
  • +
  • + June 24, 2018, by Michael Wetter:
    + Removed parameter lWet as it is only used to compute + the Reynolds number, and the Reynolds number is not used by this model. + Also removed the variable Re for the Reynolds number.
    + Changed base class to remove the parameters A and CD + which are not used by this model.
    + This change is non-backward compatible.
    + This is for + IBPSA, #932. +
  • +
  • + May 30, 2018, by Michael Wetter:
    + Improved documentation for + IBPSA, #546. +
  • +
  • + April 24, 2017, by Filip Jorissen:
    + Corrected error in computation of A which was + A=CD/CDRat * L * dpRat^(0.5-m) rather than + A=CDRat/CD * L * dpRat^(0.5-m).
    + See #743. +
  • +
  • + January 22, 2016, by Michael Wetter:
    + Corrected type declaration of pressure difference. + This is + for #404. +
  • +
  • + October 8, 2013 by Michael Wetter:
    + Changed the parameter useConstantDensity to + useDefaultProperties to use consistent names within this package. + A conversion script can be used to update this parameter. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + February 10, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end EffectiveAirLeakageArea; diff --git a/AixLib/Airflow/Multizone/Examples/CO2TransportStep.mo b/AixLib/Airflow/Multizone/Examples/CO2TransportStep.mo index 351b852354..31dd2277ba 100644 --- a/AixLib/Airflow/Multizone/Examples/CO2TransportStep.mo +++ b/AixLib/Airflow/Multizone/Examples/CO2TransportStep.mo @@ -26,8 +26,7 @@ model CO2TransportStep "Model with transport of CO2 through buoyancy driven flow nPorts=1) "CO2 source" annotation (Placement(transformation(extent={{-100,-80},{-80,-60}}))); equation - - connect(sou.m_flow_in, pulse.y) annotation (Line( + connect(sou.m_flow_in, pulse.y) annotation (Line( points={{-102.1,-70},{-119,-70}}, color={0,0,127})); connect(sou.ports[1], volWes.ports[4]) @@ -52,31 +51,32 @@ equation StopTime=86400, Tolerance=1e-6), Documentation(info=" -

-This model is based on - -Buildings.Airflow.Multizone.Validation.ThreeRoomsContam. -In addition, a CO2 source has been added to the left room -in the bottom floor. -At initial time, all volumes have zero CO2 concentration. -At t=3600 seconds, CO2 is added to volWes. -As time progresses, the CO2 is transported to -the other rooms, and eventually its concentration decays. -

-", revisions=" - -")); +

+ This model is based on + + Buildings.Airflow.Multizone.Validation.ThreeRoomsContam. + In addition, a CO2 source has been added to the left room + in the bottom floor. + At initial time, all volumes have zero CO2 concentration. + At t=3600 seconds, CO2 is added to volWes. + As time progresses, the CO2 is transported to + the other rooms, and eventually its concentration decays. +

+ ",revisions=" + + "), + __Dymola_LockedEditing="Model from IBPSA"); end CO2TransportStep; diff --git a/AixLib/Airflow/Multizone/Examples/ChimneyShaftNoVolume.mo b/AixLib/Airflow/Multizone/Examples/ChimneyShaftNoVolume.mo index 33d1be8d18..502a1c741c 100644 --- a/AixLib/Airflow/Multizone/Examples/ChimneyShaftNoVolume.mo +++ b/AixLib/Airflow/Multizone/Examples/ChimneyShaftNoVolume.mo @@ -7,7 +7,6 @@ model ChimneyShaftNoVolume AixLib.Fluid.MixingVolumes.MixingVolume roo( V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=273.15 + 20, redeclare package Medium = Medium, m_flow_nominal=0.05, @@ -150,76 +149,77 @@ equation StopTime=3600, Tolerance=1e-06), Documentation(info=" -

-This model demonstrate buoyancy-induced air flow -through a vertical shaft. -On the right, there are two flow paths that are connected -to a volume, which is kept at 20°C through a feedback -controller, and to the ambient, which is at -0°C. -The flow path on the very right consists of an orifice -and two models that compute the pressure difference -Δp -between -the bottom and top of the medium column using Δp=h ρ g, -where -h is the height of the medium column, -ρ is the density of the medium column and -g is the gravity constant. -

-

-The top model is parameterized to use the -density from the ambient, -whereas the bottom model is parameterized to use -the density from the room volume, regardless of -the flow direction. -In the other flow path, the model sha -is parameterized to use the density of the inflowing -medium. -Thus, these models can be thought of as a chimney to the left, -and a roof with a leakage on the right. The chimney height starts -1.5 m below the roof, and ends 1.5 m above the roof. -

-

-The flow boundary condition of the model -boundary is such that at the start -of the simulation, air flows from boundary -to roo until t=600 seconds. Then, the flow rate -is set to zero until t=1800 seconds. -Since the shaft sha is filled with -20°C air, there is a circulation in the clock-wise -direction; up the shaft, and down the other flow path. -Next, until t=2400 seconds, air is extracted from -the volume roo, and then the flow rate -of boundary is set to zero. Since the -shaft sha is now filed with air at 0°C, -there is a counter clock-wise flow; down the shaft, and -up the other flow path. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -February 24, 2015 by Michael Wetter:
    -Changed media to - -Modelica.Media.Air.SimpleAir -in order to test the medium column for a media that has no moisture. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model demonstrate buoyancy-induced air flow + through a vertical shaft. + On the right, there are two flow paths that are connected + to a volume, which is kept at 20°C through a feedback + controller, and to the ambient, which is at + 0°C. + The flow path on the very right consists of an orifice + and two models that compute the pressure difference + Δp + between + the bottom and top of the medium column using Δp=h ρ g, + where + h is the height of the medium column, + ρ is the density of the medium column and + g is the gravity constant. +

+

+ The top model is parameterized to use the + density from the ambient, + whereas the bottom model is parameterized to use + the density from the room volume, regardless of + the flow direction. + In the other flow path, the model sha + is parameterized to use the density of the inflowing + medium. + Thus, these models can be thought of as a chimney to the left, + and a roof with a leakage on the right. The chimney height starts + 1.5 m below the roof, and ends 1.5 m above the roof. +

+

+ The flow boundary condition of the model + boundary is such that at the start + of the simulation, air flows from boundary + to roo until t=600 seconds. Then, the flow rate + is set to zero until t=1800 seconds. + Since the shaft sha is filled with + 20°C air, there is a circulation in the clock-wise + direction; up the shaft, and down the other flow path. + Next, until t=2400 seconds, air is extracted from + the volume roo, and then the flow rate + of boundary is set to zero. Since the + shaft sha is now filed with air at 0°C, + there is a counter clock-wise flow; down the shaft, and + up the other flow path. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + February 24, 2015 by Michael Wetter:
    + Changed media to + + Modelica.Media.Air.SimpleAir + in order to test the medium column for a media that has no moisture. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ChimneyShaftNoVolume; diff --git a/AixLib/Airflow/Multizone/Examples/ChimneyShaftWithVolume.mo b/AixLib/Airflow/Multizone/Examples/ChimneyShaftWithVolume.mo index 3af80c386a..1120434b60 100644 --- a/AixLib/Airflow/Multizone/Examples/ChimneyShaftWithVolume.mo +++ b/AixLib/Airflow/Multizone/Examples/ChimneyShaftWithVolume.mo @@ -7,7 +7,6 @@ model ChimneyShaftWithVolume AixLib.Fluid.MixingVolumes.MixingVolume roo( V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=273.15 + 20, redeclare package Medium = Medium, m_flow_nominal=0.05, @@ -152,39 +151,40 @@ equation StopTime=3600, Tolerance=1e-06), Documentation(info=" -

-This model is identical to - -Buildings.Airflow.Multizone.Examples.ChimneyShaftNoVolume, -except that the chimney model is not steady-state, but rather dynamic -as it contains an air volume. The air volume is approximated -as being well-mixed. (Stratified volumes could be approximated by -using multiple instances of the model sha that are -connected in series.) -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -January 8, 2019, by Michael Wetter:
    -Removed parameter assignment for sha.m_flow_nominal.
    -This is for -#970. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model is identical to + + Buildings.Airflow.Multizone.Examples.ChimneyShaftNoVolume, + except that the chimney model is not steady-state, but rather dynamic + as it contains an air volume. The air volume is approximated + as being well-mixed. (Stratified volumes could be approximated by + using multiple instances of the model sha that are + connected in series.) +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + January 8, 2019, by Michael Wetter:
    + Removed parameter assignment for sha.m_flow_nominal.
    + This is for + #970. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ChimneyShaftWithVolume; diff --git a/AixLib/Airflow/Multizone/Examples/ClosedDoors.mo b/AixLib/Airflow/Multizone/Examples/ClosedDoors.mo index 0f442b2364..c42811fde7 100644 --- a/AixLib/Airflow/Multizone/Examples/ClosedDoors.mo +++ b/AixLib/Airflow/Multizone/Examples/ClosedDoors.mo @@ -14,7 +14,6 @@ model ClosedDoors "Model with three closed doors" V=2.5*5*5, nPorts=4, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{-80,0},{-60,20}}))); AixLib.Fluid.MixingVolumes.MixingVolume volB( @@ -22,13 +21,12 @@ model ClosedDoors "Model with three closed doors" V=2.5*5*5, nPorts=4, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{40,40},{60,60}}))); Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo "Prescribed heat flow rate boundary condition" annotation (Placement(transformation(extent={{4,40},{24,60}}))); - Modelica.Blocks.Sources.Sine sinBou(freqHz=1/3600) + Modelica.Blocks.Sources.Sine sinBou(f=1/3600) "Signal for heat flow rate boundary condition" annotation (Placement(transformation(extent={{-68,40},{-48,60}}))); Modelica.Blocks.Math.Gain gai(k=100) "Gain for heat flow boundary condition" @@ -38,7 +36,6 @@ model ClosedDoors "Model with three closed doors" V=2.5*5*5, nPorts=4, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{70,-40},{90,-20}}))); AixLib.Airflow.Multizone.DoorDiscretizedOperable dooAC( @@ -111,39 +108,40 @@ experiment(Tolerance=1e-006, StopTime=7200), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ClosedDoors.mos" "Simulate and plot"), Documentation(info=" -

-This model consists of three volumes that are connected among -each other through three doors that all have the same geometry. -All doors are closed, but they are not air-tight. -Heat is added and removed from volB which induces -a small air flow through the doors. -

-

-This model uses - -Buildings.Media.Specialized.Air.PerfectGas -as the medium because - -Buildings.Media.Air -does not account for expansion if air the air is heated. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model consists of three volumes that are connected among + each other through three doors that all have the same geometry. + All doors are closed, but they are not air-tight. + Heat is added and removed from volB which induces + a small air flow through the doors. +

+

+ This model uses + + Buildings.Media.Specialized.Air.PerfectGas + as the medium because + + Buildings.Media.Air + does not account for expansion if air the air is heated. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ClosedDoors; diff --git a/AixLib/Airflow/Multizone/Examples/NaturalVentilation.mo b/AixLib/Airflow/Multizone/Examples/NaturalVentilation.mo index d2df324043..353bcbd77f 100644 --- a/AixLib/Airflow/Multizone/Examples/NaturalVentilation.mo +++ b/AixLib/Airflow/Multizone/Examples/NaturalVentilation.mo @@ -9,7 +9,6 @@ model NaturalVentilation redeclare package Medium = Medium, V=2.5*10*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=273.15 + 18, nPorts=2, m_flow_nominal=0.001) "Control volume" @@ -42,7 +41,6 @@ model NaturalVentilation AixLib.Fluid.MixingVolumes.MixingVolume volOut( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, V=1E10, T_start=273.15 + 20, nPorts=2, @@ -89,34 +87,35 @@ experiment(Tolerance=1e-06, StopTime=7200), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/NaturalVentilation.mos" "Simulate and plot"), Documentation(info=" -

-This model illustrates buoyancy-driven natural ventilation between -two volumes of air. -The volume volA can be considered as the volume of a room, -and the volume volOut is parameterized to be very large to emulate -outside air. -The outside air is 20°C and at initial time, the room air is -18°C. -This induces an airflow in counter clock-wise direction. Since -heat is added to the room air volume, its temperature raises above the temperature of the outside, which causes the air flow to reverse its direction. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model illustrates buoyancy-driven natural ventilation between + two volumes of air. + The volume volA can be considered as the volume of a room, + and the volume volOut is parameterized to be very large to emulate + outside air. + The outside air is 20°C and at initial time, the room air is + 18°C. + This induces an airflow in counter clock-wise direction. Since + heat is added to the room air volume, its temperature raises above the temperature of the outside, which causes the air flow to reverse its direction. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end NaturalVentilation; diff --git a/AixLib/Airflow/Multizone/Examples/OneEffectiveAirLeakageArea.mo b/AixLib/Airflow/Multizone/Examples/OneEffectiveAirLeakageArea.mo index f29df41633..64ed64d43e 100644 --- a/AixLib/Airflow/Multizone/Examples/OneEffectiveAirLeakageArea.mo +++ b/AixLib/Airflow/Multizone/Examples/OneEffectiveAirLeakageArea.mo @@ -8,7 +8,6 @@ model OneEffectiveAirLeakageArea "Model with an effective air leakage area" V=2.5*5*5, nPorts=2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{20,-20},{40,0}}))); AixLib.Fluid.MixingVolumes.MixingVolume volB( @@ -16,13 +15,12 @@ model OneEffectiveAirLeakageArea "Model with an effective air leakage area" V=2.5*5*5, nPorts=1, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{70,20},{90,40}}))); Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo "Prescribed heat flow rate boundary condition" annotation (Placement(transformation(extent={{0,20},{20,40}}))); - Modelica.Blocks.Sources.Sine heaFloBou(freqHz=1/3600) + Modelica.Blocks.Sources.Sine heaFloBou(f=1/3600) "Signal for heat flow rate boundary condition" annotation (Placement(transformation(extent={{-80,20},{-60,40}}))); Modelica.Blocks.Math.Gain gai(k=100) @@ -71,29 +69,30 @@ equation StopTime=7200, Tolerance=1e-08), Documentation(info=" -

-This model consists of a model for an effective air leakage area -that is connected to two air volumes. -Air flows due to the addition of air to the volume volA -and because heat is exchanged with volB. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model consists of a model for an effective air leakage area + that is connected to two air volumes. + Air flows due to the addition of air to the volume volA + and because heat is exchanged with volB. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OneEffectiveAirLeakageArea; diff --git a/AixLib/Airflow/Multizone/Examples/OneOpenDoor.mo b/AixLib/Airflow/Multizone/Examples/OneOpenDoor.mo index 02c3615f26..93b77401a0 100644 --- a/AixLib/Airflow/Multizone/Examples/OneOpenDoor.mo +++ b/AixLib/Airflow/Multizone/Examples/OneOpenDoor.mo @@ -12,7 +12,6 @@ model OneOpenDoor "Model with one open and one closed door" redeclare package Medium = Medium, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, nPorts=4, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{-32,14},{-12,34}}))); @@ -20,16 +19,15 @@ model OneOpenDoor "Model with one open and one closed door" redeclare package Medium = Medium, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, nPorts=4, m_flow_nominal=0.01) "Control volume" annotation (Placement(transformation(extent={{60,60},{80,80}}))); Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHeaFlo "Prescribed heat flow rate boundary condition" annotation (Placement(transformation(extent={{14,60},{34,80}}))); - Modelica.Blocks.Sources.Sine heaSou(freqHz=1/3600) - "Signal for heat flow rate boundary condition" annotation (Placement( - transformation(extent={{-60,60},{-40,80}}))); + Modelica.Blocks.Sources.Sine heaSou(f=1/3600) + "Signal for heat flow rate boundary condition" + annotation (Placement(transformation(extent={{-60,60},{-40,80}}))); Modelica.Blocks.Math.Gain gai(k=100) "Gain for heat flow rate boundary condition" annotation (Placement(transformation(extent={{-20,60},{0,80}}))); @@ -84,37 +82,38 @@ equation StopTime=7200, Tolerance=1e-06), Documentation(info=" -

-This model consists of two doors with the same geometry. -For t ≤ 1000 seconds, the door dooOpeClo -is closed, and afterwards it is open. The door -dooOpe is always open. -Heat is added to the volume volB, which causes -a density difference between volA and volB. -This density difference induces a bi-directional airflow through both doors. -Both doors have exactly the same bi-directional airflow rates. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -October 8, 2013, by Michael Wetter:
    -Removed parameter show_V_flow. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model consists of two doors with the same geometry. + For t ≤ 1000 seconds, the door dooOpeClo + is closed, and afterwards it is open. The door + dooOpe is always open. + Heat is added to the volume volB, which causes + a density difference between volA and volB. + This density difference induces a bi-directional airflow through both doors. + Both doors have exactly the same bi-directional airflow rates. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + October 8, 2013, by Michael Wetter:
    + Removed parameter show_V_flow. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OneOpenDoor; diff --git a/AixLib/Airflow/Multizone/Examples/OneRoom.mo b/AixLib/Airflow/Multizone/Examples/OneRoom.mo index 71aec86c9a..b300fedb64 100644 --- a/AixLib/Airflow/Multizone/Examples/OneRoom.mo +++ b/AixLib/Airflow/Multizone/Examples/OneRoom.mo @@ -48,8 +48,7 @@ model OneRoom V=1E12, p_start=Medium.p_default, nPorts=2, - m_flow_nominal=0.001, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) + m_flow_nominal=0.001) "Control volume for outside" annotation ( Placement(transformation( extent={{-10,-10},{10,10}}, @@ -102,29 +101,30 @@ experiment(Tolerance=1e-06, StopTime=1), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/OneRoom.mos" "Simulate and plot"), Documentation(info=" -

-This model has been used to validate buoyancy-driven air flow between two volumes. -The volume volEas is at 20°C and the volume -volOut is at 10°C. -This initial condition induces a clock-wise airflow between the two volumes. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model has been used to validate buoyancy-driven air flow between two volumes. + The volume volEas is at 20°C and the volume + volOut is at 10°C. + This initial condition induces a clock-wise airflow between the two volumes. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OneRoom; diff --git a/AixLib/Airflow/Multizone/Examples/Orifice.mo b/AixLib/Airflow/Multizone/Examples/Orifice.mo index 0b822df9ff..0c4239e48c 100644 --- a/AixLib/Airflow/Multizone/Examples/Orifice.mo +++ b/AixLib/Airflow/Multizone/Examples/Orifice.mo @@ -67,29 +67,30 @@ experiment(Tolerance=1e-06, StopTime=1), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/Orifice.mos" "Simulate and plot"), Documentation(info=" -

-This model demonstrates the use of the orifice model. -The pressure difference across the orifice model changes -between -1 Pascal and +1 Pascal, which -causes air to flow through the orifice. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model demonstrates the use of the orifice model. + The pressure difference across the orifice model changes + between -1 Pascal and +1 Pascal, which + causes air to flow through the orifice. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end Orifice; diff --git a/AixLib/Airflow/Multizone/Examples/PowerLaw.mo b/AixLib/Airflow/Multizone/Examples/PowerLaw.mo new file mode 100644 index 0000000000..7849759fe9 --- /dev/null +++ b/AixLib/Airflow/Multizone/Examples/PowerLaw.mo @@ -0,0 +1,126 @@ +within AixLib.Airflow.Multizone.Examples; +model PowerLaw "Model with powerlaw models" + extends Modelica.Icons.Example; + package Medium = AixLib.Media.Air; + Coefficient_m_flow pow_m_flow( + redeclare package Medium = Medium, + m=0.59, + k=3.33e-5) "Mass flow rate based on powerlaw, direct input for m and C" + annotation (Placement(transformation(extent={{-10,80},{10,100}}))); + AixLib.Fluid.Sources.Boundary_pT roo1( + redeclare package Medium = Medium, + use_p_in=true, + nPorts=1, + T=278.15) "Room 1" + annotation (Placement(transformation(extent={{-100,60},{-80,80}}))); + AixLib.Fluid.Sources.Boundary_pT roo2( + redeclare package Medium = Medium, + use_p_in=true, + nPorts=1, + T=293.15) "Room 2" + annotation (Placement(transformation( + origin={90,70}, + extent={{-10,-10},{10,10}}, + rotation=180))); + Modelica.Blocks.Sources.Ramp ramp1( + duration=0.5, + height=6, + offset=-3, + startTime=0.25) "Ramp" + annotation (Placement(transformation(extent={{0,-100},{20,-80}}))); + Modelica.Blocks.Sources.Constant pressure(k=100000) "Pressure" + annotation (Placement(transformation(extent={{-110,-80},{-90,-60}}))); + Modelica.Blocks.Math.Add add "Add" + annotation (Placement(transformation(extent={{40,-86},{60,-66}}))); + AixLib.Fluid.Sensors.DensityTwoPort den1( + redeclare package Medium = Medium, + m_flow_nominal=0.1, + tau=0, + initType=Modelica.Blocks.Types.Init.InitialState) "Density sensor" + annotation (Placement(transformation(extent={{-60,60},{-40,80}}))); + AixLib.Fluid.Sensors.DensityTwoPort den2( + redeclare package Medium = Medium, + m_flow_nominal=0.1, + tau=0, + initType=Modelica.Blocks.Types.Init.InitialState) "Density sensor" + annotation (Placement(transformation(extent={{40,60},{60,80}}))); + Coefficient_V_flow pow_V_flow( + redeclare package Medium = Medium, + m=0.59, + C=3.33e-5/1.2) + "Volume flow rate based on powerlaw, direct input for m and C" + annotation (Placement(transformation(extent={{-10,40},{10,60}}))); + Point_m_flow pow_1dat( + redeclare package Medium = Medium, + dpMea_nominal = 50, + m=0.59, + mMea_flow_nominal=1.2/3600) + "Mass flow rate based on powerlaw, input of m and 1 test data point." + annotation (Placement(transformation(extent={{-10,0},{10,20}}))); + Points_m_flow pow_2dat( + redeclare package Medium = Medium, + dpMea_nominal = {1, 50}, + mMea_flow_nominal={0.12, 1.2}/3600) + "Mass flow rate based on powerlaw, input of 2 test data points." + annotation (Placement(transformation(extent={{-10,-40},{10,-20}}))); +equation + connect(pressure.y, add.u1) + annotation (Line(points={{-89,-70},{38,-70}}, color={0,0,255})); + connect(ramp1.y, add.u2) annotation (Line(points={{21,-90},{26,-90},{26,-82},{ + 38,-82}}, color={0,0,255})); + connect(pressure.y, roo1.p_in) annotation (Line(points={{-89,-70},{-50,-70},{ + -50,-40},{-110,-40},{-110,78},{-102,78}}, + color={0,0,127})); + connect(add.y, roo2.p_in) annotation (Line(points={{61,-76},{112,-76},{112,62}, + {102,62}}, color={0,0,127})); + connect(roo1.ports[1], den1.port_a) annotation (Line( + points={{-80,70},{-60,70}}, + color={0,127,255})); + connect(den1.port_b, pow_m_flow.port_a) + annotation (Line(points={{-40,70},{-40,90},{-10,90}}, + color={0,127,255})); + connect(pow_m_flow.port_b, den2.port_a) + annotation (Line(points={{10,90},{40,90},{40,70}}, + color={0,127,255})); + connect(den2.port_b, roo2.ports[1]) annotation (Line( + points={{60,70},{80,70}}, + color={0,127,255})); + connect(den1.port_b, pow_V_flow.port_a) annotation (Line(points={{-40,70},{-40, + 50},{-10,50}}, color={0,127,255})); + connect(pow_V_flow.port_b, den2.port_a) annotation (Line(points={{10,50},{40,50}, + {40,70}}, color={0,127,255})); + connect(den1.port_b, pow_1dat.port_a) annotation (Line(points={{-40,70},{ + -40,10},{-10,10}}, color={0,127,255})); + connect(den1.port_b, pow_2dat.port_a) + annotation (Line(points={{-40,70},{-40,-30},{-10,-30}},color={0,127,255})); + connect(pow_1dat.port_b, den2.port_a) annotation (Line(points={{10,10},{40, + 10},{40,70}}, color={0,127,255})); + connect(pow_2dat.port_b, den2.port_a) + annotation (Line(points={{10,-30},{40,-30},{40,70}}, color={0,127,255})); + annotation ( +experiment( + StopTime=1, + Tolerance=1e-06), + __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/PowerLaw.mos" + "Simulate and plot"), + Documentation(info=" +

+ This model demonstrates the use of the 4 PowerLaw models present in the multizone package. + The input data is fit so that all models have equivalent output. + + The pressure difference across the models changes + between -1 Pascal and +1 Pascal, which + causes air to flow through the orifice. +

+ ",revisions=" +
    +
  • + May 3, 2021 by Klaas De Jonge:
    + Added example for the four 'Powerlaw' models in the Multizone package. +
  • + +
+ "), + Diagram(coordinateSystem(extent={{-120,-120},{120,100}})), + __Dymola_LockedEditing="Model from IBPSA"); +end PowerLaw; diff --git a/AixLib/Airflow/Multizone/Examples/PressurizationData.mo b/AixLib/Airflow/Multizone/Examples/PressurizationData.mo new file mode 100644 index 0000000000..8538067596 --- /dev/null +++ b/AixLib/Airflow/Multizone/Examples/PressurizationData.mo @@ -0,0 +1,106 @@ +within AixLib.Airflow.Multizone.Examples; +model PressurizationData + "Model showing how the 'Powerlaw_1DataPoint' model can be used when data is available from a pressurization test." + extends Modelica.Icons.Example; + package Medium = AixLib.Media.Air; + + parameter Real n50=3 "ACH50, air changes at 50 Pa"; + + BoundaryConditions.WeatherData.ReaderTMY3 weaDat( + filNam=Modelica.Utilities.Files.loadResource("modelica://AixLib/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")) + annotation (Placement(transformation(extent={{-88,0},{-68,20}}))); + Fluid.Sources.Outside_CpLowRise west( + redeclare package Medium = Medium, + s=5, + azi=AixLib.Types.Azimuth.W, + Cp0=0.6, + nPorts=1) "Model with outside conditions" + annotation (Placement(transformation(extent={{82,0},{62,20}}))); + Fluid.Sources.Outside_CpLowRise east( + redeclare package Medium = Medium, + s=5, + azi=AixLib.Types.Azimuth.E, + Cp0=0.6, + nPorts=1) "Model with outside conditions" + annotation (Placement(transformation(extent={{-60,0},{-40,20}}))); + Fluid.MixingVolumes.MixingVolume room( + redeclare package Medium = Medium, + V=2.5*5*5, + nPorts=2, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + m_flow_nominal=0.01) "Room model" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + AixLib.Airflow.Multizone.Point_m_flow pow_1dat( + dpMea_nominal(displayUnit="Pa") = 50, + redeclare package Medium = Medium, + m=0.66, + mMea_flow_nominal=0.5*(room.V*n50*1.2)) + "Crack in envelope representing 50% of the leakage area" + annotation (Placement(transformation(extent={{-30,0},{-10,20}}))); + AixLib.Airflow.Multizone.Point_m_flow pow_1dat1( + dpMea_nominal(displayUnit="Pa") = 50, + redeclare package Medium = Medium, + m=0.66, + mMea_flow_nominal=0.5*(room.V*n50*1.2)) + "Crack in envelope representing 50% of the leakage area" + annotation (Placement(transformation(extent={{30,0},{50,20}}))); +equation + connect(weaDat.weaBus, west.weaBus) annotation (Line( + points={{-68,10},{-64,10},{-64,-24},{82,-24},{82,10.2}}, + color={255,204,51}, + thickness=0.5)); + connect(east.weaBus, weaDat.weaBus) annotation (Line( + points={{-60,10.2},{-60,10},{-68,10}}, + color={255,204,51}, + thickness=0.5)); + connect(east.ports[1], pow_1dat.port_a) + annotation (Line(points={{-40,10},{-30,10}}, color={0,127,255})); + connect(pow_1dat.port_b,room. ports[1]) + annotation (Line(points={{-10,10},{9,10},{9,20}}, color={0,127,255})); + connect(pow_1dat1.port_a,room. ports[2]) + annotation (Line(points={{30,10},{11,10},{11,20}}, color={0,127,255})); + connect(pow_1dat1.port_b, west.ports[1]) + annotation (Line(points={{50,10},{62,10}}, color={0,127,255})); + annotation (__Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/PressurizationData.mos" + "Simulate and plot"), + experiment( + StopTime=2592000, + Tolerance=1e-06), + Documentation(info=" +

+ This model illustrates the use of + + AixLib.Airflow.Multizone.Point_m_flow + to model + infiltration through the building evelope for a known n50 value (also known as ACH50). + As the n50 value and the building volume is known, + the flow at 50 Pa is known. Dividing this flow accross the entire envelope + (typically surface weighted) and using + + AixLib.Airflow.Multizone.Point_m_flow, + the infiltration airflow at lower pressure differences can be modelled. +
+ In this example, the two models each represent 50% of the surface where airflow occured due to the pressurization test. +

+ ",revisions=" +
    +
  • + April 8, 2022, by Michael Wetter:
    + Changed tolerance from 1E-8 to 1E-6.
    + This is for + IBPSA, #1606. +
  • +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + May 03, 2021 by Klaas De Jonge:
    + Added example for simulating infiltration airflow using the Powerlaw_1DataPoint model +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); +end PressurizationData; diff --git a/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy.mo b/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy.mo index 145d036a04..e880841e29 100644 --- a/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy.mo +++ b/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy.mo @@ -6,7 +6,6 @@ model ReverseBuoyancy AixLib.Fluid.MixingVolumes.MixingVolume volBotEas( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, V=2.5*5*5, T_start=273.15 + 25, nPorts=5, @@ -86,7 +85,6 @@ model ReverseBuoyancy redeclare package Medium = Medium, m_flow_nominal=1.2, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, tau=2.5*5*5, T_start=273.15 + 22, nPorts=3, @@ -119,7 +117,6 @@ model ReverseBuoyancy AixLib.Fluid.MixingVolumes.MixingVolume volTopEas( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, V=2.5*5*10, T_start=273.15 + 21, nPorts=3, @@ -128,7 +125,6 @@ model ReverseBuoyancy AixLib.Fluid.MixingVolumes.MixingVolume volTopWes( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=273.15 + 20, V=2.5*5*10, nPorts=3, @@ -258,42 +254,43 @@ experiment(Tolerance=1e-06, StopTime=3600), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ReverseBuoyancy.mos" "Simulate and plot"), Documentation(info=" -

-This model is similar than - -AixLib.Airflow.Multizone.Validation.ThreeRoomsContam but it has four -instead of three rooms. -The outdoor conditions are held constant at 10°C and -atmospheric pressure. -All four rooms are at different temperatures, with the rooms on the bottom -floor being initially at a higher temperature than the rooms on the top floor. -As time progresses, the temperatures of the two rooms on the respective floors -asymptotically approach each other. The bottom floor eventually cools below -the temperature of the top floor, because the -bottom floor directly exchanges air with the outside. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -May 15, 2019, by Jianjun Hu:
    -Replaced fluid source. This is for - #1072. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model is similar than + + AixLib.Airflow.Multizone.Validation.ThreeRoomsContam but it has four + instead of three rooms. + The outdoor conditions are held constant at 10°C and + atmospheric pressure. + All four rooms are at different temperatures, with the rooms on the bottom + floor being initially at a higher temperature than the rooms on the top floor. + As time progresses, the temperatures of the two rooms on the respective floors + asymptotically approach each other. The bottom floor eventually cools below + the temperature of the top floor, because the + bottom floor directly exchanges air with the outside. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + May 15, 2019, by Jianjun Hu:
    + Replaced fluid source. This is for + #1072. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ReverseBuoyancy; diff --git a/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mo b/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mo index 1de5432b17..db190edb88 100644 --- a/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mo +++ b/AixLib/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mo @@ -6,7 +6,6 @@ model ReverseBuoyancy3Zones AixLib.Fluid.MixingVolumes.MixingVolume volEas( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, V=2.5*5*5, T_start=273.15 + 25, nPorts=5, @@ -39,7 +38,6 @@ model ReverseBuoyancy3Zones AixLib.Fluid.MixingVolumes.MixingVolume volOut( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, V=1E12, T_start=273.15 + 15, nPorts=2, @@ -118,7 +116,6 @@ model ReverseBuoyancy3Zones AixLib.Fluid.MixingVolumes.MixingVolume volTop( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=273.15 + 20, m_flow_nominal=0.001, V=2.5*10*10, @@ -127,7 +124,6 @@ model ReverseBuoyancy3Zones AixLib.Fluid.MixingVolumes.MixingVolume volWes( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, V=2.5*5*5, T_start=273.15 + 22, nPorts=3, @@ -213,44 +209,45 @@ experiment(Tolerance=1e-06, StopTime=3600), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mos" "Simulate and plot"), Documentation(revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-", info=" -

-This model is similar than - -AixLib.Airflow.Multizone.Validation.ThreeRoomsContam. -However, the initial temperatures are such that at the start of the -simulation, the flow direction between the three rooms reverses direction. -

-

-At the start of the simulation, -the outdoor temperature is 15°C, -and the temperatures of the volumes are -20°C at the top, -22°C at the bottom west and -25°C at the bottom east. -Thus, initially there is a net flow circulation in the counter-clock -direction. -Because the volume on the east exchanges air with the outside, -it cools down fast. Once it cooled down sufficiently, -the flow direction between the three rooms reverses -because the air in the bottom east is heaviest. -

-")); +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ ",info=" +

+ This model is similar than + + AixLib.Airflow.Multizone.Validation.ThreeRoomsContam. + However, the initial temperatures are such that at the start of the + simulation, the flow direction between the three rooms reverses direction. +

+

+ At the start of the simulation, + the outdoor temperature is 15°C, + and the temperatures of the volumes are + 20°C at the top, + 22°C at the bottom west and + 25°C at the bottom east. + Thus, initially there is a net flow circulation in the counter-clock + direction. + Because the volume on the east exchanges air with the outside, + it cools down fast. Once it cooled down sufficiently, + the flow direction between the three rooms reverses + because the air in the bottom east is heaviest. +

+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ReverseBuoyancy3Zones; diff --git a/AixLib/Airflow/Multizone/Examples/TrickleVent.mo b/AixLib/Airflow/Multizone/Examples/TrickleVent.mo new file mode 100644 index 0000000000..8cc57e3429 --- /dev/null +++ b/AixLib/Airflow/Multizone/Examples/TrickleVent.mo @@ -0,0 +1,132 @@ +within AixLib.Airflow.Multizone.Examples; +model TrickleVent + "Model with a trickle vent modelled using the models with flow based on tabulated data" + extends Modelica.Icons.Example; + package Medium = AixLib.Media.Air; + + BoundaryConditions.WeatherData.ReaderTMY3 weaDat( + filNam=Modelica.Utilities.Files.loadResource( + "modelica://AixLib/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos")) + "Weather data reader" + annotation (Placement(transformation(extent={{-90,-40},{-70,-20}}))); + Fluid.Sources.Outside_CpLowRise west( + redeclare package Medium = Medium, + s=5, + azi=AixLib.Types.Azimuth.W, + Cp0=0.6, + nPorts=1) "Model with outside conditions" + annotation (Placement(transformation(extent={{90,-40},{70,-20}}))); + Fluid.Sources.Outside_CpLowRise east( + redeclare package Medium = Medium, + s=5, + azi=AixLib.Types.Azimuth.E, + Cp0=0.6, + nPorts=1) "Model with outside conditions" + annotation (Placement(transformation(extent={{-50,-40},{-30,-20}}))); + Fluid.MixingVolumes.MixingVolume room( + redeclare package Medium = Medium, + V=2.5*5*5, + nPorts=2, + energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, + m_flow_nominal=0.01) "Room model" + annotation (Placement(transformation(extent={{10,-20},{30,0}}))); + Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHea + "Prescribed heat flow" annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=270, + origin={30,50}))); + Modelica.Blocks.Continuous.LimPID con( + Td=10, + yMax=1, + yMin=-1, + Ti=60, + controllerType=Modelica.Blocks.Types.SimpleController.P, + k=5) "Controller to maintain volume temperature" + annotation (Placement(transformation(extent={{-40,60},{-20,80}}))); + Modelica.Blocks.Sources.Constant TSet(k=293.15) "Temperature set point" + annotation (Placement(transformation(extent={{-80,60},{-60,80}}))); + Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temSen + "Temperature sensor" annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + origin={-50,40}))); + Modelica.Blocks.Math.Gain gain(k=3000) "Gain block" + annotation (Placement(transformation(extent={{0,60},{20,80}}))); + AixLib.Airflow.Multizone.Table_m_flow tabDat_m_flow( + redeclare package Medium = Medium, + dpMea_nominal = {-50, -25, -10, -5, -3, -2, -1, 0, 1, 2, 3, 4.5, 50}, + mMea_flow_nominal = {-0.08709, -0.06158, -0.03895, -0.02754, -0.02133, -0.01742, -0.01232, 0, 0.01232, 0.01742, 0.02133, 0.02613, 0.02614}) + "Self regulating trickle vent" + annotation (Placement(transformation(extent={{-20,-40},{0,-20}}))); + AixLib.Airflow.Multizone.Table_V_flow tabDat_V_flow( + redeclare package Medium = Medium, + dpMea_nominal = {-50, -25, -10, -5, -3, -2, -1, 0, 1, 2, 3, 4.5, 50}, + VMea_flow_nominal = {-0.104508, -0.073896, -0.04674, -0.033048, -0.025596, -0.020904, -0.014784, 0, 0.014784, 0.020904, 0.025596, 0.031356, 0.031368}) + "Self regulating trickle vent" + annotation (Placement(transformation(extent={{40,-40},{60,-20}}))); +equation + connect(weaDat.weaBus, west.weaBus) annotation (Line( + points={{-70,-30},{-50,-30},{-50,-60},{90,-60},{90,-29.8}}, + color={255,204,51}, + thickness=0.5)); + connect(east.weaBus, weaDat.weaBus) annotation (Line( + points={{-50,-29.8},{-50,-30},{-70,-30}}, + color={255,204,51}, + thickness=0.5)); + connect(TSet.y,con. u_s) annotation (Line( + points={{-59,70},{-42,70}}, + color={0,0,127})); + connect(temSen.T,con. u_m) annotation (Line( + points={{-39,40},{-30,40},{-30,58}}, + color={0,0,127})); + connect(gain.u,con. y) annotation (Line( + points={{-2,70},{-19,70}}, + color={0,0,127})); + connect(gain.y,preHea. Q_flow) annotation (Line( + points={{21,70},{30,70},{30,60}}, + color={0,0,127})); + connect(room.heatPort, temSen.port) annotation (Line(points={{10,-10},{10,20}, + {-60,20},{-60,40}}, color={191,0,0})); + connect(preHea.port,room. heatPort) annotation (Line(points={{30,40},{30,20}, + {10,20},{10,-10}}, color={191,0,0})); + connect(east.ports[1], tabDat_m_flow.port_a) + annotation (Line(points={{-30,-30},{-20,-30}}, color={0,127,255})); + connect(tabDat_m_flow.port_b,room. ports[1]) + annotation (Line(points={{0,-30},{19,-30},{19,-20}}, color={0,127,255})); + connect(tabDat_V_flow.port_a,room. ports[2]) annotation (Line(points={{40,-30},{24, + -30},{24,-20},{21,-20}}, color={0,127,255})); + connect(tabDat_V_flow.port_b, west.ports[1]) + annotation (Line(points={{60,-30},{70,-30}}, color={0,127,255})); + annotation (__Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/TrickleVent.mos" + "Simulate and plot"), + experiment( + StopTime=2592000, + Interval=600, + Tolerance=1e-06), + Documentation(info=" +

+ This model illustrates the use of the models + + AixLib.Airflow.Multizone.Table_V_flow + and + + AixLib.Airflow.Multizone.Table_m_flow + to model self regulating inlet vents. + The models are connected to a common volume that emulates a room on one side and + to outside conditions on the other side (east and west orientation respectively). +

+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + May 03, 2021 by Klaas De Jonge:
    + Added example for simulating a trickle vent using the TableData models +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); +end TrickleVent; diff --git a/AixLib/Airflow/Multizone/Examples/ZonalFlow.mo b/AixLib/Airflow/Multizone/Examples/ZonalFlow.mo index 3fa7ce34ac..00421bde3b 100644 --- a/AixLib/Airflow/Multizone/Examples/ZonalFlow.mo +++ b/AixLib/Airflow/Multizone/Examples/ZonalFlow.mo @@ -2,8 +2,8 @@ within AixLib.Airflow.Multizone.Examples; model ZonalFlow "Model with prescribed air exchange between two volumes" extends Modelica.Icons.Example; package Medium = AixLib.Media.Air; - parameter Modelica.SIunits.Volume volA=100 "Volume of room A"; - parameter Modelica.SIunits.Volume volB=1 "Volume of room B"; + parameter Modelica.Units.SI.Volume volA=100 "Volume of room A"; + parameter Modelica.Units.SI.Volume volB=1 "Volume of room B"; AixLib.Fluid.MixingVolumes.MixingVolume rooA( V=volA, redeclare package Medium = Medium, @@ -66,40 +66,41 @@ experiment(Tolerance=1e-06, StopTime=3600), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ZonalFlow.mos" "Simulate and plot"), Documentation(info=" -

-This example illustrates the use of the models that -exchange a prescribed flow rate between the -volumes that are attached to it. -The block ACS prescribes the air exchange rate to -5 air changes per hour. -The instance zonFlo takes as an input the air change per seconds, -and the instance floExc takes as inputs the mass flow rate. -For both instances, the air flows from -rooA to rooB, and -from rooB to rooA. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -May 30, 2018, by Michael Wetter:
    -Added example for instace of -AixLib.Airflow.Multizone.ZonalFlow_m_flow. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This example illustrates the use of the models that + exchange a prescribed flow rate between the + volumes that are attached to it. + The block ACS prescribes the air exchange rate to + 5 air changes per hour. + The instance zonFlo takes as an input the air change per seconds, + and the instance floExc takes as inputs the mass flow rate. + For both instances, the air flows from + rooA to rooB, and + from rooB to rooA. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + May 30, 2018, by Michael Wetter:
    + Added example for instace of + AixLib.Airflow.Multizone.ZonalFlow_m_flow. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ZonalFlow; diff --git a/AixLib/Airflow/Multizone/Examples/package.order b/AixLib/Airflow/Multizone/Examples/package.order index 4eb9e1f851..162a3ed47f 100644 --- a/AixLib/Airflow/Multizone/Examples/package.order +++ b/AixLib/Airflow/Multizone/Examples/package.order @@ -7,6 +7,9 @@ OneEffectiveAirLeakageArea OneOpenDoor OneRoom Orifice +PowerLaw +PressurizationData ReverseBuoyancy ReverseBuoyancy3Zones +TrickleVent ZonalFlow diff --git a/AixLib/Airflow/Multizone/MediumColumn.mo b/AixLib/Airflow/Multizone/MediumColumn.mo index f2981bf02d..04d7246476 100644 --- a/AixLib/Airflow/Multizone/MediumColumn.mo +++ b/AixLib/Airflow/Multizone/MediumColumn.mo @@ -7,7 +7,7 @@ model MediumColumn annotation (choices( choice(redeclare package Medium = AixLib.Media.Air "Moist air"))); - parameter Modelica.SIunits.Length h(min=0) = 3 "Height of shaft"; + parameter Modelica.Units.SI.Length h(min=0) = 3 "Height of shaft"; parameter AixLib.Airflow.Multizone.Types.densitySelection densitySelection "Select how to pick density" annotation (Evaluate=true); @@ -24,13 +24,13 @@ model MediumColumn "Fluid connector b (positive design flow direction is from port_a to port_b)" annotation (Placement(transformation(extent={{10,-110},{-10,-90}}), iconTransformation(extent={{10,-110},{-10,-90}}))); - Modelica.SIunits.VolumeFlowRate V_flow + Modelica.Units.SI.VolumeFlowRate V_flow "Volume flow rate at inflowing port (positive when flow from port_a to port_b)"; - Modelica.SIunits.MassFlowRate m_flow + Modelica.Units.SI.MassFlowRate m_flow "Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction)"; - Modelica.SIunits.PressureDifference dp(displayUnit="Pa") + Modelica.Units.SI.PressureDifference dp(displayUnit="Pa") "Pressure difference between port_a and port_b"; - Modelica.SIunits.Density rho "Density in medium column"; + Modelica.Units.SI.Density rho "Density in medium column"; protected Medium.ThermodynamicState sta_a=Medium.setState_phX( port_a.p, @@ -102,15 +102,15 @@ equation points={{0,100},{0,-100},{0,-98}}), Text( extent={{24,-78},{106,-100}}, - lineColor={0,0,127}, + textColor={0,0,127}, textString="Bottom"), Text( extent={{32,104},{98,70}}, - lineColor={0,0,127}, + textColor={0,0,127}, textString="Top"), Text( extent={{36,26},{88,-10}}, - lineColor={0,0,127}, + textColor={0,0,127}, fillColor={255,0,0}, fillPattern=FillPattern.Solid, textString="h=%h"), @@ -155,115 +155,116 @@ equation lineColor={0,0,0})}), defaultComponentName="col", Documentation(info=" -

-This model describes the pressure difference of a vertical medium -column. It can be used to model the pressure difference caused by -stack effect. -

-

Typical use and important parameters

-

-The model can be used with the following three configurations, which are -controlled by the setting of the parameter densitySelection: -

-
    -
  • -top: -Use this setting to use the density from the volume that is connected -to port_a. -
  • -
  • -bottom: -Use this setting to use the density from the volume that is connected -to port_b. -
  • -
  • -actual: -Use this setting to use the density based on the actual flow direction. -
  • -
-

-The settings top and bottom -should be used when rooms or different floors of a building are -connected since multizone airflow models assume that each floor is completely mixed. -For these two seetings, this model will compute the pressure between the center of the room -and an opening that is at height h relative to the center of the room. -The setting actual may be used to model a chimney in which -a column of air will change its density based on the flow direction. -

-

-In this model, the parameter h must always be positive, and the port port_a must be -at the top of the column. -

-

Dynamics

-

-For a dynamic model, use - -AixLib.Airflow.Multizone.MediumColumnDynamic instead of this model. -

-", +

+ This model describes the pressure difference of a vertical medium + column. It can be used to model the pressure difference caused by + stack effect. +

+

Typical use and important parameters

+

+ The model can be used with the following three configurations, which are + controlled by the setting of the parameter densitySelection: +

+
    +
  • + top: + Use this setting to use the density from the volume that is connected + to port_a. +
  • +
  • + bottom: + Use this setting to use the density from the volume that is connected + to port_b. +
  • +
  • + actual: + Use this setting to use the density based on the actual flow direction. +
  • +
+

+ The settings top and bottom + should be used when rooms or different floors of a building are + connected since multizone airflow models assume that each floor is completely mixed. + For these two seetings, this model will compute the pressure between the center of the room + and an opening that is at height h relative to the center of the room. + The setting actual may be used to model a chimney in which + a column of air will change its density based on the flow direction. +

+

+ In this model, the parameter h must always be positive, and the port port_a must be + at the top of the column. +

+

Dynamics

+

+ For a dynamic model, use + + AixLib.Airflow.Multizone.MediumColumnDynamic instead of this model. +

+ ", revisions=" -
    -
  • -January 18, 2019, by Jianjun Hu:
    -Limited the media choice to moist air only. -See #1050. -
  • -
  • -May 1, 2018, by Filip Jorissen:
    -Removed declaration of allowFlowReversal -and changed default density computation such -that it assumes a constant pressure. -See #877. -
  • -
  • -November 3, 2016, by Michael Wetter:
    -Removed start values for mass flow rate and pressure difference -to simplify the parameter window.
    -This is for -#552. -
  • -
  • -January 22, 2016, by Michael Wetter:
    -Corrected type declaration of pressure difference. -This is -for #404. -
  • -
  • -February 24, 2015 by Michael Wetter:
    -Changed model to use - -AixLib.Utilities.Psychrometrics.Functions.density_pTX -for the density computation -as - -AixLib.Media.Air.density -does not depend on temperature. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • October 4, 2014 by Michael Wetter:
    -Removed assignment of port_?.p.nominal to avoid a warning in OpenModelica because -alias sets have different nominal values. -
  • -
  • April 17, 2013 by Michael Wetter:
    -Reformulated the assert statement that checks for the correct value of densitySelection. -
  • -
  • July 28, 2010 by Michael Wetter:
    -Changed sign for pressure difference. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -Reimplemented assignment of density based on flow direction or based on outflowing state. -
  • -
  • -February 24, 2005 by Michael Wetter:
    -Released first version. -
  • -
-")); +
    +
  • + January 18, 2019, by Jianjun Hu:
    + Limited the media choice to moist air only. + See #1050. +
  • +
  • + May 1, 2018, by Filip Jorissen:
    + Removed declaration of allowFlowReversal + and changed default density computation such + that it assumes a constant pressure. + See #877. +
  • +
  • + November 3, 2016, by Michael Wetter:
    + Removed start values for mass flow rate and pressure difference + to simplify the parameter window.
    + This is for + #552. +
  • +
  • + January 22, 2016, by Michael Wetter:
    + Corrected type declaration of pressure difference. + This is + for #404. +
  • +
  • + February 24, 2015 by Michael Wetter:
    + Changed model to use + + AixLib.Utilities.Psychrometrics.Functions.density_pTX + for the density computation + as + + AixLib.Media.Air.density + does not depend on temperature. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • October 4, 2014 by Michael Wetter:
    + Removed assignment of port_?.p.nominal to avoid a warning in OpenModelica because + alias sets have different nominal values. +
  • +
  • April 17, 2013 by Michael Wetter:
    + Reformulated the assert statement that checks for the correct value of densitySelection. +
  • +
  • July 28, 2010 by Michael Wetter:
    + Changed sign for pressure difference. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. + Reimplemented assignment of density based on flow direction or based on outflowing state. +
  • +
  • + February 24, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end MediumColumn; diff --git a/AixLib/Airflow/Multizone/MediumColumnDynamic.mo b/AixLib/Airflow/Multizone/MediumColumnDynamic.mo index 5608465328..44031c441b 100644 --- a/AixLib/Airflow/Multizone/MediumColumnDynamic.mo +++ b/AixLib/Airflow/Multizone/MediumColumnDynamic.mo @@ -1,14 +1,15 @@ within AixLib.Airflow.Multizone; model MediumColumnDynamic "Vertical shaft with no friction and storage of heat and mass" - extends AixLib.Fluid.Interfaces.LumpedVolumeDeclarations; + extends AixLib.Fluid.Interfaces.LumpedVolumeDeclarations( + final massDynamics=energyDynamics); replaceable package Medium = Modelica.Media.Interfaces.PartialMedium "Medium in the component" annotation (choices( choice(redeclare package Medium = AixLib.Media.Air "Moist air"))); - parameter Modelica.SIunits.Length h(min=0) = 3 "Height of shaft"; + parameter Modelica.Units.SI.Length h(min=0) = 3 "Height of shaft"; Modelica.Fluid.Interfaces.FluidPort_a port_a( redeclare final package Medium = Medium, @@ -22,7 +23,7 @@ model MediumColumnDynamic "Fluid connector b (positive design flow direction is from port_a to port_b)" annotation (Placement(transformation(extent={{10,-110},{-10,-90}}), iconTransformation(extent={{10,-110},{-10,-90}}))); - parameter Modelica.SIunits.Volume V "Volume in medium shaft"; + parameter Modelica.Units.SI.Volume V "Volume in medium shaft"; // Heat transfer through boundary parameter Boolean use_HeatTransfer = false @@ -96,15 +97,15 @@ equation points={{0,100},{0,-100},{0,-98}}), Text( extent={{24,-78},{106,-100}}, - lineColor={0,0,127}, + textColor={0,0,127}, textString="Bottom"), Text( extent={{32,104},{98,70}}, - lineColor={0,0,127}, + textColor={0,0,127}, textString="Top"), Text( extent={{42,26},{94,-10}}, - lineColor={0,0,127}, + textColor={0,0,127}, fillColor={255,0,0}, fillPattern=FillPattern.Solid, textString="h=%h"), @@ -153,69 +154,76 @@ equation color={255,0,0})}), defaultComponentName="col", Documentation(info=" -

-This model contains a completely mixed fluid volume and -models that take into account the pressure difference of -a medium column that is at the same temperature as the -fluid volume. It can be used to model the pressure difference -caused by a stack effect. -

-

Typical use and important parameters

-

-Set the parameter use_HeatTransfer=true to expose -a heatPort. This heatPort can be used -to add or subtract heat from the volume. This allows, for example, -to use this model in conjunction with a model for heat transfer through -walls to model a solar chimney that stores heat. -

-

Dynamics

-

-For a steady-state model, use - -AixLib.Airflow.Multizone.MediumColumn instead of this model. -

-

In this model, the parameter h must always be positive, and the port port_a must be -at the top of the column. -

-", +

+ This model contains a completely mixed fluid volume and + models that take into account the pressure difference of + a medium column that is at the same temperature as the + fluid volume. It can be used to model the pressure difference + caused by a stack effect. +

+

Typical use and important parameters

+

+ Set the parameter use_HeatTransfer=true to expose + a heatPort. This heatPort can be used + to add or subtract heat from the volume. This allows, for example, + to use this model in conjunction with a model for heat transfer through + walls to model a solar chimney that stores heat. +

+

Dynamics

+

+ For a steady-state model, use + + AixLib.Airflow.Multizone.MediumColumn instead of this model. +

+

In this model, the parameter h must always be positive, and the port port_a must be + at the top of the column. +

+ ", revisions=" -
    -
  • -January 18, 2019, by Jianjun Hu:
    -Limited the media choice to moist air only. -See #1050. -
  • -
  • -January 8, 2019, by Michael Wetter:
    -Changed public parameter m_flow_nominal.
    -This is for -#970. -
  • -
  • -May 1, 2018, by Filip Jorissen:
    -Removed declaration of allowFlowReversal -and changed default density computation such -that it assumes a constant pressure. -See #877. -
  • -
  • -October 6, 2014 by Michael Wetter:
    -Removed assignment of port_?.p.nominal to avoid a warning -in OpenModelica because -alias sets have different nominal values. -
  • -
  • -July 31, 2011 by Michael Wetter:
    -Changed model to use new base class - -AixLib.Fluid.Interfaces.LumpedVolumeDeclarations. -
  • -
  • May 25, 2011 by Michael Wetter:
    -Added m_flow_nominal, which is used if component is configured as steady-state. -
  • -
  • July 28, 2010 by Michael Wetter:
    -Released first version. -
  • -
-")); +
    +
  • + March 7, 2022, by Michael Wetter:
    + Set final massDynamics=energyDynamics.
    + This is for + #1542. +
  • +
  • + January 18, 2019, by Jianjun Hu:
    + Limited the media choice to moist air only. + See #1050. +
  • +
  • + January 8, 2019, by Michael Wetter:
    + Changed public parameter m_flow_nominal.
    + This is for + #970. +
  • +
  • + May 1, 2018, by Filip Jorissen:
    + Removed declaration of allowFlowReversal + and changed default density computation such + that it assumes a constant pressure. + See #877. +
  • +
  • + October 6, 2014 by Michael Wetter:
    + Removed assignment of port_?.p.nominal to avoid a warning + in OpenModelica because + alias sets have different nominal values. +
  • +
  • + July 31, 2011 by Michael Wetter:
    + Changed model to use new base class + + AixLib.Fluid.Interfaces.LumpedVolumeDeclarations. +
  • +
  • May 25, 2011 by Michael Wetter:
    + Added m_flow_nominal, which is used if component is configured as steady-state. +
  • +
  • July 28, 2010 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end MediumColumnDynamic; diff --git a/AixLib/Airflow/Multizone/Orifice.mo b/AixLib/Airflow/Multizone/Orifice.mo index 180f79b5c4..ed27f0261e 100644 --- a/AixLib/Airflow/Multizone/Orifice.mo +++ b/AixLib/Airflow/Multizone/Orifice.mo @@ -1,17 +1,18 @@ within AixLib.Airflow.Multizone; model Orifice "Orifice" - extends AixLib.Airflow.Multizone.BaseClasses.PowerLawResistance( + extends AixLib.Airflow.Multizone.Coefficient_V_flow( m=0.5, - k=CD*A*sqrt(2.0/rho_default)); + final C=CD*A*sqrt(2.0/rho_default)); - parameter Modelica.SIunits.Area A "Area of orifice" + parameter Modelica.Units.SI.Area A "Area of orifice" annotation (Dialog(group="Orifice characteristics")); parameter Real CD=0.65 "Discharge coefficient" annotation (Dialog(group="Orifice characteristics")); -equation - v = V_flow/A; - annotation (Icon(graphics={ + Modelica.Units.SI.Velocity v(nominal=1) = V_flow/A "Average velocity"; + + annotation ( + Icon(graphics={ Rectangle( extent={{-100,8},{100,-8}}, lineColor={0,0,255}, @@ -32,94 +33,108 @@ equation fillPattern=FillPattern.Solid), Text( extent={{24,-24},{96,-100}}, - lineColor={0,0,255}, + textColor={0,0,255}, fillColor={0,127,0}, fillPattern=FillPattern.Solid, textString="A=%A")}), defaultComponentName="ori", Documentation(info=" -

-This model describes the mass flow rate and pressure difference relation -of an orifice in the form -

-

- V̇ = k Δpm, -

-

-where - is the volume flow rate, -k is a flow coefficient and -m is the flow exponent. -The flow coefficient is -

-

-k = CD A (2/ρ0)0.5, -

-

-where -CD is the discharge coefficient, -A is the cross section area and -ρ0 is the mass density at the medium default pressure, temperature and humidity. -

-

-For turbulent flow, set m=1/2 and -for laminar flow, set m=1. -Large openings are characterized by values close to 0.5, -while values near 0.65 have been found for small -crack-like openings (Dols and Walton, 2002). -

-

References

-
    -
  • -W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, -Multizone Airflow and Contaminant Transport Analysis Software, -Building and Fire Research Laboratory, -National Institute of Standards and Technology, -Tech. Report NISTIR 6921, -November, 2002. -
  • -
-", -revisions=" -
    -
  • -June 27, 2018, by Michael Wetter:
    -Corrected old parameter annotation. -
  • -
  • -June 24, 2018, by Michael Wetter:
    -Removed parameter lWet as it is only used to compute -the Reynolds number, and the Reynolds number is not used by this model. -Also removed the variable Re for the Reynolds number.
    -This change is non-backward compatible.
    -This is for -AixLib, #932. -
  • -
  • -May 30, 2018, by Michael Wetter:
    -Improved documentation for -AixLib, #546. -
  • -
  • -October 8, 2013 by Michael Wetter:
    -Changed the parameter useConstantDensity to -useDefaultProperties to use consistent names within this package. -A conversion script can be used to update this parameter. -
  • -
  • -December 6, 2011 by Michael Wetter:
    -Replaced rho with rho_nominal because -rho is computed in an equation section and not -in the initial equation section. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -February 4, 2005 by Michael Wetter:
    -Released first version. -
  • -
-")); +

+ This model describes the mass flow rate and pressure difference relation + of an orifice in the form +

+

+ V̇ = C Δpm, +

+

+ where + is the volume flow rate, + C is a flow coefficient and + m is the flow exponent. + The flow coefficient is +

+

+ C = CD A (2/ρ0)0.5, +

+

+ where + CD is the discharge coefficient, + A is the cross section area and + ρ0 is the mass density at the medium default pressure, temperature and humidity. +

+

+ For turbulent flow, set m=1/2 and + for laminar flow, set m=1. + Large openings are characterized by values close to 0.5, + while values near 0.65 have been found for small + crack-like openings (Dols and Walton, 2002). +

+

References

+
    +
  • + W. Stuart Dols and George N. Walton, CONTAMW 2.0 User Manual, + Multizone Airflow and Contaminant Transport Analysis Software, + Building and Fire Research Laboratory, + National Institute of Standards and Technology, + Tech. Report NISTIR 6921, + November, 2002. +
  • +
  • Michael Wetter. + Multizone Airflow Model in Modelica. + Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006. +
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + Changes due to changes in the baseclass, velocity is now a top-level variable. +
  • +
  • + June 27, 2018, by Michael Wetter:
    + Corrected old parameter annotation. +
  • +
  • + June 24, 2018, by Michael Wetter:
    + Removed parameter lWet as it is only used to compute + the Reynolds number, and the Reynolds number is not used by this model. + Also removed the variable Re for the Reynolds number.
    + This change is non-backward compatible.
    + This is for + IBPSA, #932. +
  • +
  • + May 30, 2018, by Michael Wetter:
    + Improved documentation for + IBPSA, #546. +
  • +
  • + October 8, 2013 by Michael Wetter:
    + Changed the parameter useConstantDensity to + useDefaultProperties to use consistent names within this package. + A conversion script can be used to update this parameter. +
  • +
  • + December 6, 2011 by Michael Wetter:
    + Replaced rho with rho_nominal because + rho is computed in an equation section and not + in the initial equation section. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + February 4, 2005 by Michael Wetter:
    + Released first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end Orifice; diff --git a/AixLib/Airflow/Multizone/Point_m_flow.mo b/AixLib/Airflow/Multizone/Point_m_flow.mo new file mode 100644 index 0000000000..07901daa92 --- /dev/null +++ b/AixLib/Airflow/Multizone/Point_m_flow.mo @@ -0,0 +1,85 @@ +within AixLib.Airflow.Multizone; +model Point_m_flow + "Powerlaw with flow coeffient fitted based on flow exponent and 1 datapoint" + extends AixLib.Airflow.Multizone.Coefficient_m_flow(final k=mMea_flow_nominal/ + (dpMea_nominal^m)); + parameter Modelica.Units.SI.PressureDifference dpMea_nominal(displayUnit="Pa") + "Pressure difference of test point" + annotation (Dialog(group="Test data")); + parameter Modelica.Units.SI.MassFlowRate mMea_flow_nominal + "Mass flow rate of test point" + annotation (Dialog(group="Test data")); + +annotation ( + Icon(graphics={ + Rectangle( + extent={{-52,34},{50,-34}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-60,14},{78,-12}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-98,6},{-62,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{50,8},{102,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-68,4},{-50,-4}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-86,6},{-50,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), + defaultComponentName="pow", + Documentation(info=" +

+ Model that fits the flow coefficient of the massflow version of the + orifice equation based on 1 datapoint of mass flow rate and pressure difference, and given flow exponent. +

+

+ A similar model is also used in the CONTAM software (Dols and Walton, 2015). +

+

+ References +

+
    +
  • + W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, + National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: 10.6028/NIST.TN.1887. +
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, 2020, by Klaas De Jonge:
    + First implementation. +
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end Point_m_flow; diff --git a/AixLib/Airflow/Multizone/Points_m_flow.mo b/AixLib/Airflow/Multizone/Points_m_flow.mo new file mode 100644 index 0000000000..6fea62a4c0 --- /dev/null +++ b/AixLib/Airflow/Multizone/Points_m_flow.mo @@ -0,0 +1,88 @@ +within AixLib.Airflow.Multizone; +model Points_m_flow + "Powerlaw with flow coefficient and flow exponent fitted based on 2 datapoints" + extends AixLib.Airflow.Multizone.Coefficient_m_flow(final k= + mMea_flow_nominal[1]/(dpMea_nominal[1]^m2), + final m=m2); + + parameter Modelica.Units.SI.PressureDifference dpMea_nominal[2](each displayUnit="Pa") + "Pressure difference of two test points" + annotation (Dialog(group="Test data")); + parameter Modelica.Units.SI.MassFlowRate mMea_flow_nominal[2] + "Mass flow rate of two test points" + annotation (Dialog(group="Test data")); +protected + parameter Real m2 = (log(mMea_flow_nominal[1]) - log(mMea_flow_nominal[2]))/ + (log(dpMea_nominal[1]) -log(dpMea_nominal[2])) "Flow exponent"; + annotation ( + Icon(graphics={ + Rectangle( + extent={{-52,34},{50,-34}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-60,14},{78,-12}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-98,6},{-62,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{50,8},{102,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-68,4},{-50,-4}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-86,6},{-50,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid)}), + defaultComponentName="pow", + Documentation(info=" +

+ Model that fits the flow coefficient of the massflow version of the + orifice equation based on 2 datapoints of mass flow rate and pressure difference. +

+

+ A similar model is also used in the CONTAM software (Dols and Walton, 2015). +

+

References

+
    +
  • + W. S. Dols and B. J. Polidoro,2015. + CONTAM User Guide and Program Documentation Version 3.2, + National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: 10.6028/NIST.TN.1887. +
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, by Klaas De Jonge:
    + First implementation. +
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end Points_m_flow; diff --git a/AixLib/Airflow/Multizone/Table_V_flow.mo b/AixLib/Airflow/Multizone/Table_V_flow.mo new file mode 100644 index 0000000000..bdd84c917b --- /dev/null +++ b/AixLib/Airflow/Multizone/Table_V_flow.mo @@ -0,0 +1,102 @@ +within AixLib.Airflow.Multizone; +model Table_V_flow + "Volume flow(y-axis) vs Pressure(x-axis) cubic spline fit model based on table data, with last two points linearly interpolated" + extends AixLib.Airflow.Multizone.Table_m_flow( + final mMea_flow_nominal = VMea_flow_nominal*rho_default); + + parameter Modelica.Units.SI.VolumeFlowRate VMea_flow_nominal[:] + "Volume flow rate of test points" + annotation (Dialog(group="Test data")); +initial equation + assert(size(dpMea_nominal, 1) == size(VMea_flow_nominal, 1), + "Size of parameters are size(dpMea_nominal, 1) = " + String(size(dpMea_nominal, 1)) + + " and size(VMea_flow_nominal, 1) = " + String(size(VMea_flow_nominal, 1)) + ". They must be equal."); + + annotation ( + defaultComponentName="tabDat", + Documentation(info=" +

+ This model describes the one-directional pressure driven air flow through an + opening based on user-provided tabular data describing the relation between volume flow rate + and pressure difference over the component. +

+

+ V̇ = f(Δp), +

+

+ where is the volume flow rate and + Δp is the pressure difference. +

+ Based on the table input, a cubic hermite spline is constructed between all points + except for the two last pairs of points. These point are connected linearly. +

+

+ The constructed curve is the direct relation between and Δp. +

+

+ A similar model is also used in the CONTAM software (Dols and Walton, 2015). +

+

References

+
    +
  • + W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, + National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: + 10.6028/NIST.TN.1887. +
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • Apr 6, 2021, 2020, by Klaas De Jonge:
    + First implementation. +
  • +
+ + "),Icon(graphics={ + Rectangle( + extent={{-48,80},{52,-80}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-98,6},{-48,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{52,6},{102,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-22,78},{2,-78}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{2,78},{28,-78}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{0,13},{0,-13}}, + textColor={0,0,127}, + origin={15,0}, + rotation=90, + textString="V_flow"), + Rectangle( + extent={{-22,78},{28,58}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Forward), + Line(points={{2,78},{2,-78}}, color={28,108,200})}), + __Dymola_LockedEditing="Model from IBPSA"); +end Table_V_flow; diff --git a/AixLib/Airflow/Multizone/Table_m_flow.mo b/AixLib/Airflow/Multizone/Table_m_flow.mo new file mode 100644 index 0000000000..40ebf622c2 --- /dev/null +++ b/AixLib/Airflow/Multizone/Table_m_flow.mo @@ -0,0 +1,116 @@ +within AixLib.Airflow.Multizone; +model Table_m_flow + "Mass flow(y-axis) vs Pressure(x-axis) cubic spline fit model based from table data, with last two points linearly interpolated" + extends AixLib.Airflow.Multizone.BaseClasses.PartialOneWayFlowElement( + m_flow = AixLib.Airflow.Multizone.BaseClasses.interpolate( + u=dp, + xd=dpMea_nominal, + yd=mMea_flow_nominal, + d=d), + final m_flow_nominal=max(abs(dpMea_nominal[1]), abs(dpMea_nominal[end]))); + + parameter Modelica.Units.SI.PressureDifference dpMea_nominal[:](each displayUnit="Pa") + "Pressure difference of test points" + annotation (Dialog(group="Test data")); + parameter Modelica.Units.SI.MassFlowRate mMea_flow_nominal[:] + "Mass flow rate of test points" + annotation (Dialog(group="Test data")); +protected + parameter Real[size(dpMea_nominal, 1)] d = AixLib.Utilities.Math.Functions.splineDerivatives( + x=dpMea_nominal, + y=mMea_flow_nominal, + ensureMonotonicity=true) + "Derivatives at the support points"; +initial equation + assert(size(dpMea_nominal, 1) == size(mMea_flow_nominal, 1), + "Size of parameters are size(dpMea_nominal, 1) = " + String(size(dpMea_nominal, 1)) + + " and size(mMea_flow_nominal, 1) = " + String(size(mMea_flow_nominal, 1)) + ". They must be equal."); + annotation ( + Icon(graphics={ + Rectangle( + extent={{-50,80},{50,-80}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,0,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-100,6},{-50,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{50,6},{100,-6}}, + lineColor={0,0,255}, + pattern=LinePattern.None, + fillColor={0,127,0}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{-24,78},{0,-78}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Rectangle( + extent={{0,78},{26,-78}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Solid), + Text( + extent={{0,13},{0,-13}}, + textColor={0,0,127}, + textString="m_flow", + origin={13,0}, + rotation=90), + Rectangle( + extent={{-24,78},{26,58}}, + lineColor={28,108,200}, + fillColor={255,255,255}, + fillPattern=FillPattern.Forward), + Line(points={{0,78},{0,-78}}, color={28,108,200})}), + defaultComponentName="tabDat", + Documentation(info=" +

+ This model describes the one-directional pressure driven air flow through an + opening based on user-provided tabular data describing the relation between mass flow rate + and pressure difference over the component. +

+

+ ṁ = f(Δp), +

+

+ where is the volume flow rate and + Δp is the pressure difference. +

+ Based on the table input, a cubic hermite spline is constructed between all points + except for the two last pairs of points. These point are connected linearly. +

+

+ The constructed curve is the direct relation between and Δp. +

+

+ A similar model is also used in the CONTAM software (Dols and Walton, 2015). +

+

References

+
    +
  • + W. S. Dols and B. J. Polidoro,2015. CONTAM User Guide and Program Documentation Version 3.2, + National Institute of Standards and Technology, NIST TN 1887, Sep. 2015. doi: + 10.6028/NIST.TN.1887. +
  • +
+ ",revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • Apr 6, 2021, 2020, by Klaas De Jonge:
    + First implementation. +
  • +
+ + "), + __Dymola_LockedEditing="Model from IBPSA"); +end Table_m_flow; diff --git a/AixLib/Airflow/Multizone/Types/densitySelection.mo b/AixLib/Airflow/Multizone/Types/densitySelection.mo index 7617a6f79d..7803d0dd7d 100644 --- a/AixLib/Airflow/Multizone/Types/densitySelection.mo +++ b/AixLib/Airflow/Multizone/Types/densitySelection.mo @@ -5,25 +5,26 @@ type densitySelection = enumeration( actual "Actual density based on flow direction") "Enumeration to select density in medium column" annotation ( Documentation(info=" -

-Enumeration to define the choice of valve flow coefficient -(to be selected via choices menu): -

- - - - - - - - - -
EnumerationDescription
fromTop -Use this setting to use the density from the volume that is connected -to the top port. -
fromBottom -Use this setting to use the density from the volume that is connected -to the bottom port. -
actualUse this setting to use the density based on the actual flow direction. -
-")); +

+ Enumeration to define the choice of valve flow coefficient + (to be selected via choices menu): +

+ + + + + + + + + +
EnumerationDescription
fromTop + Use this setting to use the density from the volume that is connected + to the top port. +
fromBottom + Use this setting to use the density from the volume that is connected + to the bottom port. +
actualUse this setting to use the density based on the actual flow direction. +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); diff --git a/AixLib/Airflow/Multizone/Types/package.mo b/AixLib/Airflow/Multizone/Types/package.mo index 1836bcfd03..8e13906578 100644 --- a/AixLib/Airflow/Multizone/Types/package.mo +++ b/AixLib/Airflow/Multizone/Types/package.mo @@ -1,6 +1,6 @@ within AixLib.Airflow.Multizone; package Types "Package with type definitions" - + extends Modelica.Icons.TypesPackage; annotation (preferredView="info", Documentation(info=" This package contains type definitions. diff --git a/AixLib/Airflow/Multizone/UsersGuide.mo b/AixLib/Airflow/Multizone/UsersGuide.mo index 26dfd25e4b..c4c7da9f26 100644 --- a/AixLib/Airflow/Multizone/UsersGuide.mo +++ b/AixLib/Airflow/Multizone/UsersGuide.mo @@ -10,8 +10,7 @@ multizone airflow and contaminant transport.

The models can be used to compute the air flow between different rooms -and between a room and the exterior environment. -In multizone airflow models, typically each room volume is assumed +and between a room and the exterior environment. In multizone airflow models, typically each room volume is assumed to be completely mixed. The driving force for the air flow are pressure differences that can be induced, e.g., by @@ -31,59 +30,45 @@ wind pressure on the building facade.

-Wind pressure coefficients for different building configurations can be found -in Costola et al. (2009), Persily and Ivy (2001), and Swami and Chandra (1987). +Models for air flow through openings are in this package, while the models +for wind pressure and outdoor air conditions are in the package +AixLib.Fluid.Sources.

-The models in this package are as described in Wetter (2005), -except for the addition of the model - -Buildings.Airflow.Multizone.BaseClasses.windPressureLowRise -that computes the wind pressure on facades, and -some changes that have been done when migrating -the models to Modelica 3.1, which led to a simpler implementation based -on the stream functions. +Most models in this package are as described in Wetter (2005). +Wind pressure coefficients for different building configurations can be found +in Costola et al. (2009), Persily and Ivy (2001), Swami and Chandra (1987) and Liddament (1996).

+

References

+

Acknowledgements

We would like to thank the -United Technologies Research Center for contributing this package -to the Buildings library. -

-

References

-

-D. Costola, B. Blocken and J.L.M. Hensen. -Overview of pressure coefficient data in building energy simulation -and airflow network programs. -Building and Environment. Vol. 44(10): 2027-2036. 2009. -

-

-Muthusamy V. Swami and -Subrato Chandra. - - -Procedures for -Calculating Natural -Ventilation Airflow -Rates in Buildings. -Florida Solar Energy Center, FSEC-CR-163-86. March, 1987. -Cape Canaveral, Florida. -

-

-Andrew K. Persily and Elizabeth M. Ivy. - - -Input Data for Multizone Airflow and IAQ Analysis. -NIST, NISTIR 6585. -January, 2001. -Gaithersburg, MD. +United Technologies Research Center for contributing the original package +to the AixLib library.

-Michael Wetter. - -Multizone Airflow Model in Modelica. -Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006. +We would like to thank the Research Foundation Flanders (FWO) and Ghent University for providing +the oportunity to further develop this package.

+", revisions=" +
    +
  • +Apr 6, 2021, by Klaas De Jonge:
    +Generalised UserGuide to fit the updated package better. +
  • +
  • +2006, by Michael Wetter:
    +First Implementation. +
  • +
")); end UsersGuide; diff --git a/AixLib/Airflow/Multizone/Validation/DoorOpenClosed.mo b/AixLib/Airflow/Multizone/Validation/DoorOpenClosed.mo index e61aaa3142..021b459819 100644 --- a/AixLib/Airflow/Multizone/Validation/DoorOpenClosed.mo +++ b/AixLib/Airflow/Multizone/Validation/DoorOpenClosed.mo @@ -102,29 +102,30 @@ equation StopTime=1, Tolerance=1e-06), Documentation(info=" -

-This model validates the door model that takes as an input a signal -that determines whether the door is open or closed. -In this validation, the instance dooOpeClo is either open or closed, -depending on its input signal y. -If the door is open, its air flow rate is identical to the air flow rate of the -instance doo. -If the door is closed, its air flow rate is identical to the air flow rate of the -instance lea. -

-", revisions=" -
    -
  • -March 26, 2021 by Michael Wetter:
    -Updated comments for -AixLib, #515. -
  • -
  • -October 12, 2020 by Michael Wetter:
    -First implementation. -
  • -
-"), +

+ This model validates the door model that takes as an input a signal + that determines whether the door is open or closed. + In this validation, the instance dooOpeClo is either open or closed, + depending on its input signal y. + If the door is open, its air flow rate is identical to the air flow rate of the + instance doo. + If the door is closed, its air flow rate is identical to the air flow rate of the + instance lea. +

+ ",revisions=" +
    +
  • + March 26, 2021 by Michael Wetter:
    + Updated comments for + IBPSA, #515. +
  • +
  • + October 12, 2020 by Michael Wetter:
    + First implementation. +
  • +
+ "), Diagram(coordinateSystem(extent={{-100,-100},{100,100}})), - Icon(coordinateSystem(extent={{-100,-100},{80,100}}))); + Icon(coordinateSystem(extent={{-100,-100},{80,100}})), + __Dymola_LockedEditing="Model from IBPSA"); end DoorOpenClosed; diff --git a/AixLib/Airflow/Multizone/Validation/OneWayFlow.mo b/AixLib/Airflow/Multizone/Validation/OneWayFlow.mo new file mode 100644 index 0000000000..c26bab5797 --- /dev/null +++ b/AixLib/Airflow/Multizone/Validation/OneWayFlow.mo @@ -0,0 +1,238 @@ +within AixLib.Airflow.Multizone.Validation; +model OneWayFlow + "Validation model to verify one way flow implementation" + extends Modelica.Icons.Example; + package Medium = AixLib.Media.Specialized.Air.PerfectGas; + + Modelica.Units.SI.PressureDifference dP = ela.dp "Pressure difference over the tested elements"; + Modelica.Units.SI.MassFlowRate[nTested] m_flow_data= + {sen_ela.m_flow, + sen_ori.m_flow, + sen_pow_1dat.m_flow, + sen_pow_2dat.m_flow, + sen_pow_m_flow.m_flow, + sen_pow_V_flow.m_flow, + sen_tabDat_m_flow.m_flow, + sen_tabDat_V_flow.m_flow} + "Simulated mass flow of each flow element"; + Modelica.Units.SI.MassFlowRate[nTested] m_flow_testdata=contamData.y + "Mass flow of each flow element of CONTAM simulation"; + +protected + parameter Integer nTested=8 "Number of tested flow elements"; + +//Test Data +//Headers: ["dP","ELA_FlowRate","ORI_FlowRate","1DatPoint_FlowRate","2DatPoint_FlowRate","pow_m_flow_FlowRate","pow_V_flow_FlowRate","tabDat_m_flow","tabDat_V_flow_FlowRate"] + parameter Real TestData[:,nTested+1]=[ + -50,-0.0838,-0.0658,-0.0672,-0.0609,-0.0707,-0.0851,-0.0871,-0.105; + -40,-0.0725,-0.0589,-0.0601,-0.055,-0.0632,-0.0762,-0.0769,-0.0926; + -25,-0.0534,-0.0466,-0.0475,-0.0443,-0.05,-0.0602,-0.0616,-0.0741; + -10,-0.0294,-0.0294,-0.03,-0.029,-0.0316,-0.0381,-0.039,-0.0469; + -5,-0.0188,-0.0208,-0.0212,-0.0211,-0.0224,-0.0269,-0.0275,-0.0332; + -1,-0.00659,-0.00931,-0.0095,-0.01,-0.01,-0.012,-0.0123,-0.0148; + 0,0,0,0,0,0,0,0,0; + 1,0.00659,0.00931,0.0095,0.01,0.01,0.012,0.0123,0.0148; + 5,0.0188,0.0208,0.0212,0.0211,0.0224,0.0269,0.0261,0.0315; + 10,0.0294,0.0294,0.03,0.029,0.0316,0.0381,0.0261,0.0315; + 25,0.0534,0.0466,0.0475,0.0443,0.05,0.0602,0.0261,0.0315; + 40,0.0725,0.0589,0.0601,0.055,0.0632,0.0762,0.0261,0.0315; + 50,0.0838,0.0658,0.0672,0.0609,0.0707,0.0851,0.0261,0.0315] + "Steady state CONTAM results with specific pressure difference for similar flow models"; + + //Boundary conditions + Fluid.Sources.Boundary_pT bouA( + redeclare package Medium = Medium, + use_p_in=true, + T=293.15, + nPorts=8) "Pressure boundary" annotation (Placement(transformation(extent={{-100,-28},{-80,-8}}))); + Fluid.Sources.Boundary_pT bouB( + redeclare package Medium = Medium, + use_p_in=true, + T=293.15, + nPorts=8) "Pressure boundary" annotation (Placement(transformation(extent={{100,-20},{80,0}}))); + Modelica.Blocks.Sources.Ramp ramp_min50_50pa( + duration=500, + height=100, + offset=-50) "Block that generates a ramp signal from -50 to +50" + annotation (Placement(transformation(extent={{-180,-20},{-160,0}}))); + Modelica.Blocks.Sources.Constant PAmb(k=101325) + "Assumed ambient pressure" annotation (Placement(transformation(extent={{-180,18}, + {-160,38}}))); + Modelica.Blocks.Math.Sum sum(nin=2) + "Sum" annotation (Placement(transformation( + extent={{-10,-10},{10,10}}, + rotation=0, + origin={-122,-10}))); + + //Flow models + EffectiveAirLeakageArea ela( + redeclare package Medium = Medium, + dpRat=10, + CDRat=0.6, + L=0.01) + "EffectiveAirLeakageArea" annotation (Placement(transformation(extent={{-40,120}, + {-20,140}}))); + Orifice ori( + redeclare package Medium = Medium, + A=0.01, + CD=0.6) "Orifice" annotation (Placement(transformation(extent={{-40,80},{-20,100}}))); + Point_m_flow pow_1dat( + dpMea_nominal(displayUnit="Pa") = 4, + redeclare package Medium = Medium, + mMea_flow_nominal=0.019) "Powerlaw_1Datapoint" + annotation (Placement(transformation(extent={{-40,40},{-20,60}}))); + Points_m_flow pow_2dat( + redeclare package Medium = Medium, + mMea_flow_nominal={0.019, 0.029}, + dpMea_nominal = {4, 10}) "Powerlaw_2Datapoints" + annotation (Placement(transformation(extent={{-40,0},{-20,20}}))); + Coefficient_m_flow pow_m_flow( + redeclare package Medium = Medium, + m=0.5, + k=0.01) "Powerlaw_m_flow" + annotation (Placement(transformation(extent={{-40,-40},{-20,-20}}))); + Coefficient_V_flow pow_V_flow( + redeclare package Medium = Medium, + m=0.5, + C=0.01) + "Powerlaw_V_flow" annotation (Placement(transformation(extent={{-40,-80},{-20,-60}}))); + Table_m_flow tabDat_m_flow( + redeclare package Medium = Medium, + mMea_flow_nominal = {-0.08709, -0.06158, -0.03895, -0.02754, -0.02133, -0.01742, -0.01232, 0, 0.01232, 0.01742, 0.02133, 0.02613, 0.02614}, + dpMea_nominal = {-50, -25, -10, -5, -3, -2, -1, 0, 1, 2, 3, 4.5, 50}) + "TableData_m_flow" annotation (Placement(transformation(extent={{-40,-120},{-20,-100}}))); + Table_V_flow tabDat_V_flow( + redeclare package Medium = Medium, + VMea_flow_nominal = {-0.08709, -0.06158, -0.03895, -0.02754, -0.02133, -0.01742, -0.01232, 0, 0.01232, 0.01742, 0.02133, 0.02613, 0.02614}, + dpMea_nominal = {-50, -25, -10, -5, -3, -2, -1, 0, 1, 2, 3, 4.5, 50}) + "TableData_V_flow" annotation (Placement(transformation(extent={{-40,-160},{-20,-140}}))); + + //Mass flow sensors + Fluid.Sensors.MassFlowRate sen_ela(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,120},{20,140}}))); + Fluid.Sensors.MassFlowRate sen_ori(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,80},{20,100}}))); + Fluid.Sensors.MassFlowRate sen_pow_1dat(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,40},{20,60}}))); + Fluid.Sensors.MassFlowRate sen_pow_2dat(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,0},{20,20}}))); + Fluid.Sensors.MassFlowRate sen_pow_m_flow(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,-40},{20,-20}}))); + Fluid.Sensors.MassFlowRate sen_pow_V_flow(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,-80},{20,-60}}))); + Fluid.Sensors.MassFlowRate sen_tabDat_m_flow(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,-120},{20,-100}}))); + Fluid.Sensors.MassFlowRate sen_tabDat_V_flow(redeclare package Medium = Medium) + "Mass flow rate sensor" annotation (Placement(transformation(extent={{0,-160},{20,-140}}))); + + //Checking the data + Modelica.Blocks.Tables.CombiTable1Dv contamData( + table=TestData, + columns=2:9, + smoothness=Modelica.Blocks.Types.Smoothness.MonotoneContinuousDerivative2) + "Table with CONTAM simulation results for comparison" + annotation (Placement(transformation(extent={{-80,160},{-60,180}}))); + Modelica.Blocks.Routing.Replicator replicator(nout=nTested) + "Signal replicator" + annotation (Placement(transformation(extent={{-120, + 160},{-100,180}}))); + + +equation + + connect(ramp_min50_50pa.y, sum.u[1]) annotation (Line(points={{-159,-10},{-134, + -10},{-134,-10.5}}, color={0,0,127})); + connect(PAmb.y, sum.u[2]) annotation (Line(points={{-159,28},{-140,28},{-140,-10}, + {-134,-10},{-134,-9.5}}, color={0,0,127})); + connect(sum.y, bouA.p_in) annotation (Line(points={{-111,-10},{-102,-10}}, color={0,0,127})); + connect(PAmb.y, bouB.p_in) annotation (Line(points={{-159,28},{-140,28},{-140, + 150},{112,150},{112,-2},{102,-2}}, color={0,0,127})); + connect(ramp_min50_50pa.y, replicator.u) annotation (Line(points={{-159,-10},{ + -150,-10},{-150,170},{-122,170}}, color={0,0,127})); + connect(replicator.y, contamData.u) + annotation (Line(points={{-99,170},{-82,170}}, color={0,0,127})); + connect(bouA.ports[1],ela. port_a) annotation (Line(points={{-80,-19.75},{-62, + -19.75},{-62,130},{-40,130}}, + color={0,127,255})); + connect(bouA.ports[2], ori.port_a) annotation (Line(points={{-80,-19.25},{-60, + -19.25},{-60,90},{-40,90}}, + color={0,127,255})); + connect(bouA.ports[3], pow_1dat.port_a) annotation (Line(points={{-80,-18.75}, + {-58,-18.75},{-58,50},{-40,50}}, + color={0,127,255})); + connect(bouA.ports[4], pow_2dat.port_a) annotation (Line(points={{-80,-18.25}, + {-56,-18.25},{-56,10},{-40,10}}, + color={0,127,255})); + connect(bouA.ports[5], pow_m_flow.port_a) annotation (Line(points={{-80,-17.75}, + {-56,-17.75},{-56,-30},{-40,-30}}, + color={0,127,255})); + connect(bouA.ports[6], pow_V_flow.port_a) annotation (Line(points={{-80,-17.25}, + {-58,-17.25},{-58,-70},{-40,-70}}, + color={0,127,255})); + connect(bouA.ports[7],tabDat_m_flow. port_a) annotation (Line(points={{-80,-16.75}, + {-60,-16.75},{-60,-110},{-40,-110}}, + color={0,127,255})); + connect(bouA.ports[8],tabDat_V_flow. port_a) annotation (Line(points={{-80,-16.25}, + {-62,-16.25},{-62,-150},{-40,-150}}, + color={0,127,255})); + connect(ela.port_b,sen_ela. port_a) annotation (Line(points={{-20,130},{0,130}}, + color={0,127,255})); + connect(sen_ela.port_b, bouB.ports[1]) annotation (Line(points={{20,130},{60,130}, + {60,-11.75},{80,-11.75}}, + color={0,127,255})); + connect(ori.port_b,sen_ori. port_a) annotation (Line(points={{-20,90},{0,90}},color={0,127,255})); + connect(sen_ori.port_b, bouB.ports[2]) annotation (Line(points={{20,90},{58,90}, + {58,-11.25},{80,-11.25}}, + color={0,127,255})); + connect(pow_1dat.port_b,sen_pow_1dat. port_a) annotation (Line(points={{-20,50},{0,50}},color={0,127,255})); + connect(sen_pow_1dat.port_b, bouB.ports[3]) annotation (Line(points={{20,50}, + {56,50},{56,-10.75},{80,-10.75}}, + color={0,127,255})); + connect(pow_2dat.port_b,sen_pow_2dat. port_a) annotation (Line(points={{-20,10},{0,10}},color={0,127,255})); + connect(sen_pow_2dat.port_b, bouB.ports[4]) annotation (Line(points={{20,10}, + {54,10},{54,-10.25},{80,-10.25}}, + color={0,127,255})); + connect(pow_m_flow.port_b,sen_pow_m_flow. port_a) annotation (Line(points={{-20,-30},{0,-30}},color={0,127,255})); + connect(sen_pow_m_flow.port_b, bouB.ports[5]) annotation (Line(points={{20,-30}, + {54,-30},{54,-9.75},{80,-9.75}}, + color={0,127,255})); + connect(pow_V_flow.port_b,sen_pow_V_flow. port_a) annotation (Line(points={{-20,-70},{0,-70}},color={0,127,255})); + connect(sen_pow_V_flow.port_b, bouB.ports[6]) annotation (Line(points={{20,-70}, + {56,-70},{56,-9.25},{80,-9.25}}, + color={0,127,255})); + connect(tabDat_m_flow.port_b,sen_tabDat_m_flow. port_a) annotation (Line(points={{-20,-110},{0,-110}}, + color={0,127,255})); + connect(sen_tabDat_m_flow.port_b, bouB.ports[7]) annotation (Line(points={{20,-110}, + {58,-110},{58,-8.75},{80,-8.75}}, + color={0,127,255})); + connect(tabDat_V_flow.port_b,sen_tabDat_V_flow. port_a) annotation (Line(points={{-20,-150},{0,-150}}, color={0,127,255})); + connect(sen_tabDat_V_flow.port_b, bouB.ports[8]) annotation (Line(points={{20,-150}, + {60,-150},{60,-8.25},{80,-8.25}}, + color={0,127,255})); + + + annotation (Diagram( + coordinateSystem(preserveAspectRatio=false, extent={{-200,-180},{160,200}})), + experiment( + StopTime=500, + Interval=1, + Tolerance=1e-06), + __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OneWayFlow.mos" + "Simulate and plot"), + Documentation(revisions=" +
    +
  • + February 2, 2022, by Michael Wetter:
    + Revised implementation.
    + This is for + IBPSA, #1436. +
  • +
  • + Apr 6, 2021, 2020, by Klaas De Jonge:
    + First implementation. +
  • +
+ + "),Icon(coordinateSystem(extent={{-100,-100},{100,100}})), + __Dymola_LockedEditing="Model from IBPSA"); +end OneWayFlow; diff --git a/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mo b/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mo index 16655c10c8..66d7f55444 100644 --- a/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mo +++ b/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mo @@ -19,7 +19,6 @@ model OpenDoorBuoyancyDynamic T_start=292.15, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=3) "Boundary condition at side a" annotation (Placement( transformation( @@ -32,7 +31,6 @@ model OpenDoorBuoyancyDynamic T_start=294.15, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=2) "Boundary condition at side b" annotation (Placement(transformation(extent={{-10,-10},{10,10}}, @@ -52,7 +50,6 @@ model OpenDoorBuoyancyDynamic T_start=292.15, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=3) "Boundary condition at side a" annotation (Placement( transformation( @@ -64,7 +61,6 @@ model OpenDoorBuoyancyDynamic T_start=294.15, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=2) "Boundary condition at side b" annotation (Placement( transformation( @@ -100,16 +96,17 @@ equation StopTime=14400, Tolerance=1e-08), Documentation(info=" -

-This model validates the door model for the situation where there is only buoyancy-driven air flow. -Initially the volume is at a different temperature than the pressure source, leading to an airflow that eventually decays to zero. -

-", revisions=" -
    -
  • -October 9, 2020 by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This model validates the door model for the situation where there is only buoyancy-driven air flow. + Initially the volume is at a different temperature than the pressure source, leading to an airflow that eventually decays to zero. +

+ ",revisions=" +
    +
  • + October 9, 2020 by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OpenDoorBuoyancyDynamic; diff --git a/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mo b/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mo index 05eb7df84c..6ac2f7f534 100644 --- a/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mo +++ b/AixLib/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mo @@ -18,7 +18,6 @@ model OpenDoorBuoyancyPressureDynamic T_start=292.15, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=3) "Boundary condition at side a" annotation (Placement( transformation( @@ -32,7 +31,6 @@ model OpenDoorBuoyancyPressureDynamic p_start=101320, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=2) "Boundary condition at side b" annotation (Placement(transformation(extent={{-10,-10},{10,10}}, @@ -48,7 +46,6 @@ model OpenDoorBuoyancyPressureDynamic T_start=292.15, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=3) "Boundary condition at side a" annotation (Placement( transformation( @@ -61,7 +58,6 @@ model OpenDoorBuoyancyPressureDynamic p_start=101320, V=2.5*5*5, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, - massDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, m_flow_nominal=0.01, nPorts=2) "Boundary condition at side b" annotation (Placement( transformation( @@ -99,16 +95,17 @@ equation StopTime=14400, Tolerance=1e-08), Documentation(info=" -

-This model validates the door model for the situation where there is air flow due to buoyancy and static pressure difference. -Initially the volumes are at a different temperatures and pressure, leading to an airflow that eventually decays to zero. -

-", revisions=" -
    -
  • -October 9, 2020 by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This model validates the door model for the situation where there is air flow due to buoyancy and static pressure difference. + Initially the volumes are at a different temperatures and pressure, leading to an airflow that eventually decays to zero. +

+ ",revisions=" +
    +
  • + October 9, 2020 by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OpenDoorBuoyancyPressureDynamic; diff --git a/AixLib/Airflow/Multizone/Validation/OpenDoorPressure.mo b/AixLib/Airflow/Multizone/Validation/OpenDoorPressure.mo index 55fdafc1a0..1de03b4a55 100644 --- a/AixLib/Airflow/Multizone/Validation/OpenDoorPressure.mo +++ b/AixLib/Airflow/Multizone/Validation/OpenDoorPressure.mo @@ -82,15 +82,16 @@ equation Interval=600, Tolerance=1e-06), Documentation(info=" -

-This model validates the door model for the situation where there is only pressure-driven air flow. -

-", revisions=" -
    -
  • -October 9, 2020 by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This model validates the door model for the situation where there is only pressure-driven air flow. +

+ ",revisions=" +
    +
  • + October 9, 2020 by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OpenDoorPressure; diff --git a/AixLib/Airflow/Multizone/Validation/OpenDoorTemperature.mo b/AixLib/Airflow/Multizone/Validation/OpenDoorTemperature.mo index 44a7d94384..947402fb15 100644 --- a/AixLib/Airflow/Multizone/Validation/OpenDoorTemperature.mo +++ b/AixLib/Airflow/Multizone/Validation/OpenDoorTemperature.mo @@ -80,15 +80,16 @@ equation Interval=600, Tolerance=1e-06), Documentation(info=" -

-This model validates the door model for the situation where there is only temperature-driven air flow. -

-", revisions=" -
    -
  • -October 9, 2020 by Michael Wetter:
    -First implementation. -
  • -
-")); +

+ This model validates the door model for the situation where there is only temperature-driven air flow. +

+ ",revisions=" +
    +
  • + October 9, 2020 by Michael Wetter:
    + First implementation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end OpenDoorTemperature; diff --git a/AixLib/Airflow/Multizone/Validation/ThreeRoomsContam.mo b/AixLib/Airflow/Multizone/Validation/ThreeRoomsContam.mo index a96c305a1f..4ea3340309 100644 --- a/AixLib/Airflow/Multizone/Validation/ThreeRoomsContam.mo +++ b/AixLib/Airflow/Multizone/Validation/ThreeRoomsContam.mo @@ -244,53 +244,54 @@ experiment(Tolerance=1e-06, StopTime=3600), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/ThreeRoomsContam.mos" "Simulate and plot"), Documentation(info=" -

-This is a model of three rooms that exchange air among each based -on density difference between the air in the rooms and the outside. -The model implements the configuration shown below.

-

-\"Configuration -

-

-For the model that has been used for a comparative model validation between CONTAM and -the Buildings library in Wetter (2006), see - -AixLib.Airflow.Multizone.Validation.ThreeRoomsContamDiscretizedDoor. -

-

References

-

-Michael Wetter. - -Multizone Airflow Model in Modelica. -Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006. -

-", revisions=" -
    -
  • -October 9, 2020, by Michael Wetter:
    -Refactored model to use the new door model. -
  • -
  • -May 15, 2019, by Jianjun Hu:
    -Replaced fluid source. This is for - #1072. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -June 26, 2014, by Michael Wetter:
    -Set the initial conditions to be fixed to avoid a translation warning. -This required adding a heat conductor between each volume and its prescribed -temperature in order to avoid an overdetermined system of equations. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This is a model of three rooms that exchange air among each based + on density difference between the air in the rooms and the outside. + The model implements the configuration shown below.

+

+ \"Configuration +

+

+ For the model that has been used for a comparative model validation between CONTAM and + the Buildings library in Wetter (2006), see + + AixLib.Airflow.Multizone.Validation.ThreeRoomsContamDiscretizedDoor. +

+

References

+

+ Michael Wetter. + + Multizone Airflow Model in Modelica. + Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006. +

+ ",revisions=" +
    +
  • + October 9, 2020, by Michael Wetter:
    + Refactored model to use the new door model. +
  • +
  • + May 15, 2019, by Jianjun Hu:
    + Replaced fluid source. This is for + #1072. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + June 26, 2014, by Michael Wetter:
    + Set the initial conditions to be fixed to avoid a translation warning. + This required adding a heat conductor between each volume and its prescribed + temperature in order to avoid an overdetermined system of equations. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ThreeRoomsContam; diff --git a/AixLib/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mo b/AixLib/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mo index f8c4851f75..db64495195 100644 --- a/AixLib/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mo +++ b/AixLib/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mo @@ -27,53 +27,54 @@ experiment(Tolerance=1e-06, StopTime=3600), __Dymola_Commands(file="modelica://AixLib/Resources/Scripts/Dymola/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mos" "Simulate and plot"), Documentation(info=" -

-This model is identical to - -AixLib.Airflow.Multizone.Validation.ThreeRoomsContam -except that it uses a different door model. -

-

-This model has been used for a comparative model validation between CONTAM and -the Buildings library. -See Wetter (2006) for details of the validation. -

-

References

-

-Michael Wetter. - -Multizone Airflow Model in Modelica. -Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006. -

-", revisions=" -
    -
  • -October 9, 2020, by Michael Wetter:
    -Refactored model to use the base class - -AixLib.Airflow.Multizone.Validation.ThreeRoomsContam. -
  • -
  • -May 15, 2019, by Jianjun Hu:
    -Replaced fluid source. This is for - #1072. -
  • -
  • -December 22, 2014 by Michael Wetter:
    -Removed Modelica.Fluid.System -to address issue -#311. -
  • -
  • -June 26, 2014, by Michael Wetter:
    -Set the initial conditions to be fixed to avoid a translation warning. -This required adding a heat conductor between each volume and its prescribed -temperature in order to avoid an overdetermined system of equations. -
  • -
  • -November 10, 2011, by Michael Wetter:
    -Added documentation. -
  • -
-")); +

+ This model is identical to + + AixLib.Airflow.Multizone.Validation.ThreeRoomsContam + except that it uses a different door model. +

+

+ This model has been used for a comparative model validation between CONTAM and + the Buildings library. + See Wetter (2006) for details of the validation. +

+

References

+

+ Michael Wetter. + + Multizone Airflow Model in Modelica. + Proc. of the 5th International Modelica Conference, p. 431-440. Vienna, Austria, September 2006. +

+ ",revisions=" +
    +
  • + October 9, 2020, by Michael Wetter:
    + Refactored model to use the base class + + AixLib.Airflow.Multizone.Validation.ThreeRoomsContam. +
  • +
  • + May 15, 2019, by Jianjun Hu:
    + Replaced fluid source. This is for + #1072. +
  • +
  • + December 22, 2014 by Michael Wetter:
    + Removed Modelica.Fluid.System + to address issue + #311. +
  • +
  • + June 26, 2014, by Michael Wetter:
    + Set the initial conditions to be fixed to avoid a translation warning. + This required adding a heat conductor between each volume and its prescribed + temperature in order to avoid an overdetermined system of equations. +
  • +
  • + November 10, 2011, by Michael Wetter:
    + Added documentation. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ThreeRoomsContamDiscretizedDoor; diff --git a/AixLib/Airflow/Multizone/Validation/package.order b/AixLib/Airflow/Multizone/Validation/package.order index 12c9ea277c..3b0f6df5f3 100644 --- a/AixLib/Airflow/Multizone/Validation/package.order +++ b/AixLib/Airflow/Multizone/Validation/package.order @@ -1,4 +1,5 @@ DoorOpenClosed +OneWayFlow OpenDoorBuoyancyDynamic OpenDoorBuoyancyPressureDynamic OpenDoorPressure diff --git a/AixLib/Airflow/Multizone/ZonalFlow_ACS.mo b/AixLib/Airflow/Multizone/ZonalFlow_ACS.mo index d23ef51b75..1a7ccd3a76 100644 --- a/AixLib/Airflow/Multizone/ZonalFlow_ACS.mo +++ b/AixLib/Airflow/Multizone/ZonalFlow_ACS.mo @@ -4,18 +4,18 @@ model ZonalFlow_ACS "Zonal flow with input air change per second" parameter Boolean useDefaultProperties = false "Set to true to use constant density"; - parameter Modelica.SIunits.Volume V "Volume of room"; + parameter Modelica.Units.SI.Volume V "Volume of room"; Modelica.Blocks.Interfaces.RealInput ACS "Air change per seconds, relative to the smaller of the two volumes" annotation (Placement(transformation(extent={{-120,90},{-100,110}}))); protected - Modelica.SIunits.VolumeFlowRate V_flow + Modelica.Units.SI.VolumeFlowRate V_flow "Volume flow rate at standard pressure"; - Modelica.SIunits.MassFlowRate m_flow "Mass flow rate"; + Modelica.Units.SI.MassFlowRate m_flow "Mass flow rate"; parameter Medium.ThermodynamicState sta_default = Medium.setState_pTX(T=Medium.T_default, p=Medium.p_default, X=Medium.X_default); - parameter Modelica.SIunits.Density rho_default=Medium.density(sta_default) + parameter Modelica.Units.SI.Density rho_default=Medium.density(sta_default) "Density, used to compute fluid volume"; Medium.ThermodynamicState sta_a1_inflow= @@ -43,49 +43,50 @@ equation annotation (Icon(graphics={ Text( extent={{-92,108},{16,66}}, - lineColor={0,0,127}, + textColor={0,0,127}, textString= "ACS = %ACS")}), defaultComponentName="floExc", Documentation(info=" -

-This model computes the air exchange between volumes. -

-

-Input is the air change per seconds. The volume flow rate is computed as -

-
-  V_flow = ACS * V
-
-

-where ACS is an input and the volume V is a parameter. -

-", +

+ This model computes the air exchange between volumes. +

+

+ Input is the air change per seconds. The volume flow rate is computed as +

+
+   V_flow = ACS * V
+ 
+

+ where ACS is an input and the volume V is a parameter. +

+ ", revisions=" -
    -
  • -August 18, 2014, by Michael Wetter:
    -Removed parameter forceErrorControlOnFlow as it was not used. -Changed message of assert statement to avoid an error in OpenModelica. -
  • -
  • -October 8, 2013 by Michael Wetter:
    -Changed the parameter useConstantDensity to -useDefaultProperties to use consistent names within this package. -A conversion script can be used to update this parameter. -
  • -
  • -December 14, 2012 by Michael Wetter:
    -Renamed protected parameters for consistency with the naming conventions. -
  • -
  • -July 20, 2010 by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -January 4, 2006 by Michael Wetter:
    -Implemented first version. -
  • -
-")); +
    +
  • + August 18, 2014, by Michael Wetter:
    + Removed parameter forceErrorControlOnFlow as it was not used. + Changed message of assert statement to avoid an error in OpenModelica. +
  • +
  • + October 8, 2013 by Michael Wetter:
    + Changed the parameter useConstantDensity to + useDefaultProperties to use consistent names within this package. + A conversion script can be used to update this parameter. +
  • +
  • + December 14, 2012 by Michael Wetter:
    + Renamed protected parameters for consistency with the naming conventions. +
  • +
  • + July 20, 2010 by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + January 4, 2006 by Michael Wetter:
    + Implemented first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ZonalFlow_ACS; diff --git a/AixLib/Airflow/Multizone/ZonalFlow_m_flow.mo b/AixLib/Airflow/Multizone/ZonalFlow_m_flow.mo index c462e821c3..0873f82a7d 100644 --- a/AixLib/Airflow/Multizone/ZonalFlow_m_flow.mo +++ b/AixLib/Airflow/Multizone/ZonalFlow_m_flow.mo @@ -12,29 +12,30 @@ equation annotation (defaultComponentName="floExc", Documentation(info=" -

-This model computes the air exchange between volumes. -

-

-Input is the mass flow rate from -port_a1 to port_b1 and from -port_a2 to port_b2. -

-", +

+ This model computes the air exchange between volumes. +

+

+ Input is the mass flow rate from + port_a1 to port_b1 and from + port_a2 to port_b2. +

+ ", revisions=" -
    -
  • -August 18, 2014, by Michael Wetter:
    -Removed parameter forceErrorControlOnFlow as it was not used. -
  • -
  • -July 20, 2010, by Michael Wetter:
    -Migrated model to Modelica 3.1 and integrated it into the Buildings library. -
  • -
  • -January 17, 2006, by Michael Wetter:
    -Implemented first version. -
  • -
-")); +
    +
  • + August 18, 2014, by Michael Wetter:
    + Removed parameter forceErrorControlOnFlow as it was not used. +
  • +
  • + July 20, 2010, by Michael Wetter:
    + Migrated model to Modelica 3.1 and integrated it into the Buildings library. +
  • +
  • + January 17, 2006, by Michael Wetter:
    + Implemented first version. +
  • +
+ "), + __Dymola_LockedEditing="Model from IBPSA"); end ZonalFlow_m_flow; diff --git a/AixLib/Airflow/Multizone/package.order b/AixLib/Airflow/Multizone/package.order index 10d5c5dac9..cc7ed85133 100644 --- a/AixLib/Airflow/Multizone/package.order +++ b/AixLib/Airflow/Multizone/package.order @@ -1,4 +1,6 @@ UsersGuide +Coefficient_V_flow +Coefficient_m_flow DoorDiscretizedOpen DoorDiscretizedOperable DoorOpen @@ -7,6 +9,10 @@ EffectiveAirLeakageArea MediumColumn MediumColumnDynamic Orifice +Point_m_flow +Points_m_flow +Table_V_flow +Table_m_flow ZonalFlow_ACS ZonalFlow_m_flow Types diff --git a/AixLib/BoundaryConditions/GroundTemperature/GroundTemperatureKusuda.mo b/AixLib/BoundaryConditions/GroundTemperature/GroundTemperatureKusuda.mo index 7e3e727839..01826d1bd0 100644 --- a/AixLib/BoundaryConditions/GroundTemperature/GroundTemperatureKusuda.mo +++ b/AixLib/BoundaryConditions/GroundTemperature/GroundTemperatureKusuda.mo @@ -1,12 +1,15 @@ -within AixLib.BoundaryConditions.GroundTemperature; +within AixLib.BoundaryConditions.GroundTemperature; model GroundTemperatureKusuda "Model for undisturbed ground temperature" - parameter Modelica.SIunits.Temperature T_mean "Average air temperature over the year"; - parameter Modelica.SIunits.TemperatureDifference T_amp + parameter Modelica.Units.SI.Temperature T_mean + "Average air temperature over the year"; + parameter Modelica.Units.SI.TemperatureDifference T_amp "Amplitude of surface temperature [(maximum air temperature - minimum air temperature)/2]"; - parameter Modelica.SIunits.Distance D "Depth of ground temperature"; - parameter Modelica.SIunits.ThermalDiffusivity alpha=0.04 "Thermal diffusivity of the ground. Declare in m2/day!"; - parameter Modelica.SIunits.Time t_shift "Time of the year with minimum air temperature. Declare in days!"; + parameter Modelica.Units.SI.Distance D "Depth of ground temperature"; + parameter Modelica.Units.SI.ThermalDiffusivity alpha=0.04 + "Thermal diffusivity of the ground. Declare in m2/day!"; + parameter Modelica.Units.SI.Time t_shift + "Time of the year with minimum air temperature. Declare in days!"; Modelica.Thermal.HeatTransfer.Sources.PrescribedTemperature prescribedTemperature "Transfers computed ground temperature to heat port" diff --git a/AixLib/BoundaryConditions/InternalGains/BaseClasses/PartialInternalGain.mo b/AixLib/BoundaryConditions/InternalGains/BaseClasses/PartialInternalGain.mo index 1c5ef874f4..e01a5d4929 100644 --- a/AixLib/BoundaryConditions/InternalGains/BaseClasses/PartialInternalGain.mo +++ b/AixLib/BoundaryConditions/InternalGains/BaseClasses/PartialInternalGain.mo @@ -3,8 +3,9 @@ partial model PartialInternalGain "Partial model to build a heat source with convective and radiative component" parameter Real ratioConv(final min=0, final max=1) = 0.6 "Ratio convective to total heat release" annotation(Dialog(descriptionLabel = true)); - parameter Modelica.SIunits.Emissivity emissivity(min=0, max=1) = 0.95 - "Emissivity of radiative heat source surface"; + parameter Modelica.Units.SI.Emissivity emissivity( + min=0, + max=1) = 0.95 "Emissivity of radiative heat source surface"; Modelica.Blocks.Interfaces.RealInput uRel(min=0, max=1) "Relative input related to max. value (might be a ratio related to number of people [-] or room area and specific heat flow [W/m2] or maximal heat flow [W]" annotation (Placement(transformation(extent={{-120,-20},{-80,20}}))); Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow convectiveHeat(final T_ref=293.15, final alpha=0) diff --git a/AixLib/BoundaryConditions/InternalGains/CO2/CO2Balance.mo b/AixLib/BoundaryConditions/InternalGains/CO2/CO2Balance.mo index fb951ba6dc..d96912906a 100644 --- a/AixLib/BoundaryConditions/InternalGains/CO2/CO2Balance.mo +++ b/AixLib/BoundaryConditions/InternalGains/CO2/CO2Balance.mo @@ -1,13 +1,13 @@ -within AixLib.BoundaryConditions.InternalGains.CO2; +within AixLib.BoundaryConditions.InternalGains.CO2; model CO2Balance "Calculation of CO2 concentration within a thermal zone" - parameter Modelica.SIunits.Area areaZon "Zone area"; + parameter Modelica.Units.SI.Area areaZon "Zone area"; parameter Real actDeg = 1.8 "Activity degree (Met units)"; - parameter Modelica.SIunits.Volume VZon "Zone volume"; - parameter Modelica.SIunits.MassFraction XCO2_amb=6.12157E-4 + parameter Modelica.Units.SI.Volume VZon "Zone volume"; + parameter Modelica.Units.SI.MassFraction XCO2_amb=6.12157E-4 "Massfraction of CO2 in atmosphere (equals 403ppm)"; - parameter Modelica.SIunits.Area areaBod=1.8 + parameter Modelica.Units.SI.Area areaBod=1.8 "Body surface area source SIA 2024:2015"; - parameter Modelica.SIunits.DensityOfHeatFlowRate metOnePerSit=58 + parameter Modelica.Units.SI.DensityOfHeatFlowRate metOnePerSit=58 "Metabolic rate of a relaxed seated person in Met (1 Met = 58 W/m^2)"; parameter Real spePeo(unit="1/(m.m)") = 0.05 "Specific persons per square metre room area"; @@ -39,23 +39,23 @@ model CO2Balance "Calculation of CO2 concentration within a thermal zone" annotation (Placement(transformation(extent={{100,-70},{120,-50}}))); protected - constant Modelica.SIunits.MolarMass MolCO2=0.04401; - constant Modelica.SIunits.MolarMass MolAir=0.028949; + constant Modelica.Units.SI.MolarMass MolCO2=0.04401; + constant Modelica.Units.SI.MolarMass MolAir=0.028949; constant Real CalEqu=5.617*3600*1000 "caloric equivalent in J/m^3"; constant Real ResQuo=0.83 "respiratory quotient in m^3_CO2/ m^3_O2"; - constant Modelica.SIunits.Pressure pAir=101325; - constant Modelica.SIunits.Density rhoAir=1.2041; + constant Modelica.Units.SI.Pressure pAir=101325; + constant Modelica.Units.SI.Density rhoAir=1.2041; Real numPeo "Number of people in the thermal zone"; - Modelica.SIunits.VolumeFlowRate VCO2OnePer_flow + Modelica.Units.SI.VolumeFlowRate VCO2OnePer_flow "Pure CO2 emission of an adult person"; - Modelica.SIunits.DensityOfHeatFlowRate metOnePerAct + Modelica.Units.SI.DensityOfHeatFlowRate metOnePerAct "Metabolic heat production rate considering activity degree in W/m^2"; - Modelica.SIunits.MassFlowRate mCO2Peo_flow; - Modelica.SIunits.MassFlowRate mAirExc_flow + Modelica.Units.SI.MassFlowRate mCO2Peo_flow; + Modelica.Units.SI.MassFlowRate mAirExc_flow "Massflowrate of ventilation and infiltration in kg/s"; - Modelica.SIunits.Density rhoCO2 "CO2 density"; - Modelica.SIunits.MassFlowRate mCO2OnePer_flow + Modelica.Units.SI.Density rhoCO2 "CO2 density"; + Modelica.Units.SI.MassFlowRate mCO2OnePer_flow "Emission CO2 of one Person in kg/s"; equation diff --git a/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/BaseClasses/Humans.mo b/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/BaseClasses/Humans.mo index c4305f112b..7a87930b6d 100644 --- a/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/BaseClasses/Humans.mo +++ b/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/BaseClasses/Humans.mo @@ -5,9 +5,10 @@ partial model Humans "Base class with bounday conditions for humans' examples" Modelica.Blocks.Sources.CombiTimeTable combiTimeTable(table=[0,0; 28740,0; 28800,1; 43200,1; 43260,0; 46800,0; 46860,1; 64800,1; 64860,0; 86400,0]) annotation(Placement(transformation(extent = {{-82, -26}, {-62, -6}}))); Modelica.Blocks.Sources.Sine sine( amplitude=2, - freqHz=1/(24*3600), + f=1/(24*3600), offset=273.15 + 20, - phase(displayUnit="deg") = -3.1415926535898) annotation(Placement(transformation(extent={{-70,18},{-82,30}}))); + phase(displayUnit="deg") = -3.1415926535898) + annotation (Placement(transformation(extent={{-70,18},{-82,30}}))); Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor heatFlowSensorConv annotation (Placement(transformation(extent={{38,12},{52,26}}))); Modelica.Thermal.HeatTransfer.Sources.FixedTemperature fixedTemp(T=293.15) annotation(Placement(transformation(extent={{80,4},{60,24}}))); Modelica.Thermal.HeatTransfer.Sensors.HeatFlowSensor heatFlowSensorRad annotation (Placement(transformation(extent={{18,-16},{34,0}}))); diff --git a/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Lights.mo b/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Lights.mo index b9647cdfe4..ae6d798372 100644 --- a/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Lights.mo +++ b/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Lights.mo @@ -37,7 +37,10 @@ Documentation(info="

The simulation consists of the following models:

- +
+
+ \"Models\" cellspacing=\"2\" cellpadding=\"0\" border=\"0\ +

diff --git a/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Machines.mo b/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Machines.mo index a755b96b4b..448b06382b 100644 --- a/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Machines.mo +++ b/AixLib/BoundaryConditions/InternalGains/Examples/InternalGains/Machines.mo @@ -41,7 +41,10 @@ Documentation(info="

The simulation consists of the following models:

- +
+
+ \"Models\" cellspacing=\"2\" cellpadding=\"0\" border=\"0\ +

diff --git a/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/PartialHuman.mo b/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/PartialHuman.mo index 7ccf7754ef..97653e0e44 100644 --- a/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/PartialHuman.mo +++ b/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/PartialHuman.mo @@ -6,10 +6,9 @@ partial model PartialHuman "Partial model for internal gains of humans" gainSurfaces(final k=specificPersons*roomArea*surfaceAreaOnePersion)); //Internal Gains People parameter Real specificPersons(unit="1/(m.m)") = 0.05 "Specific persons per square metre room area" annotation(Dialog(descriptionLabel = true)); - parameter Real ratioConvectiveHeat=0.5 - "Ratio of convective heat from overall heat output" annotation(Dialog(descriptionLabel = true)); - parameter Modelica.SIunits.Area roomArea "Area of room" annotation(Dialog(descriptionLabel = true)); - parameter Modelica.SIunits.HeatFlowRate specificHeatPerPerson = 70 + parameter Modelica.Units.SI.Area roomArea "Area of room" + annotation (Dialog(descriptionLabel=true)); + parameter Modelica.Units.SI.HeatFlowRate specificHeatPerPerson=70 "Specific heat output per person"; Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor temperatureSensor @@ -22,10 +21,11 @@ partial model PartialHuman "Partial model for internal gains of humans" "Air temperature in room" annotation(Placement(transformation(extent = {{-100, 80}, {-80, 100}}))); protected - parameter Modelica.SIunits.Area surfaceAreaOnePersion=2 "Human Surface (per person)"; - parameter Modelica.SIunits.HeatFlowRate heatPerPerson=70 + parameter Modelica.Units.SI.Area surfaceAreaOnePersion=2 + "Human Surface (per person)"; + parameter Modelica.Units.SI.HeatFlowRate heatPerPerson=70 "Average Heat Flow per person taken from DIN V 18599-10" - annotation(Dialog(descriptionLabel = true)); + annotation (Dialog(descriptionLabel=true)); equation connect(TRoom,temperatureSensor. port) annotation(Line(points = {{-90, 90}, {-90, 74}}, color = {191, 0, 0}, pattern = LinePattern.Solid)); connect(temperatureSensor.T,to_degC. u) annotation(Line(points = {{-90, 54}, {-84, 54}, {-84, 52}, {-83, 51}}, color = {0, 0, 127}, pattern = LinePattern.Solid)); diff --git a/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentHeatOutputSIA2024.mo b/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentHeatOutputSIA2024.mo index ce4b8d7528..95e769448f 100644 --- a/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentHeatOutputSIA2024.mo +++ b/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentHeatOutputSIA2024.mo @@ -1,4 +1,4 @@ -within AixLib.BoundaryConditions.InternalGains.Humans.BaseClasses; +within AixLib.BoundaryConditions.InternalGains.Humans.BaseClasses; model TemperatureDependentHeatOutputSIA2024 "Model for temperature dependent heat output based on formulas of SIA 2024" @@ -12,10 +12,10 @@ model TemperatureDependentHeatOutputSIA2024 annotation (Placement(transformation(extent={{100,-10},{120,10}}))); protected constant Real HeatPerMet(unit="W/(m.m)") = 58 "Heat per m² for 1 met"; - constant Modelica.SIunits.Area BodySurface=1.8 "Body surface of one person"; + constant Modelica.Units.SI.Area BodySurface=1.8 "Body surface of one person"; constant Real TemperatureCoefficient(unit="1/K") = 0.025 "Parameter for temperature dependency"; - constant Modelica.SIunits.HeatFlowRate MinimumHeat=35 "Minimum heat output"; + constant Modelica.Units.SI.HeatFlowRate MinimumHeat=35 "Minimum heat output"; equation heatOutput =max(0, (0.865 - (TemperatureCoefficient*T))*(activityDegree* diff --git a/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentMoistureOutputSIA2024.mo b/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentMoistureOutputSIA2024.mo index c3f5d55e40..cbf8e15310 100644 --- a/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentMoistureOutputSIA2024.mo +++ b/AixLib/BoundaryConditions/InternalGains/Humans/BaseClasses/TemperatureDependentMoistureOutputSIA2024.mo @@ -1,4 +1,4 @@ -within AixLib.BoundaryConditions.InternalGains.Humans.BaseClasses; +within AixLib.BoundaryConditions.InternalGains.Humans.BaseClasses; model TemperatureDependentMoistureOutputSIA2024 "Model for temperature dependent moisture output based on formulas of SIA 2024" @@ -15,7 +15,7 @@ model TemperatureDependentMoistureOutputSIA2024 annotation (Placement(transformation(extent={{-74,32},{-54,52}}))); protected constant Real HeatPerMet(unit="W/(m.m)") = 58 "Heat per m² for 1 met"; - constant Modelica.SIunits.Area BodySurface=1.8 "Body surface of one person"; + constant Modelica.Units.SI.Area BodySurface=1.8 "Body surface of one person"; constant Real MoistGain(unit="g/h") = 10/7 "Gain for moisture output"; equation diff --git a/AixLib/BoundaryConditions/InternalGains/Humans/HumanTotalHeatTemperatureDependent.mo b/AixLib/BoundaryConditions/InternalGains/Humans/HumanTotalHeatTemperatureDependent.mo index 8a7edbd890..0104d154e6 100644 --- a/AixLib/BoundaryConditions/InternalGains/Humans/HumanTotalHeatTemperatureDependent.mo +++ b/AixLib/BoundaryConditions/InternalGains/Humans/HumanTotalHeatTemperatureDependent.mo @@ -23,13 +23,13 @@ model HumanTotalHeatTemperatureDependent "Latent heat per kg moisture" annotation (Placement(transformation(extent={{-88,14},{-68,34}}))); protected - constant Modelica.SIunits.SpecificHeatCapacity cp_steam= - AixLib.Utilities.Psychrometrics.Constants.cpSte + constant Modelica.Units.SI.SpecificHeatCapacity cp_steam=AixLib.Utilities.Psychrometrics.Constants.cpSte "Specific heat capacity of steam"; - constant Modelica.SIunits.SpecificEnthalpy EnthalpyOfEvaporation=AixLib.Utilities.Psychrometrics.Constants.h_fg + constant Modelica.Units.SI.SpecificEnthalpy EnthalpyOfEvaporation=AixLib.Utilities.Psychrometrics.Constants.h_fg "Enthalpy of evaporation"; - constant Modelica.SIunits.SpecificEnergy h_fg= - Media.Air.enthalpyOfCondensingGas(273.15+37) "Latent heat of water vapor"; + constant Modelica.Units.SI.SpecificEnergy h_fg= + Media.Air.enthalpyOfCondensingGas(273.15 + 37) + "Latent heat of water vapor"; equation connect(to_degC.y, temperatureDependentMoistuerOutputSIA2024_1.T) annotation ( Line(points={{-71.5,51},{-71.5,52},{-68,52},{-68,76},{-62,76}}, color={0,0, diff --git a/AixLib/BoundaryConditions/InternalGains/Lights/LightsAreaSpecific.mo b/AixLib/BoundaryConditions/InternalGains/Lights/LightsAreaSpecific.mo index 4370fe47f9..c925d8440d 100644 --- a/AixLib/BoundaryConditions/InternalGains/Lights/LightsAreaSpecific.mo +++ b/AixLib/BoundaryConditions/InternalGains/Lights/LightsAreaSpecific.mo @@ -6,10 +6,12 @@ model LightsAreaSpecific "Heat flow due to lighting relative to room area and sp radConvertor(final A=max(Modelica.Constants.eps, areaSurfaceLightsTotal)), gain(final k=roomArea*lightingPowerRoomAreaSpecific), gainSurfaces(final k=areaSurfaceLightsTotal)); - parameter Modelica.SIunits.Area roomArea "Area of room" annotation(Dialog( descriptionLabel = true)); + parameter Modelica.Units.SI.Area roomArea "Area of room" + annotation (Dialog(descriptionLabel=true)); parameter Real lightingPowerRoomAreaSpecific=10 "Lighting power per square meter room" annotation(Dialog( descriptionLabel = true)); - parameter Modelica.SIunits.Area areaSurfaceLightsTotal=0.01*roomArea "Surface of all lights in the room"; + parameter Modelica.Units.SI.Area areaSurfaceLightsTotal=0.01*roomArea + "Surface of all lights in the room"; annotation (Icon(graphics={ Ellipse( diff --git a/AixLib/BoundaryConditions/InternalGains/Lights/LightsRelToMaxValue.mo b/AixLib/BoundaryConditions/InternalGains/Lights/LightsRelToMaxValue.mo index 6274973a50..67ae811c7b 100644 --- a/AixLib/BoundaryConditions/InternalGains/Lights/LightsRelToMaxValue.mo +++ b/AixLib/BoundaryConditions/InternalGains/Lights/LightsRelToMaxValue.mo @@ -3,8 +3,10 @@ model LightsRelToMaxValue "Multiplies relative input with max value (heat flow d extends BaseClasses.PartialInternalGain(emissivity=0.98, gainSurfaces(final k=areaSurfaceLightsTotal), gain(final k=maxHeatFlowAbsolute)); - parameter Modelica.SIunits.HeatFlowRate maxHeatFlowAbsolute "Maximal absolute heat flow due to lighting"; - parameter Modelica.SIunits.Area areaSurfaceLightsTotal=0.001*maxHeatFlowAbsolute "Surface of all lights in the room"; + parameter Modelica.Units.SI.HeatFlowRate maxHeatFlowAbsolute + "Maximal absolute heat flow due to lighting"; + parameter Modelica.Units.SI.Area areaSurfaceLightsTotal=0.001* + maxHeatFlowAbsolute "Surface of all lights in the room"; equation diff --git a/AixLib/BoundaryConditions/InternalGains/Machines/MachinesAreaSpecific.mo b/AixLib/BoundaryConditions/InternalGains/Machines/MachinesAreaSpecific.mo index 69dcaa8348..7b78ef8181 100644 --- a/AixLib/BoundaryConditions/InternalGains/Machines/MachinesAreaSpecific.mo +++ b/AixLib/BoundaryConditions/InternalGains/Machines/MachinesAreaSpecific.mo @@ -5,15 +5,22 @@ model MachinesAreaSpecific "Heat flow due to machines relative to room area and gain(final k=intGainsMachinesRoomAreaSpecific*roomArea), gainSurfaces(final k=areaSurfaceMachinesTotal)); - parameter Modelica.SIunits.HeatFlux intGainsMachinesRoomAreaSpecific=1.0 "Heat flow from machines per square meter room" annotation(Dialog(descriptionLabel = true)); - parameter Modelica.SIunits.Area areaSurfaceMachinesTotal=max( - 1e-4, surfaceMachine*intGainsMachinesRoomAreaSpecific*(1/ - HeatPerMachine)*roomArea) "Total surface area of all machines (radiative heat source) (for a room in a single-family hous e.g. 2 m2)"; - parameter Modelica.SIunits.Area roomArea "Area of room" annotation(Dialog(descriptionLabel = true)); + parameter Modelica.Units.SI.HeatFlux intGainsMachinesRoomAreaSpecific=1.0 + "Heat flow from machines per square meter room" + annotation (Dialog(descriptionLabel=true)); + parameter Modelica.Units.SI.Area areaSurfaceMachinesTotal=max(1e-4, + surfaceMachine*intGainsMachinesRoomAreaSpecific*(1/HeatPerMachine)* + roomArea) + "Total surface area of all machines (radiative heat source) (for a room in a single-family hous e.g. 2 m2)"; + parameter Modelica.Units.SI.Area roomArea "Area of room" + annotation (Dialog(descriptionLabel=true)); protected - parameter Modelica.SIunits.HeatFlowRate HeatPerMachine = 100 "Average Heat Flow per machine taken from DIN V 18599-10" annotation(Dialog(descriptionLabel = true)); - parameter Modelica.SIunits.Area surfaceMachine = 2.0 "Surface area of one machine"; + parameter Modelica.Units.SI.HeatFlowRate HeatPerMachine=100 + "Average Heat Flow per machine taken from DIN V 18599-10" + annotation (Dialog(descriptionLabel=true)); + parameter Modelica.Units.SI.Area surfaceMachine=2.0 + "Surface area of one machine"; annotation (Icon(graphics={ Text( extent={{-40,-20},{44,-62}}, diff --git a/AixLib/BoundaryConditions/InternalGains/Machines/MachinesDIN18599.mo b/AixLib/BoundaryConditions/InternalGains/Machines/MachinesDIN18599.mo index 6b5238fc7e..8995bdf540 100644 --- a/AixLib/BoundaryConditions/InternalGains/Machines/MachinesDIN18599.mo +++ b/AixLib/BoundaryConditions/InternalGains/Machines/MachinesDIN18599.mo @@ -8,13 +8,14 @@ model MachinesDIN18599 "Heat flow due to machines based on DIN 18599 (number of parameter Integer activityType=2 "Machine activity" annotation(Dialog( compact = true, descriptionLabel = true), choices(choice=1 "low", choice = 2 "middle", choice = 3 "high", radioButtons = true)); parameter Real nrPeople=1.0 "Number of people with machines" annotation(Dialog(descriptionLabel = true)); - parameter Modelica.SIunits.Area areaSurfaceMachinesTotal=max( - 1e-4, surfaceMachine*nrPeople) - "Total surface area of all machines (radiative heat source) (for a room in a single-family hous e.g. 2 m2)"; + parameter Modelica.Units.SI.Area areaSurfaceMachinesTotal=max(1e-4, + surfaceMachine*nrPeople) + "Total surface area of all machines (radiative heat source) (for a room in a single-family hous e.g. 2 m2)"; protected - parameter Modelica.SIunits.Area surfaceMachine = 2.0 "Surface area of one machine"; - Modelica.Blocks.Tables.CombiTable1D tableHeatOutput( + parameter Modelica.Units.SI.Area surfaceMachine=2.0 + "Surface area of one machine"; + Modelica.Blocks.Tables.CombiTable1Dv tableHeatOutput( smoothness=Modelica.Blocks.Types.Smoothness.LinearSegments, tableOnFile=false, table=[1,50; 2,100; 3,150], @@ -275,59 +276,64 @@ equation The type of activity determines the load for machines in the room for one person according to DIN 18599-10. The following values are used:

- - - - - - - - - - - - - - - - - +
- Activity Type - - Heat Load [W] -
-

- 1 -

-
-

- 50 -

-
-

- 2 -

-
-

- 100 -

-
-

- 3 -

-
-

- 150 -

-
+
+ \"DIN 18599-10 activity level and produces heat output\" + cellspacing=\"2\" cellpadding=\"0\" border=\"0\"> + + + + + + + + + + + + + + + + + +
+ Activity Type + + Heat Load [W] +
+

+ 1 +

+
+

+ 50 +

+
+

+ 2 +

+
+

+ 100 +

+
+

+ 3 +

+
+

+ 150 +

+
+

+ References +

+

+ DIN 18599-10 +

+
-

- References -

-

- DIN 18599-10 -

", revisions="