diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..84309a65585 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ +libModelicaBuildingsEnergyPlus*.* filter=lfs diff=lfs merge=lfs -text +ModelicaBuildingsEnergyPlus*.dll filter=lfs diff=lfs merge=lfs -text +ModelicaBuildingsEnergyPlus*.lib filter=lfs diff=lfs merge=lfs -text +libepfmi*.* filter=lfs diff=lfs merge=lfs -text +libfmilib*.* filter=lfs diff=lfs merge=lfs -text +fmilib_shared*.* filter=lfs diff=lfs merge=lfs -text +epfmi*.* filter=lfs diff=lfs merge=lfs -text +VCRUNTIME*.dll filter=lfs diff=lfs merge=lfs -text +Buildings/Resources/src/ThermalZones/EnergyPlus/FMUs/Zones1.fmu filter=lfs diff=lfs merge=lfs -text +Buildings/Resources/src/ThermalZones/EnergyPlus/FMUs/Zones3.fmu filter=lfs diff=lfs merge=lfs -text +Buildings/Resources/bin/spawn-*/bin/spawn filter=lfs diff=lfs merge=lfs -text diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000000..e9d474bf777 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Open model '...' +2. Run script '....' +3. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Version** + - Modelica Buildings Library: [version or commit] + - Modelica simulation environment + - Operating system + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/custom-issue.md b/.github/ISSUE_TEMPLATE/custom-issue.md new file mode 100644 index 00000000000..1d3fdd66df8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/custom-issue.md @@ -0,0 +1,10 @@ +--- +name: Custom issue +about: Issues other than bug report or feature request +title: '' +labels: '' +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000000..bbcbbe7d615 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml new file mode 100644 index 00000000000..dab439d7b15 --- /dev/null +++ b/.github/workflows/formatting.yml @@ -0,0 +1,98 @@ +# Workflow for CI tests +name: CI-documentation-and-format + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ master, maint_*, release* ] + pull_request: + branches: [ master, maint_*, release* ] + +# Allows you to run this workflow manually from the Actions tab +# workflow_dispatch: + +defaults: + run: + shell: bash + working-directory: Buildings + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + + test-formatting: + # Skip if the commit message contains "ci skip" + if: "!contains(github.event.head_commit.message, 'ci skip')" + + runs-on: ubuntu-18.04 + + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: '3.6' # Version range or exact version of a Python version to use, using SemVer's version range syntax + architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified + + - name: "Install pip" + run: pip3 install --upgrade pip setuptools wheel + + - name: "Install sphinx and its dependencies" + run: pip3 install \ + sphinx==2.1.2 \ + sphinx-bootstrap-theme==0.7.1 \ + sphinxcontrib-bibtex==0.4.2 \ + sphinxcontrib-plantuml==0.17 \ + alabaster==0.7.12 \ + MarkupSafe==1.1.1 \ + Pygments==2.4.2 \ + snowballstemmer==1.9.0 \ + docutils==0.15.2 \ + Babel==2.7.0 \ + requests==2.22.0 \ + Jinja2==2.10.1 \ + latexcodec==1.0.7 \ + pybtex==0.22.2 \ + pybtex-docutils==0.2.1 \ + oset==0.1.3 \ + PyYAML==5.1.2 + + - name: "Install BuildingsPy" + run: pip3 install git+https://github.com/lbl-srg/BuildingsPy@master + + - name: "Test html syntax" + run : ../bin/runUnitTests.py --validate-html-only + + - name: "Test experiment setup" + run : ../bin/runUnitTests.py --validate-experiment-setup + + - name: "Test if package.order are correct" + run : | + python -c 'import buildingspy.development.refactor as r; r.write_package_order(".", recursive=True)' + git diff --exit-code . + + - name: "Verify files for invalid strings" + run: ${GITHUB_WORKSPACE}/bin/verifyFiles.py + + - name: "Verify that all OpenModelica scripts are up to date, and no old scripts exist" + run : | + rm Resources/Scripts/OpenModelica/compareVars/*.mos + python -c 'import buildingspy.development.regressiontest as u; u.Tester().writeOpenModelicaResultDictionary()' + git status --porcelain Resources/Scripts/OpenModelica + test -z $(git status --porcelain Resources/Scripts/OpenModelica) + + - name: "Test user guide" + run : (cd Resources/Documentation/userGuide; make regressiontest) + + - name: "Test heat pump documentation" + run : (cd Resources/src/fluid/heatpumps/calibration/doc; make regressiontest) + + - name: "Check for UnitConversion package to be consistent with the script that generates it" + run : | + cd .. + python Buildings/Resources/src/Controls/OBC/UnitConversions/unit_converters.py + git diff --exit-code Buildings + + - name: Check for UTF-8 BOM + run: "! find . -name '*.mo' -print0 | xargs -0 grep -l $'^\\xEF\\xBB\\xBF' | grep ." diff --git a/.gitignore b/.gitignore index 3e035801954..35134564af6 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,6 @@ Buildings/Resources/src/fluid/heatpumps/calibration/doc/build/doctrees # Spawn temporary directories ######################################### tmp-eplus-* +eplus* +sqlite* +*/EnergyPlus-simulation* diff --git a/.travis.yml b/.travis.yml index 729943b9af8..dd2237fc56e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,21 @@ +<<<<<<< HEAD dist: trusty sudo: false +======= +os: Linux +dist: bionic +>>>>>>> master language: python python: - "3.6" +branches: + only: + - master + - /^maint_.*$/ + - release + cache: pip notifications: @@ -15,12 +26,38 @@ git: services: - docker +<<<<<<< HEAD env: global: - ENERGYPLUS_VERSION=EnergyPlus-9.2.0-921312fa1d-Linux-x86_64 jobs: - TEST_ARG="make test-documentation test-experiment-setup test-autogenerated-files test-verify-files" +======= + - xvfb + + +addons: + apt: + sources: + - sourceline: "deb https://build.openmodelica.org/omc/builds/linux/releases/1.16.1/ bionic release" + key_url: "http://build.openmodelica.org/apt/openmodelica.asc" + packages: + - omc=1.16.1-1 + - omlib-modelica-3.2.2 #3.2.3 is not in https://build.openmodelica.org/omc/builds/linux/releases/1.16.1/dists/bionic/release/binary-amd64/Packages.gz + + +env: + global: + - ENERGYPLUS_VERSION=EnergyPlus-9.5.0-de239b2e5f-Linux-Ubuntu18.04-x86_64 + - MODELICA_JSON_VERSION=6d950c3592fa021aa914ba4ff34a67cbb69962c6 + - MODELICA_JSON_HOME=${TRAVIS_BUILD_DIR}/modelica-json + + jobs: + - TEST_ARG="make test-cdl-conformance" + - TEST_ARG="make test-energyplus-validations" + - TEST_ARG="make test-bestest test-spawn-portability" +>>>>>>> master - TEST_ARG="make test-dymola PACKAGE=\"Buildings.{Air,Examples}\"" - TEST_ARG="make test-optimica PACKAGE=\"Buildings.{Air,Examples}\"" - TEST_ARG="make test-jmodelica PACKAGE=\"Buildings.{Air,Examples}\"" @@ -72,6 +109,7 @@ env: before_install: - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin +<<<<<<< HEAD - if [[ "$TEST_ARG" == *test-dymola* ]]; then docker pull "$DOCKER_USERNAME"/travis_ubuntu-1804_dymola-2020x-x86_64; chmod +x Buildings/Resources/Scripts/travis/dymola/dymola; @@ -80,6 +118,14 @@ before_install: - if [[ "$TEST_ARG" == *test-optimica* ]]; then docker pull "$DOCKER_USERNAME"/travis-ubuntu-1804-optimica; chmod +x Buildings/Resources/Scripts/travis/optimica/jm_ipython.sh; +======= + - if [[ "$TEST_ARG" == *test-dymola* || "$TEST_ARG" == *test-bestest* || "$TEST_ARG" == *spawn-portability* ]]; then + docker pull "$DOCKER_USERNAME"/travis_ubuntu-1804_dymola:2022-x86_64; + cp Buildings/Resources/Scripts/travis/dymola/dymola $HOME/bin/; + fi; + - if [[ "$TEST_ARG" == *test-optimica* ]]; then + docker pull "$DOCKER_USERNAME"/travis-ubuntu-1804-optimica:r19089; +>>>>>>> master cp Buildings/Resources/Scripts/travis/optimica/jm_ipython.sh $HOME/bin/jm_ipython.sh; fi; - if [[ "$TEST_ARG" == *test-jmodelica* ]]; then @@ -88,10 +134,21 @@ before_install: cp Buildings/Resources/Scripts/travis/jmodelica/jm_ipython.sh $HOME/bin/jm_ipython.sh; fi; - if [[ "$TEST_ARG" == *test-energyplus* ]]; then - wget https://github.com/NREL/EnergyPlus/releases/download/v9.2.0/${ENERGYPLUS_VERSION}.tar.gz; + wget --no-verbose https://github.com/NREL/EnergyPlus/releases/download/v9.5.0/${ENERGYPLUS_VERSION}.tar.gz; tar xzf ${ENERGYPLUS_VERSION}.tar.gz; - cd ${ENERGYPLUS_VERSION}; - mv energyplus EnergyPlus; + rm ${ENERGYPLUS_VERSION}.tar.gz; + echo "Installed EnergyPlus in ${PWD}/${ENERGYPLUS_VERSION}"; + fi; + - if [[ "$TEST_ARG" == *test-cdl-conformance* ]]; then + wget --no-verbose https://github.com/lbl-srg/modelica-json/archive/${MODELICA_JSON_VERSION}.tar.gz; + tar xzf ${MODELICA_JSON_VERSION}.tar.gz; + rm ${MODELICA_JSON_VERSION}.tar.gz; + mv modelica-json-${MODELICA_JSON_VERSION} ${MODELICA_JSON_HOME}; + cd ${MODELICA_JSON_HOME}; + make install-node-packages; + make compile; + cd -; + echo "Installed modelica-json in ${MODELICA_JSON_HOME}"; fi; # Install dependencies @@ -101,26 +158,11 @@ before_install: install: - pip3 install --upgrade pip setuptools wheel - pip3 install --only-binary=numpy,scipy,matplotlib numpy==1.13.3 scipy==0.19.1 matplotlib==2.1.0 - - if [[ "$TEST_ARG" == *test-documentation* ]]; then - pip3 install sphinx==2.1.2 \ - sphinx-bootstrap-theme==0.7.1 \ - sphinxcontrib-bibtex==0.4.2 \ - sphinxcontrib-plantuml==0.17 \ - alabaster==0.7.12 \ - MarkupSafe==1.1.1 \ - Pygments==2.4.2 \ - snowballstemmer==1.9.0 \ - docutils==0.15.2 \ - Babel==2.7.0 \ - requests==2.22.0 \ - Jinja2==2.10.1 \ - latexcodec==1.0.7 \ - pybtex==0.22.2 - pybtex-docutils==0.2.1 \ - oset==0.1.3 \ - PyYAML==5.1.2; - fi; - pip3 install git+https://github.com/lbl-srg/BuildingsPy@master + - if [[ "$TEST_ARG" == *test-energyplus* ]]; then + export PATH=${PATH}:${TRAVIS_BUILD_DIR}/${ENERGYPLUS_VERSION}; + pip3 install pandas==1.0.1; + fi; # Execute tests script: diff --git a/Buildings/.copiedFiles.txt b/Buildings/.copiedFiles.txt index 49d394487e7..33dd51f7d4d 100644 --- a/Buildings/.copiedFiles.txt +++ b/Buildings/.copiedFiles.txt @@ -1,5 +1,6 @@ # Do not edit this file unless you know what you are doing. # This file is used by the IBPSA merge script and generated by BuildingsPy. +Buildings/Airflow/Multizone/BaseClasses/Door.mo Buildings/Airflow/Multizone/BaseClasses/DoorDiscretized.mo Buildings/Airflow/Multizone/BaseClasses/ErrorControl.mo Buildings/Airflow/Multizone/BaseClasses/Examples/PowerLaw.mo @@ -18,6 +19,8 @@ Buildings/Airflow/Multizone/BaseClasses/powerLawFixedM.mo Buildings/Airflow/Multizone/BaseClasses/windPressureLowRise.mo Buildings/Airflow/Multizone/DoorDiscretizedOpen.mo Buildings/Airflow/Multizone/DoorDiscretizedOperable.mo +Buildings/Airflow/Multizone/DoorOpen.mo +Buildings/Airflow/Multizone/DoorOperable.mo Buildings/Airflow/Multizone/EffectiveAirLeakageArea.mo Buildings/Airflow/Multizone/Examples/CO2TransportStep.mo Buildings/Airflow/Multizone/Examples/ChimneyShaftNoVolume.mo @@ -40,7 +43,13 @@ Buildings/Airflow/Multizone/Types/densitySelection.mo Buildings/Airflow/Multizone/Types/package.mo Buildings/Airflow/Multizone/Types/package.order Buildings/Airflow/Multizone/UsersGuide.mo +Buildings/Airflow/Multizone/Validation/DoorOpenClosed.mo +Buildings/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mo +Buildings/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mo +Buildings/Airflow/Multizone/Validation/OpenDoorPressure.mo +Buildings/Airflow/Multizone/Validation/OpenDoorTemperature.mo Buildings/Airflow/Multizone/Validation/ThreeRoomsContam.mo +Buildings/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mo Buildings/Airflow/Multizone/Validation/package.mo Buildings/Airflow/Multizone/Validation/package.order Buildings/Airflow/Multizone/ZonalFlow_ACS.mo @@ -110,6 +119,18 @@ Buildings/BoundaryConditions/SolarIrradiation/package.mo Buildings/BoundaryConditions/SolarIrradiation/package.order Buildings/BoundaryConditions/Types.mo Buildings/BoundaryConditions/UsersGuide.mo +Buildings/BoundaryConditions/Validation/BESTEST/WD100.mo +Buildings/BoundaryConditions/Validation/BESTEST/WD200.mo +Buildings/BoundaryConditions/Validation/BESTEST/WD300.mo +Buildings/BoundaryConditions/Validation/BESTEST/WD400.mo +Buildings/BoundaryConditions/Validation/BESTEST/WD500.mo +Buildings/BoundaryConditions/Validation/BESTEST/WD600.mo +Buildings/BoundaryConditions/Validation/BESTEST/package.mo +Buildings/BoundaryConditions/Validation/BESTEST/package.order +Buildings/BoundaryConditions/Validation/IsotropicAndPerezDiffuseRadiation.mo +Buildings/BoundaryConditions/Validation/UsersGuide.mo +Buildings/BoundaryConditions/Validation/package.mo +Buildings/BoundaryConditions/Validation/package.order Buildings/BoundaryConditions/WeatherData/BaseClasses/CheckBlackBodySkyTemperature.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/CheckDewPointTemperature.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/CheckDryBulbTemperature.mo @@ -126,6 +147,7 @@ Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/EquationOfTime.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAbsolutePath.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/GetHeaderElement.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3.mo +Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3LongHeader.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3_NonzeroStart.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/LimitMin.mo Buildings/BoundaryConditions/WeatherData/BaseClasses/Examples/LocalCivilTime.mo @@ -258,6 +280,7 @@ Buildings/Fluid/Actuators/Valves/Examples/package.order Buildings/Fluid/Actuators/Valves/ThreeWayEqualPercentageLinear.mo Buildings/Fluid/Actuators/Valves/ThreeWayLinear.mo Buildings/Fluid/Actuators/Valves/ThreeWayTable.mo +Buildings/Fluid/Actuators/Valves/TwoWayButterfly.mo Buildings/Fluid/Actuators/Valves/TwoWayEqualPercentage.mo Buildings/Fluid/Actuators/Valves/TwoWayLinear.mo Buildings/Fluid/Actuators/Valves/TwoWayPolynomial.mo @@ -1167,11 +1190,14 @@ Buildings/Media/Air.mo Buildings/Media/Antifreeze/BaseClasses/PropertyCoefficients.mo Buildings/Media/Antifreeze/BaseClasses/package.mo Buildings/Media/Antifreeze/BaseClasses/package.order +Buildings/Media/Antifreeze/EthyleneGlycolWater.mo Buildings/Media/Antifreeze/PropyleneGlycolWater.mo +Buildings/Media/Antifreeze/Validation/BaseClasses/EthyleneGlycolWater.mo Buildings/Media/Antifreeze/Validation/BaseClasses/FluidProperties.mo Buildings/Media/Antifreeze/Validation/BaseClasses/PropyleneGlycolWater.mo Buildings/Media/Antifreeze/Validation/BaseClasses/package.mo Buildings/Media/Antifreeze/Validation/BaseClasses/package.order +Buildings/Media/Antifreeze/Validation/EthyleneGlycolWater.mo Buildings/Media/Antifreeze/Validation/PropyleneGlycolWater.mo Buildings/Media/Antifreeze/Validation/package.mo Buildings/Media/Antifreeze/Validation/package.order @@ -1190,7 +1216,11 @@ Buildings/Media/Examples/PropyleneGlycolWaterProperties.mo Buildings/Media/Examples/PropyleneGlycolWaterTemperatureEnthalpyInversion.mo Buildings/Media/Examples/SteamDerivativeCheck.mo Buildings/Media/Examples/SteamProperties.mo +<<<<<<< HEAD Buildings/Media/Examples/SteamSaturatedProperties.mo +======= +Buildings/Media/Examples/SteamSaturationConsistencyCheck.mo +>>>>>>> master Buildings/Media/Examples/SteamTemperatureEnthalpyInversion.mo Buildings/Media/Examples/WaterDerivativeCheck.mo Buildings/Media/Examples/WaterProperties.mo @@ -1251,6 +1281,25 @@ Buildings/Resources/C-Sources/jsonWriterFree.c Buildings/Resources/C-Sources/jsonWriterFree.h Buildings/Resources/C-Sources/jsonWriterInit.c Buildings/Resources/C-Sources/jsonWriterInit.h +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/421810.epw +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/421810.mos +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/700260.epw +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/700260.mos +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/722190.epw +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/722190.mos +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/725650.epw +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/725650.mos +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/855740.epw +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/855740.mos +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/README.md +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/WD600.epw +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/WD600.mos +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/WeatherDriversResultsSubmittal1.json +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/WeatherDriversResultsSubmittal2.json +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/WeatherDriversTestSpec_1.pdf +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/WeatherDriversTestSpec_2.pdf +Buildings/Resources/Data/BoundaryConditions/Validation/BESTEST/generateResults.py +Buildings/Resources/Data/BoundaryConditions/WeatherData/BaseClasses/Examples/weatherWithLongHeader.mos Buildings/Resources/Data/BoundaryConditions/WeatherData/Validation/DecemberToJanuary.mos Buildings/Resources/Data/BoundaryConditions/WeatherData/Validation/TwoYears_DataOnceAMonth_TMY3.mos Buildings/Resources/Data/Fluid/FixedResistances/Validation/PlugFlowPipes/PipeDataAIT151218.mos @@ -1299,6 +1348,7 @@ Buildings/Resources/Images/Controls/Continuous/Examples/SignalRankerY.png Buildings/Resources/Images/Controls/SetPoints/Examples/OccupancySchedule.png Buildings/Resources/Images/Controls/SetPoints/Examples/SupplyReturnTemperatureReset.png Buildings/Resources/Images/Controls/SetPoints/Table.png +Buildings/Resources/Images/Fluid/Actuators/Valves/Examples/TwoWayButterfly.png Buildings/Resources/Images/Fluid/Actuators/Valves/Examples/TwoWayValveTable_kv.png Buildings/Resources/Images/Fluid/Actuators/threeWayValvePressureDropSeries.png Buildings/Resources/Images/Fluid/Actuators/valvePressureDropSeries.png @@ -1365,6 +1415,10 @@ Buildings/Resources/Images/Fluid/Storage/StratifiedHex.png Buildings/Resources/Images/Fluid/Storage/StratifiedHex.svg Buildings/Resources/Images/IBPSA-logo-text.png Buildings/Resources/Images/IBPSA-logo.png +Buildings/Resources/Images/Media/Antifreeze/EthyleneGlycol.py +Buildings/Resources/Images/Media/Antifreeze/EthyleneGlycolWaterError10degC.png +Buildings/Resources/Images/Media/Antifreeze/EthyleneGlycolWaterError20degC.png +Buildings/Resources/Images/Media/Antifreeze/EthyleneGlycolWaterProperties.png Buildings/Resources/Images/Media/Antifreeze/PropyleneGlycolWaterError10degC.pdf Buildings/Resources/Images/Media/Antifreeze/PropyleneGlycolWaterError10degC.png Buildings/Resources/Images/Media/Antifreeze/PropyleneGlycolWaterError20degC.pdf @@ -1419,7 +1473,13 @@ Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Examples/Orifice.mos Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ReverseBuoyancy.mos Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ReverseBuoyancy3Zones.mos Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Examples/ZonalFlow.mos +Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/DoorOpenClosed.mos +Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorBuoyancyDynamic.mos +Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorBuoyancyPressureDynamic.mos +Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorPressure.mos +Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/OpenDoorTemperature.mos Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/ThreeRoomsContam.mos +Buildings/Resources/Scripts/Dymola/Airflow/Multizone/Validation/ThreeRoomsContamDiscretizedDoor.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/SkyTemperature/Examples/BlackBody.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/SolarGeometry/BaseClasses/Examples/AltitudeAngle.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/SolarGeometry/BaseClasses/Examples/Declination.mos @@ -1438,6 +1498,12 @@ Buildings/Resources/Scripts/Dymola/BoundaryConditions/SolarIrradiation/BaseClass Buildings/Resources/Scripts/Dymola/BoundaryConditions/SolarIrradiation/Examples/DiffuseIsotropic.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/SolarIrradiation/Examples/DiffusePerez.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/SolarIrradiation/Examples/DirectTiltedSurface.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/Validation/BESTEST/WD100.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/Validation/BESTEST/WD200.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/Validation/BESTEST/WD300.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/Validation/BESTEST/WD400.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/Validation/BESTEST/WD500.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/Validation/BESTEST/WD600.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/CheckBlackBodySkyTemperature.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/CheckPressure.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/CheckTemperature.mos @@ -1448,6 +1514,7 @@ Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Ex Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetAbsolutePath.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetHeaderElement.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3.mos +Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3LongHeader.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/GetTimeSpanTMY3_NonzeroStart.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/LocalCivilTime.mos Buildings/Resources/Scripts/Dymola/BoundaryConditions/WeatherData/BaseClasses/Examples/SolarTime.mos @@ -1789,6 +1856,7 @@ Buildings/Resources/Scripts/Dymola/Fluid/Storage/Validation/HeatExchangerDynamic Buildings/Resources/Scripts/Dymola/Fluid/Storage/Validation/HeatExchangerLocation.mos Buildings/Resources/Scripts/Dymola/Fluid/Storage/Validation/StratifiedLoadingUnloading.mos Buildings/Resources/Scripts/Dymola/Fluid/Storage/Validation/StratifiedNonUniformInitial.mos +Buildings/Resources/Scripts/Dymola/Media/Antifreeze/Validation/EthyleneGlycolWater.mos Buildings/Resources/Scripts/Dymola/Media/Antifreeze/Validation/PropyleneGlycolWater.mos Buildings/Resources/Scripts/Dymola/Media/Examples/AirDerivativeCheck.mos Buildings/Resources/Scripts/Dymola/Media/Examples/AirProperties.mos @@ -1798,7 +1866,11 @@ Buildings/Resources/Scripts/Dymola/Media/Examples/PropyleneGlycolWaterProperties Buildings/Resources/Scripts/Dymola/Media/Examples/PropyleneGlycolWaterTemperatureEnthalpyInversion.mos Buildings/Resources/Scripts/Dymola/Media/Examples/SteamDerivativeCheck.mos Buildings/Resources/Scripts/Dymola/Media/Examples/SteamProperties.mos +<<<<<<< HEAD Buildings/Resources/Scripts/Dymola/Media/Examples/SteamSaturatedProperties.mos +======= +Buildings/Resources/Scripts/Dymola/Media/Examples/SteamSaturationConsistencyCheck.mos +>>>>>>> master Buildings/Resources/Scripts/Dymola/Media/Examples/SteamTemperatureEnthalpyInversion.mos Buildings/Resources/Scripts/Dymola/Media/Examples/WaterDerivativeCheck.mos Buildings/Resources/Scripts/Dymola/Media/Examples/WaterProperties.mos @@ -1835,6 +1907,7 @@ Buildings/Resources/Scripts/Dymola/Utilities/IO/Files/Examples/CSVReader.mos Buildings/Resources/Scripts/Dymola/Utilities/IO/Files/Examples/CSVWriter.mos Buildings/Resources/Scripts/Dymola/Utilities/IO/Files/Examples/JSONWriter.mos Buildings/Resources/Scripts/Dymola/Utilities/IO/SignalExchange/Examples/FirstOrder.mos +Buildings/Resources/Scripts/Dymola/Utilities/IO/SignalExchange/Examples/WeatherStation.mos Buildings/Resources/Scripts/Dymola/Utilities/Math/Examples/Average.mos Buildings/Resources/Scripts/Dymola/Utilities/Math/Examples/BesselJ0.mos Buildings/Resources/Scripts/Dymola/Utilities/Math/Examples/BesselJ1.mos @@ -1915,8 +1988,12 @@ Buildings/Resources/Scripts/Dymola/Utilities/Time/Validation/CalendarTimeMonths. Buildings/Resources/Scripts/Dymola/Utilities/Time/Validation/CalendarTimeMonthsMinus.mos Buildings/Resources/Scripts/Dymola/Utilities/Time/Validation/CalendarTimeMonthsPlus.mos Buildings/Resources/Scripts/JModelica/buildingspy_to_csv.py +<<<<<<< HEAD Buildings/Resources/Scripts/travis/bin/dymola Buildings/Resources/Scripts/travis/bin/jm_ipython.sh +======= +Buildings/Resources/Scripts/travis/dymola/dymola +>>>>>>> master Buildings/Resources/bin/ConvertWeatherData.jar Buildings/Resources/src/convertEPW/Makefile Buildings/Resources/src/convertEPW/doc/ConvertWeatherData.html @@ -1927,6 +2004,38 @@ Buildings/Resources/src/convertEPW/doc/deprecated-list.html Buildings/Resources/src/convertEPW/doc/help-doc.html Buildings/Resources/src/convertEPW/doc/index-all.html Buildings/Resources/src/convertEPW/doc/index.html +<<<<<<< HEAD +======= +Buildings/Resources/src/convertEPW/doc/jquery/external/jquery/jquery.js +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-bg_glass_65_dadada_1x400.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-bg_glass_75_dadada_1x400.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-icons_222222_256x240.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-icons_2e83ff_256x240.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-icons_454545_256x240.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-icons_888888_256x240.png +Buildings/Resources/src/convertEPW/doc/jquery/images/ui-icons_cd0a0a_256x240.png +Buildings/Resources/src/convertEPW/doc/jquery/jquery-3.3.1.js +Buildings/Resources/src/convertEPW/doc/jquery/jquery-3.5.1.js +Buildings/Resources/src/convertEPW/doc/jquery/jquery-migrate-3.0.1.js +Buildings/Resources/src/convertEPW/doc/jquery/jquery-ui.css +Buildings/Resources/src/convertEPW/doc/jquery/jquery-ui.js +Buildings/Resources/src/convertEPW/doc/jquery/jquery-ui.min.css +Buildings/Resources/src/convertEPW/doc/jquery/jquery-ui.min.js +Buildings/Resources/src/convertEPW/doc/jquery/jquery-ui.structure.css +Buildings/Resources/src/convertEPW/doc/jquery/jquery-ui.structure.min.css +Buildings/Resources/src/convertEPW/doc/jquery/jszip-utils/dist/jszip-utils-ie.js +Buildings/Resources/src/convertEPW/doc/jquery/jszip-utils/dist/jszip-utils-ie.min.js +Buildings/Resources/src/convertEPW/doc/jquery/jszip-utils/dist/jszip-utils.js +Buildings/Resources/src/convertEPW/doc/jquery/jszip-utils/dist/jszip-utils.min.js +Buildings/Resources/src/convertEPW/doc/jquery/jszip/dist/jszip.js +Buildings/Resources/src/convertEPW/doc/jquery/jszip/dist/jszip.min.js +Buildings/Resources/src/convertEPW/doc/member-search-index.js +Buildings/Resources/src/convertEPW/doc/member-search-index.zip +>>>>>>> master Buildings/Resources/src/convertEPW/doc/overview-tree.html Buildings/Resources/src/convertEPW/doc/package-frame.html Buildings/Resources/src/convertEPW/doc/package-list @@ -2049,6 +2158,7 @@ Buildings/Utilities/IO/SignalExchange/Examples/BaseClasses/OriginalModel.mo Buildings/Utilities/IO/SignalExchange/Examples/BaseClasses/package.mo Buildings/Utilities/IO/SignalExchange/Examples/BaseClasses/package.order Buildings/Utilities/IO/SignalExchange/Examples/FirstOrder.mo +Buildings/Utilities/IO/SignalExchange/Examples/WeatherStation.mo Buildings/Utilities/IO/SignalExchange/Examples/package.mo Buildings/Utilities/IO/SignalExchange/Examples/package.order Buildings/Utilities/IO/SignalExchange/Overwrite.mo @@ -2056,6 +2166,7 @@ Buildings/Utilities/IO/SignalExchange/Read.mo Buildings/Utilities/IO/SignalExchange/SignalTypes/SignalsForKPIs.mo Buildings/Utilities/IO/SignalExchange/SignalTypes/package.mo Buildings/Utilities/IO/SignalExchange/SignalTypes/package.order +Buildings/Utilities/IO/SignalExchange/WeatherStation.mo Buildings/Utilities/IO/SignalExchange/package.mo Buildings/Utilities/IO/SignalExchange/package.order Buildings/Utilities/IO/package.mo diff --git a/Buildings/Air/Systems/SingleZone/VAV/ChillerDXHeatingEconomizerController.mo b/Buildings/Air/Systems/SingleZone/VAV/BaseClasses/ControllerChillerDXHeatingEconomizer.mo similarity index 55% rename from Buildings/Air/Systems/SingleZone/VAV/ChillerDXHeatingEconomizerController.mo rename to Buildings/Air/Systems/SingleZone/VAV/BaseClasses/ControllerChillerDXHeatingEconomizer.mo index a71c8511b14..20e98caa8a3 100644 --- a/Buildings/Air/Systems/SingleZone/VAV/ChillerDXHeatingEconomizerController.mo +++ b/Buildings/Air/Systems/SingleZone/VAV/BaseClasses/ControllerChillerDXHeatingEconomizer.mo @@ -1,5 +1,5 @@ -within Buildings.Air.Systems.SingleZone.VAV; -model ChillerDXHeatingEconomizerController +within Buildings.Air.Systems.SingleZone.VAV.BaseClasses; +model ControllerChillerDXHeatingEconomizer "Controller for single zone VAV system" extends Modelica.Blocks.Icons.Block; @@ -125,6 +125,34 @@ model ChillerDXHeatingEconomizerController final reverseAction=true) "Cooling coil valve controller" annotation (Placement(transformation(extent={{0,-30},{20,-10}}))); +<<<<<<< HEAD:Buildings/Air/Systems/SingleZone/VAV/ChillerDXHeatingEconomizerController.mo +======= + Buildings.Controls.OBC.CDL.Logical.Switch swi + "Switch the outdoor air fraction to 0 when in unoccupied mode" + annotation (Placement(transformation(extent={{0,20},{20,40}}))); + Buildings.Controls.OBC.CDL.Interfaces.BooleanInput uOcc + "Current occupancy period, true if it is in occupant period" + annotation (Placement(transformation(extent={{-140,-20},{-100,20}}), + iconTransformation(extent={{-140,-20},{-100,20}}))); + Buildings.Controls.OBC.CDL.Continuous.Sources.Constant con(k=0) + "Zero outside air fraction" + annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); + Buildings.Controls.OBC.CDL.Logical.Switch swiFan "Switch fan on" + annotation (Placement(transformation(extent={{70,120},{90,140}}))); + Buildings.Controls.OBC.CDL.Continuous.Hysteresis hysHea( + final uLow=0.01, + final uHigh=0.05) + "Hysteresis for heating" + annotation (Placement(transformation(extent={{-30,120},{-10,140}}))); + Buildings.Controls.OBC.CDL.Logical.MultiOr orFan(nu=3) + "Switch fan on if heating, cooling, or occupied" + annotation (Placement(transformation(extent={{40,94},{60,114}}))); + Modelica.Blocks.Logical.And and1 "Logical and" + annotation (Placement(transformation(extent={{70,-40},{90,-20}}))); + Buildings.Controls.OBC.CDL.Continuous.Greater chiOnTRoo(h=1) + "Chiller on signal based on room temperature" + annotation (Placement(transformation(extent={{20,-80},{40,-60}}))); +>>>>>>> master:Buildings/Air/Systems/SingleZone/VAV/BaseClasses/ControllerChillerDXHeatingEconomizer.mo protected Modelica.Blocks.Sources.Constant TSetSupChiConst( @@ -143,6 +171,7 @@ protected annotation (Placement(transformation(extent={{-60,-30},{-40,-10}}))); equation +<<<<<<< HEAD:Buildings/Air/Systems/SingleZone/VAV/ChillerDXHeatingEconomizerController.mo connect(conMinOAFra.y,conEco. minOAFra) annotation (Line(points={{-49,48},{ -26,48},{-1,48}}, color={0,0,127})); connect(TSetSupAirConst.y, conEco.TMixSet) annotation (Line(points={{-39,-20}, @@ -189,6 +218,75 @@ equation connect(hysChiPla.y, chiOn) annotation (Line(points={{61,-40},{80,-40},{110, -40}}, color={255,0,255})); annotation (Icon(graphics={Line(points={{-100,-100},{0,2},{-100,100}}, color= +======= + connect(TSetSupAirConst.y,conCooVal. u_s) annotation (Line(points={{-19,-50}, + {-10,-50},{-10,-20},{-2,-20}}, color={0,0,127})); + connect(conSup.TRoo, TRoo) annotation (Line(points={{-61,84},{-74,84},{-74, + -80},{-120,-80}}, color={0,0,127})); + connect(conEco.TRet, TRoo) annotation (Line(points={{39,72},{-22,72},{-22,20}, + {-86,20},{-86,-80},{-120,-80}}, color={0,0,127})); + connect(conSup.yHea, yHea) annotation (Line(points={{-39,86},{88,86},{88,54},{ + 110,54}}, color={0,0,127})); + connect(conEco.yOutAirFra, yOutAirFra) annotation (Line(points={{61,70},{80,70}, + {80,20},{110,20}}, color={0,0,127})); + connect(conCooVal.y, yCooCoiVal) annotation (Line(points={{21,-20},{40,-20},{40,-20},{110,-20}}, + color={0,0,127})); + connect(TSetSupChiConst.y, TSetSupChi) annotation (Line(points={{81,-90},{110, + -90}}, color={0,0,127})); + connect(conCooVal.u_m, TSup) annotation (Line(points={{10,-32},{10,-110},{-120,-110}}, + color={0,0,127})); + connect(conMinOAFra.y, swi.u1) annotation (Line(points={{-39,50},{-30,50},{-30, + 38},{-2,38}}, color={0,0,127})); + connect(uOcc, swi.u2) annotation (Line(points={{-120,0},{-14,0},{-14,30},{-2,30}}, + color={255,0,255})); + connect(swi.y, conEco.minOAFra) annotation (Line(points={{22,30},{30,30},{30, + 68},{39,68}}, color={0,0,127})); + connect(con.y, swi.u3) annotation (Line(points={{-38,-20},{-30,-20},{-30,-10}, + {-6,-10},{-6,22},{-2,22}}, color={0,0,127})); + connect(con.y, swiFan.u3) annotation (Line(points={{-38,-20},{-30,-20},{-30, + -10},{-6,-10},{-6,122},{68,122}}, color={0,0,127})); + connect(conSup.yFan, swiFan.u1) annotation (Line(points={{-39,94},{18,94},{18, + 138},{68,138}}, color={0,0,127})); + connect(swiFan.y, yFan) annotation (Line(points={{92,130},{96,130},{96,90},{ + 110,90}}, color={0,0,127})); + connect(conSup.yHea, hysHea.u) annotation (Line(points={{-39,86},{-34,86},{ + -34,130},{-32,130}}, color={0,0,127})); + connect(swiFan.u2, orFan.y) annotation (Line(points={{68,130},{64,130},{64,104},{62,104}}, + color={255,0,255})); + connect(hysHea.y, orFan.u[1]) annotation (Line(points={{-8,130},{24,130},{24, + 108.667},{38,108.667}}, + color={255,0,255})); + connect(conEco.TMixSet, conCooVal.u_s) annotation (Line(points={{39,78},{-10, + 78},{-10,-20},{-2,-20}}, color={0,0,127})); + connect(and1.y, chiOn) annotation (Line(points={{91,-30},{96,-30},{96,-54},{110, + -54}}, color={255,0,255})); + connect(conEco.yCoiSta, and1.u1) annotation (Line(points={{61,62},{64,62},{64, + -30},{68,-30}}, color={255,0,255})); + connect(uOcc, orFan.u[2]) annotation (Line(points={{-120,0},{-14,0},{-14,104}, + {38,104}}, color={255,0,255})); + connect(TMix, conEco.TMix) annotation (Line(points={{-120,30},{-26,30},{-26,75}, + {39,75}}, color={0,0,127})); + connect(TOut, conEco.TOut) annotation (Line(points={{-120,-40},{-66,-40},{-66, + 16},{-18,16},{-18,65},{39,65}}, color={0,0,127})); + connect(TRoo, chiOnTRoo.u1) annotation (Line(points={{-120,-80},{-74,-80},{-74, + -70},{18,-70}}, color={0,0,127})); + connect(TSetRooCoo, chiOnTRoo.u2) annotation (Line(points={{-120,60},{-80,60}, + {-80,-78},{18,-78}}, color={0,0,127})); + connect(TSetRooCoo, conSup.TSetRooCoo) annotation (Line(points={{-120,60},{-80, + 60},{-80,90},{-61,90}}, color={0,0,127})); + connect(TSetRooHea, conSup.TSetRooHea) annotation (Line(points={{-120,120},{-80, + 120},{-80,96},{-61,96}}, color={0,0,127})); + connect(chiOnTRoo.y, and1.u2) annotation (Line(points={{42,-70},{50,-70},{50,-38}, + {68,-38}}, color={255,0,255})); + connect(chiOnTRoo.y, conEco.cooSta) annotation (Line(points={{42,-70},{50,-70}, + {50,40},{34,40},{34,62},{39,62}}, color={255,0,255})); + + connect(chiOnTRoo.y, orFan.u[3]) annotation (Line(points={{42,-70},{50,-70},{ + 50,40},{34,40},{34,99.3333},{38,99.3333}}, color={255,0,255})); + annotation ( + defaultComponentName="conChiDXHeaEco", + Icon(graphics={Line(points={{-100,-100},{0,2},{-100,100}}, color= +>>>>>>> master:Buildings/Air/Systems/SingleZone/VAV/BaseClasses/ControllerChillerDXHeatingEconomizer.mo {0,0,0})}), Documentation(info="
This is the controller for the VAV system with economizer, heating coil and cooling coil. @@ -196,6 +294,18 @@ This is the controller for the VAV system with economizer, heating coil and cool ", revisions="