diff --git a/.devcontainer/Dockerfile.codespace b/.devcontainer/Dockerfile.codespace new file mode 100644 index 00000000..35a18c13 --- /dev/null +++ b/.devcontainer/Dockerfile.codespace @@ -0,0 +1,20 @@ +FROM fedora:37 + +RUN dnf -y update \ + && dnf -y install \ + git \ + gcc \ + gcc-c++ \ + gnuplot \ + netcdf-devel \ + python3 \ + python3-pip \ + python-devel \ + tree \ + && dnf clean all + +COPY . /workspaces/music-box + +WORKDIR /workspaces/music-box + +RUN pip3 install -e '.[dev]' \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000..ea3550dd --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,10 @@ +{ + "name": "MusicBox", + "image": "ghcr.io/ncar/music-box:latest", + "extensions": [ + "ms-python.python", + ], + "settings": { + }, + "postCreateCommand": "" +} \ No newline at end of file diff --git a/.github/workflows/CI_Tests.yml b/.github/workflows/CI_Tests.yml index 01bae148..fded29d1 100644 --- a/.github/workflows/CI_Tests.yml +++ b/.github/workflows/CI_Tests.yml @@ -26,18 +26,36 @@ jobs: python-version: '3.9' cache: 'pip' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - - name: Install this package - run: pip install -e . + run: pip install -e '.[dev]' - name: Run pytest - run: cd tests && pytest + run: pytest - name: Run the smoke tests run: | - music_box configFile=tests/configs/analytical_config/my_config.json outputDir=tests/configs/analytical_config + music_box -c src/acom_music_box/examples/configs/analytical/my_config.json -o output.csv + music_box -e Analytical -o output.csv + music_box -e Analytical -o output.csv -vv --color-output + waccmToMusicBox waccmDir="./sample_waccm_data" date="20240904" time="07:00" latitude=3.1 longitude=101.7 + - name: Check for config.zip + if: runner.os != 'Windows' + run: | + if [ -f "./config.zip" ]; then + echo "config.zip created successfully" + else + echo "config.zip not found" + exit 1 + fi + + - name: Check for config.zip (Windows) + if: runner.os == 'Windows' + run: | + if (Test-Path -Path "./config.zip") { + Write-Output "config.zip created successfully" + } else { + Write-Output "config.zip not found" + exit 1 + } + shell: pwsh \ No newline at end of file diff --git a/.github/workflows/deploy_codespaces_image.yml b/.github/workflows/deploy_codespaces_image.yml new file mode 100644 index 00000000..bf55b2a1 --- /dev/null +++ b/.github/workflows/deploy_codespaces_image.yml @@ -0,0 +1,53 @@ +name: Build and Deploy Docker Image + +on: + push: + branches: + - main + tags: + - 'v*.*.*' + workflow_dispatch: + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build Docker image + uses: docker/build-push-action@v4 + with: + context: . + file: .devcontainer/Dockerfile.codespace + push: false + tags: ghcr.io/ncar/music-box:build-temp + + - name: Build and push Docker image (latest) + if: github.ref == 'refs/heads/main' + uses: docker/build-push-action@v4 + with: + context: . + file: .devcontainer/Dockerfile.codespace + push: true + tags: ghcr.io/ncar/music-box:latest + + - name: Build and push Docker image (tagged) + if: startsWith(github.ref, 'refs/tags/') + uses: docker/build-push-action@v4 + with: + context: . + file: .devcontainer/Dockerfile.codespace + push: true + tags: ghcr.io/ncar/music-box:${{ github.ref_name }} diff --git a/.github/workflows/pep8_autoformat.yml b/.github/workflows/pep8_autoformat.yml index 9b9e9fa2..8f0268b1 100644 --- a/.github/workflows/pep8_autoformat.yml +++ b/.github/workflows/pep8_autoformat.yml @@ -15,7 +15,7 @@ jobs: - name: autopep8 uses: peter-evans/autopep8@v2 with: - args: --recursive --in-place --aggressive --aggressive . + args: --recursive --in-place --aggressive --aggressive --max-line-length 120 . - name: Check for changes id: check-changes diff --git a/README.md b/README.md index a0cdff9f..7278c28c 100644 --- a/README.md +++ b/README.md @@ -6,56 +6,58 @@ MusicBox: A MUSICA model for boxes and columns. [![License](https://img.shields.io/github/license/NCAR/music-box.svg)](https://github.com/NCAR/music-box/blob/main/LICENSE) [![CI Status](https://github.com/NCAR/music-box/actions/workflows/CI_Tests.yml/badge.svg)](https://github.com/NCAR/music-box/actions/workflows/CI_Tests.yml) -[![PyPI version](https://badge.fury.io/py/acom_music_box.svg)](https://pypi.org/p/acom_music_box) +[![PyPI version](https://badge.fury.io/py/acom-music-box.svg)](https://badge.fury.io/py/acom-music-box) Copyright (C) 2020 National Center for Atmospheric Research # Installation +``` +pip install acom_music_box +``` -The project is configured to be installed using `pip` by the `pyproject.toml` file. +# Command line tool +MusicBox provides a command line tool that can run configurations as well as some pre-configured examples. Basic plotting can be done if gnuplot is installed. -To install the `music-box` package into a Python environment, run the following command from the root directory: +Checkout the command line options ``` -pip install . +music_box -h ``` -The package is also available on PyPi and can be installed in any Python environment through: +Run an example. Notice that the output, in csv format, is printed to the terminal. ``` -pip install acom_music_box +music_box -e Chapman ``` -# Tests - -The tests directory contains 4 different tests that can be ran with [PyTest](https://docs.pytest.org/en/8.2.x/). PyTest can be installed by running: +You can also run your own configuration ``` -pip install pytest +music_box -c my_config.json ``` -After PyTest is intalled, the tests can be ran through the following commands from the root directory: +Output can be saved to a file ``` -cd tests -pytest +music_box -e Chapman -o output.csv ``` -# Documentation - -MusicBox documentation can be built using [Sphinx](https://www.sphinx-doc.org/en/master/). Sphinx can be installed by running: +And, if you have gnuplot installed, some basic plots can be made to show some resulting concentrations ``` -pip install sphinx +music_box -e Chapman -o output.csv --color-output --plot CONC.O1D ``` -After installing Sphinx, the documentation can be generated by running the following commands in the root directory: +# Development and Contributing + +For local development, install `music-box` as an editable installation: ``` -cd doc/sphinx_files -make html +pip install -e '.[dev]' ``` -Then, open `music-box/doc/sphinx_files/build/html/index.html` in a browser. +## Tests -The documentation includes more detailed instructions for configuring the model, along with developer resources. +``` +pytest +``` diff --git a/examples/camp_examples/bright_chamber/use_case_7/camp_data/config.json b/examples/camp_examples/bright_chamber/use_case_7/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/examples/camp_examples/bright_chamber/use_case_7/camp_data/mechanism.json b/examples/camp_examples/bright_chamber/use_case_7/camp_data/mechanism.json deleted file mode 100644 index bc6b69de..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/camp_data/mechanism.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O2" : { } - }, - "products" : { - "O" : { "yield" : 2.0 } - }, - "MUSICA name" : "O2_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O1D" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_2" - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "N2" : { } - }, - "products" : { - "O" : { }, - "N2" : { } - }, - "A" : 2.15e-11, - "C" : 110.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "O2" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "A" : 3.3e-11, - "C" : 55.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O3" : { } - }, - "products" : { - "O2" : { "yield" : 2.0 } - }, - "A" : 8.0e-12, - "C" : -2060.00 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O2" : { }, - "M" : { } - }, - "products" : { - "O3" : { }, - "M" : { } - }, - "A" : 6.0e-34, - "B" : 2.4 - }, - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "CO2", - "MUSICA name" : "CO2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "H2O", - "MUSICA name" : "H2O" - } - ] - } - ] -} - diff --git a/examples/camp_examples/bright_chamber/use_case_7/camp_data/species.json b/examples/camp_examples/bright_chamber/use_case_7/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/examples/camp_examples/bright_chamber/use_case_7/emissions.csv b/examples/camp_examples/bright_chamber/use_case_7/emissions.csv deleted file mode 100644 index 2553005b..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/emissions.csv +++ /dev/null @@ -1,5 +0,0 @@ -time.hr, EMIS.O1D, EMIS.O, EMIS.O3 -0.0, 0.0, 0.0, 0.0 -0.2, 0.1, 0.05, 0.05 -1.0, 0.2, 0.1, 0.1 -1.5, 0.0, 0.0, 0.0 diff --git a/examples/camp_examples/bright_chamber/use_case_7/initial.csv b/examples/camp_examples/bright_chamber/use_case_7/initial.csv deleted file mode 100644 index 2af07f8d..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/examples/camp_examples/bright_chamber/use_case_7/parking_lot_photo_rates.nc b/examples/camp_examples/bright_chamber/use_case_7/parking_lot_photo_rates.nc deleted file mode 100644 index fd3ba0f2..00000000 Binary files a/examples/camp_examples/bright_chamber/use_case_7/parking_lot_photo_rates.nc and /dev/null differ diff --git a/examples/camp_examples/bright_chamber/use_case_7/use_case_7_config.json b/examples/camp_examples/bright_chamber/use_case_7/use_case_7_config.json deleted file mode 100644 index 6cd6ef43..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/use_case_7_config.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5, - "simulation start" : { - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "evolving conditions" : { - "emissions.csv" : { - "properties" : { - "time.hr" : { - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - } - } - }, - "wall_loss_rates_011519.txt" : { - "delimiter" : ";", - "time axis" : "columns", - "properties" : { - "simtime" : { - "MusicBox name" : "time", - "units" : "hr", - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "*" : { - "MusicBox name" : "LOSS.*", - "units" : "min-1" - } - } - }, - "parking_lot_photo_rates.nc" : { - "time offset" : { "years" : 15 }, - "properties" : { - "*" : { "MusicBox name" : "PHOT.*" }, - "time" : { - "MusicBox name" : "time", - "shift first entry to" : { - "year" : 2020, - "month" : 1, - "day" : 1, - "time zone" : "UTC-8" - } - } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/examples/camp_examples/bright_chamber/use_case_7/wall_loss_rates_011519.txt b/examples/camp_examples/bright_chamber/use_case_7/wall_loss_rates_011519.txt deleted file mode 100644 index fa5182fa..00000000 --- a/examples/camp_examples/bright_chamber/use_case_7/wall_loss_rates_011519.txt +++ /dev/null @@ -1,6 +0,0 @@ -simtime; 0.0; 0.3; 0.6; 0.9; 1.2 -N2; 0.010; 0.012; 0.013; 0.014; 0.015 -O2; 0.015; 0.016; 0.017; 0.018; 0.019 -Ar; 0.015; 0.016; 0.017; 0.018; 0.019 -CO2; 0.010; 0.012; 0.013; 0.014; 0.015 -H2O; 0.010; 0.012; 0.013; 0.014; 0.015 diff --git a/examples/camp_examples/bright_chamber/use_case_8/camp_data/config.json b/examples/camp_examples/bright_chamber/use_case_8/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/examples/camp_examples/bright_chamber/use_case_8/camp_data/mechanism.json b/examples/camp_examples/bright_chamber/use_case_8/camp_data/mechanism.json deleted file mode 100644 index d3a78ae3..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/camp_data/mechanism.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - }, - { - "type" : "EMISSION", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "EMISSION", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "EMISSION", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "CO2", - "MUSICA name" : "CO2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "H2O", - "MUSICA name" : "H2O" - } - ] - } - ] -} - diff --git a/examples/camp_examples/bright_chamber/use_case_8/camp_data/species.json b/examples/camp_examples/bright_chamber/use_case_8/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/examples/camp_examples/bright_chamber/use_case_8/emissions.csv b/examples/camp_examples/bright_chamber/use_case_8/emissions.csv deleted file mode 100644 index 2553005b..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/emissions.csv +++ /dev/null @@ -1,5 +0,0 @@ -time.hr, EMIS.O1D, EMIS.O, EMIS.O3 -0.0, 0.0, 0.0, 0.0 -0.2, 0.1, 0.05, 0.05 -1.0, 0.2, 0.1, 0.1 -1.5, 0.0, 0.0, 0.0 diff --git a/examples/camp_examples/bright_chamber/use_case_8/emit_all.csv b/examples/camp_examples/bright_chamber/use_case_8/emit_all.csv deleted file mode 100644 index 0f4445c6..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/emit_all.csv +++ /dev/null @@ -1,4 +0,0 @@ -time, EMIS.O, EMIS.O1D, EMIS.O3, EMIS.N2, EMIS.Ar, EMIS.O2 -0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 -20.0, 2.0, 1.0, 1.0, 2.0, 1.0, 1.0 -30.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 diff --git a/examples/camp_examples/bright_chamber/use_case_8/initial.csv b/examples/camp_examples/bright_chamber/use_case_8/initial.csv deleted file mode 100644 index 98cf0ff3..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.O& CONC.O1D& CONC.O3 &CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -1.0e-7& 1.0e-6& 1.0e-4& 3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/examples/camp_examples/bright_chamber/use_case_8/parking_lot_photo_rates.nc b/examples/camp_examples/bright_chamber/use_case_8/parking_lot_photo_rates.nc deleted file mode 100644 index fd3ba0f2..00000000 Binary files a/examples/camp_examples/bright_chamber/use_case_8/parking_lot_photo_rates.nc and /dev/null differ diff --git a/examples/camp_examples/bright_chamber/use_case_8/use_case_8_config.json b/examples/camp_examples/bright_chamber/use_case_8/use_case_8_config.json deleted file mode 100644 index 77c4a885..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/use_case_8_config.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5, - "simulation start" : { - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&", - "properties" : { - "CONC.O3" : { "variability" : "tethered" } - }, - "linear combinations" : { - "atomic oxygen" : { - "properties" : { - "CONC.O" : { }, - "CONC.O1D" : { } - }, - "scale factor" : 1.2 - } - } - } - }, - "evolving conditions" : { - "emissions.csv" : { - "properties" : { - "time.hr" : { - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - } - } - }, - "wall_loss_rates_011519.txt" : { - "delimiter" : ";", - "time axis" : "columns", - "properties" : { - "simtime" : { - "MusicBox name" : "time", - "units" : "hr", - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "*" : { - "MusicBox name" : "LOSS.*", - "units" : "min-1" - } - } - }, - "parking_lot_photo_rates.nc" : { - "time offset" : { "years" : 15 }, - "properties" : { - "*" : { "MusicBox name" : "PHOT.*" }, - "time" : { - "MusicBox name" : "time", - "shift first entry to" : { - "year" : 2020, - "month" : 1, - "day" : 1, - "time zone" : "UTC-8" - } - } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/examples/camp_examples/bright_chamber/use_case_8/wall_loss_rates_011519.txt b/examples/camp_examples/bright_chamber/use_case_8/wall_loss_rates_011519.txt deleted file mode 100644 index fa5182fa..00000000 --- a/examples/camp_examples/bright_chamber/use_case_8/wall_loss_rates_011519.txt +++ /dev/null @@ -1,6 +0,0 @@ -simtime; 0.0; 0.3; 0.6; 0.9; 1.2 -N2; 0.010; 0.012; 0.013; 0.014; 0.015 -O2; 0.015; 0.016; 0.017; 0.018; 0.019 -Ar; 0.015; 0.016; 0.017; 0.018; 0.019 -CO2; 0.010; 0.012; 0.013; 0.014; 0.015 -H2O; 0.010; 0.012; 0.013; 0.014; 0.015 diff --git a/examples/camp_examples/dark_chamber/use_case_1/camp_data/config.json b/examples/camp_examples/dark_chamber/use_case_1/camp_data/config.json deleted file mode 100644 index af4e8619..00000000 --- a/examples/camp_examples/dark_chamber/use_case_1/camp_data/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json" - ] -} diff --git a/examples/camp_examples/dark_chamber/use_case_1/camp_data/species.json b/examples/camp_examples/dark_chamber/use_case_1/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/examples/camp_examples/dark_chamber/use_case_1/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/examples/camp_examples/dark_chamber/use_case_1/use_case_1_config.json b/examples/camp_examples/dark_chamber/use_case_1/use_case_1_config.json deleted file mode 100644 index b1ae76a7..00000000 --- a/examples/camp_examples/dark_chamber/use_case_1/use_case_1_config.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "chemical species" : { - "N2" : { "initial value [mol m-3]" : 3.29e1 }, - "O2" : { "initial value [mol m-3]" : 8.84e0 }, - "Ar" : { "initial value [mol m-3]" : 3.92e-1 }, - "CO2" : { "initial value [mol m-3]" : 1.69e-2 }, - "O" : { "initial value [mol m-3]" : 1.0e-5 } - }, - "environmental conditions" : { - "temperature" : { "initial value [K]" : 298.0 }, - "pressure" : { "initial value [atm]" : 1.0 } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} - diff --git a/examples/camp_examples/dark_chamber/use_case_2/camp_data/config.json b/examples/camp_examples/dark_chamber/use_case_2/camp_data/config.json deleted file mode 100644 index af4e8619..00000000 --- a/examples/camp_examples/dark_chamber/use_case_2/camp_data/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json" - ] -} diff --git a/examples/camp_examples/dark_chamber/use_case_2/camp_data/species.json b/examples/camp_examples/dark_chamber/use_case_2/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/examples/camp_examples/dark_chamber/use_case_2/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/examples/camp_examples/dark_chamber/use_case_2/initial.csv b/examples/camp_examples/dark_chamber/use_case_2/initial.csv deleted file mode 100644 index f422d6fa..00000000 --- a/examples/camp_examples/dark_chamber/use_case_2/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2, CONC.O2, CONC.Ar, CONC.CO2, CONC.O, ENV.temperature, ENV.pressure -3.29e1, 8.84, 3.92e-1, 1.69e-2, 1.0e-5, 298.0, 1.0 diff --git a/examples/camp_examples/dark_chamber/use_case_2/use_case_2_config.json b/examples/camp_examples/dark_chamber/use_case_2/use_case_2_config.json deleted file mode 100644 index d6f6ed3d..00000000 --- a/examples/camp_examples/dark_chamber/use_case_2/use_case_2_config.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "properties" : { - "ENV.pressure" : { "units" : "atm" } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/examples/camp_examples/dark_chamber/use_case_3/camp_data/config.json b/examples/camp_examples/dark_chamber/use_case_3/camp_data/config.json deleted file mode 100644 index af4e8619..00000000 --- a/examples/camp_examples/dark_chamber/use_case_3/camp_data/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json" - ] -} diff --git a/examples/camp_examples/dark_chamber/use_case_3/camp_data/species.json b/examples/camp_examples/dark_chamber/use_case_3/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/examples/camp_examples/dark_chamber/use_case_3/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/examples/camp_examples/dark_chamber/use_case_3/initial.csv b/examples/camp_examples/dark_chamber/use_case_3/initial.csv deleted file mode 100644 index d53e9b6d..00000000 --- a/examples/camp_examples/dark_chamber/use_case_3/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& CONC.O& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 1.0e-5& 298.0& 1.0 diff --git a/examples/camp_examples/dark_chamber/use_case_3/use_case_3_config.json b/examples/camp_examples/dark_chamber/use_case_3/use_case_3_config.json deleted file mode 100644 index 26285c60..00000000 --- a/examples/camp_examples/dark_chamber/use_case_3/use_case_3_config.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/pyproject.toml b/pyproject.toml index 79d6feeb..43cb512b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,11 +21,23 @@ classifiers = ["License :: OSI Approved :: Apache Software License"] dynamic = ["version", "description"] dependencies = [ - "musica==0.7.3" + "musica==0.7.3", + "xarray", + "colorlog", + "pandas", + "tqdm", + "netcdf4" ] [project.urls] Home = "https://github.com/NCAR/music-box" [project.scripts] -music_box = "acom_music_box.music_box_main:main" +music_box = "acom_music_box.main:main" +waccmToMusicBox = "acom_music_box.tools.waccmToMusicBox:main" + +[project.optional-dependencies] +dev = [ + "pytest", + "pytest-mock" +] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 364caa52..00000000 --- a/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -musica==0.7.3 -pandas -pipx -pytest -twine \ No newline at end of file diff --git a/sample_waccm_data/README.md b/sample_waccm_data/README.md new file mode 100644 index 00000000..73769d84 --- /dev/null +++ b/sample_waccm_data/README.md @@ -0,0 +1,29 @@ +# WACCM + +This is data downloaded from [ACOM's data repository](https://www.acom.ucar.edu/waccm/DATA/). Each file has been reduced to have only ground level data and only chemical species needed for the IGAC demo. +This brings the file size from 8GB per file to 93MB per file, small enough that it can fit in github and be easily used for the demo. This data is temporary and will be removed after the demo. + + +The script to reduce the data is this: + + +``` +import xarray as xr +import os + +keep = ['ALKNIT', 'AODVISdn', 'BCARY', 'BENZENE', 'BIGALD', 'BIGALD1', 'BIGALD2', 'BIGALD3', 'BIGALD4', 'BIGALK', 'BIGENE', 'C2H2', 'C2H4', 'C2H5OH', 'C2H6', 'C3H6', 'C3H8', 'CH2O', 'CH3CHO', 'CH3CN', 'CH3COCH3', 'CH3COCHO', 'CH3COOH', 'CH3OH', 'CH3OOH', 'CH4', 'CHBR3', 'CO', 'CO01', 'CO02', 'CO03', 'CO04', 'CO05', 'CO06', 'CO07', 'CO08', 'CO09', 'CRESOL', 'DMS', 'GLYOXAL', 'H2O', 'H2O2', 'HCN', 'HCOOH', 'HNO3', 'HO2', 'HO2NO2', 'HONITR', 'HYAC', 'ISOP', 'ISOPNITA', 'ISOPNITB', 'MACR', 'MEK', 'MPAN', 'MTERP', 'MVK', 'M_dens', 'N2O', 'N2O5', 'NH3', 'NH4', 'NO', 'NO2', 'NO3', 'NOA', 'O3', 'O3S', 'OH', 'ONITR', 'P0', 'PAN', 'PBZNIT', 'PHENOL', 'PS', 'Q', 'SO2', 'T', 'TERPNIT', 'TOLUENE', 'XYLENES', 'Z3', 'ap', 'bc_a1', 'bc_a4', 'ch4vmr', 'co2vmr', 'date', 'dst_a1', 'dst_a2', 'dst_a3', 'f107', 'f107a', 'f107p', 'f11vmr', 'f12vmr', 'kp', 'mdt', 'n2ovmr', 'ncl_a1', 'ncl_a2', 'ncl_a3', 'num_a1', 'num_a2', 'num_a3', 'pom_a1', 'pom_a4', 'so4_a1', 'so4_a2', 'so4_a3', 'soa1_a1', 'soa1_a2', 'soa2_a1', 'soa2_a2', 'soa3_a1', 'soa3_a2', 'soa4_a1', 'soa4_a2', 'soa5_a1', 'soa5_a2', 'soa_a1', 'soa_a2', 'sol_tsi',] + +for root, _, files in os.walk('data'): + for file in files: + file_path = os.path.join(root, file) + ds = xr.open_dataset(file_path) + # Select the second time index and nearest lev, expand both dimensions + ds_sel = ds[keep].isel(time=1).sel(lev=1000.0, method="nearest").expand_dims(['lev', 'time']) + ds_sel.to_netcdf(f'sample_waccm_data/{file}') +``` + +You can extract a coniguraiton file with + +``` +waccmToMusicBox waccmDir="./sample_waccm_data" date="20240904" time="07:00" latitude=3.1 longitude=101.7 +``` \ No newline at end of file diff --git a/sample_waccm_data/f.e22.beta02.FWSD.f09_f09_mg17.cesm2_2_beta02.forecast.001.cam.h3.2024-09-04-00000.nc b/sample_waccm_data/f.e22.beta02.FWSD.f09_f09_mg17.cesm2_2_beta02.forecast.001.cam.h3.2024-09-04-00000.nc new file mode 100644 index 00000000..f9654241 Binary files /dev/null and b/sample_waccm_data/f.e22.beta02.FWSD.f09_f09_mg17.cesm2_2_beta02.forecast.001.cam.h3.2024-09-04-00000.nc differ diff --git a/src/acom_music_box/__init__.py b/src/acom_music_box/__init__.py index b8f042a5..1398633e 100644 --- a/src/acom_music_box/__init__.py +++ b/src/acom_music_box/__init__.py @@ -4,18 +4,19 @@ This package contains modules for handling various aspects of a music box, including species, products, reactants, reactions, and more. """ -__version__ = "2.1.5" +__version__ = "2.4.0" from .utils import convert_time, convert_pressure, convert_temperature, convert_concentration -from .music_box_species import Species -from .music_box_product import Product -from .music_box_reactant import Reactant -from .music_box_reaction import Reaction, Branched, Arrhenius, Tunneling, Troe_Ternary -from .music_box_species_list import SpeciesList -from .music_box_model_options import BoxModelOptions -from .music_box_species_concentration import SpeciesConcentration -from .music_box_reaction_rate import ReactionRate -from .music_box_conditions import Conditions +from .species import Species +from .product import Product +from .reactant import Reactant +from .reaction import Reaction, Branched, Arrhenius, Tunneling, Troe_Ternary +from .species_list import SpeciesList +from .model_options import BoxModelOptions +from .species_concentration import SpeciesConcentration +from .reaction_rate import ReactionRate +from .conditions import Conditions -from .music_box_evolving_conditions import EvolvingConditions +from .evolving_conditions import EvolvingConditions from .music_box import MusicBox +from .examples import Examples diff --git a/src/acom_music_box/music_box_conditions.py b/src/acom_music_box/conditions.py similarity index 90% rename from src/acom_music_box/music_box_conditions.py rename to src/acom_music_box/conditions.py index 8ece10a2..35a709fc 100644 --- a/src/acom_music_box/music_box_conditions.py +++ b/src/acom_music_box/conditions.py @@ -1,10 +1,15 @@ from .utils import convert_time, convert_pressure, convert_temperature, convert_concentration -from .music_box_species_concentration import SpeciesConcentration -from .music_box_species import Species -from .music_box_reaction_rate import ReactionRate +from .species_concentration import SpeciesConcentration +from .species import Species +from .reaction_rate import ReactionRate from typing import List import csv import os +from typing import List +from .reaction_rate import ReactionRate +from .species import Species +from .species_concentration import SpeciesConcentration +from .utils import convert_time, convert_pressure, convert_temperature, convert_concentration import logging logger = logging.getLogger(__name__) @@ -147,8 +152,10 @@ def from_config_JSON( if 'initial conditions' in config_JSON and len( list(config_JSON['initial conditions'].keys())) > 0: - initial_conditions_path = os.path.dirname( - path_to_json) + "/" + list(config_JSON['initial conditions'].keys())[0] + initial_conditions_path = os.path.join( + os.path.dirname(path_to_json), + list(config_JSON['initial conditions'].keys())[0]) + reaction_rates = Conditions.read_initial_rates_from_file( initial_conditions_path, reaction_list) @@ -174,8 +181,13 @@ def from_config_JSON( for reaction in reaction_list.reactions: if (reaction.name is None): continue - if not any(rate.reaction.name == - reaction.name for rate in reaction_rates): + reaction_exists = False + for rate in reaction_rates: + if rate.reaction.name == reaction.name: + reaction_exists = True + break + + if not reaction_exists: reaction_rates.append(ReactionRate(reaction, 0)) return cls( @@ -212,18 +224,12 @@ def read_initial_rates_from_file(cls, file_path, reaction_list): # The second row of the CSV contains rates rates = initial_conditions[1] - for i in range(0, len(headers)): - - reaction_rate = headers[i] - - match = filter( - lambda x: x.name == reaction_rate.split('.')[1], - reaction_list.reactions) - - reaction = next(match, None) - rate = rates[i] + for reaction_rate, rate in zip(headers, rates): + type, name, *rest = reaction_rate.split('.') + for reaction in reaction_list.reactions: + if reaction.name == name and reaction.short_type() == type: + reaction_rates.append(ReactionRate(reaction, rate)) - reaction_rates.append(ReactionRate(reaction, rate)) return reaction_rates def add_species_concentration(self, species_concentration): diff --git a/src/acom_music_box/configuration.py b/src/acom_music_box/configuration.py new file mode 100644 index 00000000..f1f8f66a --- /dev/null +++ b/src/acom_music_box/configuration.py @@ -0,0 +1,356 @@ +import os +from .reaction import Reaction, Branched, Arrhenius, Tunneling, Troe_Ternary +import json +import csv + + +class Configuration: + + def __init__(self): + self.species_list = None + self.reaction_list = None + self.initial_conditions = None + self.evolving_conditions = None + self.box_model_options = None + + def generateConfig(self, directory): + """ + Generate configuration JSON for the box model simulation and writes it to files in the specified directory. + + Args: + directory (str): The directory where the configuration files will be written. + + Returns: + None + """ + output_path = "./src/configs/" + directory + + # Check if directory exists and create it if it doesn't + if not os.path.exists(output_path): + os.makedirs(output_path) + os.makedirs(output_path + "/camp_data") + + # Make camp_data config + with open(output_path + "/camp_data/config.json", 'w') as camp_config_file: + data = { + "camp-files": [ + "species.json", + "reactions.json" + ] + } + + camp_config_file.write(json.dumps(data, indent=4)) + + # Make species and reactions configs + with open(output_path + "/camp_data/species.json", 'w') as species_file: + species_file.write(self.generateSpeciesConfig()) + + with open(output_path + "/camp_data/reactions.json", 'w') as reactions_file: + reactions_file.write(self.generateReactionConfig()) + + # Make box model options config + with open(output_path + "/" + directory + "_config.json", 'w') as config_file: + data = {} + + data["box model options"] = { + "grid": self.box_model_options.grid, + "chemistry time step [sec]": self.box_model_options.chem_step_time, + "output time step [sec]": self.box_model_options.output_step_time, + "simulation length [sec]": self.box_model_options.simulation_length, + } + + data["chemical species"] = {} + + if self.initial_conditions.species_concentrations is not None: + for species_concentration in self.initial_conditions.species_concentrations: + data["chemical species"][species_concentration.species.name] = { + "initial value [mol m-3]": species_concentration.concentration} + + data["environmental conditions"] = { + "pressure": { + "initial value [Pa]": self.initial_conditions.pressure, + }, + "temperature": { + "initial value [K]": self.initial_conditions.temperature, + }, + } + + data["evolving conditions"] = { + "evolving_conditions.csv": {}, + } + + data["initial conditions"] = { + "initial_conditions.csv": {} + } + + data["model components"] = [ + { + "type": "CAMP", + "configuration file": "camp_data/config.json", + "override species": { + "M": { + "mixing ratio mol mol-1": 1 + } + }, + "suppress output": { + "M": {} + } + } + ] + + config_file.write(json.dumps(data, indent=4)) + + # Make evolving conditions config + with open(output_path + "/evolving_conditions.csv", 'w', newline='') as evolving_conditions_file: + writer = csv.writer(evolving_conditions_file) + writer.writerow(self.evolving_conditions.headers) + + for i in range(len(self.evolving_conditions.times)): + row = [self.evolving_conditions.times[i]] + + for header in self.evolving_conditions.headers[1:]: + if header == "ENV.pressure.Pa": + row.append( + self.evolving_conditions.conditions[i].pressure) + elif header == "ENV.temperature.K": + row.append( + self.evolving_conditions.conditions[i].temperature) + elif header.startswith("CONC."): + species_name = header.split('.')[1] + species_concentration = next( + (x for x in self.evolving_conditions.conditions[i].species_concentrations if x.species.name == species_name), None) + row.append(species_concentration.concentration) + elif header.endswith(".s-1"): + reaction_name = header.split('.') + + if reaction_name[0] == 'LOSS' or reaction_name[0] == 'EMIS': + reaction_name = reaction_name[0] + \ + '_' + reaction_name[1] + else: + reaction_name = reaction_name[1] + + reaction_rate = next( + (x for x in self.evolving_conditions.conditions[i].reaction_rates if x.reaction.name == reaction_name), None) + row.append(reaction_rate.rate) + + writer.writerow(row) + + reaction_names = [] + reaction_rates = [] + + for reaction_rate in self.initial_conditions.reaction_rates: + if reaction_rate.reaction.reaction_type == "PHOTOLYSIS": + name = "PHOT." + reaction_rate.reaction.name + ".s-1" + elif reaction_rate.reaction.reaction_type == "LOSS": + name = "LOSS." + reaction_rate.reaction.name + ".s-1" + elif reaction_rate.reaction.reaction_type == "EMISSION": + name = "EMIS." + reaction_rate.reaction.name + ".s-1" + elif reaction_rate.reaction.reaction_type == "USER_DEFINED": + name = "USER." + reaction_rate.reaction.name + ".s-1" + + reaction_names.append(name) + reaction_rates.append(reaction_rate.rate) + # writes reaction rates inital conditions to file + with open(output_path + "/initial_conditions.csv", 'w', newline='') as initial_conditions_file: + writer = csv.writer(initial_conditions_file) + writer.writerow(reaction_names) + writer.writerow(reaction_rates) + + def generateSpeciesConfig(self): + """ + Generate a JSON configuration for the species in the box model. + + Returns: + str: A JSON-formatted string representing the species configuration. + """ + + speciesArray = [] + + # Adds relative tolerance if value is set + if (self.species_list.relative_tolerance is not None): + relativeTolerance = {} + relativeTolerance["type"] = "RELATIVE_TOLERANCE" + relativeTolerance["value"] = self.species_list.relative_tolerance + speciesArray.append(relativeTolerance) + + # Adds species to config + for species in self.species_list.species: + spec = {} + + # Add species name if value is set + if (species.name is not None): + spec["name"] = species.name + + spec["type"] = "CHEM_SPEC" + + # Add species absoluate tolerance if value is set + if (species.absolute_tolerance is not None): + spec["absolute tolerance"] = species.absolute_tolerance + + # Add species phase if value is set + if (species.phase is not None): + spec["phase"] = species.phase + + # Add species molecular weight if value is set + if (species.molecular_weight is not None): + spec["molecular weight [kg mol-1]"] = species.molecular_weight + + # Add species density if value is set + if (species.density is not None): + spec["density [kg m-3]"] = species.density + + speciesArray.append(spec) + + species_json = { + "camp-data": speciesArray + } + + return json.dumps(species_json, indent=4) + + def generateReactionConfig(self): + """ + Generate a JSON configuration for the reactions in the box model. + + Returns: + str: A JSON-formatted string representing the reaction configuration. + """ + reacList = {} + + # Add mechanism name if value is set + if self.reaction_list.name is not None: + reacList["name"] = self.reaction_list.name + + reacList["type"] = "MECHANISM" + + reactionsArray = [] + + # Adds reaction to config + for reaction in self.reaction_list.reactions: + reac = {} + + # Adds reaction name if value is set + if (reaction.reaction_type is not None): + reac["type"] = reaction.reaction_type + + reactants = {} + + # Adds reactants + for reactant in reaction.reactants: + quantity = {} + + # Adds reactant quantity if value is set + if reactant.quantity is not None: + quantity["qty"] = reactant.quantity + reactants[reactant.name] = quantity + + reac["reactants"] = reactants + + if not isinstance(reaction, Branched): + products = {} + + # Adds products + for product in reaction.products: + yield_value = {} + + # Adds product yield if value is set + if product.yield_value is not None: + yield_value["yield"] = product.yield_value + products[product.name] = yield_value + + reac["products"] = products + + # Add reaction parameters if necessary + if isinstance(reaction, Branched): + alkoxy_products = {} + + # Adds alkoxy products + for alkoxy_product in reaction.alkoxy_products: + yield_value = {} + + # Adds alkoxy product yield if value is set + if alkoxy_product.yield_value is not None: + yield_value["yield"] = alkoxy_product.yield_value + alkoxy_products[alkoxy_product.name] = yield_value + + reac["alkoxy products"] = alkoxy_products + + nitrate_products = {} + + # Adds nitrate products + for nitrate_product in reaction.nitrate_products: + yield_value = {} + + # Adds nitrate product yield if value is set + if nitrate_product.yield_value is not None: + yield_value["yield"] = nitrate_product.yield_value + nitrate_products[nitrate_product.name] = yield_value + + reac["nitrate products"] = nitrate_products + + # Adds parameters for the reaction + if reaction.X is not None: + reac["X"] = reaction.X + if reaction.Y is not None: + reac["Y"] = reaction.Y + if reaction.a0 is not None: + reac["a0"] = reaction.a0 + if reaction.n is not None: + reac["n"] = reaction.n + + elif isinstance(reaction, Arrhenius): + # Adds parameters for the reaction + if reaction.A is not None: + reac["A"] = reaction.A + if reaction.B is not None: + reac["B"] = reaction.B + if reaction.D is not None: + reac["D"] = reaction.D + if reaction.E is not None: + reac["E"] = reaction.E + if reaction.Ea is not None: + reac["Ea"] = reaction.Ea + + elif isinstance(reaction, Tunneling): + # Adds parameters for the reaction + if reaction.A is not None: + reac["A"] = reaction.A + if reaction.B is not None: + reac["B"] = reaction.B + if reaction.C is not None: + reac["C"] = reaction.C + + elif isinstance(reaction, Troe_Ternary): + # Adds parameters for the reaction + if reaction.k0_A is not None: + reac["k0_A"] = reaction.k0_A + if reaction.k0_B is not None: + reac["k0_B"] = reaction.k0_B + if reaction.k0_C is not None: + reac["k0_C"] = reaction.k0_C + if reaction.kinf_A is not None: + reac["kinf_A"] = reaction.kinf_A + if reaction.kinf_B is not None: + reac["kinf_B"] = reaction.kinf_B + if reaction.kinf_C is not None: + reac["kinf_C"] = reaction.kinf_C + if reaction.Fc is not None: + reac["Fc"] = reaction.Fc + if reaction.N is not None: + reac["N"] = reaction.N + + # Adds reaction name if value is set + if (reaction.name is not None): + reac["MUSICA name"] = reaction.name + + if (reaction.scaling_factor is not None): + reac["scaling factor"] = reaction.scaling_factor + + reactionsArray.append(reac) + + reacList["reactions"] = reactionsArray + + reactionsJson = { + "camp-data": [reacList] + } + + return json.dumps(reactionsJson, indent=4) diff --git a/src/acom_music_box/connections/electron_configuration_reader.py b/src/acom_music_box/connections/electron_configuration_reader.py new file mode 100644 index 00000000..51ca14e6 --- /dev/null +++ b/src/acom_music_box/connections/electron_configuration_reader.py @@ -0,0 +1,96 @@ +from ..conditions import Conditions +from ..model_options import BoxModelOptions +from ..species_list import SpeciesList +from ..reaction_list import ReactionList +from ..evolving_conditions import EvolvingConditions +import json + + +class ElectronConfiguraitonReader: + """ Reads configuration information from the electron applicant to create a box model simulation. + """ + + def __init__(self): + self.box_model_options = None + self.species_list = None + self.reaction_list = None + self.initial_conditions = None + self.evolving_conditions = None + + def read_electron_configuration(self): + with open(self.electron_configuration_file_path, 'r') as file: + for line in file: + element, configuration = line.strip().split(' ') + self.electron_configuration[element] = configuration + + def get_electron_configuration(self, element): + return self.electron_configuration[element] + + def readFromUIJson(self, path_to_json): + """ + Reads and parses a JSON file from the MusicBox Interactive UI to set up the box model simulation. + + This function takes the path to a JSON file, reads the file, and parses the JSON + to set up the box model simulation. + + Args: + path_to_json (str): The path to the JSON file from the UI. + + Returns: + None + + Raises: + ValueError: If the JSON file cannot be read or parsed. + """ + + with open(path_to_json, 'r') as json_file: + data = json.load(json_file) + + # Set box model options + self.box_model_options = BoxModelOptions.from_UI_JSON(data) + + # Set species list + self.species_list = SpeciesList.from_UI_JSON(data) + + # Set reaction list + self.reaction_list = ReactionList.from_UI_JSON( + data, self.species_list) + + # Set initial conditions + self.initial_conditions = Conditions.from_UI_JSON( + data, self.species_list, self.reaction_list) + + # Set evolving conditions + self.evolving_conditions = EvolvingConditions.from_UI_JSON( + data, self.species_list, self.reaction_list) + + def readFromUIJsonString(self, data): + """ + Reads and parses a JSON string from the MusicBox Interactive UI to set up the box model simulation. + + Args: + json_string (str): The JSON string from the UI. + + Returns: + None + + Raises: + ValueError: If the JSON string cannot be parsed. + """ + + # Set box model options + self.box_model_options = BoxModelOptions.from_UI_JSON(data) + + # Set species list + self.species_list = SpeciesList.from_UI_JSON(data) + + # Set reaction list + self.reaction_list = ReactionList.from_UI_JSON(data, self.species_list) + + # Set initial conditions + self.initial_conditions = Conditions.from_UI_JSON( + data, self.species_list, self.reaction_list) + + # Set evolving conditions + self.evolving_conditions = EvolvingConditions.from_UI_JSON( + data, self.species_list, self.reaction_list) diff --git a/src/acom_music_box/music_box_evolving_conditions.py b/src/acom_music_box/evolving_conditions.py similarity index 96% rename from src/acom_music_box/music_box_evolving_conditions.py rename to src/acom_music_box/evolving_conditions.py index 0c7da184..eaa8ded7 100644 --- a/src/acom_music_box/music_box_evolving_conditions.py +++ b/src/acom_music_box/evolving_conditions.py @@ -1,9 +1,9 @@ import csv import os from typing import List -from .music_box_conditions import Conditions -from .music_box_species_concentration import SpeciesConcentration -from .music_box_reaction_rate import ReactionRate +from .conditions import Conditions +from .species_concentration import SpeciesConcentration +from .reaction_rate import ReactionRate class EvolvingConditions: @@ -129,11 +129,11 @@ def from_config_JSON( if 'evolving conditions' in config_JSON: if len(config_JSON['evolving conditions'].keys()) > 0: # Construct the path to the evolving conditions file - evolving_conditions_path = ( - os.path.dirname(path_to_json) + - "/" + - list( - config_JSON['evolving conditions'].keys())[0]) + + evolving_conditions_path = os.path.join( + os.path.dirname(path_to_json), + list(config_JSON['evolving conditions'].keys())[0]) + evolving_conditions = EvolvingConditions.read_conditions_from_file( evolving_conditions_path, species_list, reaction_list) diff --git a/src/acom_music_box/examples/__init__.py b/src/acom_music_box/examples/__init__.py new file mode 100644 index 00000000..e917f239 --- /dev/null +++ b/src/acom_music_box/examples/__init__.py @@ -0,0 +1 @@ +from .examples import Examples diff --git a/tests/configs/analytical_config/camp_data/config.json b/src/acom_music_box/examples/configs/analytical/camp_data/config.json similarity index 100% rename from tests/configs/analytical_config/camp_data/config.json rename to src/acom_music_box/examples/configs/analytical/camp_data/config.json diff --git a/tests/configs/analytical_config/camp_data/reactions.json b/src/acom_music_box/examples/configs/analytical/camp_data/reactions.json similarity index 100% rename from tests/configs/analytical_config/camp_data/reactions.json rename to src/acom_music_box/examples/configs/analytical/camp_data/reactions.json diff --git a/tests/configs/analytical_config/camp_data/species.json b/src/acom_music_box/examples/configs/analytical/camp_data/species.json similarity index 100% rename from tests/configs/analytical_config/camp_data/species.json rename to src/acom_music_box/examples/configs/analytical/camp_data/species.json diff --git a/tests/configs/analytical_config/evolving_conditions.csv b/src/acom_music_box/examples/configs/analytical/evolving_conditions.csv similarity index 100% rename from tests/configs/analytical_config/evolving_conditions.csv rename to src/acom_music_box/examples/configs/analytical/evolving_conditions.csv diff --git a/tests/configs/analytical_config/my_config.json b/src/acom_music_box/examples/configs/analytical/my_config.json similarity index 100% rename from tests/configs/analytical_config/my_config.json rename to src/acom_music_box/examples/configs/analytical/my_config.json diff --git a/tests/configs/chapman_config/camp_data/config.json b/src/acom_music_box/examples/configs/carbon_bond_5/camp_data/config.json similarity index 100% rename from tests/configs/chapman_config/camp_data/config.json rename to src/acom_music_box/examples/configs/carbon_bond_5/camp_data/config.json diff --git a/tests/configs/full_gas_phase_mechanism_config/camp_data/reactions.json b/src/acom_music_box/examples/configs/carbon_bond_5/camp_data/reactions.json similarity index 100% rename from tests/configs/full_gas_phase_mechanism_config/camp_data/reactions.json rename to src/acom_music_box/examples/configs/carbon_bond_5/camp_data/reactions.json diff --git a/tests/configs/full_gas_phase_mechanism_config/camp_data/species.json b/src/acom_music_box/examples/configs/carbon_bond_5/camp_data/species.json similarity index 100% rename from tests/configs/full_gas_phase_mechanism_config/camp_data/species.json rename to src/acom_music_box/examples/configs/carbon_bond_5/camp_data/species.json diff --git a/tests/configs/full_gas_phase_mechanism_config/initial_conditions.csv b/src/acom_music_box/examples/configs/carbon_bond_5/initial_conditions.csv similarity index 100% rename from tests/configs/full_gas_phase_mechanism_config/initial_conditions.csv rename to src/acom_music_box/examples/configs/carbon_bond_5/initial_conditions.csv diff --git a/tests/configs/full_gas_phase_mechanism_config/my_config.json b/src/acom_music_box/examples/configs/carbon_bond_5/my_config.json similarity index 100% rename from tests/configs/full_gas_phase_mechanism_config/my_config.json rename to src/acom_music_box/examples/configs/carbon_bond_5/my_config.json diff --git a/tests/configs/full_gas_phase_mechanism_config/camp_data/config.json b/src/acom_music_box/examples/configs/chapman/camp_data/config.json similarity index 100% rename from tests/configs/full_gas_phase_mechanism_config/camp_data/config.json rename to src/acom_music_box/examples/configs/chapman/camp_data/config.json diff --git a/tests/configs/chapman_config/camp_data/reactions.json b/src/acom_music_box/examples/configs/chapman/camp_data/reactions.json similarity index 100% rename from tests/configs/chapman_config/camp_data/reactions.json rename to src/acom_music_box/examples/configs/chapman/camp_data/reactions.json diff --git a/tests/configs/chapman_config/camp_data/species.json b/src/acom_music_box/examples/configs/chapman/camp_data/species.json similarity index 100% rename from tests/configs/chapman_config/camp_data/species.json rename to src/acom_music_box/examples/configs/chapman/camp_data/species.json diff --git a/tests/configs/chapman_config/evolving_conditions.csv b/src/acom_music_box/examples/configs/chapman/evolving_conditions.csv similarity index 100% rename from tests/configs/chapman_config/evolving_conditions.csv rename to src/acom_music_box/examples/configs/chapman/evolving_conditions.csv diff --git a/tests/configs/chapman_config/my_config.json b/src/acom_music_box/examples/configs/chapman/my_config.json similarity index 100% rename from tests/configs/chapman_config/my_config.json rename to src/acom_music_box/examples/configs/chapman/my_config.json diff --git a/tests/configs/wall_loss_config/camp_data/config.json b/src/acom_music_box/examples/configs/flow_tube/camp_data/config.json similarity index 100% rename from tests/configs/wall_loss_config/camp_data/config.json rename to src/acom_music_box/examples/configs/flow_tube/camp_data/config.json diff --git a/tests/configs/wall_loss_config/camp_data/reactions.json b/src/acom_music_box/examples/configs/flow_tube/camp_data/reactions.json similarity index 100% rename from tests/configs/wall_loss_config/camp_data/reactions.json rename to src/acom_music_box/examples/configs/flow_tube/camp_data/reactions.json diff --git a/tests/configs/wall_loss_config/camp_data/species.json b/src/acom_music_box/examples/configs/flow_tube/camp_data/species.json similarity index 100% rename from tests/configs/wall_loss_config/camp_data/species.json rename to src/acom_music_box/examples/configs/flow_tube/camp_data/species.json diff --git a/tests/configs/wall_loss_config/evolving_conditions.csv b/src/acom_music_box/examples/configs/flow_tube/evolving_conditions.csv similarity index 100% rename from tests/configs/wall_loss_config/evolving_conditions.csv rename to src/acom_music_box/examples/configs/flow_tube/evolving_conditions.csv diff --git a/tests/configs/wall_loss_config/initial_conditions.csv b/src/acom_music_box/examples/configs/flow_tube/initial_conditions.csv similarity index 100% rename from tests/configs/wall_loss_config/initial_conditions.csv rename to src/acom_music_box/examples/configs/flow_tube/initial_conditions.csv diff --git a/tests/configs/wall_loss_config/my_config.json b/src/acom_music_box/examples/configs/flow_tube/my_config.json similarity index 100% rename from tests/configs/wall_loss_config/my_config.json rename to src/acom_music_box/examples/configs/flow_tube/my_config.json diff --git a/src/acom_music_box/examples/configs/ts1/camp_data/config.json b/src/acom_music_box/examples/configs/ts1/camp_data/config.json new file mode 100644 index 00000000..04d0ef28 --- /dev/null +++ b/src/acom_music_box/examples/configs/ts1/camp_data/config.json @@ -0,0 +1,6 @@ +{ + "camp-files": [ + "species.json", + "reactions.json" + ] +} diff --git a/src/acom_music_box/examples/configs/ts1/camp_data/reactions.json b/src/acom_music_box/examples/configs/ts1/camp_data/reactions.json new file mode 100644 index 00000000..c1d66510 --- /dev/null +++ b/src/acom_music_box/examples/configs/ts1/camp_data/reactions.json @@ -0,0 +1,6961 @@ +{ + "__comments": [ "This mechanism may contain refactored reactions based on custom", + "rate constant functions in mo_usrrxt.F90 in the CAM source code.", + "As this file could change at any time, it is important that you", + "do an md5 checksum of mo_usrrxt.F90 from the version of CAM you", + "are using. The value should be: 9783938d6c5977f1c3603cadfe254987" ], + "camp-data": [ + { + "name": "MZ327_TS1.2_20230307", + "type": "MECHANISM", + "reactions": [ + { + "type": "TROE", + "k0_A": 5.5e-30, + "kinf_A": 8.3e-13, + "kinf_B": 2, + "reactants": { + "C2H2": { }, + "OH": { } + }, + "products": { + "GLYOXAL": { "yield": 0.65 }, + "OH": { "yield": 0.65 }, + "HCOOH": { "yield": 0.35 }, + "HO2": { "yield": 0.35 }, + "CO": { "yield": 0.35 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "Ea": -6.90325e-21, + "reactants": { + "CH3O2": { }, + "TERPO2": { } + }, + "products": { + "TERPROD1": { }, + "CH2O": { "yield": 0.95 }, + "CH3OH": { "yield": 0.25 }, + "HO2": { }, + "CH3COCH3": { "yield": 0.025 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "C3H7OOH": { }, + "OH": { } + }, + "products": { + "H2O": { }, + "C3H7O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jterpnit", + "reactants": { + "TERPNIT": { } + }, + "products": { + "TERPROD1": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.45e-12, + "Ea": -3.03743e-21, + "reactants": { + "N": { }, + "NO2": { } + }, + "products": { + "N2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.4e-11, + "Ea": 2.20904e-20, + "reactants": { + "O": { }, + "CH2O": { } + }, + "products": { + "HO2": { }, + "OH": { }, + "CO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "TOLUO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.1364 }, + "SOAG1": { "yield": 0.0101 }, + "SOAG2": { "yield": 0.0763 }, + "SOAG3": { "yield": 0.2157 }, + "SOAG4": { "yield": 0.0738 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jo2_b", + "reactants": { + "O2": { } + }, + "products": { + "O": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.3e-12, + "Ea": 2.44375e-20, + "reactants": { + "OH": { }, + "HCFC142B": { } + }, + "products": { + "CL": { }, + "COF2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmgly", + "reactants": { + "CH3COCHO": { } + }, + "products": { + "CH3CO3": { }, + "CO": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.17e-10, + "reactants": { + "CFC114": { }, + "O1D": { } + }, + "products": { + "CL": { "yield": 2 }, + "COF2": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jxylenooh", + "reactants": { + "XYLENOOH": { } + }, + "products": { + "OH": { }, + "HO2": { }, + "GLYOXAL": { "yield": 0.34 }, + "CH3COCHO": { "yield": 0.54 }, + "BIGALD1": { "yield": 0.06 }, + "BIGALD2": { "yield": 0.2 }, + "BIGALD3": { "yield": 0.15 }, + "BIGALD4": { "yield": 0.21 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.1e-12, + "Ea": -3.72775e-21, + "reactants": { + "NO": { }, + "CH3CO3": { } + }, + "products": { + "CH3O2": { }, + "CO2": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "reactants": { + "HONITR": { }, + "OH": { } + }, + "products": { + "ONITR": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.12e-13, + "Ea": -1.79484e-20, + "reactants": { + "ISOPO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.0031 }, + "SOAG1": { "yield": 0.0035 }, + "SOAG2": { "yield": 0.0003 }, + "SOAG3": { "yield": 0.0271 }, + "SOAG4": { "yield": 0.0474 } + } + }, + { + "type": "TROE", + "k0_A": 0.81103, + "k0_B": -4.1, + "k0_C": -14000, + "kinf_A": 1.05545e17, + "kinf_C": -14000, + "kinf_B": -1.6, + "reactants": { + "PAN": { } + }, + "products": { + "CH3CO3": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.9e-12, + "Ea": -6.90325e-21, + "reactants": { + "CH3CO3": { "qty": 2 } + }, + "products": { + "CH3O2": { "yield": 2 }, + "CO2": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch4_b", + "reactants": { + "CH4": { } + }, + "products": { + "H2": { "yield": 1.44 }, + "CH2O": { "yield": 0.18 }, + "O": { "yield": 0.18 }, + "OH": { "yield": 0.33 }, + "H": { "yield": 0.33 }, + "CO2": { "yield": 0.44 }, + "CO": { "yield": 0.38 }, + "H2O": { "yield": 0.05 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.63e-10, + "Ea": -8.28389e-22, + "reactants": { + "H2O": { }, + "O1D": { } + }, + "products": { + "OH": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 6.0e-13, + "Ea": -3.17549e-21, + "reactants": { + "OH": { }, + "CLO": { } + }, + "products": { + "HCL": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-11, + "Ea": -6.07486e-21, + "reactants": { + "OH": { }, + "MTERP": { } + }, + "products": { + "MTERP": { }, + "OH": { }, + "MTERPO2VBS": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.8e-10, + "reactants": { + "CH3BR": { }, + "O1D": { } + }, + "products": { + "BR": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jterp2ooh", + "reactants": { + "TERP2OOH": { } + }, + "products": { + "OH": { }, + "CH2O": { "yield": 0.375 }, + "CH3COCH3": { "yield": 0.3 }, + "CO": { "yield": 0.25 }, + "CO2": { }, + "TERPROD2": { }, + "HO2": { }, + "GLYALD": { "yield": 0.25 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.34e-11, + "reactants": { + "SVOC": { }, + "OH": { } + }, + "products": { + "OH": { }, + "SOAG0": { "yield": 0.5931 }, + "SOAG1": { "yield": 0.1534 }, + "SOAG2": { "yield": 0.0459 }, + "SOAG3": { "yield": 0.0085 }, + "SOAG4": { "yield": 0.0128 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "XYLENOOH": { }, + "OH": { } + }, + "products": { + "XYLENO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.9e-11, + "reactants": { + "HCL": { }, + "O1D": { } + }, + "products": { + "CL": { }, + "OH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbrono2_a", + "reactants": { + "BRONO2": { } + }, + "products": { + "BR": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.7e-11, + "reactants": { + "SO": { }, + "BRO": { } + }, + "products": { + "SO2": { }, + "BR": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "BENZO2": { } + }, + "products": { + "NO2": { }, + "GLYOXAL": { }, + "BIGALD1": { "yield": 0.5 }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "TOLO2": { }, + "NO": { } + }, + "products": { + "NO2": { }, + "GLYOXAL": { "yield": 0.6 }, + "CH3COCHO": { "yield": 0.4 }, + "HO2": { }, + "BIGALD1": { "yield": 0.2 }, + "BIGALD2": { "yield": 0.2 }, + "BIGALD3": { "yield": 0.2 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-10, + "reactants": { + "BCARY": { }, + "OH": { } + }, + "products": { + "BCARY": { }, + "OH": { }, + "BCARYO2VBS": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbigald4", + "reactants": { + "BIGALD4": { } + }, + "products": { + "HO2": { }, + "CO": { }, + "CH3COCHO": { }, + "CH3CO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.75e-13, + "Ea": 5.5226e-22, + "reactants": { + "CH3O2": { }, + "C3H7O2": { } + }, + "products": { + "CH2O": { }, + "HO2": { }, + "CH3COCH3": { "yield": 0.82 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.65e-11, + "reactants": { + "O1D": { }, + "HCFC22": { } + }, + "products": { + "CL": { }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-12, + "Ea": 2.3471e-21, + "reactants": { + "MEK": { }, + "OH": { } + }, + "products": { + "MEKO2": { } + } + }, + { + "type": "TROE", + "k0_A": 8.796296296E-6, + "k0_B": -3.6, + "k0_C": -8537.0, + "kinf_A": 1.712962963E+15, + "kinf_B": -1.6, + "kinf_C": -8537.0, + "reactants": { + "CL2O2": { } + }, + "products": { + "CLO": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "TOLOOH": { } + }, + "products": { + "TOLO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa3_a2", + "reactants": { + "soa3_a2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 2.14e-11, + "reactants": { + "COF2": { }, + "O1D": { } + }, + "products": { + "F": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.54e-11, + "Ea": -5.66066e-21, + "reactants": { + "ISOP": { }, + "OH": { } + }, + "products": { + "ISOPAO2": { "yield": 0.6 }, + "ISOPBO2": { "yield": 0.4 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.29e-7, + "reactants": { + "E90": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 6.3e-16, + "Ea": 8.00776e-21, + "reactants": { + "O3": { }, + "MTERP": { } + }, + "products": { + "MTERP": { }, + "O3": { }, + "SOAG0": { "yield": 0.0508 }, + "SOAG1": { "yield": 0.1149 }, + "SOAG2": { "yield": 0.0348 }, + "SOAG3": { "yield": 0.0554 }, + "SOAG4": { "yield": 0.1278 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbro", + "reactants": { + "BRO": { } + }, + "products": { + "BR": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "Ea": -6.90325e-21, + "reactants": { + "CH3O2": { }, + "MCO3": { } + }, + "products": { + "CH2O": { "yield": 2 }, + "HO2": { }, + "CO2": { }, + "CH3CO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jtepomuc", + "reactants": { + "TEPOMUC": { } + }, + "products": { + "CH3CO3": { "yield": 0.5 }, + "HO2": { }, + "CO": { "yield": 1.5 } + } + }, + { + "type": "TROE", + "k0_A": 9.7e-29, + "k0_B": -5.6, + "kinf_A": 9.3e-12, + "kinf_B": -1.5, + "reactants": { + "MDIALO2": { }, + "NO2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.96e-12, + "Ea": 1.65678e-20, + "reactants": { + "CH3CL": { }, + "OH": { } + }, + "products": { + "CL": { }, + "H2O": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcof2", + "reactants": { + "COF2": { } + }, + "products": { + "F": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch2o_b", + "reactants": { + "CH2O": { } + }, + "products": { + "CO": { }, + "H2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbrono2_b", + "reactants": { + "BRONO2": { } + }, + "products": { + "BRO": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.4e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "ISOPBO2": { } + }, + "products": { + "HYDRALD": { "yield": 0.87 }, + "ISOPNITB": { "yield": 0.08 }, + "NO2": { "yield": 0.92 }, + "HO2": { "yield": 0.92 }, + "GLYOXAL": { "yield": 0.05 }, + "GLYALD": { "yield": 0.05 }, + "CH3COCHO": { "yield": 0.05 }, + "HYAC": { "yield": 0.05 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jno", + "reactants": { + "NO": { } + }, + "products": { + "N": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "Ea": -6.90325e-21, + "reactants": { + "CH3O2": { }, + "CH3CO3": { } + }, + "products": { + "CH3O2": { "yield": 0.9 }, + "CH2O": { }, + "HO2": { "yield": 0.9 }, + "CO2": { "yield": 0.9 }, + "CH3COOH": { "yield": 0.1 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.5e-15, + "Ea": 2.89936e-20, + "reactants": { + "O3": { }, + "MACR": { } + }, + "products": { + "CH2O": { "yield": 0.12 }, + "OH": { "yield": 0.24 }, + "CO": { "yield": 0.65 }, + "CH3CO3": { "yield": 0.1 }, + "CH3COCHO": { "yield": 0.88 }, + "HCOOH": { "yield": 0.33 }, + "HO2": { "yield": 0.14 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "ALKOOH": { } + }, + "products": { + "ALKO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.63e-12, + "Ea": -4.83227e-21, + "reactants": { + "OH": { }, + "CH3CHO": { } + }, + "products": { + "CH3CO3": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.75e-13, + "Ea": -1.79484e-20, + "reactants": { + "BCARYO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.2202 }, + "SOAG1": { "yield": 0.2067 }, + "SOAG2": { "yield": 0.0653 }, + "SOAG3": { "yield": 0.1284 }, + "SOAG4": { "yield": 0.114 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-12, + "Ea": -6.76518e-21, + "reactants": { + "NO3": { }, + "MTERP": { } + }, + "products": { + "NTERPO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.3e-12, + "Ea": 4.34904e-20, + "reactants": { + "N": { }, + "O2": { } + }, + "products": { + "NO": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -3.65872e-21, + "reactants": { + "HOCH2OO": { }, + "NO": { } + }, + "products": { + "HCOOH": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jh2o_b", + "reactants": { + "H2O": { } + }, + "products": { + "H2": { }, + "O1D": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jc3h7ooh", + "reactants": { + "C3H7OOH": { } + }, + "products": { + "CH3COCH3": { "yield": 0.82 }, + "OH": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcfc113", + "reactants": { + "CFC113": { } + }, + "products": { + "CL": { "yield": 2 }, + "COFCL": { }, + "COF2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jccl4", + "reactants": { + "CCL4": { } + }, + "products": { + "CL": { "yield": 4 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.8e-11, + "reactants": { + "SO": { }, + "CLO": { } + }, + "products": { + "SO2": { }, + "CL": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jnoa", + "reactants": { + "NOA": { } + }, + "products": { + "NO2": { }, + "CH2O": { }, + "CH3CO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.57e-10, + "reactants": { + "CH2BR2": { }, + "O1D": { } + }, + "products": { + "BR": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jh2so4", + "reactants": { + "H2SO4": { } + }, + "products": { + "SO3": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.4e-13, + "Ea": -1.14594e-20, + "reactants": { + "OH": { }, + "CH3COCHO": { } + }, + "products": { + "CH3CO3": { }, + "CO": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-10, + "reactants": { + "O1D": { }, + "COFCL": { } + }, + "products": { + "F": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.64e-12, + "Ea": 2.09859e-20, + "reactants": { + "CH3CCL3": { }, + "OH": { } + }, + "products": { + "H2O": { }, + "CL": { "yield": 3 } + } + }, + { + "type": "TROE", + "k0_A": 6.1e-33, + "k0_B": -1.5, + "kinf_A": 9.8e-15, + "kinf_B": 4.6, + "Fc": 0.8, + "reactants": { + "OH": { }, + "HCN": { } + }, + "products": { + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.794e-10, + "reactants": { + "O1D": { }, + "HCFC141B": { } + }, + "products": { + "CL": { }, + "COFCL": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmacr_b", + "reactants": { + "MACR": { } + }, + "products": { + "HO2": { "yield": 0.66 }, + "CO": { "yield": 1.34 } + } + }, + { + "type": "ARRHENIUS", + "A": 9.0e-12, + "reactants": { + "CH4": { }, + "O1D": { } + }, + "products": { + "CH2O": { }, + "H2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "C3H7O2": { }, + "HO2": { } + }, + "products": { + "C3H7OOH": { }, + "O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jnterpooh", + "reactants": { + "NTERPOOH": { } + }, + "products": { + "TERPROD1": { }, + "NO2": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.54e-11, + "Ea": -5.66066e-21, + "reactants": { + "ISOP": { }, + "OH": { } + }, + "products": { + "ISOP": { }, + "OH": { }, + "ISOPO2VBS": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jrooh", + "reactants": { + "ROOH": { } + }, + "products": { + "CH3CO3": { }, + "CH2O": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.7e-11, + "reactants": { + "OH": { }, + "TERPROD1": { } + }, + "products": { + "TERP2O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.45e-12, + "Ea": -3.03743e-21, + "reactants": { + "N": { }, + "NO2": { } + }, + "products": { + "NO": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhbr", + "reactants": { + "HBR": { } + }, + "products": { + "BR": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-10, + "Ea": 6.48905e-21, + "reactants": { + "H": { }, + "O3": { } + }, + "products": { + "OH": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-13, + "Ea": -5.5226e-21, + "reactants": { + "ISOPNO3": { }, + "CH3O2": { } + }, + "products": { + "NC4CHO": { "yield": 0.8 }, + "HO2": { "yield": 1.2 }, + "CH2O": { "yield": 0.8 }, + "CH3OH": { "yield": 0.2 }, + "NC4CH2OH": { "yield": 0.2 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.3e-13, + "Ea": -1.43587e-20, + "reactants": { + "MDIALO2": { }, + "HO2": { } + }, + "products": { + "OH": { "yield": 0.4 }, + "HO2": { "yield": 0.33 }, + "CH3COCHO": { "yield": 0.07 }, + "CO": { "yield": 0.14 }, + "CH3O2": { "yield": 0.07 }, + "GLYOXAL": { "yield": 0.07 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jpooh", + "reactants": { + "POOH": { } + }, + "products": { + "CH3CHO": { }, + "CH2O": { }, + "HO2": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-13, + "Ea": -5.5226e-21, + "reactants": { + "CH3O2": { }, + "ISOPBO2": { } + }, + "products": { + "CH3OH": { "yield": 0.25 }, + "HO2": { }, + "CH2O": { "yield": 0.75 }, + "HYDRALD": { "yield": 0.75 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.1e-11, + "Ea": 3.86582e-21, + "reactants": { + "OH": { }, + "DMS": { } + }, + "products": { + "SO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa2_a2", + "reactants": { + "soa2_a2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "HOCH2OO": { }, + "HO2": { } + }, + "products": { + "HCOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-12, + "Ea": -6.76518e-21, + "reactants": { + "NO3": { }, + "MTERP": { } + }, + "products": { + "MTERP": { }, + "NO3": { }, + "SOAG3": { "yield": 0.17493 }, + "SOAG4": { "yield": 0.59019 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.66e-12, + "Ea": 1.40826e-20, + "reactants": { + "C2H6": { }, + "OH": { } + }, + "products": { + "C2H5O2": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.15e-11, + "reactants": { + "GLYOXAL": { }, + "OH": { } + }, + "products": { + "HO2": { }, + "CO": { }, + "CO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "C6H5O2": { }, + "HO2": { } + }, + "products": { + "C6H5OOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-11, + "Ea": -6.07486e-21, + "reactants": { + "OH": { }, + "MTERP": { } + }, + "products": { + "TERPO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.52e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "XOOH": { } + }, + "products": { + "XO2": { "yield": 0.5 }, + "OH": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.0e-12, + "Ea": 2.84414e-20, + "reactants": { + "O": { }, + "O3": { } + }, + "products": { + "O2": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.3e-11, + "reactants": { + "OH": { }, + "IEPOX": { } + }, + "products": { + "XO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.2e-11, + "Ea": 9.66454e-22, + "reactants": { + "C2H6": { }, + "CL": { } + }, + "products": { + "HCL": { }, + "C2H5O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.4e-14, + "Ea": -1.20116e-20, + "reactants": { + "ALKO2": { }, + "NO": { } + }, + "products": { + "ALKNIT": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "BZOO": { }, + "NO": { } + }, + "products": { + "BZALD": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.8e-11, + "Ea": -2.48517e-21, + "reactants": { + "OH": { }, + "O": { } + }, + "products": { + "H": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-13, + "Ea": -7.17937e-21, + "reactants": { + "NO3": { }, + "DMS": { } + }, + "products": { + "SO2": { }, + "HNO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-12, + "Ea": -7.31744e-21, + "reactants": { + "MCO3": { "qty": 2 } + }, + "products": { + "CO2": { "yield": 2 }, + "CH2O": { "yield": 2 }, + "CH3CO3": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.8e-12, + "Ea": -1.65678e-21, + "reactants": { + "NO": { }, + "ENEO2": { } + }, + "products": { + "CH3CHO": { }, + "CH2O": { "yield": 0.5 }, + "CH3COCH3": { "yield": 0.5 }, + "HO2": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.0e-34, + "B": -2.4, + "reactants": { + "O2": { }, + "M": { }, + "O": { } + }, + "products": { + "O3": { }, + "M": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.4e-12, + "Ea": -4.00388e-21, + "reactants": { + "NO": { }, + "CLO": { } + }, + "products": { + "NO2": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.0e-13, + "Ea": -9.66454e-21, + "reactants": { + "XO2": { }, + "HO2": { } + }, + "products": { + "XOOH": { } + } + }, + { + "type": "TROE", + "k0_A": 2.9e-31, + "k0_B": -4.1, + "kinf_A": 1.7e-12, + "kinf_B": 0.2, + "reactants": { + "SO2": { }, + "OH": { } + }, + "products": { + "SO3": { }, + "HO2": { } + } + }, + { + "type": "TROE", + "k0_A": 1.8e-30, + "k0_B": -3, + "kinf_A": 2.8e-11, + "reactants": { + "OH": { }, + "NO2": { } + }, + "products": { + "HNO3": { } + } + }, + { + "type": "TROE", + "k0_A": 1.8e-31, + "k0_B": -3.4, + "kinf_A": 1.5e-11, + "kinf_B": -1.9, + "reactants": { + "CLO": { }, + "NO2": { } + }, + "products": { + "CLONO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhyac", + "reactants": { + "HYAC": { } + }, + "products": { + "CH3CO3": { }, + "HO2": { }, + "CH2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-11, + "Ea": -2.7613e-21, + "reactants": { + "O": { }, + "HO2": { } + }, + "products": { + "OH": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-12, + "Ea": -4.85988e-21, + "reactants": { + "TOLUENE": { }, + "OH": { } + }, + "products": { + "TOLUENE": { }, + "OH": { }, + "TOLUO2VBS": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.6e-12, + "Ea": -4.97034e-21, + "reactants": { + "OH": { }, + "MACR": { } + }, + "products": { + "MACRO2": { "yield": 0.5 }, + "H2O": { "yield": 0.5 }, + "MCO3": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.204e-10, + "reactants": { + "CFC12": { }, + "O1D": { } + }, + "products": { + "CL": { "yield": 2 }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-11, + "Ea": -3.17549e-21, + "reactants": { + "O": { }, + "BRO": { } + }, + "products": { + "BR": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.9e-12, + "reactants": { + "H": { }, + "HO2": { } + }, + "products": { + "H2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.5e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "HBR": { } + }, + "products": { + "BR": { }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhcfc142b", + "reactants": { + "HCFC142B": { } + }, + "products": { + "CL": { }, + "COF2": { } + } + }, + { + "type": "TROE", + "k0_A": 8.0e-27, + "k0_B": -3.5, + "kinf_A": 3.0e-11, + "Fc": 0.5, + "reactants": { + "OH": { }, + "C3H6": { } + }, + "products": { + "PO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-10, + "reactants": { + "BCARY": { }, + "OH": { } + }, + "products": { + "TERPO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "reactants": { + "MACRO2": { }, + "CH3CO3": { } + }, + "products": { + "CH3COCHO": { "yield": 0.25 }, + "CH3O2": { }, + "CO": { "yield": 0.22 }, + "HO2": { "yield": 0.47 }, + "GLYALD": { "yield": 0.53 }, + "HYAC": { "yield": 0.22 }, + "CH2O": { "yield": 0.25 }, + "CH3CO3": { "yield": 0.53 } + } + }, + { + "type": "TROE", + "k0_A": 4.13793120e-04, + "k0_B": -3, + "k0_C": -10840, + "kinf_A": 2.7586208e+14, + "kinf_C": -10840, + "kinf_B": 0.1, + "reactants": { + "N2O5": { } + }, + "products": { + "NO2": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-10, + "reactants": { + "O1D": { }, + "H2": { } + }, + "products": { + "H": { }, + "OH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jh2o2", + "reactants": { + "H2O2": { } + }, + "products": { + "OH": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e-13, + "Ea": 3.14788e-20, + "reactants": { + "SO": { }, + "O2": { } + }, + "products": { + "SO2": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "C6H5OOH": { } + }, + "products": { + "C6H5O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-13, + "reactants": { + "O": { }, + "HOCL": { } + }, + "products": { + "CLO": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.8e-13, + "reactants": { + "PHENO": { }, + "O3": { } + }, + "products": { + "C6H5O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "joclo", + "reactants": { + "OCLO": { } + }, + "products": { + "O": { }, + "CLO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "BENZO2VBS": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.0097 }, + "SOAG1": { "yield": 0.0034 }, + "SOAG2": { "yield": 0.1579 }, + "SOAG3": { "yield": 0.0059 }, + "SOAG4": { "yield": 0.0536 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "PHENO2": { }, + "NO": { } + }, + "products": { + "HO2": { }, + "GLYOXAL": { "yield": 0.7 }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "reactants": { + "SO": { }, + "NO2": { } + }, + "products": { + "SO2": { }, + "NO": { } + } + }, + { + "type": "TROE", + "k0_A": 1.9e-32, + "k0_B": -3.6, + "kinf_A": 3.7e-12, + "kinf_B": -1.6, + "reactants": { + "CLO": { "qty": 2 } + }, + "products": { + "CL2O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa5_a2", + "reactants": { + "soa5_a2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-12, + "Ea": -4.00388e-21, + "reactants": { + "NO": { }, + "ACBZO2": { } + }, + "products": { + "C6H5O2": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "Ea": -3.72775e-21, + "reactants": { + "CL": { }, + "HO2": { } + }, + "products": { + "HCL": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "PO2": { }, + "HO2": { } + }, + "products": { + "POOH": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "PHENO2": { }, + "HO2": { } + }, + "products": { + "PHENOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.3e-13, + "Ea": -1.43587e-20, + "reactants": { + "MCO3": { }, + "HO2": { } + }, + "products": { + "O3": { "yield": 0.15 }, + "CH3COOH": { "yield": 0.15 }, + "CH3COOOH": { "yield": 0.4 }, + "OH": { "yield": 0.45 }, + "CO2": { "yield": 0.45 }, + "CH2O": { "yield": 0.45 }, + "CH3CO3": { "yield": 0.45 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "C2H5O2": { } + }, + "products": { + "CH3CHO": { }, + "HO2": { }, + "NO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmacr_a", + "reactants": { + "MACR": { } + }, + "products": { + "HO2": { "yield": 1.34 }, + "MCO3": { "yield": 0.66 }, + "CH2O": { "yield": 1.34 }, + "CH3CO3": { "yield": 1.34 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbenzooh", + "reactants": { + "BENZOOH": { } + }, + "products": { + "OH": { }, + "GLYOXAL": { }, + "BIGALD1": { "yield": 0.5 }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.07e-10, + "reactants": { + "O1D": { }, + "CFC11": { } + }, + "products": { + "CL": { "yield": 2 }, + "COFCL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-13, + "reactants": { + "CH3O2": { }, + "C2H5O2": { } + }, + "products": { + "CH2O": { "yield": 0.7 }, + "CH3CHO": { "yield": 0.8 }, + "HO2": { }, + "CH3OH": { "yield": 0.3 }, + "C2H5OH": { "yield": 0.2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jn2o5_b", + "reactants": { + "N2O5": { } + }, + "products": { + "NO": { }, + "O": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.0e-13, + "Ea": -9.66454e-21, + "reactants": { + "ISOPBO2": { }, + "HO2": { } + }, + "products": { + "ISOPOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.8e-12, + "Ea": 2.48517e-20, + "reactants": { + "OH": { }, + "H2": { } + }, + "products": { + "H2O": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e-12, + "reactants": { + "H": { }, + "HO2": { } + }, + "products": { + "H2O": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.45e-12, + "Ea": 2.45065e-20, + "reactants": { + "CH4": { }, + "OH": { } + }, + "products": { + "CH3O2": { }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jso", + "reactants": { + "SO": { } + }, + "products": { + "S": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.7e-12, + "Ea": -4.83227e-21, + "reactants": { + "ISOPO2VBS": { }, + "NO": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.0003 }, + "SOAG1": { "yield": 0.0003 }, + "SOAG2": { "yield": 0.0073 }, + "SOAG3": { "yield": 0.0057 }, + "SOAG4": { "yield": 0.0623 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.8e-11, + "Ea": -3.45162e-21, + "reactants": { + "OH": { }, + "HO2": { } + }, + "products": { + "H2O": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.1e-12, + "reactants": { + "PHENO": { }, + "NO2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.5e-12, + "Ea": -3.17549e-21, + "reactants": { + "BRO": { "qty": 2 } + }, + "products": { + "BR": { "yield": 2 }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.0e-11, + "reactants": { + "OH": { }, + "NC4CH2OH": { } + }, + "products": { + "GLYALD": { }, + "NOA": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jisopnooh", + "reactants": { + "ISOPNOOH": { } + }, + "products": { + "NO2": { }, + "HO2": { }, + "ISOPOOH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jalkooh", + "reactants": { + "ALKOOH": { } + }, + "products": { + "CH3CHO": { "yield": 0.4 }, + "CH2O": { "yield": 0.1 }, + "CH3COCH3": { "yield": 0.25 }, + "HO2": { "yield": 0.9 }, + "MEK": { "yield": 0.8 }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.4e-12, + "Ea": -3.72775e-21, + "reactants": { + "OH": { }, + "CLO": { } + }, + "products": { + "CL": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "NTERPO2": { } + }, + "products": { + "TERPNIT": { "yield": 0.2 }, + "NO2": { "yield": 1.6 }, + "TERPROD1": { "yield": 0.8 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-12, + "reactants": { + "NO3": { }, + "TERPROD1": { } + }, + "products": { + "TERP2O2": { "yield": 0.5 }, + "NTERPO2": { "yield": 0.5 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa1_a1", + "reactants": { + "soa1_a1": { } + }, + "products": { + + } + }, + { + "type": "TROE", + "k0_A": 8.6e-29, + "k0_B": -3.1, + "kinf_A": 9.0e-12, + "Fc": 0.48, + "kinf_B": -0.85, + "reactants": { + "C2H4": { }, + "OH": { } + }, + "products": { + "EO2": { } + } + }, + { + "type": "TROE", + "k0_A": 5.3e-32, + "k0_B": -1.8, + "kinf_A": 9.5e-11, + "kinf_B": 0.4, + "reactants": { + "O2": { }, + "H": { } + }, + "products": { + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-12, + "reactants": { + "S": { }, + "O2": { } + }, + "products": { + "SO": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-14, + "Ea": 3.63111e-20, + "reactants": { + "C2H4": { }, + "O3": { } + }, + "products": { + "CO": { "yield": 0.63 }, + "OH": { "yield": 0.13 }, + "HO2": { "yield": 0.13 }, + "HCOOH": { "yield": 0.37 }, + "CH2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.63e-7, + "reactants": { + "ST80_25": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-12, + "Ea": 4.55614e-21, + "reactants": { + "CLONO2": { }, + "OH": { } + }, + "products": { + "HOCL": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.1e-11, + "Ea": 3.03743e-20, + "reactants": { + "O": { }, + "OCS": { } + }, + "products": { + "SO": { }, + "CO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.0e-13, + "Ea": -9.66454e-21, + "reactants": { + "ISOPNO3": { }, + "HO2": { } + }, + "products": { + "ISOPNOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.13e-12, + "Ea": -6.24053e-21, + "reactants": { + "OH": { }, + "MVK": { } + }, + "products": { + "MACRO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jeooh", + "reactants": { + "EOOH": { } + }, + "products": { + "EO": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "reactants": { + "ISOPBO2": { }, + "CH3CO3": { } + }, + "products": { + "HYDRALD": { }, + "CH3O2": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbrcl", + "reactants": { + "BRCL": { } + }, + "products": { + "BR": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "C2H5O2": { }, + "HO2": { } + }, + "products": { + "C2H5OOH": { }, + "O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jisopooh", + "reactants": { + "ISOPOOH": { } + }, + "products": { + "MVK": { "yield": 0.7 }, + "MACR": { "yield": 0.3 }, + "OH": { }, + "CH2O": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-10, + "reactants": { + "H2402": { }, + "O1D": { } + }, + "products": { + "BR": { "yield": 2 }, + "COF2": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.03e-12, + "Ea": 6.15769e-21, + "reactants": { + "ISOP": { }, + "NO3": { } + }, + "products": { + "ISOP": { }, + "NO3": { }, + "SOAG3": { "yield": 0.059024 }, + "SOAG4": { "yield": 0.025024 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "CH3OOH": { } + }, + "products": { + "CH3O2": { "yield": 0.7 }, + "OH": { "yield": 0.3 }, + "CH2O": { "yield": 0.3 }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jc6h5ooh", + "reactants": { + "C6H5OOH": { } + }, + "products": { + "PHENO": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.1e-12, + "Ea": -2.89936e-21, + "reactants": { + "O": { }, + "NO2": { } + }, + "products": { + "NO": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "MEKOOH": { }, + "OH": { } + }, + "products": { + "MEKO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.3e-12, + "Ea": -4.97034e-21, + "reactants": { + "NO": { }, + "MCO3": { } + }, + "products": { + "NO2": { }, + "CH2O": { }, + "CH3CO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcfc114", + "reactants": { + "CFC114": { } + }, + "products": { + "CL": { "yield": 2 }, + "COF2": { "yield": 2 } + } + }, + { + "type": "TROE", + "k0_A": 9.7e-29, + "k0_B": -5.6, + "kinf_A": 9.3e-12, + "kinf_B": -1.5, + "reactants": { + "MALO2": { }, + "NO2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 3.44e-12, + "Ea": -3.58969e-21, + "reactants": { + "NO": { }, + "HO2": { } + }, + "products": { + "NO2": { }, + "OH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jho2no2_b", + "reactants": { + "HO2NO2": { } + }, + "products": { + "NO2": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.25e-12, + "Ea": 2.20904e-20, + "reactants": { + "OH": { }, + "HCFC141B": { } + }, + "products": { + "CL": { }, + "COFCL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-12, + "Ea": -3.58969e-21, + "reactants": { + "BRO": { }, + "CLO": { } + }, + "products": { + "BR": { }, + "CL": { }, + "O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jpan", + "reactants": { + "PAN": { } + }, + "products": { + "CH3CO3": { "yield": 0.6 }, + "NO2": { "yield": 0.6 }, + "CH3O2": { "yield": 0.4 }, + "NO3": { "yield": 0.4 }, + "CO2": { "yield": 0.4 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.0e-11, + "reactants": { + "OH": { }, + "ISOPNITA": { } + }, + "products": { + "HYAC": { "yield": 0.7 }, + "GLYALD": { "yield": 0.7 }, + "NO2": { "yield": 0.7 }, + "CH2O": { "yield": 0.3 }, + "HONITR": { "yield": 0.3 }, + "HO2": { "yield": 0.3 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "PO2": { } + }, + "products": { + "CH3CHO": { }, + "CH2O": { }, + "HO2": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "BENZO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.0023 }, + "SOAG1": { "yield": 0.0008 }, + "SOAG2": { "yield": 0.0843 }, + "SOAG3": { "yield": 0.0443 }, + "SOAG4": { "yield": 0.1621 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jo3_b", + "reactants": { + "O3": { } + }, + "products": { + "O": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-14, + "Ea": 6.76518e-21, + "reactants": { + "O3": { }, + "HO2": { } + }, + "products": { + "OH": { }, + "O2": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcf2cl2", + "reactants": { + "CFC12": { } + }, + "products": { + "CL": { "yield": 2 }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.62e-10, + "reactants": { + "CHBR3": { }, + "O1D": { } + }, + "products": { + "BR": { "yield": 3 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jno3_b", + "reactants": { + "NO3": { } + }, + "products": { + "NO": { }, + "O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbigald2", + "reactants": { + "BIGALD2": { } + }, + "products": { + "HO2": { "yield": 0.6 }, + "DICARBO2": { "yield": 0.6 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.3e-13, + "Ea": -4.97034e-21, + "reactants": { + "NO": { }, + "MACRO2": { } + }, + "products": { + "HONITR": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.5e-11, + "reactants": { + "O1D": { }, + "CF3BR": { } + }, + "products": { + "BR": { }, + "F": { }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "BENZOOH": { }, + "OH": { } + }, + "products": { + "BENZO2": { } + } + }, + { + "type": "TROE", + "k0_A": 9.7e-29, + "k0_B": -5.6, + "kinf_A": 9.3e-12, + "kinf_B": -1.5, + "reactants": { + "ACBZO2": { }, + "NO2": { } + }, + "products": { + "PBZNIT": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "TERPO2": { } + }, + "products": { + "TERPNIT": { "yield": 0.2 }, + "NO2": { "yield": 0.8 }, + "CH2O": { "yield": 0.32 }, + "CH3COCH3": { "yield": 0.04 }, + "TERPROD1": { "yield": 0.8 }, + "HO2": { "yield": 0.8 } + } + }, + { + "type": "ARRHENIUS", + "A": 6.6e-11, + "reactants": { + "OH": { }, + "S": { } + }, + "products": { + "SO": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-12, + "reactants": { + "CH3COOOH": { }, + "OH": { } + }, + "products": { + "CH3CO3": { "yield": 0.5 }, + "CH2O": { "yield": 0.5 }, + "CO2": { "yield": 0.5 }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.3e-11, + "Ea": -7.59357e-22, + "reactants": { + "O1D": { }, + "O2": { } + }, + "products": { + "O": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-14, + "Ea": -6.35099e-21, + "reactants": { + "HNO3": { }, + "OH": { } + }, + "products": { + "NO3": { }, + "H2O": { } + } + }, + { + "type": "TROE", + "k0_A": 6.5e-34, + "k0_C": 1335, + "kinf_A": 2.7e-17, + "kinf_C": 2199, + "Fc": 1, + "reactants": { + "HNO3": { }, + "OH": { } + }, + "products": { + "NO3": { }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jho2no2_a", + "reactants": { + "HO2NO2": { } + }, + "products": { + "OH": { }, + "NO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch3br", + "reactants": { + "CH3BR": { } + }, + "products": { + "BR": { }, + "CH3O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -4.00388e-21, + "reactants": { + "CLO": { }, + "HO2": { } + }, + "products": { + "O2": { }, + "HOCL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-12, + "Ea": -4.00388e-21, + "reactants": { + "NO": { }, + "MDIALO2": { } + }, + "products": { + "NO2": { }, + "HO2": { "yield": 0.83 }, + "CH3COCHO": { "yield": 0.17 }, + "CO": { "yield": 0.35 }, + "CH3O2": { "yield": 0.17 }, + "GLYOXAL": { "yield": 0.17 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "reactants": { + "H2O": { }, + "F": { } + }, + "products": { + "HF": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-12, + "Ea": 2.56801e-20, + "reactants": { + "NO3": { }, + "CH3COCHO": { } + }, + "products": { + "HNO3": { }, + "CO": { }, + "CH3CO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jclono2_b", + "reactants": { + "CLONO2": { } + }, + "products": { + "CLO": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.1e-11, + "Ea": -1.38065e-21, + "reactants": { + "NO": { }, + "N": { } + }, + "products": { + "N2": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.9e-12, + "Ea": 4.76324e-21, + "reactants": { + "CH3OH": { }, + "OH": { } + }, + "products": { + "HO2": { }, + "CH2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-13, + "Ea": -5.5226e-21, + "reactants": { + "CH3O2": { }, + "XO2": { } + }, + "products": { + "CH3OH": { "yield": 0.3 }, + "HO2": { "yield": 0.8 }, + "CH2O": { "yield": 0.8 }, + "CO": { "yield": 0.2 }, + "GLYOXAL": { "yield": 0.1 }, + "CH3COCHO": { "yield": 0.1 }, + "HYAC": { "yield": 0.1 }, + "GLYALD": { "yield": 0.1 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "PHENOOH": { } + }, + "products": { + "PHENO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "reactants": { + "ISOPNO3": { }, + "CH3CO3": { } + }, + "products": { + "NC4CHO": { }, + "CH3O2": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jglyoxal", + "reactants": { + "GLYOXAL": { } + }, + "products": { + "CO": { "yield": 2 }, + "HO2": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jo3_a", + "reactants": { + "O3": { } + }, + "products": { + "O1D": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "XYLENO2": { } + }, + "products": { + "NO2": { }, + "HO2": { }, + "GLYOXAL": { "yield": 0.34 }, + "CH3COCHO": { "yield": 0.54 }, + "BIGALD1": { "yield": 0.06 }, + "BIGALD2": { "yield": 0.2 }, + "BIGALD3": { "yield": 0.15 }, + "BIGALD4": { "yield": 0.21 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "XYLOLOOH": { } + }, + "products": { + "XYLOLO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-12, + "reactants": { + "OH": { }, + "HYAC": { } + }, + "products": { + "CH3COCHO": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.0e-13, + "Ea": 2.84138e-20, + "reactants": { + "NO3": { }, + "CH2O": { } + }, + "products": { + "CO": { }, + "HO2": { }, + "HNO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-12, + "Ea": -4.00388e-21, + "reactants": { + "MALO2": { }, + "NO": { } + }, + "products": { + "GLYOXAL": { "yield": 0.4 }, + "HO2": { "yield": 0.4 }, + "CO": { "yield": 0.4 }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "ALKO2": { }, + "HO2": { } + }, + "products": { + "ALKOOH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jn2o5_a", + "reactants": { + "N2O5": { } + }, + "products": { + "NO2": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-11, + "reactants": { + "OH": { }, + "TERPNIT": { } + }, + "products": { + "NO2": { }, + "TERPROD1": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhpald", + "reactants": { + "HPALD": { } + }, + "products": { + "BIGALD3": { }, + "OH": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e+12, + "Ea": 9.66454e-20, + "reactants": { + "HOCH2OO": { } + }, + "products": { + "CH2O": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.1e-13, + "Ea": -4.00388e-21, + "reactants": { + "BRO": { }, + "CLO": { } + }, + "products": { + "BRCL": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-13, + "Ea": -5.5226e-21, + "reactants": { + "ISOPAO2": { }, + "CH3O2": { } + }, + "products": { + "CH3OH": { "yield": 0.25 }, + "HO2": { }, + "CH2O": { "yield": 1.5 }, + "MACR": { "yield": 0.31 }, + "MVK": { "yield": 0.44 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbzooh", + "reactants": { + "BZOOH": { } + }, + "products": { + "BZALD": { }, + "OH": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-12, + "Ea": 2.7613e-20, + "reactants": { + "O": { }, + "H2O2": { } + }, + "products": { + "OH": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-14, + "reactants": { + "EO": { }, + "O2": { } + }, + "products": { + "GLYALD": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.64e-11, + "Ea": -2.7613e-22, + "reactants": { + "N2O": { }, + "O1D": { } + }, + "products": { + "N2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.86e-11, + "Ea": -2.41614e-21, + "reactants": { + "OH": { }, + "HPALD": { } + }, + "products": { + "XO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcl2o2", + "reactants": { + "CL2O2": { } + }, + "products": { + "CL": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-10, + "Ea": 5.93679e-21, + "reactants": { + "HOBR": { }, + "O": { } + }, + "products": { + "BRO": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.7e-15, + "Ea": -8.62906e-21, + "reactants": { + "CH2O": { }, + "HO2": { } + }, + "products": { + "HOCH2OO": { } + } + }, + { + "type": "TROE", + "k0_A": 5.2e-30, + "k0_B": -2.4, + "kinf_A": 2.2e-10, + "kinf_B": -0.7, + "reactants": { + "C2H2": { }, + "CL": { } + }, + "products": { + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-12, + "reactants": { + "ISOPNO3": { }, + "NO3": { } + }, + "products": { + "NC4CHO": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.34e-11, + "reactants": { + "IVOC": { }, + "OH": { } + }, + "products": { + "OH": { }, + "IVOCO2VBS": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jalknit", + "reactants": { + "ALKNIT": { } + }, + "products": { + "NO2": { }, + "CH3CHO": { "yield": 0.4 }, + "CH2O": { "yield": 0.1 }, + "CH3COCH3": { "yield": 0.25 }, + "HO2": { }, + "MEK": { "yield": 0.8 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.5e-12, + "reactants": { + "NO3": { }, + "HO2": { } + }, + "products": { + "OH": { }, + "NO2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.03e-11, + "Ea": 1.51871e-20, + "reactants": { + "CH3CL": { }, + "CL": { } + }, + "products": { + "HO2": { }, + "CO": { }, + "HCL": { "yield": 2 } + } + }, + { + "type": "TROE", + "k0_A": 9.7e-29, + "k0_B": -5.6, + "kinf_A": 9.3e-12, + "kinf_B": -1.5, + "reactants": { + "MCO3": { }, + "NO2": { } + }, + "products": { + "MPAN": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.0e-13, + "Ea": 4.97034e-21, + "reactants": { + "CHBR3": { }, + "OH": { } + }, + "products": { + "BR": { "yield": 3 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.3e-10, + "reactants": { + "O1D": { }, + "HCFC142B": { } + }, + "products": { + "CL": { }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.3e-12, + "Ea": 1.58775e-21, + "reactants": { + "CH3O2": { }, + "CLO": { } + }, + "products": { + "CL": { }, + "HO2": { }, + "CH2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.5e-13, + "Ea": 1.89149e-20, + "reactants": { + "CLO": { "qty": 2 } + }, + "products": { + "CL": { }, + "OCLO": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbigald", + "reactants": { + "BIGALD": { } + }, + "products": { + "CO": { "yield": 0.45 }, + "GLYOXAL": { "yield": 0.13 }, + "HO2": { "yield": 0.56 }, + "CH3CO3": { "yield": 0.13 }, + "CH3COCHO": { "yield": 0.18 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.6e-11, + "Ea": 5.17743e-21, + "reactants": { + "CL": { }, + "HO2": { } + }, + "products": { + "OH": { }, + "CLO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "C3H7O2": { } + }, + "products": { + "CH3COCH3": { "yield": 0.82 }, + "NO2": { }, + "HO2": { }, + "CH3CHO": { "yield": 0.27 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa5_a1", + "reactants": { + "soa5_a1": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 6.9e-12, + "Ea": 3.17549e-21, + "reactants": { + "C2H5OH": { }, + "OH": { } + }, + "products": { + "HO2": { }, + "CH3CHO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-11, + "reactants": { + "O3": { }, + "S": { } + }, + "products": { + "SO": { }, + "O2": { } + } + }, + { + "type": "TROE", + "k0_A": 7.3e-29, + "k0_B": -4.1, + "kinf_A": 9.5e-12, + "kinf_B": -1.6, + "reactants": { + "CH3CO3": { }, + "NO2": { } + }, + "products": { + "PAN": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.52e-11, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "ISOPOOH": { } + }, + "products": { + "XO2": { "yield": 0.4 }, + "IEPOX": { "yield": 0.6 }, + "OH": { "yield": 0.6 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.9e-12, + "Ea": -4.14195e-21, + "reactants": { + "NO": { }, + "RO2": { } + }, + "products": { + "CH3CO3": { }, + "CH2O": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "BZOOH": { } + }, + "products": { + "BZOO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-10, + "reactants": { + "O3": { }, + "O1D": { } + }, + "products": { + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.3e-13, + "Ea": -1.43587e-20, + "reactants": { + "MALO2": { }, + "HO2": { } + }, + "products": { + "GLYOXAL": { "yield": 0.16 }, + "HO2": { "yield": 0.16 }, + "CO": { "yield": 0.16 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.31e-7, + "reactants": { + "NH_50": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 2.15e-11, + "Ea": -1.51871e-21, + "reactants": { + "O1D": { }, + "N2": { } + }, + "products": { + "O": { }, + "N2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-11, + "reactants": { + "OH": { }, + "XYLENES": { } + }, + "products": { + "XYLOL": { "yield": 0.15 }, + "TEPOMUC": { "yield": 0.23 }, + "BZOO": { "yield": 0.06 }, + "XYLENO2": { "yield": 0.56 }, + "HO2": { "yield": 0.38 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.2e-11, + "reactants": { + "NO3": { }, + "OH": { } + }, + "products": { + "HO2": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "IVOCO2VBS": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.1056 }, + "SOAG1": { "yield": 0.1026 }, + "SOAG2": { "yield": 0.0521 }, + "SOAG3": { "yield": 0.0143 }, + "SOAG4": { "yield": 0.0166 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.7e-12, + "Ea": -4.97034e-21, + "reactants": { + "BCARYO2VBS": { }, + "NO": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.1279 }, + "SOAG1": { "yield": 0.1792 }, + "SOAG2": { "yield": 0.0676 }, + "SOAG3": { "yield": 0.079 }, + "SOAG4": { "yield": 0.1254 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmvk", + "reactants": { + "MVK": { } + }, + "products": { + "C3H6": { "yield": 0.7 }, + "CO": { "yield": 0.7 }, + "CH3O2": { "yield": 0.3 }, + "CH3CO3": { "yield": 0.3 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "EO2": { } + }, + "products": { + "CH2O": { "yield": 0.5 }, + "HO2": { "yield": 0.25 }, + "EO": { "yield": 0.75 }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-11, + "reactants": { + "O1D": { }, + "HBR": { } + }, + "products": { + "BRO": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.8e-11, + "Ea": -1.17355e-21, + "reactants": { + "O": { }, + "CLO": { } + }, + "products": { + "CL": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.1e-12, + "Ea": 1.75342e-20, + "reactants": { + "CH4": { }, + "CL": { } + }, + "products": { + "CH3O2": { }, + "HCL": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jso3", + "reactants": { + "SO3": { } + }, + "products": { + "SO2": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.3e-12, + "Ea": 1.10452e-20, + "reactants": { + "CH2BR2": { }, + "CL": { } + }, + "products": { + "BR": { "yield": 2 }, + "HCL": { } + } + }, + { + "type": "TROE", + "k0_A": 8.0e-27, + "k0_B": -3.5, + "kinf_A": 3.0e-11, + "Fc": 0.5, + "reactants": { + "OH": { }, + "MPAN": { } + }, + "products": { + "HYAC": { "yield": 0.5 }, + "NO3": { "yield": 0.5 }, + "CH2O": { "yield": 0.5 }, + "HO2": { "yield": 0.5 }, + "CO2": { "yield": 0.5 } + } + }, + { + "type": "TROE", + "k0_A": 1.07767, + "k0_B": -5.6, + "k0_C": -14000, + "kinf_A": 1.03323e+17, + "kinf_B": -1.5, + "kinf_C": -14000, + "reactants": { + "PBZNIT": { } + }, + "products": { + "ACBZO2": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-12, + "Ea": 6.90325e-21, + "reactants": { + "OH": { }, + "HOCL": { } + }, + "products": { + "H2O": { }, + "CLO": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jchbr3", + "reactants": { + "CHBR3": { } + }, + "products": { + "BR": { "yield": 3 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-12, + "Ea": 2.62323e-20, + "reactants": { + "NO3": { }, + "CH3CHO": { } + }, + "products": { + "CH3CO3": { }, + "HNO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jterprd2", + "reactants": { + "TERPROD2": { } + }, + "products": { + "RO2": { "yield": 0.15 }, + "CH2O": { "yield": 0.68 }, + "CO2": { "yield": 0.8 }, + "CH3COCH3": { "yield": 0.5 }, + "CH3CO3": { "yield": 0.65 }, + "HO2": { "yield": 1.2 }, + "CO": { "yield": 1.7 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.0e-13, + "Ea": -9.66454e-21, + "reactants": { + "MACRO2": { }, + "HO2": { } + }, + "products": { + "MACROOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.8e-12, + "Ea": 4.28001e-21, + "reactants": { + "BR": { }, + "HO2": { } + }, + "products": { + "HBR": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.7e-12, + "Ea": -4.97034e-21, + "reactants": { + "NO": { }, + "MACRO2": { } + }, + "products": { + "NO2": { }, + "HO2": { "yield": 0.47 }, + "CH2O": { "yield": 0.25 }, + "GLYALD": { "yield": 0.53 }, + "CH3COCHO": { "yield": 0.25 }, + "CH3CO3": { "yield": 0.53 }, + "HYAC": { "yield": 0.22 }, + "CO": { "yield": 0.22 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.05e-14, + "Ea": 2.7613e-20, + "reactants": { + "ISOP": { }, + "O3": { } + }, + "products": { + "ISOP": { }, + "O3": { }, + "SOAG3": { "yield": 0.0033 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmek", + "reactants": { + "MEK": { } + }, + "products": { + "CH3CO3": { }, + "C2H5O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jacet", + "reactants": { + "CH3COCH3": { } + }, + "products": { + "CH3CO3": { }, + "CH3O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-12, + "reactants": { + "SO": { }, + "OCLO": { } + }, + "products": { + "SO2": { }, + "CLO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.3e-13, + "Ea": -1.43587e-20, + "reactants": { + "ACBZO2": { }, + "HO2": { } + }, + "products": { + "C6H5O2": { "yield": 0.4 }, + "OH": { "yield": 0.4 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "XYLEO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.1677 }, + "SOAG1": { "yield": 0.0174 }, + "SOAG2": { "yield": 0.086 }, + "SOAG3": { "yield": 0.0512 }, + "SOAG4": { "yield": 0.1598 } + } + }, + { + "type": "ARRHENIUS", + "A": 5.9e-12, + "Ea": -3.10646e-21, + "reactants": { + "BZALD": { }, + "OH": { } + }, + "products": { + "ACBZO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e-10, + "Ea": 3.58969e-21, + "reactants": { + "CH4": { }, + "F": { } + }, + "products": { + "HF": { }, + "CH3O2": { } + } + }, + { + "type": "TROE", + "k0_A": 9.0e-32, + "k0_B": -1.5, + "kinf_A": 3.0e-11, + "reactants": { + "NO": { }, + "O": { } + }, + "products": { + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.31e-6, + "reactants": { + "NH_5": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-11, + "reactants": { + "ISOPAO2": { }, + "CH3CO3": { } + }, + "products": { + "CH3O2": { }, + "HO2": { }, + "CH2O": { }, + "MACR": { "yield": 0.39 }, + "MVK": { "yield": 0.61 }, + "CO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.82e-11, + "Ea": 2.7613e-20, + "reactants": { + "CH3COCH3": { }, + "OH": { } + }, + "products": { + "RO2": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.33e-13, + "reactants": { + "CH3COCH3": { }, + "OH": { } + }, + "products": { + "RO2": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.5e-13, + "Ea": -8.42196e-21, + "reactants": { + "HO2NO2": { }, + "OH": { } + }, + "products": { + "H2O": { }, + "NO2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.3e-11, + "reactants": { + "NO3": { }, + "O": { } + }, + "products": { + "NO2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.7e-12, + "reactants": { + "ALKO2": { }, + "NO": { } + }, + "products": { + "CH3CHO": { "yield": 0.4 }, + "CH2O": { "yield": 0.1 }, + "CH3COCH3": { "yield": 0.25 }, + "HO2": { }, + "MEK": { "yield": 0.8 }, + "NO2": { } + } + }, + { + "type": "TROE", + "k0_A": 1.9e-31, + "k0_B": -3.4, + "kinf_A": 4.0e-12, + "kinf_B": -0.3, + "reactants": { + "NO2": { }, + "HO2": { } + }, + "products": { + "HO2NO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcf2clbr", + "reactants": { + "CF2CLBR": { } + }, + "products": { + "BR": { }, + "CL": { }, + "COF2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jh2o_c", + "reactants": { + "H2O": { } + }, + "products": { + "H": { "yield": 2 }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.0e-11, + "reactants": { + "ISOPNITB": { }, + "OH": { } + }, + "products": { + "HYAC": { "yield": 0.5 }, + "GLYALD": { "yield": 0.5 }, + "NOA": { "yield": 0.5 }, + "HO2": { }, + "HONITR": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.4e-11, + "reactants": { + "OH": { }, + "XYLOL": { } + }, + "products": { + "XYLOLO2": { "yield": 0.3 }, + "HO2": { "yield": 0.63 }, + "PHENO": { "yield": 0.07 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-11, + "Ea": -4.55614e-21, + "reactants": { + "SO": { }, + "OH": { } + }, + "products": { + "SO2": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.6e-12, + "Ea": -7.31744e-21, + "reactants": { + "MCO3": { }, + "CH3CO3": { } + }, + "products": { + "CO2": { "yield": 2 }, + "CH3O2": { }, + "CH2O": { }, + "CH3CO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jxylolooh", + "reactants": { + "XYLOLOOH": { } + }, + "products": { + "OH": { }, + "GLYOXAL": { "yield": 0.17 }, + "CH3COCHO": { "yield": 0.51 }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jso2", + "reactants": { + "SO2": { } + }, + "products": { + "SO": { }, + "O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmekooh", + "reactants": { + "MEKOOH": { } + }, + "products": { + "OH": { }, + "CH3CO3": { }, + "CH3CHO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-11, + "reactants": { + "OH": { }, + "XYLENES": { } + }, + "products": { + "XYLENES": { }, + "OH": { }, + "XYLEO2VBS": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.4e-12, + "Ea": 1.79484e-21, + "reactants": { + "HOCL": { }, + "CL": { } + }, + "products": { + "HCL": { }, + "CLO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.7e-11, + "reactants": { + "CRESOL": { }, + "OH": { } + }, + "products": { + "PHENO2": { "yield": 0.2 }, + "HO2": { "yield": 0.73 }, + "PHENO": { "yield": 0.07 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.15e-14, + "Ea": -1.2702e-20, + "reactants": { + "OH": { }, + "CH3COOH": { } + }, + "products": { + "CH3O2": { }, + "CO2": { }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jphenooh", + "reactants": { + "PHENOOH": { } + }, + "products": { + "OH": { }, + "HO2": { }, + "GLYOXAL": { "yield": 0.7 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.8e-12, + "reactants": { + "OH": { "qty": 2 } + }, + "products": { + "H2O": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-11, + "Ea": 3.38259e-20, + "reactants": { + "CLO": { "qty": 2 } + }, + "products": { + "CL": { "yield": 2 }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.3e-12, + "Ea": -8.83615e-21, + "reactants": { + "XO2": { }, + "CH3CO3": { } + }, + "products": { + "CO": { "yield": 0.25 }, + "CH2O": { "yield": 0.25 }, + "GLYOXAL": { "yield": 0.25 }, + "CH3O2": { }, + "HO2": { }, + "CH3COCHO": { "yield": 0.25 }, + "HYAC": { "yield": 0.25 }, + "GLYALD": { "yield": 0.25 }, + "CO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-12, + "reactants": { + "NO3": { }, + "XO2": { } + }, + "products": { + "NO2": { }, + "HO2": { }, + "CO": { "yield": 0.5 }, + "HYAC": { "yield": 0.25 }, + "GLYOXAL": { "yield": 0.25 }, + "CH3COCHO": { "yield": 0.25 }, + "GLYALD": { "yield": 0.25 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "TERP2O2": { }, + "NO": { } + }, + "products": { + "ONITR": { "yield": 0.1 }, + "NO2": { "yield": 0.9 }, + "CH2O": { "yield": 0.34 }, + "CH3COCH3": { "yield": 0.27 }, + "CO": { "yield": 0.225 }, + "CO2": { "yield": 0.9 }, + "TERPROD2": { "yield": 0.9 }, + "HO2": { "yield": 0.9 }, + "GLYALD": { "yield": 0.225 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.42e-12, + "Ea": 1.58775e-20, + "reactants": { + "CH3BR": { }, + "OH": { } + }, + "products": { + "BR": { }, + "H2O": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa4_a1", + "reactants": { + "soa4_a1": { } + }, + "products": { + + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jno2", + "reactants": { + "NO2": { } + }, + "products": { + "NO": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-11, + "reactants": { + "OH": { }, + "GLYALD": { } + }, + "products": { + "HO2": { }, + "GLYOXAL": { "yield": 0.2 }, + "CH2O": { "yield": 0.8 }, + "CO2": { "yield": 0.8 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "NTERPO2": { }, + "HO2": { } + }, + "products": { + "NTERPOOH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbigald3", + "reactants": { + "BIGALD3": { } + }, + "products": { + "HO2": { "yield": 0.6 }, + "CO": { "yield": 0.6 }, + "MDIALO2": { "yield": 0.6 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "POOH": { } + }, + "products": { + "PO2": { "yield": 0.5 }, + "OH": { "yield": 0.5 }, + "HYAC": { "yield": 0.5 }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.75e-11, + "reactants": { + "O1D": { }, + "CF2CLBR": { } + }, + "products": { + "CL": { }, + "BR": { }, + "COF2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch2br2", + "reactants": { + "CH2BR2": { } + }, + "products": { + "BR": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhf", + "reactants": { + "HF": { } + }, + "products": { + "H": { }, + "F": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbepomuc", + "reactants": { + "BEPOMUC": { } + }, + "products": { + "BIGALD1": { }, + "HO2": { "yield": 1.5 }, + "CO": { "yield": 1.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.6e-13, + "Ea": -9.66454e-21, + "reactants": { + "RO2": { }, + "HO2": { } + }, + "products": { + "ROOH": { "yield": 0.85 }, + "OH": { "yield": 0.15 }, + "CH2O": { "yield": 0.15 }, + "CH3CO3": { "yield": 0.15 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-12, + "reactants": { + "NO3": { }, + "MACRO2": { } + }, + "products": { + "NO2": { }, + "HO2": { "yield": 0.47 }, + "CH2O": { "yield": 0.25 }, + "CH3COCHO": { "yield": 0.25 }, + "CO": { "yield": 0.22 }, + "GLYALD": { "yield": 0.53 }, + "HYAC": { "yield": 0.22 }, + "CH3CO3": { "yield": 0.53 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "Ea": -6.90325e-21, + "reactants": { + "CH3O2": { }, + "NTERPO2": { } + }, + "products": { + "TERPNIT": { "yield": 0.5 }, + "CH2O": { "yield": 0.75 }, + "CH3OH": { "yield": 0.25 }, + "HO2": { "yield": 0.5 }, + "TERPROD1": { "yield": 0.5 }, + "NO2": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-11, + "Ea": -2.7613e-21, + "reactants": { + "MACROOH": { }, + "OH": { } + }, + "products": { + "MCO3": { "yield": 0.5 }, + "MACRO2": { "yield": 0.2 }, + "OH": { "yield": 0.1 }, + "HO2": { "yield": 0.2 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "MEKO2": { }, + "HO2": { } + }, + "products": { + "MEKOOH": { "yield": 0.8 }, + "OH": { "yield": 0.2 }, + "CH3CHO": { "yield": 0.2 }, + "CH3CO3": { "yield": 0.2 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.4e-12, + "Ea": 1.51871e-20, + "reactants": { + "SO": { }, + "O3": { } + }, + "products": { + "SO2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-12, + "Ea": 2.66465e-21, + "reactants": { + "BENZENE": { }, + "OH": { } + }, + "products": { + "BENZENE": { }, + "OH": { }, + "BENZO2VBS": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.0e-14, + "reactants": { + "PAN": { }, + "OH": { } + }, + "products": { + "CH2O": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "TERPO2": { }, + "HO2": { } + }, + "products": { + "TERPOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-12, + "reactants": { + "NO3": { }, + "MCO3": { } + }, + "products": { + "NO2": { }, + "CH2O": { }, + "CH3CO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jn2o", + "reactants": { + "N2O": { } + }, + "products": { + "O1D": { }, + "N2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch2o_a", + "reactants": { + "CH2O": { } + }, + "products": { + "CO": { }, + "H": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-11, + "Ea": 2.7613e-21, + "reactants": { + "O3": { }, + "CL": { } + }, + "products": { + "CLO": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-11, + "Ea": -1.72581e-21, + "reactants": { + "NO3": { }, + "NO": { } + }, + "products": { + "NO2": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "EO2": { }, + "HO2": { } + }, + "products": { + "EOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.8e-13, + "Ea": 1.44968e-20, + "reactants": { + "CH3CN": { }, + "OH": { } + }, + "products": { + "HO2": { } + } + }, + { + "type": "TROE", + "k0_A": 9.04762e-5, + "k0_B": -3.4, + "k0_C": -10900, + "kinf_A": 1.90476e+15, + "kinf_B": -0.3, + "kinf_C": -10900, + "reactants": { + "HO2NO2": { } + }, + "products": { + "HO2": { }, + "NO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhcfc22", + "reactants": { + "HCFC22": { } + }, + "products": { + "CL": { }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-12, + "Ea": 1.29781e-20, + "reactants": { + "OH": { }, + "O3": { } + }, + "products": { + "HO2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-13, + "Ea": 3.38259e-20, + "reactants": { + "O3": { }, + "NO2": { } + }, + "products": { + "NO3": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.05e-11, + "Ea": 3.13407e-20, + "reactants": { + "CL": { }, + "H2": { } + }, + "products": { + "HCL": { }, + "H": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jnc4cho", + "reactants": { + "NC4CHO": { } + }, + "products": { + "BIGALD3": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.5e-15, + "Ea": 2.62323e-20, + "reactants": { + "O3": { }, + "C3H6": { } + }, + "products": { + "CH2O": { "yield": 0.5 }, + "HCOOH": { "yield": 0.12 }, + "CH3COOH": { "yield": 0.12 }, + "CH3CHO": { "yield": 0.5 }, + "CO": { "yield": 0.56 }, + "CH3O2": { "yield": 0.28 }, + "CH4": { "yield": 0.1 }, + "CO2": { "yield": 0.2 }, + "HO2": { "yield": 0.28 }, + "OH": { "yield": 0.36 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhonitr", + "reactants": { + "HONITR": { } + }, + "products": { + "NO2": { }, + "HO2": { "yield": 0.67 }, + "CH3CHO": { "yield": 0.33 }, + "CH2O": { "yield": 0.33 }, + "CO": { "yield": 0.33 }, + "GLYALD": { "yield": 0.33 }, + "CH3CO3": { "yield": 0.33 }, + "HYAC": { "yield": 0.17 }, + "CH3COCH3": { "yield": 0.17 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "C6H5O2": { }, + "NO": { } + }, + "products": { + "PHENO": { }, + "NO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jxooh", + "reactants": { + "XOOH": { } + }, + "products": { + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-12, + "reactants": { + "NO3": { }, + "ISOPBO2": { } + }, + "products": { + "NO2": { }, + "HYDRALD": { "yield": 0.95 }, + "HO2": { }, + "GLYOXAL": { "yield": 0.05 }, + "GLYALD": { "yield": 0.05 }, + "CH3COCHO": { "yield": 0.05 }, + "HYAC": { "yield": 0.05 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.26e-11, + "Ea": -2.7613e-22, + "reactants": { + "N2O": { }, + "O1D": { } + }, + "products": { + "NO": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-10, + "reactants": { + "OH": { }, + "NC4CHO": { } + }, + "products": { + "GLYOXAL": { }, + "NOA": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch4_a", + "reactants": { + "CH4": { } + }, + "products": { + "H": { }, + "CH3O2": { } + } + }, + { + "type": "TROE", + "k0_A": 5.2e-31, + "k0_B": -3.2, + "kinf_A": 6.9e-12, + "kinf_B": -2.9, + "reactants": { + "BRO": { }, + "NO2": { } + }, + "products": { + "BRONO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhobr", + "reactants": { + "HOBR": { } + }, + "products": { + "BR": { }, + "OH": { } + } + }, + { + "type": "TROE", + "k0_A": 1.6e-29, + "k0_B": -3.3, + "kinf_A": 3.1e-10, + "kinf_B": -1.0, + "reactants": { + "C2H4": { }, + "CL": { } + }, + "products": { + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.7e-12, + "Ea": -4.97034e-21, + "reactants": { + "NO": { }, + "MTERPO2VBS": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.0245 }, + "SOAG1": { "yield": 0.0082 }, + "SOAG2": { "yield": 0.0772 }, + "SOAG3": { "yield": 0.0332 }, + "SOAG4": { "yield": 0.13 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "XYLEO2VBS": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.0063 }, + "SOAG1": { "yield": 0.0237 }, + "SOAG2": { "yield": 0.0025 }, + "SOAG3": { "yield": 0.011 }, + "SOAG4": { "yield": 0.1185 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jno3_a", + "reactants": { + "NO3": { } + }, + "products": { + "NO2": { }, + "O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jh2o_a", + "reactants": { + "H2O": { } + }, + "products": { + "OH": { }, + "H": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch3co3h", + "reactants": { + "CH3COOOH": { } + }, + "products": { + "CH3O2": { }, + "OH": { }, + "CO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-11, + "Ea": -3.45162e-21, + "reactants": { + "OH": { }, + "BRO": { } + }, + "products": { + "BR": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.8e-12, + "Ea": -3.58969e-21, + "reactants": { + "NO": { }, + "BRO": { } + }, + "products": { + "BR": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-13, + "Ea": -6.35099e-21, + "reactants": { + "HO2": { "qty": 2 } + }, + "products": { + "H2O2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.1e-33, + "Ea": -1.2702e-20, + "reactants": { + "HO2": { "qty": 2 }, + "M": { } + }, + "products": { + "H2O2": { }, + "O2": { }, + "M": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-34, + "Ea": -3.67253e-20, + "reactants": { + "HO2": { "qty": 2 }, + "H2O": { } + }, + "products": { + "H2O2": { }, + "O2": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.94e-54, + "Ea": -4.30762e-20, + "reactants": { + "HO2": { "qty": 2 }, + "M": { }, + "H2O": { } + }, + "products": { + "H2O2": { }, + "O2": { }, + "M": { }, + "H2O": { } + } + }, + { + "type": "TROE", + "k0_A": 6.9e-31, + "k0_B": -1, + "kinf_A": 2.6e-11, + "reactants": { + "OH": { "qty": 2 } + }, + "products": { + "H2O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jonitr", + "reactants": { + "ONITR": { } + }, + "products": { + "NO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jterpooh", + "reactants": { + "TERPOOH": { } + }, + "products": { + "CH2O": { "yield": 0.4 }, + "CH3COCH3": { "yield": 0.05 }, + "TERPROD1": { }, + "HO2": { }, + "OH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcl2", + "reactants": { + "CL2": { } + }, + "products": { + "CL": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.6e-13, + "Ea": 1.59603e-20, + "reactants": { + "NO3": { }, + "C3H6": { } + }, + "products": { + "NOA": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-11, + "reactants": { + "BCARY": { }, + "NO3": { } + }, + "products": { + "NTERPO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-14, + "reactants": { + "BCARY": { }, + "O3": { } + }, + "products": { + "TERPROD1": { "yield": 0.33 }, + "TERPROD2": { "yield": 0.3 }, + "OH": { "yield": 0.63 }, + "HO2": { "yield": 0.57 }, + "CO": { "yield": 0.23 }, + "CO2": { "yield": 0.27 }, + "CH3COCH3": { "yield": 0.52 }, + "CH2O": { "yield": 0.34 }, + "BIGALD": { "yield": 0.1 }, + "HCOOH": { "yield": 0.05 }, + "BIGALK": { "yield": 0.05 }, + "CH3CO3": { "yield": 0.06 }, + "RO2": { "yield": 0.06 } + } + }, + { + "type": "ARRHENIUS", + "A": 9.2e-13, + "Ea": 2.15381e-20, + "reactants": { + "OH": { }, + "HCFC22": { } + }, + "products": { + "H2O": { }, + "CL": { }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-10, + "reactants": { + "O3": { }, + "O1D": { } + }, + "products": { + "O2": { }, + "O": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch3cho", + "reactants": { + "CH3CHO": { } + }, + "products": { + "CH3O2": { }, + "CO": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "C2H5OOH": { }, + "OH": { } + }, + "products": { + "C2H5O2": { "yield": 0.5 }, + "CH3CHO": { "yield": 0.5 }, + "OH": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 6.8e-14, + "reactants": { + "C2H5O2": { "qty": 2 } + }, + "products": { + "CH3CHO": { "yield": 1.6 }, + "HO2": { "yield": 1.2 }, + "C2H5OH": { "yield": 0.4 } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-11, + "reactants": { + "OH": { }, + "N": { } + }, + "products": { + "NO": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.7e-12, + "Ea": -4.97034e-21, + "reactants": { + "NO": { }, + "XO2": { } + }, + "products": { + "NO2": { }, + "HO2": { }, + "CO": { "yield": 0.25 }, + "CH2O": { "yield": 0.25 }, + "GLYOXAL": { "yield": 0.25 }, + "CH3COCHO": { "yield": 0.25 }, + "HYAC": { "yield": 0.25 }, + "GLYALD": { "yield": 0.25 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.644e-11, + "reactants": { + "CFC115": { }, + "O1D": { } + }, + "products": { + "CL": { }, + "F": { }, + "COF2": { "yield": 2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jbigald1", + "reactants": { + "BIGALD1": { } + }, + "products": { + "MALO2": { "yield": 0.6 }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhno3", + "reactants": { + "HNO3": { } + }, + "products": { + "NO2": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.3e-13, + "Ea": -1.43587e-20, + "reactants": { + "CH3CO3": { }, + "HO2": { } + }, + "products": { + "CH3COOOH": { "yield": 0.4 }, + "CH3COOH": { "yield": 0.15 }, + "O3": { "yield": 0.15 }, + "OH": { "yield": 0.45 }, + "CH3O2": { "yield": 0.45 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jc2h5ooh", + "reactants": { + "C2H5OOH": { } + }, + "products": { + "CH3CHO": { }, + "HO2": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.7e-13, + "Ea": -1.68439e-20, + "reactants": { + "OH": { }, + "PHENOL": { } + }, + "products": { + "PHENO2": { "yield": 0.14 }, + "HO2": { "yield": 0.8 }, + "PHENO": { "yield": 0.06 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.08e-10, + "Ea": -1.44968e-21, + "reactants": { + "HCN": { }, + "O1D": { } + }, + "products": { + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.0e-11, + "reactants": { + "ISOPNOOH": { }, + "OH": { } + }, + "products": { + "NOA": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.9e-12, + "Ea": -3.03743e-21, + "reactants": { + "N": { }, + "NO2": { } + }, + "products": { + "N2O": { }, + "O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jco2", + "reactants": { + "CO2": { } + }, + "products": { + "CO": { }, + "O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.0e-11, + "reactants": { + "O1D": { }, + "HBR": { } + }, + "products": { + "BR": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.0e-12, + "Ea": -5.5226e-21, + "reactants": { + "HNO3": { }, + "F": { } + }, + "products": { + "HF": { }, + "NO3": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcfc115", + "reactants": { + "CFC115": { } + }, + "products": { + "CL": { }, + "F": { }, + "COF2": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 9.19e-12, + "Ea": 8.69809e-21, + "reactants": { + "OH": { }, + "C3H8": { } + }, + "products": { + "C3H7O2": { }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhcfc141b", + "reactants": { + "HCFC141B": { } + }, + "products": { + "CL": { }, + "COFCL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.5e-11, + "reactants": { + "CH4": { }, + "O1D": { } + }, + "products": { + "CH2O": { }, + "H": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jterprd1", + "reactants": { + "TERPROD1": { } + }, + "products": { + "HO2": { }, + "CO": { }, + "TERPROD2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jmpan", + "reactants": { + "MPAN": { } + }, + "products": { + "MCO3": { }, + "NO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jclono2_a", + "reactants": { + "CLONO2": { } + }, + "products": { + "CL": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-11, + "Ea": 4.55614e-20, + "reactants": { + "HCL": { }, + "O": { } + }, + "products": { + "CL": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.0e-13, + "reactants": { + "HCOOH": { }, + "OH": { } + }, + "products": { + "HO2": { }, + "CO2": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-11, + "Ea": 1.10452e-20, + "reactants": { + "BR": { }, + "CH2O": { } + }, + "products": { + "HBR": { }, + "HO2": { }, + "CO": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa3_a1", + "reactants": { + "soa3_a1": { } + }, + "products": { + + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa4_a2", + "reactants": { + "soa4_a2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 4.5e-12, + "Ea": -6.35099e-21, + "reactants": { + "BRO": { }, + "HO2": { } + }, + "products": { + "HOBR": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.1e-13, + "Ea": -1.03549e-20, + "reactants": { + "CH3O2": { }, + "HO2": { } + }, + "products": { + "CH3OOH": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.7e-12, + "Ea": -4.97034e-21, + "reactants": { + "ISOPNO3": { }, + "NO": { } + }, + "products": { + "NC4CHO": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcf3br", + "reactants": { + "CF3BR": { } + }, + "products": { + "BR": { }, + "F": { }, + "COF2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.76e-34, + "Ea": -9.94067e-21, + "reactants": { + "O": { "qty": 2 }, + "M": { } + }, + "products": { + "O2": { }, + "M": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.3e-16, + "Ea": 8.00776e-21, + "reactants": { + "O3": { }, + "MTERP": { } + }, + "products": { + "TERPROD1": { "yield": 0.33 }, + "TERPROD2": { "yield": 0.3 }, + "OH": { "yield": 0.63 }, + "HO2": { "yield": 0.57 }, + "CO": { "yield": 0.23 }, + "CO2": { "yield": 0.27 }, + "CH3COCH3": { "yield": 0.52 }, + "CH2O": { "yield": 0.34 }, + "BIGALD": { "yield": 0.1 }, + "HCOOH": { "yield": 0.05 }, + "BIGALK": { "yield": 0.05 }, + "CH3CO3": { "yield": 0.06 }, + "RO2": { "yield": 0.06 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.1e-11, + "Ea": 1.35304e-20, + "reactants": { + "CL": { }, + "H2O2": { } + }, + "products": { + "HCL": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.7e-13, + "reactants": { + "OH": { }, + "NOA": { } + }, + "products": { + "NO2": { }, + "CH3COCHO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.2e-14, + "Ea": 1.47729e-20, + "reactants": { + "OH": { }, + "OCS": { } + }, + "products": { + "SO2": { }, + "CO": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.3e-11, + "reactants": { + "OH": { }, + "TERPOOH": { } + }, + "products": { + "TERPO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.5e-12, + "reactants": { + "BIGALK": { }, + "OH": { } + }, + "products": { + "ALKO2": { } + } + }, + { + "type": "TROE", + "k0_A": 9.7e-29, + "k0_B": -5.6, + "kinf_A": 9.3e-12, + "kinf_B": -1.5, + "reactants": { + "DICARBO2": { }, + "NO2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e-11, + "Ea": 1.07691e-20, + "reactants": { + "BR": { }, + "O3": { } + }, + "products": { + "BRO": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-12, + "Ea": 2.66465e-21, + "reactants": { + "BENZENE": { }, + "OH": { } + }, + "products": { + "PHENOL": { "yield": 0.53 }, + "BEPOMUC": { "yield": 0.12 }, + "HO2": { "yield": 0.65 }, + "BENZO2": { "yield": 0.35 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch3cl", + "reactants": { + "CH3CL": { } + }, + "products": { + "CL": { }, + "CH3O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhcl", + "reactants": { + "HCL": { } + }, + "products": { + "H": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-13, + "Ea": -5.5226e-21, + "reactants": { + "CH3O2": { }, + "MACRO2": { } + }, + "products": { + "HO2": { "yield": 0.73 }, + "CH2O": { "yield": 0.88 }, + "CO": { "yield": 0.11 }, + "CH3COCHO": { "yield": 0.24 }, + "GLYALD": { "yield": 0.26 }, + "CH3CO3": { "yield": 0.26 }, + "CH3OH": { "yield": 0.25 }, + "HYAC": { "yield": 0.23 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.0e-13, + "Ea": -9.66454e-21, + "reactants": { + "ISOPAO2": { }, + "HO2": { } + }, + "products": { + "ISOPOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.5e-41, + "C": 6540, + "reactants": { + "H2O": { "qty": 2 }, + "SO3": {} + }, + "products": { + "H2SO4": { }, + "H2O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jtolooh", + "reactants": { + "TOLOOH": { } + }, + "products": { + "OH": { }, + "GLYOXAL": { "yield": 0.6 }, + "CH3COCHO": { "yield": 0.4 }, + "HO2": { }, + "BIGALD1": { "yield": 0.2 }, + "BIGALD2": { "yield": 0.2 }, + "BIGALD3": { "yield": 0.2 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch3ccl3", + "reactants": { + "CH3CCL3": { } + }, + "products": { + "CL": { "yield": 3 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-11, + "reactants": { + "NTERPOOH": { }, + "OH": { } + }, + "products": { + "NTERPO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.8e-12, + "Ea": -4.14195e-21, + "reactants": { + "CH3O2": { }, + "NO": { } + }, + "products": { + "CH2O": { }, + "NO2": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-12, + "reactants": { + "ISOPAO2": { }, + "NO3": { } + }, + "products": { + "NO2": { }, + "MACR": { "yield": 0.4 }, + "MVK": { "yield": 0.6 }, + "CH2O": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "BZOO": { }, + "HO2": { } + }, + "products": { + "BZOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "TOLUO2VBS": { } + }, + "products": { + "NO": { }, + "SOAG0": { "yield": 0.0154 }, + "SOAG1": { "yield": 0.0452 }, + "SOAG2": { "yield": 0.0966 }, + "SOAG3": { "yield": 0.0073 }, + "SOAG4": { "yield": 0.238 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-13, + "Ea": -1.79484e-20, + "reactants": { + "MTERPO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.0508 }, + "SOAG1": { "yield": 0.1149 }, + "SOAG2": { "yield": 0.0348 }, + "SOAG3": { "yield": 0.0554 }, + "SOAG4": { "yield": 0.1278 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.2e-12, + "Ea": -2.48517e-21, + "reactants": { + "NO": { }, + "MEKO2": { } + }, + "products": { + "CH3CO3": { }, + "CH3CHO": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "XYLENO2": { }, + "HO2": { } + }, + "products": { + "XYLENOOH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa2_a1", + "reactants": { + "soa2_a1": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-12, + "Ea": -4.00388e-21, + "reactants": { + "NO": { }, + "DICARBO2": { } + }, + "products": { + "NO2": { }, + "HO2": { "yield": 0.17 }, + "CH3COCHO": { "yield": 0.17 }, + "CO": { "yield": 0.17 }, + "CH3O2": { "yield": 0.83 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jglyald", + "reactants": { + "GLYALD": { } + }, + "products": { + "HO2": { "yield": 2 }, + "CO": { }, + "CH2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "TERP2O2": { }, + "HO2": { } + }, + "products": { + "TERP2OOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.3e-12, + "reactants": { + "HCL": { }, + "O1D": { } + }, + "products": { + "CLO": { }, + "H": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jocs", + "reactants": { + "OCS": { } + }, + "products": { + "S": { }, + "CO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.2e-14, + "reactants": { + "BCARY": { }, + "O3": { } + }, + "products": { + "BCARY": { }, + "O3": { }, + "SOAG0": { "yield": 0.2202 }, + "SOAG1": { "yield": 0.2067 }, + "SOAG2": { "yield": 0.0653 }, + "SOAG3": { "yield": 0.1284 }, + "SOAG4": { "yield": 0.114 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsf6", + "reactants": { + "SF6": { } + }, + "products": { + "sink": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.1e-13, + "Ea": -6.90325e-21, + "reactants": { + "CH3O2": { }, + "RO2": { } + }, + "products": { + "CH3CO3": { "yield": 0.3 }, + "CH2O": { "yield": 0.8 }, + "HO2": { "yield": 0.3 }, + "HYAC": { "yield": 0.2 }, + "CH3COCHO": { "yield": 0.5 }, + "CH3OH": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "XYLOLO2": { }, + "HO2": { } + }, + "products": { + "XYLOLOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-11, + "reactants": { + "BCARY": { }, + "NO3": { } + }, + "products": { + "BCARY": { }, + "NO3": { }, + "SOAG3": { "yield": 0.17493 }, + "SOAG4": { "yield": 0.59019 } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jhocl", + "reactants": { + "HOCL": { } + }, + "products": { + "OH": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.607e-10, + "reactants": { + "O1D": { }, + "CCL4": { } + }, + "products": { + "CL": { "yield": 4 } + } + }, + { + "type": "ARRHENIUS", + "A": 4.3e-13, + "Ea": -1.43587e-20, + "reactants": { + "DICARBO2": { }, + "HO2": { } + }, + "products": { + "OH": { "yield": 0.4 }, + "HO2": { "yield": 0.07 }, + "CH3COCHO": { "yield": 0.07 }, + "CO": { "yield": 0.07 }, + "CH3O2": { "yield": 0.33 } + } + }, + { + "type": "ARRHENIUS", + "A": 3.8e-12, + "Ea": -2.7613e-21, + "reactants": { + "OH": { }, + "ROOH": { } + }, + "products": { + "RO2": { }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e+11, + "Ea": 5.72969e-20, + "reactants": { + "EO": { } + }, + "products": { + "CH2O": { "yield": 2 }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.05e-14, + "Ea": 2.7613e-20, + "reactants": { + "ISOP": { }, + "O3": { } + }, + "products": { + "MACR": { "yield": 0.3 }, + "MVK": { "yield": 0.2 }, + "HCOOH": { "yield": 0.11 }, + "CO": { "yield": 0.62 }, + "OH": { "yield": 0.32 }, + "HO2": { "yield": 0.37 }, + "CH2O": { "yield": 0.91 }, + "CH3CO3": { "yield": 0.08 }, + "C3H6": { "yield": 0.13 }, + "CH3O2": { "yield": 0.05 } + } + }, + { + "type": "ARRHENIUS", + "A": 5.1e-14, + "Ea": -9.5679e-21, + "reactants": { + "NO": { }, + "ENEO2": { } + }, + "products": { + "HONITR": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jch3ooh", + "reactants": { + "CH3OOH": { } + }, + "products": { + "CH2O": { }, + "H": { }, + "OH": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jclo", + "reactants": { + "CLO": { } + }, + "products": { + "CL": { }, + "O": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcofcl", + "reactants": { + "COFCL": { } + }, + "products": { + "F": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.03e-12, + "Ea": 6.15769e-21, + "reactants": { + "ISOP": { }, + "NO3": { } + }, + "products": { + "ISOPNO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.31e-10, + "reactants": { + "CH4": { }, + "O1D": { } + }, + "products": { + "CH3O2": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.5e-13, + "reactants": { + "BIGENE": { }, + "NO3": { } + }, + "products": { + "NO2": { }, + "CH3CHO": { }, + "CH2O": { "yield": 0.5 }, + "CH3COCH3": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.4e-12, + "reactants": { + "NO3": { }, + "NTERPO2": { } + }, + "products": { + "NO2": { "yield": 2 }, + "TERPROD1": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.34e-8, + "reactants": { + "NH4": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e+9, + "Ea": 1.14594e-19, + "reactants": { + "ISOPBO2": { } + }, + "products": { + "HPALD": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "BENZO2": { }, + "HO2": { } + }, + "products": { + "BENZOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e-12, + "reactants": { + "OH": { }, + "ALKNIT": { } + }, + "products": { + "CH2O": { "yield": 0.4 }, + "CH3CHO": { "yield": 0.8 }, + "CH3COCH3": { "yield": 0.8 }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.46e-11, + "Ea": 1.43587e-20, + "reactants": { + "CH3BR": { }, + "CL": { } + }, + "products": { + "HCL": { }, + "HO2": { }, + "BR": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.4e-11, + "reactants": { + "OH": { }, + "TERPROD2": { } + }, + "products": { + "RO2": { "yield": 0.15 }, + "CH2O": { "yield": 0.68 }, + "CO2": { "yield": 1.8 }, + "CH3COCH3": { "yield": 0.5 }, + "CH3CO3": { "yield": 0.65 }, + "HO2": { "yield": 0.2 }, + "CO": { "yield": 0.7 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.6e-12, + "Ea": -5.03937e-21, + "reactants": { + "NO": { }, + "XYLOLO2": { } + }, + "products": { + "HO2": { }, + "NO2": { }, + "GLYOXAL": { "yield": 0.17 }, + "CH3COCHO": { "yield": 0.51 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.86e-11, + "Ea": -2.41614e-21, + "reactants": { + "OH": { }, + "HYDRALD": { } + }, + "products": { + "XO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "Ea": -6.90325e-21, + "reactants": { + "TERP2O2": { }, + "CH3O2": { } + }, + "products": { + "TERPROD2": { }, + "CH2O": { "yield": 0.93 }, + "CH3OH": { "yield": 0.25 }, + "HO2": { }, + "CO2": { "yield": 0.5 }, + "CO": { "yield": 0.125 }, + "GLYALD": { "yield": 0.125 }, + "CH3COCH3": { "yield": 0.15 } + } + }, + { + "type": "ARRHENIUS", + "A": 5.5e-12, + "Ea": -1.72581e-21, + "reactants": { + "OH": { }, + "CH2O": { } + }, + "products": { + "CO": { }, + "H2O": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-11, + "Ea": -2.9684e-21, + "reactants": { + "O": { }, + "BRONO2": { } + }, + "products": { + "BRO": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 8.5e-16, + "Ea": 2.09859e-20, + "reactants": { + "O3": { }, + "MVK": { } + }, + "products": { + "CH2O": { "yield": 0.6 }, + "CO": { "yield": 0.56 }, + "CH3CHO": { "yield": 0.1 }, + "CO2": { "yield": 0.1 }, + "CH3CO3": { "yield": 0.28 }, + "CH3COCHO": { "yield": 0.5 }, + "HO2": { "yield": 0.28 }, + "OH": { "yield": 0.36 }, + "HCOOH": { "yield": 0.12 } + } + }, + { + "type": "ARRHENIUS", + "A": 8.1e-11, + "Ea": 4.14195e-22, + "reactants": { + "CL": { }, + "CH2O": { } + }, + "products": { + "HCL": { }, + "HO2": { }, + "CO": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jo2_a", + "reactants": { + "O2": { } + }, + "products": { + "O": { }, + "O1D": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.0e-13, + "Ea": 5.85395e-21, + "reactants": { + "CH3O2": { "qty": 2 } + }, + "products": { + "CH2O": { "yield": 2 }, + "HO2": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-12, + "Ea": -4.85988e-21, + "reactants": { + "TOLUENE": { }, + "OH": { } + }, + "products": { + "CRESOL": { "yield": 0.18 }, + "TEPOMUC": { "yield": 0.1 }, + "BZOO": { "yield": 0.07 }, + "TOLO2": { "yield": 0.65 }, + "HO2": { "yield": 0.28 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.0e-12, + "Ea": 2.19523e-20, + "reactants": { + "CLO": { "qty": 2 } + }, + "products": { + "CL2": { }, + "O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "IVOCO2VBS": { }, + "HO2": { } + }, + "products": { + "HO2": { }, + "SOAG0": { "yield": 0.2381 }, + "SOAG1": { "yield": 0.1308 }, + "SOAG2": { "yield": 0.0348 }, + "SOAG3": { "yield": 0.0076 }, + "SOAG4": { "yield": 0.0113 } + } + }, + { + "type": "TROE", + "k0_A": 1.07767, + "k0_B": -5.6, + "k0_C": -14000, + "kinf_A": 1.03323e+17, + "kinf_B": -1.5, + "kinf_C": -14000, + "reactants": { + "MPAN": { } + }, + "products": { + "MCO3": { }, + "NO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.0e-12, + "Ea": 2.07097e-20, + "reactants": { + "NO": { }, + "O3": { } + }, + "products": { + "NO2": { }, + "O2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jh2402", + "reactants": { + "H2402": { } + }, + "products": { + "BR": { "yield": 2 }, + "COF2": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 2.3e-11, + "reactants": { + "TERP2OOH": { }, + "OH": { } + }, + "products": { + "TERP2O2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 9.5e-13, + "Ea": -7.59357e-21, + "reactants": { + "BRO": { }, + "CLO": { } + }, + "products": { + "BR": { }, + "OCLO": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.0e-12, + "Ea": 1.15975e-20, + "reactants": { + "CH2BR2": { }, + "OH": { } + }, + "products": { + "BR": { "yield": 2 }, + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.8e-12, + "reactants": { + "OH": { }, + "H2O2": { } + }, + "products": { + "H2O": { }, + "HO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.2e-11, + "reactants": { + "H": { }, + "HO2": { } + }, + "products": { + "OH": { "yield": 2 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.8e-12, + "Ea": 3.45162e-21, + "reactants": { + "HCL": { }, + "OH": { } + }, + "products": { + "H2O": { }, + "CL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 2.088e-10, + "reactants": { + "CFC113": { }, + "O1D": { } + }, + "products": { + "CL": { "yield": 2 }, + "COFCL": { }, + "COF2": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jsoa1_a2", + "reactants": { + "soa1_a2": { } + }, + "products": { + + } + }, + { + "type": "ARRHENIUS", + "A": 1.9e-14, + "Ea": -9.74738e-21, + "reactants": { + "CH3O2": { "qty": 2 } + }, + "products": { + "CH2O": { }, + "CH3OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.4e-10, + "Ea": 6.90325e-21, + "reactants": { + "F": { }, + "H2": { } + }, + "products": { + "HF": { }, + "H": { } + } + }, + { + "type": "ARRHENIUS", + "A": 1.7e-12, + "Ea": 9.80261e-21, + "reactants": { + "NH3": { }, + "OH": { } + }, + "products": { + "H2O": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.85e-12, + "Ea": 1.17355e-20, + "reactants": { + "CHBR3": { }, + "CL": { } + }, + "products": { + "BR": { "yield": 3 }, + "HCL": { } + } + }, + { + "type": "ARRHENIUS", + "A": 3.6e-12, + "Ea": 1.15975e-20, + "reactants": { + "CLONO2": { }, + "O": { } + }, + "products": { + "CLO": { }, + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 4.4e-12, + "Ea": -2.48517e-21, + "reactants": { + "ISOPAO2": { }, + "NO": { } + }, + "products": { + "ISOPNITA": { "yield": 0.08 }, + "NO2": { "yield": 0.92 }, + "MACR": { "yield": 0.36 }, + "MVK": { "yield": 0.56 }, + "CH2O": { "yield": 0.92 }, + "HO2": { "yield": 0.92 } + } + }, + { + "type": "ARRHENIUS", + "A": 1.6e-11, + "Ea": 6.30957e-20, + "reactants": { + "O": { }, + "H2": { } + }, + "products": { + "OH": { }, + "H": { } + } + }, + { + "type": "TROE", + "k0_A": 2.5e-31, + "k0_B": -1.8, + "kinf_A": 2.2e-11, + "kinf_B": -0.7, + "reactants": { + "NO2": { }, + "O": { } + }, + "products": { + "NO3": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.8e-12, + "Ea": 2.07097e-20, + "reactants": { + "O": { }, + "HBR": { } + }, + "products": { + "BR": { }, + "OH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 5.4e-11, + "reactants": { + "BIGENE": { }, + "OH": { } + }, + "products": { + "ENEO2": { } + } + }, + { + "type": "ARRHENIUS", + "A": 7.5e-13, + "Ea": -9.66454e-21, + "reactants": { + "TOLO2": { }, + "HO2": { } + }, + "products": { + "TOLOOH": { } + } + }, + { + "type": "ARRHENIUS", + "A": 6.5e-12, + "Ea": -1.86388e-21, + "reactants": { + "CLONO2": { }, + "CL": { } + }, + "products": { + "CL2": { }, + "NO3": { } + } + }, + { + "type": "TROE", + "k0_A": 2.4e-30, + "k0_B": -3, + "kinf_A": 1.6e-12, + "kinf_B": 0.1, + "reactants": { + "NO3": { }, + "NO2": { } + }, + "products": { + "N2O5": { } + } + }, + { + "type": "PHOTOLYSIS", + "MUSICA name": "jcfcl3", + "reactants": { + "CFC11": { } + }, + "products": { + "CL": { "yield": 2 }, + "COFCL": { } + } + } + ] + }, + { + "type": "SURFACE", + "MUSICA name": "usr_HO2_aer", + "reaction probability": 0.02, + "gas-phase reactant": "HO2", + "gas-phase products": { + "H2O": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_NO3_aer", + "reaction probability": 0.002, + "gas-phase reactant": "NO3", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_ISOPNITA_aer", + "reaction probability": 0.005, + "gas-phase reactant": "ISOPNITA", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_ISOPNITB_aer", + "reaction probability": 0.005, + "gas-phase reactant": "ISOPNITB", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_GLYOXAL_aer", + "reaction probability": 2.0e-4, + "gas-phase reactant": "GLYOXAL", + "gas-phase products": { + "SOAG0": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_ONITR_aer", + "reaction probability": 0.005, + "gas-phase reactant": "ONITR", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_N2O5_aer", + "reaction probability": 0.02, + "gas-phase reactant": "N2O5", + "gas-phase products": { + "HNO3": { "yield": 2 } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_HONITR_aer", + "reaction probability": 0.005, + "gas-phase reactant": "HONITR", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_NC4CHO_aer", + "reaction probability": 0.02, + "gas-phase reactant": "NC4CHO", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_TERPNIT_aer", + "reaction probability": 0.01, + "gas-phase reactant": "TERPNIT", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_NTERPOOH_aer", + "reaction probability": 0.01, + "gas-phase reactant": "NTERPOOH", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_NC4CH2OH_aer", + "reaction probability": 0.005, + "gas-phase reactant": "NC4CH2OH", + "gas-phase products": { + "HNO3": { } + } + }, + { + "type": "SURFACE", + "MUSICA name": "usr_NO2_aer", + "reaction probability": 8.0e-6, + "gas-phase reactant": "NO2", + "gas-phase products": { + "OH": { "yield": 0.5 }, + "NO": { "yield": 0.5 }, + "HNO3": { "yield": 0.5 } + } + }, + { + "type": "ARRHENIUS", + "reactants": { + "OH": { }, + "CO": { } + }, + "products": { + "CO2": { }, + "HO2": { } + }, + "A": 1.5e-13, + "B": 0, + "C": 0, + "E": 0 + }, + { + "type": "ARRHENIUS", + "reactants": { + "OH": { }, + "CO": { }, + "M": { } + }, + "products": { + "CO2": { }, + "HO2": { } + }, + "A": 9.0e-20, + "B": 1, + "C": 0, + "D": 1, + "E": 0 + }, + { + "type": "TROE", + "reactants": { + "OH": {}, + "DMS": {} + }, + "products": { + "SO2": { + "yield": 0.5 + }, + "HO2": { + "yield": 0.5 + } + }, + "k0_A": 3.57e-43, + "k0_B": 0.0, + "k0_C": 7810.0, + "kinf_A": 6.4909e-13, + "kinf_B": 0.0, + "kinf_C": 350.0, + "Fc": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/acom_music_box/examples/configs/ts1/camp_data/species.json b/src/acom_music_box/examples/configs/ts1/camp_data/species.json new file mode 100644 index 00000000..98dd44b4 --- /dev/null +++ b/src/acom_music_box/examples/configs/ts1/camp_data/species.json @@ -0,0 +1,1281 @@ +{ + "camp-data": [ + { + "type": "RELATIVE_TOLERANCE", + "value": 1.0e-4 + }, + { + "name": "ALKNIT", + "type": "CHEM_SPEC", + "__description": "standard alkyl nitrate from BIGALK+OH chemistry", + "molecular weight [kg mol-1]": 0.133141 + }, + { + "name": "BZOOH", + "type": "CHEM_SPEC", + "__description": "hydroperoxide from toluene oxidation", + "molecular weight [kg mol-1]": 0.124135 + }, + { + "name": "C6H5OOH", + "type": "CHEM_SPEC", + "__description": "phenyl hydroperoxide", + "molecular weight [kg mol-1]": 0.110109 + }, + { + "name": "COF2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "O2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "COFCL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "HF", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "F", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "BENZO2", + "type": "CHEM_SPEC", + "__description": "bicyclic peroxy radical from OH + benzene", + "molecular weight [kg mol-1]": 0.159115 + }, + { + "name": "BZOO", + "type": "CHEM_SPEC", + "__description": "peroxy radical from toluene oxidation", + "molecular weight [kg mol-1]": 0.123128 + }, + { + "name": "N2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "E90", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "NH_5", + "type": "CHEM_SPEC", + "__description": "idealized tracer with 5 day loss rate", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "NH_50", + "type": "CHEM_SPEC", + "__description": "idealized tracer with 50-day loss rate", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "ST80_25", + "type": "CHEM_SPEC", + "__description": "Stratospheric loss tracer", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "PAN", + "type": "CHEM_SPEC", + "__description": "peroxy acetyl nitrate", + "molecular weight [kg mol-1]": 0.121048 + }, + { + "name": "MVK", + "type": "CHEM_SPEC", + "__description": "methyl vinyl ketone", + "molecular weight [kg mol-1]": 0.0700878 + }, + { + "name": "MACROOH", + "type": "CHEM_SPEC", + "__description": "peroxide from methacrolein", + "molecular weight [kg mol-1]": 0.120101 + }, + { + "name": "SOAG0", + "type": "CHEM_SPEC", + "__description": "SOA gas-phase precursor VBS bin 0", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "SOAG1", + "type": "CHEM_SPEC", + "__description": "SOA gas-phase precursor VBS bin 1", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "SOAG2", + "type": "CHEM_SPEC", + "__description": "SOA gas-phase precursor VBS bin 2", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "SOAG3", + "type": "CHEM_SPEC", + "__description": "SOA gas-phase precursor VBS bin 3", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "SOAG4", + "type": "CHEM_SPEC", + "__description": "SOA gas-phase precursor VBS bin 4", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa4_a1", + "type": "CHEM_SPEC", + "__description": "SOA bin 4, MAM accumulation mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa5_a1", + "type": "CHEM_SPEC", + "__description": "SOA bin 5, MAM accumulation mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa5_a2", + "type": "CHEM_SPEC", + "__description": "SOA bin 5, MAM Aitken mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa3_a1", + "type": "CHEM_SPEC", + "__description": "SOA bin 3, MAM accumulation mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa2_a1", + "type": "CHEM_SPEC", + "__description": "SOA bin 2, MAM accumulation mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa1_a1", + "type": "CHEM_SPEC", + "__description": "SOA bin 1, MAM accumulation mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa1_a2", + "type": "CHEM_SPEC", + "__description": "SOA bin 1, MAM Aitken mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa2_a2", + "type": "CHEM_SPEC", + "__description": "SOA bin 2, MAM Aitken mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa3_a2", + "type": "CHEM_SPEC", + "__description": "SOA bin 3, MAM Aitken mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "soa4_a2", + "type": "CHEM_SPEC", + "__description": "SOA bin 4, MAM Aitken mode", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "ISOPNITB", + "type": "CHEM_SPEC", + "__description": "1,4-hydroxynitrate from OH+isoprene chemistry", + "molecular weight [kg mol-1]": 0.147126, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "SO3", + "type": "CHEM_SPEC", + "__description": "sulfur trioxide", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "OCS", + "type": "CHEM_SPEC", + "__description": "carbonyl sulfide", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "SO", + "type": "CHEM_SPEC", + "__description": "sulfur monoxide", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "S", + "type": "CHEM_SPEC", + "__description": "atomic sulfur", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "BCARYO2VBS", + "type": "CHEM_SPEC", + "__description": "BCARY oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "SF6", + "type": "CHEM_SPEC", + "__description": "sulfur hexafluoride", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "sink", + "type": "CHEM_SPEC", + "__description": "sink for sulfur hexaflouride", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "H", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0010074 + }, + { + "name": "MEK", + "type": "CHEM_SPEC", + "__description": "methyl ethyl ketone", + "molecular weight [kg mol-1]": 0.0721026 + }, + { + "name": "MTERP", + "type": "CHEM_SPEC", + "__description": "lumped monoterpenes", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "N2O5", + "type": "CHEM_SPEC", + "__description": "dinitrogen pentoxide", + "molecular weight [kg mol-1]": 0.10801, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "HCN", + "type": "CHEM_SPEC", + "__description": "hydrogen cyanide", + "molecular weight [kg mol-1]": 0.0270251 + }, + { + "name": "SVOC", + "type": "CHEM_SPEC", + "__description": "semi-volatile organic precursor of VBS SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "ISOPNO3", + "type": "CHEM_SPEC", + "__description": "peroxy radical from isoprene NO3 oxidation", + "molecular weight [kg mol-1]": 0.162118 + }, + { + "name": "RO2", + "type": "CHEM_SPEC", + "__description": "peroxy radical from acetone", + "molecular weight [kg mol-1]": 0.0890682 + }, + { + "name": "PHENO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.175114 + }, + { + "name": "BENZO2VBS", + "type": "CHEM_SPEC", + "__description": "benzene oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "IVOC", + "type": "CHEM_SPEC", + "__description": "intermediate volatility organic precursor of VBS SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "TERPNIT", + "type": "CHEM_SPEC", + "__description": "mostly hydroxynitrates from OH+terpene chemistry", + "molecular weight [kg mol-1]": 0.21524, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "ISOPO2VBS", + "type": "CHEM_SPEC", + "__description": "isoprene oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "IVOCO2VBS", + "type": "CHEM_SPEC", + "__description": "IVOC oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "HNO3", + "type": "CHEM_SPEC", + "__description": "nitric acid", + "molecular weight [kg mol-1]": 0.0630123 + }, + { + "name": "ACBZO2", + "type": "CHEM_SPEC", + "__description": "acylperoxy radical from benzaldehyde", + "molecular weight [kg mol-1]": 0.137112 + }, + { + "name": "CH3COOOH", + "type": "CHEM_SPEC", + "__description": "peracetic acid", + "molecular weight [kg mol-1]": 0.0760498 + }, + { + "name": "SO2", + "type": "CHEM_SPEC", + "__description": "sulfur dioxide", + "molecular weight [kg mol-1]": 0.0640648 + }, + { + "name": "MTERPO2VBS", + "type": "CHEM_SPEC", + "__description": "MTERP oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "CH4", + "type": "CHEM_SPEC", + "__description": "methane", + "molecular weight [kg mol-1]": 0.0160406 + }, + { + "name": "CH3CL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0504859 + }, + { + "name": "CH3CO3", + "type": "CHEM_SPEC", + "__description": "acetylperoxy radical", + "molecular weight [kg mol-1]": 0.0750424 + }, + { + "name": "C6H5O2", + "type": "CHEM_SPEC", + "__description": "phenylperoxy radical", + "molecular weight [kg mol-1]": 0.109102 + }, + { + "name": "TERPROD1", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.168227 + }, + { + "name": "HYAC", + "type": "CHEM_SPEC", + "__description": "hydroxyacetone", + "molecular weight [kg mol-1]": 0.0740762 + }, + { + "name": "HPALD", + "type": "CHEM_SPEC", + "__description": "hydroperoxyaldehyde", + "molecular weight [kg mol-1]": 0.116112 + }, + { + "name": "TOLUO2VBS", + "type": "CHEM_SPEC", + "__description": "toluene oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "H2O", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0180142 + }, + { + "name": "NO2", + "type": "CHEM_SPEC", + "__description": "nitrogen dioxide", + "molecular weight [kg mol-1]": 0.0460055, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "EOOH", + "type": "CHEM_SPEC", + "__description": "hydroxyhydroperoxide from OH + ethene chemistry", + "molecular weight [kg mol-1]": 0.0780646 + }, + { + "name": "NTERPOOH", + "type": "CHEM_SPEC", + "__description": "nitrooxy-hydroperoxide from NO3+terpene chemistry", + "molecular weight [kg mol-1]": 0.23124, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "XYLEO2VBS", + "type": "CHEM_SPEC", + "__description": "xylenes oxidation proxy for NOx-dependent VBS-SOA", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "CCL4", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.153822 + }, + { + "name": "CF2CLBR", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.165365 + }, + { + "name": "CF3BR", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.14891 + }, + { + "name": "CFC11", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.137368 + }, + { + "name": "CFC113", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.187375 + }, + { + "name": "CFC114", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.170921 + }, + { + "name": "CFC115", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.154467 + }, + { + "name": "CFC12", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.120913 + }, + { + "name": "CH2BR2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.173834 + }, + { + "name": "CH3BR", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0949372 + }, + { + "name": "CH3CCL3", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.133402 + }, + { + "name": "NO", + "type": "CHEM_SPEC", + "__description": "nitric oxide", + "molecular weight [kg mol-1]": 0.0300061 + }, + { + "name": "BR", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.079904 + }, + { + "name": "BRCL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.115357 + }, + { + "name": "BRO", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0959034 + }, + { + "name": "BRONO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.141909 + }, + { + "name": "CL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0354527 + }, + { + "name": "CL2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0709054 + }, + { + "name": "CL2O2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.102904 + }, + { + "name": "CLO", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0514521 + }, + { + "name": "CLONO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0974576 + }, + { + "name": "HCOOH", + "type": "CHEM_SPEC", + "__description": "formic acid", + "molecular weight [kg mol-1]": 0.0460246 + }, + { + "name": "HBR", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0809114 + }, + { + "name": "HOBR", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0969108 + }, + { + "name": "HOCL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0524595 + }, + { + "name": "N", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0140067 + }, + { + "name": "BIGENE", + "type": "CHEM_SPEC", + "__description": "lumped alkenes C>3", + "molecular weight [kg mol-1]": 0.0561032 + }, + { + "name": "C2H4", + "type": "CHEM_SPEC", + "__description": "ethene", + "molecular weight [kg mol-1]": 0.0280516 + }, + { + "name": "C2H5O2", + "type": "CHEM_SPEC", + "__description": "ethylperoxy radical", + "molecular weight [kg mol-1]": 0.0610578 + }, + { + "name": "CH3COCHO", + "type": "CHEM_SPEC", + "__description": "methyl glyoxal", + "molecular weight [kg mol-1]": 0.0720614 + }, + { + "name": "CH3COCH3", + "type": "CHEM_SPEC", + "__description": "acetone", + "molecular weight [kg mol-1]": 0.0580768 + }, + { + "name": "O", + "type": "CHEM_SPEC", + "__description": "ground state atomic oxygen", + "molecular weight [kg mol-1]": 0.0159994 + }, + { + "name": "OCLO", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0674515 + }, + { + "name": "O1D", + "type": "CHEM_SPEC", + "__description": "excited state atomic oxygen", + "molecular weight [kg mol-1]": 0.0159994 + }, + { + "name": "PHENO", + "type": "CHEM_SPEC", + "__description": "phenoxy radical", + "molecular weight [kg mol-1]": 0.159115 + }, + { + "name": "HCFC141B", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.116948 + }, + { + "name": "HCFC142B", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.100494 + }, + { + "name": "HCFC22", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0864679 + }, + { + "name": "DMS", + "type": "CHEM_SPEC", + "__description": "dimethyl sulfide", + "molecular weight [kg mol-1]": 0.0621324 + }, + { + "name": "C2H5OH", + "type": "CHEM_SPEC", + "__description": "ethanol", + "molecular weight [kg mol-1]": 0.0460658 + }, + { + "name": "HCL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0364601 + }, + { + "name": "BEPOMUC", + "type": "CHEM_SPEC", + "__description": "unsaturated dialdehydic epoxide from OH + benzene", + "molecular weight [kg mol-1]": 0.126109 + }, + { + "name": "CHBR3", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.25273 + }, + { + "name": "H2402", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.259824 + }, + { + "name": "CO2", + "type": "CHEM_SPEC", + "__description": "carbon dioxide", + "molecular weight [kg mol-1]": 0.0440098 + }, + { + "name": "BZALD", + "type": "CHEM_SPEC", + "__description": "benzaldehyde", + "molecular weight [kg mol-1]": 0.106121 + }, + { + "name": "BENZENE", + "type": "CHEM_SPEC", + "__description": "benzene", + "molecular weight [kg mol-1]": 0.0781104 + }, + { + "name": "C3H7O2", + "type": "CHEM_SPEC", + "__description": "propylperoxy radical", + "molecular weight [kg mol-1]": 0.0750836 + }, + { + "name": "CH3O2", + "type": "CHEM_SPEC", + "__description": "methylperoxy radical", + "molecular weight [kg mol-1]": 0.047032 + }, + { + "name": "BCARY", + "type": "CHEM_SPEC", + "__description": "beta-caryophyllene", + "molecular weight [kg mol-1]": 0.204343 + }, + { + "name": "BIGALD", + "type": "CHEM_SPEC", + "__description": "lumped aldehyde from terpene ozonolysis", + "molecular weight [kg mol-1]": 0.0980982 + }, + { + "name": "BIGALD2", + "type": "CHEM_SPEC", + "__description": "4-oxy-2-pentenal, a product of aromatic oxidation", + "molecular weight [kg mol-1]": 0.0980982 + }, + { + "name": "BIGALD3", + "type": "CHEM_SPEC", + "__description": "2-methyl butenedial, a product of aromatic oxidation", + "molecular weight [kg mol-1]": 0.0980982 + }, + { + "name": "BIGALD4", + "type": "CHEM_SPEC", + "__description": "2-methyl-4-oxo-2-pentenal, a product of aromatic oxidation", + "molecular weight [kg mol-1]": 0.112124 + }, + { + "name": "BIGALK", + "type": "CHEM_SPEC", + "__description": "lumped alkanes C>3", + "molecular weight [kg mol-1]": 0.0721438 + }, + { + "name": "H2O2", + "type": "CHEM_SPEC", + "__description": "hydrogen peroxide", + "molecular weight [kg mol-1]": 0.0340136 + }, + { + "name": "C2H5OOH", + "type": "CHEM_SPEC", + "__description": "ethyl hydroperoxide", + "molecular weight [kg mol-1]": 0.0620652 + }, + { + "name": "C2H6", + "type": "CHEM_SPEC", + "__description": "ethane", + "molecular weight [kg mol-1]": 0.0300664 + }, + { + "name": "C3H8", + "type": "CHEM_SPEC", + "__description": "propane", + "molecular weight [kg mol-1]": 0.0440922 + }, + { + "name": "C3H6", + "type": "CHEM_SPEC", + "__description": "propene", + "molecular weight [kg mol-1]": 0.0420774 + }, + { + "name": "CH2O", + "type": "CHEM_SPEC", + "__description": "formaldehyde", + "molecular weight [kg mol-1]": 0.0300252 + }, + { + "name": "CH3CN", + "type": "CHEM_SPEC", + "__description": "acetonitrile", + "molecular weight [kg mol-1]": 0.0410509 + }, + { + "name": "C2H2", + "type": "CHEM_SPEC", + "__description": "ethyne", + "molecular weight [kg mol-1]": 0.0260368 + }, + { + "name": "CH3OH", + "type": "CHEM_SPEC", + "__description": "methanol", + "molecular weight [kg mol-1]": 0.03204 + }, + { + "name": "CH3OOH", + "type": "CHEM_SPEC", + "__description": "methyl hydroperoxide", + "molecular weight [kg mol-1]": 0.0480394 + }, + { + "name": "CRESOL", + "type": "CHEM_SPEC", + "__description": "lumped cresols (hydroxymethylbenzenes)", + "molecular weight [kg mol-1]": 0.108136 + }, + { + "name": "ENEO2", + "type": "CHEM_SPEC", + "__description": "lumped hydroxyperoxy radical from OH + large alkenes", + "molecular weight [kg mol-1]": 0.105109 + }, + { + "name": "MACRO2", + "type": "CHEM_SPEC", + "__description": "peroxy radical from methacrolein oxidation", + "molecular weight [kg mol-1]": 0.119093 + }, + { + "name": "ISOPAO2", + "type": "CHEM_SPEC", + "__description": "1,2-isomer of isoprene peroxy radical", + "molecular weight [kg mol-1]": 0.11712 + }, + { + "name": "MALO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.115064 + }, + { + "name": "ISOPBO2", + "type": "CHEM_SPEC", + "__description": "1,4-isomer of isoprene peroxy radical", + "molecular weight [kg mol-1]": 0.11712 + }, + { + "name": "MCO3", + "type": "CHEM_SPEC", + "__description": "peroxy radical from OH abstraction reaction with MACR", + "molecular weight [kg mol-1]": 0.101079 + }, + { + "name": "MDIALO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.117079 + }, + { + "name": "MEKO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.103094 + }, + { + "name": "EO2", + "type": "CHEM_SPEC", + "__description": "hydroxyperoxy radical from OH + ethene chemistry", + "molecular weight [kg mol-1]": 0.0770572 + }, + { + "name": "EO", + "type": "CHEM_SPEC", + "__description": "hydroxyalkoxy radical from OH + ethene chemistry", + "molecular weight [kg mol-1]": 0.0610578 + }, + { + "name": "GLYOXAL", + "type": "CHEM_SPEC", + "__description": "glyoxal", + "molecular weight [kg mol-1]": 0.0580356, + "diffusion coefficient [m2 s-1]": 1e300 + }, + { + "name": "MPAN", + "type": "CHEM_SPEC", + "__description": "methacrylol peroxynitrate", + "molecular weight [kg mol-1]": 0.147085 + }, + { + "name": "NC4CH2OH", + "type": "CHEM_SPEC", + "__description": "nitrooxy-alcohol from NO3+isoprene chemistry", + "molecular weight [kg mol-1]": 0.147126, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "ISOPOOH", + "type": "CHEM_SPEC", + "__description": "unsaturated hydroxyhydroperoxide", + "molecular weight [kg mol-1]": 0.118127 + }, + { + "name": "GLYALD", + "type": "CHEM_SPEC", + "__description": "glycolaldehyde", + "molecular weight [kg mol-1]": 0.0600504 + }, + { + "name": "HO2", + "type": "CHEM_SPEC", + "__description": "hydroperoxyl radical", + "molecular weight [kg mol-1]": 0.0330062, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "HOCH2OO", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0630314 + }, + { + "name": "H2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0020148 + }, + { + "name": "HYDRALD", + "type": "CHEM_SPEC", + "__description": "lumped unsturated hydroxycarbonyl", + "molecular weight [kg mol-1]": 0.100113 + }, + { + "name": "ISOP", + "type": "CHEM_SPEC", + "__description": "isoprene", + "molecular weight [kg mol-1]": 0.0681142 + }, + { + "name": "NTERPO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.230232 + }, + { + "name": "TOLO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.173141 + }, + { + "name": "TERP2O2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.199219 + }, + { + "name": "XYLENO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.187166 + }, + { + "name": "TERPO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.185234 + }, + { + "name": "XYLOLO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.203166 + }, + { + "name": "PBZNIT", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.183118 + }, + { + "name": "XYLENES", + "type": "CHEM_SPEC", + "__description": "lumped xylenes", + "molecular weight [kg mol-1]": 0.106162 + }, + { + "name": "PO2", + "type": "CHEM_SPEC", + "__description": "propene peroxy radical", + "molecular weight [kg mol-1]": 0.091083 + }, + { + "name": "TOLUENE", + "type": "CHEM_SPEC", + "__description": "toluene", + "molecular weight [kg mol-1]": 0.0921362 + }, + { + "name": "XO2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.149119 + }, + { + "name": "XOOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.150126 + }, + { + "name": "TERPROD2", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.154201 + }, + { + "name": "MEKOOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.104101 + }, + { + "name": "MACR", + "type": "CHEM_SPEC", + "__description": "methacrolein", + "molecular weight [kg mol-1]": 0.0700878 + }, + { + "name": "HONITR", + "type": "CHEM_SPEC", + "__description": "lumped hydroxynitrates from various compounds (formula updated 2017-04-06)", + "molecular weight [kg mol-1]": 0.1331, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "ISOPNITA", + "type": "CHEM_SPEC", + "__description": "1,2-hydroxynitrate from OH+isoprene chemistry", + "molecular weight [kg mol-1]": 0.147126, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "ISOPNOOH", + "type": "CHEM_SPEC", + "__description": "nitroxy-hydroperoxide from NO3+isoprene chemistry", + "molecular weight [kg mol-1]": 0.163125 + }, + { + "name": "IEPOX", + "type": "CHEM_SPEC", + "__description": "isoprene epoxide", + "molecular weight [kg mol-1]": 0.118127 + }, + { + "name": "ONITR", + "type": "CHEM_SPEC", + "__description": "lumped hydroxynitrates (formula updated 2017-04-06)", + "molecular weight [kg mol-1]": 0.147126, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "H2SO4", + "type": "CHEM_SPEC", + "__description": "sulfuric acid", + "molecular weight [kg mol-1]": 0.0980784 + }, + { + "name": "N2O", + "type": "CHEM_SPEC", + "__description": "nitrous oxide", + "molecular weight [kg mol-1]": 0.0440129 + }, + { + "name": "NO3", + "type": "CHEM_SPEC", + "__description": "nitrate radical", + "molecular weight [kg mol-1]": 0.0620049, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "OH", + "type": "CHEM_SPEC", + "__description": "hydroxyl radical", + "molecular weight [kg mol-1]": 0.0170068 + }, + { + "name": "PHENOOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.176122 + }, + { + "name": "PHENOL", + "type": "CHEM_SPEC", + "__description": "phenol, product of benzene chemistry", + "molecular weight [kg mol-1]": 0.0941098 + }, + { + "name": "XYLOL", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.122161 + }, + { + "name": "ROOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0900756 + }, + { + "name": "O3", + "type": "CHEM_SPEC", + "__description": "ozone", + "molecular weight [kg mol-1]": 0.0479982 + }, + { + "name": "TERPOOH", + "type": "CHEM_SPEC", + "__description": "Hydroxy hydroperoxide from terpene 0 double bonds", + "molecular weight [kg mol-1]": 0.186241 + }, + { + "name": "TOLOOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.174148 + }, + { + "name": "XYLENOOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.188174 + }, + { + "name": "XYLOLOOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.204173 + }, + { + "name": "CO", + "type": "CHEM_SPEC", + "__description": "carbon monoxide", + "molecular weight [kg mol-1]": 0.0280104 + }, + { + "name": "CH3COOH", + "type": "CHEM_SPEC", + "__description": "acetic acid", + "molecular weight [kg mol-1]": 0.0600504 + }, + { + "name": "CH3CHO", + "type": "CHEM_SPEC", + "__description": "acetaldehyde", + "molecular weight [kg mol-1]": 0.044051 + }, + { + "name": "BIGALD1", + "type": "CHEM_SPEC", + "__description": "butenedial, a product of aromatic oxidation", + "molecular weight [kg mol-1]": 0.0840724 + }, + { + "name": "ALKOOH", + "type": "CHEM_SPEC", + "__description": "lumped alkane peroxide", + "molecular weight [kg mol-1]": 0.104143 + }, + { + "name": "DICARBO2", + "type": "CHEM_SPEC", + "__description": "acylperoxy radical formed from aromatic oxidation, via unsaturated dicarbonyl chemistry", + "molecular weight [kg mol-1]": 0.12909 + }, + { + "name": "BENZOOH", + "type": "CHEM_SPEC", + "__description": "bicyclic hydroperoxide from OH + benzene", + "molecular weight [kg mol-1]": 0.160122 + }, + { + "name": "ALKO2", + "type": "CHEM_SPEC", + "__description": "lumped alkane peroxy radical from BIGALK", + "molecular weight [kg mol-1]": 0.103135 + }, + { + "name": "HO2NO2", + "type": "CHEM_SPEC", + "__description": "pernitric acid", + "molecular weight [kg mol-1]": 0.0790117 + }, + { + "name": "C3H7OOH", + "type": "CHEM_SPEC", + "__description": "propyl hydrogen peroxide", + "molecular weight [kg mol-1]": 0.076091 + }, + { + "name": "NH3", + "type": "CHEM_SPEC", + "__description": "ammonia", + "molecular weight [kg mol-1]": 0.017031 + }, + { + "name": "TERP2OOH", + "type": "CHEM_SPEC", + "__description": "2nd generation terpene hydroperoxide", + "molecular weight [kg mol-1]": 0.200226 + }, + { + "name": "POOH", + "type": "CHEM_SPEC", + "__description": "", + "molecular weight [kg mol-1]": 0.0920904 + }, + { + "name": "NOA", + "type": "CHEM_SPEC", + "__description": "nitrooxyacetone, largely from NO3+propene chemistry", + "molecular weight [kg mol-1]": 0.119074 + }, + { + "name": "NC4CHO", + "type": "CHEM_SPEC", + "__description": "nitrooxy-aldehyde from NO3+isoprene chemistry", + "molecular weight [kg mol-1]": 0.145111, + "diffusion coefficient [m2 s-1]": 1000.0 + }, + { + "name": "TEPOMUC", + "type": "CHEM_SPEC", + "__description": "toluene, xylenes product", + "molecular weight [kg mol-1]": 0.140134 + }, + { + "name": "NH4", + "type": "CHEM_SPEC", + "__description": "Ammonium", + "molecular weight [kg mol-1]": 0 + }, + { + "name": "M", + "type": "CHEM_SPEC", + "tracer type": "THIRD_BODY" + } + + ] +} diff --git a/src/acom_music_box/examples/configs/ts1/initial_conditions.csv b/src/acom_music_box/examples/configs/ts1/initial_conditions.csv new file mode 100644 index 00000000..93c97cf4 --- /dev/null +++ b/src/acom_music_box/examples/configs/ts1/initial_conditions.csv @@ -0,0 +1,2 @@ +PHOT.jsoa5_a2.s-1,PHOT.jsoa5_a1.s-1,PHOT.jsoa4_a2.s-1,PHOT.jsoa4_a1.s-1,PHOT.jsoa3_a2.s-1,PHOT.jsoa3_a1.s-1,PHOT.jsoa2_a2.s-1,PHOT.jsoa2_a1.s-1,PHOT.jsoa1_a2.s-1,PHOT.jsoa1_a1.s-1,PHOT.jsf6.s-1,PHOT.jxylolooh.s-1,PHOT.jxylenooh.s-1,PHOT.jxooh.s-1,PHOT.jtolooh.s-1,PHOT.jterprd2.s-1,PHOT.jterprd1.s-1,PHOT.jterpooh.s-1,PHOT.jterpnit.s-1,PHOT.jterp2ooh.s-1,PHOT.jtepomuc.s-1,PHOT.jso3.s-1,PHOT.jso2.s-1,PHOT.jso.s-1,PHOT.jrooh.s-1,PHOT.jpooh.s-1,PHOT.jphenooh.s-1,PHOT.jpan.s-1,PHOT.jonitr.s-1,PHOT.jocs.s-1,PHOT.joclo.s-1,PHOT.jo3_b.s-1,PHOT.jo3_a.s-1,PHOT.jo2_b.s-1,PHOT.jo2_a.s-1,PHOT.jnterpooh.s-1,PHOT.jnoa.s-1,PHOT.jno3_b.s-1,PHOT.jno3_a.s-1,PHOT.jno2.s-1,PHOT.jno.s-1,PHOT.jnc4cho.s-1,PHOT.jn2o5_b.s-1,PHOT.jn2o5_a.s-1,PHOT.jn2o.s-1,PHOT.jmvk.s-1,PHOT.jmpan.s-1,PHOT.jmgly.s-1,PHOT.jmekooh.s-1,PHOT.jmek.s-1,PHOT.jmacr_b.s-1,PHOT.jmacr_a.s-1,PHOT.jisopooh.s-1,PHOT.jisopnooh.s-1,PHOT.jhyac.s-1,PHOT.jhpald.s-1,PHOT.jhonitr.s-1,PHOT.jhocl.s-1,PHOT.jhobr.s-1,PHOT.jho2no2_b.s-1,PHOT.jho2no2_a.s-1,PHOT.jhno3.s-1,PHOT.jhf.s-1,PHOT.jhcl.s-1,PHOT.jhcfc22.s-1,PHOT.jhcfc142b.s-1,PHOT.jhcfc141b.s-1,PHOT.jhbr.s-1,PHOT.jh2so4.s-1,PHOT.jh2402.s-1,PHOT.jglyoxal.s-1,PHOT.jglyald.s-1,PHOT.jeooh.s-1,PHOT.jcofcl.s-1,PHOT.jcof2.s-1,PHOT.jco2.s-1,PHOT.jclono2_b.s-1,PHOT.jclono2_a.s-1,PHOT.jclo.s-1,PHOT.jcl2o2.s-1,PHOT.jcl2.s-1,PHOT.jchbr3.s-1,PHOT.jch4_b.s-1,PHOT.jch4_a.s-1,PHOT.jch3ooh.s-1,PHOT.jch3co3h.s-1,PHOT.jch3cl.s-1,PHOT.jch3cho.s-1,PHOT.jch3ccl3.s-1,PHOT.jch3br.s-1,PHOT.jch2o_b.s-1,PHOT.jch2o_a.s-1,PHOT.jch2br2.s-1,PHOT.jcfcl3.s-1,PHOT.jcfc115.s-1,PHOT.jcfc114.s-1,PHOT.jcfc113.s-1,PHOT.jcf3br.s-1,PHOT.jcf2clbr.s-1,PHOT.jcf2cl2.s-1,PHOT.jccl4.s-1,PHOT.jc6h5ooh.s-1,PHOT.jc3h7ooh.s-1,PHOT.jc2h5ooh.s-1,PHOT.jbzooh.s-1,PHOT.jbrono2_b.s-1,PHOT.jbrono2_a.s-1,PHOT.jbro.s-1,PHOT.jbrcl.s-1,PHOT.jbigald4.s-1,PHOT.jbigald3.s-1,PHOT.jbigald2.s-1,PHOT.jbigald1.s-1,PHOT.jbigald.s-1,PHOT.jbepomuc.s-1,PHOT.jbenzooh.s-1,PHOT.jalkooh.s-1,PHOT.jalknit.s-1,PHOT.jacet.s-1 +1e-20,1e-20,1e-20,1e-20,1e-20,1e-20,1e-20,1e-20,1e-20,1e-20,1e-20,5.95e-06,5.95e-06,5.95e-06,5.95e-06,7.18e-06,7.18e-06,5.95e-06,5.95e-06,5.95e-06,0.00101,2.36e-07,1.18e-22,2.58e-22,5.95e-06,5.95e-06,5.95e-06,9.69e-07,7.18e-06,6.18e-12,0.0726,0.000449,5.13e-05,1.4e-28,0.0,5.95e-06,3.47e-05,0.0124,0.199,0.0101,0.0,3.47e-05,3.76e-09,5.54e-05,9.25e-25,5.2e-06,9.69e-07,0.00014,5.95e-06,1.25e-06,2.77e-06,2.77e-06,5.95e-06,5.95e-06,2.47e-06,6.03e-05,3.47e-05,0.000304,0.00237,1.72e-05,1.71e-06,8.54e-07,0.0,6.59e-25,8.55e-27,3.98e-26,4.36e-24,2.5499999999999998e-23,3.1e-10,3.68e-09,0.00014,6.18e-06,5.95e-06,2.2999999999999997e-24,3.3e-25,5.28e-30,1e-05,4.59e-05,0.00024,0.00198,0.00252,1.81e-06,0.0,0.0,5.95e-06,2.23e-06,4.68e-25,7.18e-06,1.79e-23,9.35e-16,4.92e-05,3.47e-05,1.15e-09,1.3799999999999998e-23,1.2300000000000001e-26,2.09e-25,2.6e-24,1.45e-12,6.95e-09,2.5e-24,1.2799999999999999e-23,5.95e-06,5.95e-06,5.95e-06,5.95e-06,0.000224,0.00127,0.0407,0.0112,6.03e-05,0.00201,0.00201,0.00141,0.00201,0.00101,5.95e-06,5.95e-06,5.95e-06,1.25e-06 diff --git a/src/acom_music_box/examples/configs/ts1/my_config.json b/src/acom_music_box/examples/configs/ts1/my_config.json new file mode 100644 index 00000000..cdc8aaf1 --- /dev/null +++ b/src/acom_music_box/examples/configs/ts1/my_config.json @@ -0,0 +1,585 @@ +{ + "box model options": { + "grid": "box", + "chemistry time step [sec]": 60.0, + "output time step [sec]": 600.0, + "simulation length [hour]": 1.0 + }, + "chemical species": { + "TEPOMUC": { + "initial value [mol m-3]": 2.21e-10 + }, + "NC4CHO": { + "initial value [mol m-3]": 3.67e-11 + }, + "NOA": { + "initial value [mol m-3]": 5.46e-09 + }, + "POOH": { + "initial value [mol m-3]": 9.24e-10 + }, + "TERP2OOH": { + "initial value [mol m-3]": 5.96e-10 + }, + "NH3": { + "initial value [mol m-3]": 7.59e-08 + }, + "C3H7OOH": { + "initial value [mol m-3]": 7.87e-11 + }, + "HO2NO2": { + "initial value [mol m-3]": 7.99e-10 + }, + "ALKO2": { + "initial value [mol m-3]": 1.39e-11 + }, + "BENZOOH": { + "initial value [mol m-3]": 5.78e-12 + }, + "DICARBO2": { + "initial value [mol m-3]": 1.55e-13 + }, + "ALKOOH": { + "initial value [mol m-3]": 3.79e-10 + }, + "BIGALD1": { + "initial value [mol m-3]": 6.47e-11 + }, + "CH3CHO": { + "initial value [mol m-3]": 2.51e-08 + }, + "CH3COOH": { + "initial value [mol m-3]": 8.2e-09 + }, + "CO": { + "initial value [mol m-3]": 3.25e-06 + }, + "XYLOLOOH": { + "initial value [mol m-3]": 1.31e-11 + }, + "XYLENOOH": { + "initial value [mol m-3]": 1.5e-10 + }, + "TOLOOH": { + "initial value [mol m-3]": 9.69e-11 + }, + "TERPOOH": { + "initial value [mol m-3]": 2.46e-10 + }, + "O3": { + "initial value [mol m-3]": 2.49e-06 + }, + "ROOH": { + "initial value [mol m-3]": 4.4e-10 + }, + "XYLOL": { + "initial value [mol m-3]": 9.92e-11 + }, + "PHENOL": { + "initial value [mol m-3]": 9.49e-11 + }, + "PHENOOH": { + "initial value [mol m-3]": 9.15e-12 + }, + "OH": { + "initial value [mol m-3]": 2.52e-11 + }, + "NO3": { + "initial value [mol m-3]": 9.32e-12 + }, + "N2O": { + "initial value [mol m-3]": 1.27e-05 + }, + "H2SO4": { + "initial value [mol m-3]": 2.27e-11 + }, + "ONITR": { + "initial value [mol m-3]": 2.67e-09 + }, + "IEPOX": { + "initial value [mol m-3]": 5.84e-09 + }, + "ISOPNOOH": { + "initial value [mol m-3]": 9.16e-11 + }, + "ISOPNITA": { + "initial value [mol m-3]": 1.62e-09 + }, + "HONITR": { + "initial value [mol m-3]": 6.79e-09 + }, + "MACR": { + "initial value [mol m-3]": 1.06e-08 + }, + "MEKOOH": { + "initial value [mol m-3]": 6.15e-11 + }, + "TERPROD2": { + "initial value [mol m-3]": 3.81e-09 + }, + "XOOH": { + "initial value [mol m-3]": 7.93e-09 + }, + "XO2": { + "initial value [mol m-3]": 1.12e-10 + }, + "TOLUENE": { + "initial value [mol m-3]": 4.88e-09 + }, + "PO2": { + "initial value [mol m-3]": 1.46e-11 + }, + "XYLENES": { + "initial value [mol m-3]": 2.82e-09 + }, + "PBZNIT": { + "initial value [mol m-3]": 1.78e-10 + }, + "XYLOLO2": { + "initial value [mol m-3]": 4.62e-13 + }, + "TERPO2": { + "initial value [mol m-3]": 1.29e-11 + }, + "XYLENO2": { + "initial value [mol m-3]": 4.98e-12 + }, + "TERP2O2": { + "initial value [mol m-3]": 2.15e-11 + }, + "TOLO2": { + "initial value [mol m-3]": 3.23e-12 + }, + "NTERPO2": { + "initial value [mol m-3]": 9.18e-13 + }, + "ISOP": { + "initial value [mol m-3]": 1.23e-08 + }, + "HYDRALD": { + "initial value [mol m-3]": 1.49e-08 + }, + "H2": { + "initial value [mol m-3]": 1.93e-05 + }, + "HOCH2OO": { + "initial value [mol m-3]": 1.07e-13 + }, + "HO2": { + "initial value [mol m-3]": 1.69e-09 + }, + "GLYALD": { + "initial value [mol m-3]": 4.58e-08 + }, + "ISOPOOH": { + "initial value [mol m-3]": 4.68e-09 + }, + "NC4CH2OH": { + "initial value [mol m-3]": 7.3e-13 + }, + "MPAN": { + "initial value [mol m-3]": 3.11e-09 + }, + "GLYOXAL": { + "initial value [mol m-3]": 1.25e-08 + }, + "EO": { + "initial value [mol m-3]": 9.93e-18 + }, + "EO2": { + "initial value [mol m-3]": 4.04e-11 + }, + "MEKO2": { + "initial value [mol m-3]": 2.81e-12 + }, + "MDIALO2": { + "initial value [mol m-3]": 1.61e-13 + }, + "MCO3": { + "initial value [mol m-3]": 9.23e-12 + }, + "ISOPBO2": { + "initial value [mol m-3]": 9.08e-11 + }, + "MALO2": { + "initial value [mol m-3]": 1.07e-13 + }, + "ISOPAO2": { + "initial value [mol m-3]": 1.39e-10 + }, + "MACRO2": { + "initial value [mol m-3]": 1.09e-10 + }, + "ENEO2": { + "initial value [mol m-3]": 7.98e-12 + }, + "CRESOL": { + "initial value [mol m-3]": 1.06e-10 + }, + "CH3OOH": { + "initial value [mol m-3]": 1.69e-08 + }, + "CH3OH": { + "initial value [mol m-3]": 2.74e-07 + }, + "C2H2": { + "initial value [mol m-3]": 2.13e-08 + }, + "CH3CN": { + "initial value [mol m-3]": 4.66e-09 + }, + "CH2O": { + "initial value [mol m-3]": 2.44e-07 + }, + "C3H6": { + "initial value [mol m-3]": 2.42e-09 + }, + "C3H8": { + "initial value [mol m-3]": 9.7e-09 + }, + "C2H6": { + "initial value [mol m-3]": 2.93e-08 + }, + "C2H5OOH": { + "initial value [mol m-3]": 7.99e-11 + }, + "H2O2": { + "initial value [mol m-3]": 7.36e-08 + }, + "BIGALK": { + "initial value [mol m-3]": 1.9e-08 + }, + "BIGALD4": { + "initial value [mol m-3]": 7.34e-10 + }, + "BIGALD3": { + "initial value [mol m-3]": 6.83e-11 + }, + "BIGALD2": { + "initial value [mol m-3]": 6.58e-11 + }, + "BIGALD": { + "initial value [mol m-3]": 1.33e-11 + }, + "BCARY": { + "initial value [mol m-3]": 5.04e-12 + }, + "CH3O2": { + "initial value [mol m-3]": 3.34e-10 + }, + "C3H7O2": { + "initial value [mol m-3]": 2.31e-12 + }, + "BENZENE": { + "initial value [mol m-3]": 2.67e-09 + }, + "BZALD": { + "initial value [mol m-3]": 4.7e-10 + }, + "CO2": { + "initial value [mol m-3]": 0.0156 + }, + "H2402": { + "initial value [mol m-3]": 1.52e-11 + }, + "CHBR3": { + "initial value [mol m-3]": 3.87e-11 + }, + "BEPOMUC": { + "initial value [mol m-3]": 5.4e-12 + }, + "HCL": { + "initial value [mol m-3]": 8.17e-10 + }, + "C2H5OH": { + "initial value [mol m-3]": 2.75e-08 + }, + "DMS": { + "initial value [mol m-3]": 1.74e-10 + }, + "HCFC22": { + "initial value [mol m-3]": 9.07e-09 + }, + "HCFC142B": { + "initial value [mol m-3]": 8.24e-10 + }, + "HCFC141B": { + "initial value [mol m-3]": 9.29e-10 + }, + "PHENO": { + "initial value [mol m-3]": 1e-12 + }, + "O1D": { + "initial value [mol m-3]": 1.53e-19 + }, + "OCLO": { + "initial value [mol m-3]": 7.68e-19 + }, + "O": { + "initial value [mol m-3]": 2.85e-14 + }, + "CH3COCH3": { + "initial value [mol m-3]": 7.37e-08 + }, + "CH3COCHO": { + "initial value [mol m-3]": 1.95e-08 + }, + "C2H5O2": { + "initial value [mol m-3]": 1.55e-12 + }, + "C2H4": { + "initial value [mol m-3]": 2.51e-08 + }, + "BIGENE": { + "initial value [mol m-3]": 6.59e-10 + }, + "HOCL": { + "initial value [mol m-3]": 2.11e-12 + }, + "HOBR": { + "initial value [mol m-3]": 1.65e-12 + }, + "HBR": { + "initial value [mol m-3]": 4.48e-11 + }, + "HCOOH": { + "initial value [mol m-3]": 8.79e-09 + }, + "CLONO2": { + "initial value [mol m-3]": 4.09e-11 + }, + "CLO": { + "initial value [mol m-3]": 8.06e-14 + }, + "CL2O2": { + "initial value [mol m-3]": 1.8899999999999997e-23 + }, + "CL2": { + "initial value [mol m-3]": 1.01e-16 + }, + "CL": { + "initial value [mol m-3]": 1.07e-15 + }, + "BRONO2": { + "initial value [mol m-3]": 1.22e-11 + }, + "BRO": { + "initial value [mol m-3]": 1.95e-13 + }, + "BRCL": { + "initial value [mol m-3]": 9.18e-19 + }, + "BR": { + "initial value [mol m-3]": 3.67e-14 + }, + "NO": { + "initial value [mol m-3]": 1.47e-08 + }, + "CH3CCL3": { + "initial value [mol m-3]": 5.55e-11 + }, + "CH3BR": { + "initial value [mol m-3]": 2.37e-10 + }, + "CH2BR2": { + "initial value [mol m-3]": 4.32e-11 + }, + "CFC12": { + "initial value [mol m-3]": 1.92e-08 + }, + "CFC115": { + "initial value [mol m-3]": 3.29e-10 + }, + "CFC114": { + "initial value [mol m-3]": 6.19e-10 + }, + "CFC113": { + "initial value [mol m-3]": 2.66e-09 + }, + "CFC11": { + "initial value [mol m-3]": 8.5e-09 + }, + "CF3BR": { + "initial value [mol m-3]": 1.26e-10 + }, + "CF2CLBR": { + "initial value [mol m-3]": 1.24e-10 + }, + "CCL4": { + "initial value [mol m-3]": 2.96e-09 + }, + "NTERPOOH": { + "initial value [mol m-3]": 9.37e-11 + }, + "EOOH": { + "initial value [mol m-3]": 3.56e-09 + }, + "NO2": { + "initial value [mol m-3]": 6.37e-08 + }, + "HPALD": { + "initial value [mol m-3]": 3.56e-10 + }, + "HYAC": { + "initial value [mol m-3]": 4.88e-08 + }, + "TERPROD1": { + "initial value [mol m-3]": 1.68e-09 + }, + "C6H5O2": { + "initial value [mol m-3]": 6.23e-12 + }, + "CH3CO3": { + "initial value [mol m-3]": 8.32e-11 + }, + "CH3CL": { + "initial value [mol m-3]": 2.07e-08 + }, + "CH4": { + "initial value [mol m-3]": 7.03e-05 + }, + "SO2": { + "initial value [mol m-3]": 6.15e-08 + }, + "CH3COOOH": { + "initial value [mol m-3]": 7.19e-09 + }, + "ACBZO2": { + "initial value [mol m-3]": 3.54e-13 + }, + "HNO3": { + "initial value [mol m-3]": 1.04e-07 + }, + "TERPNIT": { + "initial value [mol m-3]": 8.28e-10 + }, + "IVOC": { + "initial value [mol m-3]": 2.06e-09 + }, + "PHENO2": { + "initial value [mol m-3]": 2.54e-13 + }, + "RO2": { + "initial value [mol m-3]": 7.13e-12 + }, + "ISOPNO3": { + "initial value [mol m-3]": 5.35e-13 + }, + "SVOC": { + "initial value [mol m-3]": 1.98e-10 + }, + "HCN": { + "initial value [mol m-3]": 1.9e-08 + }, + "N2O5": { + "initial value [mol m-3]": 1e-11 + }, + "MTERP": { + "initial value [mol m-3]": 1.09e-09 + }, + "MEK": { + "initial value [mol m-3]": 1.04e-08 + }, + "H": { + "initial value [mol m-3]": 9.67e-18 + }, + "S": { + "initial value [mol m-3]": 1.1e-26 + }, + "SO": { + "initial value [mol m-3]": 1.22e-20 + }, + "OCS": { + "initial value [mol m-3]": 1.96e-08 + }, + "SO3": { + "initial value [mol m-3]": 1.75e-17 + }, + "ISOPNITB": { + "initial value [mol m-3]": 1.05e-09 + }, + "SOAG4": { + "initial value [mol m-3]": 2.25e-08 + }, + "SOAG3": { + "initial value [mol m-3]": 4.27e-09 + }, + "SOAG2": { + "initial value [mol m-3]": 1.4e-09 + }, + "SOAG1": { + "initial value [mol m-3]": 2.14e-10 + }, + "SOAG0": { + "initial value [mol m-3]": 3.33e-11 + }, + "MACROOH": { + "initial value [mol m-3]": 1.21e-09 + }, + "MVK": { + "initial value [mol m-3]": 2.61e-08 + }, + "PAN": { + "initial value [mol m-3]": 4.25e-08 + }, + "BZOO": { + "initial value [mol m-3]": 8.81e-13 + }, + "BENZO2": { + "initial value [mol m-3]": 2.09e-13 + }, + "F": { + "initial value [mol m-3]": 3.89e-28 + }, + "HF": { + "initial value [mol m-3]": 1.81e-11 + }, + "COFCL": { + "initial value [mol m-3]": 7.92e-12 + }, + "COF2": { + "initial value [mol m-3]": 5.24e-11 + }, + "C6H5OOH": { + "initial value [mol m-3]": 4.2e-10 + }, + "BZOOH": { + "initial value [mol m-3]": 2.68e-11 + }, + "ALKNIT": { + "initial value [mol m-3]": 8.72e-10 + }, + "N2": { + "initial value [mol m-3]": 33.1007671 + }, + "O2": { + "initial value [mol m-3]": 8.90261411 + } + }, + "environmental conditions": { + "temperature": { + "initial value [K]": 287.45 + }, + "pressure": { + "initial value [Pa]": 1013.199 + } + }, + "evolving conditions": {}, + "initial conditions": { + "initial_conditions.csv": {} + }, + "model components": [ + { + "type": "CAMP", + "configuration file": "camp_data/config.json", + "override species": { + "M": { + "mixing ratio mol mol-1": 1.0 + } + }, + "suppress output": { + "M": {} + } + } + ] +} \ No newline at end of file diff --git a/src/acom_music_box/examples/examples.py b/src/acom_music_box/examples/examples.py new file mode 100644 index 00000000..d030e26c --- /dev/null +++ b/src/acom_music_box/examples/examples.py @@ -0,0 +1,63 @@ +import os + + +class Example: + def __init__(self, name, short_name, description, path): + self.name = name + self.short_name = short_name + self.description = description + self.path = path + + def __str__(self): + return f'{self.name}: {self.description}' + + def __repr__(self): + return f'{self.name}: {self.description}' + + @classmethod + def from_config(cls, display_name, folder_name, short_name, description): + path = os.path.join(os.path.dirname(__file__), 'configs', folder_name, 'my_config.json') + return cls(name=display_name, short_name=short_name, description=description, path=path) + + +class _Examples: + CarbonBond5 = Example.from_config( + display_name='Carbon Bond IV', + short_name='CB5', + folder_name='carbon_bond_5', + description='Carbon bond 5') + Chapman = Example.from_config( + display_name='Chapman', + short_name='Chapman', + folder_name='chapman', + description='The Chapman cycle with conditions over Boulder, Colorado') + FlowTube = Example.from_config( + display_name='Flow Tube', + short_name='FlowTube', + folder_name='flow_tube', + description='A fictitious flow tube experiment') + Analytical = Example.from_config( + display_name='Analytical', + short_name='Analytical', + folder_name='analytical', + description='An example of an analytical solution to a simple chemical system') + TS1 = Example.from_config( + display_name='Tropical Stratosphere 1', + short_name='TS1', + folder_name='ts1', + description='Many species involved in tropospheric-stratospheric chemistry') + + @classmethod + def get_all(cls): + return [cls.CarbonBond5, cls.Chapman, cls.FlowTube, cls.Analytical, cls.TS1] + + def __iter__(self): + return iter(self.get_all()) + + def __getattr__(self, item): + if hasattr(self, item): + return getattr(self, item) + raise AttributeError(f"'{self.__class__.__name__}' object has no attribute '{item}'") + + +Examples = _Examples() diff --git a/src/acom_music_box/main.py b/src/acom_music_box/main.py new file mode 100644 index 00000000..9e1c7f8e --- /dev/null +++ b/src/acom_music_box/main.py @@ -0,0 +1,178 @@ +import argparse +import colorlog +import datetime +import logging +import os +import subprocess +import sys +import tempfile +from acom_music_box import MusicBox, Examples, __version__ + + +def format_examples_help(examples): + return '\n'.join(f"{e.short_name}: {e.description}" for e in examples) + + +def parse_arguments(): + parser = argparse.ArgumentParser( + description='MusicBox simulation runner.', + formatter_class=argparse.RawTextHelpFormatter + ) + parser.add_argument( + '-c', '--config', + type=str, + help='Path to the configuration file. If --example is provided, this argument is ignored.' + ) + parser.add_argument( + '-e', '--example', + type=str, + choices=[e.short_name for e in Examples], + help=f'Name of the example to use. Overrides --config.\nAvailable examples:\n{format_examples_help(Examples)}' + ) + parser.add_argument( + '-o', '--output', + type=str, + help='Path to save the output file, including the file name. If not provided, result will be printed to the console.' + ) + parser.add_argument( + '-v', '--verbose', + action='count', + default=0, + help='Increase logging verbosity. Use -v for info, -vv for debug.' + ) + parser.add_argument( + '--version', + action='version', + version=f'MusicBox {__version__}', + ) + parser.add_argument( + '--color-output', + action='store_true', + help='Enable color output for logs.' + ) + parser.add_argument( + '--plot', + type=str, + help='Plot a comma-separated list of species if gnuplot is available (e.g., CONC.A,CONC.B).' + ) + return parser.parse_args() + + +def setup_logging(verbosity, color_output): + log_level = logging.DEBUG if verbosity >= 2 else logging.INFO if verbosity == 1 else logging.CRITICAL + datefmt = '%Y-%m-%d %H:%M:%S' + format_string = '%(asctime)s - %(levelname)s - %(module)s.%(funcName)s - %(message)s' + formatter = logging.Formatter(format_string, datefmt=datefmt) + console_handler = logging.StreamHandler() + + if color_output: + color_formatter = colorlog.ColoredFormatter( + f'%(log_color)s{format_string}', + datefmt=datefmt, + log_colors={ + 'DEBUG': 'green', + 'INFO': 'cyan', + 'WARNING': 'yellow', + 'ERROR': 'red', + 'CRITICAL': 'bold_red'}) + console_handler.setFormatter(color_formatter) + else: + console_handler.setFormatter(formatter) + + console_handler.setLevel(log_level) + logging.basicConfig(level=log_level, handlers=[console_handler]) + + +def plot_with_gnuplot(data, species_list): + # Prepare columns and data for plotting + columns = ['time'] + species_list + data_to_plot = data[columns] + + data_csv = data_to_plot.to_csv(index=False) + + try: + with tempfile.NamedTemporaryFile(delete=False, suffix='.csv') as data_file: + data_file.write(data_csv.encode()) + data_file_path = data_file.name + + plot_commands = ',\n\t'.join( + f"'{data_file_path}' using 1:{i+2} with lines title '{species}'" for i, + species in enumerate(species_list)) + + gnuplot_command = f""" + set datafile separator ","; + set terminal dumb size 120,25; + set xlabel 'Time'; + set ylabel 'Value'; + set title 'Time vs Species'; + plot {plot_commands} + """ + + subprocess.run(['gnuplot', '-e', gnuplot_command], check=True) + except FileNotFoundError: + logging.critical("gnuplot is not installed. Skipping plotting.") + except subprocess.CalledProcessError as e: + logging.error(f"Error occurred while plotting: {e}") + finally: + # Clean up the temporary file + if data_file_path: + os.remove(data_file_path) + + +def main(): + start = datetime.datetime.now() + + args = parse_arguments() + setup_logging(args.verbose, args.color_output) + + logger = logging.getLogger(__name__) + + logger.debug(f"{__file__}") + logger.info(f"Start time: {start}") + + logger.debug(f"Working directory = {os.getcwd()}") + + if args.example: + example = next(e for e in Examples if e.short_name == args.example) + musicBoxConfigFile = example.path + logger.info(f"Using example: {example}") + else: + musicBoxConfigFile = args.config + + musicBoxOutputPath = args.output + plot_species_list = args.plot.split(',') if args.plot else None + + if not musicBoxConfigFile: + error = "Configuration file is required." + print(error) + logger.error(error) + sys.exit(1) + + # Create and load a MusicBox object + myBox = MusicBox() + logger.debug(f"Configuration file = {musicBoxConfigFile}") + myBox.readConditionsFromJson(musicBoxConfigFile) + + # Create solver and solve + config_path = os.path.join( + os.path.dirname(musicBoxConfigFile), + myBox.config_file) + myBox.create_solver(config_path) + result = myBox.solve(musicBoxOutputPath) + + if musicBoxOutputPath is None: + print(result.to_csv(index=False)) + + if plot_species_list: + # Prepare data for plotting + plot_with_gnuplot(result, plot_species_list) + + end = datetime.datetime.now() + logger.info(f"End time: {end}") + logger.info(f"Elapsed time: {end - start} seconds") + + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/src/acom_music_box/music_box_model_options.py b/src/acom_music_box/model_options.py similarity index 100% rename from src/acom_music_box/music_box_model_options.py rename to src/acom_music_box/model_options.py diff --git a/src/acom_music_box/music_box.py b/src/acom_music_box/music_box.py index 1cef19b5..be34c57e 100644 --- a/src/acom_music_box/music_box.py +++ b/src/acom_music_box/music_box.py @@ -1,13 +1,15 @@ import musica -import csv -from .music_box_conditions import Conditions -from .music_box_model_options import BoxModelOptions -from .music_box_species_list import SpeciesList -from .music_box_reaction import Reaction, Branched, Arrhenius, Tunneling, Troe_Ternary -from .music_box_reaction_list import ReactionList -from .music_box_evolving_conditions import EvolvingConditions +from .conditions import Conditions +from .model_options import BoxModelOptions +from .species_list import SpeciesList +from .reaction_list import ReactionList +from .evolving_conditions import EvolvingConditions import json import os +import pandas as pd + +from tqdm import tqdm +from tqdm.contrib.logging import logging_redirect_tqdm import logging logger = logging.getLogger(__name__) @@ -67,348 +69,6 @@ def add_evolving_condition(self, time_point, conditions): time=[time_point], conditions=[conditions]) self.evolvingConditions.append(evolving_condition) - def generateConfig(self, directory): - """ - Generate configuration JSON for the box model simulation and writes it to files in the specified directory. - - Args: - directory (str): The directory where the configuration files will be written. - - Returns: - None - """ - output_path = "./src/configs/" + directory - - # Check if directory exists and create it if it doesn't - if not os.path.exists(output_path): - os.makedirs(output_path) - os.makedirs(output_path + "/camp_data") - - # Make camp_data config - with open(output_path + "/camp_data/config.json", 'w') as camp_config_file: - data = { - "camp-files": [ - "species.json", - "reactions.json" - ] - } - - camp_config_file.write(json.dumps(data, indent=4)) - - # Make species and reactions configs - with open(output_path + "/camp_data/species.json", 'w') as species_file: - species_file.write(self.generateSpeciesConfig()) - - with open(output_path + "/camp_data/reactions.json", 'w') as reactions_file: - reactions_file.write(self.generateReactionConfig()) - - # Make box model options config - with open(output_path + "/" + directory + "_config.json", 'w') as config_file: - data = {} - - data["box model options"] = { - "grid": self.box_model_options.grid, - "chemistry time step [sec]": self.box_model_options.chem_step_time, - "output time step [sec]": self.box_model_options.output_step_time, - "simulation length [sec]": self.box_model_options.simulation_length, - } - - data["chemical species"] = {} - - if self.initial_conditions.species_concentrations is not None: - for species_concentration in self.initial_conditions.species_concentrations: - data["chemical species"][species_concentration.species.name] = { - "initial value [mol m-3]": species_concentration.concentration} - - data["environmental conditions"] = { - "pressure": { - "initial value [Pa]": self.initial_conditions.pressure, - }, - "temperature": { - "initial value [K]": self.initial_conditions.temperature, - }, - } - - data["evolving conditions"] = { - "evolving_conditions.csv": {}, - } - - data["initial conditions"] = { - "initial_conditions.csv": {} - } - - data["model components"] = [ - { - "type": "CAMP", - "configuration file": "camp_data/config.json", - "override species": { - "M": { - "mixing ratio mol mol-1": 1 - } - }, - "suppress output": { - "M": {} - } - } - ] - - config_file.write(json.dumps(data, indent=4)) - - # Make evolving conditions config - with open(output_path + "/evolving_conditions.csv", 'w', newline='') as evolving_conditions_file: - writer = csv.writer(evolving_conditions_file) - writer.writerow(self.evolving_conditions.headers) - - for i in range(len(self.evolving_conditions.times)): - row = [self.evolving_conditions.times[i]] - - for header in self.evolving_conditions.headers[1:]: - if header == "ENV.pressure.Pa": - row.append( - self.evolving_conditions.conditions[i].pressure) - elif header == "ENV.temperature.K": - row.append( - self.evolving_conditions.conditions[i].temperature) - elif header.startswith("CONC."): - species_name = header.split('.')[1] - species_concentration = next( - (x for x in self.evolving_conditions.conditions[i].species_concentrations if x.species.name == species_name), - None) - row.append(species_concentration.concentration) - elif header.endswith(".s-1"): - reaction_name = header.split('.') - - if reaction_name[0] == 'LOSS' or reaction_name[0] == 'EMIS': - reaction_name = reaction_name[0] + \ - '_' + reaction_name[1] - else: - reaction_name = reaction_name[1] - - reaction_rate = next( - (x for x in self.evolving_conditions.conditions[i].reaction_rates if x.reaction.name == reaction_name), - None) - row.append(reaction_rate.rate) - - writer.writerow(row) - - reaction_names = [] - reaction_rates = [] - - for reaction_rate in self.initial_conditions.reaction_rates: - if reaction_rate.reaction.reaction_type == "PHOTOLYSIS": - name = "PHOT." + reaction_rate.reaction.name + ".s-1" - elif reaction_rate.reaction.reaction_type == "LOSS": - name = "LOSS." + reaction_rate.reaction.name + ".s-1" - elif reaction_rate.reaction.reaction_type == "EMISSION": - name = "EMISSION." + reaction_rate.reaction.name + ".s-1" - - reaction_names.append(name) - reaction_rates.append(reaction_rate.rate) - # writes reaction rates inital conditions to file - with open(output_path + "/initial_conditions.csv", 'w', newline='') as initial_conditions_file: - writer = csv.writer(initial_conditions_file) - writer.writerow(reaction_names) - writer.writerow(reaction_rates) - - def generateSpeciesConfig(self): - """ - Generate a JSON configuration for the species in the box model. - - Returns: - str: A JSON-formatted string representing the species configuration. - """ - - speciesArray = [] - - # Adds relative tolerance if value is set - if (self.species_list.relative_tolerance is not None): - relativeTolerance = {} - relativeTolerance["type"] = "RELATIVE_TOLERANCE" - relativeTolerance["value"] = self.species_list.relative_tolerance - speciesArray.append(relativeTolerance) - - # Adds species to config - for species in self.species_list.species: - spec = {} - - # Add species name if value is set - if (species.name is not None): - spec["name"] = species.name - - spec["type"] = "CHEM_SPEC" - - # Add species absoluate tolerance if value is set - if (species.absolute_tolerance is not None): - spec["absolute tolerance"] = species.absolute_tolerance - - # Add species phase if value is set - if (species.phase is not None): - spec["phase"] = species.phase - - # Add species molecular weight if value is set - if (species.molecular_weight is not None): - spec["molecular weight [kg mol-1]"] = species.molecular_weight - - # Add species density if value is set - if (species.density is not None): - spec["density [kg m-3]"] = species.density - - speciesArray.append(spec) - - species_json = { - "camp-data": speciesArray - } - - return json.dumps(species_json, indent=4) - - def generateReactionConfig(self): - """ - Generate a JSON configuration for the reactions in the box model. - - Returns: - str: A JSON-formatted string representing the reaction configuration. - """ - reacList = {} - - # Add mechanism name if value is set - if self.reaction_list.name is not None: - reacList["name"] = self.reaction_list.name - - reacList["type"] = "MECHANISM" - - reactionsArray = [] - - # Adds reaction to config - for reaction in self.reaction_list.reactions: - reac = {} - - # Adds reaction name if value is set - if (reaction.reaction_type is not None): - reac["type"] = reaction.reaction_type - - reactants = {} - - # Adds reactants - for reactant in reaction.reactants: - quantity = {} - - # Adds reactant quantity if value is set - if reactant.quantity is not None: - quantity["qty"] = reactant.quantity - reactants[reactant.name] = quantity - - reac["reactants"] = reactants - - if not isinstance(reaction, Branched): - products = {} - - # Adds products - for product in reaction.products: - yield_value = {} - - # Adds product yield if value is set - if product.yield_value is not None: - yield_value["yield"] = product.yield_value - products[product.name] = yield_value - - reac["products"] = products - - # Add reaction parameters if necessary - if isinstance(reaction, Branched): - alkoxy_products = {} - - # Adds alkoxy products - for alkoxy_product in reaction.alkoxy_products: - yield_value = {} - - # Adds alkoxy product yield if value is set - if alkoxy_product.yield_value is not None: - yield_value["yield"] = alkoxy_product.yield_value - alkoxy_products[alkoxy_product.name] = yield_value - - reac["alkoxy products"] = alkoxy_products - - nitrate_products = {} - - # Adds nitrate products - for nitrate_product in reaction.nitrate_products: - yield_value = {} - - # Adds nitrate product yield if value is set - if nitrate_product.yield_value is not None: - yield_value["yield"] = nitrate_product.yield_value - nitrate_products[nitrate_product.name] = yield_value - - reac["nitrate products"] = nitrate_products - - # Adds parameters for the reaction - if reaction.X is not None: - reac["X"] = reaction.X - if reaction.Y is not None: - reac["Y"] = reaction.Y - if reaction.a0 is not None: - reac["a0"] = reaction.a0 - if reaction.n is not None: - reac["n"] = reaction.n - - elif isinstance(reaction, Arrhenius): - # Adds parameters for the reaction - if reaction.A is not None: - reac["A"] = reaction.A - if reaction.B is not None: - reac["B"] = reaction.B - if reaction.D is not None: - reac["D"] = reaction.D - if reaction.E is not None: - reac["E"] = reaction.E - if reaction.Ea is not None: - reac["Ea"] = reaction.Ea - - elif isinstance(reaction, Tunneling): - # Adds parameters for the reaction - if reaction.A is not None: - reac["A"] = reaction.A - if reaction.B is not None: - reac["B"] = reaction.B - if reaction.C is not None: - reac["C"] = reaction.C - - elif isinstance(reaction, Troe_Ternary): - # Adds parameters for the reaction - if reaction.k0_A is not None: - reac["k0_A"] = reaction.k0_A - if reaction.k0_B is not None: - reac["k0_B"] = reaction.k0_B - if reaction.k0_C is not None: - reac["k0_C"] = reaction.k0_C - if reaction.kinf_A is not None: - reac["kinf_A"] = reaction.kinf_A - if reaction.kinf_B is not None: - reac["kinf_B"] = reaction.kinf_B - if reaction.kinf_C is not None: - reac["kinf_C"] = reaction.kinf_C - if reaction.Fc is not None: - reac["Fc"] = reaction.Fc - if reaction.N is not None: - reac["N"] = reaction.N - - # Adds reaction name if value is set - if (reaction.name is not None): - reac["MUSICA name"] = reaction.name - - if (reaction.scaling_factor is not None): - reac["scaling factor"] = reaction.scaling_factor - - reactionsArray.append(reac) - - reacList["reactions"] = reactionsArray - - reactionsJson = { - "camp-data": [reacList] - } - - return json.dumps(reactionsJson, indent=4) - def create_solver( self, path_to_config, @@ -426,10 +86,10 @@ def create_solver( # Create a solver object using the configuration file self.solver = musica.create_solver( path_to_config, - musica.micmsolver.rosenbrock, + solver_type, number_of_grid_cells) - def solve(self, output_path=None): + def solve(self, output_path=None, callback=None): """ Solves the box model simulation and optionally writes the output to a file. @@ -438,8 +98,8 @@ def solve(self, output_path=None): the specified file. Args: - path_to_output (str, optional): The path to the file where the output will - be written. If None, no output file is created. Defaults to None. + output_path (str, optional): The path to the file where the output will be written. If None, no output file is created. Defaults to None. + callback (function, optional): A callback function that is called after each time step. Defaults to None. The callback will take the most recent results, the current time, conditions, and the total simulation time as arguments. Returns: list: A 2D list where each inner list represents the results of the simulation @@ -470,6 +130,7 @@ def solve(self, output_path=None): headers.append("time") headers.append("ENV.temperature") headers.append("ENV.pressure") + headers.append("ENV.number_density_air") if (self.solver is None): raise Exception("Error: MusicBox object {} has no solver." @@ -499,138 +160,91 @@ def solve(self, output_path=None): next_output_time = curr_time # runs the simulation at each timestep - while (curr_time <= self.box_model_options.simulation_length): - - # outputs to output_array if enough time has elapsed - if (next_output_time <= curr_time): - row = [] - row.append(next_output_time) - row.append(curr_conditions.temperature) - row.append(curr_conditions.pressure) - for conc in ordered_concentrations: - row.append(conc) - output_array.append(row) - next_output_time += self.box_model_options.output_step_time - - # iterates evolving conditions if enough time has elapsed - while ( - next_conditions is not None and next_conditions_time <= curr_time): - - curr_conditions.update_conditions(next_conditions) - - # iterates next_conditions if there are remaining evolving - # conditions - if (len(self.evolving_conditions) > next_conditions_index + 1): - next_conditions_index += 1 - next_conditions = self.evolving_conditions.conditions[next_conditions_index] - next_conditions_time = self.evolving_conditions.times[next_conditions_index] + simulation_length = self.box_model_options.simulation_length + with tqdm(total=simulation_length, desc="Simulation Progress", unit=f" [model integration steps ({self.box_model_options.chem_step_time} s)]", leave=False) as pbar: + while curr_time < simulation_length: + # iterates evolving conditions if enough time has elapsed + while (next_conditions is not None and next_conditions_time <= curr_time): + curr_conditions.update_conditions(next_conditions) ordered_rate_constants = self.order_reaction_rates( curr_conditions, rate_constant_ordering) - else: - next_conditions = None - - # calculate air density from the ideal gas law - BOLTZMANN_CONSTANT = 1.380649e-23 - AVOGADRO_CONSTANT = 6.02214076e23 - GAS_CONSTANT = BOLTZMANN_CONSTANT * AVOGADRO_CONSTANT - air_density = curr_conditions.pressure / \ - (GAS_CONSTANT * curr_conditions.temperature) - - # solves and updates concentration values in concentration array - if (not ordered_concentrations): - logger.info("Warning: ordered_concentrations list is empty.") - musica.micm_solve( - self.solver, - self.box_model_options.chem_step_time, - curr_conditions.temperature, - curr_conditions.pressure, - air_density, - ordered_concentrations, - ordered_rate_constants) - - # increments time - curr_time += self.box_model_options.chem_step_time - + # iterates next_conditions if there are remaining evolving + # conditions + if (len(self.evolving_conditions) > next_conditions_index + 1): + next_conditions_index += 1 + next_conditions = self.evolving_conditions.conditions[next_conditions_index] + next_conditions_time = self.evolving_conditions.times[next_conditions_index] + else: + next_conditions = None + + # calculate air density from the ideal gas law + BOLTZMANN_CONSTANT = 1.380649e-23 + AVOGADRO_CONSTANT = 6.02214076e23 + GAS_CONSTANT = BOLTZMANN_CONSTANT * AVOGADRO_CONSTANT + air_density = curr_conditions.pressure / \ + (GAS_CONSTANT * curr_conditions.temperature) + + # outputs to output_array if enough time has elapsed + if (next_output_time <= curr_time): + row = [] + row.append(next_output_time) + row.append(curr_conditions.temperature) + row.append(curr_conditions.pressure) + row.append(air_density) + for conc in ordered_concentrations: + row.append(conc) + output_array.append(row) + next_output_time += self.box_model_options.output_step_time + + # calls callback function if present + if callback is not None: + df = pd.DataFrame(output_array[:-1], columns=output_array[0]) + callback(df, curr_time, curr_conditions, self.box_model_options.simulation_length) + + # ensure the time step is not greater than the next update to the + # evolving conditions or the next output time + time_step = self.box_model_options.chem_step_time + if (next_conditions is not None and next_conditions_time > curr_time): + time_step = min(time_step, next_conditions_time - curr_time) + if (next_output_time > curr_time): + time_step = min(time_step, next_output_time - curr_time) + + # solves and updates concentration values in concentration array + if (not ordered_concentrations): + logger.info("Warning: ordered_concentrations list is empty.") + musica.micm_solve( + self.solver, + time_step, + curr_conditions.temperature, + curr_conditions.pressure, + air_density, + ordered_concentrations, + ordered_rate_constants) + + # increments time + curr_time += time_step + pbar.update(time_step) + df = pd.DataFrame(output_array[1:], columns=output_array[0]) # outputs to file if output is present - if (output_path is not None): - logger.info("path_to_output = {}".format(output_path)) - with open(output_path, 'w', newline='') as output: - writer = csv.writer(output) - writer.writerows(output_array) + if output_path is not None: - # returns output_array - return output_array + # Check if the output_path is a full path or just a file name + if os.path.dirname(output_path) == '': + # If output_path is just a filename, use the current directory + output_path = os.path.join(os.getcwd(), output_path) + elif not os.path.basename(output_path): + raise ValueError(f"Invalid output path: '{output_path}' does not contain a filename.") - def readFromUIJson(self, path_to_json): - """ - Reads and parses a JSON file from the MusicBox Interactive UI to set up the box model simulation. + # Ensure the directory exists + dir_path = os.path.dirname(output_path) + if dir_path and not os.path.exists(dir_path): + os.makedirs(dir_path, exist_ok=True) - This function takes the path to a JSON file, reads the file, and parses the JSON - to set up the box model simulation. + df.to_csv(output_path, index=False) - Args: - path_to_json (str): The path to the JSON file from the UI. - - Returns: - None - - Raises: - ValueError: If the JSON file cannot be read or parsed. - """ - - with open(path_to_json, 'r') as json_file: - data = json.load(json_file) - - # Set box model options - self.box_model_options = BoxModelOptions.from_UI_JSON(data) - - # Set species list - self.species_list = SpeciesList.from_UI_JSON(data) - - # Set reaction list - self.reaction_list = ReactionList.from_UI_JSON( - data, self.species_list) - - # Set initial conditions - self.initial_conditions = Conditions.from_UI_JSON( - data, self.species_list, self.reaction_list) - - # Set evolving conditions - self.evolving_conditions = EvolvingConditions.from_UI_JSON( - data, self.species_list, self.reaction_list) - - def readFromUIJsonString(self, data): - """ - Reads and parses a JSON string from the MusicBox Interactive UI to set up the box model simulation. - - Args: - json_string (str): The JSON string from the UI. - - Returns: - None - - Raises: - ValueError: If the JSON string cannot be parsed. - """ - - # Set box model options - self.box_model_options = BoxModelOptions.from_UI_JSON(data) - - # Set species list - self.species_list = SpeciesList.from_UI_JSON(data) - - # Set reaction list - self.reaction_list = ReactionList.from_UI_JSON(data, self.species_list) - - # Set initial conditions - self.initial_conditions = Conditions.from_UI_JSON( - data, self.species_list, self.reaction_list) - - # Set evolving conditions - self.evolving_conditions = EvolvingConditions.from_UI_JSON( - data, self.species_list, self.reaction_list) + return df def readConditionsFromJson(self, path_to_json): """ @@ -678,16 +292,6 @@ def speciesOrdering(self): """ return musica.species_ordering(self.solver) - def userDefinedReactionRates(self): - """ - Retrieves the user-defined reaction rates from the solver. - - This function calls the `user_defined_reaction_rates` function from the `musica` module, - passing the solver instance from the current object. - - Returns: - dict: The dictionary of user-defined reaction rates used in the solver. - """ @classmethod def order_reaction_rates(self, curr_conditions, rate_constant_ordering): """ @@ -708,15 +312,16 @@ def order_reaction_rates(self, curr_conditions, rate_constant_ordering): if (rate.reaction.reaction_type == "PHOTOLYSIS"): key = "PHOTO." + rate.reaction.name - elif (rate.reaction.reaction_type == "LOSS"): + elif (rate.reaction.reaction_type == "FIRST_ORDER_LOSS"): key = "LOSS." + rate.reaction.name elif (rate.reaction.reaction_type == "EMISSION"): key = "EMIS." + rate.reaction.name + elif (rate.reaction.reaction_type == "USER_DEFINED"): + key = "USER." + rate.reaction.name rate_constants[key] = rate.rate ordered_rate_constants = len(rate_constants.keys()) * [0.0] for key, value in rate_constants.items(): - ordered_rate_constants[rate_constant_ordering[key]] = float(value) return ordered_rate_constants diff --git a/src/acom_music_box/music_box_main.py b/src/acom_music_box/music_box_main.py deleted file mode 100644 index b6dd522f..00000000 --- a/src/acom_music_box/music_box_main.py +++ /dev/null @@ -1,97 +0,0 @@ -import os -import argparse -from acom_music_box import MusicBox - - -import math -import datetime -import sys - -import logging -logger = logging.getLogger(__name__) - - -# configure argparse for key-value pairs -class KeyValueAction(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - for value in values: - key, val = value.split('=') - setattr(namespace, key, val) - -# Retrieve named arguments from the command line and -# return in a dictionary of keywords. -# argPairs = list of arguments, probably from sys.argv[1:] -# named arguments are formatted like this=3.14159 -# return dictionary of keywords and values - - -def getArgsDictionary(argPairs): - parser = argparse.ArgumentParser( - description='Process some key=value pairs.') - parser.add_argument( - 'key_value_pairs', - nargs='+', # This means one or more arguments are expected - action=KeyValueAction, - help="Arguments in key=value format. Example: configFile=my_config.json" - ) - - argDict = vars(parser.parse_args(argPairs)) # return dictionary - - return (argDict) - - -def main(): - logging.basicConfig(stream=sys.stdout, level=logging.INFO) - logger.info("{}".format(__file__)) - logger.info("Start time: {}".format(datetime.datetime.now())) - - logger.info("Hello, MusicBox World!") - logger.info("Working directory = {}".format(os.getcwd())) - - # retrieve and parse the command-line arguments - myArgs = getArgsDictionary(sys.argv[1:]) - logger.info("Command line = {}".format(myArgs)) - - # set up the home configuration file - musicBoxConfigFile = None - if ("configFile" in myArgs): - musicBoxConfigFile = myArgs.get("configFile") - - # set up the output directory - musicBoxOutputDir = ".\\" # default - if ("outputDir" in myArgs): - musicBoxOutputDir = myArgs.get("outputDir") - - # check for required arguments and provide examples - if (musicBoxConfigFile is None): - errorString = "Error: The configFile parameter is required." - errorString += ( - " Example: configFile={}" .format( - os.path.join( - "tests", - "configs", - "analytical_config", - "my_config.json"))) - raise Exception(errorString) - - # create and load a MusicBox object - myBox = MusicBox() - myBox.readConditionsFromJson(musicBoxConfigFile) - logger.info("myBox = {}".format(myBox)) - - # create solver and solve, writing output to requested directory - campConfig = os.path.join( - os.path.dirname(musicBoxConfigFile), - myBox.config_file) - logger.info("CAMP config = {}".format(campConfig)) - myBox.create_solver(campConfig) - logger.info("myBox.solver = {}".format(myBox.solver)) - mySolution = myBox.solve(os.path.join(musicBoxOutputDir, "mySolution.csv")) - logger.info("mySolution = {}".format(mySolution)) - - logger.info("End time: {}".format(datetime.datetime.now())) - sys.exit(0) - - -if __name__ == "__main__": - main() diff --git a/src/acom_music_box/music_box_product.py b/src/acom_music_box/product.py similarity index 100% rename from src/acom_music_box/music_box_product.py rename to src/acom_music_box/product.py diff --git a/src/acom_music_box/music_box_reactant.py b/src/acom_music_box/reactant.py similarity index 100% rename from src/acom_music_box/music_box_reactant.py rename to src/acom_music_box/reactant.py diff --git a/src/acom_music_box/music_box_reaction.py b/src/acom_music_box/reaction.py similarity index 94% rename from src/acom_music_box/music_box_reaction.py rename to src/acom_music_box/reaction.py index e02ed88b..a6a6aa6c 100644 --- a/src/acom_music_box/music_box_reaction.py +++ b/src/acom_music_box/reaction.py @@ -60,6 +60,25 @@ def add_product(self, product): """ self.products.append(product) + def short_type(self): + """ + Return the first letter of the reaction type. + + Returns: + str: The first letter of the reaction type. + """ + type_map = { + "EMISSION": "EMIS", + "PHOTOLYSIS": "PHOT", + "FIRST_ORDER_LOSS": "LOSS", + "BRANCHED": "BRAN", + "ARRHENIUS": "ARRH", + "TUNNELING": "TUNN", + "TROE_TERNARY": "TROE", + "USER_DEFINED": "USER", + } + return type_map.get(self.reaction_type, "UNKNOWN") + class Branched(Reaction): diff --git a/src/acom_music_box/music_box_reaction_list.py b/src/acom_music_box/reaction_list.py similarity index 96% rename from src/acom_music_box/music_box_reaction_list.py rename to src/acom_music_box/reaction_list.py index 78f54cfc..a7592caf 100644 --- a/src/acom_music_box/music_box_reaction_list.py +++ b/src/acom_music_box/reaction_list.py @@ -1,9 +1,9 @@ import os import json from typing import List -from .music_box_reaction import Reaction, Branched, Arrhenius, Tunneling, Troe_Ternary -from .music_box_reactant import Reactant -from .music_box_product import Product +from .reaction import Reaction, Branched, Arrhenius, Tunneling, Troe_Ternary +from .reactant import Reactant +from .product import Product import logging logger = logging.getLogger(__name__) @@ -71,8 +71,9 @@ def from_config_JSON(cls, path_to_json, config_JSON, species_list): list_name = None # gets config file path - config_file_path = os.path.dirname( - path_to_json) + "/" + config_JSON['model components'][0]['configuration file'] + config_file_path = os.path.join( + os.path.dirname(path_to_json), + config_JSON['model components'][0]['configuration file']) # opnens config path to read reaction file with open(config_file_path, 'r') as json_file: diff --git a/src/acom_music_box/music_box_reaction_rate.py b/src/acom_music_box/reaction_rate.py similarity index 100% rename from src/acom_music_box/music_box_reaction_rate.py rename to src/acom_music_box/reaction_rate.py diff --git a/src/acom_music_box/music_box_species.py b/src/acom_music_box/species.py similarity index 100% rename from src/acom_music_box/music_box_species.py rename to src/acom_music_box/species.py diff --git a/src/acom_music_box/music_box_species_concentration.py b/src/acom_music_box/species_concentration.py similarity index 100% rename from src/acom_music_box/music_box_species_concentration.py rename to src/acom_music_box/species_concentration.py diff --git a/src/acom_music_box/music_box_species_list.py b/src/acom_music_box/species_list.py similarity index 99% rename from src/acom_music_box/music_box_species_list.py rename to src/acom_music_box/species_list.py index 67142a4d..4d815d53 100644 --- a/src/acom_music_box/music_box_species_list.py +++ b/src/acom_music_box/species_list.py @@ -1,7 +1,7 @@ import json import os from typing import List -from .music_box_species import Species +from .species import Species class SpeciesList: diff --git a/src/acom_music_box/tools/__init__.py b/src/acom_music_box/tools/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/acom_music_box/tools/waccmToMusicBox.py b/src/acom_music_box/tools/waccmToMusicBox.py new file mode 100644 index 00000000..53293eaf --- /dev/null +++ b/src/acom_music_box/tools/waccmToMusicBox.py @@ -0,0 +1,469 @@ +#!/usr/bin/env python3 +# waccmToMusicBox.py +# MusicBox: Extract variables from WACCM model output, +# and convert to initial conditions for MusicBox (case TS1). +# +# Author: Carl Drews +# Copyright 2024 by Atomospheric Chemistry Observations & Modeling (UCAR/ACOM) + +# import os +import argparse +import datetime +import xarray +import json +import sys +import os +import shutil +import tempfile +import zipfile +from acom_music_box import Examples + +import logging +logger = logging.getLogger(__name__) + + +# configure argparse for key-value pairs +class KeyValueAction(argparse.Action): + def __call__(self, parser, namespace, values, option_string=None): + for value in values: + key, val = value.split('=') + setattr(namespace, key, val) + +# Retrieve named arguments from the command line and +# return in a dictionary of keywords. +# argPairs = list of arguments, probably from sys.argv[1:] +# named arguments are formatted like this=3.14159 +# return dictionary of keywords and values + + +def getArgsDictionary(argPairs): + parser = argparse.ArgumentParser( + description='Process some key=value pairs.') + parser.add_argument( + 'key_value_pairs', + nargs='+', # This means one or more arguments are expected + action=KeyValueAction, + help="Arguments in key=value format. Example: configFile=my_config.json" + ) + + argDict = vars(parser.parse_args(argPairs)) # return dictionary + + return (argDict) + + +# Convert safely from string to integer (alphas convert to 0). +def safeInt(intString): + intValue = 0 + try: + intValue = int(intString) + except ValueError as error: + intValue = 0 + + return intValue + + +# Convert string to number, or 0.0 if not numeric. +# numString = string that probably can be converted +def safeFloat(numString): + result = -1.0 + try: + result = float(numString) + except ValueError: + result = 0.0 + + return result + + +# Create and return list of WACCM chemical species +# that will be mapped to MUSICA. +# modelDir = directory containing model output +# waccmFilename = name of WACCM model output file +# return list of variable names +def getWaccmSpecies(modelDir, waccmFilename): + # create the filename + logger.info(f"WACCM species file = {waccmFilename}") + + # open dataset for reading + waccmDataSet = xarray.open_dataset(os.path.join(modelDir, waccmFilename)) + + # collect the data variables + waccmNames = [varName for varName in waccmDataSet.data_vars] + + # To do: remove extraneous non-chemical vars like date and time + # Idea: use the dimensions to filter out non-chemicals + + # close the NetCDF file + waccmDataSet.close() + + return (waccmNames) + + +# Create list of chemical species in MUSICA, +# corresponding to the same chemical species in WACCM. +# templateDir = directory containing configuration files and camp_data +# return list of variable names +def getMusicaSpecies(templateDir): + # find the standard configuration file and parse it + myConfigFile = os.path.join(templateDir, "camp_data", "species.json") + with open(myConfigFile) as jsonFile: + myConfig = json.load(jsonFile) + + # locate the section for chemical species + chemSpeciesTag = "camp-data" + chemSpecies = myConfig[chemSpeciesTag] + + # retrieve just the names + musicaNames = [] + for spec in chemSpecies: + specName = spec.get("name") + if (specName): + musicaNames.append(spec.get("name")) + + return (musicaNames) + + +# Build and return dictionary of WACCM variable names +# and their MusicBox equivalents. +# waccmSpecies = list of variable names in the WACCM model output +# musicaSpecies = list of variable names in species.json +# return ordered dictionary +def getMusicaDictionary(waccmSpecies=None, musicaSpecies=None): + if ((waccmSpecies is None) or (musicaSpecies is None)): + logger.warning("No species map found for WACCM or MUSICA.") + + # build a simple species map + varMap = { + "T": "temperature", + "PS": "pressure", + "N2O": "N2O", + "H2O2": "H2O2", + "O3": "O3", + "NH3": "NH3", + "CH4": "CH4" + } + + return (dict(sorted(varMap.items()))) + + # create new list of species common to both lists + inCommon = sorted([species for species in waccmSpecies if species in musicaSpecies]) + + # provide some diagnostic warnings + waccmOnly = [species for species in waccmSpecies if species not in musicaSpecies] + musicaOnly = [species for species in musicaSpecies if species not in waccmSpecies] + if (len(waccmOnly) > 0): + logger.warning(f"The following chemical species are only in WACCM: {waccmOnly}") + if (len(musicaOnly) > 0): + logger.warning(f"The following chemical species are only in MUSICA: {musicaOnly}") + + # build the dictionary + # To do: As of September 4, 2024 this is not much of a map, + # as most of the entries are identical. We may map additional + # pairs in the future. This map is still useful in identifying + # the common species between WACCM and MUSICA. + varMap = { + "T": "temperature", + "PS": "pressure" + } + + logger.info(f"inCommon = {inCommon}") + for varName in inCommon: + varMap[varName] = varName + + return (varMap) + + +# Read array values at a single lat-lon-time point. +# waccmMusicaDict = mapping from WACCM names to MusicBox +# latitude, longitude = geo-coordinates of retrieval point +# when = date and time to extract +# modelDir = directory containing model output +# return dictionary of MUSICA variable names, values, and units +def readWACCM(waccmMusicaDict, latitude, longitude, + when, modelDir, waccmFilename): + + logger.info(f"WACCM file = {waccmFilename}") + + # open dataset for reading + waccmDataSet = xarray.open_dataset(os.path.join(modelDir, waccmFilename)) + if (False): + # diagnostic to look at dataset structure + logger.info(f"WACCM dataset = {waccmDataSet}") + + # retrieve all vars at a single point + whenStr = when.strftime("%Y-%m-%d %H:%M:%S") + logger.info(f"whenStr = {whenStr}") + singlePoint = waccmDataSet.sel(lon=longitude, lat=latitude, lev=1000.0, + time=whenStr, method="nearest") + if (False): + # diagnostic to look at single point structure + logger.info(f"WACCM singlePoint = {singlePoint}") + + # loop through vars and build another dictionary + musicaDict = {} + for waccmKey, musicaName in waccmMusicaDict.items(): + if waccmKey not in singlePoint: + logger.warning(f"Requested variable {waccmKey} not found in WACCM model output.") + musicaTuple = (waccmKey, None, None) + musicaDict[musicaName] = musicaTuple + continue + + chemSinglePoint = singlePoint[waccmKey] + if (True): + logger.info(f"WACCM chemical {waccmKey} = value {chemSinglePoint.values} {chemSinglePoint.units}") + musicaTuple = (waccmKey, float(chemSinglePoint.values.mean()), chemSinglePoint.units) # from 0-dim array + musicaDict[musicaName] = musicaTuple + + # close the NetCDF file + waccmDataSet.close() + + return (musicaDict) + + +# Calculate air density from the ideal gas law. +# tempK = temperature in degrees Kelvin +# pressPa = pressure in Pascals +# return density of air in moles / cubic meter +def calcAirDensity(tempK, pressPa): + BOLTZMANN_CONSTANT = 1.380649e-23 # joules / Kelvin + AVOGADRO_CONSTANT = 6.02214076e23 # / mole + GAS_CONSTANT = BOLTZMANN_CONSTANT * AVOGADRO_CONSTANT # joules / Kelvin-mole + airDensity = pressPa / (GAS_CONSTANT * tempK) # moles / m3 + + return airDensity + + +# set up indexes for the tuple +musicaIndex = 0 +valueIndex = 1 +unitIndex = 2 + +# Perform any numeric conversion needed. +# varDict = originally read from WACCM, tuples are (musicaName, value, units) +# return varDict with values modified + + +def convertWaccm(varDict): + # from the supporting documents + # https://agupubs.onlinelibrary.wiley.com/action/downloadSupplement?doi=10.1029%2F2019MS001882&file=jame21103-sup-0001-2019MS001882+Text_SI-S01.pdf + soa_molecular_weight = 0.115 # kg mol-1 + soa_density = 1770 # kg m-3 + + # retrieve temperature and pressure from WACCM + temperature = varDict["temperature"][valueIndex] + pressure = varDict["pressure"][valueIndex] + logger.info(f"temperature = {temperature} K pressure = {pressure} Pa") + air_density = calcAirDensity(temperature, pressure) + logger.info(f"air density = {air_density} mol m-3") + + for key, vTuple in varDict.items(): + # convert moles / mole to moles / cubic meter + units = vTuple[unitIndex] + if (units == "mol/mol"): + varDict[key] = (vTuple[0], vTuple[valueIndex] * air_density, "mol m-3") + if (units == "kg/kg"): + # soa species only + varDict[key] = (vTuple[0], vTuple[valueIndex] * soa_density / soa_molecular_weight, "mol m-3") + + return (varDict) + + +# Write CSV file suitable for initial_conditions.csv in MusicBox. +# initValues = dictionary of Musica varnames and (WACCM name, value, units) +def writeInitCSV(initValues, filename): + fp = open(filename, "w") + + # write the column titles + firstColumn = True + for key, value in initValues.items(): + if (firstColumn): + firstColumn = False + else: + fp.write(",") + + fp.write(key) + fp.write("\n") + + # write the variable values + firstColumn = True + for key, value in initValues.items(): + if (firstColumn): + firstColumn = False + else: + fp.write(",") + + fp.write(f"{value[valueIndex]}") + fp.write("\n") + + fp.close() + return + + +# Write JSON fragment suitable for my_config.json in MusicBox. +# initValues = dictionary of Musica varnames and (WACCM name, value, units) +def writeInitJSON(initValues, filename): + + # set up dictionary of vars and initial values + dictName = "chemical species" + initConfig = {dictName: {}} + + for key, value in initValues.items(): + initConfig[dictName][key] = {f"initial value [{value[unitIndex]}]": value[valueIndex]} + + # write JSON content to the file + fpJson = open(filename, "w") + + json.dump(initConfig, fpJson, indent=2) + fpJson.close() + + fpJson.close() + return + + +# Reproduce the MusicBox configuration with new initial values and write to config.zip in the current directory +# initValues = dictionary of Musica varnames and (WACCM name, value, units) +# templateDir = directory containing configuration files and camp_data +def insertIntoTemplate(initValues, templateDir): + with tempfile.TemporaryDirectory() as temp_dir: + # copy the template directory to a new 'configuration' folder + destPath = os.path.join(temp_dir, 'configuration') + logger.info(f"Create new configuration in = {destPath}") + + # copy the template directory + shutil.copytree(templateDir, destPath) + + # find the standard configuration file and parse it + myConfigFile = os.path.join(destPath, "my_config.json") + with open(myConfigFile) as jsonFile: + myConfig = json.load(jsonFile) + + # locate the section for chemical concentrations + chemSpeciesTag = "chemical species" + chemSpecies = myConfig[chemSpeciesTag] + logger.info(f"Replace chemSpecies = {chemSpecies}") + del myConfig[chemSpeciesTag] # delete the existing section + + # set up dictionary of chemicals and initial values + chemValueDict = {} + temperature = 0.0 + pressure = 0.0 + for key, value in initValues.items(): + if key == "temperature": + temperature = safeFloat(value[valueIndex]) + continue + if key == "pressure": + pressure = safeFloat(value[valueIndex]) + continue + + chemValueDict[key] = {f"initial value [{value[unitIndex]}]": value[valueIndex]} + + myConfig[chemSpeciesTag] = chemValueDict + + # replace the values of temperature and pressure + envConditionsTag = "environmental conditions" + envConfig = myConfig[envConditionsTag] + envConfig["temperature"]["initial value [K]"] = temperature + envConfig["pressure"]["initial value [Pa]"] = pressure + + # save over the former json file + with open(myConfigFile, "w") as myConfigFp: + json.dump(myConfig, myConfigFp, indent=2) + + # Create a zip file that contains the 'configuration' folder + zip_path = os.path.join(os.getcwd(), 'config.zip') + with zipfile.ZipFile(zip_path, 'w') as zipf: + for root, dirs, files in os.walk(temp_dir): + for file in files: + file_path = os.path.join(root, file) + # Ensure the files are zipped under 'configuration' directory + zipf.write(file_path, os.path.relpath(file_path, temp_dir)) + + logger.info(f"Configuration zipped to {zip_path}") + + +# Main routine begins here. +def main(): + logging.basicConfig(stream=sys.stdout, level=logging.INFO) + logger.info(f"{__file__}") + logger.info(f"Start time: {datetime.datetime.now()}") + + # retrieve and parse the command-line arguments + myArgs = getArgsDictionary(sys.argv[1:]) + logger.info(f"Command line = {myArgs}") + + # set up the directories + waccmDir = None + if ("waccmDir" in myArgs): + waccmDir = myArgs.get("waccmDir") + + musicaDir = os.path.dirname(Examples.TS1.path) + template = os.path.dirname(Examples.TS1.path) + + # get the date-time to retrieve + dateStr = None + if ("date" in myArgs): + dateStr = myArgs.get("date") + + timeStr = "00:00" + if ("time" in myArgs): + timeStr = myArgs.get("time") + + # get the geographical location to retrieve + lat = None + if ("latitude" in myArgs): + lat = safeFloat(myArgs.get("latitude")) + + lon = None + if ("longitude" in myArgs): + lon = safeFloat(myArgs.get("longitude")) + + when = datetime.datetime.strptime( + f"{dateStr} {timeStr}", "%Y%m%d %H:%M") + + waccmFilename = f"f.e22.beta02.FWSD.f09_f09_mg17.cesm2_2_beta02.forecast.001.cam.h3.{when.year:4d}-{when.month:02d}-{when.day:02}-00000.nc" + + # read and glean chemical species from WACCM and MUSICA + waccmChems = getWaccmSpecies(waccmDir, waccmFilename) + musicaChems = getMusicaSpecies(template) + + # create map of species common to both WACCM and MUSICA + commonDict = getMusicaDictionary(waccmChems, musicaChems) + logger.info(f"Species in common are = {commonDict}") + if (len(commonDict) == 0): + logger.warning("There are no common species between WACCM and your MUSICA species.json file.") + + # Read named variables from WACCM model output. + logger.info(f"Retrieve WACCM conditions at ({lat} North, {lon} East) when {when}.") + varValues = readWACCM(commonDict, + lat, lon, when, waccmDir, waccmFilename) + logger.info(f"Original WACCM varValues = {varValues}") + + # Perform any conversions needed, or derive variables. + varValues = convertWaccm(varValues) + logger.info(f"Converted WACCM varValues = {varValues}") + + if (False): + # Write CSV file for MusicBox initial conditions. + csvName = os.path.join(musicaDir, "initial_conditions.csv") + writeInitCSV(varValues, csvName) + + if (False): + # Write JSON file for MusicBox initial conditions. + jsonName = os.path.join(musicaDir, "initial_config.json") + writeInitJSON(varValues, jsonName) + + logger.info(f"Insert values into template {template}") + insertIntoTemplate(varValues, template) + + logger.info(f"End time: {datetime.datetime.now()}") + sys.exit(0) # no error + + +if (__name__ == "__main__"): + main() + + logger.info(f"End time: {datetime.datetime.now()}") + sys.exit(0) # no error + + +if (__name__ == "__main__"): + main() diff --git a/tests/expected_results/chapman_test.csv b/tests/integration/expected_results/chapman_test.csv similarity index 100% rename from tests/expected_results/chapman_test.csv rename to tests/integration/expected_results/chapman_test.csv diff --git a/tests/expected_results/full_gas_phase_mechanism.csv b/tests/integration/expected_results/full_gas_phase_mechanism.csv similarity index 100% rename from tests/expected_results/full_gas_phase_mechanism.csv rename to tests/integration/expected_results/full_gas_phase_mechanism.csv diff --git a/tests/expected_results/wall_loss_test.csv b/tests/integration/expected_results/wall_loss_test.csv similarity index 100% rename from tests/expected_results/wall_loss_test.csv rename to tests/integration/expected_results/wall_loss_test.csv diff --git a/tests/integration/input_use_cases/1/camp_data/config.json b/tests/integration/input_use_cases/1/camp_data/config.json deleted file mode 100644 index af4e8619..00000000 --- a/tests/integration/input_use_cases/1/camp_data/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json" - ] -} diff --git a/tests/integration/input_use_cases/1/camp_data/species.json b/tests/integration/input_use_cases/1/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/1/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/1/config_camp.json b/tests/integration/input_use_cases/1/config_camp.json deleted file mode 100644 index 9354a6fa..00000000 --- a/tests/integration/input_use_cases/1/config_camp.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "chemical species" : { - "N2" : { "initial value [mol m-3]" : 3.29e1 }, - "O2" : { "initial value [mol m-3]" : 8.84e0 }, - "Ar" : { "initial value [mol m-3]" : 3.92e-1 }, - "CO2" : { "initial value [mol m-3]" : 1.69e-2 }, - "O" : { "initial value [mol m-3]" : 1.0e-5 } - }, - "environmental conditions" : { - "temperature" : { "initial value [K]" : 298.0 }, - "pressure" : { "initial value [atm]" : 1.0 } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] - } - \ No newline at end of file diff --git a/tests/integration/input_use_cases/1/expected_output.csv b/tests/integration/input_use_cases/1/expected_output.csv deleted file mode 100644 index 3f468492..00000000 --- a/tests/integration/input_use_cases/1/expected_output.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 diff --git a/tests/integration/input_use_cases/1/expected_output_camp.csv b/tests/integration/input_use_cases/1/expected_output_camp.csv deleted file mode 100644 index 2391c177..00000000 --- a/tests/integration/input_use_cases/1/expected_output_camp.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 diff --git a/tests/integration/input_use_cases/1/run_camp.sh b/tests/integration/input_use_cases/1/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/1/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/1/run_preprocessed_data.sh b/tests/integration/input_use_cases/1/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/1/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/1/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/1/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/1/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/1/run_preprocessor_camp.sh b/tests/integration/input_use_cases/1/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/1/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/2/camp_data/config.json b/tests/integration/input_use_cases/2/camp_data/config.json deleted file mode 100644 index af4e8619..00000000 --- a/tests/integration/input_use_cases/2/camp_data/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json" - ] -} diff --git a/tests/integration/input_use_cases/2/camp_data/species.json b/tests/integration/input_use_cases/2/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/2/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/2/config_camp.json b/tests/integration/input_use_cases/2/config_camp.json deleted file mode 100644 index 4c301998..00000000 --- a/tests/integration/input_use_cases/2/config_camp.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "properties" : { - "ENV.pressure" : { "units" : "atm" } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] - } \ No newline at end of file diff --git a/tests/integration/input_use_cases/2/expected_output.csv b/tests/integration/input_use_cases/2/expected_output.csv deleted file mode 100644 index 3f468492..00000000 --- a/tests/integration/input_use_cases/2/expected_output.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 diff --git a/tests/integration/input_use_cases/2/expected_output_camp.csv b/tests/integration/input_use_cases/2/expected_output_camp.csv deleted file mode 100644 index 2391c177..00000000 --- a/tests/integration/input_use_cases/2/expected_output_camp.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 diff --git a/tests/integration/input_use_cases/2/initial.csv b/tests/integration/input_use_cases/2/initial.csv deleted file mode 100644 index f422d6fa..00000000 --- a/tests/integration/input_use_cases/2/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2, CONC.O2, CONC.Ar, CONC.CO2, CONC.O, ENV.temperature, ENV.pressure -3.29e1, 8.84, 3.92e-1, 1.69e-2, 1.0e-5, 298.0, 1.0 diff --git a/tests/integration/input_use_cases/2/run_camp.sh b/tests/integration/input_use_cases/2/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/2/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/2/run_preprocessed_data.sh b/tests/integration/input_use_cases/2/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/2/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/2/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/2/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/2/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/2/run_preprocessor_camp.sh b/tests/integration/input_use_cases/2/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/2/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/3/camp_data/config.json b/tests/integration/input_use_cases/3/camp_data/config.json deleted file mode 100644 index af4e8619..00000000 --- a/tests/integration/input_use_cases/3/camp_data/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json" - ] -} diff --git a/tests/integration/input_use_cases/3/camp_data/species.json b/tests/integration/input_use_cases/3/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/3/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/3/config_camp.json b/tests/integration/input_use_cases/3/config_camp.json deleted file mode 100644 index df4258de..00000000 --- a/tests/integration/input_use_cases/3/config_camp.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] - } \ No newline at end of file diff --git a/tests/integration/input_use_cases/3/expected_output.csv b/tests/integration/input_use_cases/3/expected_output.csv deleted file mode 100644 index 3f468492..00000000 --- a/tests/integration/input_use_cases/3/expected_output.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 diff --git a/tests/integration/input_use_cases/3/expected_output_camp.csv b/tests/integration/input_use_cases/3/expected_output_camp.csv deleted file mode 100644 index 2391c177..00000000 --- a/tests/integration/input_use_cases/3/expected_output_camp.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.10000000000000000818E-04, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.40894572562574022296E-64, 0.99999999999999991240E-05, 0.88399999999999998579E+01, 0.40894572562574022296E-64 diff --git a/tests/integration/input_use_cases/3/initial.csv b/tests/integration/input_use_cases/3/initial.csv deleted file mode 100644 index d53e9b6d..00000000 --- a/tests/integration/input_use_cases/3/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& CONC.O& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 1.0e-5& 298.0& 1.0 diff --git a/tests/integration/input_use_cases/3/run_camp.sh b/tests/integration/input_use_cases/3/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/3/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/3/run_preprocessed_data.sh b/tests/integration/input_use_cases/3/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/3/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/3/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/3/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/3/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/3/run_preprocessor_camp.sh b/tests/integration/input_use_cases/3/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/3/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/4/camp_data/config.json b/tests/integration/input_use_cases/4/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/tests/integration/input_use_cases/4/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/tests/integration/input_use_cases/4/camp_data/mechanism.json b/tests/integration/input_use_cases/4/camp_data/mechanism.json deleted file mode 100644 index 202f1b4f..00000000 --- a/tests/integration/input_use_cases/4/camp_data/mechanism.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O2" : { } - }, - "products" : { - "O" : { "yield" : 2.0 } - }, - "MUSICA name" : "O2_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O1D" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_2" - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "N2" : { } - }, - "products" : { - "O" : { }, - "N2" : { } - }, - "A" : 2.15e-11, - "C" : 110.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "O2" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "A" : 3.3e-11, - "C" : 55.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O3" : { } - }, - "products" : { - "O2" : { "yield" : 2.0 } - }, - "A" : 8.0e-12, - "C" : -2060.00 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O2" : { }, - "M" : { } - }, - "products" : { - "O3" : { }, - "M" : { } - }, - "A" : 6.0e-34, - "B" : 2.4 - } - ] - } - ] -} - diff --git a/tests/integration/input_use_cases/4/camp_data/species.json b/tests/integration/input_use_cases/4/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/4/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/4/check_output.F90 b/tests/integration/input_use_cases/4/check_output.F90 deleted file mode 100644 index 321a075d..00000000 --- a/tests/integration/input_use_cases/4/check_output.F90 +++ /dev/null @@ -1,38 +0,0 @@ -!> \file -!> Check results from an integration test - -!> Check results from an integration test -program check_output - - use test_common_output - - implicit none - - call check_results( ) - -contains - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - !> Perform checks of an integration test output, in addition to comparison - !! with the `expected_results` file - subroutine check_results( ) - - use musica_string, only : string_t - - type(scaled_property_t) :: species(4) - - species(1)%name_ = 'CONC.O1D' - species(2)%name_ = 'CONC.O' - species(3)%name_ = 'CONC.O2' - species(3)%scale_factor_ = 2.0 - species(4)%name_ = 'CONC.O3' - species(4)%scale_factor_ = 3.0 - - call conservation_check( 'output.csv', species ) - - end subroutine check_results - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -end program check_output diff --git a/tests/integration/input_use_cases/4/config_b_camp.json b/tests/integration/input_use_cases/4/config_b_camp.json deleted file mode 100644 index b18b8162..00000000 --- a/tests/integration/input_use_cases/4/config_b_camp.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial_b.csv" : { - "delimiter" : "&" - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/4/config_camp.json b/tests/integration/input_use_cases/4/config_camp.json deleted file mode 100644 index 3e1525fd..00000000 --- a/tests/integration/input_use_cases/4/config_camp.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "photolysis" : { - "O2_1" : { "initial value [s-1]" : 1.0e-4 }, - "O3_1" : { "initial value [s-1]" : 1.0e-5 }, - "O3_2" : { "initial value [s-1]" : 1.0e-6 } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/4/expected_output.csv b/tests/integration/input_use_cases/4/expected_output.csv deleted file mode 100644 index a65cfa40..00000000 --- a/tests/integration/input_use_cases/4/expected_output.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999981010E-01, 0.00000000000000000000E+00, 0.32899999999999955946E+02, 0.42403605420732882163E-13, 0.17071524585409238359E-07, 0.42715031950993740395E+01, 0.30456645309098955288E+01 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999981010E-01, 0.00000000000000000000E+00, 0.32899999999999955946E+02, 0.54421344000797236423E-13, 0.14768755918730700662E-07, 0.31881099143215476666E+01, 0.37679267188626965890E+01 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999981010E-01, 0.00000000000000000000E+00, 0.32899999999999955946E+02, 0.56928952609103817107E-13, 0.14234850785201633128E-07, 0.29718255185094277770E+01, 0.39121163162487428977E+01 diff --git a/tests/integration/input_use_cases/4/expected_output_camp.csv b/tests/integration/input_use_cases/4/expected_output_camp.csv deleted file mode 100644 index e527233f..00000000 --- a/tests/integration/input_use_cases/4/expected_output_camp.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.42390328776849406796E-13, 0.17073882177310531812E-07, 0.42727374526419792389E+01, 0.30448416925609786965E+01 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.54380901578799943281E-13, 0.14777200599742525137E-07, 0.31916245024107605666E+01, 0.37655836601476773140E+01 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.56891182677264652758E-13, 0.14243037143981733287E-07, 0.29750600231854549271E+01, 0.39099599798094502034E+01 diff --git a/tests/integration/input_use_cases/4/initial.csv b/tests/integration/input_use_cases/4/initial.csv deleted file mode 100644 index 2af07f8d..00000000 --- a/tests/integration/input_use_cases/4/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/tests/integration/input_use_cases/4/initial_b.csv b/tests/integration/input_use_cases/4/initial_b.csv deleted file mode 100644 index c59bf8d4..00000000 --- a/tests/integration/input_use_cases/4/initial_b.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm& PHOT.O2_1& PHOT.O3_1& PHOT.O3_2 -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0& 1.0e-4& 1.0e-5& 1.0e-6 diff --git a/tests/integration/input_use_cases/4/run_b.sh b/tests/integration/input_use_cases/4/run_b.sh deleted file mode 100755 index 487d046b..00000000 --- a/tests/integration/input_use_cases/4/run_b.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_b.json" -comp_str="../../../../compare_results output.csv expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_b_camp.sh b/tests/integration/input_use_cases/4/run_b_camp.sh deleted file mode 100755 index e1009771..00000000 --- a/tests/integration/input_use_cases/4/run_b_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_b_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_b_preprocessed_data.sh b/tests/integration/input_use_cases/4/run_b_preprocessed_data.sh deleted file mode 100755 index 59b51dc8..00000000 --- a/tests/integration/input_use_cases/4/run_b_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config_b.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_b_preprocessed_data_camp.sh b/tests/integration/input_use_cases/4/run_b_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/4/run_b_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_b_preprocessor.sh b/tests/integration/input_use_cases/4/run_b_preprocessor.sh deleted file mode 100755 index 2b4d1bf3..00000000 --- a/tests/integration/input_use_cases/4/run_b_preprocessor.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_b.json" -exec_str2="./run_preprocessed_data.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_b_preprocessor_camp.sh b/tests/integration/input_use_cases/4/run_b_preprocessor_camp.sh deleted file mode 100755 index 1e7abf03..00000000 --- a/tests/integration/input_use_cases/4/run_b_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_b_camp.json" -exec_str2="./run_b_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_camp.sh b/tests/integration/input_use_cases/4/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/4/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_preprocessed_data.sh b/tests/integration/input_use_cases/4/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/4/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/4/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/4/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/4/run_preprocessor_camp.sh b/tests/integration/input_use_cases/4/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/4/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/5/camp_data/config.json b/tests/integration/input_use_cases/5/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/tests/integration/input_use_cases/5/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/tests/integration/input_use_cases/5/camp_data/mechanism.json b/tests/integration/input_use_cases/5/camp_data/mechanism.json deleted file mode 100644 index 2b6e6d87..00000000 --- a/tests/integration/input_use_cases/5/camp_data/mechanism.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - } - ] - } - ] -} - diff --git a/tests/integration/input_use_cases/5/camp_data/species.json b/tests/integration/input_use_cases/5/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/5/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/5/config_camp.json b/tests/integration/input_use_cases/5/config_camp.json deleted file mode 100644 index 4bd9d39e..00000000 --- a/tests/integration/input_use_cases/5/config_camp.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "evolving conditions" : { - "emissions.csv" : { } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/5/emissions.csv b/tests/integration/input_use_cases/5/emissions.csv deleted file mode 100644 index 2553005b..00000000 --- a/tests/integration/input_use_cases/5/emissions.csv +++ /dev/null @@ -1,5 +0,0 @@ -time.hr, EMIS.O1D, EMIS.O, EMIS.O3 -0.0, 0.0, 0.0, 0.0 -0.2, 0.1, 0.05, 0.05 -1.0, 0.2, 0.1, 0.1 -1.5, 0.0, 0.0, 0.0 diff --git a/tests/integration/input_use_cases/5/expected_output.csv b/tests/integration/input_use_cases/5/expected_output.csv deleted file mode 100644 index efdcb0e2..00000000 --- a/tests/integration/input_use_cases/5/expected_output.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.28800000000000000000E+03, 0.14400000000000000000E+03, 0.88399999999999998579E+01, 0.14400000000000000000E+03 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.64800000000000000000E+03, 0.32400000000000000000E+03, 0.88399999999999998579E+01, 0.32400000000000000000E+03 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.64800000000000000000E+03, 0.32400000000000000000E+03, 0.88399999999999998579E+01, 0.32400000000000000000E+03 diff --git a/tests/integration/input_use_cases/5/expected_output_camp.csv b/tests/integration/input_use_cases/5/expected_output_camp.csv deleted file mode 100644 index d8cd312d..00000000 --- a/tests/integration/input_use_cases/5/expected_output_camp.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.28799999999999988631E+03, 0.14399999999999994316E+03, 0.88399999999999998579E+01, 0.14399999999999994316E+03 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.64799999999999977263E+03, 0.32399999999999988631E+03, 0.88399999999999998579E+01, 0.32399999999999988631E+03 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.64799999999999977263E+03, 0.32399999999999988631E+03, 0.88399999999999998579E+01, 0.32399999999999988631E+03 diff --git a/tests/integration/input_use_cases/5/initial.csv b/tests/integration/input_use_cases/5/initial.csv deleted file mode 100644 index 2af07f8d..00000000 --- a/tests/integration/input_use_cases/5/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/tests/integration/input_use_cases/5/run_camp.sh b/tests/integration/input_use_cases/5/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/5/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/5/run_preprocessed_data.sh b/tests/integration/input_use_cases/5/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/5/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/5/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/5/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/5/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/5/run_preprocessor_camp.sh b/tests/integration/input_use_cases/5/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/5/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/6/camp_data/config.json b/tests/integration/input_use_cases/6/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/tests/integration/input_use_cases/6/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/tests/integration/input_use_cases/6/camp_data/mechanism.json b/tests/integration/input_use_cases/6/camp_data/mechanism.json deleted file mode 100644 index 7f67543b..00000000 --- a/tests/integration/input_use_cases/6/camp_data/mechanism.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "CO2", - "MUSICA name" : "CO2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "H2O", - "MUSICA name" : "H2O" - } - ] - } - ] -} - diff --git a/tests/integration/input_use_cases/6/camp_data/species.json b/tests/integration/input_use_cases/6/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/6/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/6/config_camp.json b/tests/integration/input_use_cases/6/config_camp.json deleted file mode 100644 index 429b43d6..00000000 --- a/tests/integration/input_use_cases/6/config_camp.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5 - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "evolving conditions" : { - "emissions.csv" : { }, - "wall_loss_rates_011519.txt" : { - "delimiter" : ";", - "time axis" : "columns", - "properties" : { - "simtime" : { - "MusicBox name" : "time", - "units" : "hr" - }, - "*" : { - "MusicBox name" : "LOSS.*", - "units" : "min-1" - } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/6/emissions.csv b/tests/integration/input_use_cases/6/emissions.csv deleted file mode 100644 index 2553005b..00000000 --- a/tests/integration/input_use_cases/6/emissions.csv +++ /dev/null @@ -1,5 +0,0 @@ -time.hr, EMIS.O1D, EMIS.O, EMIS.O3 -0.0, 0.0, 0.0, 0.0 -0.2, 0.1, 0.05, 0.05 -1.0, 0.2, 0.1, 0.1 -1.5, 0.0, 0.0, 0.0 diff --git a/tests/integration/input_use_cases/6/expected_output.csv b/tests/integration/input_use_cases/6/expected_output.csv deleted file mode 100644 index c951c80f..00000000 --- a/tests/integration/input_use_cases/6/expected_output.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.14830364683772609413E+00, 0.82756181710989390465E-02, 0.00000000000000000000E+00, 0.16110522948470723748E+02, 0.28800000000000000000E+03, 0.14400000000000000000E+03, 0.33443985664425985860E+01, 0.14400000000000000000E+03 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.48002919875168893749E-01, 0.34052338713566354146E-02, 0.00000000000000000000E+00, 0.66291239270788988591E+01, 0.64800000000000000000E+03, 0.32400000000000000000E+03, 0.10825148257563599330E+01, 0.32400000000000000000E+03 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.27146872321263608441E-01, 0.21712729792329860633E-02, 0.00000000000000000000E+00, 0.42269160364949884823E+01, 0.64800000000000000000E+03, 0.32400000000000000000E+03, 0.61218967173461846798E+00, 0.32400000000000000000E+03 diff --git a/tests/integration/input_use_cases/6/expected_output_camp.csv b/tests/integration/input_use_cases/6/expected_output_camp.csv deleted file mode 100644 index 64d6b5da..00000000 --- a/tests/integration/input_use_cases/6/expected_output_camp.csv +++ /dev/null @@ -1,5 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.36000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.14871954069662024489E+00, 0.82881710648065615860E-02, 0.38134765806885220612E-64, 0.16134960238587897408E+02, 0.28799999999999982947E+03, 0.14399999999999991473E+03, 0.33537773973421494134E+01, 0.14399999999999991473E+03 - 0.72000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.48270812935350487782E-01, 0.34162853086090899137E-02, 0.37945031178675610780E-64, 0.66506382635052645469E+01, 0.64799999999999954525E+03, 0.32399999999999977263E+03, 0.10885560876237192485E+01, 0.32399999999999977263E+03 - 0.90000000000000000000E+04, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.27335231092851380863E-01, 0.21801660781599003017E-02, 0.37945031178675606563E-64, 0.42442286373645368158E+01, 0.64799999999999954525E+03, 0.32399999999999977263E+03, 0.61643735423674983487E+00, 0.32399999999999977263E+03 diff --git a/tests/integration/input_use_cases/6/initial.csv b/tests/integration/input_use_cases/6/initial.csv deleted file mode 100644 index 2af07f8d..00000000 --- a/tests/integration/input_use_cases/6/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/tests/integration/input_use_cases/6/run_camp.sh b/tests/integration/input_use_cases/6/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/6/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/6/run_preprocessed_data.sh b/tests/integration/input_use_cases/6/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/6/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/6/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/6/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/6/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/6/run_preprocessor_camp.sh b/tests/integration/input_use_cases/6/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/6/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/6/wall_loss_rates_011519.txt b/tests/integration/input_use_cases/6/wall_loss_rates_011519.txt deleted file mode 100644 index fa5182fa..00000000 --- a/tests/integration/input_use_cases/6/wall_loss_rates_011519.txt +++ /dev/null @@ -1,6 +0,0 @@ -simtime; 0.0; 0.3; 0.6; 0.9; 1.2 -N2; 0.010; 0.012; 0.013; 0.014; 0.015 -O2; 0.015; 0.016; 0.017; 0.018; 0.019 -Ar; 0.015; 0.016; 0.017; 0.018; 0.019 -CO2; 0.010; 0.012; 0.013; 0.014; 0.015 -H2O; 0.010; 0.012; 0.013; 0.014; 0.015 diff --git a/tests/integration/input_use_cases/7/camp_data/config.json b/tests/integration/input_use_cases/7/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/tests/integration/input_use_cases/7/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/tests/integration/input_use_cases/7/camp_data/mechanism.json b/tests/integration/input_use_cases/7/camp_data/mechanism.json deleted file mode 100644 index bc6b69de..00000000 --- a/tests/integration/input_use_cases/7/camp_data/mechanism.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O2" : { } - }, - "products" : { - "O" : { "yield" : 2.0 } - }, - "MUSICA name" : "O2_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O1D" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_2" - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "N2" : { } - }, - "products" : { - "O" : { }, - "N2" : { } - }, - "A" : 2.15e-11, - "C" : 110.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "O2" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "A" : 3.3e-11, - "C" : 55.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O3" : { } - }, - "products" : { - "O2" : { "yield" : 2.0 } - }, - "A" : 8.0e-12, - "C" : -2060.00 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O2" : { }, - "M" : { } - }, - "products" : { - "O3" : { }, - "M" : { } - }, - "A" : 6.0e-34, - "B" : 2.4 - }, - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "CO2", - "MUSICA name" : "CO2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "H2O", - "MUSICA name" : "H2O" - } - ] - } - ] -} - diff --git a/tests/integration/input_use_cases/7/camp_data/species.json b/tests/integration/input_use_cases/7/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/7/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/7/config_camp.json b/tests/integration/input_use_cases/7/config_camp.json deleted file mode 100644 index 6cd6ef43..00000000 --- a/tests/integration/input_use_cases/7/config_camp.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5, - "simulation start" : { - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "evolving conditions" : { - "emissions.csv" : { - "properties" : { - "time.hr" : { - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - } - } - }, - "wall_loss_rates_011519.txt" : { - "delimiter" : ";", - "time axis" : "columns", - "properties" : { - "simtime" : { - "MusicBox name" : "time", - "units" : "hr", - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "*" : { - "MusicBox name" : "LOSS.*", - "units" : "min-1" - } - } - }, - "parking_lot_photo_rates.nc" : { - "time offset" : { "years" : 15 }, - "properties" : { - "*" : { "MusicBox name" : "PHOT.*" }, - "time" : { - "MusicBox name" : "time", - "shift first entry to" : { - "year" : 2020, - "month" : 1, - "day" : 1, - "time zone" : "UTC-8" - } - } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/7/emissions.csv b/tests/integration/input_use_cases/7/emissions.csv deleted file mode 100644 index 2553005b..00000000 --- a/tests/integration/input_use_cases/7/emissions.csv +++ /dev/null @@ -1,5 +0,0 @@ -time.hr, EMIS.O1D, EMIS.O, EMIS.O3 -0.0, 0.0, 0.0, 0.0 -0.2, 0.1, 0.05, 0.05 -1.0, 0.2, 0.1, 0.1 -1.5, 0.0, 0.0, 0.0 diff --git a/tests/integration/input_use_cases/7/etc/gen_netcdf b/tests/integration/input_use_cases/7/etc/gen_netcdf deleted file mode 100755 index 537cb180..00000000 Binary files a/tests/integration/input_use_cases/7/etc/gen_netcdf and /dev/null differ diff --git a/tests/integration/input_use_cases/7/etc/parking_lot_photo_rates.c b/tests/integration/input_use_cases/7/etc/parking_lot_photo_rates.c deleted file mode 100644 index b037c455..00000000 --- a/tests/integration/input_use_cases/7/etc/parking_lot_photo_rates.c +++ /dev/null @@ -1,171 +0,0 @@ -#include -#include -#include -#include - -typedef enum {false, true} bool; - -void -check_err(const int stat, const int line, const char *file) { - if (stat != NC_NOERR) { - (void)fprintf(stderr,"line %d of %s: %s\n", line, file, nc_strerror(stat)); - fflush(stderr); - exit(1); - } -} - -int -get_month_in_days( const int months, const bool is_leap_year ) { - int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; - if( is_leap_year ) { - days[1] = 29; - } - int ret_val = 0; - for(int m = months-1; m >= 0; --m) ret_val += days[m]; - return ret_val; -} - -double -get_time_in_seconds(const int year, const int month, const int day, - const double hours, const double minutes, const double seconds) { - int leap_years = (year-1) / 4 - (year-1) / 100 + (year-1) / 400; - bool is_leap_year = year % 4 == 0 && ( year % 100 != 0 || year % 400 == 0 ); - int days_to_year = ( ( year-1 - leap_years ) * 365 + leap_years * 366 ); - double s = (double)days_to_year * 24.0 * 60.0 * 60.0 + - ( ( ( (double)( get_month_in_days( month-1, is_leap_year ) + day-1 ) * 24.0 + - hours ) * 60.0 + minutes ) * 60.0 + seconds ); - return s; -} - -int -main() {/* create parking_lot_photo_rates.nc */ - - int stat; /* return status */ - int ncid; /* netCDF id */ - - /* dimension ids */ - int time_dim; - - /* dimension lengths */ - size_t time_len = NC_UNLIMITED; - - /* variable ids */ - int time_id; - int O3_1_id; - int O3_2_id; - int O2_1_id; - - /* rank (number of dimensions) for each variable */ -# define RANK_time 1 -# define RANK_O3_1 1 -# define RANK_O3_2 1 -# define RANK_O2_1 1 - - /* variable shapes */ - int time_dims[RANK_time]; - int O3_1_dims[RANK_O3_1]; - int O3_2_dims[RANK_O3_2]; - int O2_1_dims[RANK_O2_1]; - - /* enter define mode */ - stat = nc_create("parking_lot_photo_rates.nc", NC_CLOBBER, &ncid); - check_err(stat,__LINE__,__FILE__); - - /* define dimensions */ - stat = nc_def_dim(ncid, "time", time_len, &time_dim); - check_err(stat,__LINE__,__FILE__); - - /* define variables */ - - time_dims[0] = time_dim; - stat = nc_def_var(ncid, "time", NC_DOUBLE, RANK_time, time_dims, &time_id); - check_err(stat,__LINE__,__FILE__); - - O3_1_dims[0] = time_dim; - stat = nc_def_var(ncid, "O3_1", NC_DOUBLE, RANK_O3_1, O3_1_dims, &O3_1_id); - check_err(stat,__LINE__,__FILE__); - - O3_2_dims[0] = time_dim; - stat = nc_def_var(ncid, "O3_2", NC_DOUBLE, RANK_O3_2, O3_2_dims, &O3_2_id); - check_err(stat,__LINE__,__FILE__); - - O2_1_dims[0] = time_dim; - stat = nc_def_var(ncid, "O2_1", NC_DOUBLE, RANK_O2_1, O2_1_dims, &O2_1_id); - check_err(stat,__LINE__,__FILE__); - - /* assign per-variable attributes */ - - { - stat = nc_put_att_text(ncid, time_id, "units", 5, "hours"); - check_err(stat,__LINE__,__FILE__); - } - - { - stat = nc_put_att_text(ncid, O3_1_id, "units", 3, "s-1"); - check_err(stat,__LINE__,__FILE__); - } - - { - stat = nc_put_att_text(ncid, O3_2_id, "units", 3, "s-1"); - check_err(stat,__LINE__,__FILE__); - } - - { - stat = nc_put_att_text(ncid, O2_1_id, "units", 3, "s-1"); - check_err(stat,__LINE__,__FILE__); - } - - - /* leave define mode */ - stat = nc_enddef (ncid); - check_err(stat,__LINE__,__FILE__); - - /* assign variable data */ - double ref_time = get_time_in_seconds( 1, 1, 1, 0.0, 0.0, 0.0 ); - - /* the start date is set for 6/11 because 2020 is a leap year - * and 2005 is not */ - double data_set_start_time = get_time_in_seconds( 2005, 1, 1, 0.0-8.0, 0.0, 0.0 ) - ref_time; - double sim_time_start = get_time_in_seconds( 2005, 6, 11, 13.0-8.0, 0.0, 0.0 ) - ref_time; - double sim_time_stop = get_time_in_seconds( 2005, 6, 11, 15.0-8.0, 30.0, 0.0 ) - ref_time; - data_set_start_time /= 3600.0; - sim_time_start /= 3600.0; - sim_time_stop /= 3600.0; - double O3_1 = 1.0e-4; - double O3_2 = 2.0e-4; - double O2_1 = 3.0e-4; - double timea[1]; - double O3_1a[1]; - double O3_2a[1]; - double O2_1a[1]; - size_t start[1] = {0}; - size_t count[1] = {1}; - for(int i_hour = 0; i_hour <= 365 * 24; ++i_hour) { - timea[0] = data_set_start_time + i_hour; - if( timea[0] >= sim_time_start - 1.0e-10 && timea[0] <= sim_time_stop + 1.0e-10 ) { - O3_1a[0] = O3_1; - O3_2a[0] = O3_2; - O2_1a[0] = O2_1; - O3_1 += 1.0e-5; - O3_2 += 2.0e-5; - O2_1 += 3.0e-5; - } else { - O3_1a[0] = i_hour; - O3_2a[0] = 0.0; - O2_1a[0] = 0.0; - } - stat = nc_put_vara_double(ncid, time_id, start, count, timea ); - check_err(stat,__LINE__,__FILE__); - stat = nc_put_vara_double(ncid, O3_1_id, start, count, O3_1a ); - check_err(stat,__LINE__,__FILE__); - stat = nc_put_vara_double(ncid, O3_2_id, start, count, O3_2a ); - check_err(stat,__LINE__,__FILE__); - stat = nc_put_vara_double(ncid, O2_1_id, start, count, O2_1a ); - check_err(stat,__LINE__,__FILE__); - start[0] += 1; - } - - stat = nc_close(ncid); - check_err(stat,__LINE__,__FILE__); - return 0; -} diff --git a/tests/integration/input_use_cases/7/etc/parking_lot_photo_rates.cdl b/tests/integration/input_use_cases/7/etc/parking_lot_photo_rates.cdl deleted file mode 100644 index 4f06bfc7..00000000 --- a/tests/integration/input_use_cases/7/etc/parking_lot_photo_rates.cdl +++ /dev/null @@ -1,17 +0,0 @@ -netcdf parking_lot_photo_rates { - -dimensions: -time = unlimited; - -variables: - double time(time); - double O3_1(time); - double O3_2(time); - double O2_1(time); - - time:units = "hours"; - O3_1:units = "s-1"; - O3_2:units = "s-1"; - O2_1:units = "s-1"; - -} diff --git a/tests/integration/input_use_cases/7/expected_output.csv b/tests/integration/input_use_cases/7/expected_output.csv deleted file mode 100644 index 1c44ce72..00000000 --- a/tests/integration/input_use_cases/7/expected_output.csv +++ /dev/null @@ -1,37 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.63727390800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.63727391100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36367544664079271000E+00, 0.16075777274062060668E-01, 0.00000000000000000000E+00, 0.31295448066073483062E+02, 0.16268109841546828619E-12, 0.67976154626620338714E-07, 0.64312340717882685581E+01, 0.12719164596013519120E+01 - 0.63727391400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.33739752675862266784E+00, 0.15291752364807714021E-01, 0.00000000000000000000E+00, 0.29769151053383058780E+02, 0.28019261829850437212E-12, 0.67507945978335690486E-07, 0.49536267431302363207E+01, 0.19997820037373337243E+01 - 0.63727391520000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32742592287321858890E+00, 0.14988955380519957544E-01, 0.00000000000000000000E+00, 0.29179682367994473680E+02, 0.32627855174483195402E-12, 0.67309627357745565104E-07, 0.45392980541282383911E+01, 0.21838396586617023765E+01 - 0.63727391700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.31301835775367575776E+00, 0.14545964801583472978E-01, 0.00000000000000000000E+00, 0.28317292424384394423E+02, 0.18000000000000369482E+02, 0.90000000671150210962E+01, 0.40428088929487877579E+01, 0.11390777871937949328E+02 - 0.63727391880000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29924476178004644211E+00, 0.14116066572850494501E-01, 0.00000000000000000000E+00, 0.27480389955430837290E+02, 0.18000000000001737277E+02, 0.90000000662425616582E+01, 0.12246508640422010927E+02, 0.23545857651198012661E+02 - 0.63727392000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.28982052143669645439E+00, 0.13781314073065242462E-01, 0.00000000000000000000E+00, 0.26828712012061913583E+02, 0.12000000000002534861E+02, 0.60000000661580017436E+01, 0.21059335696430462548E+02, 0.32214108240399639271E+02 - 0.63727392300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.26753806085651293811E+00, 0.12978752820198329043E-01, 0.00000000000000000000E+00, 0.25266329454705616087E+02, 0.30000000000002792433E+02, 0.15000000066215225303E+02, 0.26438325370496674083E+02, 0.48160134728106264390E+02 - 0.63727392600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.24696875725722969297E+00, 0.12222929096219331546E-01, 0.00000000000000000000E+00, 0.23794932974296798989E+02, 0.30000000000003325340E+02, 0.15000000066227485718E+02, 0.41100598182179560069E+02, 0.66103187318793089844E+02 - 0.63727392900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22798089687094180711E+00, 0.11511121119334340179E-01, 0.00000000000000000000E+00, 0.22409223954207082130E+02, 0.30000000000003680611E+02, 0.15000000066218143857E+02, 0.54971142759659748833E+02, 0.83803900742346883135E+02 - 0.63727392960000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22436222906140027011E+00, 0.11373813161341825295E-01, 0.00000000000000000000E+00, 0.22141920296339996810E+02, 0.60000000000042579273E+01, 0.30000000660794210461E+01, 0.68698896471517656437E+02, 0.91913383008530772145E+02 - 0.63727393200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.20961276237574305581E+00, 0.10797489160139381315E-01, 0.00000000000000000000E+00, 0.21019964104650028958E+02, 0.24000000000004032330E+02, 0.12000000066183615033E+02, 0.71034941069460586505E+02, 0.10202375624911830698E+03 - 0.63727393500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.19253189720944358099E+00, 0.10117975778136818407E-01, 0.00000000000000000000E+00, 0.19697124443828474938E+02, 0.30000000000004099832E+02, 0.15000000066209340233E+02, 0.81030647403312940469E+02, 0.11756741779301187023E+03 - 0.63727393800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.17684291272599259037E+00, 0.94812258969326785457E-02, 0.00000000000000000000E+00, 0.18457534438407396493E+02, 0.30000000000004224177E+02, 0.15000000066209311811E+02, 0.93685797541805087008E+02, 0.13358963160121123792E+03 - 0.63727394040000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16521734339215968235E+00, 0.90008014370165576046E-02, 0.00000000000000000000E+00, 0.17522270253126901451E+02, 0.24000000000004401812E+02, 0.12000000066181415903E+02, 0.10643525238714138936E+03, 0.14709709545950465781E+03 - 0.63727394100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16227003654953944811E+00, 0.88756681934396650796E-02, 0.00000000000000000000E+00, 0.17278667666518632728E+02, 0.60000000000047775117E+01, 0.30000000660788654905E+01, 0.11641720716598071306E+03, 0.15403280361689789402E+03 - 0.63727394400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.14830364683772609413E+00, 0.82756181710989355771E-02, 0.00000000000000000000E+00, 0.16110522948470705984E+02, 0.30000000000004384049E+02, 0.15000000066214983718E+02, 0.11752688910747104956E+03, 0.16391434192399378844E+03 - 0.63727394700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.13553932773444865578E+00, 0.77161352386340125581E-02, 0.00000000000000000000E+00, 0.15021352032607039106E+02, 0.60000000000004860112E+02, 0.30000000072848116872E+02, 0.12947214368671524198E+03, 0.19282220794130350328E+03 - 0.63727395000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.12387361844721007931E+00, 0.71944768100608630021E-02, 0.00000000000000000000E+00, 0.14005815801834458512E+02, 0.60000000000004952483E+02, 0.30000000072847068822E+02, 0.15551118740249003736E+03, 0.22569940900960287422E+03 - 0.63727395120000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11949348365373313463E+00, 0.69958255553245257338E-02, 0.00000000000000000000E+00, 0.13619092353264905526E+02, 0.24000000000005375256E+02, 0.12000000072735362622E+02, 0.18224821095293910389E+03, 0.24542108501338304904E+03 - 0.63727395300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11287283598726190192E+00, 0.66879916142338936835E-02, 0.00000000000000000000E+00, 0.13019817994573674724E+02, 0.36000000000005243805E+02, 0.18000000072781183746E+02, 0.19175714700509479371E+03, 0.26158334707412211628E+03 - 0.63727395600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.10264350208348774207E+00, 0.62047406567254780735E-02, 0.00000000000000000000E+00, 0.12079051337649008957E+02, 0.60000000000005051959E+02, 0.30000000072851015886E+02, 0.20426019584892497960E+03, 0.28767708966745544785E+03 - 0.63727395900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.93341222693757261442E-01, 0.57564077286350089427E-02, 0.00000000000000000000E+00, 0.11206261199532063344E+02, 0.60000000000005094591E+02, 0.30000000072848639121E+02, 0.22731636716380103280E+03, 0.31720358285555948896E+03 - 0.63727396200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.84881981587874702488E-01, 0.53404697748924692333E-02, 0.00000000000000000000E+00, 0.10396535833962266437E+02, 0.60000000000005123013E+02, 0.30000000072849189792E+02, 0.24985977417895054487E+03, 0.34557415215429944055E+03 - 0.63727396500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.77189376680044025081E-01, 0.49545860475910001239E-02, 0.00000000000000000000E+00, 0.96453184003398817481E+01, 0.51407142503137323229E-11, 0.72850695822935032335E-07, 0.27176868801892555894E+03, 0.34291210538958824827E+03 - 0.63727396800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.70193929981305303034E-01, 0.45965849331068798708E-02, 0.00000000000000000000E+00, 0.89483813194802621638E+01, 0.50353241111132288217E-11, 0.72884848356683573987E-07, 0.26640494086944602259E+03, 0.32878819588457218970E+03 - 0.63727397100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.63832460088957168609E-01, 0.42644517310458738418E-02, 0.00000000000000000000E+00, 0.83018024823319152006E+01, 0.49759493249215887214E-11, 0.72904943213252887703E-07, 0.25952430383451775242E+03, 0.31613269057615309521E+03 - 0.63727397400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.58047511545421232038E-01, 0.39563173162403316580E-02, 0.00000000000000000000E+00, 0.77019431777696452102E+01, 0.49426877291740786947E-11, 0.72916839130152887688E-07, 0.25190258861676701940E+03, 0.30447761833141714760E+03 - 0.63727397700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.52786835912638246926E-01, 0.36704476199908289344E-02, 0.00000000000000000000E+00, 0.71454276152484217377E+01, 0.49247186604629745196E-11, 0.72923889509119892471E-07, 0.24398145472907341968E+03, 0.29354843262301022833E+03 - 0.63727398000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.48002919875168865993E-01, 0.34052338713566310778E-02, 0.00000000000000000000E+00, 0.66291239270788890892E+01, 0.49156774121458726232E-11, 0.72928074405240315093E-07, 0.23601036923875682305E+03, 0.28318214081907103719E+03 - 0.63727398300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.43652556109925702565E-01, 0.31591835435764753677E-02, 0.00000000000000000000E+00, 0.61501265434121963338E+01, 0.53238655030729737947E-11, 0.79571520449098018690E-07, 0.22905653103920272429E+03, 0.27259969185487688037E+03 - 0.63727398600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39696453046722257607E-01, 0.29309119546694307676E-02, 0.00000000000000000000E+00, 0.57057398407470030222E+01, 0.53036610115418520384E-11, 0.79579246213698570678E-07, 0.22177937743728759301E+03, 0.26271627502549762312E+03 - 0.63727398900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36098879995078179961E-01, 0.27191344749470506593E-02, 0.00000000000000000000E+00, 0.52934629719383465840E+01, 0.52938246910182932167E-11, 0.79583633098513768502E-07, 0.21444486820384796033E+03, 0.25335839447921381407E+03 - 0.63727399200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32827344432140775909E-01, 0.25226592975835359506E-02, 0.00000000000000000000E+00, 0.49109757923371839539E+01, 0.52898001644269859301E-11, 0.79586125461842304643E-07, 0.20719492826558609977E+03, 0.24442581487879871815E+03 - 0.63727399500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29852298537055215605E-01, 0.23403807315592879516E-02, 0.00000000000000000000E+00, 0.45561258028580260415E+01, 0.52890094083789223341E-11, 0.79587542525873341796E-07, 0.20010347739862277194E+03, 0.23585872648057465994E+03 - 0.63727399800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.27146872321263594563E-01, 0.21712729792329825938E-02, 0.00000000000000000000E+00, 0.42269160364949822650E+01, 0.52899998557648553340E-11, 0.79588348485590399202E-07, 0.19320721793102077868E+03, 0.22761969269823921991E+03 diff --git a/tests/integration/input_use_cases/7/expected_output_camp.csv b/tests/integration/input_use_cases/7/expected_output_camp.csv deleted file mode 100644 index 4a382754..00000000 --- a/tests/integration/input_use_cases/7/expected_output_camp.csv +++ /dev/null @@ -1,37 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.63727390800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00 - 0.63727391100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36367544923738676088E+00, 0.16075777267359609574E-01, 0.38900120707681362120E-64, 0.31295448053025509694E+02, 0.16567174996906460160E-12, 0.67957468472958535794E-07, 0.64358213172330183127E+01, 0.12258473726446583729E+01 - 0.63727391400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.33739841782556884153E+00, 0.15291774690132983044E-01, 0.38900177532684118168E-64, 0.29769194515110953603E+02, 0.28516334630829841294E-12, 0.67476507016343541407E-07, 0.49595742605279742321E+01, 0.19279711671076247281E+01 - 0.63727391520000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32742809632097552575E+00, 0.14989006115426166052E-01, 0.40084882928838814298E-64, 0.29179781135947965964E+02, 0.32253041662250598394E-12, 0.67312974354758534713E-07, 0.45402267730472898322E+01, 0.21126574170102987438E+01 - 0.63727391700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.31302043222132602818E+00, 0.14546014006167975324E-01, 0.39685955205479113534E-64, 0.28317388213190920254E+02, 0.12776355229793108447E-09, 0.94075590060051572545E-06, 0.11067596771138477507E+02, 0.15550600851477929254E+02 - 0.63727391880000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29924687073188577235E+00, 0.14116117260527328084E-01, 0.39685963547653396984E-64, 0.27480488631440767477E+02, 0.10432005060318551606E-09, 0.56045924225992871650E-06, 0.19670427319349329309E+02, 0.27354298437667399213E+02 - 0.63727392000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.28982288616930396152E+00, 0.13781372594788258643E-01, 0.39924812977105006028E-64, 0.26828825938966474496E+02, 0.93342332554277766175E-10, 0.45027343216420599583E-06, 0.25372583221570451428E+02, 0.35072245310973833909E+02 - 0.63727392300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.26754061915534704807E+00, 0.12978822138028815042E-01, 0.38513100204625607625E-64, 0.25266464398884473042E+02, 0.74266628798462359983E-10, 0.31399538395807294467E-06, 0.39572307366998735745E+02, 0.53872969785067304826E+02 - 0.63727392600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.24697297213323685106E+00, 0.12223050144880653542E-01, 0.38513233771899099595E-64, 0.23795168625241032601E+02, 0.62068916103902253427E-10, 0.25012107052051734603E-06, 0.53616781137978584582E+02, 0.72023010982645871536E+02 - 0.63727392900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22798912019091147063E+00, 0.11511361716759177520E-01, 0.38513481613851421088E-64, 0.22409692336176160410E+02, 0.53620307061053975677E-10, 0.21305836105063829014E-06, 0.67455355625155505095E+02, 0.89565313601533674159E+02 - 0.63727392960000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22437099418559991459E+00, 0.11374070407597063753E-01, 0.40406839699782791041E-64, 0.22142421089345784679E+02, 0.52235609038000403130E-10, 0.20746110269495986144E-06, 0.70195312625485144054E+02, 0.93004168648987899815E+02 - 0.63727393200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.20962560270525235073E+00, 0.10797879702963034815E-01, 0.38822924354312665821E-64, 0.21020724392158840033E+02, 0.47583034158037158883E-10, 0.18915846070408793826E-06, 0.80820197044527262165E+02, 0.10649486794317262195E+03 - 0.63727393500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.19254430967000327191E+00, 0.10118382686256078423E-01, 0.38321128440192299648E-64, 0.19697916590403885095E+02, 0.42959254138754218163E-10, 0.17234136818146138304E-06, 0.93918430448302459013E+02, 0.12280901981929233102E+03 - 0.63727393800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.17685146838228801847E+00, 0.94815496390696710205E-02, 0.38320740749137643399E-64, 0.18458164681975894439E+02, 0.39300821783539505241E-10, 0.15985540025227999475E-06, 0.10674340657028839985E+03, 0.13857206923166012302E+03 - 0.63727394040000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16523201544895857462E+00, 0.90013313407411345290E-02, 0.38823358173108547754E-64, 0.17523301840851104316E+02, 0.36890236656664484960E-10, 0.15198779430518485057E-06, 0.11678492534775978129E+03, 0.15080579904220334697E+03 - 0.63727394100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16229280795176914687E+00, 0.88764679125947765215E-02, 0.40327296864185751260E-64, 0.17280224516234820697E+02, 0.36380430686057167499E-10, 0.15029773953321980659E-06, 0.11915312985020774761E+03, 0.15380680813554567976E+03 - 0.63727394400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.14833360925008279296E+00, 0.82766901616128877445E-02, 0.38131350186233965287E-64, 0.16112609841246406717E+02, 0.34056643175865936919E-10, 0.14283010764854277367E-06, 0.13091826238746446620E+03, 0.16845388387319488288E+03 - 0.63727394700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.13557081203722662344E+00, 0.77172799720577420907E-02, 0.38130564228045814290E-64, 0.15023580537319519479E+02, 0.55466343170925931848E-10, 0.20088200071917370613E-06, 0.15594671776985799738E+03, 0.20316480336642780458E+03 - 0.63727395000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.12390173888173069972E+00, 0.71955376195491681582E-02, 0.38129812106703075136E-64, 0.14007880927998087373E+02, 0.49053386933857492715E-10, 0.18287062036755419277E-06, 0.18173224099788262720E+03, 0.23584178545791854731E+03 - 0.63727395120000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11952658891209856640E+00, 0.69970697158717679726E-02, 0.39766615137095922917E-64, 0.13621514417288832277E+02, 0.46931622355667357739E-10, 0.17710037869111415215E-06, 0.19199399857798175617E+03, 0.24850610428849935829E+03 - 0.63727395300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11290512939459859676E+00, 0.66892268390023488719E-02, 0.39095376130751741975E-64, 0.13022222662909907598E+02, 0.44235094687544019665E-10, 0.16972269655233483196E-06, 0.20674450243073971478E+03, 0.26709320511999925429E+03 - 0.63727395600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.10267162608148530656E+00, 0.62058614166571436990E-02, 0.37939519188829637514E-64, 0.12081233172072199267E+02, 0.40471849602288400040E-10, 0.15969940680727917301E-06, 0.23106050474812946049E+03, 0.29701466549575400222E+03 - 0.63727395900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.93367601546064979412E-01, 0.57575051600194417090E-02, 0.37940053239641573469E-64, 0.11208397619209447882E+02, 0.37430541257222425008E-10, 0.15176640714497009053E-06, 0.25481314496517427415E+03, 0.32578454978993494251E+03 - 0.63727396200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.84914237675453529963E-01, 0.53418246403400971439E-02, 0.37942065061075226504E-64, 0.10399173412259719029E+02, 0.34939370611918874053E-10, 0.14535919343060662592E-06, 0.27790212023839620770E+03, 0.35350120215719107364E+03 - 0.63727396500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.77223086426538828375E-01, 0.49560282424385392053E-02, 0.37941091336473627366E-64, 0.96481259867590303259E+01, 0.54386657147612486934E-11, 0.72762931573516878803E-07, 0.27712569687110232053E+03, 0.33642326767744913241E+03 - 0.63727396800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.70224339689808290554E-01, 0.45979231829066241621E-02, 0.37939675490630123143E-64, 0.89509865513389126335E+01, 0.52991103268615188867E-11, 0.72805891405270164928E-07, 0.27263893954309162382E+03, 0.32199493287687960219E+03 - 0.63727397100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.63861173713665564389E-01, 0.42657487766451993028E-02, 0.37940166884204144550E-64, 0.83043275000962566423E+01, 0.52204832561772776244E-11, 0.72831065844591953501E-07, 0.26613607639089605073E+03, 0.30926542132028436072E+03 - 0.63727397400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.58087249247127485663E-01, 0.39581080053352653281E-02, 0.37945304215028575814E-64, 0.77054291938183370192E+01, 0.51769290680666743985E-11, 0.72845722364491525333E-07, 0.25860136714543835978E+03, 0.29768254792699411837E+03 - 0.63727397700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.52823695899184119895E-01, 0.36721551705680486981E-02, 0.37940151173592437683E-64, 0.71487517817567143297E+01, 0.51524312984336786118E-11, 0.72854571724507121894E-07, 0.25063679076433393789E+03, 0.28686810967488634105E+03 - 0.63727398000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.48035701752150800070E-01, 0.34068056951351106607E-02, 0.37939535840676810566E-64, 0.66321838680440734493E+01, 0.51395802223570669914E-11, 0.72859827173450589159E-07, 0.24253549060568366258E+03, 0.27665350396762886476E+03 - 0.63727398300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.43682260708792788884E-01, 0.31606457351865831738E-02, 0.37939720644106805402E-64, 0.61529730584401560733E+01, 0.55630676647403979964E-11, 0.79498205685516288447E-07, 0.23545643942459633990E+03, 0.26623525726204604780E+03 - 0.63727398600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39735823528814689931E-01, 0.29328446950571658916E-02, 0.37947128607785954521E-64, 0.57095023945195730875E+01, 0.55406793691688845993E-11, 0.79506392908712897084E-07, 0.22799695975908906576E+03, 0.25654889006292512477E+03 - 0.63727398900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36139475415135159653E-01, 0.27211579712260415206E-02, 0.37942886064194041572E-64, 0.52974022043394519699E+01, 0.55294340654125418318E-11, 0.79511114110032127252E-07, 0.22046485579965286661E+03, 0.24737690757089751514E+03 - 0.63727399200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32863197571629525207E-01, 0.25245054264221157385E-02, 0.37939205087353324540E-64, 0.49145697354608053331E+01, 0.55244637145818247716E-11, 0.79513858789337464381E-07, 0.21301021790530782596E+03, 0.23862148177152550943E+03 - 0.63727399500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29884134982723933177E-01, 0.23420741626765974319E-02, 0.37939360632807407296E-64, 0.45594224823704179173E+01, 0.55232541042303990181E-11, 0.79515399003763220921E-07, 0.20570908358117856096E+03, 0.23023133577302496633E+03 - 0.63727399800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.27174486024428585323E-01, 0.21727990661423697907E-02, 0.37938887884192820172E-64, 0.42298869394132525557E+01, 0.55240798406226083592E-11, 0.79516268204057901503E-07, 0.19860500798342317808E+03, 0.22216536940507728559E+03 diff --git a/tests/integration/input_use_cases/7/initial.csv b/tests/integration/input_use_cases/7/initial.csv deleted file mode 100644 index 2af07f8d..00000000 --- a/tests/integration/input_use_cases/7/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/tests/integration/input_use_cases/7/parking_lot_photo_rates.nc b/tests/integration/input_use_cases/7/parking_lot_photo_rates.nc deleted file mode 100644 index fd3ba0f2..00000000 Binary files a/tests/integration/input_use_cases/7/parking_lot_photo_rates.nc and /dev/null differ diff --git a/tests/integration/input_use_cases/7/run_camp.sh b/tests/integration/input_use_cases/7/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/7/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/7/run_preprocessed_data.sh b/tests/integration/input_use_cases/7/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/7/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/7/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/7/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/7/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/7/run_preprocessor_camp.sh b/tests/integration/input_use_cases/7/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/7/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/7/wall_loss_rates_011519.txt b/tests/integration/input_use_cases/7/wall_loss_rates_011519.txt deleted file mode 100644 index fa5182fa..00000000 --- a/tests/integration/input_use_cases/7/wall_loss_rates_011519.txt +++ /dev/null @@ -1,6 +0,0 @@ -simtime; 0.0; 0.3; 0.6; 0.9; 1.2 -N2; 0.010; 0.012; 0.013; 0.014; 0.015 -O2; 0.015; 0.016; 0.017; 0.018; 0.019 -Ar; 0.015; 0.016; 0.017; 0.018; 0.019 -CO2; 0.010; 0.012; 0.013; 0.014; 0.015 -H2O; 0.010; 0.012; 0.013; 0.014; 0.015 diff --git a/tests/integration/input_use_cases/8/camp_data/config.json b/tests/integration/input_use_cases/8/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/tests/integration/input_use_cases/8/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/tests/integration/input_use_cases/8/camp_data/mechanism.json b/tests/integration/input_use_cases/8/camp_data/mechanism.json deleted file mode 100644 index d3a78ae3..00000000 --- a/tests/integration/input_use_cases/8/camp_data/mechanism.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - }, - { - "type" : "EMISSION", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "EMISSION", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "EMISSION", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "CO2", - "MUSICA name" : "CO2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "H2O", - "MUSICA name" : "H2O" - } - ] - } - ] -} - diff --git a/tests/integration/input_use_cases/8/camp_data/species.json b/tests/integration/input_use_cases/8/camp_data/species.json deleted file mode 100644 index 948aca00..00000000 --- a/tests/integration/input_use_cases/8/camp_data/species.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - } - ] -} - diff --git a/tests/integration/input_use_cases/8/config_b_camp.json b/tests/integration/input_use_cases/8/config_b_camp.json deleted file mode 100644 index 4935c0dc..00000000 --- a/tests/integration/input_use_cases/8/config_b_camp.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [s]" : 1.0, - "output time step [s]" : 10.0, - "simulation length [s]" : 50.0 - }, - "initial conditions" : { - "init_O_O1D_O3.csv" : { - "properties" : { - "CONC.O3" : { "variability" : "tethered" } - }, - "linear combinations" : { - "atomic oxygen" : { - "properties" : { - "CONC.O" : { }, - "CONC.O1D" : { } - } - } - } - } - }, - "environmental conditions" : { - "temperature" : { "initial value [K]" : 298.15 }, - "pressure" : { "initial value [atm]" : 1.0 } - }, - "evolving conditions" : { - "evo_N2_Ar_O2.csv" : { - "linear combinations" : { - "N2 Ar" : { - "properties" : { - "CONC.N2" : { }, - "CONC.Ar" : { } - } - } - } - }, - "emit_all.csv" : { } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/8/config_camp.json b/tests/integration/input_use_cases/8/config_camp.json deleted file mode 100644 index 77c4a885..00000000 --- a/tests/integration/input_use_cases/8/config_camp.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5, - "simulation start" : { - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&", - "properties" : { - "CONC.O3" : { "variability" : "tethered" } - }, - "linear combinations" : { - "atomic oxygen" : { - "properties" : { - "CONC.O" : { }, - "CONC.O1D" : { } - }, - "scale factor" : 1.2 - } - } - } - }, - "evolving conditions" : { - "emissions.csv" : { - "properties" : { - "time.hr" : { - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - } - } - }, - "wall_loss_rates_011519.txt" : { - "delimiter" : ";", - "time axis" : "columns", - "properties" : { - "simtime" : { - "MusicBox name" : "time", - "units" : "hr", - "shift first entry to" :{ - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "*" : { - "MusicBox name" : "LOSS.*", - "units" : "min-1" - } - } - }, - "parking_lot_photo_rates.nc" : { - "time offset" : { "years" : 15 }, - "properties" : { - "*" : { "MusicBox name" : "PHOT.*" }, - "time" : { - "MusicBox name" : "time", - "shift first entry to" : { - "year" : 2020, - "month" : 1, - "day" : 1, - "time zone" : "UTC-8" - } - } - } - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/8/emissions.csv b/tests/integration/input_use_cases/8/emissions.csv deleted file mode 100644 index 2553005b..00000000 --- a/tests/integration/input_use_cases/8/emissions.csv +++ /dev/null @@ -1,5 +0,0 @@ -time.hr, EMIS.O1D, EMIS.O, EMIS.O3 -0.0, 0.0, 0.0, 0.0 -0.2, 0.1, 0.05, 0.05 -1.0, 0.2, 0.1, 0.1 -1.5, 0.0, 0.0, 0.0 diff --git a/tests/integration/input_use_cases/8/emit_all.csv b/tests/integration/input_use_cases/8/emit_all.csv deleted file mode 100644 index 0f4445c6..00000000 --- a/tests/integration/input_use_cases/8/emit_all.csv +++ /dev/null @@ -1,4 +0,0 @@ -time, EMIS.O, EMIS.O1D, EMIS.O3, EMIS.N2, EMIS.Ar, EMIS.O2 -0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 -20.0, 2.0, 1.0, 1.0, 2.0, 1.0, 1.0 -30.0, 1.0, 2.0, 3.0, 1.0, 2.0, 3.0 diff --git a/tests/integration/input_use_cases/8/evo_N2_Ar_O2.csv b/tests/integration/input_use_cases/8/evo_N2_Ar_O2.csv deleted file mode 100644 index 36a91614..00000000 --- a/tests/integration/input_use_cases/8/evo_N2_Ar_O2.csv +++ /dev/null @@ -1,4 +0,0 @@ -time, CONC.N2, CONC.Ar, CONC.O2 -0, 1.0, 2.0, 3.0 -20.0, 20.0, 10.0, 30.0 -30.0, 1.0, 2.0, 3.0 diff --git a/tests/integration/input_use_cases/8/expected_b_output.csv b/tests/integration/input_use_cases/8/expected_b_output.csv deleted file mode 100644 index 195f0f13..00000000 --- a/tests/integration/input_use_cases/8/expected_b_output.csv +++ /dev/null @@ -1,7 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.20000000000000000000E+01, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.10000000000000000000E+01, 0.20000000000000000000E+01, 0.10000000000000000000E+01, 0.30000000000000000000E+01, 0.30000000000000000000E+01 - 0.10000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.22000000000000000000E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.11000000000000000000E+02, 0.40000000000000000000E+01, 0.20000000000000000000E+01, 0.33000000000000000000E+02, 0.60000000000000000000E+01 - 0.20000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.42000000000000000000E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.21000000000000000000E+02, 0.40000000000000000000E+01, 0.20000000000000000000E+01, 0.63000000000000000000E+02, 0.60000000000000000000E+01 - 0.30000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.30000000000000000000E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.30000000000000000000E+02, 0.20019531250000000000E+01, 0.39980468750000000000E+01, 0.40000000000000000000E+02, 0.40000000000000000000E+01 - 0.40000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.21500000000000000000E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.11500000000000000000E+02, 0.39980487823486328125E+01, 0.20019512176513671875E+01, 0.33000000000000000000E+02, 0.60000000000000000000E+01 - 0.50000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.41500000000000000000E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.21500000000000000000E+02, 0.39999980945140123367E+01, 0.20000019054859876633E+01, 0.63000000000000000000E+02, 0.60000000000000000000E+01 diff --git a/tests/integration/input_use_cases/8/expected_b_output_camp.csv b/tests/integration/input_use_cases/8/expected_b_output_camp.csv deleted file mode 100644 index 799a430d..00000000 --- a/tests/integration/input_use_cases/8/expected_b_output_camp.csv +++ /dev/null @@ -1,7 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.00000000000000000000E+00, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.20000000000000000000E+01, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.10000000000000000000E+01, 0.20000000000000000000E+01, 0.10000000000000000000E+01, 0.30000000000000000000E+01, 0.30000000000000000000E+01 - 0.10000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.22000000000000000000E+02, 0.40873998402304409287E-64, 0.40873998402304409287E-64, 0.11000000000000000000E+02, 0.39999999999999995559E+01, 0.19999999999999997780E+01, 0.32999999999999985789E+02, 0.60000000000000000000E+01 - 0.20000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.41999999999999957367E+02, 0.40873998402304409287E-64, 0.40873998402304409287E-64, 0.20999999999999978684E+02, 0.39999999999999995559E+01, 0.19999999999999997780E+01, 0.62999999999999957367E+02, 0.60000000000000000000E+01 - 0.30000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.30000000000000014211E+02, 0.40873998402304409287E-64, 0.40873998402304409287E-64, 0.29999999999999992895E+02, 0.20019531249999995559E+01, 0.39980468750000000000E+01, 0.39999999999999992895E+02, 0.39999999999999995559E+01 - 0.40000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.21500000000000003553E+02, 0.40873998402304409287E-64, 0.40873998402304409287E-64, 0.11499999999999998224E+02, 0.39980487823486323684E+01, 0.20019512176513671875E+01, 0.32999999999999985789E+02, 0.60000000000000000000E+01 - 0.50000000000000000000E+02, 0.29814999999999997726E+03, 0.10132500000000000000E+06, 0.40873998402304408728E+02, 0.41499999999999971578E+02, 0.40873998402304409287E-64, 0.40873998402304409287E-64, 0.21499999999999971578E+02, 0.39999980945140118926E+01, 0.20000019054859876633E+01, 0.62999999999999957367E+02, 0.60000000000000000000E+01 diff --git a/tests/integration/input_use_cases/8/expected_output.csv b/tests/integration/input_use_cases/8/expected_output.csv deleted file mode 100644 index b7df049b..00000000 --- a/tests/integration/input_use_cases/8/expected_output.csv +++ /dev/null @@ -1,37 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.63727390800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.88399999999999998579E+01, 0.10000000000000000479E-03 - 0.63727391100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36367544664079271000E+00, 0.16075777274062064137E-01, 0.00000000000000000000E+00, 0.31295448066073490168E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.82012524191444065025E+01, 0.10000000000000000479E-03 - 0.63727391400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.33739752675862261233E+00, 0.15291752364807714021E-01, 0.00000000000000000000E+00, 0.29769151053383069438E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.76086585115975093885E+01, 0.10000000000000000479E-03 - 0.63727391520000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32742592287321858890E+00, 0.14988955380519959279E-01, 0.00000000000000000000E+00, 0.29179682367994480785E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.73837886688756428910E+01, 0.10000000000000000479E-03 - 0.63727391700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.31301835775367575776E+00, 0.14545964801583474713E-01, 0.00000000000000000000E+00, 0.28317292424384401528E+02, 0.18000001199999999812E+02, 0.90000001199999992707E+01, 0.70588833738328915501E+01, 0.90000999999999997669E+01 - 0.63727391880000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29924476178004644211E+00, 0.14116066572850494501E-01, 0.00000000000000000000E+00, 0.27480389955430847948E+02, 0.18000000880000015968E+02, 0.90000004399999848914E+01, 0.67482747299377807693E+01, 0.90000999999999997669E+01 - 0.63727392000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.28982052143669645439E+00, 0.13781314073065242462E-01, 0.00000000000000000000E+00, 0.26828712012061927794E+02, 0.12000000879999999981E+02, 0.60000004399999999904E+01, 0.65357484936234602202E+01, 0.60000999999999997669E+01 - 0.63727392300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.26753806085651288260E+00, 0.12978752820198330778E-01, 0.00000000000000000000E+00, 0.25266329454705633850E+02, 0.30000000880000001757E+02, 0.15000000440000000879E+02, 0.60332562703356469314E+01, 0.15000099999999999767E+02 - 0.63727392600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.24696875725722958195E+00, 0.12222929096219333281E-01, 0.00000000000000000000E+00, 0.23794932974296816752E+02, 0.30000000880000001757E+02, 0.15000000440000000879E+02, 0.55693974850865028969E+01, 0.15000099999999999767E+02 - 0.63727392900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22798089687094169609E+00, 0.11511121119334343649E-01, 0.00000000000000000000E+00, 0.22409223954207103446E+02, 0.30000000880000001757E+02, 0.15000000440000000879E+02, 0.51412018580079701380E+01, 0.15000099999999999767E+02 - 0.63727392960000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22436222906140018685E+00, 0.11373813161341827030E-01, 0.00000000000000000000E+00, 0.22141920296340014573E+02, 0.60000008799999999809E+01, 0.30000004399999999904E+01, 0.50595972063846366140E+01, 0.30001000000000002110E+01 - 0.63727393200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.20961276237574300030E+00, 0.10797489160139381315E-01, 0.00000000000000000000E+00, 0.21019964104650046721E+02, 0.24000000880000001757E+02, 0.12000000440000000879E+02, 0.47269816821468575441E+01, 0.12000099999999999767E+02 - 0.63727393500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.19253189720944355323E+00, 0.10117975778136820142E-01, 0.00000000000000000000E+00, 0.19697124443828492701E+02, 0.30000000880000001757E+02, 0.15000000440000000879E+02, 0.43417907431925542028E+01, 0.15000099999999999767E+02 - 0.63727393800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.17684291272599256262E+00, 0.94812258969326802804E-02, 0.00000000000000000000E+00, 0.18457534438407414257E+02, 0.30000000880000001757E+02, 0.15000000440000000879E+02, 0.39879881339228941961E+01, 0.15000099999999999767E+02 - 0.63727394040000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16521734339215965459E+00, 0.90008014370165610740E-02, 0.00000000000000000000E+00, 0.17522270253126922768E+02, 0.24000000880000001757E+02, 0.12000000440000000879E+02, 0.37258196826191110063E+01, 0.12000099999999999767E+02 - 0.63727394100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16227003654953942036E+00, 0.88756681934396685490E-02, 0.00000000000000000000E+00, 0.17278667666518654045E+02, 0.60000008799999999809E+01, 0.30000004399999999904E+01, 0.36593549058620626901E+01, 0.30001000000000002110E+01 - 0.63727394400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.14830364683772609413E+00, 0.82756181710989390465E-02, 0.00000000000000000000E+00, 0.16110522948470723748E+02, 0.30000000880000001757E+02, 0.15000000440000000879E+02, 0.33443985664425985860E+01, 0.15000099999999999767E+02 - 0.63727394700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.13553932773444862803E+00, 0.77161352386340168949E-02, 0.00000000000000000000E+00, 0.15021352032607058646E+02, 0.60000000880000001757E+02, 0.30000000440000000879E+02, 0.30565501458482806640E+01, 0.30000099999999999767E+02 - 0.63727395000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.12387361844721007931E+00, 0.71944768100608664715E-02, 0.00000000000000000000E+00, 0.14005815801834476275E+02, 0.60000000880000001757E+02, 0.30000000440000000879E+02, 0.27934764976360644262E+01, 0.30000099999999999767E+02 - 0.63727395120000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11949348365373313463E+00, 0.69958255553245300706E-02, 0.00000000000000000000E+00, 0.13619092353264921513E+02, 0.24000000880000001757E+02, 0.12000000440000000879E+02, 0.26946999885178599676E+01, 0.12000099999999999767E+02 - 0.63727395300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11287283598726191580E+00, 0.66879916142338988877E-02, 0.00000000000000000000E+00, 0.13019817994573692488E+02, 0.36000000880000001757E+02, 0.18000000440000000879E+02, 0.25453976278760088725E+01, 0.18000099999999999767E+02 - 0.63727395600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.10264350208348776983E+00, 0.62047406567254832777E-02, 0.00000000000000000000E+00, 0.12079051337649024944E+02, 0.60000000880000001757E+02, 0.30000000440000000879E+02, 0.23147157102500814929E+01, 0.30000099999999999767E+02 - 0.63727395900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.93341222693757303075E-01, 0.57564077286350141469E-02, 0.00000000000000000000E+00, 0.11206261199532075779E+02, 0.60000000880000001757E+02, 0.30000000440000000879E+02, 0.21049398178898330869E+01, 0.30000099999999999767E+02 - 0.63727396200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.84881981587874758000E-01, 0.53404697748924744374E-02, 0.00000000000000000000E+00, 0.10396535833962278872E+02, 0.60000000880000001757E+02, 0.30000000440000000879E+02, 0.19141752990735021456E+01, 0.30000099999999999767E+02 - 0.63727396500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.77189376680044052836E-01, 0.49545860475910061954E-02, 0.00000000000000000000E+00, 0.96453184003398941826E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.17406992088050752265E+01, 0.10000000000000000479E-03 - 0.63727396800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.70193929981305330790E-01, 0.45965849331068850750E-02, 0.00000000000000000000E+00, 0.89483813194802745983E+01, 0.87999999999999983312E-06, 0.43999999999999991656E-06, 0.15829447475375999499E+01, 0.10000000000000000479E-03 - 0.63727397100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.63832460088957196365E-01, 0.42644517310458799134E-02, 0.00000000000000000000E+00, 0.83018024823319258587E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.14394871101693409443E+01, 0.10000000000000000479E-03 - 0.63727397400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.58047511545421266732E-01, 0.39563173162403368621E-02, 0.00000000000000000000E+00, 0.77019431777696549801E+01, 0.87999999999999983312E-06, 0.43999999999999991656E-06, 0.13090306175038879388E+01, 0.10000000000000000479E-03 - 0.63727397700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.52786835912638281620E-01, 0.36704476199908337049E-02, 0.00000000000000000000E+00, 0.71454276152484332840E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.11903970139482715762E+01, 0.10000000000000000479E-03 - 0.63727398000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.48002919875168893749E-01, 0.34052338713566354146E-02, 0.00000000000000000000E+00, 0.66291239270788988591E+01, 0.87999999999999983312E-06, 0.43999999999999991656E-06, 0.10825148257563599330E+01, 0.10000000000000000479E-03 - 0.63727398300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.43652556109925723382E-01, 0.31591835435764797045E-02, 0.00000000000000000000E+00, 0.61501265434122052156E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.98440968370342729621E+00, 0.10000000000000000479E-03 - 0.63727398600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39696453046722278424E-01, 0.29309119546694351044E-02, 0.00000000000000000000E+00, 0.57057398407470110158E+01, 0.87999999999999983312E-06, 0.43999999999999991656E-06, 0.89519552278832925651E+00, 0.10000000000000000479E-03 - 0.63727398900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36098879995078200777E-01, 0.27191344749470549962E-02, 0.00000000000000000000E+00, 0.52934629719383536894E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.81406657948084548693E+00, 0.10000000000000000479E-03 - 0.63727399200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32827344432140796726E-01, 0.25226592975835398537E-02, 0.00000000000000000000E+00, 0.49109757923371910593E+01, 0.87999999999999983312E-06, 0.43999999999999991656E-06, 0.74029011423501223099E+00, 0.10000000000000000479E-03 - 0.63727399500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29852298537055232952E-01, 0.23403807315592914211E-02, 0.00000000000000000000E+00, 0.45561258028580331469E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.67319979353971537428E+00, 0.10000000000000000479E-03 - 0.63727399800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.27146872321263608441E-01, 0.21712729792329860633E-02, 0.00000000000000000000E+00, 0.42269160364949884823E+01, 0.87999999999999983312E-06, 0.43999999999999991656E-06, 0.61218967173461846798E+00, 0.10000000000000000479E-03 diff --git a/tests/integration/input_use_cases/8/expected_output_camp.csv b/tests/integration/input_use_cases/8/expected_output_camp.csv deleted file mode 100644 index e5f71461..00000000 --- a/tests/integration/input_use_cases/8/expected_output_camp.csv +++ /dev/null @@ -1,37 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3 - 0.63727390800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.88399999999999998579E+01, 0.10000000000000000479E-03 - 0.63727391100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36374527896072494926E+00, 0.16077159879455061448E-01, 0.38903466348549040699E-64, 0.31298139646986477658E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.82028272092163465601E+01, 0.99999999999999991240E-04 - 0.63727391400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.33752711215871322725E+00, 0.15294382827784586132E-01, 0.38903466348549040699E-64, 0.29774271895509631491E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.76115807945995523909E+01, 0.99999999999999991240E-04 - 0.63727391520000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.32759397314362004305E+00, 0.14992396228328404642E-01, 0.40087111873022642803E-64, 0.29186380823195538170E+02, 0.11999999999999999457E-05, 0.11999999999999998928E-06, 0.73875783739530627159E+01, 0.99999999999999991240E-04 - 0.63727391700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.31323066324549125872E+00, 0.14550373596426836864E-01, 0.39688872931954383425E-64, 0.28325875226180063038E+02, 0.18000001200000003365E+02, 0.90000001200000028234E+01, 0.70636710793115877749E+01, 0.90001000000000015433E+01 - 0.63727391880000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29949711057236366729E+00, 0.14121383171275416965E-01, 0.39688872931994612453E-64, 0.27490740019820194107E+02, 0.18000000880000012415E+02, 0.90000004399999831151E+01, 0.67539654527032997322E+01, 0.90000999999999979906E+01 - 0.63727392000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.29010395410987022125E+00, 0.13787550117781802519E-01, 0.39927814571214489322E-64, 0.26840852004439128109E+02, 0.12000000879999998205E+02, 0.60000004399999991023E+01, 0.65421401896205377824E+01, 0.60000999999999988788E+01 - 0.63727392300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.26784993497995424061E+00, 0.12986004549756203011E-01, 0.38517147776167800405E-64, 0.25280446727040178700E+02, 0.30000000880000008863E+02, 0.15000000440000004431E+02, 0.60402893500581464892E+01, 0.15000100000000001543E+02 - 0.63727392600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.24730303276595280715E+00, 0.12231057202018690011E-01, 0.38517147776167791971E-64, 0.23810756328190237241E+02, 0.30000000879999998205E+02, 0.15000000439999999102E+02, 0.55769357389056661845E+01, 0.15000099999999999767E+02 - 0.63727392900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22833229367711074809E+00, 0.11519999065598810623E-01, 0.38517147776167791971E-64, 0.22426507056698262943E+02, 0.30000000879999998205E+02, 0.15000000439999999102E+02, 0.51491262145552472163E+01, 0.15000099999999999767E+02 - 0.63727392960000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.22473650952471529996E+00, 0.11383398286164832583E-01, 0.40409656682385392459E-64, 0.22160580095551640767E+02, 0.60000008799999999809E+01, 0.30000004399999999904E+01, 0.50680376127512269946E+01, 0.30001000000000002110E+01 - 0.63727393200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.21000020240956659978E+00, 0.10807730390947385343E-01, 0.38826500101160949227E-64, 0.21039901175276252587E+02, 0.24000000879999998205E+02, 0.12000000439999999102E+02, 0.47357188502565472632E+01, 0.12000099999999996214E+02 - 0.63727393500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.19292622442125334503E+00, 0.10128760304249329396E-01, 0.38325467813111735324E-64, 0.19718119172177672738E+02, 0.30000000879999998205E+02, 0.15000000439999999102E+02, 0.43506832241935642358E+01, 0.15000099999999999767E+02 - 0.63727393800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.17724043902037783793E+00, 0.94924449065521103452E-02, 0.38325467813111735324E-64, 0.18479374995595513553E+02, 0.30000000879999998205E+02, 0.15000000439999999102E+02, 0.39969527575003525044E+01, 0.15000099999999999767E+02 - 0.63727394040000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16561851987536752029E+00, 0.90124040925129590002E-02, 0.38826500101160949227E-64, 0.17544857671223443418E+02, 0.24000000879999998205E+02, 0.12000000439999999102E+02, 0.37348666216792021366E+01, 0.12000099999999996214E+02 - 0.63727394100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.16269009810939835670E+00, 0.88879724778234310556E-02, 0.40329953217528611064E-64, 0.17302620977537912950E+02, 0.60000008799999999809E+01, 0.30000004399999999904E+01, 0.36688277226711214496E+01, 0.30001000000000002110E+01 - 0.63727394400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.14871905238160093576E+00, 0.82881597165788776366E-02, 0.38134765806885203744E-64, 0.16134938146476031307E+02, 0.30000000879999994652E+02, 0.15000000439999997326E+02, 0.33537663853401813441E+01, 0.15000099999999996214E+02 - 0.63727394700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.13594777308701910812E+00, 0.77288258552689823033E-02, 0.38134765806885203744E-64, 0.15046057434221856042E+02, 0.60000000880000001757E+02, 0.30000000440000000879E+02, 0.30657610053297146280E+01, 0.30000099999999996214E+02 - 0.63727395000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.12427323003576477845E+00, 0.72072391391766223168E-02, 0.38134765806885203744E-64, 0.14030660809403002531E+02, 0.60000000879999994652E+02, 0.30000000439999997326E+02, 0.28024881467248974332E+01, 0.30000099999999992662E+02 - 0.63727395120000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11989636285894526846E+00, 0.70088518872320239306E-02, 0.39768904090434918786E-64, 0.13644451307096648662E+02, 0.24000000880000005310E+02, 0.12000000440000002655E+02, 0.27037853256966206672E+01, 0.12000099999999999767E+02 - 0.63727395300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.11327289012976192450E+00, 0.67011659270145105399E-02, 0.39099316216877507419E-64, 0.13045465029513447774E+02, 0.36000000879999994652E+02, 0.18000000439999997326E+02, 0.25544192570078934068E+01, 0.18000099999999999767E+02 - 0.63727395600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.10303046764502230004E+00, 0.62178410018828020669E-02, 0.37945031178675606563E-64, 0.12104554376446397868E+02, 0.60000000879999994652E+02, 0.30000000439999997326E+02, 0.23234421785254992798E+01, 0.30000099999999992662E+02 - 0.63727395900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.93714191021271250892E-01, 0.57693761273449545648E-02, 0.37945031178675606563E-64, 0.11231507372168568537E+02, 0.60000000879999994652E+02, 0.30000000439999997326E+02, 0.21133506342551955370E+01, 0.30000099999999992662E+02 - 0.63727396200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.85240315796971208306E-01, 0.53532570049151682531E-02, 0.37945031178675602347E-64, 0.10421429317260878733E+02, 0.60000000880000008863E+02, 0.30000000440000004431E+02, 0.19222561011357752747E+01, 0.30000100000000003320E+02 - 0.63727396500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.77532669897541553472E-01, 0.49671506811363539541E-02, 0.37945031178675610780E-64, 0.96697785449340756259E+01, 0.88000000000000004488E-06, 0.44000000000000002244E-06, 0.17484408211588411408E+01, 0.99999999999999991240E-04 - 0.63727396800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.70521968920893421395E-01, 0.46088924679797494202E-02, 0.37945031178675606563E-64, 0.89723409583747688600E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.15903423603589199598E+01, 0.99999999999999991240E-04 - 0.63727397100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.64145193336585415445E-01, 0.42764738066172125128E-02, 0.37945031178675602347E-64, 0.83252064045979974338E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.14465395640189127047E+01, 0.99999999999999991240E-04 - 0.63727397400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.58345022000213832281E-01, 0.39680310065249857487E-02, 0.37945031178675606563E-64, 0.77247467523474515616E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.13157397818415534907E+01, 0.99999999999999991240E-04 - 0.63727397700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.53069316890870958658E-01, 0.36818347967851948292E-02, 0.37945031178675602347E-64, 0.71675955511380378127E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.11967672482533111555E+01, 0.99999999999999991240E-04 - 0.63727398000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.48270654439951349302E-01, 0.34162806310049226299E-02, 0.37945031178675606563E-64, 0.66506291574001110689E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.10885525133907372197E+01, 0.99999999999999991240E-04 - 0.63727398300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.43905899238398049533E-01, 0.31698796914978190874E-02, 0.37945031178675606563E-64, 0.61709492219099546517E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.99012282976387178124E+00, 0.99999999999999991240E-04 - 0.63727398600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39935816290422455899E-01, 0.29412505422935896621E-02, 0.37945031178675602347E-64, 0.57258664403230170592E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.90059340818197308742E+00, 0.99999999999999991240E-04 - 0.63727398900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.36324718328228047803E-01, 0.27291113841783117694E-02, 0.37945031178675602347E-64, 0.53128854757080699045E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.81915946434065023407E+00, 0.99999999999999991240E-04 - 0.63727399200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.33040145017432624719E-01, 0.25322728683438390160E-02, 0.37945031178675606563E-64, 0.49296909685510206245E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.74508898457679495486E+00, 0.99999999999999991240E-04 - 0.63727399500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.30052571169551307168E-01, 0.23496314283563031478E-02, 0.37945031178675602347E-64, 0.45741345557942203470E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.67771614576232863669E+00, 0.99999999999999991240E-04 - 0.63727399800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.27335141338647960668E-01, 0.21801630930597076623E-02, 0.37945031178675610780E-64, 0.42442228261339849382E+01, 0.87999999999999972724E-06, 0.43999999999999986362E-06, 0.61643533018787621813E+00, 0.99999999999999991240E-04 diff --git a/tests/integration/input_use_cases/8/init_O_O1D_O3.csv b/tests/integration/input_use_cases/8/init_O_O1D_O3.csv deleted file mode 100644 index 1803228e..00000000 --- a/tests/integration/input_use_cases/8/init_O_O1D_O3.csv +++ /dev/null @@ -1,2 +0,0 @@ -time, CONC.O, CONC.O1D, CONC.O3 -0, 1.0, 2.0, 3.0 diff --git a/tests/integration/input_use_cases/8/initial.csv b/tests/integration/input_use_cases/8/initial.csv deleted file mode 100644 index 98cf0ff3..00000000 --- a/tests/integration/input_use_cases/8/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.O& CONC.O1D& CONC.O3 &CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm -1.0e-7& 1.0e-6& 1.0e-4& 3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0 diff --git a/tests/integration/input_use_cases/8/parking_lot_photo_rates.nc b/tests/integration/input_use_cases/8/parking_lot_photo_rates.nc deleted file mode 100644 index fd3ba0f2..00000000 Binary files a/tests/integration/input_use_cases/8/parking_lot_photo_rates.nc and /dev/null differ diff --git a/tests/integration/input_use_cases/8/run_b.sh b/tests/integration/input_use_cases/8/run_b.sh deleted file mode 100755 index 0002a943..00000000 --- a/tests/integration/input_use_cases/8/run_b.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_b.json" -comp_str="../../../../compare_results output.csv expected_b_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_b_camp.sh b/tests/integration/input_use_cases/8/run_b_camp.sh deleted file mode 100755 index 8184d7b9..00000000 --- a/tests/integration/input_use_cases/8/run_b_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_b_camp.json" -comp_str="../../../../compare_results output.csv expected_b_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_b_preprocessed_data.sh b/tests/integration/input_use_cases/8/run_b_preprocessed_data.sh deleted file mode 100755 index 73ac80e2..00000000 --- a/tests/integration/input_use_cases/8/run_b_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_b_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_b_preprocessed_data_camp.sh b/tests/integration/input_use_cases/8/run_b_preprocessed_data_camp.sh deleted file mode 100755 index 7f4a21da..00000000 --- a/tests/integration/input_use_cases/8/run_b_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_b_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_b_preprocessor.sh b/tests/integration/input_use_cases/8/run_b_preprocessor.sh deleted file mode 100755 index 054f42c5..00000000 --- a/tests/integration/input_use_cases/8/run_b_preprocessor.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_b.json" -exec_str2="./run_b_preprocessed_data.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_b_preprocessor_camp.sh b/tests/integration/input_use_cases/8/run_b_preprocessor_camp.sh deleted file mode 100755 index 1e7abf03..00000000 --- a/tests/integration/input_use_cases/8/run_b_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_b_camp.json" -exec_str2="./run_b_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_camp.sh b/tests/integration/input_use_cases/8/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/8/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_preprocessed_data.sh b/tests/integration/input_use_cases/8/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/8/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/8/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/8/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/8/run_preprocessor_camp.sh b/tests/integration/input_use_cases/8/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/8/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/integration/input_use_cases/8/wall_loss_rates_011519.txt b/tests/integration/input_use_cases/8/wall_loss_rates_011519.txt deleted file mode 100644 index fa5182fa..00000000 --- a/tests/integration/input_use_cases/8/wall_loss_rates_011519.txt +++ /dev/null @@ -1,6 +0,0 @@ -simtime; 0.0; 0.3; 0.6; 0.9; 1.2 -N2; 0.010; 0.012; 0.013; 0.014; 0.015 -O2; 0.015; 0.016; 0.017; 0.018; 0.019 -Ar; 0.015; 0.016; 0.017; 0.018; 0.019 -CO2; 0.010; 0.012; 0.013; 0.014; 0.015 -H2O; 0.010; 0.012; 0.013; 0.014; 0.015 diff --git a/tests/integration/input_use_cases/9/camp_data/config.json b/tests/integration/input_use_cases/9/camp_data/config.json deleted file mode 100644 index 4629149f..00000000 --- a/tests/integration/input_use_cases/9/camp_data/config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "camp-files" : [ - "camp_data/species.json", - "camp_data/mechanism.json" - ] -} diff --git a/tests/integration/input_use_cases/9/camp_data/mechanism.json b/tests/integration/input_use_cases/9/camp_data/mechanism.json deleted file mode 100644 index 8149c85d..00000000 --- a/tests/integration/input_use_cases/9/camp_data/mechanism.json +++ /dev/null @@ -1,163 +0,0 @@ -{ - "camp-data" : [ - { - "name" : "Chapman", - "type" : "MECHANISM", - "reactions" : [ - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O2" : { } - }, - "products" : { - "O" : { "yield" : 2.0 } - }, - "MUSICA name" : "O2_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O1D" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_1" - }, - { - "type" : "PHOTOLYSIS", - "reactants" : { - "O3" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "MUSICA name" : "O3_2" - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "N2" : { } - }, - "products" : { - "O" : { }, - "N2" : { } - }, - "A" : 2.15e-11, - "C" : 110.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O1D" : { }, - "O2" : { } - }, - "products" : { - "O" : { }, - "O2" : { } - }, - "A" : 3.3e-11, - "C" : 55.0 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O3" : { } - }, - "products" : { - "O2" : { "yield" : 2.0 } - }, - "A" : 8.0e-12, - "C" : -2060.00 - }, - { - "type" : "ARRHENIUS", - "reactants" : { - "O" : { }, - "O2" : { }, - "M" : { } - }, - "products" : { - "O3" : { }, - "M" : { } - }, - "A" : 6.0e-34, - "B" : 2.4 - }, - { - "type" : "EMISSION", - "species" : "O1D", - "MUSICA name" : "O1D" - }, - { - "type" : "EMISSION", - "species" : "O", - "MUSICA name" : "O" - }, - { - "type" : "EMISSION", - "species" : "O3", - "MUSICA name" : "O3" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "N2", - "MUSICA name" : "N2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "O2", - "MUSICA name" : "O2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "CO2", - "MUSICA name" : "CO2" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "Ar", - "MUSICA name" : "Ar" - }, - { - "type" : "FIRST_ORDER_LOSS", - "species" : "H2O", - "MUSICA name" : "H2O" - } - ] - }, - { - "name" : "droplet phase", - "type" : "AERO_PHASE", - "species" : ["aH2O"] - }, - { - "type" : "AERO_REP_MODAL_BINNED_MASS", - "name" : "cloud", - "modes/bins" : - { - "single phase mode" : - { - "type" : "MODAL", - "phases" : [ "droplet phase" ], - "shape" : "LOG_NORMAL", - "geometric mean diameter" : 2.5e-8, - "geometric standard deviation" : 1.2 - }, - "binned aerosol" : - { - "type" : "BINNED", - "phases" : [ "droplet phase" ], - "bins" : 1, - "minimum diameter [m]" : 8.0e-9, - "maximum diameter [m]" : 1.0e-6, - "scale" : "LOG" - } - } - } - ] -} diff --git a/tests/integration/input_use_cases/9/camp_data/species.json b/tests/integration/input_use_cases/9/camp_data/species.json deleted file mode 100644 index 4cc07e3e..00000000 --- a/tests/integration/input_use_cases/9/camp_data/species.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "camp-data" : [ - { - "type" : "RELATIVE_TOLERANCE", - "value" : 1.0e-4 - }, - { - "name" : "M", - "type" : "CHEM_SPEC", - "tracer type" : "CONSTANT" - }, - { - "name" : "Ar", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "CO2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "H2O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "N2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O1D", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O2", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "O3", - "type" : "CHEM_SPEC", - "absolute tolerance" : 1.0e-12 - }, - { - "name" : "aH2O", - "type" : "CHEM_SPEC", - "phase" : "AEROSOL", - "molecular weight [kg mol-1]" : 18.02, - "density [kg m-3]" : 997 - } - ] -} - diff --git a/tests/integration/input_use_cases/9/config_camp.json b/tests/integration/input_use_cases/9/config_camp.json deleted file mode 100644 index 21c58a94..00000000 --- a/tests/integration/input_use_cases/9/config_camp.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "box model options" : { - "grid" : "box", - "chemistry time step [min]" : 5.0, - "output time step [hr]" : 1.0, - "simulation length [hr]" : 2.5, - "simulation start" : { - "time zone" : "UTC-8", - "year" : 2020, - "month" : 6, - "day" : 10, - "hour" : 13 - } - }, - "initial conditions" : { - "initial.csv" : { - "delimiter" : "&" - } - }, - "model components" : [ - { - "type" : "CAMP", - "configuration file" : "camp_data/config.json", - "override species" : { - "M" : { "mixing ratio mol mol-1" : 1.0 } - }, - "suppress output" : { - "M" : { } - } - } - ] -} diff --git a/tests/integration/input_use_cases/9/expected_output.csv b/tests/integration/input_use_cases/9/expected_output.csv deleted file mode 100644 index 278329bc..00000000 --- a/tests/integration/input_use_cases/9/expected_output.csv +++ /dev/null @@ -1,32 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3, CONC.single phase mode.droplet phase.aH2O, CONC.binned aerosol.droplet phase.aH2O - 0.63727390800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00, 0.15000000000000000000E+01, 0.50999999999999996447E+01 - 0.63727391100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.26711422189187494162E-62, 0.14999999999999997780E+01, 0.50999999999999996447E+01 - 0.63727391400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.53013898748192618276E-62, 0.14999999999999995559E+01, 0.50999999999999996447E+01 - 0.63727391700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.79316375307197742389E-62, 0.14999999999999993339E+01, 0.50999999999999996447E+01 - 0.63727392000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.10561885186620286650E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727392300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.13192132842520797982E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727392600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.15822380498421311473E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727392900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.18452628154321822805E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727393200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.21082875810222334137E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727393500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.23713123466122847627E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727393800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.26343371122023361118E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727394100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.28973618777923870291E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727394400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.31603866433824388100E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727394700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.34234114089724897273E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.36864361745625406446E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.39494609401525924255E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.42124857057426429109E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.44755104713326951236E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727396200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.47385352369227456091E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727396500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.50015600025127969582E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727396800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.52645847681028483073E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727397100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.55276095336928996564E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727397400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.57906342992829510054E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727397700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.60536590648730023545E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.63166838304630528400E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.65797085960531041891E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.68427333616431564018E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.71057581272332068873E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727399200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.73687828928232582363E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727399500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.76318076584133095854E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727399800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.78948324240033600709E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 diff --git a/tests/integration/input_use_cases/9/expected_output_camp.csv b/tests/integration/input_use_cases/9/expected_output_camp.csv deleted file mode 100644 index 278329bc..00000000 --- a/tests/integration/input_use_cases/9/expected_output_camp.csv +++ /dev/null @@ -1,32 +0,0 @@ -time, ENV.temperature, ENV.pressure, ENV.number_density_air, CONC.Ar, CONC.CO2, CONC.H2O, CONC.N2, CONC.O1D, CONC.O, CONC.O2, CONC.O3, CONC.single phase mode.droplet phase.aH2O, CONC.binned aerosol.droplet phase.aH2O - 0.63727390800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000001510E+00, 0.16899999999999998357E-01, 0.00000000000000000000E+00, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.00000000000000000000E+00, 0.15000000000000000000E+01, 0.50999999999999996447E+01 - 0.63727391100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.26711422189187494162E-62, 0.14999999999999997780E+01, 0.50999999999999996447E+01 - 0.63727391400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.53013898748192618276E-62, 0.14999999999999995559E+01, 0.50999999999999996447E+01 - 0.63727391700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.79316375307197742389E-62, 0.14999999999999993339E+01, 0.50999999999999996447E+01 - 0.63727392000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.10561885186620286650E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727392300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.13192132842520797982E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727392600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.15822380498421311473E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727392900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.18452628154321822805E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727393200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.21082875810222334137E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727393500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.23713123466122847627E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727393800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.26343371122023361118E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727394100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.28973618777923870291E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727394400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.31603866433824388100E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727394700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.34234114089724897273E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.36864361745625406446E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.39494609401525924255E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.42124857057426429109E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727395900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.44755104713326951236E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727396200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.47385352369227456091E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727396500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.50015600025127969582E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727396800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.52645847681028483073E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727397100000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.55276095336928996564E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727397400000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.57906342992829510054E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727397700000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.60536590648730023545E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398000000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.63166838304630528400E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398300000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.65797085960531041891E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398600000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.68427333616431564018E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727398900000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.71057581272332068873E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727399200000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.73687828928232582363E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727399500000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.76318076584133095854E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 - 0.63727399800000000000E+11, 0.29800000000000000000E+03, 0.10132500000000000000E+06, 0.40894572562574019514E+02, 0.39200000000000007061E+00, 0.16899999999999998357E-01, 0.40894572562574022296E-64, 0.32899999999999998579E+02, 0.00000000000000000000E+00, 0.00000000000000000000E+00, 0.88399999999999998579E+01, 0.78948324240033600709E-61, 0.14999999999999991118E+01, 0.50999999999999996447E+01 diff --git a/tests/integration/input_use_cases/9/initial.csv b/tests/integration/input_use_cases/9/initial.csv deleted file mode 100644 index 89b6e8a4..00000000 --- a/tests/integration/input_use_cases/9/initial.csv +++ /dev/null @@ -1,2 +0,0 @@ -CONC.N2& CONC.O2& CONC.Ar& CONC.CO2& ENV.temperature& ENV.pressure.atm&CONC.single phase mode.droplet phase.aH2O&CONC.binned aerosol.droplet phase.aH2O -3.29e1& 8.84& 3.92e-1& 1.69e-2& 298.0& 1.0& 1.5& 5.1 diff --git a/tests/integration/input_use_cases/9/run_camp.sh b/tests/integration/input_use_cases/9/run_camp.sh deleted file mode 100755 index 84594919..00000000 --- a/tests/integration/input_use_cases/9/run_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box config_camp.json" -comp_str="../../../../compare_results output.csv expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/9/run_preprocessed_data.sh b/tests/integration/input_use_cases/9/run_preprocessed_data.sh deleted file mode 100755 index c06ee85e..00000000 --- a/tests/integration/input_use_cases/9/run_preprocessed_data.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/9/run_preprocessed_data_camp.sh b/tests/integration/input_use_cases/9/run_preprocessed_data_camp.sh deleted file mode 100755 index a1062f8c..00000000 --- a/tests/integration/input_use_cases/9/run_preprocessed_data_camp.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd "${0%/*}/preprocessor_output" - -exec_str="../../../../../music_box config.json" -comp_str="../../../../../compare_results output.csv ../expected_output_camp.csv 1.0e-3 1.0e-12" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if $comp_str; then - echo PASS - exit 0 - else - echo unexpected results - echo FAIL - exit 1 - fi -fi diff --git a/tests/integration/input_use_cases/9/run_preprocessor_camp.sh b/tests/integration/input_use_cases/9/run_preprocessor_camp.sh deleted file mode 100755 index ded7c39b..00000000 --- a/tests/integration/input_use_cases/9/run_preprocessor_camp.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -# exit on error -set -e -# turn on command echoing -set -v -# make sure that the current directory is the once where this script is -cd ${0%/*} - -exec_str="../../../../music_box --preprocess-only config_camp.json" -exec_str2="./run_preprocessed_data_camp.sh" - -if ! $exec_str; then - echo FAIL - exit 1 -else - if ! $exec_str2; then - echo FAIL - exit 1 - else - echo PASS - exit 0 - fi -fi diff --git a/tests/test_analytical.py b/tests/integration/test_analytical.py similarity index 89% rename from tests/test_analytical.py rename to tests/integration/test_analytical.py index c3eceb56..b1bf43fe 100644 --- a/tests/test_analytical.py +++ b/tests/integration/test_analytical.py @@ -1,4 +1,5 @@ -from acom_music_box import MusicBox +from acom_music_box import MusicBox, Examples +import os import math @@ -8,14 +9,18 @@ def test_run(self): box_model = MusicBox() # configures box model - conditions_path = "configs/analytical_config/my_config.json" - camp_path = "configs/analytical_config/camp_data" - + conditions_path = Examples.Analytical.path box_model.readConditionsFromJson(conditions_path) + + camp_path = os.path.join( + os.path.dirname(conditions_path), + box_model.config_file) + box_model.create_solver(camp_path) # solves and saves output - output = box_model.solve() + df = box_model.solve() + output = [df.columns.values.tolist()] + df.values.tolist() conc_a_index = output[0].index("CONC.A") conc_b_index = output[0].index("CONC.B") diff --git a/tests/test_full_gas_phase_mechanism.py b/tests/integration/test_carbon_bond_5.py similarity index 83% rename from tests/test_full_gas_phase_mechanism.py rename to tests/integration/test_carbon_bond_5.py index 2f104601..cc90b64d 100644 --- a/tests/test_full_gas_phase_mechanism.py +++ b/tests/integration/test_carbon_bond_5.py @@ -1,25 +1,33 @@ -from acom_music_box import MusicBox +from acom_music_box import MusicBox, Examples +import os import csv import math -class TestFullGassPhaseMechanism: +class TestCarbonBond5: def test_run(self): box_model = MusicBox() # configures box model - conditions_path = "configs/full_gas_phase_mechanism_config/my_config.json" - camp_path = "configs/full_gas_phase_mechanism_config/camp_data" - + conditions_path = Examples.CarbonBond5.path box_model.readConditionsFromJson(conditions_path) + + camp_path = os.path.join( + os.path.dirname(conditions_path), + box_model.config_file) + box_model.create_solver(camp_path) # solves and saves output - model_output = box_model.solve() + df = box_model.solve() + model_output = [df.columns.values.tolist()] + df.values.tolist() + + current_dir = os.path.dirname(__file__) + expected_results_path = os.path.join(current_dir, "expected_results/full_gas_phase_mechanism.csv") # read wall_loss_test.csv into test_output - with open("expected_results/full_gas_phase_mechanism.csv", "r") as file: + with open(expected_results_path, "r") as file: reader = csv.reader(file) test_output = list(reader) @@ -116,5 +124,5 @@ def test_run(self): if __name__ == "__main__": - test = TestFullGassPhaseMechanism() + test = TestCarbonBond5() test.test_run() diff --git a/tests/test_chapman.py b/tests/integration/test_chapman.py similarity index 70% rename from tests/test_chapman.py rename to tests/integration/test_chapman.py index d73d0435..930fa393 100644 --- a/tests/test_chapman.py +++ b/tests/integration/test_chapman.py @@ -1,4 +1,6 @@ -from acom_music_box import MusicBox +from acom_music_box import MusicBox, Examples + +import os import csv import math @@ -8,18 +10,24 @@ def test_run(self): box_model = MusicBox() # configures box model - conditions_path = "configs/chapman_config/my_config.json" - camp_path = "configs/chapman_config/camp_data" - + conditions_path = Examples.Chapman.path box_model.readConditionsFromJson(conditions_path) + camp_path = os.path.join( + os.path.dirname(conditions_path), + box_model.config_file) + box_model.create_solver(camp_path) # solves and saves output - model_output = box_model.solve() + df = box_model.solve() + model_output = [df.columns.values.tolist()] + df.values.tolist() + + current_dir = os.path.dirname(__file__) + expected_results_path = os.path.join(current_dir, "expected_results/chapman_test.csv") # read chapman_test.csv into test_output - with open("expected_results/chapman_test.csv", "r") as file: + with open(expected_results_path, "r") as file: reader = csv.reader(file) test_output = list(reader) @@ -53,9 +61,9 @@ def test_run(self): assert math.isclose( float(model_output_concs[i][j]), float(test_output_concs[i][j]), - rel_tol=1e-8, + rel_tol=1e-7, abs_tol=1e-15, - ), f"Arrays differ at index ({i}, {j}) for " + ), f"Arrays differ at index ({i}, {j}) for species {concs_to_test[j]}" if __name__ == "__main__": diff --git a/tests/test_wall_loss.py b/tests/integration/test_flow_tube.py similarity index 68% rename from tests/test_wall_loss.py rename to tests/integration/test_flow_tube.py index c93b62c7..3e00a3e1 100644 --- a/tests/test_wall_loss.py +++ b/tests/integration/test_flow_tube.py @@ -1,4 +1,5 @@ -from acom_music_box import MusicBox +from acom_music_box import MusicBox, Examples +import os import csv import math @@ -9,17 +10,24 @@ def test_run(self): box_model = MusicBox() # configures box model - conditions_path = "configs/wall_loss_config/my_config.json" - camp_path = "configs/wall_loss_config/camp_data" - + conditions_path = Examples.FlowTube.path box_model.readConditionsFromJson(conditions_path) + + camp_path = os.path.join( + os.path.dirname(conditions_path), + box_model.config_file) + box_model.create_solver(camp_path) # solves and saves output - model_output = box_model.solve() + df = box_model.solve() + model_output = [df.columns.values.tolist()] + df.values.tolist() + + current_dir = os.path.dirname(__file__) + expected_results_path = os.path.join(current_dir, "expected_results/wall_loss_test.csv") # read wall_loss_test.csv into test_output - with open("expected_results/wall_loss_test.csv", "r") as file: + with open(expected_results_path, "r") as file: reader = csv.reader(file) test_output = list(reader) @@ -46,7 +54,8 @@ def test_run(self): float(model_output_concs[i][j]), float(test_output_concs[i][j]), rel_tol=1e-8, - ), f"Arrays differ at index ({i}, {j}) for " + abs_tol=1e-8, + ), f"Arrays differ at index ({i}, {j}) for species {concs_to_test[j]}" if __name__ == "__main__": diff --git a/tests/unit/test_callback.py b/tests/unit/test_callback.py new file mode 100644 index 00000000..ade31847 --- /dev/null +++ b/tests/unit/test_callback.py @@ -0,0 +1,34 @@ +from acom_music_box import MusicBox, Examples +import os + + +def callback(df, current_time, current_conditions, total_simulation_time): + print(f"Current time: {current_time} s, total simulation time: {total_simulation_time} s, percentage complete: {current_time / total_simulation_time * 100:.2f}%") + + +class TestCallbackFunction: + def test_run(self, mocker): + box_model = MusicBox() + + conditions_path = Examples.Analytical.path + box_model.readConditionsFromJson(conditions_path) + + camp_path = os.path.join( + os.path.dirname(conditions_path), + box_model.config_file) + + box_model.create_solver(camp_path) + + # Mock the callback function + callback_mock = mocker.Mock(side_effect=callback) + + # Run the solver with the mocked callback + box_model.solve(callback=callback_mock) + + # Assert that the callback was called at least once + callback_mock.assert_called() + + +if __name__ == "__main__": + test = TestCallbackFunction() + test.test_run()