diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 130cd02a..7848f88b 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.1.2 +current_version = 3.2.0 commit = True tag = True @@ -15,6 +15,10 @@ replace = /v{new_version}.svg search = /v{current_version}...main replace = /v{new_version}...main +[bumpversion:file:docs/conf.py] +search = version = release = '{current_version}' +replace = version = release = '{new_version}' + [bumpversion:file:src/geophires_x/__init__.py] search = __version__ = '{current_version}' replace = __version__ = '{new_version}' diff --git a/.cookiecutterrc b/.cookiecutterrc index 12932d91..56ce2fb5 100644 --- a/.cookiecutterrc +++ b/.cookiecutterrc @@ -28,7 +28,7 @@ default_context: command_line_interface_bin_name: "geophires-x" coveralls: "no" distribution_name: "geophires-x" - email: "4056124+softwareengineerprogrammer@users.noreply.github.com" + email: "Koenraad.Beckers@nrel.gov" formatter_quote_style: "single" full_name: "NREL" github_actions: "yes" @@ -36,10 +36,10 @@ default_context: github_actions_windows: "no" license: "MIT license" package_name: "geophires_x" - pre_commit: "no" + pre_commit: "yes" project_name: "geophires-x" project_short_description: "GEOPHIRES-X python package" - pypi_badge: "yes" + pypi_badge: "no" pypi_disable_upload: "yes" release_date: "today" repo_hosting: "github.com" @@ -49,12 +49,12 @@ default_context: repo_username: "NREL" scrutinizer: "no" setup_py_uses_setuptools_scm: "no" - sphinx_docs: "no" + sphinx_docs: "yes" sphinx_docs_hosting: "https://python-geophires-x.readthedocs.io/" sphinx_doctest: "no" - sphinx_theme: "sphinx-rtd-theme" + sphinx_theme: "sphinx-py3doc-enhanced-theme" test_matrix_separate_coverage: "no" - version: 3.1.2 + version: "3.2.0" version_manager: "bump2version" website: "https://github.com/NREL" year_from: "2023" diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index c02dd508..37cb52f6 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -1,5 +1,12 @@ name: build on: [push, pull_request] + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + jobs: test: name: ${{ matrix.name }} @@ -14,18 +21,11 @@ jobs: toxpython: 'python3.11' tox_env: 'check' os: 'ubuntu-latest' -# - name: 'py37 (ubuntu)' -# python: '3.7' -# toxpython: 'python3.7' -# python_arch: 'x64' -# tox_env: 'py37' -# os: 'ubuntu-latest' -# - name: 'py37 (macos)' -# python: '3.7' -# toxpython: 'python3.7' -# python_arch: 'x64' -# tox_env: 'py37' -# os: 'macos-latest' + - name: 'docs' + python: '3.11' + toxpython: 'python3.11' + tox_env: 'docs' + os: 'ubuntu-latest' - name: 'py38 (ubuntu)' python: '3.8' toxpython: 'python3.8' @@ -74,18 +74,13 @@ jobs: python_arch: 'x64' tox_env: 'py311' os: 'macos-latest' -# - name: 'pypy37 (ubuntu)' -# python: 'pypy-3.7' -# toxpython: 'pypy3.7' -# python_arch: 'x64' -# tox_env: 'pypy37' -# os: 'ubuntu-latest' -# - name: 'pypy37 (macos)' -# python: 'pypy-3.7' -# toxpython: 'pypy3.7' -# python_arch: 'x64' -# tox_env: 'pypy37' -# os: 'macos-latest' + - name: 'py311 (windows)' + python: '3.11' + toxpython: 'python3.11' + python_arch: 'x64' + tox_env: 'py311' + os: 'windows-latest' + # - name: 'pypy38 (ubuntu)' # python: 'pypy-3.8' # toxpython: 'pypy3.8' @@ -110,6 +105,7 @@ jobs: # python_arch: 'x64' # tox_env: 'pypy39' # os: 'macos-latest' + steps: - uses: actions/checkout@v3 with: @@ -120,6 +116,7 @@ jobs: architecture: ${{ matrix.python_arch }} - name: install dependencies run: | + python -mpip install --upgrade pip python -mpip install --progress-bar=off -r ci/requirements.txt virtualenv --version pip --version @@ -130,3 +127,48 @@ jobs: TOXPYTHON: '${{ matrix.toxpython }}' run: > tox -e ${{ matrix.tox_env }} -v + + deploy_docs: + name: Deploy docs to GitHub Pages + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-python@v4 + with: + python-version: '3.11' + architecture: 'x64' + - name: install dependencies + run: | + python -mpip install --upgrade pip + python -mpip install --progress-bar=off -r ci/requirements.txt + virtualenv --version + pip --version + tox --version + pip list --format=freeze + + - name: generate docs + env: + TOXPYTHON: '3.11' + run: | + tox -e docs -v + ls -l dist/docs + cp -r dist/docs _site/ + + - name: fix permissions # https://github.com/actions/upload-pages-artifact#file-permissions + run: | + chmod -c -R +rX "_site/" | while read line; do + echo "::warning title=Invalid file permissions automatically fixed::$line" + done + + - name: upload artifact + uses: actions/upload-pages-artifact@v2 + + - name: deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/.gitignore b/.gitignore index 637369bc..679d733a 100644 --- a/.gitignore +++ b/.gitignore @@ -69,8 +69,13 @@ nosetests.xml output/*.html output/*/index.html -# Sphinx +# Sphinx/docs docs/_build +docs/reference/geophires-request.json +docs/reference/parameters.rst +docs/geophires-request.json +docs/parameters.rst +_site/ # Mypy Cache .mypy_cache/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 33407868..e01bb164 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,16 +6,16 @@ exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg|src/geophires_x)(/|$)' # Note the order is intentional to avoid multiple passes of the hooks repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.277 + rev: v0.1.3 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix, --show-fixes] - repo: https://github.com/psf/black - rev: 23.7.0 + rev: 23.10.1 hooks: - id: black - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000..009a913c --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,14 @@ +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details +version: 2 +sphinx: + configuration: docs/conf.py +formats: all +build: + os: ubuntu-22.04 + tools: + python: "3" +python: + install: + - requirements: docs/requirements.txt + - method: pip + path: . diff --git a/AUTHORS.rst b/AUTHORS.rst index 20e214f9..7dc0c0e7 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -2,4 +2,7 @@ Authors ======= -* softwareengineerprogrammer - https://github.com/softwareengineerprogrammer +* Koenraad Beckers - https://github.com/kfbeckers +* Malcolm Ross - https://github.com/malcolm-dsider +* Jonathan Pezzino - https://github.com/softwareengineerprogrammer +* Kevin McCabe (GEOPHIRES v2.0) - kevin.mccabe@nrel.gov diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c7327552..7a9edbbd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,7 +2,22 @@ Changelog ========= -0.0.0 (2023-07-12) ------------------- +GEOPHIRES-X (3.0) (2023) +------------------------ -* First release on PyPI. +- Ported from `malcolm-dsider/GEOPHIRES-X `_ and `softwareengineerprogrammer/python-geophires-x `_ using `ionelmc/cookiecutter-pylibrary `_. +- https://github.com/NREL/python-geophires-x +- Releases now marked with tags/version metadata generated with ``bumpversion`` + +2.0 (2019) +---------- + +* `GEOPHIRES v2.0 `__ +* https://github.com/NREL/GEOPHIRES-v2 +* https://www.nrel.gov/docs/fy18osti/70856.pdf + + +1.0 (2013) +------------ + +* `GEOPHIRES v1 `_ diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 348b2cfc..fa957fa2 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -2,79 +2,135 @@ Contributing ============ -Contributions are welcome, and they are greatly appreciated! Every -little bit helps, and credit will always be given. +Contributions are welcome, and they are greatly appreciated! Don't hesitate -Bug reports +Development =========== -When `reporting a bug `_ please include: +To set up GEOPHIRES-X for local development: - * Your operating system name and version. - * Any details about your local setup that might be helpful in troubleshooting. - * Detailed steps to reproduce the bug. +1. Fork NREL/python-geophires-x on GitHub by going to https://github.com/NREL/python-geophires-x/fork -Documentation improvements -========================== +2. Enable Actions on your fork on GitHub in your fork's Actions tab -geophires-x could always use more documentation, whether as part of the -official geophires-x docs, in docstrings, or even on the web in blog posts, -articles, and such. +3. Enable Pages on your fork on GitHub by going to Settings tab → Pages -> Build and deployment → Set Source to "GitHub Actions" -Feature requests and feedback -============================= +4. Clone your fork locally in a terminal:: -The best way to send feedback is to file an issue at https://github.com/NREL/python-geophires-x/issues. + cd some/path/where-you-have-your-code-projects + git clone git@github.com:/python-geophires-x.git + cd python-geophires-x -If you are proposing a feature: +Local Setup +----------- -* Explain in detail how it would work. -* Keep the scope as narrow as possible, to make it easier to implement. -* Remember that this is a volunteer-driven project, and that code contributions are welcome :) +Prerequisite: Follow fork & clone instructions above. -Development -=========== +Strongly recommended: use a Python IDE such as `PyCharm `__ -To set up `python-geophires-x` for local development: +If you are using PyCharm, first open the the cloned repo by going to File → Open and selecting your ``python-geophires-x`` directory (from the previous steps). +Run commands in a terminal with View → Tool Windows → Terminal -1. Fork `python-geophires-x `_ - (look for the "Fork" button). -2. Clone your fork locally:: +1. `Install virtualenv `__ if you don't have it already. Then set up and activate a virtual environment for the project:: - git clone git@github.com:NREL/python-geophires-x.git + python -m venv venv + source venv/bin/activate -3. Create a branch for local development:: +(If you are using PyCharm, it may prompt you to set up the virtual environment automatically, allowing you to skip this step on the command line) - git checkout -b name-of-your-bugfix-or-feature +2. Install package dependencies (from ``setup.py``):: - Now you can make your changes locally. + pip install -e . -4. When you're done making changes run all the checks and docs builder with one command:: +(PyCharm may prompt you to install dependencies, making this step unnecessary to run on the command line) - tox +3. Install `pre-commit `__ and run the command to configure it for the project (somewhat confusingly also called ``install``):: + + pip install pre-commit + pre-commit install -5. Commit your changes and push your branch to GitHub:: +You're now ready to start making changes and committing them. + +4. To commit changes locally:: git add . git commit -m "Your detailed description of your changes." - git push origin name-of-your-bugfix-or-feature -6. Submit a pull request through the GitHub website. +Note that ``pre-commit`` will run when you run ``git commit``. If your code does not pass automated checks you will have to +add fixed files (or manually fix in some cases). Example:: + + (venv) ➜ python-geophires-x git:(main) ✗ git commit -m "Use __future__ annotations to allow type union syntax in HIP_RA.py" + ruff.....................................................................Passed + black....................................................................Failed + - hook id: black + - files were modified by this hook + + reformatted src/hip_ra/HIP_RA.py + + All done! ✨ 🍰 ✨ + 1 file reformatted. + + trim trailing whitespace.................................................Passed + fix end of files.........................................................Passed + debug statements (python)................................................Passed + (venv) ➜ python-geophires-x git:(main) ✗ git add src/hip_ra/HIP_RA.py && git commit -m "Use __future__ annotations to allow type union syntax in HIP_RA.py" + ruff.....................................................................Passed + black....................................................................Passed + trim trailing whitespace.................................................Passed + fix end of files.........................................................Passed + debug statements (python)................................................Passed + [main 8834d58] Use __future__ annotations to allow type union syntax in HIP_RA.py + 1 file changed, 4 insertions(+), 2 deletions(-) + + +5. Verify that tests pass with your changes. In PyCharm, you can run unit tests by right-clicking the ``tests/`` folder and selecting "Run 'Python tests in tests'". +If you want to be extra thorough you can `run tox locally <#Tox-tests>`_ but in general it is more practical to run unit tests in PyCharm locally and then let GitHub Actions on your fork run the full ``tox`` suite. + +6. Push your changes to your fork:: + + git push + +Then, verify that Actions pass on your commit(s) on GitHub + +6. Submit a pull request through the GitHub website following `the guidelines <#Pull-Request-Guidelines>`_. Pull Request Guidelines ----------------------- -If you need some code review or feedback while you're developing the code just make the pull request. +If you need some code review or feedback while you're developing the code you can make the pull request and set it as a draft. For merging, you should: -1. Include passing tests (run ``tox``). -2. Update documentation when there's new API, functionality etc. -3. Add a note to ``CHANGELOG.rst`` about the changes. -4. Add yourself to ``AUTHORS.rst``. +1. Ensure Actions are passing on your fork. Actions will also be automatically run when you create a PR, and they will need to be passing as a requirement to merge. +2. Add unit test coverage +3. Strive to write clean, self-documenting code. Update documentation which cannot be adequately self-documented. +4. Add yourself to `AUTHORS.rst `__. +5. Major changes may merit a mention in `CHANGELOG.rst `__ + +Tox tests +--------- + +To run all the ``tox`` tests locally:: + + tox + +Note, to combine the coverage data from all the tox environments run: + +.. list-table:: + :widths: 10 90 + :stub-columns: 1 + + - - Windows + - :: + + set PYTEST_ADDOPTS=--cov-append + tox + + - - Other + - :: + + PYTEST_ADDOPTS=--cov-append tox -Tips ----- To run a subset of tests:: @@ -83,3 +139,64 @@ To run a subset of tests:: To run all the test environments in *parallel*:: tox -p auto + + +Test Configuration in VS Code +----------------------------- + +``.vscode/settings.json``: + +.. code-block:: + + { + "python.defaultInterpreterPath": ".tox/py311/bin/python", + "python.testing.unittestEnabled": false, + "python.testing.unittestArgs": [ + "-v", + "-s", + "-p", + "test_*.py" + ], + "python.testing.pytestEnabled": true, + "python.testing.pytestArgs": [ + "-c", + "pytest.ini", + "--no-cov" + ], + "python.analysis.enablePytestExtra": true, + "python.languageServer": "Pylance", + } + + + + +Bug reports +=========== + +When `reporting a bug `_ please include: + + * Your operating system name and version. + * Any details about your local setup that might be helpful in troubleshooting. + * Detailed steps to reproduce the bug. + + +Feature requests and feedback +============================= + +The best way to send feedback is to file an issue at https://github.com/NREL/python-geophires-x/issues. + +If you are proposing a feature: + +* Explain in detail how it would work. +* Keep the scope as narrow as possible, to make it easier to implement. + +Tips +---- + +A working understanding of `git `_ is one of the most beneficial skills you can have when working on software, even if you are not a software engineer. +Although most modern IDEs now provide a reasonable GUI for working with git, learning and using git on the command line is often the most effective way +to become proficient. This is not an easy skill to learn for most, and there is no one tutorial that will substitute for real-world experience. +However the following tutorials may be a good place to start: + +- https://docs.gitlab.com/ee/gitlab-basics/start-using-git.html +- https://githubtraining.github.io/training-manual/#/04_branching_with_git diff --git a/MANIFEST.in b/MANIFEST.in index 0cf96349..63ab19ea 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -12,11 +12,17 @@ include pytest.ini include tox.ini include .pre-commit-config.yaml +include .readthedocs.yml include AUTHORS.rst include CHANGELOG.rst include CONTRIBUTING.rst include LICENSE include README.rst +include How-to-extend-GEOPHIRES-X.md +include geophires-logo.png + +recursive-include References *.pdf +recursive-include References *.txt global-exclude *.py[cod] __pycache__/* *.so *.dylib diff --git a/README.rst b/README.rst index 455ba741..c432ddb0 100644 --- a/README.rst +++ b/README.rst @@ -2,11 +2,16 @@ Overview ======== +|GEOPHIRES Logo| + +.. |GEOPHIRES Logo| image:: geophires-logo.png + :alt: GEOPHIRES Logo + GEOPHIRES is a free and open-source geothermal techno-economic simulator. GEOPHIRES combines reservoir, wellbore, surface plant, and economic models to estimate the capital and operation and maintenance costs, instantaneous and lifetime energy production, and overall levelized cost of energy of a geothermal plant. Various reservoir conditions (EGS, doublets, etc.) and end-use options (electricity, direct-use heat, cogeneration) can be modeled. Users are encouraged to build upon to the GEOPHIRES framework to implement their own correlations and models. -Ported from https://github.com/malcolm-dsider/GEOPHIRES-X and https://github.com/softwareengineerprogrammer/python-geophires-x using https://github.com/ionelmc/cookiecutter-pylibrary/. +GEOPHIRES-X is the successor version to `GEOPHIRES v2.0 `__ (see `CHANGELOG `__ for more info). -* Free software: MIT license +Free software: `MIT license `_ .. start-badges @@ -15,10 +20,12 @@ Ported from https://github.com/malcolm-dsider/GEOPHIRES-X and https://github.com * - tests - | |github-actions| - | * - package - - | |version| |wheel| |supported-versions| |supported-implementations| - | |commits-since| + - | |commits-since| +.. TODO add the following to package badge list once PyPy distribution enabled: |version| |wheel| |supported-versions| |supported-implementations| +.. * - docs +.. - | |docs| + .. |github-actions| image:: https://github.com/NREL/python-geophires-x/actions/workflows/github-actions.yml/badge.svg :alt: GitHub Actions Build Status @@ -40,69 +47,111 @@ Ported from https://github.com/malcolm-dsider/GEOPHIRES-X and https://github.com :alt: Supported implementations :target: https://pypi.org/project/geophires-x -.. |commits-since| image:: https://img.shields.io/github/commits-since/softwareengineerprogrammer/python-geophires-x/v3.1.2.svg +.. |commits-since| image:: https://img.shields.io/github/commits-since/NREL/python-geophires-x/v3.2.0.svg :alt: Commits since latest release - :target: https://github.com/NREL/python-geophires-x/compare/v3.1.2...main + :target: https://github.com/NREL/python-geophires-x/compare/v3.2.0...main +.. |docs| image:: https://readthedocs.org/projects/python-geophires-x/badge/?style=flat + :target: https://nrel.github.io/python-geophires-x + :alt: Documentation Status +.. TODO coverage badge https://github.com/NREL/python-geophires-x/issues/22 .. end-badges +Getting Started +=============== + +Web Interface +------------- + +A web interface is available at `tinyurl.com/geophires `__ + Installation -============ +------------ +Strongly recommended prerequisite: always install in a `virtual environment `__ (rather than global site-packages). -Install the in-development version with:: +To consume GEOPHIRES-X as a python package, install the in-development version with:: pip install https://github.com/NREL/python-geophires-x/archive/main.zip -(Eventually package will be published to PyPi, enabling ``pip install geophires-x``) +.. (Eventually package will be published to PyPi, enabling ``pip install geophires-x``) +If you wish to add your own extensions (as described in `How to extend GEOPHIRES-X `__) one option is to do an `editable install `__:: -Dev Setup -========= + pip install -e git+https://github.com/NREL/python-geophires-x.git#egg=geophires-x -1. Setup and activate virtualenv (https://virtualenv.pypa.io/en/latest/installation.html#via-pip):: +If you are interested in sharing your extensions with others (or even contributing them back to this repository), +follow `the Development instructions `__ instead. - python -m venv venv - source venv/bin/activate +Usage +----- +Example usage: -2. Install dependencies in setup.py:: +.. code:: python - pip install . + from geophires_x_client import GeophiresXClient + from geophires_x_client.geophires_input_parameters import GeophiresInputParameters -3. Setup pre-commit (https://pre-commit.com/):: + client = GeophiresXClient() + result = client.get_geophires_result( + GeophiresInputParameters( + { + 'End-Use Option': 2, + 'Reservoir Model': 1, + 'Time steps per year': 1, + 'Reservoir Depth': 3, + 'Gradient 1': 50, + 'Maximum Temperature': 250, + } + ) + ) - pre-commit install + with open(result.output_file_path,'r') as f: + print(f.read()) +Available parameters are documented in the `Parameters Reference `__. -Documentation -============= +You may also pass parameters as a text file: +.. code:: python -See https://github.com/NREL/python-geophires-x/blob/main/tests/test_geophires_x.py for example usage + from pathlib import Path + from geophires_x_client import GeophiresXClient + from geophires_x_client.geophires_input_parameters import GeophiresInputParameters + # https://github.com/NREL/python-geophires-x/blob/main/tests/examples/example1.txt + example_file_path = Path('tests/examples/example1.txt').absolute() -Development -=========== + client = GeophiresXClient() + result = client.get_geophires_result( + GeophiresInputParameters(from_file_path=example_file_path) + ) -To run all the tests run:: + with open(result.output_file_path,'r') as f: + print(f.read()) - tox -Note, to combine the coverage data from all the tox environments run: +A variety of examples input ``.txt`` files are available in the `tests/examples directory of the repository `__. -.. list-table:: - :widths: 10 90 - :stub-columns: 1 +`test_geophires_x.py `__ has additional examples of how to consume and call `GeophiresXClient `__. + +Documentation +============= - - - Windows - - :: +* `Parameters Reference `__ +* `How to extend GEOPHIRES-X `__ user guide - set PYTEST_ADDOPTS=--cov-append - tox +The `GEOPHIRES v2.0 (previous version's) user manual `__ describes GEOPHIRES's high-level software architecture. - - - Other - - :: +Other Documentation: + +- Theoretical basis for GEOPHIRES: `GEOPHIRES v2.0: updated geothermal techno‐economic simulation tool `__ +- Additional materials in `/References `__ + + +Development +=========== - PYTEST_ADDOPTS=--cov-append tox +See `Development instructions in CONTRIBUTING `__ diff --git a/src/geophires_x/References/Beckers 2013 GEOPHIRES v1.pdf b/References/Beckers 2013 GEOPHIRES v1.pdf similarity index 100% rename from src/geophires_x/References/Beckers 2013 GEOPHIRES v1.pdf rename to References/Beckers 2013 GEOPHIRES v1.pdf diff --git a/src/geophires_x/References/Beckers 2016 Dissertation.pdf b/References/Beckers 2016 Dissertation.pdf similarity index 100% rename from src/geophires_x/References/Beckers 2016 Dissertation.pdf rename to References/Beckers 2016 Dissertation.pdf diff --git a/src/geophires_x/References/Beckers 2018 Introducing GEOPHIRES v2.pdf b/References/Beckers 2018 Introducing GEOPHIRES v2.pdf similarity index 100% rename from src/geophires_x/References/Beckers 2018 Introducing GEOPHIRES v2.pdf rename to References/Beckers 2018 Introducing GEOPHIRES v2.pdf diff --git a/src/geophires_x/References/Beckers 2019 GEOPHIRES v2.pdf b/References/Beckers 2019 GEOPHIRES v2.pdf similarity index 100% rename from src/geophires_x/References/Beckers 2019 GEOPHIRES v2.pdf rename to References/Beckers 2019 GEOPHIRES v2.pdf diff --git a/src/geophires_x/References/GEOPHIRES v2.0 User Manual.pdf b/References/GEOPHIRES v2.0 User Manual.pdf similarity index 100% rename from src/geophires_x/References/GEOPHIRES v2.0 User Manual.pdf rename to References/GEOPHIRES v2.0 User Manual.pdf diff --git a/src/geophires_x/References/LACETable.txt b/References/LACETable.txt similarity index 100% rename from src/geophires_x/References/LACETable.txt rename to References/LACETable.txt diff --git a/src/geophires_x/References/LCOE and LACE Ccalculation methodology_supplement.pdf b/References/LCOE and LACE Calculation methodology_supplement.pdf similarity index 100% rename from src/geophires_x/References/LCOE and LACE Ccalculation methodology_supplement.pdf rename to References/LCOE and LACE Calculation methodology_supplement.pdf diff --git a/ci/bootstrap.py b/ci/bootstrap.py index f3c9a7ea..1a236566 100755 --- a/ci/bootstrap.py +++ b/ci/bootstrap.py @@ -59,7 +59,9 @@ def main(): # This uses sys.executable the same way that the call in # cookiecutter-pylibrary/hooks/post_gen_project.py # invokes this bootstrap.py itself. - for line in subprocess.check_output([sys.executable, '-m', 'tox', '--listenvs'], universal_newlines=True).splitlines() + for line in subprocess.check_output( + [sys.executable, '-m', 'tox', '--listenvs'], universal_newlines=True + ).splitlines() ] tox_environments = [line for line in tox_environments if line.startswith('py')] for template in templates_path.rglob('*'): diff --git a/ci/templates/.github/workflows/github-actions.yml b/ci/templates/.github/workflows/github-actions.yml index 58686cc5..bd3d6389 100644 --- a/ci/templates/.github/workflows/github-actions.yml +++ b/ci/templates/.github/workflows/github-actions.yml @@ -14,12 +14,17 @@ jobs: toxpython: 'python3.11' tox_env: 'check' os: 'ubuntu-latest' + - name: 'docs' + python: '3.11' + toxpython: 'python3.11' + tox_env: 'docs' + os: 'ubuntu-latest' {% for env in tox_environments %} {% set prefix = env.split('-')[0] -%} {% if prefix.startswith('pypy') %} -{% set python %}pypy-{{ prefix[4] }}.{{ prefix[5] }}{% endset %} +{% set python %}pypy-{{ prefix[4] }}.{{ prefix[5:] }}{% endset %} {% set cpython %}pp{{ prefix[4:5] }}{% endset %} -{% set toxpython %}pypy{{ prefix[4] }}.{{ prefix[5] }}{% endset %} +{% set toxpython %}pypy{{ prefix[4] }}.{{ prefix[5:] }}{% endset %} {% else %} {% set python %}{{ prefix[2] }}.{{ prefix[3:] }}{% endset %} {% set cpython %}cp{{ prefix[2:] }}{% endset %} diff --git a/docs/How-to-extend-GEOPHIRES-X.md b/docs/How-to-extend-GEOPHIRES-X.md new file mode 100644 index 00000000..56de6b54 --- /dev/null +++ b/docs/How-to-extend-GEOPHIRES-X.md @@ -0,0 +1,123 @@ +# How to extend GEOPHIRES X + +Decide which object(s) (Reservoir, Wellbores, Surface Plant, and/or Economics) you are going to extend. In this example, I will extend Economics. + +Make a new file named the same as the class name you will use. In this case, I will create EcononomicsAddons. Add it to your project if you are using a development environment like PyCharm or Visual Studio. + +In the Models class, add an import statement for the class you are making. In this case, the line looks like this: + +```python +from EconomicsAddons import * +``` + +In the `__init__` method of the Models class, initialize your new class. In this case, the line looks like this: + +```python +self.economics = EconomicsAddOns(self) +``` + +Fill that new file with this template, changing the class name and imports as appropriate: + +```python +import math +import sys +import numpy as np +import numpy_financial as npf +import Model +import Economics +from OptionList import EndUseOptions +from Parameter import intParameter, floatParameter, listParameter, OutputParameter +from Units import * + +class EconomicsAddOns(Economics.Economics): + def __init__(self, model): + model.logger.info("Init " + str(__class__) + ": " + sys._getframe( ).f_code.co_name) + + #Set up all the Parameters that will be predefined by this class using + #the different types of parameter classes. + # [...] + + #local variables that need initialization + # [...] + + #results + # [...] + + model.logger.info("Complete "+ str(__class__) + ": " + sys._getframe( ).f_code.co_name) + + def __str__(self): + return "EconomicsAddOns" + + def read_parameters(self, model) -> None: + model.logger.info("Init " + str(__class__) + ": " + sys._getframe( ).f_code.co_name) + + #Deal with all the parameter values that the user has provided. + # [...] + + model.logger.info("complete "+ str(__class__) + ": " + sys._getframe( ).f_code.co_name) + + def Calculate(self, reserv, wellbores, surfaceplant, model) -> None: + model.logger.info("Init " + str(__class__) + ": " + sys._getframe( ).f_code.co_name) + + #This is where all the calculations are made using all the values that + #have been set. + # [...] + + model.logger.info("complete "+ str(__class__) + ": " + sys._getframe( ).f_code.co_name) + +``` + +Note the class definition: `class EconomicsAddOns(Economics.Economics):` – it must contain a reference to the parent class (in this case, Economics). Set it to the appropriate class for your needs. Note that multiple inheritances are also possible but not needed in this case. + +Also note the import command `from Economics import *` – it imports all the information about the parent class. Set it to the appropriate class for your needs. + +Note that the `model` class is passed into all these methods. This is the wrapper class in which all the objects live. It contains values that are useful to all classes, like `logger`. + +For the `__init__` method, you need to decide if you want to initialize the parent class (in this case, Economics), or not. Initializing it means that all the Parameters and variables in the parent class will be created and will be available for you to use in your methods. If you don’t want those variables and methods, don’t initialize the parent. The parent is initialized by adding the following line of code to the __init__ method right at the beginning, right after the logging is started, in the middle as needed, or right at the end, right before the logging stops. You would choose to initial at the beginning if some of the parent parameters/variables will be used in your initialization. If not, you can do it at the end. For initialization, it probably doesn’t matter when you call it. + +```python + super().__init__(model) +``` + +The `read_parameter` method checks the list of parameters that the user has specified new values for in the text file and updates the class parameters with those values after validating them. It also allows programmers ti deal with any special cases that arise when the user changes a value – a change of value to one parameter might require an update to another unrelated Parameter. For the read_parameters method, you need to make the same choice about running the parent class method of the same name, or not. If you initialized the parameters of the parent in __init__, you should probably read the user Parameters for any changes that the user wants to make to those parameters. Use this call to do that: + +```python + super().read_parameters(model) +``` + +For the Calculate method, make the same choice about running the parent class method of the same name, or not. If you initialized the parameters of the parent in __init__, and read the parameters, you should probably Calculate the values based on those parameters. Those results and available to you in your calculations in this class if you do this. Use this call to do that: + +```python + super().Calculate(model) +``` + +Note that for the Calculate method, the model class is passed in to give access to the logger but also to all the other classes (reserve, surfaceplant, etc) since they are attributes of the Model wrapper class. Calculations tend to depend on the other classes. In the case, my Economic AddOns use information for nearly all the other classes. + +Now start coding your methods. In the `__init__` method, you need to decide what your Parameters will be. For each one, you need to use the appropriate class constructor; for an integer, intParameter; for a float, floatParameter; etc. For each Parameter, you must specify its name, value, default value, and valid range (if int or float). Optionally, you can specify: +1. Required (Boolean): is it required to run? default value = False +1. ErrMessage (string): what GEOPHIRES will report if the value provided is invalid. Default = "assume default value (see manual)") +1. ToolTipText (string): when there is a GUI, this is the text that the user will see. Default = "This is ToolTip Text") +1. UnitType (Unit Type enumeration): the type of units associated with this parameter (length, temperature, density, etc). Default = Units.NONE +1. CurrentUnits (Unit enumeration): what the units are for this parameter (meters, Celcius, gm/cc, etc. Default = Units:NONE) +1. PreferredUnits (units: usually equal to CurrentUnits, but these are the units that the calculations assume when running. Default - Units.NONE + +UnitType, CurrentUnits, and PreferredUnits are the attributes that allow GEOPHIRESX to handle unit and currency conversions. If you don’t want to use that functionality, don’t use them. If you do, see the code examples to see how this works. + +In the `__init__` method, you must also decide what your local variables will be, and what values they will start with. + +In the `__init__` method, you need to decide what your OutputParameters will be (they will be calculated with your Calculate method and will be available to other classes for use and output). For each one, you need to use the class constructor OutputParameter. You must set its name and value. Note that value is of type “Any” – that means it can be assigned an int, float, bool, list, etc. Optionally, you can set: +1. ToolTipText: see above +1. UnitType: see above +1. PreferredUnits: see above +1. CurrentUnits: See above + +In the `__init__` method, note the use of two dictionaries: ParameterDict and OutputParameterDict. When a Parameter or OutputParameter is created, it is also added to the dictionary. These dictionaries are publicly available and give access to all the parameters. These get used in several ways, so stick to the convention of using them as you see them used in the parent classes. + +In the `read_parameter` method, you need to decide if any of your parameters need special processing once they have been read in and modified by a user value change. The ReadParameter() utility function should be used to deal with all the parameters read in that apply to your Object, but if a change to any of your parameters triggers other actions, insert code here to handle those actions – see parent classes for how that is done. + +In the Calculate method, insert the code you need to make your calculations. You can use the input parameters, local variables, all parameters (input and output) from other classes in your calculations, but note: +1. Think carefully about the ordering of the calculations, and when the values you wish to use are valid. If you are extending the Reservoir object, note that the parent Reservoir output parameters are only valid after the parent class Calculate method has been run. It may also be possible that output values from one class may be altered later by the Calculate method on other classes. GEOPHIRES-X core code tries to avoid this, as it is confusing, but it is possible, so know your variables! +1. The parent class as input parameters which will be set to valid default values after the parent __init__ method is called, but note that any of these values could be changed when the read_parameter method for that class is called. And other unrelated parameters might also change due to dependencies, so don’t rely on the input parameters to be finalized until after read_parameter on the parent has run. Normally, input parameters for a class don’t change after read_parameter for that class has run, but it does happen sometimes. GEOPHIRES-X core code tries to avoid this, as it is confusing, but it is possible, so know your variables! +1. Be careful how you modify the class variables. If you modify a parent variable or parameter by referring to it using the “self.” construct, then you are modifying the local copy of it associated with it in your class, just like if you run a method of a class using the self.method_name() construction, you are running the local class copy of your method (running any changes you made as well). If you don’t override the method, then you will run the parent method, even if you refer to it with self. If you want to access or modify the parent variables, Parameters, or methods, you can refer to them explicitly – recall that the model class is passed into your class and its mthods, so you can access model.reserv, which would give you direct access to the parent Reservoir model, model.surfaceplant to refer to SurfacePlant, and so on. + +Once you are done with your Calculations, you also are likely to want to show them to your users. This is usually accomplished by creating an OuputClass that has the sole job of writing your results to the output file. In this case, look at the class OutputsAddOns. Note that its parent is Outputs, in which the outputs for the base classes are integrated and reported. The method PrintOutputs open the output file (HDR.out) and uses formatted text strings to write values into the file. Note that you can write single values, or loop thru arrays of values. You can also access and report values from other classes and parents – especially if your Calculate modified them. You should assume that all the outputs from the other classes were reported before you modified them. For example, the Net Present Value (NPV) of the project is recalculated in the EconomicAddons method of my extension because my economic AddOns changes the income, expenses, and profits of the project. I assume that the NPV value has been written to the output file value already (and it represents the NPV of the project before the AddOns). I report the NPV again when I report the outputs of my class, and I note in the text that this is an update to Project NPV based on the AddOns. To make sure of that logic, I have a local output parameter called NPV and I modify and report that without change the NPV output parameter in the Economics class. diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000..b0de0308 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,48 @@ +import sphinx_py3doc_enhanced_theme + +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.coverage', + 'sphinx.ext.doctest', + 'sphinx.ext.extlinks', + 'sphinx.ext.ifconfig', + 'sphinx.ext.napoleon', + 'sphinx.ext.todo', + 'sphinx.ext.viewcode', + 'm2r2', +] +source_suffix = ['.rst', '.md'] +master_doc = 'index' +project = 'geophires-x' +year = '2023' +author = 'NREL' +copyright = f'{year}, {author}' +version = release = '3.2.0' + +pygments_style = 'trac' +templates_path = ['./templates'] +extlinks = { + 'issue': ('https://github.com/NREL/python-geophires-x/issues/%s', '#'), + 'pr': ('https://github.com/NREL/python-geophires-x/pull/%s', 'PR #'), +} + +# html_theme = 'alabaster' # alternative possible theme + +html_theme = 'sphinx_py3doc_enhanced_theme' +html_theme_path = [sphinx_py3doc_enhanced_theme.get_html_theme_path()] +html_theme_options = { + 'githuburl': 'https://github.com/NREL/python-geophires-x/', +} + +html_use_smartypants = True +html_last_updated_fmt = '%b %d, %Y' +html_split_index = False +html_sidebars = { + '**': ['searchbox.html', 'globaltoc.html', 'sourcelink.html'], +} +html_short_title = f'{project}-{version}' + +napoleon_use_ivar = True +napoleon_use_rtype = False +napoleon_use_param = False diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 00000000..3982bbaa --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,18 @@ +======== +Contents +======== + +.. toctree:: + :maxdepth: 2 + + overview + parameters + How-to-extend-GEOPHIRES-X +.. reference/index + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/overview.rst b/docs/overview.rst new file mode 100644 index 00000000..19c9fdea --- /dev/null +++ b/docs/overview.rst @@ -0,0 +1,9 @@ +============================ +GEOPHIRES-X Reference Manual +============================ + +This reference manual is a supplement to the README in the GitHub repository. + ++ :doc:`parameters` + ++ :doc:`How-to-extend-GEOPHIRES-X` diff --git a/docs/reference/geophires_x.rst b/docs/reference/geophires_x.rst new file mode 100644 index 00000000..9f7d466a --- /dev/null +++ b/docs/reference/geophires_x.rst @@ -0,0 +1,34 @@ +geophires_x +=========== + +.. testsetup:: + + from geophires_x import * + +.. automodule:: geophires_x + :members: + +.. automodule:: geophires_x.TDPReservoir + :members: + +.. automodule:: geophires_x.CylindricalReservoir + :members: + + +.. automodule:: geophires_x.WellBores + :members: + +.. automodule:: geophires_x.AGSWellBores + :members: + +.. automodule:: geophires_x.SurfacePlant + :members: + +.. automodule:: geophires_x.AGSSurfacePlant + :members: + +.. automodule:: geophires_x.Economics + :members: + +.. automodule:: geophires_x.AGSEconomics + :members: diff --git a/docs/reference/geophires_x_client.rst b/docs/reference/geophires_x_client.rst new file mode 100644 index 00000000..526cf729 --- /dev/null +++ b/docs/reference/geophires_x_client.rst @@ -0,0 +1,7 @@ +geophires_x_client +================== + + +.. automodule:: geophires_x_client + :members: + :undoc-members: diff --git a/docs/reference/index.rst b/docs/reference/index.rst new file mode 100644 index 00000000..04cd10f7 --- /dev/null +++ b/docs/reference/index.rst @@ -0,0 +1,8 @@ +Python Modules +============== + +.. toctree:: + :glob: + + geophires_x_client + geophires_x diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..1b8df5e7 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,3 @@ +sphinx>=1.3 +sphinx-py3doc-enhanced-theme +m2r2 diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt new file mode 100644 index 00000000..f95eb78d --- /dev/null +++ b/docs/spelling_wordlist.txt @@ -0,0 +1,11 @@ +builtin +builtins +classmethod +staticmethod +classmethods +staticmethods +args +kwargs +callstack +Changelog +Indices diff --git a/docs/templates/layout.html b/docs/templates/layout.html new file mode 100644 index 00000000..82c9bf90 --- /dev/null +++ b/docs/templates/layout.html @@ -0,0 +1,16 @@ +{% extends "!layout.html" %} + +{%- block extrahead %} + +{% endblock %} diff --git a/geophires-logo.png b/geophires-logo.png new file mode 100644 index 00000000..00b4df1d Binary files /dev/null and b/geophires-logo.png differ diff --git a/pyproject.toml b/pyproject.toml index c82c5900..9dff3948 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,10 @@ requires = [ [tool.ruff] extend-exclude = ["static", "ci/templates", "src/geophires_x"] + +# Incrementally add files to this list as they are cleaned up +extend-include=["src/geophires_x/GEOPHIRESv3.py"] + ignore = [ "RUF001", # ruff-specific rules ambiguous-unicode-character-string "S101", # flake8-bandit assert @@ -18,8 +22,9 @@ ignore = [ "PTH120", "PTH123", "PT009", + "PT027", # "Use `pytest.raises` instead of unittest-style `assertRaises`"...meh ] -line-length = 140 +line-length = 120 select = [ "B", # flake8-bugbear "C4", # flake8-comprehensions @@ -42,7 +47,7 @@ select = [ "W", # pycodestyle warnings ] src = ["src", "tests"] -target-version = "py37" +target-version = "py38" [tool.ruff.flake8-pytest-style] fixture-parentheses = false @@ -53,8 +58,8 @@ forced-separate = ["conftest"] force-single-line = true [tool.black] -line-length = 140 -target-version = ["py37"] +line-length = 120 +target-version = ["py38"] skip-string-normalization = true [tool.ruff.flake8-quotes] diff --git a/setup.py b/setup.py index bc2342b9..67b4da27 100755 --- a/setup.py +++ b/setup.py @@ -13,15 +13,15 @@ def read(*names, **kwargs): setup( name='geophires-x', - version='3.1.2', + version='3.2.0', license='MIT', - description='Distributable python package version of https://github.com/malcolm-dsider/GEOPHIRES-X', + description='GEOPHIRES is a free and open-source geothermal techno-economic simulator.', long_description='{}\n{}'.format( re.compile('^.. start-badges.*^.. end-badges', re.M | re.S).sub('', read('README.rst')), re.sub(':[a-z]+:`~?(.*?)`', r'``\1``', read('CHANGELOG.rst')), ), author='NREL', - author_email='4056124+softwareengineerprogrammer@users.noreply.github.com', + author_email='Koenraad.Beckers@nrel.gov', url='https://github.com/NREL/python-geophires-x', packages=find_packages('src'), package_dir={'': 'src'}, @@ -56,10 +56,9 @@ def read(*names, **kwargs): project_urls={ 'Changelog': 'https://github.com/NREL/python-geophires-x/blob/master/CHANGELOG.rst', 'Issue Tracker': 'https://github.com/NREL/python-geophires-x/issues', + 'Documentation': 'https://nrel.github.io/python-geophires-x-nrel/', }, - keywords=[ - # eg: "keyword1", "keyword2", "keyword3", - ], + keywords=['geothermal'], python_requires='>=3.7', install_requires=[ 'numpy', diff --git a/src/geophires_x/AGSSurfacePlant.py b/src/geophires_x/AGSSurfacePlant.py index 21b8ba43..723dc9bb 100644 --- a/src/geophires_x/AGSSurfacePlant.py +++ b/src/geophires_x/AGSSurfacePlant.py @@ -138,7 +138,8 @@ def __init__(self, model: Model): ) # Input data for electricity generation with CO2 - self.Turbine_isentropic_efficiency = self.ParameterDict[self.Turbine_isentropic_efficiency.Name] = floatParameter( + self.Turbine_isentropic_efficiency = self.ParameterDict[ + self.Turbine_isentropic_efficiency.Name] = floatParameter( "Isentropic Efficiency for CO2 Turbine", value=0.9, DefaultValue=0.9, @@ -162,7 +163,8 @@ def __init__(self, model: Model): Required=False, ErrMessage="assume default Conversion efficiency from mechanical turbine work to electricity (0.98)" ) - self.Compressor_isentropic_efficiency = self.ParameterDict[self.Compressor_isentropic_efficiency.Name] = floatParameter( + self.Compressor_isentropic_efficiency = self.ParameterDict[ + self.Compressor_isentropic_efficiency.Name] = floatParameter( "Isentropic Efficiency for CO2 Compressor", value=0.9, DefaultValue=0.9, @@ -240,14 +242,16 @@ def __init__(self, model: Model): PreferredUnits=EnergyUnit.KWH, CurrentUnits=EnergyUnit.KWH ) - self.FirstYearElectricityProduction = self.OutputParameterDict[self.FirstYearElectricityProduction.Name] = OutputParameter( + self.FirstYearElectricityProduction = self.OutputParameterDict[ + self.FirstYearElectricityProduction.Name] = OutputParameter( Name="Electricity Produced in the First Year", value=-999.0, UnitType=Units.ENERGY, PreferredUnits=EnergyUnit.KWH, CurrentUnits=EnergyUnit.KWH ) - self.AveInstNetElectricityProduction = self.OutputParameterDict[self.AveInstNetElectricityProduction.Name] = OutputParameter( + self.AveInstNetElectricityProduction = self.OutputParameterDict[ + self.AveInstNetElectricityProduction.Name] = OutputParameter( Name="Average Net Daily Electricity Production", value=-999.0, UnitType=Units.POWER, @@ -343,103 +347,89 @@ def verify(self, model: Model) -> int: :return: 0 if all OK, 1 if error. :doc-author: Koenraad Beckers """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'Init {str(__class__)}: {sys._getframe().f_code.co_name}') self.error = 0 + errors = [] + + def on_invalid_parameter_value(err_msg): + errors.append(err_msg) + print(err_msg) + model.logger.fatal(err_msg) + self.error = 1 + if self.T0 < 278.15 or self.T0 > 303.15: - print("Error: CLGS model database imposes additional range restrictions: Dead-state temperature must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Dead-state temperature must be \ between 278.15 and 303.15 K. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Dead-state temperature must be \ - between 278.15 and 303.15 K. Simulation terminated.") - self.error = 1 if self.P0.value < 0.8e5 or self.P0.value > 1.1e5: - print("Error: CLGS model database imposes additional range restrictions: Dead state pressure must be \ - between 0.8e5 and 1.1e5 Pa. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Dead state pressure must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Dead state pressure must be \ between 0.8e5 and 1.1e5 Pa. Simulation terminated.") - self.error = 1 if self.Pump_efficiency < 0.5 or self.Pump_efficiency > 1: - print("Error: CLGS model database imposes additional range restrictions: Pump efficiency must be \ - between 0.5 and 1. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Pump efficiency must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Pump efficiency must be \ between 0.5 and 1. Simulation terminated.") - self.error = 1 if self.Lifetime < 5 or self.Lifetime > 40: - print("Error: CLGS model database imposes additional range restrictions: System lifetime must be \ - between 5 and 40 years. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: System lifetime must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: System lifetime must be \ between 5 and 40 years. Simulation terminated.") - self.error = 1 if not isinstance(self.Lifetime, int): - print("Error: CLGS model database imposes additional range restrictions: System lifetime must be \ - an integer. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: System lifetime must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: System lifetime must be \ an integer. Simulation terminated.") - self.error = 1 if self.Turbine_isentropic_efficiency.value < 0.8 or self.Turbine_isentropic_efficiency.value > 1: - print("Error: CLGS model database imposes additional range restrictions: Turbine isentropic efficiency must \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Turbine isentropic efficiency must \ be between 0.8 and 1. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Turbine isentropic efficiency must \ - be between 0.8 and 1. Simulation terminated.") - self.error = 1 if self.Generator_efficiency.value < 0.8 or self.Generator_efficiency.value > 1: - print("Error: CLGS model database imposes additional range restrictions: Generator efficiency must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Generator efficiency must be \ between 0.8 and 1. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Generator efficiency must be \ - between 0.8 and 1. Simulation terminated.") - self.error = 1 if self.Compressor_isentropic_efficiency.value < 0.8 or self.Compressor_isentropic_efficiency.value > 1: - print("Error: CLGS model database imposes additional range restrictions: Compressor isentropic efficiency \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Compressor isentropic efficiency \ must be between 0.8 and 1. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Compressor isentropic efficiency \ - must be between 0.8 and 1. Simulation terminated.") - self.error = 1 if self.Pre_Cooling_Delta_T.value < 0 or self.Pre_Cooling_Delta_T.value > 15: - print("Error: CLGS model database imposes additional range restrictions: CO2 temperature decline after turbine \ - and before compressor must be between 0 and 15 degrees C. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: CO2 temperature decline after turbine \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: CO2 temperature decline after turbine \ and before compressor must be between 0 and 15 degrees C. Simulation terminated.") - self.error = 1 if self.Turbine_outlet_pressure.value < 75 or self.Turbine_outlet_pressure.value > 200: - print("Error: CLGS model database imposes additional range restrictions: Turbine outlet pressure must be \ - between 75 and 200 bar. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Turbine outlet pressure must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Turbine outlet pressure must be \ between 75 and 200 bar. Simulation terminated.") - self.error = 1 if self.error > 0: - print("Error: GEOPHIRES failed to Failed to validate CLGS surfaceplant input value. Exiting....") - sys.exit() - model.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + subErrors = '\n'.join(errors) + msg = f'Error: GEOPHIRES failed to validate CLGS surfaceplant input value(s):\n{subErrors}' + print(msg) + raise RuntimeError(msg) + + model.logger.info(f'complete {str(__class__)}: {sys._getframe().f_code.co_name}') return self.error def calculatepumpingpower(self, model): # Calculate pumping power - self.PumpingPower = (self.P_in - self.Linear_production_pressure) * model.wellbores.prodwellflowrate.value / self.Average_fluid_density / self.Pump_efficiency / 1e3 # Pumping power [kW] + self.PumpingPower = ( + self.P_in - self.Linear_production_pressure) * model.wellbores.prodwellflowrate.value / self.Average_fluid_density / self.Pump_efficiency / 1e3 # Pumping power [kW] # Set negative values to zero (if the production pressure is above the injection pressure, we throttle the fluid) self.PumpingPower[self.PumpingPower < 0] = 0 - self.Annual_pumping_power = 8760 / 5 * (self.PumpingPower[0::4][0:-1] + self.PumpingPower[1::4] + self.PumpingPower[2::4] + self.PumpingPower[3::4] + self.PumpingPower[4::4]) # kWh + self.Annual_pumping_power = 8760 / 5 * ( + self.PumpingPower[0::4][0:-1] + self.PumpingPower[1::4] + self.PumpingPower[2::4] + self.PumpingPower[ + 3::4] + self.PumpingPower[ + 4::4]) # kWh def calculateheatproduction(self, model): # Calculate instantaneous heat production self.Average_fluid_density = interpn((model.wellbores.Pvector, model.wellbores.Tvector), - model.wellbores.density, np.dstack((0.5 * self.P_in + 0.5 * self.Linear_production_pressure, - 0.5 * model.wellbores.Tinj.value + 0.5 * - self.Linear_production_temperature + 273.15))[0]) + model.wellbores.density, + np.dstack((0.5 * self.P_in + 0.5 * self.Linear_production_pressure, + 0.5 * model.wellbores.Tinj.value + 0.5 * + self.Linear_production_temperature + 273.15))[0]) self.hprod = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.enthalpy, np.dstack((self.Linear_production_pressure, self.Linear_production_temperature + 273.15))[ 0]) self.hinj = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.enthalpy, np.array([self.P_in, model.wellbores.Tinj.value + 273.15])) self.Instantaneous_heat_production = model.wellbores.prodwellflowrate.value * ( - self.hprod - self.hinj) / 1000 # Heat production based on produced minus injected enthalpy [kW] + self.hprod - self.hinj) / 1000 # Heat production based on produced minus injected enthalpy [kW] # Calculate annual heat production (kWh) self.Annual_heat_production = 8760 / 5 * (self.Instantaneous_heat_production[0::4][0:-1] + - self.Instantaneous_heat_production[1::4] + - self.Instantaneous_heat_production[2::4] + - self.Instantaneous_heat_production[3::4] + - self.Instantaneous_heat_production[4::4]) + self.Instantaneous_heat_production[1::4] + + self.Instantaneous_heat_production[2::4] + + self.Instantaneous_heat_production[3::4] + + self.Instantaneous_heat_production[4::4]) # Calculate average heat production self.AveAnnualHeatProduction = np.average(self.Annual_heat_production) # kWh @@ -459,20 +449,22 @@ def calculateelectricityproduction(self, model): self.h_inj = self.hinj # injected enthalpy [J/kg] # produced entropy [J/kg/K] self.s_prod = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.entropy, - np.dstack((self.Linear_production_pressure, self.Linear_production_temperature + 273.15))[0]) + np.dstack((self.Linear_production_pressure, self.Linear_production_temperature + 273.15))[ + 0]) self.s_inj = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.entropy, np.array([self.P_in, model.wellbores.Tinj.value + 273.15])) # injected entropy [J/kg/K] self.Instantaneous_exergy_production = (model.wellbores.prodwellflowrate.value * ( - self.h_prod - self.h_0 - model.surfaceplant.T0 * (self.s_prod - self.s_0))) / 1000 # [kW] + self.h_prod - self.h_0 - model.surfaceplant.T0 * (self.s_prod - self.s_0))) / 1000 # [kW] self.Instantaneous_exergy_extraction = (model.wellbores.prodwellflowrate.value * ( - self.h_prod - self.h_inj - model.surfaceplant.T0 * (self.s_prod - self.s_inj))) / 1000 # [kW] + self.h_prod - self.h_inj - model.surfaceplant.T0 * (self.s_prod - self.s_inj))) / 1000 # [kW] self.AverageInstNetExergyProduction = np.average(self.Instantaneous_exergy_production) # [kW] self.AverageInstNetExergyExtraction = np.average(self.Instantaneous_exergy_extraction) # [kW] if model.wellbores.Fluid.value == WorkingFluid.WATER: - if model.wellbores.Tinj.value >= 50 and min(self.Linear_production_temperature) >= 100 and max(self.Linear_production_temperature) <= 385: + if model.wellbores.Tinj.value >= 50 and min(self.Linear_production_temperature) >= 100 and max( + self.Linear_production_temperature) <= 385: # Utilization efficiency based on conversion of produced exergy to electricity self.Instantaneous_utilization_efficiency_method_1 = np.interp(self.Linear_production_temperature, self.Utilization_efficiency_correlation_temperatures, @@ -494,11 +486,12 @@ def calculateelectricityproduction(self, model): self.Instantaneous_electricity_production_method_3 = np.zeros(len(self.Time_array)) # based on method 1 for now (could be 50-50) - self.Annual_electricity_production = 8760 / 5 * (self.Instantaneous_electricity_production_method_1[0::4][0:-1] + - self.Instantaneous_electricity_production_method_1[1::4] + - self.Instantaneous_electricity_production_method_1[2::4] + - self.Instantaneous_electricity_production_method_1[3::4] + - self.Instantaneous_electricity_production_method_1[4::4]) + self.Annual_electricity_production = 8760 / 5 * ( + self.Instantaneous_electricity_production_method_1[0::4][0:-1] + + self.Instantaneous_electricity_production_method_1[1::4] + + self.Instantaneous_electricity_production_method_1[2::4] + + self.Instantaneous_electricity_production_method_1[3::4] + + self.Instantaneous_electricity_production_method_1[4::4]) self.Inst_electricity_production = self.Instantaneous_electricity_production_method_1 # kW self.AveInstElectricityProduction = np.average(self.Instantaneous_electricity_production_method_1) # kW @@ -510,7 +503,7 @@ def calculateelectricityproduction(self, model): np.dstack((np.ones(self.TNOP) * self.Turbine_outlet_pressure.value * 1e5, self.s_prod))[0]) self.Instantaneous_turbine_power = model.wellbores.prodwellflowrate.value * ( - self.h_prod - h_turbine_out_ideal) * self.Turbine_isentropic_efficiency.value / 1000 # Turbine output [kW] + self.h_prod - h_turbine_out_ideal) * self.Turbine_isentropic_efficiency.value / 1000 # Turbine output [kW] h_turbine_out_actual = self.h_prod - self.Instantaneous_turbine_power / model.wellbores.prodwellflowrate.value * 1000 # Actual fluid enthalpy at turbine outlet [J/kg] self.T_turbine_out_actual = interpn((model.wellbores.Pvector_ap, model.wellbores.hvector_ap), model.wellbores.TPh, np.dstack( @@ -527,7 +520,8 @@ def calculateelectricityproduction(self, model): [self.Turbine_outlet_pressure.value * 1e5, self.Pre_cooling_temperature + 273.15])) # Pre-compressor cooling [kWth] - Pre_cooling = model.wellbores.prodwellflowrate.value * (h_turbine_out_actual - Pre_compressor_h) / 1e3 + Pre_cooling = model.wellbores.prodwellflowrate.value * ( + h_turbine_out_actual - Pre_compressor_h) / 1e3 Pre_compressor_s = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.entropy, np.array( [self.Turbine_outlet_pressure.value * 1e5, self.Pre_cooling_temperature + 273.15])) @@ -535,13 +529,16 @@ def calculateelectricityproduction(self, model): Post_compressor_h_ideal = interpn((model.wellbores.Pvector_ap, model.wellbores.svector_ap), model.wellbores.hPs, np.array([self.P_in, Pre_compressor_s[0]])) # Actual fluid enthalpy at compressor outlet [J/kg] - Post_compressor_h_actual = Pre_compressor_h + (Post_compressor_h_ideal - Pre_compressor_h) / self.Compressor_isentropic_efficiency.value + Post_compressor_h_actual = Pre_compressor_h + ( + Post_compressor_h_ideal - Pre_compressor_h) / self.Compressor_isentropic_efficiency.value self.Post_compressor_T_actual = interpn((model.wellbores.Pvector_ap, model.wellbores.hvector_ap), model.wellbores.TPh, np.array([self.P_in, Post_compressor_h_actual[0]])) - 273.15 - Compressor_Work = model.wellbores.prodwellflowrate.value * (Post_compressor_h_actual - Pre_compressor_h) / 1e3 # kWe + Compressor_Work = model.wellbores.prodwellflowrate.value * ( + Post_compressor_h_actual - Pre_compressor_h) / 1e3 # kWe # Fluid cooling after compression [kWth] - Post_cooling = model.wellbores.prodwellflowrate.value * (Post_compressor_h_actual - self.h_inj) / 1e3 + Post_cooling = model.wellbores.prodwellflowrate.value * ( + Post_compressor_h_actual - self.h_inj) / 1e3 if lastrun == 0: if self.Pre_cooling_temperature < 32: @@ -569,7 +566,8 @@ def calculateelectricityproduction(self, model): # Air outlet temperature in pre-cooler [deg.C] T_air_out_pre_cooler = (self.T_turbine_out_actual + self.Pre_cooling_temperature) / 2 # Air specific heat capacity in pre-cooler [J/kg/K] - cp_air = np.interp(0.5 * T_air_in_pre_cooler + 0.5 * T_air_out_pre_cooler, self.Tair_for_cp_array, self.cp_air_array) + cp_air = np.interp(0.5 * T_air_in_pre_cooler + 0.5 * T_air_out_pre_cooler, self.Tair_for_cp_array, + self.cp_air_array) # Air flow rate in pre-cooler [kg/s] m_air_pre_cooler = Pre_cooling * 1000 / (cp_air * (T_air_out_pre_cooler - T_air_in_pre_cooler)) @@ -591,15 +589,16 @@ def calculateelectricityproduction(self, model): Air_cooling_power - ResistiveHeating self.Inst_electricity_production = self.Instantaneous_electricity_production_method_4 # [kW] self.Annual_electricity_production = 8760 / 5 * ( - self.Instantaneous_electricity_production_method_4[0::4][0:-1] + - self.Instantaneous_electricity_production_method_4[1::4] + - self.Instantaneous_electricity_production_method_4[2::4] + - self.Instantaneous_electricity_production_method_4[3::4] + - self.Instantaneous_electricity_production_method_4[4::4]) + self.Instantaneous_electricity_production_method_4[0::4][0:-1] + + self.Instantaneous_electricity_production_method_4[1::4] + + self.Instantaneous_electricity_production_method_4[2::4] + + self.Instantaneous_electricity_production_method_4[3::4] + + self.Instantaneous_electricity_production_method_4[4::4]) self.AveInstElectricityProduction = np.average(self.Instantaneous_electricity_production_method_4) # kW # check if negative if min(self.Instantaneous_electricity_production_method_4) < 0: - self.error_codes = np.append(self.error_codes, 5500) # Calculated electricity generation is negative + self.error_codes = np.append(self.error_codes, + 5500) # Calculated electricity generation is negative self.Annual_electricity_production = np.zeros(self.Lifetime) self.Inst_electricity_production = np.zeros(self.TNOP) self.AveInstElectricityProduction = 0 @@ -617,10 +616,12 @@ def calculateelectricityproduction(self, model): self.Average_electricity_production = np.average(self.Annual_electricity_production) / 8760 # [kW] self.AveAnnualElectricityProduction = np.average(self.Annual_electricity_production) # [kWh] - self.AveInstNetElectricityProduction.value = self.AveInstElectricityProduction - np.average(self.PumpingPower) # [kW] + self.AveInstNetElectricityProduction.value = self.AveInstElectricityProduction - np.average( + self.PumpingPower) # [kW] if self.AveInstNetElectricityProduction.value < 0: self.AveInstNetElectricityProduction.value = 0 - self.AveAnnualNetElectricityProduction = self.AveAnnualElectricityProduction - np.average(self.Annual_pumping_power) # kWh + self.AveAnnualNetElectricityProduction = self.AveAnnualElectricityProduction - np.average( + self.Annual_pumping_power) # kWh self.FirstYearElectricityProduction.value = self.Annual_electricity_production[0] # kWh self.Inst_Net_Electricity_production = self.Inst_electricity_production - self.PumpingPower # [kW] @@ -689,9 +690,11 @@ def initialize(self, model: Model) -> None: # Calculate dead-state enthalpy and entropy in case of electricity production if self.End_use == EndUseOptions.ELECTRICITY: self.h_0 = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.enthalpy, - np.array([model.surfaceplant.P0.value, model.surfaceplant.T0]))[0] # dead-state enthalpy [J/kg] + np.array([model.surfaceplant.P0.value, model.surfaceplant.T0]))[ + 0] # dead-state enthalpy [J/kg] self.s_0 = interpn((model.wellbores.Pvector, model.wellbores.Tvector), model.wellbores.entropy, - np.array([model.surfaceplant.P0.value, model.surfaceplant.T0]))[0] # dead-state entropy [J/kg/K] + np.array([model.surfaceplant.P0.value, model.surfaceplant.T0]))[ + 0] # dead-state entropy [J/kg/K] # Pre-populate specific heat capacity of air in case of electricity production if self.End_use == EndUseOptions.ELECTRICITY: @@ -748,10 +751,14 @@ def Calculate(self, model: Model) -> None: # useful direct-use heat provided to application [MWth] self.HeatProduced.value = self.HeatExtracted.value * self.enduseefficiencyfactor.value for i in range(0, self.plantlifetime.value): - self.HeatkWhExtracted.value[i] = np.trapz(self.HeatExtracted.value[(i * model.economics.timestepsperyear.value):((i + 1) * model.economics.timestepsperyear.value) + 1], - dx=1. / model.economics.timestepsperyear.value * 365. * 24.) * 1000. * self.utilfactor.value - self.PumpingkWh.value[i] = np.trapz(model.wellbores.PumpingPower.value[(i * model.economics.timestepsperyear.value):((i + 1) * model.economics.timestepsperyear.value) + 1], - dx=1. / model.economics.timestepsperyear.value * 365. * 24.) * 1000. * self.utilfactor.value + self.HeatkWhExtracted.value[i] = np.trapz(self.HeatExtracted.value[ + (i * model.economics.timestepsperyear.value):(( + i + 1) * model.economics.timestepsperyear.value) + 1], + dx=1. / model.economics.timestepsperyear.value * 365. * 24.) * 1000. * self.utilfactor.value + self.PumpingkWh.value[i] = np.trapz(model.wellbores.PumpingPower.value[ + (i * model.economics.timestepsperyear.value):(( + i + 1) * model.economics.timestepsperyear.value) + 1], + dx=1. / model.economics.timestepsperyear.value * 365. * 24.) * 1000. * self.utilfactor.value self.RemainingReservoirHeatContent.value = model.reserv.InitialReservoirHeatContent.value - np.cumsum( self.HeatkWhExtracted.value) * 3600 * 1E3 / 1E15 @@ -759,36 +766,43 @@ def Calculate(self, model: Model) -> None: if self.End_use != EndUseOptions.ELECTRICITY: self.HeatkWhProduced.value = np.zeros(self.plantlifetime.value) for i in range(0, self.plantlifetime.value): - self.HeatkWhProduced.value[i] = np.trapz(self.HeatProduced.value[(0 + i * model.economics.timestepsperyear.value):((i + 1) * model.economics.timestepsperyear.value) + 1], - dx=1. / model.economics.timestepsperyear.value * 365. * 24.) * 1000. * self.utilfactor.value + self.HeatkWhProduced.value[i] = np.trapz(self.HeatProduced.value[ + (0 + i * model.economics.timestepsperyear.value):(( + i + 1) * model.economics.timestepsperyear.value) + 1], + dx=1. / model.economics.timestepsperyear.value * 365. * 24.) * 1000. * self.utilfactor.value else: # copy some arrays so we have a GEOPHIRES equivalent self.TotalkWhProduced.value = self.Annual_electricity_production.copy() self.ElectricityProduced.value = self.Annual_electricity_production.copy() / 8760.0 / 1000.0 - f = interp1d(np.arange(0, len(self.ElectricityProduced.value)), self.ElectricityProduced.value, fill_value="extrapolate") + f = interp1d(np.arange(0, len(self.ElectricityProduced.value)), self.ElectricityProduced.value, + fill_value="extrapolate") self.ElectricityProduced.value = f(np.arange(0, 40, 1.0)) self.NetElectricityProduced.value = self.Inst_Net_Electricity_production.copy() # covert to MW, which is what GEOPHIRES expects self.NetElectricityProduced.value = self.NetElectricityProduced.value / 1000.0 - f = interp1d(np.arange(0, len(self.NetElectricityProduced.value)), self.NetElectricityProduced.value, fill_value="extrapolate") + f = interp1d(np.arange(0, len(self.NetElectricityProduced.value)), self.NetElectricityProduced.value, + fill_value="extrapolate") self.NetElectricityProduced.value = f(np.arange(0, 40, 1.0)) self.NetkWhProduced.value = (self.NetElectricityProduced.value * 1000.0) * 8760.0 - self.FirstLawEfficiency.value = (self.NetElectricityProduced.value * 1000.0) / self.AveInstHeatProduction.value + self.FirstLawEfficiency.value = ( + self.NetElectricityProduced.value * 1000.0) / self.AveInstHeatProduction.value # handle errors if len(self.error_codes) > 0: - model.logger.fatal("failed with the following error codes: " + str(self.error_codes[0:]) + " in " + str(__class__) + " " + os.path.abspath(__file__)) - print("Error: failed with the following error codes" + str(self.error_codes[0:]) + " in " + str(__class__) + " " + os.path.abspath(__file__) + ". Exiting....") - sys.exit() + base_msg = f'failed with the following error codes: {str(self.error_codes[0:])}' + class_file_info_msg = f'{base_msg} in {str(__class__)} {os.path.abspath(__file__)}' + model.logger.fatal(class_file_info_msg) + print(f'Error: {class_file_info_msg}. Exiting....') + raise RuntimeError(base_msg) # store the calculation result and associated object parameters in the database resultkey = AdvGeoPHIRESUtils.store_result(model, self) if resultkey.startswith("ERROR"): - model.logger.warn("Failed To Store " + str(__class__) + " " + os.path.abspath(__file__)) + model.logger.warn(f"Failed To Store {str(__class__)} {os.path.abspath(__file__)}") elif len(resultkey) == 0: pass - model.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f"complete {str(__class__)}: {sys._getframe().f_code.co_name}") def __str__(self): return "AGSSurfacePlant" diff --git a/src/geophires_x/AGSWellBores.py b/src/geophires_x/AGSWellBores.py index a67ba988..6287bbd5 100644 --- a/src/geophires_x/AGSWellBores.py +++ b/src/geophires_x/AGSWellBores.py @@ -694,29 +694,29 @@ def verify(self, model: Model) -> int: :return: 0 if all OK, 1 if error. :doc-author: Koenraad Beckers """ - model.logger.info("Init " + str( - __class__) + ": " + sys._getframe().f_code.co_name) # Verify inputs are within allowable bounds + model.logger.info(f"Init {str(__class__)}: {sys._getframe().f_code.co_name}") + + # Verify inputs are within allowable bounds self.error = 0 + errors = [] + + def on_invalid_parameter_value(err_msg): + errors.append(err_msg) + print(err_msg) + model.logger.fatal(err_msg) + self.error = 1 + if self.Nonvertical_length.value < 1000 or self.Nonvertical_length.value > 20000: - print("Error: CLGS model database imposes additional range restrictions: Nonvertical length must be \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Nonvertical length must be \ between 1,000 and 20,000 m. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Nonvertical length must be \ - between 1,000 and 20,000 m. Simulation terminated.") - self.error = 1 if self.Tinj.value < 30.0 or self.Tinj.value > 60.0: - print("Error: CLGS model database imposes additional range restrictions: Injection temperature\ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: Injection temperature\ must be between 30 and 60 C. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: Injection temperature\ - must be between 30 and 60 C. Simulation terminated.") - self.error = 1 if self.krock < 1.5 or self.krock > 4.5: - print("Error: CLGS model database imposes additional range restrictions: \ - Rock thermal conductivity must be between 1.5 and 4.5 W/m/K. Simulation terminated.") - model.logger.fatal("Error: CLGS model database imposes additional range restrictions: \ + on_invalid_parameter_value("Error: CLGS model database imposes additional range restrictions: \ Rock thermal conductivity must be between 1.5 and 4.5 W/m/K. Simulation terminated.") - self.error = 1 - model.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f"complete {str(__class__)}: {sys._getframe().f_code.co_name}") return self.error # Multilateral code diff --git a/src/geophires_x/AdvModel.py b/src/geophires_x/AdvModel.py index 5998af9e..ab4586f6 100644 --- a/src/geophires_x/AdvModel.py +++ b/src/geophires_x/AdvModel.py @@ -56,7 +56,7 @@ def read_parameters(self) -> None: # that have AGS functionality. # that means importing them, initializing them, then reading their parameters self.logger.info("Initiate the AGS elements") - import CylindricalReservoir # use the simple cylindrical reservoir for all AGS systems. + from geophires_x import CylindricalReservoir del self.reserv # delete the original object so we can replace it self.reserv = CylindricalReservoir.CylindricalReservoir(self) import AGSWellBores diff --git a/src/geophires_x/CanaryGISPreprocessing.py b/src/geophires_x/CanaryGISPreprocessing.py index 38f20af6..439a946d 100644 --- a/src/geophires_x/CanaryGISPreprocessing.py +++ b/src/geophires_x/CanaryGISPreprocessing.py @@ -20,7 +20,7 @@ #result=arcpy.management.RemoveJoin("r"D:\Work\ProjectCanary\GISData.gdb\PlantFootPrints", '') #Calculate the area in sq km -result=arcpy.management.CalculateGeometryAttributes("r"D:\Work\ProjectCanary\GISData.gdb\PlantFootPrints", "Shape_Area_km2 AREA_GEODESIC", '', "SQUARE_KILOMETERS", 'PROJCS["World_Cylindrical_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0]]', "SAME_AS_INPUT") +result=arcpy.management.CalculateGeometryAttributes("rD:\Work\ProjectCanary\GISData.gdb\PlantFootPrints", "Shape_Area_km2 AREA_GEODESIC", '', "SQUARE_KILOMETERS", 'PROJCS["World_Cylindrical_Equal_Area",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Cylindrical_Equal_Area"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],UNIT["Meter",1.0]]', "SAME_AS_INPUT") #use the temperature point data set to assign the average, min, and max temperature for the plant footprints result=arcpy.analysis.SpatialJoin(r"D:\Work\ProjectCanary\GISData.gdb\PlantFootPrints", r"D:\Work\ProjectCanary\GISData.gdb\temperatures_2022_pt", r"D:\Work\ProjectCanary\GISData.gdb\PlantFootPrints_SpatialJoin", join_operation="JOIN_ONE_TO_ONE", join_type="KEEP_ALL", match_option="CLOSEST_GEODESIC", search_radius="10 DecimalDegrees") diff --git a/src/geophires_x/CylindricalReservoir.py b/src/geophires_x/CylindricalReservoir.py index 4068f5bb..7ffd38c5 100644 --- a/src/geophires_x/CylindricalReservoir.py +++ b/src/geophires_x/CylindricalReservoir.py @@ -12,19 +12,78 @@ class CylindricalReservoir(Reservoir): """ The CylindricalReservoir class is a subclass of the Reservoir class in a straightforward conduction-only model. - It inherits from the primary Reservoir model but offers new parameters and calculations. - :author: Malcolm Ross + It inherits from the primary Reservoir model but offers new parameters and calculations. - :param float Cylindrical Reservoir Input Depth: value = 3.0, DefaultValue=3.0, Min=0.1, Max = 15, UnitType = Units.LENGTH, PreferredUnits = LengthUnit.KILOMETERS, CurrentUnits = LengthUnit.KILOMETERS, Required=True, ErrMessage = "assume default cylindrical reservoir depth (3 km)", ToolTipText="Depth of the inflow end of a cylindrical reservoir." - :param float Cylindrical Reservoir Output Depth: value = self.InputDepth.value, DefaultValue=self.InputDepth.value, Min=0.1, Max = 15, UnitType = Units.LENGTH, PreferredUnits = LengthUnit.KILOMETERS, CurrentUnits = LengthUnit.KILOMETERS, Required=True, ErrMessage = "assume default cylindrical reservoir input depth (3 km)", ToolTipText="Depth of the outflow end of a cylindrical reservoir." + .. list-table:: Input Parameters + :widths: 25 50 10 10 10 10 25 + :header-rows: 1 - :param float Cylindrical Reservoir Length, value = 4.0, DefaultValue=4.0, Min = 0.1, Max = 10.0, UnitType = Units.LENGTH, PreferredUnits = LengthUnit.KILOMETERS, CurrentUnits = LengthUnit.KILOMETERS, Required=True, ErrMessage = "assume default cyclindrical reservoir length (4 km)", ToolTipText="Length of cyclindrical reservoir" + * - Name + - Description + - Default Value Type + - Default Value + - Min + - Max + - Preferred Units + * - Cylindrical Reservoir Input Depth + - Depth of the inflow end of a cylindrical reservoir. + - float + - 3.0 + - 0.1 + - 15 + - LengthUnit.KILOMETERS + * - Cylindrical Reservoir Output Depth + - Depth of the outflow end of a cylindrical reservoir + - float + - Input Depth + - 0.1 + - 15 + - LengthUnit.KILOMETERS + * - Reservoir Length + - Length of cylindrical reservoir + - float + - 4.0 + - 0.1 + - 10.0 + - LengthUnit.KILOMETERS + * - Cylindrical Reservoir Radius of Effect + - The radius of effect - the distance into the rock from the center of the cylinder that will be perturbed by at least 1 C + - float + - 30.0 + - 0 + - 1000.0 + - LengthUnit.METERS + * - Cylindrical Reservoir Radius of Effect Factor + - The radius of effect reduction factor accounts for the fact that we cannot extract 100% of the heat in the cylinder. + - float + - 1.0 + - 0.0 + - 10.0 + - PercentUnit.TENTH - :param float Cylindrical Reservoir Radius of Effect, value = 30.0, DefaultValue=30.0, Min=0, Max=1000.0, UnitType = Units.LENGTH, PreferredUnits = LengthUnit.METERS, CurrentUnits = LengthUnit.METERS, ErrMessage="assume default cylindrical reservoir radius of the effect (30 m)", ToolTipText="The radius of effect - the distance into the rock from the center of the cylinder that will be perturbed by at least 1 C." + .. list-table:: Output Parameters + :widths: 25 20 20 + :header-rows: 1 - :param float Cylindrical Reservoir Radius of Effect Factor, value = 1.0, DefaultValue=1.0, Min=0.0, Max=10.0, UnitType = Units.PERCENT, PreferredUnits = PercentUnit.TENTH, CurrentUnits = PercentUnit.TENTH, ErrMessage="assume default cylindrical reservoir radius of effect reduction factor (0.1)", ToolTipText="The radius of effect reduction factor - to account for the fact that we cannot extract 100% of the heat in the cylinder." + * - Name + - Default Value Type + - Preferred Units + * - Cylindrical Reservoir Surface Area + - float + - METERS2 + * - Average Gradient + - float + - dEGC/KM + * - Time Vector + - float array + - YEAR + * - Reservoir Temperature History + - float array + - CELSIUS + + :doc-author: Malcolm Ross """ def __init__(self, model:Model): """ @@ -38,7 +97,7 @@ def __init__(self, model:Model): :return: None :doc-author: Malcolm Ross """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'Init {str(__class__)}: {sys._getframe().f_code.co_name}') super().__init__(model) # initialize the parent parameters and variables # Set up all the Parameters that will be predefined by this class using the different types of parameter classes. @@ -65,6 +124,7 @@ def __init__(self, model:Model): ErrMessage="assume default cylindrical reservoir depth (3 km)", ToolTipText="Depth of the inflow end of a cylindrical reservoir" ) + self.OutputDepth = self.ParameterDict[self.OutputDepth.Name] = floatParameter( "Cylindrical Reservoir Output Depth", value=self.InputDepth.value, @@ -169,12 +229,12 @@ def __init__(self, model:Model): CurrentUnits=TemperatureUnit.CELSIUS ) - model.logger.info("Complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'Complete {str(__class__)}: {sys._getframe().f_code.co_name}') def __str__(self): return "CylindricalReservoir" - def read_parameters(self, model:Model) -> None: + def read_parameters(self, model: Model) -> None: """ The read_parameters function reads in the parameters from a dictionary created by reading the user-provided file and updates the parameter values for this object. @@ -188,7 +248,7 @@ def read_parameters(self, model:Model) -> None: :return: None :doc-author: Malcolm Ross """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f"Init {str(__class__)}: {sys._getframe().f_code.co_name}") super().read_parameters(model) # if we call super, we don't need to deal with setting the parameters here, just deal with the special cases # for the variables in this class @@ -218,13 +278,14 @@ def read_parameters(self, model:Model) -> None: if "Cylindrical Reservoir Output Depth" not in model.InputParameters: self.OutputDepth.value = self.InputDepth.value else: - model.logger.info("No parameters read becuase no content provided") - model.logger.info("complete "+ str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info("No parameters read because no content provided") + model.logger.info(f"complete {str(__class__)}: {sys._getframe().f_code.co_name}") @lru_cache(maxsize=1024) def Calculate(self, model:Model) -> None: """ The Calculate function is where all the calculations are done. + This function can be called multiple times, and will only recalculate what has changed each time it is called. :param self: Access variables that belongs to the class @@ -232,7 +293,7 @@ def Calculate(self, model:Model) -> None: :return: Nothing, but it does make calculations and set values in the model :doc-author: Malcolm Ross """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f"Init {str(__class__)}: {sys._getframe().f_code.co_name}") # This is where all the calculations are made using all the values that have been set. # If you subclass this class, you can choose to run these calculations before (or after) your calculations, @@ -266,4 +327,4 @@ def Calculate(self, model:Model) -> None: self.rhowater.value = densitywater(model.wellbores.Tinj.value*0.5 + (self.Trock.value*0.9+model.wellbores.Tinj.value*0.1)*0.5) - model.logger.info("complete "+ str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f"complete {str(__class__)}: {sys._getframe().f_code.co_name}") diff --git a/src/geophires_x/EconomicsAddOns.py b/src/geophires_x/EconomicsAddOns.py index 45ede404..9defea6e 100644 --- a/src/geophires_x/EconomicsAddOns.py +++ b/src/geophires_x/EconomicsAddOns.py @@ -24,7 +24,7 @@ def __init__(self, model: Model): :doc-author: Malcolm Ross """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'Init {str(__class__)}: {sys._getframe().f_code.co_name}') super().__init__(model) # initialize the parent parameters and variables sclass = str(__class__).replace("", "") @@ -217,7 +217,7 @@ def read_parameters(self, model: Model) -> None: :return: None :doc-author: Malcolm Ross """ - model.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'Init {str(__class__)}: {sys._getframe().f_code.co_name}') super().read_parameters(model) # read the parameters for the parent. # Deal with all the parameter values that the user has provided that relate to this extension. @@ -378,9 +378,9 @@ def Calculate(self, model: Model) -> None: self.ProjectMOIC.value = self.ProjectCummCashFlow.value[len(self.ProjectCummCashFlow.value)-1] / (self.AdjustedProjectCAPEX.value + (self.AdjustedProjectOPEX.value * model.surfaceplant.plantlifetime.value)) # recalculate LCOE/LCOH - self.LCOE.value, self.LCOH.value = Economics.CalculateLCOELCOH(self, model) + self.LCOE.value, self.LCOH.value, LCOC = Economics.CalculateLCOELCOH(self, model) - model.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + model.logger.info(f'complete {str(__class__)}: {sys._getframe().f_code.co_name}') def __str__(self): return "EconomicsAddOns" diff --git a/src/geophires_x/EconomicsS_DAC_GT.py b/src/geophires_x/EconomicsS_DAC_GT.py index e6d4d411..bc1038df 100644 --- a/src/geophires_x/EconomicsS_DAC_GT.py +++ b/src/geophires_x/EconomicsS_DAC_GT.py @@ -2,12 +2,12 @@ import os import math import numpy as np -from Parameter import floatParameter, OutputParameter, ReadParameter -from Units import * -from OptionList import EndUseOptions -import Model +from .Parameter import floatParameter, OutputParameter, ReadParameter +from .Units import * +from .OptionList import EndUseOptions +import geophires_x.Model as Model import numpy as np -import Economics +import geophires_x.Economics as Economics class EconomicsS_DAC_GT(Economics.Economics): """ @@ -25,7 +25,7 @@ class EconomicsS_DAC_GT(Economics.Economics): def __init__(self, model:Model): """ The __init__ function is the constructor for a class. It is called whenever an instance of the class is created. The __init__ function can take arguments, but self is always the first one. Self refers to the instance of the object that has already been created and it's used to access variables that belong to that object. - + :param self: Reference the class object itself :param model: The container class of the application, giving access to everything else, including the logger @@ -39,7 +39,7 @@ def __init__(self, model:Model): #This also includes all Parameters that are calculated and then published using the Printouts function. #If you choose to sublass this master class, you can do so before or after you create your own parameters. If you do, you can also choose to call this method from you class, which will effectively add and set all these parameters to your class. - #These disctionaries contains a list of all the parameters set in this object, stored as "Parameter" and OutputParameter Objects. This will alow us later to access them in a user interface and get that list, along with unit type, preferred units, etc. + #These disctionaries contains a list of all the parameters set in this object, stored as "Parameter" and OutputParameter Objects. This will alow us later to access them in a user interface and get that list, along with unit type, preferred units, etc. self.ParameterDict = {} self.OutputParameterDict = {} self.wacc = self.ParameterDict[self.wacc.Name] = floatParameter("WACC", value = 10.0, DefaultValue = 10.0, Min=0.1, Max=30.0, UnitType = Units.PERCENT, PreferredUnits = PercentUnit.PERCENT, CurrentUnits = PercentUnit.PERCENT, ErrMessage = "assume default Weighted Average Cost of Capital (10%)", ToolTipText="Weighted Average Cost of Capital (percent)") @@ -95,7 +95,7 @@ def __str__(self): def read_parameters(self, model:Model) -> None: """ The read_parameters function reads in the parameters from a dictionary and stores them in the aparmeters. It also handles special cases that need to be handled after a value has been read in and checked. If you choose to sublass this master class, you can also choose to override this method (or not), and if you do - + :param self: Access variables that belong to a class :param model: The container class of the application, giving access to everything else, including the logger @@ -160,58 +160,58 @@ def range_check(self)->tuple: if not (wacc_min <= self.wacc.value <= wacc_max): error_message = "S-DAC-GT ERROR: WACC should be between {}% and {}%".format(wacc_min, wacc_max) return(True, error_message) - + if not (CAPEX_min <= self.CAPEX.value <= CAPEX_max): error_message = "S-DAC-GT ERROR: CAPEX should be between {} and {}".format(CAPEX_min, CAPEX_max) return(True, error_message) - + if not (OPEX_min <= self.OPEX.value <= OPEX_max): error_message = "S-DAC-GT ERROR: OPEX should be between {} and {}".format(OPEX_min, OPEX_max) return(True, error_message) - + if not (elec_min <= self.elec.value <= elec_max): error_message = "S-DAC-GT ERROR: Electrical Energy should be between {} and {}".format(elec_min, elec_max) return(True, error_message) - + if not (therm_min <= self.therm.value <= therm_max): error_message = "S-DAC-GT ERROR: Thermal Energy should be between {} and {}".format(therm_min, therm_max) return(True, error_message) - + if not (NG_price_min <= self.NG_price.value <= NG_price_max): error_message = "S-DAC-GT ERROR: Natural Gas Price should be between {} and {}".format(NG_price_min, NG_price_max) return(True, error_message) - + if not (power_co2intensity_min <= self.power_co2intensity.value <= power_co2intensity_max): error_message = "S-DAC-GT ERROR: CO2 Intensity of Electricity should be between {} and {}".format(power_co2intensity_min, power_co2intensity_max) return(True, error_message) - + if not (CAPEX_mult_min <= self.CAPEX_mult.value <= CAPEX_mult_max): error_message = "S-DAC-GT ERROR: CAPEX Multiplier should be between {} and {}".format(CAPEX_mult_min, CAPEX_mult_max) return(True, error_message) - + if not (OPEX_mult_min <= self.OPEX_mult.value <= OPEX_mult_max): error_message = "S-DAC-GT ERROR: OPEX Multiplier should be between {} and {}".format(OPEX_mult_min, OPEX_mult_max) return(True, error_message) - + if not (therm_index_min <= self.therm_index.value <= therm_index_max): error_message = "S-DAC-GT ERROR: S-DAC Thermal Energy Multiplier should be between {} and {}".format(therm_index_min, therm_index_max) return(True, error_message) - + if not (transport_min <= self.transport.value <= transport_max): error_message = "S-DAC-GT ERROR: CO2 Transportation Cost should be between {} and {}".format(transport_min, transport_max) return(True, error_message) - + if not (storage_min <= self.storage.value <= storage_max): error_message = "S-DAC-GT ERROR: CO2 Storage Cost should be between {} and {}".format(storage_min, storage_max) return(True, error_message) - + return(False,"") - + def geo_therm_cost(self, power_cost:float, CAPEX_mult:float, OPEX_mult:float, depth:float, Production_temp:float, Injection_temp:float, Flow_rate:float)->tuple: # Calculate Levelized cost of heat and ratio of electric power to heat power # LCOH calculated in USD # Power ratio calculated as kWh_e / kWh_th --> used for calculating CO2 footprint of geothermal energy - # inputs are cost of electricity, regional capex and opex multipliers, + # inputs are cost of electricity, regional capex and opex multipliers, # depth of geothermal reservoir, Average Production Temperature, Injection Temperature, and Flow Rate #recoded by Malcolm Ross when integrated with GEOPHIRES - GEOPHIRES has more information, so fewer assumptions are made # Update NREL 2016 model for 2022 @@ -236,14 +236,14 @@ def geo_therm_cost(self, power_cost:float, CAPEX_mult:float, OPEX_mult:float, de NREL_reinjection = 127130 * Inflation # USD # Normalize for region - CAPEX = NREL_CAPEX * CAPEX_mult + CAPEX = NREL_CAPEX * CAPEX_mult CAPEX_drill = depth * NREL_drill_per_foot / Drilling_efficiency_factor pump_kwh = depth * NREL_pump_per_foot pump_cost = pump_kwh * power_cost inhibitor = NREL_inhibitor * OPEX_mult labor = NREL_labor * OPEX_mult reinjection = NREL_reinjection / NREL_depth * depth * OPEX_mult - + # total costs CAPEX_total = CAPEX + CAPEX_drill OPEX_total = pump_cost + inhibitor + labor + reinjection @@ -252,19 +252,19 @@ def geo_therm_cost(self, power_cost:float, CAPEX_mult:float, OPEX_mult:float, de Thermal_capacity = (Production_temp-Injection_temp)*Flow_rate*H2O_thermal_capacity*60*60 # kW Annual_op_hrs = 365*24*Capacity_factor # hours Therm_total = Thermal_capacity * Annual_op_hrs # kWh - + # Levelized cost of heat (LCOH) LCOH = (CAPEX_total*self.CRF + OPEX_total)/Therm_total # $/kWh_therm - + kWh_e_per_kWh_th = pump_kwh / Therm_total - + return (LCOH, kWh_e_per_kWh_th) def Calculate(self, model:Model)->None: """ The Calculate function is where all the calculations are done. This function can be called multiple times, and will only recalculate what has changed each time it is called. - + :param self: Access variables that belongs to the class :param model: The container class of the application, giving access to everything else, including the logger :return: Nothing, but it does make calculations and set values in the model @@ -298,11 +298,11 @@ def Calculate(self, model:Model)->None: co2_elec_heat = self.therm.value/1000*self.power_co2intensity.value co2_ng = self.therm.value/1000*self.NG_co2intensity.value co2_geothermal = self.therm.value*self.kWh_e_per_kWh_th.value/1000*self.power_co2intensity.value - + self.LCOD_elec.value = CAPEX+self.OPEX.value+power_totalcost+elec_heat_totalcost+self.storage.value+self.transport.value self.LCOD_ng.value = CAPEX+self.OPEX.value+power_totalcost+NG_totalcost+self.storage.value+self.transport.value self.LCOD_geo.value = CAPEX+self.OPEX.value+power_totalcost+geothermal_totalcost+self.storage.value+self.transport.value - + self.CO2total_elec.value = co2_power + co2_elec_heat self.CO2total_ng.value = co2_power + co2_ng self.CO2total_geo.value = co2_power + co2_geothermal @@ -320,7 +320,7 @@ def Calculate(self, model:Model)->None: self.CummCostPerTonne.value = [0.0] * model.surfaceplant.plantlifetime.value self.CarbonExtractedTotal.value = 0.0 - #Figure out how much energy is being produced each year, and the amount of carbon that would have been produced if that energy had been made using the grdi average carbon production. That then gives us the revenue, since we have a carbon price model + #Figure out how much energy is being produced each year, and the amount of carbon that would have been produced if that energy had been made using the grdi average carbon production. That then gives us the revenue, since we have a carbon price model #We can also get annual cash flow from it. for i in range(0,model.surfaceplant.plantlifetime.value,1): self.CarbonExtractedAnnually.value[i] = (self.EnergySplit.value * model.surfaceplant.HeatkWhExtracted.value[i]) / self.tot_heat_energy_consumed_per_tonne.value diff --git a/src/geophires_x/Prospect7.txt b/src/geophires_x/Examples/Prospect7.txt similarity index 100% rename from src/geophires_x/Prospect7.txt rename to src/geophires_x/Examples/Prospect7.txt diff --git a/src/geophires_x/GEOPHIRESv3.py b/src/geophires_x/GEOPHIRESv3.py index 09f170fd..bed96b58 100644 --- a/src/geophires_x/GEOPHIRESv3.py +++ b/src/geophires_x/GEOPHIRESv3.py @@ -1,14 +1,5 @@ #! python # -*- coding: utf-8 -*- -""" -Created on Wed Dec 6 10:34:04 2017 - -@author: kbeckers V1 and V2; Malcolm Ross V3 -""" - -# GEOPHIRES v3.0 -# build date: May 2022 -# github address: https://github.com/malcolm-dsider/GEOPHIRES-X import logging import logging.config @@ -17,6 +8,7 @@ import geophires_x.Model as Model import geophires_x.OptionList as OptionList + def main(enable_geophires_logging_config=True): # set the starting directory to be the directory that this file is in os.chdir(os.path.dirname(os.path.abspath(__file__))) @@ -26,7 +18,7 @@ def main(enable_geophires_logging_config=True): logging.config.fileConfig('logging.conf') logger = logging.getLogger('root') - logger.info("Init " + str(__name__)) + logger.info(f'Init {str(__name__)}') # initiate the entire model model = Model.Model(enable_geophires_logging_config=enable_geophires_logging_config) @@ -43,47 +35,52 @@ def main(enable_geophires_logging_config=True): # write the outputs as JSON import jsons, json jsons.suppress_warnings(True) - JSONresrv = jsons.dumps(model.reserv.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - JSONwells = jsons.dumps(model.wellbores.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - JSONsurfaceplant = jsons.dumps(model.surfaceplant.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - JSONEconomics = jsons.dumps(model.economics.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - jsonMerged = {**json.loads(JSONresrv), **json.loads(JSONwells), **json.loads(JSONEconomics), **json.loads(JSONsurfaceplant)} + json_resrv = jsons.dumps(model.reserv.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) + json_wells = jsons.dumps(model.wellbores.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) + json_surfaceplant = jsons.dumps(model.surfaceplant.OutputParameterDict, indent=4, sort_keys=True, + supress_warnings=True) + json_economics = jsons.dumps(model.economics.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) + json_merged = {**json.loads(json_resrv), **json.loads(json_wells), **json.loads(json_economics), + **json.loads(json_surfaceplant)} if model.economics.DoAddOnCalculations.value: - JSONAddons = jsons.dumps(model.addeconomics.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - jsonMerged = {**jsonMerged, **json.loads(JSONAddons)} + json_addons = jsons.dumps(model.addeconomics.OutputParameterDict, indent=4, sort_keys=True, + supress_warnings=True) + json_merged = {**json_merged, **json.loads(json_addons)} if model.economics.DoCCUSCalculations.value: - JSONCCUS = jsons.dumps(model.ccuseconomics.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - jsonMerged = {**jsonMerged, **json.loads(JSONCCUS)} + json_ccus = jsons.dumps(model.ccuseconomics.OutputParameterDict, indent=4, sort_keys=True, + supress_warnings=True) + json_merged = {**json_merged, **json.loads(json_ccus)} if model.economics.DoSDACGTCalculations.value: - JSONSDACGT = jsons.dumps(model.sdacgteconomics.OutputParameterDict, indent=4, sort_keys=True, supress_warnings=True) - jsonMerged = {**jsonMerged, **json.loads(JSONSDACGT)} + json_sdacgt = jsons.dumps(model.sdacgteconomics.OutputParameterDict, indent=4, sort_keys=True, + supress_warnings=True) + json_merged = {**json_merged, **json.loads(json_sdacgt)} - JSONoutputfile = "HDR.json" + json_outputfile = 'HDR.json' if len(sys.argv) > 2: - JSONoutputfile = str(sys.argv[2]) - segs = JSONoutputfile.split('.') - JSONoutputfile = segs[0] + '.json' - with open(JSONoutputfile, 'w', encoding='UTF-8') as f: - f.write(json.dumps(jsonMerged)) + json_outputfile = str(sys.argv[2]) + segs = json_outputfile.split('.') + json_outputfile = segs[0] + '.json' + with open(json_outputfile, 'w', encoding='UTF-8') as f: + f.write(json.dumps(json_merged)) # if the user has asked for it, copy the output file to the screen if model.outputs.printoutput: - outputfile = "HDR.out" + outputfile = 'HDR.out' if len(sys.argv) > 2: outputfile = sys.argv[2] with open(outputfile, 'r', encoding='UTF-8') as f: - content = f.readlines() # store all output in one long list + content = f.readlines() # store all output in one long list # Now write each line to the screen for line in content: sys.stdout.write(line) - #make district heating plot + # make district heating plot if model.surfaceplant.enduseoption.value == OptionList.EndUseOptions.DISTRICT_HEATING: model.outputs.MakeDistrictHeatingPlot(model) - logger.info("Complete "+ str(__name__) + ": " + sys._getframe().f_code.co_name) + logger.info(f'Complete {str(__name__)}: {sys._getframe().f_code.co_name}') -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/src/geophires_x/How-to-extend-GEOPHIRES-X.md b/src/geophires_x/How-to-extend-GEOPHIRES-X.md deleted file mode 100644 index a774a4f8..00000000 --- a/src/geophires_x/How-to-extend-GEOPHIRES-X.md +++ /dev/null @@ -1,109 +0,0 @@ -# How to extend GEOPHIRES X - -1. Decide which object(s) (Reservoir, Wellbores, Surface Plant, and/or Economics) you are going to extend. In this example, I will extend Economics. -2. Make a new file named the same as the class name you will use. In this case, I will create EcononomicsAddons. Add it to your project if you are using a development environment like PyCharm or Visual Studio. -3. In the Models class, add an import statement for the class you are making. In this case, the line looks like this: -```python -from EconomicsAddons import * -``` -4. In the `__init__` method of the Models class, initialize your new class. In this case, the line looks like this: -```python -self.economics = EconomicsAddOns(self) -``` - -5. Fill that new file with this template, changing the class name and imports as appropriate: -```python -import math -import sys -import numpy as np -import numpy_financial as npf -import Model -import Economics -from OptionList import EndUseOptions -from Parameter import intParameter, floatParameter, listParameter, OutputParameter -from Units import * - -class EconomicsAddOns(Economics.Economics): -def __init__(self, model): -model.logger.info("Init " + str(__class__) + ": " + sys._getframe( ).f_code.co_name) - -#Set up all the Parameters that will be predefined by this class using -#the different types of parameter classes. -pass - -#local variables that need initialization -pass - -#results -pass - - model.logger.info("Complete "+ str(__class__) + ": " + sys._getframe( ).f_code.co_name) - - def __str__(self): - return "EconomicsAddOns" - - def read_parameters(self, model) -> None: - model.logger.info("Init " + str(__class__) + ": " + sys._getframe( ).f_code.co_name) - -#Deal with all the parameter values that the user has provided. -pass - - model.logger.info("complete "+ str(__class__) + ": " + sys._getframe( ).f_code.co_name) - - def Calculate(self, reserv, wellbores, surfaceplant, model) -> None: - model.logger.info("Init " + str(__class__) + ": " + sys._getframe( ).f_code.co_name) - -#This is where all the calculations are made using all the values that -#have been set. -pass - - model.logger.info("complete "+ str(__class__) + ": " + sys._getframe( ).f_code.co_name) - -``` - -6. Note the class definition: “class EconomicsAddOns(Economics.Economics):” – it must contain a reference to the parent class (in this case, Economics). Set it to the appropriate class for your needs. Note that multiple inheritances are also possible but not needed in this case. -7. Also note the import command “from Economics import *” – it imports all the information about the parent class. Set it to the appropriate class for your needs. -8. Note that the “model” class is passed into all these methods. This is the wrapper class in which all the objects live. It contains values that are useful to all classes, like “logger”. -9. For the `__init__` method, you need to decide if you want to initialize the parent class (in this case, Economics), or not. Initializing it means that all the Parameters and variables in the parent class will be created and will be available for you to use in your methods. If you don’t want those variables and methods, don’t initialize the parent. The parent is initialized by adding the following line of code to the __init__ method right at the beginning, right after the logging is started, in the middle as needed, or right at the end, right before the logging stops. You would choose to initial at the beginning if some of the parent parameters/variables will be used in your initialization. If not, you can do it at the end. For initialization, it probably doesn’t matter when you call it. - -```python - super().__init__(model) -``` - - -10. The `read_parameter` method checks the list of parameters that the user has specified new values for in the text file and updates the class parameters with those values after validating them. It also allows programmers ti deal with any special cases that arise when the user changes a value – a change of value to one parameter might require an update to another unrelated Parameter. For the read_parameters method, you need to make the same choice about running the parent class method of the same name, or not. If you initialized the parameters of the parent in __init__, you should probably read the user Parameters for any changes that the user wants to make to those parameters. Use this call to do that: - -```python - super().read_parameters(model) -``` - -11. For the Calculate method, make the same choice about running the parent class method of the same name, or not. If you initialized the parameters of the parent in __init__, and read the parameters, you should probably Calculate the values based on those parameters. Those results and available to you in your calculations in this class if you do this. Use this call to do that: - -```python - super().Calculate(model) -``` - -Note that for the Calculate method, the model class is passed in to give access to the logger but also to all the other classes (reserve, surfaceplant, etc) since they are attributes of the Model wrapper class. Calculations tend to depend on the other classes. In the case, my Economic AddOns use information for nearly all the other classes. - -12. Now start coding your methods. In the __Init__ method, you need to decide what your Parameters will be. For each one, you need to use the appropriate class constructor; for an integer, intParameter; for a float, floatParameter; etc. For each Parameter, you must specify its name, value, default value, and valid range (if int or float). Optionally, you can specify: - 1. Required (Boolean): is it required to run? default value = False - 1. ErrMessage (string): what GEOPHIRES will report if the value provided is invalid. Default = "assume default value (see manual)") - 1. ToolTipText (string): when there is a GUI, this is the text that the user will see. Default = "This is ToolTip Text") - 1. UnitType (Unit Type enumeration): the type of units associated with this parameter (length, temperature, density, etc). Default = Units.NONE - 1. CurrentUnits (Unit enumeration): what the units are for this parameter (meters, Celcius, gm/cc, etc. Default = Units:NONE) - 1. PreferredUnits (units: usually equal to CurrentUnits, but these are the units that the calculations assume when running. Default - Units.NONE - -13. UnitType, CurrentUnits, and PreferredUnits are the attributes that allow GEOPHIRESX to handle unit and currency conversions. If you don’t want to use that functionality, don’t use them. If you do, see the code examples to see how this works. -14. In the `__init__` method, you must also decide what your local variables will be, and what values they will start with. -15. In the `__init__` method, you need to decide what your OutputParameters will be (they will be calculated with your Calculate method and will be available to other classes for use and output). For each one, you need to use the class constructor OutputParameter. You must set its name and value. Note that value is of type “Any” – that means it can be assigned an int, float, bool, list, etc. Optionally, you can set: - 1. ToolTipText: see above - 1. UnitType: see above - 1. PreferredUnits: see above - 1. CurrentUnits: See above -16. In the `__init__` method, note the use of two dictionaries: ParameterDict and OutputParameterDict. When a Parameter or OutputParameter is created, it is also added to the dictionary. These dictionaries are publicly available and give access to all the parameters. These get used in several ways, so stick to the convention of using them as you see them used in the parent classes. -17. In the `read_parameter` method, you need to decide if any of your parameters need special processing once they have been read in and modified by a user value change. The ReadParameter() utility function should be used to deal with all the parameters read in that apply to your Object, but if a change to any of your parameters triggers other actions, insert code here to handle those actions – see parent classes for how that is done. -18. In the Calculate method, insert the code you need to make your calculations. You can use the input parameters, local variables, all parameters (input and output) from other classes in your calculations, but note: - 1. Think carefully about the ordering of the calculations, and when the values you wish to use are valid. If you are extending the Reservoir object, note that the parent Reservoir output parameters are only valid after the parent class Calculate method has been run. It may also be possible that output values from one class may be altered later by the Calculate method on other classes. GEOPHIRES-X core code tries to avoid this, as it is confusing, but it is possible, so know your variables! - 1. The parent class as input parameters which will be set to valid default values after the parent __init__ method is called, but note that any of these values could be changed when the read_parameter method for that class is called. And other unrelated parameters might also change due to dependencies, so don’t rely on the input parameters to be finalized until after read_parameter on the parent has run. Normally, input parameters for a class don’t change after read_parameter for that class has run, but it does happen sometimes. GEOPHIRES-X core code tries to avoid this, as it is confusing, but it is possible, so know your variables! - 1. Be careful how you modify the class variables. If you modify a parent variable or parameter by referring to it using the “self.” construct, then you are modifying the local copy of it associated with it in your class, just like if you run a method of a class using the self.method_name() construction, you are running the local class copy of your method (running any changes you made as well). If you don’t override the method, then you will run the parent method, even if you refer to it with self. If you want to access or modify the parent variables, Parameters, or methods, you can refer to them explicitly – recall that the model class is passed into your class and its mthods, so you can access model.reserv, which would give you direct access to the parent Reservoir model, model.surfaceplant to refer to SurfacePlant, and so on. -19. Once you are done with your Calculations, you also are likely to want to show them to your users. This is usually accomplished by creating an OuputClass that has the sole job of writing your results to the output file. In this case, look at the class OutputsAddOns. Note that its parent is Outputs, in which the outputs for the base classes are integrated and reported. The method PrintOutputs open the output file (HDR.out) and uses formatted text strings to write values into the file. Note that you can write single values, or loop thru arrays of values. You can also access and report values from other classes and parents – especially if your Calculate modified them. You should assume that all the outputs from the other classes were reported before you modified them. For example, the Net Present Value (NPV) of the project is recalculated in the EconomicAddons method of my extension because my economic AddOns changes the income, expenses, and profits of the project. I assume that the NPV value has been written to the output file value already (and it represents the NPV of the project before the AddOns). I report the NPV again when I report the outputs of my class, and I note in the text that this is an update to Project NPV based on the AddOns. To make sure of that logic, I have a local output parameter called NPV and I modify and report that without change the NPV output parameter in the Economics class. diff --git a/src/geophires_x/LICENSE b/src/geophires_x/LICENSE deleted file mode 100644 index 63ed6fc0..00000000 --- a/src/geophires_x/LICENSE +++ /dev/null @@ -1,37 +0,0 @@ -Copyright (c) 2005-2018 Fredrik Johansson and mpmath contributors - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - a. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - b. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - c. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -The tool is written in Python and open-source under the MIT license - see the [license.txt](license.txt) file for more information. - -Copyright 2018 NREL - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/geophires_x/MANIFEST.in b/src/geophires_x/MANIFEST.in deleted file mode 100644 index 94594ce8..00000000 --- a/src/geophires_x/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -include mpmath/*.py -include mpmath/tests/*.py -include LICENSE -include CHANGES diff --git a/src/geophires_x/Model.py b/src/geophires_x/Model.py index 47908b6f..b1a9d2ac 100644 --- a/src/geophires_x/Model.py +++ b/src/geophires_x/Model.py @@ -2,6 +2,7 @@ import logging import time import logging.config +from typing import Tuple from geophires_x.OptionList import EndUseOptions from geophires_x.Parameter import Parameter @@ -55,6 +56,7 @@ def __init__(self, enable_geophires_logging_config=True): self.sdacgteconomics = None self.addoutputs = None self.addeconomics = None + # these are database operation we aren't doing yet # model_elements = self.RunStoredProcedure("model_elements", [1]) # model_connections = self.RunStoredProcedure("model_connections", [1]) @@ -203,7 +205,7 @@ def Calculate(self): # if end-use option is 8 (district heating), some calculations are required prior to the reservoir and wellbore simulations if self.surfaceplant.enduseoption.value == EndUseOptions.DISTRICT_HEATING: self.surfaceplant.CalculateDHDemand(self) # calculate district heating demand - + self.reserv.Calculate(self) # model the reservoir self.wellbores.Calculate(self) # model the wellbores self.surfaceplant.Calculate(self) # model the surfaceplant @@ -227,25 +229,3 @@ def Calculate(self): self.sdacgteconomics.Calculate(self) self.logger.info(f'complete {str(__class__)}: {sys._getframe().f_code.co_name}') - - def get_parameters_json(self) -> str: - from geophires_x.GeoPHIRESUtils import json_dumpse - - all_params = {} - - def with_category(param_dict: dict, category: str): - def _with_cat(p: Parameter, cat: str): - p.parameter_category = cat - return p - - return {k: _with_cat(v, category) for k, v in param_dict.items()} - - all_params.update(with_category(self.reserv.ParameterDict, 'Reservoir')) - - all_params.update(with_category(self.wellbores.ParameterDict, 'Well Bores')) - - all_params.update(with_category(self.surfaceplant.ParameterDict, 'Surface Plant')) - - all_params.update(with_category(self.economics.ParameterDict, 'Economics')) - - return json_dumpse(all_params) diff --git a/src/geophires_x/OptionList.py b/src/geophires_x/OptionList.py index 541086fa..45605af1 100644 --- a/src/geophires_x/OptionList.py +++ b/src/geophires_x/OptionList.py @@ -14,6 +14,7 @@ class EndUseOptions(str, Enum): ABSORPTION_CHILLER = "Absorption Chiller" # 6 HEAT_PUMP = "Heat Pump" # 7 DISTRICT_HEATING = "District Heating" # 8 + RTES = "Reservoir Thermal Energy Storage" # 9 class EconomicModel(str, Enum): diff --git a/src/geophires_x/README.md b/src/geophires_x/README.md deleted file mode 100644 index aa506b4b..00000000 --- a/src/geophires_x/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# GEOPHIRES - -This repo hosts the geothermal techno-economic simulation tool GEOPHIRES. - -GEOPHIRES combines reservoir, wellbore, surface plant, and economic and cost models and correlations to estimate the capital and operation and maintenance costs, instantaneous and lifetime energy production, and overall levelized cost of energy of a geothermal plant. - -## Version -The latest version is v3.0, updated on July 1st, 2022. - -## Authors -* **Koenraad Beckers** - Heateon (koenraad.beckers@heateon.com) -* **Kevin McCabe** - National Renewable Energy Laboratory (NREL) (kevin.mccabe@nrel.gov) -* **Malcolm Ross** - Rice University (malcolm@rice.edu) - - -## License -The tool is written in Python and open-source under the MIT license - see the [license.txt](license.txt) file for more information. diff --git a/src/geophires_x/README.rst b/src/geophires_x/README.rst deleted file mode 100644 index 725ed018..00000000 --- a/src/geophires_x/README.rst +++ /dev/null @@ -1,189 +0,0 @@ -mpmath -====== - -|pypi version| |Build status| |Code coverage status| |Zenodo Badge| - -.. |pypi version| image:: https://img.shields.io/pypi/v/mpmath.svg - :target: https://pypi.python.org/pypi/mpmath -.. |Build status| image:: https://secure.travis-ci.org/fredrik-johansson/mpmath.svg?branch=master - :target: https://travis-ci.org/fredrik-johansson/mpmath -.. |Code coverage status| image:: https://codecov.io/gh/fredrik-johansson/mpmath/branch/master/graph/badge.svg - :target: https://codecov.io/gh/fredrik-johansson/mpmath -.. |Zenodo Badge| image:: https://zenodo.org/badge/2934512.svg - :target: https://zenodo.org/badge/latestdoi/2934512 - -A Python library for arbitrary-precision floating-point arithmetic. - -Website: http://mpmath.org/ -Main author: Fredrik Johansson - -Mpmath is free software released under the New BSD License (see the -LICENSE file for details) - -0. History and credits ----------------------- - -The following people (among others) have contributed major patches -or new features to mpmath: - -* Pearu Peterson -* Mario Pernici -* Ondrej Certik -* Vinzent Steinberg -* Nimish Telang -* Mike Taschuk -* Case Van Horsen -* Jorn Baayen -* Chris Smith -* Juan Arias de Reyna -* Ioannis Tziakos -* Aaron Meurer -* Stefan Krastanov -* Ken Allen -* Timo Hartmann -* Sergey B Kirpichev -* Kris Kuhlman -* Paul Masson -* Michael Kagalenko -* Jonathan Warner - -Numerous other people have contributed by reporting bugs, -requesting new features, or suggesting improvements to the -documentation. - -For a detailed changelog, including individual contributions, -see the CHANGES file. - -Fredrik's work on mpmath during summer 2008 was sponsored by Google -as part of the Google Summer of Code program. - -Fredrik's work on mpmath during summer 2009 was sponsored by the -American Institute of Mathematics under the support of the National Science -Foundation Grant No. 0757627 (FRG: L-functions and Modular Forms). - -Any opinions, findings, and conclusions or recommendations expressed in this -material are those of the author(s) and do not necessarily reflect the -views of the sponsors. - -Credit also goes to: - -* The authors of the GMP library and the Python wrapper - gmpy, enabling mpmath to become much faster at - high precision -* The authors of MPFR, pari/gp, MPFUN, and other arbitrary- - precision libraries, whose documentation has been helpful - for implementing many of the algorithms in mpmath -* Wikipedia contributors; Abramowitz & Stegun; Gradshteyn & Ryzhik; - Wolfram Research for MathWorld and the Wolfram Functions site. - These are the main references used for special functions - implementations. -* George Brandl for developing the Sphinx documentation tool - used to build mpmath's documentation - -Release history: - -* Version 1.1.0 released on December 11, 2018 -* Version 1.0.0 released on September 27, 2017 -* Version 0.19 released on June 10, 2014 -* Version 0.18 released on December 31, 2013 -* Version 0.17 released on February 1, 2011 -* Version 0.16 released on September 24, 2010 -* Version 0.15 released on June 6, 2010 -* Version 0.14 released on February 5, 2010 -* Version 0.13 released on August 13, 2009 -* Version 0.12 released on June 9, 2009 -* Version 0.11 released on January 26, 2009 -* Version 0.10 released on October 15, 2008 -* Version 0.9 released on August 23, 2008 -* Version 0.8 released on April 20, 2008 -* Version 0.7 released on March 12, 2008 -* Version 0.6 released on January 13, 2008 -* Version 0.5 released on November 24, 2007 -* Version 0.4 released on November 3, 2007 -* Version 0.3 released on October 5, 2007 -* Version 0.2 released on October 2, 2007 -* Version 0.1 released on September 27, 2007 - -1. Download & installation --------------------------- - -Mpmath requires Python 2.7 or 3.4 (or later versions). It has been tested -with CPython 2.7, 3.4 through 3.7 and for PyPy. - -The latest release of mpmath can be downloaded from the mpmath -website and from https://github.com/fredrik-johansson/mpmath/releases - -It should also be available in the Python Package Index at -https://pypi.python.org/pypi/mpmath - -To install latest release of Mpmath with pip, simply run - -``pip install mpmath`` - -Or unpack the mpmath archive and run - -``python setup.py install`` - -Mpmath can also be installed using - -``python -m easy_install mpmath`` - -The latest development code is available from -https://github.com/fredrik-johansson/mpmath - -See the main documentation for more detailed instructions. - -2. Running tests ----------------- - -The unit tests in mpmath/tests/ can be run via the script -runtests.py, but it is recommended to run them with py.test -(http://codespeak.net/py/dist/index.html), especially -to generate more useful reports in case there are failures. - -You may also want to check out the demo scripts in the demo -directory. - -The master branch is automatically tested by Travis CI. - -3. Documentation ----------------- - -Documentation in reStructuredText format is available in the -doc directory included with the source package. These files -are human-readable, but can be compiled to prettier HTML using -the build.py script (requires Sphinx, http://sphinx.pocoo.org/). - -See setup.txt in the documentation for more information. - -The most recent documentation is also available in HTML format: - -http://mpmath.org/doc/current/ - -4. Known problems ------------------ - -Mpmath is a work in progress. Major issues include: - -* Some functions may return incorrect values when given extremely - large arguments or arguments very close to singularities. - -* Directed rounding works for arithmetic operations. It is implemented - heuristically for other operations, and their results may be off by one - or two units in the last place (even if otherwise accurate). - -* Some IEEE 754 features are not available. Inifinities and NaN are - partially supported; denormal rounding is currently not available - at all. - -* The interface for switching precision and rounding is not finalized. - The current method is not threadsafe. - -5. Help and bug reports ------------------------ - -General questions and comments can be sent to the mpmath mailinglist, -mpmath@googlegroups.com - -You can also report bugs and send patches to the mpmath issue tracker, -https://github.com/fredrik-johansson/mpmath/issues diff --git a/src/geophires_x/References/S-DAC-GT.py b/src/geophires_x/References/S-DAC-GT.py deleted file mode 100644 index 5552fb3f..00000000 --- a/src/geophires_x/References/S-DAC-GT.py +++ /dev/null @@ -1,972 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# ### Solid Sorbent Direct Air Capture Using Geothermal Energy Resources -# # (S-DAC-GT) -# # Model For Region Specific Economic Analysis -# -# ### SPE-215735-MS -# -# ### Conference: Session: 02 - Technology Systems and Strategy for the Energy Transition -# ### August 2023 -# -# #### Paper Authors: Timur Kuru, Keivan Khaleghi, and Silviu Livescu -# #### University of Texas at Austin, United States -# -# #### Primary coder: Timur Kuru -# -# #### Prepared 6/13/2023 - -# In[ ]: - - -# Imports and constants -import numpy as np -import matplotlib.pyplot as plt -import tkinter as tk -import tkinter.font as tkfont -import tkinter.messagebox as tkmb - -# from tkinter import messagebox -from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg - -# Global parameter - Capital Recovery Rate or Fixed Charge Factor - set initially for definitions -CRF = 0.1175 - - -# In[ ]: - - -# Function definitions - -# CRF calculator. Also Fixed Charge Factor - FCF -# Default set to 11.75%, or calculated value for project duration of 20 years with WACC of 10% -def calculate_CRF(*args): - bold_font = tkfont.Font(weight="bold", size=10) - try: - wacc = float(wacc_entry.get())/100 - num_years = float(num_years_entry.get()) - - # Validate the range for WACC - if not (wacc_min/100 <= wacc <= wacc_max/100): - raise ValueError("WACC should be between {:.1f}% and {:.0f}%".format(wacc_min, wacc_max)) - - # Validate the range for Number of years - if not (num_years_min <= num_years <= num_years_max): - raise ValueError("Number of years should be between {:.0f} and {:0f}".format(num_years_min, num_years_max)) - - CRF = (wacc*(1+wacc)**num_years)/((1+wacc)**num_years-1) - CRF_label.config(text="Calculated Fixed Charge Factor (FCF): {:.2f}%".format(CRF*100), font=bold_font, fg="black") - except ValueError as e: - CRF_label.config(text=str(e), fg="red") - -# Command to close main parameter input window -# Other "close window" commands are defined within child-window functions -def close_window(): - popup_window.destroy() - - -# In[ ]: - - -# Function definitions - -# Parameter range check -# Used prior to LCOD and CO2 Intensity calculation for results chart and sensitivity chart generation -# Produces an error window if a parameter is out of range, and returns True if parameter is outside of range -def range_check(): - wacc = float(wacc_entry.get())/100 - num_years = float(num_years_entry.get()) - CAPEX = float(CAPEX_entry.get()) - OPEX = float(OPEX_entry.get()) - elec = float(elec_entry.get()) - therm = float(therm_entry.get()) - NG_price = float(NG_price_entry.get()) - power_cost = float(power_cost_entry.get()) - power_co2intensity = float(power_co2intensity_entry.get()) - CAPEX_mult = float(CAPEX_mult_entry.get()) - OPEX_mult = float(OPEX_mult_entry.get()) - therm_index = float(therm_index_entry.get()) - depth = float(depth_entry.get()) - temp_drawdown = float(temp_drawdown_entry.get()) - transport = float(transport_entry.get()) - storage = float(storage_entry.get()) - - if not (wacc_min/100 <= wacc <= wacc_max/100): - error_message = "ERROR: WACC should be between {}% and {}%".format(wacc_min, wacc_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (num_years_min <= num_years <= num_years_max): - error_message = "ERROR: Number of years should be between {:.0f} and {:.0f}".format(num_years_min, num_years_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (CAPEX_min <= CAPEX <= CAPEX_max): - error_message = "ERROR: CAPEX should be between {} and {}".format(CAPEX_min, CAPEX_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (OPEX_min <= OPEX <= OPEX_max): - error_message = "ERROR: OPEX should be between {} and {}".format(OPEX_min, OPEX_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (elec_min <= elec <= elec_max): - error_message = "ERROR: Electrical Energy should be between {} and {}".format(elec_min, elec_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (therm_min <= therm <= therm_max): - error_message = "ERROR: Thermal Energy should be between {} and {}".format(therm_min, therm_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (NG_price_min <= NG_price <= NG_price_max): - error_message = "ERROR: Natural Gas Price should be between {} and {}".format(NG_price_min, NG_price_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (power_cost_min <= power_cost <= power_cost_max): - error_message = "ERROR: Electricity Price should be between {} and {}".format(power_cost_min, power_cost_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (power_co2intensity_min <= power_co2intensity <= power_co2intensity_max): - error_message = "ERROR: CO2 Intensity of Electricity should be between {} and {}".format(power_co2intensity_min, power_co2intensity_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (CAPEX_mult_min <= CAPEX_mult <= CAPEX_mult_max): - error_message = "ERROR: CAPEX Multiplier should be between {} and {}".format(CAPEX_mult_min, CAPEX_mult_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (OPEX_mult_min <= OPEX_mult <= OPEX_mult_max): - error_message = "ERROR: OPEX Multiplier should be between {} and {}".format(OPEX_mult_min, OPEX_mult_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (therm_index_min <= therm_index <= therm_index_max): - error_message = "ERROR: S-DAC Thermal Energy Multiplier should be between {} and {}".format(therm_index_min, therm_index_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (depth_min <= depth <= depth_max): - error_message = "ERROR: Geothermal Reservoir Depth should be between {} and {}".format(depth_min, depth_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (temp_drawdown_min <= temp_drawdown <= temp_drawdown_max): - error_message = "ERROR: Geothermal Reservoir Temperature Drawdown should be between {} and {}".format(temp_drawdown_min, temp_drawdown_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (transport_min <= transport <= transport_max): - error_message = "ERROR: CO2 Transportation Cost should be between {} and {}".format(transport_min, transport_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (storage_min <= storage <= storage_max): - error_message = "ERROR: CO2 Storage Cost should be between {} and {}".format(storage_min, storage_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - return(False) - - - -# In[ ]: - - -# Function definitions - -# Calculate Levelized cost of heat and ratio of electric power to heat power -# LCOH calculated in USD -# Power ratio calculated as kWh_e / kWh_th --> used for calculating CO2 footprint of geothermal energy -# inputs are cost of electricity, regional capex and opex multipliers, -# depth of geothermal reservoir (assumed to be 120degC), and long-term thermal drawdown of thermal drawdown -def geo_therm_cost(power_cost, CAPEX_mult, OPEX_mult, depth, temp_drawdown): - # Update NREL 2016 model for 2022 - # Inflation 2017 thru 2022 1H - Inflation = 1.189 - # 2016 - Sep 2022 - EIA drilling prod report - Drilling_efficiency_factor = 1.61 - # Thermal capacity of water - H2O_thermal_capacity = 0.001163 # kWh/kg C - # Plant capacity factor - Capacity_factor = 0.9 - - # NREL 2016 Model for new well adjusted for inflation - NREL_depth = 4101 # feet - NREL_CAPEX = 3712500 * Inflation # USD, excludes drilling - NREL_CAPEX_drill = 2112500 * Inflation # USD - NREL_drill_per_foot = NREL_CAPEX_drill/NREL_depth # USD/foot - NREL_pumping = 1980215 # kWh - NREL_pump_per_foot = NREL_pumping/NREL_depth # kWh/foot - NREL_inhibitor = 50000 * Inflation # USD - NREL_labor = 100000 * Inflation # USD - NREL_reinjection = 127130 * Inflation # USD - - # Normalize for region - CAPEX = NREL_CAPEX * CAPEX_mult - CAPEX_drill = depth * NREL_drill_per_foot / Drilling_efficiency_factor - pump_kwh = depth * NREL_pump_per_foot - pump_cost = pump_kwh * power_cost - inhibitor = NREL_inhibitor * OPEX_mult - labor = NREL_labor * OPEX_mult - reinjection = NREL_reinjection / NREL_depth * depth * OPEX_mult - - # total costs - CAPEX_total = CAPEX + CAPEX_drill - OPEX_total = pump_cost + inhibitor + labor + reinjection - - # total thermal energy generation - Production_temp = 120 - temp_drawdown # degC - Injection_temp = 80 # degC - Flow_rate = 89 # L/s - Thermal_capacity = (Production_temp-Injection_temp)*Flow_rate*H2O_thermal_capacity*60*60 # kW - Annual_op_hrs = 365*24*Capacity_factor # hours - Therm_total = Thermal_capacity * Annual_op_hrs # kWh - - # Levelized cost of heat (LCOH) - LCOH = (CAPEX_total*CRF + OPEX_total)/Therm_total # $/kWh_therm - - kWh_e_per_kWh_th = pump_kwh / Therm_total - - return (LCOH, kWh_e_per_kWh_th) - - -# In[ ]: - - -#Function definitions - -# Function to create results bar chart child window -# Calculates and charts levelized cost of DAC (LCOD) and CO2 intensity based on economic, DAC technical, -# and region specific parameters obtained from main parameter input window -# LDAC is in USD, CO2 intensity is defined as units of CO2 emitted for each unit of DAC -# Outputs 2 bart charts showing 3 DAC systems using different sources for thermal heat: baseline 100% electric, -# natural gas, and geothermal -def create_bar_charts(): - CAPEX = float(CAPEX_entry.get()) - OPEX = float(OPEX_entry.get()) - elec = float(elec_entry.get()) - therm = float(therm_entry.get()) - NG_price = float(NG_price_entry.get()) - power_cost = float(power_cost_entry.get()) - power_co2intensity = float(power_co2intensity_entry.get()) - CAPEX_mult = float(CAPEX_mult_entry.get()) - OPEX_mult = float(OPEX_mult_entry.get()) - therm_index = float(therm_index_entry.get()) - depth = float(depth_entry.get()) - temp_drawdown = float(temp_drawdown_entry.get()) - transport = float(transport_entry.get()) - storage = float(storage_entry.get()) - - # Ensure parameters are within range. If not, exit function without completing calculation or generating charts - if (range_check()): - return() - - ng_co2intensity = 0.194965384 # tonne/MWh_th - - CAPEX = CAPEX * CRF - CAPEX = CAPEX * CAPEX_mult - OPEX = OPEX * OPEX_mult - therm = therm * therm_index - power_totalcost = elec * power_cost - elec_heat_totalcost = therm * power_cost - NG_price = NG_price / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = therm * NG_price - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(power_cost, CAPEX_mult, OPEX_mult, depth, temp_drawdown) - geothermal_totalcost = LCOH*therm - co2_power = elec/1000*power_co2intensity - co2_elec_heat = therm/1000*power_co2intensity - co2_ng = therm/1000*ng_co2intensity - co2_geothermal = therm*kWh_e_per_kWh_th/1000*power_co2intensity - - LCOD_elec = CAPEX+OPEX+power_totalcost+elec_heat_totalcost+storage+transport - LCOD_ng = CAPEX+OPEX+power_totalcost+NG_totalcost+storage+transport - LCOD_geo = CAPEX+OPEX+power_totalcost+geothermal_totalcost+storage+transport - - CO2total_elec = co2_power + co2_elec_heat - CO2total_ng = co2_power + co2_ng - CO2total_geo = co2_power + co2_geothermal - - # Temporary print lines for debugging - #print("Total LCOD 100% electric: ", LCOD_elec) - #print("Total LCOD natural gas: ", LCOD_ng) - #print("Total LCOD S-DAC-GT: ", LCOD_geo) - #print("Total CO2 Intensity 100% electric: ", CO2total_elec) - #print("Total CO2 Intensity natural gas: ", CO2total_ng) - #print("Total CO2 Intensity S-DAC-GT: ", CO2total_geo) - - # Create data for the bar charts - x = ['100% electric', 'Natural Gas', 'S-DAC-GT'] - y_LCOD = [LCOD_elec,LCOD_ng,LCOD_geo] - y_CO2 = [CO2total_elec,CO2total_ng,CO2total_geo] - - colors = [(31/255, 119/255, 180/255), (214/255, 39/255, 40/255), (44/255, 160/255, 44/255)] - - figure, (plt1, plt2) = plt.subplots(1,2,figsize=(10, 5)) - LCOD_bars = plt1.bar(x, y_LCOD,color=colors, edgecolor='black') - plt1.set_ylabel('USD'); - plt1.set_title('Levelized Cost of DAC (LCOD)') - - # Add labels for plt1 - for bar in LCOD_bars: - yval = bar.get_height() - plt1.text(bar.get_x() + bar.get_width()/2, yval, int(yval), va='bottom', ha='center') - - CO2_bars = plt2.bar(x, y_CO2,color=colors, edgecolor='black') - plt2.set_ylabel('Units CO2 Emissions per Unit DAC'); - plt2.set_title('S-DAC CO2 Intensity') - - # Add labels for plt2 - for bar in CO2_bars: - yval = bar.get_height() - plt2.text(bar.get_x() + bar.get_width()/2, yval, round(yval, 1), va='bottom', ha='center') - - chart_window = tk.Toplevel(popup_window) - chart_window.title('Results Charts') - chart_window.geometry('800x400') - - canvas = FigureCanvasTkAgg(figure, master=chart_window) - canvas.draw() - canvas.get_tk_widget().pack() - - # close window command - closes only bar chart child window - def close_chart_window(): - chart_window.destroy() - - close_button = tk.Button(chart_window, text="Close", command=close_chart_window) - close_button.pack(pady=10) - - plt.close(figure) - - -# In[ ]: - - -#Function definitions - -# Function to create sensitivity chart child window -# Calculates and charts sensititivity of LCOD and CO2 intensity for only geothermal DAC system to all input parameters -# "Sensitivity delta" allows user to set increase/decrease of each parameter. Default is +/- 25% -def sensitivity_analysis(): - - # Ensure parameters are within range. If not, exit function without completing calculation or generating charts - if (range_check()): - return() - - global canvas - canvas = None # Start with no canvas - - bold_font = tkfont.Font(weight="bold", size=10) - italic_font = tkfont.Font(slant="italic", size=10) - - sensitivity_window = tk.Toplevel(popup_window) - sensitivity_window.title('S-DAC-GT Sensitivity') - sensitivity_window.geometry('1000x800') - - delta_min = 0 - delta_max = 100 - default_delta = 25 - - sensitivity_frame = tk.Frame(sensitivity_window) - sensitivity_frame.pack(side=tk.TOP, fill=tk.X) - - empty_label = tk.Label(sensitivity_frame, text="") - empty_label.grid(row=0, column=0, columnspan=2, padx=125, pady=5) - delta_label = tk.Label(sensitivity_frame, text="Sensitivity Delta:", font=bold_font) - delta_label.grid(row=0, column=5, padx=10, pady=5, sticky=tk.W) - delta_entry = tk.Entry(sensitivity_frame, width=10, justify=tk.RIGHT) - delta_entry.insert(tk.END, default_delta) - delta_entry.grid(row=0, column=6, padx=10, pady=5) - delta_unit_label = tk.Label(sensitivity_frame, text="%", font=bold_font) - delta_unit_label.grid(row=0, column=7, padx=0, pady=5, sticky=tk.W) - delta_range_label = tk.Label(sensitivity_frame, text="(Range: {:.0f} - {:.0f})".format(delta_min, delta_max), font=bold_font) - delta_range_label.grid(row=0, column=8, padx=10, pady=5, sticky=tk.W) - note_label = tk.Label(sensitivity_frame, text="Note: Sensitivity calculation is constrained by min/max of allowable parameter range.", font=italic_font) - note_label.grid(row=1, column=5, columnspan=5, padx=10, pady=5, sticky=tk.W) - - def update_sensitivity(): - delta = float(delta_entry.get()) / 100 - - CAPEX = float(CAPEX_entry.get()) # vars[0] - OPEX = float(OPEX_entry.get()) # vars[1] - elec = float(elec_entry.get()) # vars[2] - therm = float(therm_entry.get()) # vars[3] - NG_price = float(NG_price_entry.get()) # vars[4] - power_cost = float(power_cost_entry.get()) # vars[5] - power_co2intensity = float(power_co2intensity_entry.get()) # vars[6] - CAPEX_mult = float(CAPEX_mult_entry.get()) # vars[7] - OPEX_mult = float(OPEX_mult_entry.get()) # vars[8] - therm_index = float(therm_index_entry.get()) # vars[9] - depth = float(depth_entry.get()) # vars[10] - temp_drawdown = float(temp_drawdown_entry.get()) # vars[11] - transport = float(transport_entry.get()) # vars[12] - storage = float(storage_entry.get()) # vars[13] - - - vars_initial = [CAPEX,OPEX,elec,therm,NG_price, - power_cost,power_co2intensity,CAPEX_mult, - OPEX_mult,therm_index,depth,temp_drawdown, - transport,storage] - - # Used to ensure sensitivity does not exceed parameter range - vars_minmax = [[CAPEX_min,CAPEX_max], - [OPEX_min,OPEX_max], - [elec_min,elec_max], - [therm_min,therm_max], - [NG_price_min,NG_price_max], - [power_cost_min,power_cost_max], - [power_co2intensity_min,power_co2intensity_max], - [CAPEX_mult_min,CAPEX_mult_max], - [OPEX_mult_min,OPEX_mult_max], - [therm_index_min,therm_index_max], - [depth_min,depth_max], - [temp_drawdown_min,temp_drawdown_max], - [transport_min,transport_max], - [storage_min,storage_max]] - - ng_co2intensity = 0.194965384 # tonne/MWh_th - - # Calculate base values - CAPEX = CAPEX * CRF - CAPEX = CAPEX * CAPEX_mult - OPEX = OPEX * OPEX_mult - therm = therm * therm_index - power_totalcost = elec * power_cost - elec_heat_totalcost = therm * power_cost - NG_price = NG_price / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = therm * NG_price - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(power_cost, CAPEX_mult, OPEX_mult, depth, temp_drawdown) - geothermal_totalcost = LCOH*therm - co2_power = elec/1000*power_co2intensity - co2_elec_heat = therm/1000*power_co2intensity - co2_ng = therm/1000*ng_co2intensity - co2_geothermal = therm*kWh_e_per_kWh_th/1000*power_co2intensity - - LCOD_elec_base = CAPEX+OPEX+power_totalcost+elec_heat_totalcost+storage+transport - LCOD_ng_base = CAPEX+OPEX+power_totalcost+NG_totalcost+storage+transport - LCOD_geo_base = CAPEX+OPEX+power_totalcost+geothermal_totalcost+storage+transport - - CO2total_elec_base = co2_power + co2_elec_heat - CO2total_ng_base = co2_power + co2_ng - CO2total_geo_base = co2_power + co2_geothermal - - vars = vars_initial[:] - - LCOD_sensitivity_increase = [] - LCOD_sensitivity_decrease = [] - - CO2_sensitivity_increase = [] - CO2_sensitivity_decrease = [] - - for i, var in enumerate(vars): - - #ensure that the sensitivity parameter does not exceed the min/max of parameter range - var_min, var_max = vars_minmax[i] - - # Calculate sensitivity for increase - vars[i] = var*(1+delta) - - vars[i] = min(vars[i],var_max) - - vars[0] = vars[0] * CRF - vars[0] = vars[0] * vars[7] - vars[1] = vars[1] * vars[8] - vars[3] = vars[3] * vars[9] - power_totalcost = vars[2] * vars[5] - elec_heat_totalcost = vars[3] * vars[5] - vars[4] = vars[4] / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = vars[3] * vars[4] - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(vars[5], vars[7], vars[8], vars[10], vars[11]) - geothermal_totalcost = LCOH*vars[3] - co2_power = vars[2]/1000*vars[6] - co2_elec_heat = vars[3]/1000*vars[6] - co2_ng = vars[3]/1000*ng_co2intensity - co2_geothermal = vars[3]*kWh_e_per_kWh_th/1000*vars[6] - - LCOD_elec = vars[0]+vars[1]+power_totalcost+elec_heat_totalcost+vars[13]+vars[12] - LCOD_ng = vars[0]+vars[1]+power_totalcost+NG_totalcost+vars[13]+vars[12] - LCOD_geo = vars[0]+vars[1]+power_totalcost+geothermal_totalcost+vars[13]+vars[12] - - CO2total_elec = co2_power + co2_elec_heat - CO2total_ng = co2_power + co2_ng - CO2total_geo = co2_power + co2_geothermal - - LCOD_increase = LCOD_geo - LCOD_geo_base - CO2_increase = CO2total_geo - CO2total_geo_base - - # reset vars - vars = vars_initial[:] - - # Calculate sensitivity for decrease - vars[i] = var*(1-delta) - - vars[i] = max(vars[i],var_min) - - vars[0] = vars[0] * CRF - vars[0] = vars[0] * vars[7] - vars[1] = vars[1] * vars[8] - vars[3] = vars[3] * vars[9] - power_totalcost = vars[2] * vars[5] - elec_heat_totalcost = vars[3] * vars[5] - vars[4] = vars[4] / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = vars[3] * vars[4] - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(vars[5], vars[7], vars[8], vars[10], vars[11]) - geothermal_totalcost = LCOH*vars[3] - co2_power = vars[2]/1000*vars[6] - co2_elec_heat = vars[3]/1000*vars[6] - co2_ng = vars[3]/1000*ng_co2intensity - co2_geothermal = vars[3]*kWh_e_per_kWh_th/1000*vars[6] - - LCOD_elec = vars[0]+vars[1]+power_totalcost+elec_heat_totalcost+vars[13]+vars[12] - LCOD_ng = vars[0]+vars[1]+power_totalcost+NG_totalcost+vars[13]+vars[12] - LCOD_geo = vars[0]+vars[1]+power_totalcost+geothermal_totalcost+vars[13]+vars[12] - - CO2total_elec = co2_power + co2_elec_heat - CO2total_ng = co2_power + co2_ng - CO2total_geo = co2_power + co2_geothermal - - LCOD_decrease = LCOD_geo - LCOD_geo_base - CO2_decrease = CO2total_geo - CO2total_geo_base - - LCOD_sensitivity_increase.append(LCOD_increase) - LCOD_sensitivity_decrease.append(LCOD_decrease) - - CO2_sensitivity_increase.append(CO2_increase) - CO2_sensitivity_decrease.append(CO2_decrease) - - # reset vars - vars = vars_initial[:] - - global canvas - if canvas is not None: - canvas.get_tk_widget().pack_forget() # Remove the old canvas from the layout - - # Generate parameter labels - parameters = ["CAPEX","OPEX","Electrical Energy","Thermal Energy","Natural Gas Price", - "Electric Power Cost","CO2 Intensity of Electricity","CAPEX Multiplier", - "OPEX Multiplier","S-DAC Thermal Energy Multiplier","Geothermal Reservoir Depth", - "Reservoir Temperature Drawdown","CO2 Transportation","CO2 Storage"] - - pos = np.arange(len(parameters)) - - figure, (plt1, plt2) = plt.subplots(1,2,figsize=(10, 10)) - figure.subplots_adjust(left=0.25, bottom=0.1, right=0.9, top=0.9, wspace=0.2, hspace=0) - - plt1.barh(pos, LCOD_sensitivity_increase, align='center', color='#cc4b37', label='Increase',edgecolor='black') - plt1.barh(pos, LCOD_sensitivity_decrease, align='center', color='#66b447', label='Decrease',edgecolor='black') - - plt2.barh(pos, CO2_sensitivity_increase, align='center', color='#cc4b37', label='Increase',edgecolor='black') - plt2.barh(pos, CO2_sensitivity_decrease, align='center', color='#66b447', label='Decrease',edgecolor='black') - - plt1.set_xlabel('Change in USD'); - plt1.set_title('Levelized Cost of DAC Sensitivity') - - plt2.set_xlabel('Change in CO2 emissions per unit DAC'); - plt2.set_title('CO2 Intensity Sensitivity') - - plt1.set_yticks(pos) - plt1.set_yticklabels(parameters) - plt1.legend() - plt1.grid(axis='x') - - plt2.legend() - plt2.grid(axis='x') - plt2.yaxis.set_ticks([]) - - canvas = FigureCanvasTkAgg(figure, master=sensitivity_window) - canvas.draw() - canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True) - - plt.close(figure) - - calculate_button = tk.Button(sensitivity_frame, text="Calculate", font=bold_font, command=update_sensitivity) - calculate_button.grid(row=0, column=9, padx=10, pady=5) - - # close window command - closes only sensitivity chart child window - def close_sensitivity_window(): - sensitivity_window.destroy() - - close_button = tk.Button(sensitivity_window, text="Close", command=close_sensitivity_window) - close_button.pack(side=tk.BOTTOM, pady=10) - - - return () - - - -# In[ ]: - - -# Launch parent/main interactive window for parameter input -popup_window = tk.Tk() -bold_underline_font = tkfont.Font(family="Helvetica", size=10, weight="bold", underline=True) -popup_window.title("S-DAC Cost and CO2 Intensity Parameters"); - - -# In[ ]: - - -# Parameter input window: -# Cost of Capital section -# Customizable range values -wacc_min = 0.1 -wacc_max = 30 -num_years_min = 1 -num_years_max = 100 - -grid_row = 0 - -# Create a title label -title_label = tk.Label(popup_window, text="Economic Parameters", font=("Helvetica", 14, "bold")) -title_label.grid(row=grid_row, column=0, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create a Range column label -title_label = tk.Label(popup_window, text="Range", font=bold_underline_font) -title_label.grid(row=grid_row, column=3, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create labels for the inputs and range -wacc_label = tk.Label(popup_window, text="WACC") -wacc_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -wacc_range_label = tk.Label(popup_window, text="({:.1f} - {:.0f})".format(wacc_min, wacc_max)) -wacc_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -num_years_label = tk.Label(popup_window, text="Number of Years (N)") -num_years_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -num_years_range_label = tk.Label(popup_window, text="({} - {})".format(num_years_min, num_years_max)) -num_years_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_wacc = 10 -default_num_years = 20 - -wacc_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -wacc_entry.insert(tk.END, default_wacc) -wacc_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -wacc_unit_label = tk.Label(popup_window, text="%") -wacc_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -num_years_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -num_years_entry.insert(tk.END, default_num_years) -num_years_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -num_years_unit_label = tk.Label(popup_window, text="years") -num_years_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -# Create a label to display the output -CRF_label = tk.Label(popup_window, text="FRF: ") -CRF_label.grid(row=grid_row+3, column=0, columnspan=2, padx=10, pady=5, sticky=tk.W) - -# Set the output label to update continuously -wacc_entry.bind("", calculate_CRF) -num_years_entry.bind("", calculate_CRF) - -calculate_CRF() # Calculate initial CRF value based on default inputs - - -# In[ ]: - - -# Parameter input window: -# DAC inputs section -# Customizable range values -CAPEX_min = 100 -CAPEX_max = 5000 -OPEX_min = 10 -OPEX_max = 500 -elec_min = 100 -elec_max = 5000 -therm_min = 100 -therm_max = 5000 - -grid_row = 5 - -# Create a title label -title_label = tk.Label(popup_window, text="DAC Technical Cost and Energy Parameters", font=("Helvetica", 14, "bold")) -title_label.grid(row=grid_row, column=0, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create labels for the inputs and range -CAPEX_label = tk.Label(popup_window, text="CAPEX") -CAPEX_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -CAPEX_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(CAPEX_min, CAPEX_max)) -CAPEX_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -OPEX_label = tk.Label(popup_window, text="OPEX") -OPEX_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -OPEX_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(OPEX_min, OPEX_max)) -OPEX_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -elec_label = tk.Label(popup_window, text="Electrical Energy") -elec_label.grid(row=grid_row+3, column=0, padx=10, pady=5, sticky=tk.W) -elec_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(elec_min, elec_max)) -elec_range_label.grid(row=grid_row+3, column=3, padx=10, pady=5, sticky=tk.W) - -therm_label = tk.Label(popup_window, text="Thermal Energy") -therm_label.grid(row=grid_row+4, column=0, padx=10, pady=5, sticky=tk.W) -therm_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(therm_min, therm_max)) -therm_range_label.grid(row=grid_row+4, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_CAPEX = 1379 -default_OPEX = 56 -default_elec = 916 -default_therm = 1447 - -CAPEX_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -CAPEX_entry.insert(tk.END, default_CAPEX) -CAPEX_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -CAPEX_unit_label = tk.Label(popup_window, text="USD per tonne CO2 capacity") -CAPEX_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -OPEX_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -OPEX_entry.insert(tk.END, default_OPEX) -OPEX_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -OPEX_unit_label = tk.Label(popup_window, text="USD per tonne CO2") -OPEX_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -elec_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -elec_entry.insert(tk.END, default_elec) -elec_entry.grid(row=grid_row+3, column=1, padx=10, pady=5) - -elec_unit_label = tk.Label(popup_window, text="kWh_e per tonne CO2") -elec_unit_label.grid(row=grid_row+3, column=2, padx=0, pady=5, sticky=tk.W) - -therm_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -therm_entry.insert(tk.END, default_therm) -therm_entry.grid(row=grid_row+4, column=1, padx=10, pady=5) - -therm_unit_label = tk.Label(popup_window, text="kW_th per tonne CO2") -therm_unit_label.grid(row=grid_row+4, column=2, padx=0, pady=5, sticky=tk.W) - - -# In[ ]: - - -# Parameter input window: -# Regional factors section - Part 1 -# Customizable range values - -# NG_price - natural gas $/Mcf -# power_cost - electric power $/kWh -# power_co2intnesity - CO2 emissions per MWh -# CAPEX_mult = NG_price multiplier -# OPEX_mult - power_cost multiplier - -NG_co2intensity = 0.194965384 # tonne CO2 per kWh_CAPEX_multal -NG_kWh_per_Mcf = 282.6142719 - - -NG_price_min = 0.5 -NG_price_max = 100 -power_cost_min = 0.01 -power_cost_max = 1 -power_co2intensity_min = 0 -power_co2intensity_max = 1 -CAPEX_mult_min = 0.5 -CAPEX_mult_max = 3 -OPEX_mult_min = 0.5 -OPEX_mult_max = 3 - -grid_row = 10 - -# Create a title label -title_label = tk.Label(popup_window, text="Regional Parameters", font=("Helvetica", 14, "bold")) -title_label.grid(row=grid_row, column=0, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create labels for the inputs and range -NG_price_label = tk.Label(popup_window, text="Natural Gas Price") -NG_price_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -NG_price_range_label = tk.Label(popup_window, text="({:.2f} - {:.2f})".format(NG_price_min, NG_price_max)) -NG_price_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -power_cost_label = tk.Label(popup_window, text="Electricity Price") -power_cost_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -power_cost_range_label = tk.Label(popup_window, text="({:.2f} - {:.2f})".format(power_cost_min, power_cost_max)) -power_cost_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -power_co2intensity_label = tk.Label(popup_window, text="CO2 Intensity of Electricity") -power_co2intensity_label.grid(row=grid_row+3, column=0, padx=10, pady=5, sticky=tk.W) -power_co2intensity_range_label = tk.Label(popup_window, text="({:.2f} - {:.2f})".format(power_co2intensity_min, power_co2intensity_max)) -power_co2intensity_range_label.grid(row=grid_row+3, column=3, padx=10, pady=5, sticky=tk.W) - -CAPEX_mult_label = tk.Label(popup_window, text="CAPEX Multiplier") -CAPEX_mult_label.grid(row=grid_row+4, column=0, padx=10, pady=5, sticky=tk.W) -CAPEX_mult_range_label = tk.Label(popup_window, text="({:.1f} - {:.1f})".format(CAPEX_mult_min, CAPEX_mult_max)) -CAPEX_mult_range_label.grid(row=grid_row+4, column=3, padx=10, pady=5, sticky=tk.W) - -OPEX_mult_label = tk.Label(popup_window, text="OPEX Multiplier") -OPEX_mult_label.grid(row=grid_row+5, column=0, padx=10, pady=5, sticky=tk.W) -OPEX_mult_range_label = tk.Label(popup_window, text="({:.1f} - {:.1f})".format(OPEX_mult_min, OPEX_mult_max)) -OPEX_mult_range_label.grid(row=grid_row+5, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_NG_price = 5 -default_power_cost = 0.15 -default_power_co2intensity = 0.40 -default_CAPEX_mult = 1.0 -default_OPEX_mult = 1.0 - -NG_price_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -NG_price_entry.insert(tk.END, default_NG_price) -NG_price_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -NG_price_unit_label = tk.Label(popup_window, text="USD per McF") -NG_price_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -power_cost_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -power_cost_entry.insert(tk.END, default_power_cost) -power_cost_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -power_cost_unit_label = tk.Label(popup_window, text="USD per kWh") -power_cost_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -power_co2intensity_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -power_co2intensity_entry.insert(tk.END, default_power_co2intensity) -power_co2intensity_entry.grid(row=grid_row+3, column=1, padx=10, pady=5) - -power_co2intensity_unit_label = tk.Label(popup_window, text="tonne CO2 emitted per MWh") -power_co2intensity_unit_label.grid(row=grid_row+3, column=2, padx=0, pady=5, sticky=tk.W) - -CAPEX_mult_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -CAPEX_mult_entry.insert(tk.END, default_CAPEX_mult) -CAPEX_mult_entry.grid(row=grid_row+4, column=1, padx=10, pady=5) - -CAPEX_mult_unit_label = tk.Label(popup_window, text="") -CAPEX_mult_unit_label.grid(row=grid_row+4, column=2, padx=0, pady=5, sticky=tk.W) - -OPEX_mult_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -OPEX_mult_entry.insert(tk.END, default_OPEX_mult) -OPEX_mult_entry.grid(row=grid_row+5, column=1, padx=10, pady=5) - -OPEX_mult_unit_label = tk.Label(popup_window, text="") -OPEX_mult_unit_label.grid(row=grid_row+5, column=2, padx=0, pady=5, sticky=tk.W) - - -# In[ ]: - - -# Parameter input window: -# Regional factors section - Part 2 -# Customizable range values - -# therm_index - Thermal energy multiplier due to avg humidity/temperature -# depth - depth of 120 degC formation -# temp_drawdown - steady state temperature drawdown over goetransport_indexal reservoir in degC -# transport - $ per tonne for -# storage - $ per tonne for geological storage - -therm_index_min = 0.5 -therm_index_max = 1.8 -depth_min = 3000 -depth_max = 20000 -temp_drawdown_min = 0 -temp_drawdown_max = 39 -transport_min = 1 -transport_max = 50 -storage_min = 5 -storage_max = 50 - -grid_row = 15 - -# Create labels for the inputs and range -therm_index_label = tk.Label(popup_window, text="S-DAC Thermal Energy Multiplier") -therm_index_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -therm_index_range_label = tk.Label(popup_window, text="({:.1f} - {:.1f})".format(therm_index_min, therm_index_max)) -therm_index_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -depth_label = tk.Label(popup_window, text="Geothermal Reservoir Depth") -depth_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -depth_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(depth_min, depth_max)) -depth_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -temp_drawdown_label = tk.Label(popup_window, text="Geothermal Reservoir Temperature Drawdown") -temp_drawdown_label.grid(row=grid_row+3, column=0, padx=10, pady=5, sticky=tk.W) -temp_drawdown_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(temp_drawdown_min, temp_drawdown_max)) -temp_drawdown_range_label.grid(row=grid_row+3, column=3, padx=10, pady=5, sticky=tk.W) - -transport_label = tk.Label(popup_window, text="CO2 Transportation Cost") -transport_label.grid(row=grid_row+4, column=0, padx=10, pady=5, sticky=tk.W) -transport_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(transport_min, transport_max)) -transport_range_label.grid(row=grid_row+4, column=3, padx=10, pady=5, sticky=tk.W) - -storage_label = tk.Label(popup_window, text="CO2 Storage Cost") -storage_label.grid(row=grid_row+5, column=0, padx=10, pady=5, sticky=tk.W) -storage_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(storage_min, storage_max)) -storage_range_label.grid(row=grid_row+5, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_therm_index = 1.0 -default_depth = 10000 -default_temp_drawdown = 10 -default_transport = 10 -default_storage = 10 - -therm_index_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -therm_index_entry.insert(tk.END, default_therm_index) -therm_index_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -therm_index_unit_label = tk.Label(popup_window, text="") -therm_index_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -depth_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -depth_entry.insert(tk.END, default_depth) -depth_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -depth_unit_label = tk.Label(popup_window, text="ft") -depth_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -temp_drawdown_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -temp_drawdown_entry.insert(tk.END, default_temp_drawdown) -temp_drawdown_entry.grid(row=grid_row+3, column=1, padx=10, pady=5) - -temp_drawdown_unit_label = tk.Label(popup_window, text="degC") -temp_drawdown_unit_label.grid(row=grid_row+3, column=2, padx=0, pady=5, sticky=tk.W) - -transport_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -transport_entry.insert(tk.END, default_transport) -transport_entry.grid(row=grid_row+4, column=1, padx=10, pady=5) - -transport_unit_label = tk.Label(popup_window, text="USD per tonne CO2") -transport_unit_label.grid(row=grid_row+4, column=2, padx=0, pady=5, sticky=tk.W) - -storage_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -storage_entry.insert(tk.END, default_storage) -storage_entry.grid(row=grid_row+5, column=1, padx=10, pady=5) - -storage_unit_label = tk.Label(popup_window, text="USD per tonne CO2") -storage_unit_label.grid(row=grid_row+5, column=2, padx=0, pady=5, sticky=tk.W) - - -# In[ ]: - - -# Display three control buttons at bottom -# First launches bar-shart child window -# Second launches sensitivity chart child window -# Third closes main window and terminates program -grid_row = 21 - -display_button = tk.Button(popup_window, text="Display Chart", command=create_bar_charts) -display_button.grid(row=grid_row, column=0, columnspan=1, padx=10, pady=10) - -display_button = tk.Button(popup_window, text="Calculate S-DAC-GT Sensitivity", command=sensitivity_analysis) -display_button.grid(row=grid_row, column=1, columnspan=1, padx=10, pady=10) - -close_button = tk.Button(popup_window, text="Close", command=close_window) -close_button.grid(row=grid_row, column=2, columnspan=1, padx=10, pady=10) - -popup_window.mainloop() - - -# In[ ]: - - - diff --git a/src/geophires_x/References/S-DAC-GT_orig.py b/src/geophires_x/References/S-DAC-GT_orig.py deleted file mode 100644 index 5552fb3f..00000000 --- a/src/geophires_x/References/S-DAC-GT_orig.py +++ /dev/null @@ -1,972 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 - -# ### Solid Sorbent Direct Air Capture Using Geothermal Energy Resources -# # (S-DAC-GT) -# # Model For Region Specific Economic Analysis -# -# ### SPE-215735-MS -# -# ### Conference: Session: 02 - Technology Systems and Strategy for the Energy Transition -# ### August 2023 -# -# #### Paper Authors: Timur Kuru, Keivan Khaleghi, and Silviu Livescu -# #### University of Texas at Austin, United States -# -# #### Primary coder: Timur Kuru -# -# #### Prepared 6/13/2023 - -# In[ ]: - - -# Imports and constants -import numpy as np -import matplotlib.pyplot as plt -import tkinter as tk -import tkinter.font as tkfont -import tkinter.messagebox as tkmb - -# from tkinter import messagebox -from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg - -# Global parameter - Capital Recovery Rate or Fixed Charge Factor - set initially for definitions -CRF = 0.1175 - - -# In[ ]: - - -# Function definitions - -# CRF calculator. Also Fixed Charge Factor - FCF -# Default set to 11.75%, or calculated value for project duration of 20 years with WACC of 10% -def calculate_CRF(*args): - bold_font = tkfont.Font(weight="bold", size=10) - try: - wacc = float(wacc_entry.get())/100 - num_years = float(num_years_entry.get()) - - # Validate the range for WACC - if not (wacc_min/100 <= wacc <= wacc_max/100): - raise ValueError("WACC should be between {:.1f}% and {:.0f}%".format(wacc_min, wacc_max)) - - # Validate the range for Number of years - if not (num_years_min <= num_years <= num_years_max): - raise ValueError("Number of years should be between {:.0f} and {:0f}".format(num_years_min, num_years_max)) - - CRF = (wacc*(1+wacc)**num_years)/((1+wacc)**num_years-1) - CRF_label.config(text="Calculated Fixed Charge Factor (FCF): {:.2f}%".format(CRF*100), font=bold_font, fg="black") - except ValueError as e: - CRF_label.config(text=str(e), fg="red") - -# Command to close main parameter input window -# Other "close window" commands are defined within child-window functions -def close_window(): - popup_window.destroy() - - -# In[ ]: - - -# Function definitions - -# Parameter range check -# Used prior to LCOD and CO2 Intensity calculation for results chart and sensitivity chart generation -# Produces an error window if a parameter is out of range, and returns True if parameter is outside of range -def range_check(): - wacc = float(wacc_entry.get())/100 - num_years = float(num_years_entry.get()) - CAPEX = float(CAPEX_entry.get()) - OPEX = float(OPEX_entry.get()) - elec = float(elec_entry.get()) - therm = float(therm_entry.get()) - NG_price = float(NG_price_entry.get()) - power_cost = float(power_cost_entry.get()) - power_co2intensity = float(power_co2intensity_entry.get()) - CAPEX_mult = float(CAPEX_mult_entry.get()) - OPEX_mult = float(OPEX_mult_entry.get()) - therm_index = float(therm_index_entry.get()) - depth = float(depth_entry.get()) - temp_drawdown = float(temp_drawdown_entry.get()) - transport = float(transport_entry.get()) - storage = float(storage_entry.get()) - - if not (wacc_min/100 <= wacc <= wacc_max/100): - error_message = "ERROR: WACC should be between {}% and {}%".format(wacc_min, wacc_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (num_years_min <= num_years <= num_years_max): - error_message = "ERROR: Number of years should be between {:.0f} and {:.0f}".format(num_years_min, num_years_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (CAPEX_min <= CAPEX <= CAPEX_max): - error_message = "ERROR: CAPEX should be between {} and {}".format(CAPEX_min, CAPEX_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (OPEX_min <= OPEX <= OPEX_max): - error_message = "ERROR: OPEX should be between {} and {}".format(OPEX_min, OPEX_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (elec_min <= elec <= elec_max): - error_message = "ERROR: Electrical Energy should be between {} and {}".format(elec_min, elec_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (therm_min <= therm <= therm_max): - error_message = "ERROR: Thermal Energy should be between {} and {}".format(therm_min, therm_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (NG_price_min <= NG_price <= NG_price_max): - error_message = "ERROR: Natural Gas Price should be between {} and {}".format(NG_price_min, NG_price_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (power_cost_min <= power_cost <= power_cost_max): - error_message = "ERROR: Electricity Price should be between {} and {}".format(power_cost_min, power_cost_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (power_co2intensity_min <= power_co2intensity <= power_co2intensity_max): - error_message = "ERROR: CO2 Intensity of Electricity should be between {} and {}".format(power_co2intensity_min, power_co2intensity_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (CAPEX_mult_min <= CAPEX_mult <= CAPEX_mult_max): - error_message = "ERROR: CAPEX Multiplier should be between {} and {}".format(CAPEX_mult_min, CAPEX_mult_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (OPEX_mult_min <= OPEX_mult <= OPEX_mult_max): - error_message = "ERROR: OPEX Multiplier should be between {} and {}".format(OPEX_mult_min, OPEX_mult_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (therm_index_min <= therm_index <= therm_index_max): - error_message = "ERROR: S-DAC Thermal Energy Multiplier should be between {} and {}".format(therm_index_min, therm_index_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (depth_min <= depth <= depth_max): - error_message = "ERROR: Geothermal Reservoir Depth should be between {} and {}".format(depth_min, depth_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (temp_drawdown_min <= temp_drawdown <= temp_drawdown_max): - error_message = "ERROR: Geothermal Reservoir Temperature Drawdown should be between {} and {}".format(temp_drawdown_min, temp_drawdown_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (transport_min <= transport <= transport_max): - error_message = "ERROR: CO2 Transportation Cost should be between {} and {}".format(transport_min, transport_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - if not (storage_min <= storage <= storage_max): - error_message = "ERROR: CO2 Storage Cost should be between {} and {}".format(storage_min, storage_max) - tkmb.showerror ("Range Error", error_message, parent=popup_window) - return(True) - - return(False) - - - -# In[ ]: - - -# Function definitions - -# Calculate Levelized cost of heat and ratio of electric power to heat power -# LCOH calculated in USD -# Power ratio calculated as kWh_e / kWh_th --> used for calculating CO2 footprint of geothermal energy -# inputs are cost of electricity, regional capex and opex multipliers, -# depth of geothermal reservoir (assumed to be 120degC), and long-term thermal drawdown of thermal drawdown -def geo_therm_cost(power_cost, CAPEX_mult, OPEX_mult, depth, temp_drawdown): - # Update NREL 2016 model for 2022 - # Inflation 2017 thru 2022 1H - Inflation = 1.189 - # 2016 - Sep 2022 - EIA drilling prod report - Drilling_efficiency_factor = 1.61 - # Thermal capacity of water - H2O_thermal_capacity = 0.001163 # kWh/kg C - # Plant capacity factor - Capacity_factor = 0.9 - - # NREL 2016 Model for new well adjusted for inflation - NREL_depth = 4101 # feet - NREL_CAPEX = 3712500 * Inflation # USD, excludes drilling - NREL_CAPEX_drill = 2112500 * Inflation # USD - NREL_drill_per_foot = NREL_CAPEX_drill/NREL_depth # USD/foot - NREL_pumping = 1980215 # kWh - NREL_pump_per_foot = NREL_pumping/NREL_depth # kWh/foot - NREL_inhibitor = 50000 * Inflation # USD - NREL_labor = 100000 * Inflation # USD - NREL_reinjection = 127130 * Inflation # USD - - # Normalize for region - CAPEX = NREL_CAPEX * CAPEX_mult - CAPEX_drill = depth * NREL_drill_per_foot / Drilling_efficiency_factor - pump_kwh = depth * NREL_pump_per_foot - pump_cost = pump_kwh * power_cost - inhibitor = NREL_inhibitor * OPEX_mult - labor = NREL_labor * OPEX_mult - reinjection = NREL_reinjection / NREL_depth * depth * OPEX_mult - - # total costs - CAPEX_total = CAPEX + CAPEX_drill - OPEX_total = pump_cost + inhibitor + labor + reinjection - - # total thermal energy generation - Production_temp = 120 - temp_drawdown # degC - Injection_temp = 80 # degC - Flow_rate = 89 # L/s - Thermal_capacity = (Production_temp-Injection_temp)*Flow_rate*H2O_thermal_capacity*60*60 # kW - Annual_op_hrs = 365*24*Capacity_factor # hours - Therm_total = Thermal_capacity * Annual_op_hrs # kWh - - # Levelized cost of heat (LCOH) - LCOH = (CAPEX_total*CRF + OPEX_total)/Therm_total # $/kWh_therm - - kWh_e_per_kWh_th = pump_kwh / Therm_total - - return (LCOH, kWh_e_per_kWh_th) - - -# In[ ]: - - -#Function definitions - -# Function to create results bar chart child window -# Calculates and charts levelized cost of DAC (LCOD) and CO2 intensity based on economic, DAC technical, -# and region specific parameters obtained from main parameter input window -# LDAC is in USD, CO2 intensity is defined as units of CO2 emitted for each unit of DAC -# Outputs 2 bart charts showing 3 DAC systems using different sources for thermal heat: baseline 100% electric, -# natural gas, and geothermal -def create_bar_charts(): - CAPEX = float(CAPEX_entry.get()) - OPEX = float(OPEX_entry.get()) - elec = float(elec_entry.get()) - therm = float(therm_entry.get()) - NG_price = float(NG_price_entry.get()) - power_cost = float(power_cost_entry.get()) - power_co2intensity = float(power_co2intensity_entry.get()) - CAPEX_mult = float(CAPEX_mult_entry.get()) - OPEX_mult = float(OPEX_mult_entry.get()) - therm_index = float(therm_index_entry.get()) - depth = float(depth_entry.get()) - temp_drawdown = float(temp_drawdown_entry.get()) - transport = float(transport_entry.get()) - storage = float(storage_entry.get()) - - # Ensure parameters are within range. If not, exit function without completing calculation or generating charts - if (range_check()): - return() - - ng_co2intensity = 0.194965384 # tonne/MWh_th - - CAPEX = CAPEX * CRF - CAPEX = CAPEX * CAPEX_mult - OPEX = OPEX * OPEX_mult - therm = therm * therm_index - power_totalcost = elec * power_cost - elec_heat_totalcost = therm * power_cost - NG_price = NG_price / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = therm * NG_price - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(power_cost, CAPEX_mult, OPEX_mult, depth, temp_drawdown) - geothermal_totalcost = LCOH*therm - co2_power = elec/1000*power_co2intensity - co2_elec_heat = therm/1000*power_co2intensity - co2_ng = therm/1000*ng_co2intensity - co2_geothermal = therm*kWh_e_per_kWh_th/1000*power_co2intensity - - LCOD_elec = CAPEX+OPEX+power_totalcost+elec_heat_totalcost+storage+transport - LCOD_ng = CAPEX+OPEX+power_totalcost+NG_totalcost+storage+transport - LCOD_geo = CAPEX+OPEX+power_totalcost+geothermal_totalcost+storage+transport - - CO2total_elec = co2_power + co2_elec_heat - CO2total_ng = co2_power + co2_ng - CO2total_geo = co2_power + co2_geothermal - - # Temporary print lines for debugging - #print("Total LCOD 100% electric: ", LCOD_elec) - #print("Total LCOD natural gas: ", LCOD_ng) - #print("Total LCOD S-DAC-GT: ", LCOD_geo) - #print("Total CO2 Intensity 100% electric: ", CO2total_elec) - #print("Total CO2 Intensity natural gas: ", CO2total_ng) - #print("Total CO2 Intensity S-DAC-GT: ", CO2total_geo) - - # Create data for the bar charts - x = ['100% electric', 'Natural Gas', 'S-DAC-GT'] - y_LCOD = [LCOD_elec,LCOD_ng,LCOD_geo] - y_CO2 = [CO2total_elec,CO2total_ng,CO2total_geo] - - colors = [(31/255, 119/255, 180/255), (214/255, 39/255, 40/255), (44/255, 160/255, 44/255)] - - figure, (plt1, plt2) = plt.subplots(1,2,figsize=(10, 5)) - LCOD_bars = plt1.bar(x, y_LCOD,color=colors, edgecolor='black') - plt1.set_ylabel('USD'); - plt1.set_title('Levelized Cost of DAC (LCOD)') - - # Add labels for plt1 - for bar in LCOD_bars: - yval = bar.get_height() - plt1.text(bar.get_x() + bar.get_width()/2, yval, int(yval), va='bottom', ha='center') - - CO2_bars = plt2.bar(x, y_CO2,color=colors, edgecolor='black') - plt2.set_ylabel('Units CO2 Emissions per Unit DAC'); - plt2.set_title('S-DAC CO2 Intensity') - - # Add labels for plt2 - for bar in CO2_bars: - yval = bar.get_height() - plt2.text(bar.get_x() + bar.get_width()/2, yval, round(yval, 1), va='bottom', ha='center') - - chart_window = tk.Toplevel(popup_window) - chart_window.title('Results Charts') - chart_window.geometry('800x400') - - canvas = FigureCanvasTkAgg(figure, master=chart_window) - canvas.draw() - canvas.get_tk_widget().pack() - - # close window command - closes only bar chart child window - def close_chart_window(): - chart_window.destroy() - - close_button = tk.Button(chart_window, text="Close", command=close_chart_window) - close_button.pack(pady=10) - - plt.close(figure) - - -# In[ ]: - - -#Function definitions - -# Function to create sensitivity chart child window -# Calculates and charts sensititivity of LCOD and CO2 intensity for only geothermal DAC system to all input parameters -# "Sensitivity delta" allows user to set increase/decrease of each parameter. Default is +/- 25% -def sensitivity_analysis(): - - # Ensure parameters are within range. If not, exit function without completing calculation or generating charts - if (range_check()): - return() - - global canvas - canvas = None # Start with no canvas - - bold_font = tkfont.Font(weight="bold", size=10) - italic_font = tkfont.Font(slant="italic", size=10) - - sensitivity_window = tk.Toplevel(popup_window) - sensitivity_window.title('S-DAC-GT Sensitivity') - sensitivity_window.geometry('1000x800') - - delta_min = 0 - delta_max = 100 - default_delta = 25 - - sensitivity_frame = tk.Frame(sensitivity_window) - sensitivity_frame.pack(side=tk.TOP, fill=tk.X) - - empty_label = tk.Label(sensitivity_frame, text="") - empty_label.grid(row=0, column=0, columnspan=2, padx=125, pady=5) - delta_label = tk.Label(sensitivity_frame, text="Sensitivity Delta:", font=bold_font) - delta_label.grid(row=0, column=5, padx=10, pady=5, sticky=tk.W) - delta_entry = tk.Entry(sensitivity_frame, width=10, justify=tk.RIGHT) - delta_entry.insert(tk.END, default_delta) - delta_entry.grid(row=0, column=6, padx=10, pady=5) - delta_unit_label = tk.Label(sensitivity_frame, text="%", font=bold_font) - delta_unit_label.grid(row=0, column=7, padx=0, pady=5, sticky=tk.W) - delta_range_label = tk.Label(sensitivity_frame, text="(Range: {:.0f} - {:.0f})".format(delta_min, delta_max), font=bold_font) - delta_range_label.grid(row=0, column=8, padx=10, pady=5, sticky=tk.W) - note_label = tk.Label(sensitivity_frame, text="Note: Sensitivity calculation is constrained by min/max of allowable parameter range.", font=italic_font) - note_label.grid(row=1, column=5, columnspan=5, padx=10, pady=5, sticky=tk.W) - - def update_sensitivity(): - delta = float(delta_entry.get()) / 100 - - CAPEX = float(CAPEX_entry.get()) # vars[0] - OPEX = float(OPEX_entry.get()) # vars[1] - elec = float(elec_entry.get()) # vars[2] - therm = float(therm_entry.get()) # vars[3] - NG_price = float(NG_price_entry.get()) # vars[4] - power_cost = float(power_cost_entry.get()) # vars[5] - power_co2intensity = float(power_co2intensity_entry.get()) # vars[6] - CAPEX_mult = float(CAPEX_mult_entry.get()) # vars[7] - OPEX_mult = float(OPEX_mult_entry.get()) # vars[8] - therm_index = float(therm_index_entry.get()) # vars[9] - depth = float(depth_entry.get()) # vars[10] - temp_drawdown = float(temp_drawdown_entry.get()) # vars[11] - transport = float(transport_entry.get()) # vars[12] - storage = float(storage_entry.get()) # vars[13] - - - vars_initial = [CAPEX,OPEX,elec,therm,NG_price, - power_cost,power_co2intensity,CAPEX_mult, - OPEX_mult,therm_index,depth,temp_drawdown, - transport,storage] - - # Used to ensure sensitivity does not exceed parameter range - vars_minmax = [[CAPEX_min,CAPEX_max], - [OPEX_min,OPEX_max], - [elec_min,elec_max], - [therm_min,therm_max], - [NG_price_min,NG_price_max], - [power_cost_min,power_cost_max], - [power_co2intensity_min,power_co2intensity_max], - [CAPEX_mult_min,CAPEX_mult_max], - [OPEX_mult_min,OPEX_mult_max], - [therm_index_min,therm_index_max], - [depth_min,depth_max], - [temp_drawdown_min,temp_drawdown_max], - [transport_min,transport_max], - [storage_min,storage_max]] - - ng_co2intensity = 0.194965384 # tonne/MWh_th - - # Calculate base values - CAPEX = CAPEX * CRF - CAPEX = CAPEX * CAPEX_mult - OPEX = OPEX * OPEX_mult - therm = therm * therm_index - power_totalcost = elec * power_cost - elec_heat_totalcost = therm * power_cost - NG_price = NG_price / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = therm * NG_price - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(power_cost, CAPEX_mult, OPEX_mult, depth, temp_drawdown) - geothermal_totalcost = LCOH*therm - co2_power = elec/1000*power_co2intensity - co2_elec_heat = therm/1000*power_co2intensity - co2_ng = therm/1000*ng_co2intensity - co2_geothermal = therm*kWh_e_per_kWh_th/1000*power_co2intensity - - LCOD_elec_base = CAPEX+OPEX+power_totalcost+elec_heat_totalcost+storage+transport - LCOD_ng_base = CAPEX+OPEX+power_totalcost+NG_totalcost+storage+transport - LCOD_geo_base = CAPEX+OPEX+power_totalcost+geothermal_totalcost+storage+transport - - CO2total_elec_base = co2_power + co2_elec_heat - CO2total_ng_base = co2_power + co2_ng - CO2total_geo_base = co2_power + co2_geothermal - - vars = vars_initial[:] - - LCOD_sensitivity_increase = [] - LCOD_sensitivity_decrease = [] - - CO2_sensitivity_increase = [] - CO2_sensitivity_decrease = [] - - for i, var in enumerate(vars): - - #ensure that the sensitivity parameter does not exceed the min/max of parameter range - var_min, var_max = vars_minmax[i] - - # Calculate sensitivity for increase - vars[i] = var*(1+delta) - - vars[i] = min(vars[i],var_max) - - vars[0] = vars[0] * CRF - vars[0] = vars[0] * vars[7] - vars[1] = vars[1] * vars[8] - vars[3] = vars[3] * vars[9] - power_totalcost = vars[2] * vars[5] - elec_heat_totalcost = vars[3] * vars[5] - vars[4] = vars[4] / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = vars[3] * vars[4] - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(vars[5], vars[7], vars[8], vars[10], vars[11]) - geothermal_totalcost = LCOH*vars[3] - co2_power = vars[2]/1000*vars[6] - co2_elec_heat = vars[3]/1000*vars[6] - co2_ng = vars[3]/1000*ng_co2intensity - co2_geothermal = vars[3]*kWh_e_per_kWh_th/1000*vars[6] - - LCOD_elec = vars[0]+vars[1]+power_totalcost+elec_heat_totalcost+vars[13]+vars[12] - LCOD_ng = vars[0]+vars[1]+power_totalcost+NG_totalcost+vars[13]+vars[12] - LCOD_geo = vars[0]+vars[1]+power_totalcost+geothermal_totalcost+vars[13]+vars[12] - - CO2total_elec = co2_power + co2_elec_heat - CO2total_ng = co2_power + co2_ng - CO2total_geo = co2_power + co2_geothermal - - LCOD_increase = LCOD_geo - LCOD_geo_base - CO2_increase = CO2total_geo - CO2total_geo_base - - # reset vars - vars = vars_initial[:] - - # Calculate sensitivity for decrease - vars[i] = var*(1-delta) - - vars[i] = max(vars[i],var_min) - - vars[0] = vars[0] * CRF - vars[0] = vars[0] * vars[7] - vars[1] = vars[1] * vars[8] - vars[3] = vars[3] * vars[9] - power_totalcost = vars[2] * vars[5] - elec_heat_totalcost = vars[3] * vars[5] - vars[4] = vars[4] / 282.614 # Convert from $/McF to $/kWh_th - NG_totalcost = vars[3] * vars[4] - (LCOH, kWh_e_per_kWh_th) = geo_therm_cost(vars[5], vars[7], vars[8], vars[10], vars[11]) - geothermal_totalcost = LCOH*vars[3] - co2_power = vars[2]/1000*vars[6] - co2_elec_heat = vars[3]/1000*vars[6] - co2_ng = vars[3]/1000*ng_co2intensity - co2_geothermal = vars[3]*kWh_e_per_kWh_th/1000*vars[6] - - LCOD_elec = vars[0]+vars[1]+power_totalcost+elec_heat_totalcost+vars[13]+vars[12] - LCOD_ng = vars[0]+vars[1]+power_totalcost+NG_totalcost+vars[13]+vars[12] - LCOD_geo = vars[0]+vars[1]+power_totalcost+geothermal_totalcost+vars[13]+vars[12] - - CO2total_elec = co2_power + co2_elec_heat - CO2total_ng = co2_power + co2_ng - CO2total_geo = co2_power + co2_geothermal - - LCOD_decrease = LCOD_geo - LCOD_geo_base - CO2_decrease = CO2total_geo - CO2total_geo_base - - LCOD_sensitivity_increase.append(LCOD_increase) - LCOD_sensitivity_decrease.append(LCOD_decrease) - - CO2_sensitivity_increase.append(CO2_increase) - CO2_sensitivity_decrease.append(CO2_decrease) - - # reset vars - vars = vars_initial[:] - - global canvas - if canvas is not None: - canvas.get_tk_widget().pack_forget() # Remove the old canvas from the layout - - # Generate parameter labels - parameters = ["CAPEX","OPEX","Electrical Energy","Thermal Energy","Natural Gas Price", - "Electric Power Cost","CO2 Intensity of Electricity","CAPEX Multiplier", - "OPEX Multiplier","S-DAC Thermal Energy Multiplier","Geothermal Reservoir Depth", - "Reservoir Temperature Drawdown","CO2 Transportation","CO2 Storage"] - - pos = np.arange(len(parameters)) - - figure, (plt1, plt2) = plt.subplots(1,2,figsize=(10, 10)) - figure.subplots_adjust(left=0.25, bottom=0.1, right=0.9, top=0.9, wspace=0.2, hspace=0) - - plt1.barh(pos, LCOD_sensitivity_increase, align='center', color='#cc4b37', label='Increase',edgecolor='black') - plt1.barh(pos, LCOD_sensitivity_decrease, align='center', color='#66b447', label='Decrease',edgecolor='black') - - plt2.barh(pos, CO2_sensitivity_increase, align='center', color='#cc4b37', label='Increase',edgecolor='black') - plt2.barh(pos, CO2_sensitivity_decrease, align='center', color='#66b447', label='Decrease',edgecolor='black') - - plt1.set_xlabel('Change in USD'); - plt1.set_title('Levelized Cost of DAC Sensitivity') - - plt2.set_xlabel('Change in CO2 emissions per unit DAC'); - plt2.set_title('CO2 Intensity Sensitivity') - - plt1.set_yticks(pos) - plt1.set_yticklabels(parameters) - plt1.legend() - plt1.grid(axis='x') - - plt2.legend() - plt2.grid(axis='x') - plt2.yaxis.set_ticks([]) - - canvas = FigureCanvasTkAgg(figure, master=sensitivity_window) - canvas.draw() - canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=True) - - plt.close(figure) - - calculate_button = tk.Button(sensitivity_frame, text="Calculate", font=bold_font, command=update_sensitivity) - calculate_button.grid(row=0, column=9, padx=10, pady=5) - - # close window command - closes only sensitivity chart child window - def close_sensitivity_window(): - sensitivity_window.destroy() - - close_button = tk.Button(sensitivity_window, text="Close", command=close_sensitivity_window) - close_button.pack(side=tk.BOTTOM, pady=10) - - - return () - - - -# In[ ]: - - -# Launch parent/main interactive window for parameter input -popup_window = tk.Tk() -bold_underline_font = tkfont.Font(family="Helvetica", size=10, weight="bold", underline=True) -popup_window.title("S-DAC Cost and CO2 Intensity Parameters"); - - -# In[ ]: - - -# Parameter input window: -# Cost of Capital section -# Customizable range values -wacc_min = 0.1 -wacc_max = 30 -num_years_min = 1 -num_years_max = 100 - -grid_row = 0 - -# Create a title label -title_label = tk.Label(popup_window, text="Economic Parameters", font=("Helvetica", 14, "bold")) -title_label.grid(row=grid_row, column=0, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create a Range column label -title_label = tk.Label(popup_window, text="Range", font=bold_underline_font) -title_label.grid(row=grid_row, column=3, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create labels for the inputs and range -wacc_label = tk.Label(popup_window, text="WACC") -wacc_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -wacc_range_label = tk.Label(popup_window, text="({:.1f} - {:.0f})".format(wacc_min, wacc_max)) -wacc_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -num_years_label = tk.Label(popup_window, text="Number of Years (N)") -num_years_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -num_years_range_label = tk.Label(popup_window, text="({} - {})".format(num_years_min, num_years_max)) -num_years_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_wacc = 10 -default_num_years = 20 - -wacc_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -wacc_entry.insert(tk.END, default_wacc) -wacc_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -wacc_unit_label = tk.Label(popup_window, text="%") -wacc_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -num_years_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -num_years_entry.insert(tk.END, default_num_years) -num_years_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -num_years_unit_label = tk.Label(popup_window, text="years") -num_years_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -# Create a label to display the output -CRF_label = tk.Label(popup_window, text="FRF: ") -CRF_label.grid(row=grid_row+3, column=0, columnspan=2, padx=10, pady=5, sticky=tk.W) - -# Set the output label to update continuously -wacc_entry.bind("", calculate_CRF) -num_years_entry.bind("", calculate_CRF) - -calculate_CRF() # Calculate initial CRF value based on default inputs - - -# In[ ]: - - -# Parameter input window: -# DAC inputs section -# Customizable range values -CAPEX_min = 100 -CAPEX_max = 5000 -OPEX_min = 10 -OPEX_max = 500 -elec_min = 100 -elec_max = 5000 -therm_min = 100 -therm_max = 5000 - -grid_row = 5 - -# Create a title label -title_label = tk.Label(popup_window, text="DAC Technical Cost and Energy Parameters", font=("Helvetica", 14, "bold")) -title_label.grid(row=grid_row, column=0, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create labels for the inputs and range -CAPEX_label = tk.Label(popup_window, text="CAPEX") -CAPEX_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -CAPEX_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(CAPEX_min, CAPEX_max)) -CAPEX_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -OPEX_label = tk.Label(popup_window, text="OPEX") -OPEX_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -OPEX_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(OPEX_min, OPEX_max)) -OPEX_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -elec_label = tk.Label(popup_window, text="Electrical Energy") -elec_label.grid(row=grid_row+3, column=0, padx=10, pady=5, sticky=tk.W) -elec_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(elec_min, elec_max)) -elec_range_label.grid(row=grid_row+3, column=3, padx=10, pady=5, sticky=tk.W) - -therm_label = tk.Label(popup_window, text="Thermal Energy") -therm_label.grid(row=grid_row+4, column=0, padx=10, pady=5, sticky=tk.W) -therm_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(therm_min, therm_max)) -therm_range_label.grid(row=grid_row+4, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_CAPEX = 1379 -default_OPEX = 56 -default_elec = 916 -default_therm = 1447 - -CAPEX_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -CAPEX_entry.insert(tk.END, default_CAPEX) -CAPEX_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -CAPEX_unit_label = tk.Label(popup_window, text="USD per tonne CO2 capacity") -CAPEX_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -OPEX_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -OPEX_entry.insert(tk.END, default_OPEX) -OPEX_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -OPEX_unit_label = tk.Label(popup_window, text="USD per tonne CO2") -OPEX_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -elec_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -elec_entry.insert(tk.END, default_elec) -elec_entry.grid(row=grid_row+3, column=1, padx=10, pady=5) - -elec_unit_label = tk.Label(popup_window, text="kWh_e per tonne CO2") -elec_unit_label.grid(row=grid_row+3, column=2, padx=0, pady=5, sticky=tk.W) - -therm_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -therm_entry.insert(tk.END, default_therm) -therm_entry.grid(row=grid_row+4, column=1, padx=10, pady=5) - -therm_unit_label = tk.Label(popup_window, text="kW_th per tonne CO2") -therm_unit_label.grid(row=grid_row+4, column=2, padx=0, pady=5, sticky=tk.W) - - -# In[ ]: - - -# Parameter input window: -# Regional factors section - Part 1 -# Customizable range values - -# NG_price - natural gas $/Mcf -# power_cost - electric power $/kWh -# power_co2intnesity - CO2 emissions per MWh -# CAPEX_mult = NG_price multiplier -# OPEX_mult - power_cost multiplier - -NG_co2intensity = 0.194965384 # tonne CO2 per kWh_CAPEX_multal -NG_kWh_per_Mcf = 282.6142719 - - -NG_price_min = 0.5 -NG_price_max = 100 -power_cost_min = 0.01 -power_cost_max = 1 -power_co2intensity_min = 0 -power_co2intensity_max = 1 -CAPEX_mult_min = 0.5 -CAPEX_mult_max = 3 -OPEX_mult_min = 0.5 -OPEX_mult_max = 3 - -grid_row = 10 - -# Create a title label -title_label = tk.Label(popup_window, text="Regional Parameters", font=("Helvetica", 14, "bold")) -title_label.grid(row=grid_row, column=0, columnspan=3, padx=10, pady=10, sticky=tk.W) - -# Create labels for the inputs and range -NG_price_label = tk.Label(popup_window, text="Natural Gas Price") -NG_price_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -NG_price_range_label = tk.Label(popup_window, text="({:.2f} - {:.2f})".format(NG_price_min, NG_price_max)) -NG_price_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -power_cost_label = tk.Label(popup_window, text="Electricity Price") -power_cost_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -power_cost_range_label = tk.Label(popup_window, text="({:.2f} - {:.2f})".format(power_cost_min, power_cost_max)) -power_cost_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -power_co2intensity_label = tk.Label(popup_window, text="CO2 Intensity of Electricity") -power_co2intensity_label.grid(row=grid_row+3, column=0, padx=10, pady=5, sticky=tk.W) -power_co2intensity_range_label = tk.Label(popup_window, text="({:.2f} - {:.2f})".format(power_co2intensity_min, power_co2intensity_max)) -power_co2intensity_range_label.grid(row=grid_row+3, column=3, padx=10, pady=5, sticky=tk.W) - -CAPEX_mult_label = tk.Label(popup_window, text="CAPEX Multiplier") -CAPEX_mult_label.grid(row=grid_row+4, column=0, padx=10, pady=5, sticky=tk.W) -CAPEX_mult_range_label = tk.Label(popup_window, text="({:.1f} - {:.1f})".format(CAPEX_mult_min, CAPEX_mult_max)) -CAPEX_mult_range_label.grid(row=grid_row+4, column=3, padx=10, pady=5, sticky=tk.W) - -OPEX_mult_label = tk.Label(popup_window, text="OPEX Multiplier") -OPEX_mult_label.grid(row=grid_row+5, column=0, padx=10, pady=5, sticky=tk.W) -OPEX_mult_range_label = tk.Label(popup_window, text="({:.1f} - {:.1f})".format(OPEX_mult_min, OPEX_mult_max)) -OPEX_mult_range_label.grid(row=grid_row+5, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_NG_price = 5 -default_power_cost = 0.15 -default_power_co2intensity = 0.40 -default_CAPEX_mult = 1.0 -default_OPEX_mult = 1.0 - -NG_price_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -NG_price_entry.insert(tk.END, default_NG_price) -NG_price_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -NG_price_unit_label = tk.Label(popup_window, text="USD per McF") -NG_price_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -power_cost_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -power_cost_entry.insert(tk.END, default_power_cost) -power_cost_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -power_cost_unit_label = tk.Label(popup_window, text="USD per kWh") -power_cost_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -power_co2intensity_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -power_co2intensity_entry.insert(tk.END, default_power_co2intensity) -power_co2intensity_entry.grid(row=grid_row+3, column=1, padx=10, pady=5) - -power_co2intensity_unit_label = tk.Label(popup_window, text="tonne CO2 emitted per MWh") -power_co2intensity_unit_label.grid(row=grid_row+3, column=2, padx=0, pady=5, sticky=tk.W) - -CAPEX_mult_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -CAPEX_mult_entry.insert(tk.END, default_CAPEX_mult) -CAPEX_mult_entry.grid(row=grid_row+4, column=1, padx=10, pady=5) - -CAPEX_mult_unit_label = tk.Label(popup_window, text="") -CAPEX_mult_unit_label.grid(row=grid_row+4, column=2, padx=0, pady=5, sticky=tk.W) - -OPEX_mult_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -OPEX_mult_entry.insert(tk.END, default_OPEX_mult) -OPEX_mult_entry.grid(row=grid_row+5, column=1, padx=10, pady=5) - -OPEX_mult_unit_label = tk.Label(popup_window, text="") -OPEX_mult_unit_label.grid(row=grid_row+5, column=2, padx=0, pady=5, sticky=tk.W) - - -# In[ ]: - - -# Parameter input window: -# Regional factors section - Part 2 -# Customizable range values - -# therm_index - Thermal energy multiplier due to avg humidity/temperature -# depth - depth of 120 degC formation -# temp_drawdown - steady state temperature drawdown over goetransport_indexal reservoir in degC -# transport - $ per tonne for -# storage - $ per tonne for geological storage - -therm_index_min = 0.5 -therm_index_max = 1.8 -depth_min = 3000 -depth_max = 20000 -temp_drawdown_min = 0 -temp_drawdown_max = 39 -transport_min = 1 -transport_max = 50 -storage_min = 5 -storage_max = 50 - -grid_row = 15 - -# Create labels for the inputs and range -therm_index_label = tk.Label(popup_window, text="S-DAC Thermal Energy Multiplier") -therm_index_label.grid(row=grid_row+1, column=0, padx=10, pady=5, sticky=tk.W) -therm_index_range_label = tk.Label(popup_window, text="({:.1f} - {:.1f})".format(therm_index_min, therm_index_max)) -therm_index_range_label.grid(row=grid_row+1, column=3, padx=10, pady=5, sticky=tk.W) - -depth_label = tk.Label(popup_window, text="Geothermal Reservoir Depth") -depth_label.grid(row=grid_row+2, column=0, padx=10, pady=5, sticky=tk.W) -depth_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(depth_min, depth_max)) -depth_range_label.grid(row=grid_row+2, column=3, padx=10, pady=5, sticky=tk.W) - -temp_drawdown_label = tk.Label(popup_window, text="Geothermal Reservoir Temperature Drawdown") -temp_drawdown_label.grid(row=grid_row+3, column=0, padx=10, pady=5, sticky=tk.W) -temp_drawdown_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(temp_drawdown_min, temp_drawdown_max)) -temp_drawdown_range_label.grid(row=grid_row+3, column=3, padx=10, pady=5, sticky=tk.W) - -transport_label = tk.Label(popup_window, text="CO2 Transportation Cost") -transport_label.grid(row=grid_row+4, column=0, padx=10, pady=5, sticky=tk.W) -transport_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(transport_min, transport_max)) -transport_range_label.grid(row=grid_row+4, column=3, padx=10, pady=5, sticky=tk.W) - -storage_label = tk.Label(popup_window, text="CO2 Storage Cost") -storage_label.grid(row=grid_row+5, column=0, padx=10, pady=5, sticky=tk.W) -storage_range_label = tk.Label(popup_window, text="({:.0f} - {:.0f})".format(storage_min, storage_max)) -storage_range_label.grid(row=grid_row+5, column=3, padx=10, pady=5, sticky=tk.W) - -# Create entry boxes for the inputs -default_therm_index = 1.0 -default_depth = 10000 -default_temp_drawdown = 10 -default_transport = 10 -default_storage = 10 - -therm_index_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -therm_index_entry.insert(tk.END, default_therm_index) -therm_index_entry.grid(row=grid_row+1, column=1, padx=10, pady=5) - -therm_index_unit_label = tk.Label(popup_window, text="") -therm_index_unit_label.grid(row=grid_row+1, column=2, padx=0, pady=5, sticky=tk.W) - -depth_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -depth_entry.insert(tk.END, default_depth) -depth_entry.grid(row=grid_row+2, column=1, padx=10, pady=5) - -depth_unit_label = tk.Label(popup_window, text="ft") -depth_unit_label.grid(row=grid_row+2, column=2, padx=0, pady=5, sticky=tk.W) - -temp_drawdown_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -temp_drawdown_entry.insert(tk.END, default_temp_drawdown) -temp_drawdown_entry.grid(row=grid_row+3, column=1, padx=10, pady=5) - -temp_drawdown_unit_label = tk.Label(popup_window, text="degC") -temp_drawdown_unit_label.grid(row=grid_row+3, column=2, padx=0, pady=5, sticky=tk.W) - -transport_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -transport_entry.insert(tk.END, default_transport) -transport_entry.grid(row=grid_row+4, column=1, padx=10, pady=5) - -transport_unit_label = tk.Label(popup_window, text="USD per tonne CO2") -transport_unit_label.grid(row=grid_row+4, column=2, padx=0, pady=5, sticky=tk.W) - -storage_entry = tk.Entry(popup_window, width=10, justify=tk.RIGHT) -storage_entry.insert(tk.END, default_storage) -storage_entry.grid(row=grid_row+5, column=1, padx=10, pady=5) - -storage_unit_label = tk.Label(popup_window, text="USD per tonne CO2") -storage_unit_label.grid(row=grid_row+5, column=2, padx=0, pady=5, sticky=tk.W) - - -# In[ ]: - - -# Display three control buttons at bottom -# First launches bar-shart child window -# Second launches sensitivity chart child window -# Third closes main window and terminates program -grid_row = 21 - -display_button = tk.Button(popup_window, text="Display Chart", command=create_bar_charts) -display_button.grid(row=grid_row, column=0, columnspan=1, padx=10, pady=10) - -display_button = tk.Button(popup_window, text="Calculate S-DAC-GT Sensitivity", command=sensitivity_analysis) -display_button.grid(row=grid_row, column=1, columnspan=1, padx=10, pady=10) - -close_button = tk.Button(popup_window, text="Close", command=close_window) -close_button.grid(row=grid_row, column=2, columnspan=1, padx=10, pady=10) - -popup_window.mainloop() - - -# In[ ]: - - - diff --git a/src/geophires_x/References/S-DAC-GT_readme.txt b/src/geophires_x/References/S-DAC-GT_readme.txt deleted file mode 100644 index 9d3e1777..00000000 --- a/src/geophires_x/References/S-DAC-GT_readme.txt +++ /dev/null @@ -1,73 +0,0 @@ -Jupyter Notebooks Python code for SPE paper SPE-215735-MS -To be presented 22-23 Aug 2023 SPE Energy Transition Symposium 23ETS -Submitted June 13, 2023 - -Paper: Solid Sorbent Direct Air Capture Using Geothermal Energy Resources (S-DAC-GT) - Model for Region Specific Economic Analysis -Authors: Timur Kuru, Keivan Khaleghi, and Silviu Livescu1 - -Department of Petroleum Engineering, University of Texas at Austin, United States - -Program calculates region specific levelized cost of solid sorbent direct air capture system (LCOD) and CO2 intensity (units of CO2 emitted for units captured). - -Executable version of program was too large for storage in Github. Please contact corresponding author, Timur Kuru, at tkuru@utexas.edu for access to executable version for Windows. - -Program produces output charts and sensitivity analysis. Please refer to full paper for details. Authors are unable to share full paper prior to publishing. - -Input Parameters are described below: - -Economic parameters determine the capital cost required to calculate the levelized cost of DAC (LDAC). The two inputs are: -WACC Weighted average cost of capital. - -Number of Years (N) Expected lifetime of the facility in years, over which the capital costs of the project may be amortized. - -The default values used in the model are 10% for WACC and 20 years for N. These can be customized based on the specific requirements of the DAC project. -WACC and N are used to calculate the Fixed Charge Factor (FCF) used to amortize the capital costs of the project (Capex), used to calculate determine LCOD. - -DAC Technical Cost and Energy Parameters -The DAC process requires four input parameters. - -Capex The estimated capital cost in USD of the DAC facility, per annual tonne of CO2 capture capacity. The default value is $1,379 per tonne of CO2 annual capture capacity. - -Opex The estimated operating cost in USD of the DAC facility, per tonne of CO2. This excludes the cost of electrical and thermal energy. The default value is $56 per tonne CO2. - -Electrical Energy The estimated electrical power consumption in kWhe per tonne of CO2. The default value is 916 kWhe per tonne of CO2. - -Thermal Energy The estimated thermal power consumption in kWhth per tonne of CO2. The default value is 1,447 kWhth per tonne of CO2. - -LCOD requires levelized cost of electricity (LCOE) and levelized cost of heating (LCOH). These are determined from regional parameters covered below. - -Regional Parameters -LCOE and LCOH are determined regionally. Regions have variable electric power sources, which determine CO2 emissions due to DAC. Further, different regions have different economies, resulting in different relative capital and operating costs. Finally, regional climates, average temperature and humidity, can impact S-DAC process efficiency, requiring different amounts of thermal energy. Regional parameters determine the final calculated LCOD and CO2 intensity of the planned DAC facility. The parameters are: -Natural Gas Price Price of natural gas in USD per Mcf. This is used to determine the LCOD scenario using natural gas as the thermal energy source. The default value is $5, but this can change dramatically between regions, and should be based on expected future prices. - -Electricity Price Price of regional industrial electricity in USD per kWh. The default value is $0.15. - -CO2 Intensity of Electricity The estimated CO2 emissions per MWe. This is dependent on the profile of fuel sources for the electricity used within the region. This can be as high as 1 tonne CO2 per MWh if the source is coal. The average for the US in 2021 was 0.40, which is the default. - -Capex Multiplier The estimated cost of capital projects within the region, relative to the US average. The default is 1.0. - -Opex Multiplier The estimated cost of operating costs within the region, relative to the US average. A good proxy is relative regional costs of living. The default is 1.0. - -S-DAC Thermal Energy Multiplier The thermal energy required for S-DAC is highly dependent on ambient temperature and humidity. This multiplier is covered in the Literature Review section, under the Optimal Design and Operation of S-DAC Processes at Varying Ambient Conditions subsection. Cooler and more humid regions require lower thermal energy for S-DAC. The default value is 1.0 - -Geothermal Reservoir Depth The depth of the geothermal reservoir has a large impact on geothermal LCOH. Drilling depth drives the cost of injection and production wells, and pump operating costs. The depth is in feet and measured from surface to the depth where bottom hole temperature is at least 120°C. This depth can vary substantially between regions. The default value is 10,000 ft. - -Geothermal Reservoir -Temperature Drawdown Thermal drawdown, or cooling, of the geothermal reservoir can happen very quickly, but will level out asymptotically, approaching a stable temperature. This can be difficult to model, and the decline in temperature is highly dependent on well design and reservoir engineering, as well as reservoir properties. The model anticipates geothermal brine is initially extracted at 120°C and reinjected at 80°C. The default drawdown value is 10°C, implying the long-term geothermal brine temperature is 110°C. - -CO2 Transport Transportation cost of the captured CO2 to the permanent geological storage reservoir. This is dependent on the proximity to the injection reservoir and the regional CO2 pipeline infrastructure. The default is $10 per tonne CO2. - -CO2 Storage Cost of injection and storage of CO2 into the permanent geological storage reservoir. This is dependent on depth, size, and quality of the CO2 storage reservoir. This is highly dependent on regional geology. The default is $10 per tonne CO2. - -Once the input parameters are entered, “Display Chart” can be selected to display the results. - -Model Outputs - -The model calculates LCOD and the CO2 intensity for the three thermal energy source scenarios. - -A total of six values are calculated: -LCODfinal Regional LCOD in USD for S-DAC scenarios using thermal energy from electricity, natural gas, and geothermal resources. - -CO2 Intensity Regional CO2 intensity for the S-DAC process using thermal energy from electricity, natural gas, and geothermal resources. - -The output is consolidated into two bar graphs displayed after the user enters all required data. The default values result in a reasonable approximation of a relatively high quality S-DAC-GT plant within the US, assuming nearby geothermal and CO2 storage resources. \ No newline at end of file diff --git a/src/geophires_x/References/Theoretical basis for geophires.pdf b/src/geophires_x/References/Theoretical basis for geophires.pdf deleted file mode 100644 index 7898582a..00000000 Binary files a/src/geophires_x/References/Theoretical basis for geophires.pdf and /dev/null differ diff --git a/src/geophires_x/WellBores.py b/src/geophires_x/WellBores.py index 9726c79d..f90b59b7 100644 --- a/src/geophires_x/WellBores.py +++ b/src/geophires_x/WellBores.py @@ -436,7 +436,7 @@ def __init__(self, model: Model): # these parameters to your class. # These dictionaries contain a list of all the parameters set in this object, stored as "Parameter" and - # OutputParameter Objects. This will alow us later to access them in a user interface and get that list, + # OutputParameter Objects. This will allow us later to access them in a user interface and get that list, # along with unit type, preferred units, etc. self.ParameterDict = {} self.OutputParameterDict = {} diff --git a/src/geophires_x/__init__.py b/src/geophires_x/__init__.py index f71b21a5..11731085 100644 --- a/src/geophires_x/__init__.py +++ b/src/geophires_x/__init__.py @@ -1 +1 @@ -__version__ = '3.1.2' +__version__ = "3.2.0" diff --git a/src/geophires_x/conf.py b/src/geophires_x/conf.py deleted file mode 100644 index ff28d283..00000000 --- a/src/geophires_x/conf.py +++ /dev/null @@ -1,54 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import sys -sys.path.insert(0, os.path.abspath('.')) - - -# -- Project information ----------------------------------------------------- - -project = 'GEOPHIRES-X' -copyright = '2022, Malcolm I Ross' -author = 'Malcolm I Ross' - -# The full version, including alpha/beta/rc tags -release = '3.0' - - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'alabaster' - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] \ No newline at end of file diff --git a/src/geophires_x/database/GEOPHIRESX_model.mwb b/src/geophires_x/database/GEOPHIRESX_model.mwb deleted file mode 100644 index b677c6c2..00000000 Binary files a/src/geophires_x/database/GEOPHIRESX_model.mwb and /dev/null differ diff --git a/src/geophires_x/database/GEOPHIRESX_model.mwb.bak b/src/geophires_x/database/GEOPHIRESX_model.mwb.bak deleted file mode 100644 index be06902f..00000000 Binary files a/src/geophires_x/database/GEOPHIRESX_model.mwb.bak and /dev/null differ diff --git a/src/geophires_x/database/GEOPHIRESX_model.mwb.beforefix b/src/geophires_x/database/GEOPHIRESX_model.mwb.beforefix deleted file mode 100644 index 9dc0c5b0..00000000 Binary files a/src/geophires_x/database/GEOPHIRESX_model.mwb.beforefix and /dev/null differ diff --git a/src/geophires_x/doc/build.py b/src/geophires_x/doc/build.py deleted file mode 100644 index afd239aa..00000000 --- a/src/geophires_x/doc/build.py +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env python - -import os -if not os.path.exists("build"): - os.mkdir("build") -os.system("sphinx-build -E source build") diff --git a/src/geophires_x/doc/source/basics.txt b/src/geophires_x/doc/source/basics.txt deleted file mode 100644 index c6f9e192..00000000 --- a/src/geophires_x/doc/source/basics.txt +++ /dev/null @@ -1,227 +0,0 @@ -Basic usage -=========================== - -In interactive code examples that follow, it will be assumed that -all items in the ``mpmath`` namespace have been imported:: - - >>> from mpmath import * - -Importing everything can be convenient, especially when using mpmath interactively, but be -careful when mixing mpmath with other libraries! To avoid inadvertently overriding -other functions or objects, explicitly import only the needed objects, or use -the ``mpmath.`` or ``mp.`` namespaces:: - - from mpmath import sin, cos - sin(1), cos(1) - - import mpmath - mpmath.sin(1), mpmath.cos(1) - - from mpmath import mp # mp context object -- to be explained - mp.sin(1), mp.cos(1) - - -Number types ------------- - -Mpmath provides the following numerical types: - - +------------+----------------+ - | Class | Description | - +============+================+ - | ``mpf`` | Real float | - +------------+----------------+ - | ``mpc`` | Complex float | - +------------+----------------+ - | ``matrix`` | Matrix | - +------------+----------------+ - -The following section will provide a very short introduction to the types ``mpf`` and ``mpc``. Intervals and matrices are described further in the documentation chapters on interval arithmetic and matrices / linear algebra. - -The ``mpf`` type is analogous to Python's built-in ``float``. It holds a real number or one of the special values ``inf`` (positive infinity), ``-inf`` (negative infinity) and ``nan`` (not-a-number, indicating an indeterminate result). You can create ``mpf`` instances from strings, integers, floats, and other ``mpf`` instances: - - >>> mpf(4) - mpf('4.0') - >>> mpf(2.5) - mpf('2.5') - >>> mpf("1.25e6") - mpf('1250000.0') - >>> mpf(mpf(2)) - mpf('2.0') - >>> mpf("inf") - mpf('+inf') - -The ``mpc`` type represents a complex number in rectangular form as a pair of ``mpf`` instances. It can be constructed from a Python ``complex``, a real number, or a pair of real numbers: - - >>> mpc(2,3) - mpc(real='2.0', imag='3.0') - >>> mpc(complex(2,3)).imag - mpf('3.0') - -You can mix ``mpf`` and ``mpc`` instances with each other and with Python numbers: - - >>> mpf(3) + 2*mpf('2.5') + 1.0 - mpf('9.0') - >>> mp.dps = 15 # Set precision (see below) - >>> mpc(1j)**0.5 - mpc(real='0.70710678118654757', imag='0.70710678118654757') - - -Setting the precision ---------------------- - -Mpmath uses a global working precision; it does not keep track of the precision or accuracy of individual numbers. Performing an arithmetic operation or calling ``mpf()`` rounds the result to the current working precision. The working precision is controlled by a context object called ``mp``, which has the following default state: - - >>> print(mp) - Mpmath settings: - mp.prec = 53 [default: 53] - mp.dps = 15 [default: 15] - mp.trap_complex = False [default: False] - -The term **prec** denotes the binary precision (measured in bits) while **dps** (short for *decimal places*) is the decimal precision. Binary and decimal precision are related roughly according to the formula ``prec = 3.33*dps``. For example, it takes a precision of roughly 333 bits to hold an approximation of pi that is accurate to 100 decimal places (actually slightly more than 333 bits is used). - -Changing either precision property of the ``mp`` object automatically updates the other; usually you just want to change the ``dps`` value: - - >>> mp.dps = 100 - >>> mp.dps - 100 - >>> mp.prec - 336 - -When the precision has been set, all ``mpf`` operations are carried out at that precision:: - - >>> mp.dps = 50 - >>> mpf(1) / 6 - mpf('0.16666666666666666666666666666666666666666666666666656') - >>> mp.dps = 25 - >>> mpf(2) ** mpf('0.5') - mpf('1.414213562373095048801688713') - -The precision of complex arithmetic is also controlled by the ``mp`` object: - - >>> mp.dps = 10 - >>> mpc(1,2) / 3 - mpc(real='0.3333333333321', imag='0.6666666666642') - -There is no restriction on the magnitude of numbers. An ``mpf`` can for example hold an approximation of a large Mersenne prime: - - >>> mp.dps = 15 - >>> print(mpf(2)**32582657 - 1) - 1.24575026015369e+9808357 - -Or why not 1 googolplex: - - >>> print(mpf(10) ** (10**100)) # doctest:+ELLIPSIS - 1.0e+100000000000000000000000000000000000000000000000000... - -The (binary) exponent is stored exactly and is independent of the precision. - -Temporarily changing the precision -.................................. - -It is often useful to change the precision during only part of a calculation. A way to temporarily increase the precision and then restore it is as follows: - - >>> mp.prec += 2 - >>> # do_something() - >>> mp.prec -= 2 - -Since Python 2.5, the ``with`` statement along with the mpmath functions ``workprec``, ``workdps``, ``extraprec`` and ``extradps`` can be used to temporarily change precision in a more safe manner: - - >>> from __future__ import with_statement # only need this in Python 2.5 - >>> with workdps(20): # doctest: +SKIP - ... print(mpf(1)/7) - ... with extradps(10): - ... print(mpf(1)/7) - ... - 0.14285714285714285714 - 0.142857142857142857142857142857 - >>> mp.dps - 15 - -The ``with`` statement ensures that the precision gets reset when exiting the block, even in the case that an exception is raised. (The effect of the ``with`` statement can be emulated in Python 2.4 by using a ``try/finally`` block.) - -The ``workprec`` family of functions can also be used as function decorators: - - >>> @workdps(6) - ... def f(): - ... return mpf(1)/3 - ... - >>> f() - mpf('0.33333331346511841') - - -Some functions accept the ``prec`` and ``dps`` keyword arguments and this will override the global working precision. Note that this will not affect the precision at which the result is printed, so to get all digits, you must either use increase precision afterward when printing or use ``nstr``/``nprint``: - - >>> mp.dps = 15 - >>> print(exp(1)) - 2.71828182845905 - >>> print(exp(1, dps=50)) # Extra digits won't be printed - 2.71828182845905 - >>> nprint(exp(1, dps=50), 50) - 2.7182818284590452353602874713526624977572470937 - -Finally, instead of using the global context object ``mp``, you can create custom contexts and work with methods of those instances instead of global functions. The working precision will be local to each context object: - - >>> mp2 = mp.clone() - >>> mp.dps = 10 - >>> mp2.dps = 20 - >>> print(mp.mpf(1) / 3) - 0.3333333333 - >>> print(mp2.mpf(1) / 3) - 0.33333333333333333333 - -**Note**: the ability to create multiple contexts is a new feature that is only partially implemented. Not all mpmath functions are yet available as context-local methods. In the present version, you are likely to encounter bugs if you try mixing different contexts. - -Providing correct input ------------------------ - -Note that when creating a new ``mpf``, the value will at most be as accurate as the input. *Be careful when mixing mpmath numbers with Python floats*. When working at high precision, fractional ``mpf`` values should be created from strings or integers: - - >>> mp.dps = 30 - >>> mpf(10.9) # bad - mpf('10.9000000000000003552713678800501') - >>> mpf('10.9') # good - mpf('10.8999999999999999999999999999997') - >>> mpf(109) / mpf(10) # also good - mpf('10.8999999999999999999999999999997') - >>> mp.dps = 15 - -(Binary fractions such as 0.5, 1.5, 0.75, 0.125, etc, are generally safe as input, however, since those can be represented exactly by Python floats.) - -Printing --------- - -By default, the ``repr()`` of a number includes its type signature. This way ``eval`` can be used to recreate a number from its string representation: - - >>> eval(repr(mpf(2.5))) - mpf('2.5') - -Prettier output can be obtained by using ``str()`` or ``print``, which hide the ``mpf`` and ``mpc`` signatures and also suppress rounding artifacts in the last few digits: - - >>> mpf("3.14159") - mpf('3.1415899999999999') - >>> print(mpf("3.14159")) - 3.14159 - >>> print(mpc(1j)**0.5) - (0.707106781186548 + 0.707106781186548j) - -Setting the ``mp.pretty`` option will use the ``str()``-style output for ``repr()`` as well: - - >>> mp.pretty = True - >>> mpf(0.6) - 0.6 - >>> mp.pretty = False - >>> mpf(0.6) - mpf('0.59999999999999998') - -The number of digits with which numbers are printed by default is determined by the working precision. To specify the number of digits to show without changing the working precision, use :func:`mpmath.nstr` and :func:`mpmath.nprint`: - - >>> a = mpf(1) / 6 - >>> a - mpf('0.16666666666666666') - >>> nstr(a, 8) - '0.16666667' - >>> nprint(a, 8) - 0.16666667 - >>> nstr(a, 50) - '0.16666666666666665741480812812369549646973609924316' diff --git a/src/geophires_x/doc/source/calculus/approximation.txt b/src/geophires_x/doc/source/calculus/approximation.txt deleted file mode 100644 index c6b53096..00000000 --- a/src/geophires_x/doc/source/calculus/approximation.txt +++ /dev/null @@ -1,23 +0,0 @@ -Function approximation ----------------------- - -Taylor series (``taylor``) -.......................... - -.. autofunction:: mpmath.taylor - -Pade approximation (``pade``) -............................. - -.. autofunction:: mpmath.pade - -Chebyshev approximation (``chebyfit``) -...................................... - -.. autofunction:: mpmath.chebyfit - -Fourier series (``fourier``, ``fourierval``) -............................................ - -.. autofunction:: mpmath.fourier -.. autofunction:: mpmath.fourierval diff --git a/src/geophires_x/doc/source/calculus/differentiation.txt b/src/geophires_x/doc/source/calculus/differentiation.txt deleted file mode 100644 index 5660cf16..00000000 --- a/src/geophires_x/doc/source/calculus/differentiation.txt +++ /dev/null @@ -1,19 +0,0 @@ -Differentiation ---------------- - -Numerical derivatives (``diff``, ``diffs``) -........................................... - -.. autofunction:: mpmath.diff -.. autofunction:: mpmath.diffs - -Composition of derivatives (``diffs_prod``, ``diffs_exp``) -.......................................................... - -.. autofunction:: mpmath.diffs_prod -.. autofunction:: mpmath.diffs_exp - -Fractional derivatives / differintegration (``differint``) -............................................................ - -.. autofunction:: mpmath.differint diff --git a/src/geophires_x/doc/source/calculus/index.txt b/src/geophires_x/doc/source/calculus/index.txt deleted file mode 100644 index 0e6e6166..00000000 --- a/src/geophires_x/doc/source/calculus/index.txt +++ /dev/null @@ -1,14 +0,0 @@ -Numerical calculus -================== - -.. toctree:: - :maxdepth: 2 - - polynomials.txt - optimization.txt - sums_limits.txt - differentiation.txt - integration.txt - odes.txt - approximation.txt - inverselaplace.txt diff --git a/src/geophires_x/doc/source/calculus/integration.txt b/src/geophires_x/doc/source/calculus/integration.txt deleted file mode 100644 index f260b3f6..00000000 --- a/src/geophires_x/doc/source/calculus/integration.txt +++ /dev/null @@ -1,31 +0,0 @@ -Numerical integration (quadrature) ----------------------------------- - -Standard quadrature (``quad``) -.............................. - -.. autofunction:: mpmath.quad - -Oscillatory quadrature (``quadosc``) -.................................... - -.. autofunction:: mpmath.quadosc - -Quadrature rules -................ - -.. autoclass:: mpmath.calculus.quadrature.QuadratureRule - :members: - -Tanh-sinh rule -~~~~~~~~~~~~~~ - -.. autoclass:: mpmath.calculus.quadrature.TanhSinh - :members: - - -Gauss-Legendre rule -~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: mpmath.calculus.quadrature.GaussLegendre - :members: diff --git a/src/geophires_x/doc/source/calculus/inverselaplace.txt b/src/geophires_x/doc/source/calculus/inverselaplace.txt deleted file mode 100644 index b6d7555c..00000000 --- a/src/geophires_x/doc/source/calculus/inverselaplace.txt +++ /dev/null @@ -1,64 +0,0 @@ -Numerical inverse Laplace transform ------------------------------------ - -One-step algorithm (``invertlaplace``) -...................................... - -.. autofunction:: mpmath.invertlaplace - -Specific algorithms -................... - -Fixed Talbot algorithm -~~~~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: mpmath.calculus.inverselaplace.FixedTalbot - :members: - -Gaver-Stehfest algorithm -~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: mpmath.calculus.inverselaplace.Stehfest - :members: - -de Hoog, Knight & Stokes algorithm -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. autoclass:: mpmath.calculus.inverselaplace.deHoog - :members: - -Manual approach -............... - -It is possible and sometimes beneficial to re-create some of the -functionality in ``invertlaplace``. This could be used to compute the -Laplace-space function evaluations in a different way. For example, -the Laplace-space function evaluations could be the result of a -quadrature or sum, solution to a system of ordinary differential -equations, or possibly computed in parallel from some external library -or function call. - -A trivial example showing the process (which could be implemented -using the existing interface): - ->>> from mpmath import * ->>> myTalbot = calculus.inverselaplace.FixedTalbot(mp) ->>> t = convert(0.25) ->>> myTalbot.calc_laplace_parameter(t) ->>> fp = lambda p: 1/(p + 1) - 1/(p + 1000) ->>> ft = lambda t: exp(-t) - exp(-1000*t) ->>> fpvec = [fp(p) for p in myTalbot.p] ->>> ft(t)-myTalbot.calc_time_domain_solution(fpvec,t,manual_prec=True) -mpf('1.928300179528890061756872185e-21') - -This manual approach is also useful to look at the Laplace parameter, -order, or working precision which were computed. - ->>> myTalbot.degree -34 - -Credit -...... - -The numerical inverse Laplace transform functionality was contributed -to mpmath by Kristopher L. Kuhlman in 2017. diff --git a/src/geophires_x/doc/source/calculus/odes.txt b/src/geophires_x/doc/source/calculus/odes.txt deleted file mode 100644 index 7c2ae83b..00000000 --- a/src/geophires_x/doc/source/calculus/odes.txt +++ /dev/null @@ -1,7 +0,0 @@ -Ordinary differential equations -------------------------------- - -Solving the ODE initial value problem (``odefun``) -.................................................. - -.. autofunction:: mpmath.odefun diff --git a/src/geophires_x/doc/source/calculus/optimization.txt b/src/geophires_x/doc/source/calculus/optimization.txt deleted file mode 100644 index b42b8efa..00000000 --- a/src/geophires_x/doc/source/calculus/optimization.txt +++ /dev/null @@ -1,29 +0,0 @@ -Root-finding and optimization ------------------------------ - -Root-finding (``findroot``) -........................... - -.. autofunction:: mpmath.findroot(f, x0, solver=Secant, tol=None, verbose=False, verify=True, **kwargs) - -Solvers -^^^^^^^ - -.. autoclass:: mpmath.calculus.optimization.Secant -.. autoclass:: mpmath.calculus.optimization.Newton -.. autoclass:: mpmath.calculus.optimization.MNewton -.. autoclass:: mpmath.calculus.optimization.Halley -.. autoclass:: mpmath.calculus.optimization.Muller -.. autoclass:: mpmath.calculus.optimization.Bisection -.. autoclass:: mpmath.calculus.optimization.Illinois -.. autoclass:: mpmath.calculus.optimization.Pegasus -.. autoclass:: mpmath.calculus.optimization.Anderson -.. autoclass:: mpmath.calculus.optimization.Ridder -.. autoclass:: mpmath.calculus.optimization.ANewton -.. autoclass:: mpmath.calculus.optimization.MDNewton - - -.. Minimization and maximization (``findmin``, ``findmax``) -.. ........................................................ - -.. (To be added.) diff --git a/src/geophires_x/doc/source/calculus/polynomials.txt b/src/geophires_x/doc/source/calculus/polynomials.txt deleted file mode 100644 index 304fdd99..00000000 --- a/src/geophires_x/doc/source/calculus/polynomials.txt +++ /dev/null @@ -1,15 +0,0 @@ -Polynomials ------------ - -See also :func:`taylor` and :func:`chebyfit` for -approximation of functions by polynomials. - -Polynomial evaluation (``polyval``) -................................... - -.. autofunction:: mpmath.polyval - -Polynomial roots (``polyroots``) -................................ - -.. autofunction:: mpmath.polyroots diff --git a/src/geophires_x/doc/source/calculus/sums_limits.txt b/src/geophires_x/doc/source/calculus/sums_limits.txt deleted file mode 100644 index e06dbc29..00000000 --- a/src/geophires_x/doc/source/calculus/sums_limits.txt +++ /dev/null @@ -1,66 +0,0 @@ -Sums, products, limits and extrapolation ----------------------------------------- - -The functions listed here permit approximation of infinite -sums, products, and other sequence limits. -Use :func:`mpmath.fsum` and :func:`mpmath.fprod` -for summation and multiplication of finite sequences. - -Summation -.......................................... - -:func:`nsum` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nsum - -:func:`sumem` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sumem - -:func:`sumap` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sumap - -Products -............................... - -:func:`nprod` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nprod - -Limits (``limit``) -.................. - -:func:`limit` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.limit - -Extrapolation -.......................................... - -The following functions provide a direct interface to -extrapolation algorithms. :func:`nsum` and :func:`limit` essentially -work by calling the following functions with an increasing -number of terms until the extrapolated limit is accurate enough. - -The following functions may be useful to call directly if the -precise number of terms needed to achieve a desired accuracy is -known in advance, or if one wishes to study the convergence -properties of the algorithms. - - -:func:`richardson` -^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.richardson - -:func:`shanks` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.shanks - -:func:`levin` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.levin - -:func:`cohen_alt` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cohen_alt diff --git a/src/geophires_x/doc/source/conf.py b/src/geophires_x/doc/source/conf.py deleted file mode 100644 index a5d20a08..00000000 --- a/src/geophires_x/doc/source/conf.py +++ /dev/null @@ -1,139 +0,0 @@ -# -*- coding: utf-8 -*- -# -# mpmath documentation build configuration file, created by -# sphinx-quickstart on Sun Apr 13 00:14:30 2008. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# The contents of this file are pickled, so don't put values in the namespace -# that aren't pickleable (module imports are okay, they're removed automatically). -# -# All configuration values have a default value; values that are commented out -# serve to show the default value. -import pathlib -import sys - -# If your extensions are in another directory, add it here. -sys.path.insert(0, '../..') -sys.path.insert(0, pathlib.Path(__file__).parents[2].resolve().as_posix()) - -# General configuration -# --------------------- - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.mathjax'] - -# MathJax file, which is free to use. See http://www.mathjax.org/docs/2.0/start.html -# mathjax_path = 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full' - -# Add any paths that contain templates here, relative to this directory. -templates_path = [] - -# The suffix of source filenames. -source_suffix = '.txt' - -# The master toctree document. -master_doc = 'index' - -# General substitutions. -project = 'mpmath' -copyright = '2007-2018, Fredrik Johansson and mpmath developers' - -# The default replacements for |version| and |release|, also used in various -# other places throughout the built documents. -# -# The short X.Y version. -import mpmath -version = mpmath.__version__ -# The full version, including alpha/beta/rc tags. -release = mpmath.__version__ - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -today_fmt = '%B %d, %Y' - -# List of documents that shouldn't be included in the build. -#unused_docs = [] - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - - -# Options for HTML output -# ----------------------- - -# The "theme" that the HTML output should use. -html_theme = 'classic' - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Content template for the index page. -#html_index = '' - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_use_modindex = True - -# If true, the reST sources are included in the HTML build as _sources/. -#html_copy_source = True - -# Output file base name for HTML help builder. -htmlhelp_basename = 'mpmathdoc' - - -# Options for LaTeX output -# ------------------------ - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, document class [howto/manual]). -latex_documents = [(master_doc, 'main.tex', 'mpmath documentation', - r'Fredrik Johansson \and mpmath contributors', 'manual')] - -# Additional stuff for the LaTeX preamble. -latex_preamble = r'\usepackage{amsfonts}' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_use_modindex = True - -default_role = 'math' -pngmath_dvipng_args = ['-gamma 1.5', '-D 110'] diff --git a/src/geophires_x/doc/source/contexts.txt b/src/geophires_x/doc/source/contexts.txt deleted file mode 100644 index 4bdd8d44..00000000 --- a/src/geophires_x/doc/source/contexts.txt +++ /dev/null @@ -1,306 +0,0 @@ -Contexts -======== - -High-level code in mpmath is implemented as methods on a "context object". The context implements arithmetic, type conversions and other fundamental operations. The context also holds settings such as precision, and stores cache data. A few different contexts (with a mostly compatible interface) are provided so that the high-level algorithms can be used with different implementations of the underlying arithmetic, allowing different features and speed-accuracy tradeoffs. Currently, mpmath provides the following contexts: - - * Arbitrary-precision arithmetic (``mp``) - * A faster Cython-based version of ``mp`` (used by default in Sage, and currently only available there) - * Arbitrary-precision interval arithmetic (``iv``) - * Double-precision arithmetic using Python's builtin ``float`` and ``complex`` types (``fp``) - -Most global functions in the global mpmath namespace are actually methods of the ``mp`` -context. This fact is usually transparent to the user, but sometimes shows up in the -form of an initial parameter called "ctx" visible in the help for the function:: - - >>> import mpmath - >>> help(mpmath.fsum) # doctest:+SKIP - Help on method fsum in module mpmath.ctx_mp_python: - - fsum(ctx, terms, absolute=False, squared=False) method of mpmath.ctx_mp.MPContext instance - Calculates a sum containing a finite number of terms (for infinite - series, see :func:`~mpmath.nsum`). The terms will be converted to - ... - -The following operations are equivalent:: - - >>> mpmath.mp.dps = 15; mpmath.mp.pretty = False - >>> mpmath.fsum([1,2,3]) - mpf('6.0') - >>> mpmath.mp.fsum([1,2,3]) - mpf('6.0') - -The corresponding operation using the ``fp`` context:: - - >>> mpmath.fp.fsum([1,2,3]) - 6.0 - -Common interface ----------------- - -``ctx.mpf`` creates a real number:: - - >>> from mpmath import mp, fp - >>> mp.mpf(3) - mpf('3.0') - >>> fp.mpf(3) - 3.0 - -``ctx.mpc`` creates a complex number:: - - >>> mp.mpc(2,3) - mpc(real='2.0', imag='3.0') - >>> fp.mpc(2,3) - (2+3j) - -``ctx.matrix`` creates a matrix:: - - >>> mp.matrix([[1,0],[0,1]]) - matrix( - [['1.0', '0.0'], - ['0.0', '1.0']]) - >>> _[0,0] - mpf('1.0') - >>> fp.matrix([[1,0],[0,1]]) - matrix( - [['1.0', '0.0'], - ['0.0', '1.0']]) - >>> _[0,0] - 1.0 - -``ctx.prec`` holds the current precision (in bits):: - - >>> mp.prec - 53 - >>> fp.prec - 53 - -``ctx.dps`` holds the current precision (in digits):: - - >>> mp.dps - 15 - >>> fp.dps - 15 - -``ctx.pretty`` controls whether objects should be pretty-printed automatically by :func:`repr`. Pretty-printing for ``mp`` numbers is disabled by default so that they can clearly be distinguished from Python numbers and so that ``eval(repr(x)) == x`` works:: - - >>> mp.mpf(3) - mpf('3.0') - >>> mpf = mp.mpf - >>> eval(repr(mp.mpf(3))) - mpf('3.0') - >>> mp.pretty = True - >>> mp.mpf(3) - 3.0 - >>> fp.matrix([[1,0],[0,1]]) - matrix( - [['1.0', '0.0'], - ['0.0', '1.0']]) - >>> fp.pretty = True - >>> fp.matrix([[1,0],[0,1]]) - [1.0 0.0] - [0.0 1.0] - >>> fp.pretty = False - >>> mp.pretty = False - - -Arbitrary-precision floating-point (``mp``) ---------------------------------------------- - -The ``mp`` context is what most users probably want to use most of the time, as it supports the most functions, is most well-tested, and is implemented with a high level of optimization. Nearly all examples in this documentation use ``mp`` functions. - -See :doc:`basics` for a description of basic usage. - -Arbitrary-precision interval arithmetic (``iv``) ------------------------------------------------- - -The ``iv.mpf`` type represents a closed interval `[a,b]`; that is, the set `\{x : a \le x \le b\}`, where `a` and `b` are arbitrary-precision floating-point values, possibly `\pm \infty`. The ``iv.mpc`` type represents a rectangular complex interval `[a,b] + [c,d]i`; that is, the set `\{z = x+iy : a \le x \le b \land c \le y \le d\}`. - -Interval arithmetic provides rigorous error tracking. If `f` is a mathematical function and `\hat f` is its interval arithmetic version, then the basic guarantee of interval arithmetic is that `f(v) \subseteq \hat f(v)` for any input interval `v`. Put differently, if an interval represents the known uncertainty for a fixed number, any sequence of interval operations will produce an interval that contains what would be the result of applying the same sequence of operations to the exact number. The principal drawbacks of interval arithmetic are speed (``iv`` arithmetic is typically at least two times slower than ``mp`` arithmetic) and that it sometimes provides far too pessimistic bounds. - -.. note :: - - The support for interval arithmetic in mpmath is still experimental, and many functions - do not yet properly support intervals. Please use this feature with caution. - -Intervals can be created from single numbers (treated as zero-width intervals) or pairs of endpoint numbers. Strings are treated as exact decimal numbers. Note that a Python float like ``0.1`` generally does not represent the same number as its literal; use ``'0.1'`` instead:: - - >>> from mpmath import iv - >>> iv.dps = 15; iv.pretty = False - >>> iv.mpf(3) - mpi('3.0', '3.0') - >>> print(iv.mpf(3)) - [3.0, 3.0] - >>> iv.pretty = True - >>> iv.mpf([2,3]) - [2.0, 3.0] - >>> iv.mpf(0.1) # probably not intended - [0.10000000000000000555, 0.10000000000000000555] - >>> iv.mpf('0.1') # good, gives a containing interval - [0.099999999999999991673, 0.10000000000000000555] - >>> iv.mpf(['0.1', '0.2']) - [0.099999999999999991673, 0.2000000000000000111] - -The fact that ``'0.1'`` results in an interval of nonzero width indicates that 1/10 cannot be represented using binary floating-point numbers at this precision level (in fact, it cannot be represented exactly at any precision). - -Intervals may be infinite or half-infinite:: - - >>> print(1 / iv.mpf([2, 'inf'])) - [0.0, 0.5] - -The equality testing operators ``==`` and ``!=`` check whether their operands are identical as intervals; that is, have the same endpoints. The ordering operators ``< <= > >=`` permit inequality testing using triple-valued logic: a guaranteed inequality returns ``True`` or ``False`` while an indeterminate inequality returns ``None``:: - - >>> iv.mpf([1,2]) == iv.mpf([1,2]) - True - >>> iv.mpf([1,2]) != iv.mpf([1,2]) - False - >>> iv.mpf([1,2]) <= 2 - True - >>> iv.mpf([1,2]) > 0 - True - >>> iv.mpf([1,2]) < 1 - False - >>> iv.mpf([1,2]) < 2 # returns None - >>> iv.mpf([2,2]) < 2 - False - >>> iv.mpf([1,2]) <= iv.mpf([2,3]) - True - >>> iv.mpf([1,2]) < iv.mpf([2,3]) # returns None - >>> iv.mpf([1,2]) < iv.mpf([-1,0]) - False - -The ``in`` operator tests whether a number or interval is contained in another interval:: - - >>> iv.mpf([0,2]) in iv.mpf([0,10]) - True - >>> 3 in iv.mpf(['-inf', 0]) - False - -Intervals have the properties ``.a``, ``.b`` (endpoints), ``.mid``, and ``.delta`` (width):: - - >>> x = iv.mpf([2, 5]) - >>> x.a - [2.0, 2.0] - >>> x.b - [5.0, 5.0] - >>> x.mid - [3.5, 3.5] - >>> x.delta - [3.0, 3.0] - -Some transcendental functions are supported:: - - >>> iv.dps = 15 - >>> mp.dps = 15 - >>> iv.mpf([0.5,1.5]) ** iv.mpf([0.5, 1.5]) - [0.35355339059327373086, 1.837117307087383633] - >>> iv.exp(0) - [1.0, 1.0] - >>> iv.exp(['-inf','inf']) - [0.0, +inf] - >>> - >>> iv.exp(['-inf',0]) - [0.0, 1.0] - >>> iv.exp([0,'inf']) - [1.0, +inf] - >>> iv.exp([0,1]) - [1.0, 2.7182818284590455349] - >>> - >>> iv.log(1) - [0.0, 0.0] - >>> iv.log([0,1]) - [-inf, 0.0] - >>> iv.log([0,'inf']) - [-inf, +inf] - >>> iv.log(2) - [0.69314718055994528623, 0.69314718055994539725] - >>> - >>> iv.sin([100,'inf']) - [-1.0, 1.0] - >>> iv.cos(['-0.1','0.1']) - [0.99500416527802570954, 1.0] - -Interval arithmetic is useful for proving inequalities involving irrational numbers. -Naive use of ``mp`` arithmetic may result in wrong conclusions, such as the following:: - - >>> mp.dps = 25 - >>> x = mp.exp(mp.pi*mp.sqrt(163)) - >>> y = mp.mpf(640320**3+744) - >>> print(x) - 262537412640768744.0000001 - >>> print(y) - 262537412640768744.0 - >>> x > y - True - -But the correct result is `e^{\pi \sqrt{163}} < 262537412640768744`, as can be -seen by increasing the precision:: - - >>> mp.dps = 50 - >>> print(mp.exp(mp.pi*mp.sqrt(163))) - 262537412640768743.99999999999925007259719818568888 - -With interval arithmetic, the comparison returns ``None`` until the precision -is large enough for `x-y` to have a definite sign:: - - >>> iv.dps = 15 - >>> iv.exp(iv.pi*iv.sqrt(163)) > (640320**3+744) - >>> iv.dps = 30 - >>> iv.exp(iv.pi*iv.sqrt(163)) > (640320**3+744) - >>> iv.dps = 60 - >>> iv.exp(iv.pi*iv.sqrt(163)) > (640320**3+744) - False - >>> iv.dps = 15 - -Fast low-precision arithmetic (``fp``) ---------------------------------------------- - -Although mpmath is generally designed for arbitrary-precision arithmetic, many of the high-level algorithms work perfectly well with ordinary Python ``float`` and ``complex`` numbers, which use hardware double precision (on most systems, this corresponds to 53 bits of precision). Whereas the global functions (which are methods of the ``mp`` object) always convert inputs to mpmath numbers, the ``fp`` object instead converts them to ``float`` or ``complex``, and in some cases employs basic functions optimized for double precision. When large amounts of function evaluations (numerical integration, plotting, etc) are required, and when ``fp`` arithmetic provides sufficient accuracy, this can give a significant speedup over ``mp`` arithmetic. - -To take advantage of this feature, simply use the ``fp`` prefix, i.e. write ``fp.func`` instead of ``func`` or ``mp.func``:: - - >>> u = fp.erfc(2.5) - >>> print(u) # doctest:+SKIP - 0.000406952017445 - >>> type(u) # doctest:+SKIP - - >>> mp.dps = 15 - >>> print(mp.erfc(2.5)) - 0.000406952017444959 - >>> fp.matrix([[1,2],[3,4]]) ** 2 - matrix( - [['7.0', '10.0'], - ['15.0', '22.0']]) - >>> - >>> type(_[0,0]) # doctest:+SKIP - - >>> print(fp.quad(fp.sin, [0, fp.pi])) # numerical integration - 2.0 - -The ``fp`` context wraps Python's ``math`` and ``cmath`` modules for elementary functions. It supports both real and complex numbers and automatically generates complex results for real inputs (``math`` raises an exception):: - - >>> fp.sqrt(5) # doctest:+SKIP - 2.23606797749979 - >>> fp.sqrt(-5) # doctest:+SKIP - 2.23606797749979j - >>> fp.sin(10) # doctest:+SKIP - -0.5440211108893698 - >>> fp.power(-1, 0.25) # doctest:+SKIP - (0.7071067811865476+0.7071067811865475j) - >>> (-1) ** 0.25 # doctest:+SKIP - Traceback (most recent call last): - ... - ValueError: negative number cannot be raised to a fractional power - -The ``prec`` and ``dps`` attributes can be changed (for interface compatibility with the ``mp`` context) but this has no effect:: - - >>> fp.prec - 53 - >>> fp.dps - 15 - >>> fp.prec = 80 - >>> fp.prec - 53 - >>> fp.dps - 15 - -Due to intermediate rounding and cancellation errors, results computed with ``fp`` arithmetic may be much less accurate than those computed with ``mp`` using an equivalent precision (``mp.prec = 53``), since the latter often uses increased internal precision. The accuracy is highly problem-dependent: for some functions, ``fp`` almost always gives 14-15 correct digits; for others, results can be accurate to only 2-3 digits or even completely wrong. The recommended use for ``fp`` is therefore to speed up large-scale computations where accuracy can be verified in advance on a subset of the input set, or where results can be verified afterwards. diff --git a/src/geophires_x/doc/source/cplot.png b/src/geophires_x/doc/source/cplot.png deleted file mode 100644 index 1b8c2618..00000000 Binary files a/src/geophires_x/doc/source/cplot.png and /dev/null differ diff --git a/src/geophires_x/doc/source/functions/bessel.txt b/src/geophires_x/doc/source/functions/bessel.txt deleted file mode 100644 index 19def1b1..00000000 --- a/src/geophires_x/doc/source/functions/bessel.txt +++ /dev/null @@ -1,185 +0,0 @@ -Bessel functions and related functions --------------------------------------- - -The functions in this section arise as solutions to various differential equations in physics, typically describing wavelike oscillatory behavior or a combination of oscillation and exponential decay or growth. Mathematically, they are special cases of the confluent hypergeometric functions `\,_0F_1`, `\,_1F_1` and `\,_1F_2` (see :doc:`hypergeometric`). - - -Bessel functions -................................................... - -:func:`besselj` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. autofunction:: mpmath.besselj(n,x,derivative=0) -.. autofunction:: mpmath.j0(x) -.. autofunction:: mpmath.j1(x) - -:func:`bessely` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.bessely(n,x,derivative=0) - -:func:`besseli` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.besseli(n,x,derivative=0) - -:func:`besselk` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.besselk(n,x) - - -Bessel function zeros -............................... - -:func:`besseljzero` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.besseljzero(v,m,derivative=0) - -:func:`besselyzero` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.besselyzero(v,m,derivative=0) - - -Hankel functions -................ - -:func:`hankel1` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hankel1(n,x) - -:func:`hankel2` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hankel2(n,x) - - -Kelvin functions -................ - -:func:`ber` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ber - -:func:`bei` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. autofunction:: mpmath.bei - -:func:`ker` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ker - -:func:`kei` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.kei - - -Struve functions -................................................... - -:func:`struveh` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.struveh - -:func:`struvel` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.struvel - - -Anger-Weber functions -................................................... - -:func:`angerj` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.angerj - -:func:`webere` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.webere - - -Lommel functions -................................................... - -:func:`lommels1` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.lommels1 - -:func:`lommels2` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.lommels2 - -Airy and Scorer functions -............................................... - -:func:`airyai` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.airyai(z, derivative=0, **kwargs) - -:func:`airybi` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.airybi(z, derivative=0, **kwargs) - -:func:`airyaizero` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.airyaizero(k, derivative=0) - -:func:`airybizero` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.airybizero(k, derivative=0, complex=0) - -:func:`scorergi` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.scorergi(z, **kwargs) - -:func:`scorerhi` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.scorerhi(z, **kwargs) - - -Coulomb wave functions -............................................... - -:func:`coulombf` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.coulombf(l,eta,z) - -:func:`coulombg` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.coulombg(l,eta,z) - -:func:`coulombc` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.coulombc(l,eta) - -Confluent U and Whittaker functions -................................... - -:func:`hyperu` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyperu(a, b, z) - -:func:`whitm` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.whitm(k,m,z) - -:func:`whitw` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.whitw(k,m,z) - -Parabolic cylinder functions -................................. - -:func:`pcfd` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.pcfd(n,z,**kwargs) - -:func:`pcfu` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.pcfu(a,z,**kwargs) - -:func:`pcfv` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.pcfv(a,z,**kwargs) - -:func:`pcfw` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.pcfw(a,z,**kwargs) diff --git a/src/geophires_x/doc/source/functions/constants.txt b/src/geophires_x/doc/source/functions/constants.txt deleted file mode 100644 index 42c5de7a..00000000 --- a/src/geophires_x/doc/source/functions/constants.txt +++ /dev/null @@ -1,85 +0,0 @@ -Mathematical constants ----------------------- - -Mpmath supports arbitrary-precision computation of various common (and less common) mathematical constants. These constants are implemented as lazy objects that can evaluate to any precision. Whenever the objects are used as function arguments or as operands in arithmetic operations, they automagically evaluate to the current working precision. A lazy number can be converted to a regular ``mpf`` using the unary ``+`` operator, or by calling it as a function:: - - >>> from mpmath import * - >>> mp.dps = 15 - >>> pi - - >>> 2*pi - mpf('6.2831853071795862') - >>> +pi - mpf('3.1415926535897931') - >>> pi() - mpf('3.1415926535897931') - >>> mp.dps = 40 - >>> pi - - >>> 2*pi - mpf('6.283185307179586476925286766559005768394338') - >>> +pi - mpf('3.141592653589793238462643383279502884197169') - >>> pi() - mpf('3.141592653589793238462643383279502884197169') - -Exact constants -............... - -The predefined objects :data:`j` (imaginary unit), :data:`inf` (positive infinity) and :data:`nan` (not-a-number) are shortcuts to :class:`mpc` and :class:`mpf` instances with these fixed values. - -Pi (``pi``) -.................................... - -.. autoattribute:: mpmath.mp.pi - -Degree (``degree``) -.................................... - -.. autoattribute:: mpmath.mp.degree - -Base of the natural logarithm (``e``) -..................................... - -.. autoattribute:: mpmath.mp.e - -Golden ratio (``phi``) -...................... - -.. autoattribute:: mpmath.mp.phi - - -Euler's constant (``euler``) -............................ - -.. autoattribute:: mpmath.mp.euler - -Catalan's constant (``catalan``) -................................ - -.. autoattribute:: mpmath.mp.catalan - -Apery's constant (``apery``) -............................ - -.. autoattribute:: mpmath.mp.apery - -Khinchin's constant (``khinchin``) -.................................. - -.. autoattribute:: mpmath.mp.khinchin - -Glaisher's constant (``glaisher``) -.................................. - -.. autoattribute:: mpmath.mp.glaisher - -Mertens constant (``mertens``) -.................................. - -.. autoattribute:: mpmath.mp.mertens - -Twin prime constant (``twinprime``) -................................... - -.. autoattribute:: mpmath.mp.twinprime diff --git a/src/geophires_x/doc/source/functions/elliptic.txt b/src/geophires_x/doc/source/functions/elliptic.txt deleted file mode 100644 index f8d2e1d6..00000000 --- a/src/geophires_x/doc/source/functions/elliptic.txt +++ /dev/null @@ -1,96 +0,0 @@ -Elliptic functions ------------------- - -.. automodule :: mpmath.functions.elliptic - - -Elliptic arguments -................................................... - -:func:`qfrom` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.qfrom(**kwargs) - -:func:`qbarfrom` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.qbarfrom(**kwargs) - -:func:`mfrom` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.mfrom(**kwargs) - -:func:`kfrom` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.kfrom(**kwargs) - -:func:`taufrom` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.taufrom(**kwargs) - - -Legendre elliptic integrals -................................................... - -:func:`ellipk` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ellipk(m, **kwargs) - -:func:`ellipf` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ellipf(phi, m) - -:func:`ellipe` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ellipe(*args) - -:func:`ellippi` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ellippi(*args) - - -Carlson symmetric elliptic integrals -................................................... - -:func:`elliprf` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.elliprf(x, y, z) - -:func:`elliprc` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.elliprc(x, y, pv=True) - -:func:`elliprj` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.elliprj(x, y, z, p) - -:func:`elliprd` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.elliprd(x, y, z) - -:func:`elliprg` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.elliprg(x, y, z) - - -Jacobi theta functions -...................... - -:func:`jtheta` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.jtheta(n,z,q,derivative=0) - - -Jacobi elliptic functions -................................................................. - -:func:`ellipfun` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ellipfun(kind,u=None,m=None,q=None,k=None,tau=None) - - -Modular functions -...................... - -:func:`kleinj` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.kleinj(tau=None, **kwargs) diff --git a/src/geophires_x/doc/source/functions/expintegrals.txt b/src/geophires_x/doc/source/functions/expintegrals.txt deleted file mode 100644 index fe01ca4e..00000000 --- a/src/geophires_x/doc/source/functions/expintegrals.txt +++ /dev/null @@ -1,104 +0,0 @@ -Exponential integrals and error functions ------------------------------------------ - -Exponential integrals give closed-form solutions to a large class of commonly occurring transcendental integrals that cannot be evaluated using elementary functions. Integrals of this type include those with an integrand of the form `t^a e^{t}` or `e^{-x^2}`, the latter giving rise to the Gaussian (or normal) probability distribution. - -The most general function in this section is the incomplete gamma function, to which all others can be reduced. The incomplete gamma function, in turn, can be expressed using hypergeometric functions (see :doc:`hypergeometric`). - -Incomplete gamma functions -.......................... - -:func:`gammainc` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.gammainc(z, a=0, b=inf, regularized=False) - - -Exponential integrals -..................... - -:func:`ei` -^^^^^^^^^^ -.. autofunction:: mpmath.ei(x, **kwargs) - -:func:`e1` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.e1(x, **kwargs) - -:func:`expint` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.expint(*args) - - -Logarithmic integral -.................... - -:func:`li` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.li(x, **kwargs) - - -Trigonometric integrals -....................... - -:func:`ci` -^^^^^^^^^^ -.. autofunction:: mpmath.ci(x, **kwargs) - -:func:`si` -^^^^^^^^^^ -.. autofunction:: mpmath.si(x, **kwargs) - - -Hyperbolic integrals -.................... - -:func:`chi` -^^^^^^^^^^^ -.. autofunction:: mpmath.chi(x, **kwargs) - -:func:`shi` -^^^^^^^^^^^ -.. autofunction:: mpmath.shi(x, **kwargs) - - -Error functions -............... - -:func:`erf` -^^^^^^^^^^^ -.. autofunction:: mpmath.erf(x, **kwargs) - -:func:`erfc` -^^^^^^^^^^^^ -.. autofunction:: mpmath.erfc(x, **kwargs) - -:func:`erfi` -^^^^^^^^^^^^ -.. autofunction:: mpmath.erfi(x) - -:func:`erfinv` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.erfinv(x) - -The normal distribution -.................................................... - -:func:`npdf` -^^^^^^^^^^^^ -.. autofunction:: mpmath.npdf(x, mu=0, sigma=1) - -:func:`ncdf` -^^^^^^^^^^^^ -.. autofunction:: mpmath.ncdf(x, mu=0, sigma=1) - - -Fresnel integrals -...................................................... - -:func:`fresnels` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.fresnels(x) - -:func:`fresnelc` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.fresnelc(x) diff --git a/src/geophires_x/doc/source/functions/gamma.txt b/src/geophires_x/doc/source/functions/gamma.txt deleted file mode 100644 index dd3fbda4..00000000 --- a/src/geophires_x/doc/source/functions/gamma.txt +++ /dev/null @@ -1,111 +0,0 @@ -Factorials and gamma functions ------------------------------- - -Factorials and factorial-like sums and products are basic tools of combinatorics and number theory. Much like the exponential function is fundamental to differential equations and analysis in general, the factorial function (and its extension to complex numbers, the gamma function) is fundamental to difference equations and functional equations. - -A large selection of factorial-like functions is implemented in mpmath. All functions support complex arguments, and arguments may be arbitrarily large. Results are numerical approximations, so to compute *exact* values a high enough precision must be set manually:: - - >>> from mpmath import mp, fac - >>> mp.dps = 15; mp.pretty = True - >>> fac(100) - 9.33262154439442e+157 - >>> print(int(_)) # most digits are wrong - 93326215443944150965646704795953882578400970373184098831012889540582227238570431295066113089288327277825849664006524270554535976289719382852181865895959724032 - >>> mp.dps = 160 - >>> fac(100) - 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000.0 - -The gamma and polygamma functions are closely related to :doc:`zeta`. See also :doc:`qfunctions` for q-analogs of factorial-like functions. - - -Factorials -.......... - -:func:`factorial`/:func:`fac` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. autofunction:: mpmath.factorial(x, **kwargs) - -:func:`fac2` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.fac2(x) - -Binomial coefficients -.................................................... - -:func:`binomial` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.binomial(n,k) - - -Gamma function -.............. - -:func:`gamma` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.gamma(x, **kwargs) - -:func:`rgamma` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.rgamma(x, **kwargs) - -:func:`gammaprod` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.gammaprod(a, b) - -:func:`loggamma` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.loggamma(x) - - -Rising and falling factorials -............................. - -:func:`rf` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.rf(x,n) - -:func:`ff` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ff(x,n) - -Beta function -............. - -:func:`beta` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.beta(x,y) - -:func:`betainc` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.betainc(a,b,x1=0,x2=1,regularized=False) - - -Super- and hyperfactorials -.......................... - -:func:`superfac` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.superfac(z) - -:func:`hyperfac` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyperfac(z) - -:func:`barnesg` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.barnesg(z) - - -Polygamma functions and harmonic numbers -........................................ - -:func:`psi`/:func:`digamma` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.psi(m, z) - -.. autofunction:: mpmath.digamma(z) - -:func:`harmonic` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.harmonic(z) diff --git a/src/geophires_x/doc/source/functions/hyperbolic.txt b/src/geophires_x/doc/source/functions/hyperbolic.txt deleted file mode 100644 index e48b7e79..00000000 --- a/src/geophires_x/doc/source/functions/hyperbolic.txt +++ /dev/null @@ -1,56 +0,0 @@ -Hyperbolic functions --------------------- - -Hyperbolic functions -.................... - -:func:`cosh` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cosh(x, **kwargs) - -:func:`sinh` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sinh(x, **kwargs) - -:func:`tanh` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.tanh(x, **kwargs) - -:func:`sech` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sech(x) - -:func:`csch` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.csch(x) - -:func:`coth` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.coth(x) - -Inverse hyperbolic functions -............................ - -:func:`acosh` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.acosh(x, **kwargs) - -:func:`asinh` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.asinh(x, **kwargs) - -:func:`atanh` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.atanh(x, **kwargs) - -:func:`asech` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.asech(x) - -:func:`acsch` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.acsch(x) - -:func:`acoth` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.acoth(x) diff --git a/src/geophires_x/doc/source/functions/hypergeometric.txt b/src/geophires_x/doc/source/functions/hypergeometric.txt deleted file mode 100644 index 2e6d7108..00000000 --- a/src/geophires_x/doc/source/functions/hypergeometric.txt +++ /dev/null @@ -1,114 +0,0 @@ -Hypergeometric functions ------------------------- - -The functions listed in :doc:`expintegrals`, :doc:`bessel` and -:doc:`orthogonal`, and many other functions as well, are merely -particular instances of the generalized hypergeometric function `\,_pF_q`. -The functions listed in the following section enable efficient -direct evaluation of the underlying hypergeometric series, as -well as linear combinations, limits with respect to parameters, -and analytic continuations thereof. Extensions to twodimensional -series are also provided. See also the basic or q-analog of -the hypergeometric series in :doc:`qfunctions`. - -For convenience, most of the hypergeometric series of low order are -provided as standalone functions. They can equivalently be evaluated using -:func:`~mpmath.hyper`. As will be demonstrated in the respective docstrings, -all the ``hyp#f#`` functions implement analytic continuations and/or asymptotic -expansions with respect to the argument `z`, thereby permitting evaluation -for `z` anywhere in the complex plane. Functions of higher degree can be -computed via :func:`~mpmath.hyper`, but generally only in rapidly convergent -instances. - -Most hypergeometric and hypergeometric-derived functions accept optional -keyword arguments to specify options for :func:`hypercomb` or -:func:`hyper`. Some useful options are *maxprec*, *maxterms*, -*zeroprec*, *accurate_small*, *hmag*, *force_series*, -*asymp_tol* and *eliminate*. These options give control over what to -do in case of slow convergence, extreme loss of accuracy or -evaluation at zeros (these two cases cannot generally be -distinguished from each other automatically), -and singular parameter combinations. - -Common hypergeometric series -............................ - -:func:`hyp0f1` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp0f1(a, z) - -:func:`hyp1f1` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp1f1(a, b, z) - -:func:`hyp1f2` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp1f2(a1, b1, b2, z) - -:func:`hyp2f0` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp2f0(a, b, z) - -:func:`hyp2f1` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp2f1(a, b, c, z) - -:func:`hyp2f2` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp2f2(a1, a2, b1, b2, z) - -:func:`hyp2f3` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp2f3(a1, a2, b1, b2, b3, z) - -:func:`hyp3f2` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyp3f2(a1, a2, a3, b1, b2, z) - -Generalized hypergeometric functions -.................................... - -:func:`hyper` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyper(a_s, b_s, z) - -:func:`hypercomb` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hypercomb - -Meijer G-function -................................... - -:func:`meijerg` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.meijerg(a_s,b_s,z,r=1,**kwargs) - -Bilateral hypergeometric series -............................... - -:func:`bihyper` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.bihyper(a_s,b_s,z,**kwargs) - -Hypergeometric functions of two variables -............................................... - -:func:`hyper2d` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hyper2d(a,b,x,y,**kwargs) - -:func:`appellf1` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.appellf1(a,b1,b2,c,x,y,**kwargs) - -:func:`appellf2` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.appellf2(a,b1,b2,c1,c2,x,y,**kwargs) - -:func:`appellf3` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.appellf3(a1,a2,b1,b2,c,x,y,**kwargs) - -:func:`appellf4` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.appellf4(a,b,c1,c2,x,y,**kwargs) diff --git a/src/geophires_x/doc/source/functions/index.txt b/src/geophires_x/doc/source/functions/index.txt deleted file mode 100644 index 65b6730b..00000000 --- a/src/geophires_x/doc/source/functions/index.txt +++ /dev/null @@ -1,21 +0,0 @@ -Mathematical functions -====================== - -Mpmath implements the standard functions from Python's ``math`` and ``cmath`` modules, for both real and complex numbers and with arbitrary precision. Many other functions are also available in mpmath, including commonly-used variants of standard functions (such as the alternative trigonometric functions sec, csc, cot), but also a large number of "special functions" such as the gamma function, the Riemann zeta function, error functions, Bessel functions, etc. - -.. toctree:: - :maxdepth: 2 - - constants.txt - powers.txt - trigonometric.txt - hyperbolic.txt - gamma.txt - expintegrals.txt - bessel.txt - orthogonal.txt - hypergeometric.txt - elliptic.txt - zeta.txt - numtheory.txt - qfunctions.txt diff --git a/src/geophires_x/doc/source/functions/numtheory.txt b/src/geophires_x/doc/source/functions/numtheory.txt deleted file mode 100644 index a35e1ff7..00000000 --- a/src/geophires_x/doc/source/functions/numtheory.txt +++ /dev/null @@ -1,93 +0,0 @@ -Number-theoretical, combinatorial and integer functions -------------------------------------------------------- - -For factorial-type functions, including binomial coefficients, -double factorials, etc., see the separate -section :doc:`gamma`. - -Fibonacci numbers -................. - -:func:`fibonacci`/:func:`fib` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.fibonacci(n, **kwargs) - - -Bernoulli numbers and polynomials -................................. - -:func:`bernoulli` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.bernoulli(n) - -:func:`bernfrac` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.bernfrac(n) - -:func:`bernpoly` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.bernpoly(n,z) - -Euler numbers and polynomials -................................. - -:func:`eulernum` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.eulernum(n) - -:func:`eulerpoly` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.eulerpoly(n,z) - - -Bell numbers and polynomials -........................................... - -:func:`bell` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.bell(n,x) - - -Stirling numbers -........................................... - -:func:`stirling1` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.stirling1(n,k,exact=False) - -:func:`stirling2` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.stirling2(n,k,exact=False) - - - -Prime counting functions -........................ - -:func:`primepi` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.primepi(x) - -:func:`primepi2` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.primepi2(x) - -:func:`riemannr` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.riemannr(x) - - -Cyclotomic polynomials -...................... - -:func:`cyclotomic` -^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cyclotomic(n,x) - - -Arithmetic functions -...................... - -:func:`mangoldt` -^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.mangoldt(n) diff --git a/src/geophires_x/doc/source/functions/orthogonal.txt b/src/geophires_x/doc/source/functions/orthogonal.txt deleted file mode 100644 index 27791ca5..00000000 --- a/src/geophires_x/doc/source/functions/orthogonal.txt +++ /dev/null @@ -1,79 +0,0 @@ -Orthogonal polynomials ----------------------- - -An orthogonal polynomial sequence is a sequence of polynomials `P_0(x), P_1(x), \ldots` of degree `0, 1, \ldots`, which are mutually orthogonal in the sense that - -.. math :: - - \int_S P_n(x) P_m(x) w(x) dx = - \begin{cases} - c_n \ne 0 & \text{if $m = n$} \\ - 0 & \text{if $m \ne n$} - \end{cases} - -where `S` is some domain (e.g. an interval `[a,b] \in \mathbb{R}`) and `w(x)` is a fixed *weight function*. A sequence of orthogonal polynomials is determined completely by `w`, `S`, and a normalization convention (e.g. `c_n = 1`). Applications of orthogonal polynomials include function approximation and solution of differential equations. - -Orthogonal polynomials are sometimes defined using the differential equations they satisfy (as functions of `x`) or the recurrence relations they satisfy with respect to the order `n`. Other ways of defining orthogonal polynomials include differentiation formulas and generating functions. The standard orthogonal polynomials can also be represented as hypergeometric series (see :doc:`hypergeometric`), more specifically using the Gauss hypergeometric function `\,_2F_1` in most cases. The following functions are generally implemented using hypergeometric functions since this is computationally efficient and easily generalizes. - -For more information, see the `Wikipedia article on orthogonal polynomials `_. - -Legendre functions -....................................... - -:func:`legendre` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.legendre(n, x) - -:func:`legenp` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.legenp(n, m, z, type=2) - -:func:`legenq` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.legenq(n, m, z, type=2) - -Chebyshev polynomials -..................... - -:func:`chebyt` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.chebyt(n, x) - -:func:`chebyu` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.chebyu(n, x) - -Jacobi polynomials -.................. - -:func:`jacobi` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.jacobi(n, a, b, z) - -Gegenbauer polynomials -..................................... - -:func:`gegenbauer` -^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.gegenbauer(n, a, z) - -Hermite polynomials -..................................... - -:func:`hermite` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.hermite(n, z) - -Laguerre polynomials -....................................... - -:func:`laguerre` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.laguerre(n, a, z) - -Spherical harmonics -..................................... - -:func:`spherharm` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.spherharm(l, m, theta, phi) diff --git a/src/geophires_x/doc/source/functions/powers.txt b/src/geophires_x/doc/source/functions/powers.txt deleted file mode 100644 index 14365ddf..00000000 --- a/src/geophires_x/doc/source/functions/powers.txt +++ /dev/null @@ -1,89 +0,0 @@ -Powers and logarithms ---------------------- - -Nth roots -......... - -:func:`sqrt` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sqrt(x, **kwargs) - -:func:`hypot` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.hypot(x, y) - -:func:`cbrt` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cbrt(x, **kwargs) - -:func:`root` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.root(z, n, k=0) - -:func:`unitroots` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.unitroots(n, primitive=False) - - -Exponentiation -.............. - -:func:`exp` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.exp(x, **kwargs) - -:func:`power` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.power(x, y) - -:func:`expj` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.expj(x, **kwargs) - -:func:`expjpi` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.expjpi(x, **kwargs) - -:func:`expm1` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.expm1(x) - -:func:`powm1` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.powm1(x, y) - - -Logarithms -.......... - -:func:`log` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.log(x, b=None) - -:func:`ln` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ln(x, **kwargs) - -:func:`log10` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.log10(x) - -:func:`log1p` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.log1p(x) - - -Lambert W function -................................................... - -:func:`lambertw` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.lambertw(z, k=0) - - -Arithmetic-geometric mean -....................................... - -:func:`agm` -^^^^^^^^^^^^^^ -.. autofunction:: mpmath.agm(a, b=1) diff --git a/src/geophires_x/doc/source/functions/qfunctions.txt b/src/geophires_x/doc/source/functions/qfunctions.txt deleted file mode 100644 index 4f7bdbe7..00000000 --- a/src/geophires_x/doc/source/functions/qfunctions.txt +++ /dev/null @@ -1,28 +0,0 @@ -q-functions -------------------------------------------- - -q-Pochhammer symbol -.................................................. - -:func:`qp` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.qp(a, q=None, n=None, **kwargs) - - -q-gamma and factorial -.................................................. - -:func:`qgamma` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.qgamma(z, q, **kwargs) - -:func:`qfac` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.qfac(z, q, **kwargs) - -Hypergeometric q-series -.................................................. - -:func:`qhyper` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.qhyper(a_s, b_s, q, z, **kwargs) diff --git a/src/geophires_x/doc/source/functions/trigonometric.txt b/src/geophires_x/doc/source/functions/trigonometric.txt deleted file mode 100644 index 1c2b87e3..00000000 --- a/src/geophires_x/doc/source/functions/trigonometric.txt +++ /dev/null @@ -1,117 +0,0 @@ -Trigonometric functions ------------------------ - -Except where otherwise noted, the trigonometric functions -take a radian angle as input and the inverse trigonometric -functions return radian angles. - -The ordinary trigonometric functions are single-valued -functions defined everywhere in the complex plane -(except at the poles of tan, sec, csc, and cot). -They are defined generally via the exponential function, -e.g. - -.. math :: - - \cos(x) = \frac{e^{ix} + e^{-ix}}{2}. - -The inverse trigonometric functions are multivalued, -thus requiring branch cuts, and are generally real-valued -only on a part of the real line. Definitions and branch cuts -are given in the documentation of each function. -The branch cut conventions used by mpmath are essentially -the same as those found in most standard mathematical software, -such as Mathematica and Python's own ``cmath`` libary (as of Python 2.6; -earlier Python versions implement some functions -erroneously). - -Degree-radian conversion -........................................................... - -:func:`degrees` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.degrees(x) - -:func:`radians` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.radians(x) - -Trigonometric functions -....................... - -:func:`cos` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cos(x, **kwargs) - -:func:`sin` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sin(x, **kwargs) - -:func:`tan` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.tan(x, **kwargs) - -:func:`sec` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sec(x) - -:func:`csc` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.csc(x) - -:func:`cot` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cot(x) - -Trigonometric functions with modified argument -........................................................ - -:func:`cospi` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.cospi(x, **kwargs) - -:func:`sinpi` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sinpi(x, **kwargs) - -Inverse trigonometric functions -................................................ - -:func:`acos` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.acos(x, **kwargs) - -:func:`asin` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.asin(x, **kwargs) - -:func:`atan` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.atan(x, **kwargs) - -:func:`atan2` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.atan2(y, x) - -:func:`asec` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.asec(x) - -:func:`acsc` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.acsc(x) - -:func:`acot` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.acot(x) - -Sinc function -............. - -:func:`sinc` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sinc(x) - -:func:`sincpi` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sincpi(x) diff --git a/src/geophires_x/doc/source/functions/zeta.txt b/src/geophires_x/doc/source/functions/zeta.txt deleted file mode 100644 index d797ce9e..00000000 --- a/src/geophires_x/doc/source/functions/zeta.txt +++ /dev/null @@ -1,104 +0,0 @@ -Zeta functions, L-series and polylogarithms -------------------------------------------- - -This section includes the Riemann zeta functions -and associated functions pertaining to analytic number theory. - - -Riemann and Hurwitz zeta functions -.................................................. - -:func:`zeta` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.zeta(s,a=1,derivative=0) - - -Dirichlet L-series -.................................................. - -:func:`altzeta` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.altzeta(s) - -:func:`dirichlet` -^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.dirichlet(s,chi,derivative=0) - - -Stieltjes constants -................... - -:func:`stieltjes` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.stieltjes(n,a=1) - - -Zeta function zeros -...................................... - -These functions are used for the study of the Riemann zeta function -in the critical strip. - -:func:`zetazero` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.zetazero(n, verbose=False) - -:func:`nzeros` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nzeros(t) - -:func:`siegelz` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.siegelz(t) - -:func:`siegeltheta` -^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.siegeltheta(t) - -:func:`grampoint` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.grampoint(n) - -:func:`backlunds` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.backlunds(t) - - -Lerch transcendent -................................ - -:func:`lerchphi` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.lerchphi(z,s,a) - - -Polylogarithms and Clausen functions -....................................... - -:func:`polylog` -^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.polylog(s,z) - -:func:`clsin` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.clsin(s, z) - -:func:`clcos` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.clcos(s, z) - -:func:`polyexp` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.polyexp(s,z) - - -Zeta function variants -.......................... - -:func:`primezeta` -^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.primezeta(s) - -:func:`secondzeta` -^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.secondzeta(s, a=0.015, **kwargs) diff --git a/src/geophires_x/doc/source/general.txt b/src/geophires_x/doc/source/general.txt deleted file mode 100644 index 6b675c41..00000000 --- a/src/geophires_x/doc/source/general.txt +++ /dev/null @@ -1,232 +0,0 @@ -Utility functions -=============================================== - -This page lists functions that perform basic operations -on numbers or aid general programming. - -Conversion and printing ------------------------ - -:func:`mpmathify` / :func:`convert` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.mpmathify(x, strings=True) - -:func:`nstr` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nstr(x, n=6, **kwargs) - -:func:`nprint` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nprint(x, n=6, **kwargs) - -Arithmetic operations ---------------------- - -See also :func:`mpmath.sqrt`, :func:`mpmath.exp` etc., listed -in :doc:`functions/powers` - -:func:`fadd` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fadd - -:func:`fsub` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fsub - -:func:`fneg` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fneg - -:func:`fmul` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fmul - -:func:`fdiv` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fdiv - -:func:`fmod` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fmod(x, y) - -:func:`fsum` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fsum(terms, absolute=False, squared=False) - -:func:`fprod` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fprod(factors) - -:func:`fdot` -^^^^^^^^^^^^^ -.. autofunction:: mpmath.fdot(A, B=None, conjugate=False) - -Complex components ------------------- - -:func:`fabs` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.fabs(x) - -:func:`sign` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.sign(x) - -:func:`re` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.re(x) - -:func:`im` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.im(x) - -:func:`arg` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.arg(x) - -:func:`conj` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.conj(x) - -:func:`polar` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.polar(x) - -:func:`rect` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.rect(x) - -Integer and fractional parts ------------------------------ - -:func:`floor` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.floor(x) - -:func:`ceil` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ceil(x) - -:func:`nint` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nint(x) - -:func:`frac` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.frac(x) - -Tolerances and approximate comparisons --------------------------------------- - -:func:`chop` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.chop(x, tol=None) - -:func:`almosteq` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.almosteq(s, t, rel_eps=None, abs_eps=None) - -Properties of numbers -------------------------------------- - -:func:`isinf` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.isinf(x) - -:func:`isnan` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.isnan(x) - -:func:`isnormal` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.isnormal(x) - -:func:`isfinite` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.isfinite(x) - -:func:`isint` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.isint(x, gaussian=False) - -:func:`ldexp` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.ldexp(x, n) - -:func:`frexp` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.frexp(x, n) - -:func:`mag` -^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.mag(x) - -:func:`nint_distance` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.nint_distance(x) - -.. :func:`absmin` -.. ^^^^^^^^^^^^^^^^^^^^ -.. .. autofunction:: mpmath.absmin(x) -.. .. autofunction:: mpmath.absmax(x) - -Number generation ------------------ - -:func:`fraction` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.fraction(p,q) - -:func:`rand` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.rand() - -:func:`arange` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.arange(*args) - -:func:`linspace` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.linspace(*args, **kwargs) - -Precision management --------------------- - -:func:`autoprec` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.autoprec - -:func:`workprec` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.workprec - -:func:`workdps` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.workdps - -:func:`extraprec` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.extraprec - -:func:`extradps` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.extradps - -Performance and debugging ------------------------------------- - -:func:`memoize` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.memoize - -:func:`maxcalls` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.maxcalls - -:func:`monitor` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.monitor - -:func:`timing` -^^^^^^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.timing diff --git a/src/geophires_x/doc/source/identification.txt b/src/geophires_x/doc/source/identification.txt deleted file mode 100644 index 7bc430af..00000000 --- a/src/geophires_x/doc/source/identification.txt +++ /dev/null @@ -1,31 +0,0 @@ -Number identification -===================== - -Most function in mpmath are concerned with producing approximations from exact mathematical formulas. It is also useful to consider the inverse problem: given only a decimal approximation for a number, such as 0.7320508075688772935274463, is it possible to find an exact formula? - -Subject to certain restrictions, such "reverse engineering" is indeed possible thanks to the existence of *integer relation algorithms*. Mpmath implements the PSLQ algorithm (developed by H. Ferguson), which is one such algorithm. - -Automated number recognition based on PSLQ is not a silver bullet. Any occurring transcendental constants (`\pi`, `e`, etc) must be guessed by the user, and the relation between those constants in the formula must be linear (such as `x = 3 \pi + 4 e`). More complex formulas can be found by combining PSLQ with functional transformations; however, this is only feasible to a limited extent since the computation time grows exponentially with the number of operations that need to be combined. - -The number identification facilities in mpmath are inspired by the `Inverse Symbolic Calculator `_ (ISC). The ISC is more powerful than mpmath, as it uses a lookup table of millions of precomputed constants (thereby mitigating the problem with exponential complexity). - -Constant recognition ------------------------------------ - -:func:`identify` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.identify - -Algebraic identification ---------------------------------------- - -:func:`findpoly` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.findpoly - -Integer relations (PSLQ) ----------------------------- - -:func:`pslq` -^^^^^^^^^^^^^^^^ -.. autofunction:: mpmath.pslq diff --git a/src/geophires_x/doc/source/index.txt b/src/geophires_x/doc/source/index.txt deleted file mode 100644 index adddf281..00000000 --- a/src/geophires_x/doc/source/index.txt +++ /dev/null @@ -1,53 +0,0 @@ -.. mpmath documentation master file, created by sphinx-quickstart on Fri Mar 28 13:50:14 2008. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to mpmath's documentation! -================================== - -Mpmath is a Python library for arbitrary-precision floating-point arithmetic. -For general information about mpmath, see the project website http://mpmath.org/ - -These documentation pages include general information as well as docstring listing with extensive use of examples that can be run in the interactive Python interpreter. For quick access to the docstrings of individual functions, use the `index listing `_, or type ``help(mpmath.function_name)`` in the Python interactive prompt. - -Introduction ------------- - -.. toctree :: - :maxdepth: 2 - - setup.txt - basics.txt - -Basic features ----------------- - -.. toctree :: - :maxdepth: 2 - - contexts.txt - general.txt - plotting.txt - -Advanced mathematics --------------------- - -On top of its support for arbitrary-precision arithmetic, mpmath -provides extensive support for transcendental functions, evaluation of sums, integrals, limits, roots, and so on. - -.. toctree :: - :maxdepth: 2 - - functions/index.txt - calculus/index.txt - matrices.txt - identification.txt - -End matter ----------- - -.. toctree :: - :maxdepth: 2 - - technical.txt - references.txt diff --git a/src/geophires_x/doc/source/matrices.txt b/src/geophires_x/doc/source/matrices.txt deleted file mode 100644 index d8b12734..00000000 --- a/src/geophires_x/doc/source/matrices.txt +++ /dev/null @@ -1,541 +0,0 @@ -Matrices -======== - -Creating matrices ------------------ - -Basic methods -............. - -Matrices in mpmath are implemented using dictionaries. Only non-zero values are -stored, so it is cheap to represent sparse matrices. - -The most basic way to create one is to use the ``matrix`` class directly. You -can create an empty matrix specifying the dimensions:: - - >>> from mpmath import * - >>> mp.dps = 15; mp.pretty = False - >>> matrix(2) - matrix( - [['0.0', '0.0'], - ['0.0', '0.0']]) - >>> matrix(2, 3) - matrix( - [['0.0', '0.0', '0.0'], - ['0.0', '0.0', '0.0']]) - -Calling ``matrix`` with one dimension will create a square matrix. - -To access the dimensions of a matrix, use the ``rows`` or ``cols`` keyword:: - - >>> A = matrix(3, 2) - >>> A - matrix( - [['0.0', '0.0'], - ['0.0', '0.0'], - ['0.0', '0.0']]) - >>> A.rows - 3 - >>> A.cols - 2 - -You can also change the dimension of an existing matrix. This will set the -new elements to 0. If the new dimension is smaller than before, the -concerning elements are discarded:: - - >>> A.rows = 2 - >>> A - matrix( - [['0.0', '0.0'], - ['0.0', '0.0']]) - -Internally ``convert`` is applied every time an element is set. This is -done using the syntax A[row,column], counting from 0:: - - >>> A = matrix(2) - >>> A[1,1] = 1 + 1j - >>> print(A) - [0.0 0.0] - [0.0 (1.0 + 1.0j)] - -A more comfortable way to create a matrix lets you use nested lists:: - - >>> matrix([[1, 2], [3, 4]]) - matrix( - [['1.0', '2.0'], - ['3.0', '4.0']]) - -Advanced methods -................ - -Convenient functions are available for creating various standard matrices:: - - >>> zeros(2) - matrix( - [['0.0', '0.0'], - ['0.0', '0.0']]) - >>> ones(2) - matrix( - [['1.0', '1.0'], - ['1.0', '1.0']]) - >>> diag([1, 2, 3]) # diagonal matrix - matrix( - [['1.0', '0.0', '0.0'], - ['0.0', '2.0', '0.0'], - ['0.0', '0.0', '3.0']]) - >>> eye(2) # identity matrix - matrix( - [['1.0', '0.0'], - ['0.0', '1.0']]) - -You can even create random matrices:: - - >>> randmatrix(2) # doctest:+SKIP - matrix( - [['0.53491598236191806', '0.57195669543302752'], - ['0.85589992269513615', '0.82444367501382143']]) - -Vectors -....... - -Vectors may also be represented by the ``matrix`` class (with rows = 1 or cols = 1). -For vectors there are some things which make life easier. A column vector can -be created using a flat list, a row vectors using an almost flat nested list:: - - >>> matrix([1, 2, 3]) - matrix( - [['1.0'], - ['2.0'], - ['3.0']]) - >>> matrix([[1, 2, 3]]) - matrix( - [['1.0', '2.0', '3.0']]) - -Optionally vectors can be accessed like lists, using only a single index:: - - >>> x = matrix([1, 2, 3]) - >>> x[1] - mpf('2.0') - >>> x[1,0] - mpf('2.0') - -Other -..... - -Like you probably expected, matrices can be printed:: - - >>> print(randmatrix(3)) # doctest:+SKIP - [ 0.782963853573023 0.802057689719883 0.427895717335467] - [0.0541876859348597 0.708243266653103 0.615134039977379] - [ 0.856151514955773 0.544759264818486 0.686210904770947] - -Use ``nstr`` or ``nprint`` to specify the number of digits to print:: - - >>> nprint(randmatrix(5), 3) # doctest:+SKIP - [2.07e-1 1.66e-1 5.06e-1 1.89e-1 8.29e-1] - [6.62e-1 6.55e-1 4.47e-1 4.82e-1 2.06e-2] - [4.33e-1 7.75e-1 6.93e-2 2.86e-1 5.71e-1] - [1.01e-1 2.53e-1 6.13e-1 3.32e-1 2.59e-1] - [1.56e-1 7.27e-2 6.05e-1 6.67e-2 2.79e-1] - -As matrices are mutable, you will need to copy them sometimes:: - - >>> A = matrix(2) - >>> A - matrix( - [['0.0', '0.0'], - ['0.0', '0.0']]) - >>> B = A.copy() - >>> B[0,0] = 1 - >>> B - matrix( - [['1.0', '0.0'], - ['0.0', '0.0']]) - >>> A - matrix( - [['0.0', '0.0'], - ['0.0', '0.0']]) - -Finally, it is possible to convert a matrix to a nested list. This is very useful, -as most Python libraries involving matrices or arrays (namely NumPy or SymPy) -support this format:: - - >>> B.tolist() - [[mpf('1.0'), mpf('0.0')], [mpf('0.0'), mpf('0.0')]] - - -Matrix operations ------------------ - -You can add and subtract matrices of compatible dimensions:: - - >>> A = matrix([[1, 2], [3, 4]]) - >>> B = matrix([[-2, 4], [5, 9]]) - >>> A + B - matrix( - [['-1.0', '6.0'], - ['8.0', '13.0']]) - >>> A - B - matrix( - [['3.0', '-2.0'], - ['-2.0', '-5.0']]) - >>> A + ones(3) # doctest:+ELLIPSIS - Traceback (most recent call last): - File "", line 1, in - File "...", line 238, in __add__ - raise ValueError('incompatible dimensions for addition') - ValueError: incompatible dimensions for addition - -It is possible to multiply or add matrices and scalars. In the latter case the -operation will be done element-wise:: - - >>> A * 2 - matrix( - [['2.0', '4.0'], - ['6.0', '8.0']]) - >>> A / 4 - matrix( - [['0.25', '0.5'], - ['0.75', '1.0']]) - >>> A - 1 - matrix( - [['0.0', '1.0'], - ['2.0', '3.0']]) - -Of course you can perform matrix multiplication, if the dimensions are -compatible:: - - >>> A * B - matrix( - [['8.0', '22.0'], - ['14.0', '48.0']]) - >>> matrix([[1, 2, 3]]) * matrix([[-6], [7], [-2]]) - matrix( - [['2.0']]) - -You can raise powers of square matrices:: - - >>> A**2 - matrix( - [['7.0', '10.0'], - ['15.0', '22.0']]) - -Negative powers will calculate the inverse:: - - >>> A**-1 - matrix( - [['-2.0', '1.0'], - ['1.5', '-0.5']]) - >>> nprint(A * A**-1, 3) - [ 1.0 1.08e-19] - [-2.17e-19 1.0] - -Matrix transposition is straightforward:: - - >>> A = ones(2, 3) - >>> A - matrix( - [['1.0', '1.0', '1.0'], - ['1.0', '1.0', '1.0']]) - >>> A.T - matrix( - [['1.0', '1.0'], - ['1.0', '1.0'], - ['1.0', '1.0']]) - - -Norms -..... - -Sometimes you need to know how "large" a matrix or vector is. Due to their -multidimensional nature it's not possible to compare them, but there are -several functions to map a matrix or a vector to a positive real number, the -so called norms. - -.. autofunction :: mpmath.norm - -.. autofunction :: mpmath.mnorm - - -Linear algebra --------------- - -Decompositions -.............. - -.. autofunction :: mpmath.cholesky - - -Linear equations -................ - -Basic linear algebra is implemented; you can for example solve the linear -equation system:: - - x + 2*y = -10 - 3*x + 4*y = 10 - -using ``lu_solve``:: - - >>> A = matrix([[1, 2], [3, 4]]) - >>> b = matrix([-10, 10]) - >>> x = lu_solve(A, b) - >>> x - matrix( - [['30.0'], - ['-20.0']]) - -If you don't trust the result, use ``residual`` to calculate the residual ||A*x-b||:: - - >>> residual(A, x, b) - matrix( - [['3.46944695195361e-18'], - ['3.46944695195361e-18']]) - >>> str(eps) - '2.22044604925031e-16' - -As you can see, the solution is quite accurate. The error is caused by the -inaccuracy of the internal floating point arithmetic. Though, it's even smaller -than the current machine epsilon, which basically means you can trust the -result. - -If you need more speed, use NumPy, or use ``fp`` instead ``mp`` matrices -and methods:: - - >>> A = fp.matrix([[1, 2], [3, 4]]) - >>> b = fp.matrix([-10, 10]) - >>> fp.lu_solve(A, b) # doctest:+SKIP - matrix( - [['30.0'], - ['-20.0']]) - -``lu_solve`` accepts overdetermined systems. It is usually not possible to solve -such systems, so the residual is minimized instead. Internally this is done -using Cholesky decomposition to compute a least squares approximation. This means -that that ``lu_solve`` will square the errors. If you can't afford this, use -``qr_solve`` instead. It is twice as slow but more accurate, and it calculates -the residual automatically. - - -Matrix factorization -.................... - -The function ``lu`` computes an explicit LU factorization of a matrix:: - - >>> P, L, U = lu(matrix([[0,2,3],[4,5,6],[7,8,9]])) - >>> print(P) - [0.0 0.0 1.0] - [1.0 0.0 0.0] - [0.0 1.0 0.0] - >>> print(L) - [ 1.0 0.0 0.0] - [ 0.0 1.0 0.0] - [0.571428571428571 0.214285714285714 1.0] - >>> print(U) - [7.0 8.0 9.0] - [0.0 2.0 3.0] - [0.0 0.0 0.214285714285714] - >>> print(P.T*L*U) - [0.0 2.0 3.0] - [4.0 5.0 6.0] - [7.0 8.0 9.0] - -The function ``qr`` computes a QR factorization of a matrix:: - - >>> A = matrix([[1, 2], [3, 4], [1, 1]]) - >>> Q, R = qr(A) - >>> print(Q) - [-0.301511344577764 0.861640436855329 0.408248290463863] - [-0.904534033733291 -0.123091490979333 -0.408248290463863] - [-0.301511344577764 -0.492365963917331 0.816496580927726] - >>> print(R) - [-3.3166247903554 -4.52267016866645] - [ 0.0 0.738548945875996] - [ 0.0 0.0] - >>> print(Q * R) - [1.0 2.0] - [3.0 4.0] - [1.0 1.0] - >>> print(chop(Q.T * Q)) - [1.0 0.0 0.0] - [0.0 1.0 0.0] - [0.0 0.0 1.0] - - -The singular value decomposition -................................ - -The routines ``svd_r`` and ``svd_c`` compute the singular value decomposition -of a real or complex matrix A. ``svd`` is an unified interface calling -either ``svd_r`` or ``svd_c`` depending on whether *A* is real or complex. - -Given *A*, two orthogonal (*A* real) or unitary (*A* complex) matrices *U* and *V* -are calculated such that - -.. math :: - - A = U S V, \quad U' U = 1, \quad V V' = 1 - -where *S* is a suitable shaped matrix whose off-diagonal elements are zero. -Here ' denotes the hermitian transpose (i.e. transposition and complex -conjugation). The diagonal elements of *S* are the singular values of *A*, -i.e. the square roots of the eigenvalues of `A' A` or `A A'`. - -Examples:: - - >>> from mpmath import mp - >>> A = mp.matrix([[2, -2, -1], [3, 4, -2], [-2, -2, 0]]) - >>> S = mp.svd_r(A, compute_uv = False) - >>> print(S) - [6.0] - [3.0] - [1.0] - >>> U, S, V = mp.svd_r(A) - >>> print(mp.chop(A - U * mp.diag(S) * V)) - [0.0 0.0 0.0] - [0.0 0.0 0.0] - [0.0 0.0 0.0] - - -The Schur decomposition -....................... - -This routine computes the Schur decomposition of a square matrix *A*. -Given *A*, a unitary matrix *Q* is determined such that - -.. math :: - - Q' A Q = R, \quad Q' Q = Q Q' = 1 - -where *R* is an upper right triangular matrix. Here ' denotes the -hermitian transpose (i.e. transposition and conjugation). - -Examples:: - - >>> from mpmath import mp - >>> A = mp.matrix([[3, -1, 2], [2, 5, -5], [-2, -3, 7]]) - >>> Q, R = mp.schur(A) - >>> mp.nprint(R, 3) # doctest:+SKIP - [2.0 0.417 -2.53] - [0.0 4.0 -4.74] - [0.0 0.0 9.0] - >>> print(mp.chop(A - Q * R * Q.transpose_conj())) - [0.0 0.0 0.0] - [0.0 0.0 0.0] - [0.0 0.0 0.0] - - -The eigenvalue problem -...................... - -The routine ``eig`` solves the (ordinary) eigenvalue problem for a real or complex -square matrix *A*. Given *A*, a vector *E* and matrices *ER* and *EL* are calculated such that - -.. code :: - - A ER[:,i] = E[i] ER[:,i] - EL[i,:] A = EL[i,:] E[i] - -*E* contains the eigenvalues of *A*. The columns of *ER* contain the right eigenvectors -of *A* whereas the rows of *EL* contain the left eigenvectors. - - -Examples:: - - >>> from mpmath import mp - >>> A = mp.matrix([[3, -1, 2], [2, 5, -5], [-2, -3, 7]]) - >>> E, ER = mp.eig(A) - >>> print(mp.chop(A * ER[:,0] - E[0] * ER[:,0])) - [0.0] - [0.0] - [0.0] - >>> E, EL, ER = mp.eig(A,left = True, right = True) - >>> E, EL, ER = mp.eig_sort(E, EL, ER) - >>> mp.nprint(E) - [2.0, 4.0, 9.0] - >>> print(mp.chop(A * ER[:,0] - E[0] * ER[:,0])) - [0.0] - [0.0] - [0.0] - >>> print(mp.chop( EL[0,:] * A - EL[0,:] * E[0])) - [0.0 0.0 0.0] - - -The symmetric eigenvalue problem -................................ - -The routines ``eigsy`` and ``eighe`` solve the (ordinary) eigenvalue problem -for a real symmetric or complex hermitian square matrix *A*. -``eigh`` is an unified interface for this two functions calling either -``eigsy`` or ``eighe`` depending on whether *A* is real or complex. - -Given *A*, an orthogonal (*A* real) or unitary matrix *Q* (*A* complex) is -calculated which diagonalizes A: - -.. math :: - - Q' A Q = \operatorname{diag}(E), \quad Q Q' = Q' Q = 1 - -Here diag(*E*) a is diagonal matrix whose diagonal is *E*. -' denotes the hermitian transpose (i.e. ordinary transposition and -complex conjugation). - -The columns of *Q* are the eigenvectors of *A* and *E* contains the eigenvalues: - -.. code :: - - A Q[:,i] = E[i] Q[:,i] - -Examples:: - - >>> from mpmath import mp - >>> A = mp.matrix([[3, 2], [2, 0]]) - >>> E = mp.eigsy(A, eigvals_only = True) - >>> print(E) - [-1.0] - [ 4.0] - >>> A = mp.matrix([[1, 2], [2, 3]]) - >>> E, Q = mp.eigsy(A) # alternative: E, Q = mp.eigh(A) - >>> print(mp.chop(A * Q[:,0] - E[0] * Q[:,0])) - [0.0] - [0.0] - >>> A = mp.matrix([[1, 2 + 5j], [2 - 5j, 3]]) - >>> E, Q = mp.eighe(A) # alternative: E, Q = mp.eigh(A) - >>> print(mp.chop(A * Q[:,0] - E[0] * Q[:,0])) - [0.0] - [0.0] - - -Interval and double-precision matrices --------------------------------------- - -The ``iv.matrix`` and ``fp.matrix`` classes convert inputs -to intervals and Python floating-point numbers respectively. - -Interval matrices can be used to perform linear algebra operations -with rigorous error tracking:: - - >>> a = iv.matrix([['0.1','0.3','1.0'], - ... ['7.1','5.5','4.8'], - ... ['3.2','4.4','5.6']]) - >>> - >>> b = iv.matrix(['4','0.6','0.5']) - >>> c = iv.lu_solve(a, b) - >>> print(c) - [ [5.2582327113062393041, 5.2582327113062749951]] - [[-13.155049396267856583, -13.155049396267821167]] - [ [7.4206915477497212555, 7.4206915477497310922]] - >>> print(a*c) - [ [3.9999999999999866773, 4.0000000000000133227]] - [[0.59999999999972430942, 0.60000000000027142733]] - [[0.49999999999982236432, 0.50000000000018474111]] - -Matrix functions ----------------- - -.. autofunction :: mpmath.expm -.. autofunction :: mpmath.cosm -.. autofunction :: mpmath.sinm -.. autofunction :: mpmath.sqrtm -.. autofunction :: mpmath.logm -.. autofunction :: mpmath.powm diff --git a/src/geophires_x/doc/source/plot.png b/src/geophires_x/doc/source/plot.png deleted file mode 100644 index f864c464..00000000 Binary files a/src/geophires_x/doc/source/plot.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ai.png b/src/geophires_x/doc/source/plots/ai.png deleted file mode 100644 index 96762ce1..00000000 Binary files a/src/geophires_x/doc/source/plots/ai.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ai.py b/src/geophires_x/doc/source/plots/ai.py deleted file mode 100644 index 7d570157..00000000 --- a/src/geophires_x/doc/source/plots/ai.py +++ /dev/null @@ -1,5 +0,0 @@ -# Airy function Ai(x), Ai'(x) and int_0^x Ai(t) dt on the real line -f = airyai -f_diff = lambda z: airyai(z, derivative=1) -f_int = lambda z: airyai(z, derivative=-1) -plot([f, f_diff, f_int], [-10,5]) diff --git a/src/geophires_x/doc/source/plots/ai_c.png b/src/geophires_x/doc/source/plots/ai_c.png deleted file mode 100644 index 5963ed08..00000000 Binary files a/src/geophires_x/doc/source/plots/ai_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ai_c.py b/src/geophires_x/doc/source/plots/ai_c.py deleted file mode 100644 index f6d3a024..00000000 --- a/src/geophires_x/doc/source/plots/ai_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Airy function Ai(z) in the complex plane -cplot(airyai, [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/ber.png b/src/geophires_x/doc/source/plots/ber.png deleted file mode 100644 index 2646482b..00000000 Binary files a/src/geophires_x/doc/source/plots/ber.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ber.py b/src/geophires_x/doc/source/plots/ber.py deleted file mode 100644 index 64e146e4..00000000 --- a/src/geophires_x/doc/source/plots/ber.py +++ /dev/null @@ -1,6 +0,0 @@ -# Kelvin functions ber_n(x) and bei_n(x) on the real line for n=0,2 -f0 = lambda x: ber(0,x) -f1 = lambda x: bei(0,x) -f2 = lambda x: ber(2,x) -f3 = lambda x: bei(2,x) -plot([f0,f1,f2,f3],[0,10],[-10,10]) diff --git a/src/geophires_x/doc/source/plots/besseli.png b/src/geophires_x/doc/source/plots/besseli.png deleted file mode 100644 index 1aae4b35..00000000 Binary files a/src/geophires_x/doc/source/plots/besseli.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/besseli.py b/src/geophires_x/doc/source/plots/besseli.py deleted file mode 100644 index 72872e59..00000000 --- a/src/geophires_x/doc/source/plots/besseli.py +++ /dev/null @@ -1,6 +0,0 @@ -# Modified Bessel function I_n(x) on the real line for n=0,1,2,3 -i0 = lambda x: besseli(0,x) -i1 = lambda x: besseli(1,x) -i2 = lambda x: besseli(2,x) -i3 = lambda x: besseli(3,x) -plot([i0,i1,i2,i3],[0,5],[0,5]) diff --git a/src/geophires_x/doc/source/plots/besseli_c.png b/src/geophires_x/doc/source/plots/besseli_c.png deleted file mode 100644 index ee3f2d43..00000000 Binary files a/src/geophires_x/doc/source/plots/besseli_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/besseli_c.py b/src/geophires_x/doc/source/plots/besseli_c.py deleted file mode 100644 index a81881a5..00000000 --- a/src/geophires_x/doc/source/plots/besseli_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Modified Bessel function I_n(z) in the complex plane -cplot(lambda z: besseli(1,z), [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/besselj.png b/src/geophires_x/doc/source/plots/besselj.png deleted file mode 100644 index 4bc13b37..00000000 Binary files a/src/geophires_x/doc/source/plots/besselj.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/besselj.py b/src/geophires_x/doc/source/plots/besselj.py deleted file mode 100644 index 18b89e10..00000000 --- a/src/geophires_x/doc/source/plots/besselj.py +++ /dev/null @@ -1,6 +0,0 @@ -# Bessel function J_n(x) on the real line for n=0,1,2,3 -j0 = lambda x: besselj(0,x) -j1 = lambda x: besselj(1,x) -j2 = lambda x: besselj(2,x) -j3 = lambda x: besselj(3,x) -plot([j0,j1,j2,j3],[0,14]) diff --git a/src/geophires_x/doc/source/plots/besselj_c.png b/src/geophires_x/doc/source/plots/besselj_c.png deleted file mode 100644 index 507634b3..00000000 Binary files a/src/geophires_x/doc/source/plots/besselj_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/besselj_c.py b/src/geophires_x/doc/source/plots/besselj_c.py deleted file mode 100644 index c27f02d7..00000000 --- a/src/geophires_x/doc/source/plots/besselj_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Bessel function J_n(z) in the complex plane -cplot(lambda z: besselj(1,z), [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/besselk.png b/src/geophires_x/doc/source/plots/besselk.png deleted file mode 100644 index 19501d1f..00000000 Binary files a/src/geophires_x/doc/source/plots/besselk.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/besselk.py b/src/geophires_x/doc/source/plots/besselk.py deleted file mode 100644 index e7fe45e5..00000000 --- a/src/geophires_x/doc/source/plots/besselk.py +++ /dev/null @@ -1,6 +0,0 @@ -# Modified Bessel function of 2nd kind K_n(x) on the real line for n=0,1,2,3 -k0 = lambda x: besselk(0,x) -k1 = lambda x: besselk(1,x) -k2 = lambda x: besselk(2,x) -k3 = lambda x: besselk(3,x) -plot([k0,k1,k2,k3],[0,8],[0,5]) diff --git a/src/geophires_x/doc/source/plots/besselk_c.png b/src/geophires_x/doc/source/plots/besselk_c.png deleted file mode 100644 index e521824f..00000000 Binary files a/src/geophires_x/doc/source/plots/besselk_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/besselk_c.py b/src/geophires_x/doc/source/plots/besselk_c.py deleted file mode 100644 index e28429cd..00000000 --- a/src/geophires_x/doc/source/plots/besselk_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Modified Bessel function of 2nd kind K_n(z) in the complex plane -cplot(lambda z: besselk(1,z), [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/bessely.png b/src/geophires_x/doc/source/plots/bessely.png deleted file mode 100644 index 0766d7c5..00000000 Binary files a/src/geophires_x/doc/source/plots/bessely.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/bessely.py b/src/geophires_x/doc/source/plots/bessely.py deleted file mode 100644 index b69ddb6b..00000000 --- a/src/geophires_x/doc/source/plots/bessely.py +++ /dev/null @@ -1,6 +0,0 @@ -# Bessel function of 2nd kind Y_n(x) on the real line for n=0,1,2,3 -y0 = lambda x: bessely(0,x) -y1 = lambda x: bessely(1,x) -y2 = lambda x: bessely(2,x) -y3 = lambda x: bessely(3,x) -plot([y0,y1,y2,y3],[0,10],[-4,1]) diff --git a/src/geophires_x/doc/source/plots/bessely_c.png b/src/geophires_x/doc/source/plots/bessely_c.png deleted file mode 100644 index e76be473..00000000 Binary files a/src/geophires_x/doc/source/plots/bessely_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/bessely_c.py b/src/geophires_x/doc/source/plots/bessely_c.py deleted file mode 100644 index adb58b5b..00000000 --- a/src/geophires_x/doc/source/plots/bessely_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Bessel function of 2nd kind Y_n(z) in the complex plane -cplot(lambda z: bessely(1,z), [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/bi.png b/src/geophires_x/doc/source/plots/bi.png deleted file mode 100644 index b8800d7f..00000000 Binary files a/src/geophires_x/doc/source/plots/bi.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/bi.py b/src/geophires_x/doc/source/plots/bi.py deleted file mode 100644 index 6ca5914c..00000000 --- a/src/geophires_x/doc/source/plots/bi.py +++ /dev/null @@ -1,5 +0,0 @@ -# Airy function Bi(x), Bi'(x) and int_0^x Bi(t) dt on the real line -f = airybi -f_diff = lambda z: airybi(z, derivative=1) -f_int = lambda z: airybi(z, derivative=-1) -plot([f, f_diff, f_int], [-10,2], [-1,2]) diff --git a/src/geophires_x/doc/source/plots/bi_c.png b/src/geophires_x/doc/source/plots/bi_c.png deleted file mode 100644 index cbd17bad..00000000 Binary files a/src/geophires_x/doc/source/plots/bi_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/bi_c.py b/src/geophires_x/doc/source/plots/bi_c.py deleted file mode 100644 index 25a0a3f6..00000000 --- a/src/geophires_x/doc/source/plots/bi_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Airy function Bi(z) in the complex plane -cplot(airybi, [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/buildplots.py b/src/geophires_x/doc/source/plots/buildplots.py deleted file mode 100644 index c59bf68b..00000000 --- a/src/geophires_x/doc/source/plots/buildplots.py +++ /dev/null @@ -1,22 +0,0 @@ -import os.path -import glob - -for f in glob.glob("*.py"): - if "buildplots" in f or os.path.exists(f[:-3]+".png"): - continue - print "Processing", f - code = open(f).readlines() - code = ["from mpmath import *; mp.dps=5"] + code - for i in range(len(code)): - l = code[i].rstrip() - if "cplot(" in l: - l = l[:-1] + (", dpi=45, file='%s.png', verbose=True)" % f[:-3]) - code[i] = l - elif "splot(" in l: - l = l[:-1] + (", dpi=45, file='%s.png')" % f[:-3]) - code[i] = l - elif "plot(" in l: - l = l[:-1] + (", dpi=45, file='%s.png')" % f[:-3]) - code[i] = l - code = "\n".join(code) - exec code diff --git a/src/geophires_x/doc/source/plots/chebyt.png b/src/geophires_x/doc/source/plots/chebyt.png deleted file mode 100644 index ce78cecc..00000000 Binary files a/src/geophires_x/doc/source/plots/chebyt.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/chebyt.py b/src/geophires_x/doc/source/plots/chebyt.py deleted file mode 100644 index 4cdc0a92..00000000 --- a/src/geophires_x/doc/source/plots/chebyt.py +++ /dev/null @@ -1,7 +0,0 @@ -# Chebyshev polynomials T_n(x) on [-1,1] for n=0,1,2,3,4 -f0 = lambda x: chebyt(0,x) -f1 = lambda x: chebyt(1,x) -f2 = lambda x: chebyt(2,x) -f3 = lambda x: chebyt(3,x) -f4 = lambda x: chebyt(4,x) -plot([f0,f1,f2,f3,f4],[-1,1]) diff --git a/src/geophires_x/doc/source/plots/chebyu.png b/src/geophires_x/doc/source/plots/chebyu.png deleted file mode 100644 index 591bb0e6..00000000 Binary files a/src/geophires_x/doc/source/plots/chebyu.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/chebyu.py b/src/geophires_x/doc/source/plots/chebyu.py deleted file mode 100644 index 2fa349cf..00000000 --- a/src/geophires_x/doc/source/plots/chebyu.py +++ /dev/null @@ -1,7 +0,0 @@ -# Chebyshev polynomials U_n(x) on [-1,1] for n=0,1,2,3,4 -f0 = lambda x: chebyu(0,x) -f1 = lambda x: chebyu(1,x) -f2 = lambda x: chebyu(2,x) -f3 = lambda x: chebyu(3,x) -f4 = lambda x: chebyu(4,x) -plot([f0,f1,f2,f3,f4],[-1,1]) diff --git a/src/geophires_x/doc/source/plots/coulombf.png b/src/geophires_x/doc/source/plots/coulombf.png deleted file mode 100644 index a4a0efe3..00000000 Binary files a/src/geophires_x/doc/source/plots/coulombf.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/coulombf.py b/src/geophires_x/doc/source/plots/coulombf.py deleted file mode 100644 index 16a5344c..00000000 --- a/src/geophires_x/doc/source/plots/coulombf.py +++ /dev/null @@ -1,7 +0,0 @@ -# Regular Coulomb wave functions -- equivalent to figure 14.3 in A&S -F1 = lambda x: coulombf(0,0,x) -F2 = lambda x: coulombf(0,1,x) -F3 = lambda x: coulombf(0,5,x) -F4 = lambda x: coulombf(0,10,x) -F5 = lambda x: coulombf(0,x/2,x) -plot([F1,F2,F3,F4,F5], [0,25], [-1.2,1.6]) diff --git a/src/geophires_x/doc/source/plots/coulombf_c.png b/src/geophires_x/doc/source/plots/coulombf_c.png deleted file mode 100644 index bc34dffc..00000000 Binary files a/src/geophires_x/doc/source/plots/coulombf_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/coulombf_c.py b/src/geophires_x/doc/source/plots/coulombf_c.py deleted file mode 100644 index 96611b5a..00000000 --- a/src/geophires_x/doc/source/plots/coulombf_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Regular Coulomb wave function in the complex plane -cplot(lambda z: coulombf(1,1,z), points=50000) diff --git a/src/geophires_x/doc/source/plots/coulombg.png b/src/geophires_x/doc/source/plots/coulombg.png deleted file mode 100644 index bc6c02c0..00000000 Binary files a/src/geophires_x/doc/source/plots/coulombg.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/coulombg.py b/src/geophires_x/doc/source/plots/coulombg.py deleted file mode 100644 index 49f408f7..00000000 --- a/src/geophires_x/doc/source/plots/coulombg.py +++ /dev/null @@ -1,7 +0,0 @@ -# Irregular Coulomb wave functions -- equivalent to figure 14.5 in A&S -F1 = lambda x: coulombg(0,0,x) -F2 = lambda x: coulombg(0,1,x) -F3 = lambda x: coulombg(0,5,x) -F4 = lambda x: coulombg(0,10,x) -F5 = lambda x: coulombg(0,x/2,x) -plot([F1,F2,F3,F4,F5], [0,30], [-2,2]) diff --git a/src/geophires_x/doc/source/plots/coulombg_c.png b/src/geophires_x/doc/source/plots/coulombg_c.png deleted file mode 100644 index de6e7cdc..00000000 Binary files a/src/geophires_x/doc/source/plots/coulombg_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/coulombg_c.py b/src/geophires_x/doc/source/plots/coulombg_c.py deleted file mode 100644 index a1fc0955..00000000 --- a/src/geophires_x/doc/source/plots/coulombg_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Irregular Coulomb wave function in the complex plane -cplot(lambda z: coulombg(1,1,z), points=50000) diff --git a/src/geophires_x/doc/source/plots/ellipe.png b/src/geophires_x/doc/source/plots/ellipe.png deleted file mode 100644 index d816a6b0..00000000 Binary files a/src/geophires_x/doc/source/plots/ellipe.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ellipe.py b/src/geophires_x/doc/source/plots/ellipe.py deleted file mode 100644 index 6481a680..00000000 --- a/src/geophires_x/doc/source/plots/ellipe.py +++ /dev/null @@ -1,7 +0,0 @@ -# Elliptic integral E(z,m) for some different m -f1 = lambda z: ellipe(z,-2) -f2 = lambda z: ellipe(z,-1) -f3 = lambda z: ellipe(z,0) -f4 = lambda z: ellipe(z,1) -f5 = lambda z: ellipe(z,2) -plot([f1,f2,f3,f4,f5], [0,pi], [0,4]) diff --git a/src/geophires_x/doc/source/plots/ellipf.png b/src/geophires_x/doc/source/plots/ellipf.png deleted file mode 100644 index 30c5ec74..00000000 Binary files a/src/geophires_x/doc/source/plots/ellipf.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ellipf.py b/src/geophires_x/doc/source/plots/ellipf.py deleted file mode 100644 index a7932e1c..00000000 --- a/src/geophires_x/doc/source/plots/ellipf.py +++ /dev/null @@ -1,7 +0,0 @@ -# Elliptic integral F(z,m) for some different m -f1 = lambda z: ellipf(z,-1) -f2 = lambda z: ellipf(z,-0.5) -f3 = lambda z: ellipf(z,0) -f4 = lambda z: ellipf(z,0.5) -f5 = lambda z: ellipf(z,1) -plot([f1,f2,f3,f4,f5], [0,pi], [0,4]) diff --git a/src/geophires_x/doc/source/plots/ellipk.png b/src/geophires_x/doc/source/plots/ellipk.png deleted file mode 100644 index e44bbee2..00000000 Binary files a/src/geophires_x/doc/source/plots/ellipk.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ellipk.py b/src/geophires_x/doc/source/plots/ellipk.py deleted file mode 100644 index 34fd2dcc..00000000 --- a/src/geophires_x/doc/source/plots/ellipk.py +++ /dev/null @@ -1,2 +0,0 @@ -# Complete elliptic integrals K(m) and E(m) -plot([ellipk, ellipe], [-2,1], [0,3], points=600) diff --git a/src/geophires_x/doc/source/plots/ellippi.png b/src/geophires_x/doc/source/plots/ellippi.png deleted file mode 100644 index 87f1fbc4..00000000 Binary files a/src/geophires_x/doc/source/plots/ellippi.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ellippi.py b/src/geophires_x/doc/source/plots/ellippi.py deleted file mode 100644 index 894d1a01..00000000 --- a/src/geophires_x/doc/source/plots/ellippi.py +++ /dev/null @@ -1,7 +0,0 @@ -# Elliptic integral Pi(n,z,m) for some different n, m -f1 = lambda z: ellippi(0.9,z,0.9) -f2 = lambda z: ellippi(0.5,z,0.5) -f3 = lambda z: ellippi(-2,z,-0.9) -f4 = lambda z: ellippi(-0.5,z,0.5) -f5 = lambda z: ellippi(-1,z,0.5) -plot([f1,f2,f3,f4,f5], [0,pi], [0,4]) diff --git a/src/geophires_x/doc/source/plots/gi.png b/src/geophires_x/doc/source/plots/gi.png deleted file mode 100644 index 53e22d24..00000000 Binary files a/src/geophires_x/doc/source/plots/gi.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/gi.py b/src/geophires_x/doc/source/plots/gi.py deleted file mode 100644 index 9679f055..00000000 --- a/src/geophires_x/doc/source/plots/gi.py +++ /dev/null @@ -1,2 +0,0 @@ -# Scorer function Gi(x) and Gi'(x) on the real line -plot([scorergi, diffun(scorergi)], [-10,10]) diff --git a/src/geophires_x/doc/source/plots/gi_c.png b/src/geophires_x/doc/source/plots/gi_c.png deleted file mode 100644 index d627aeb7..00000000 Binary files a/src/geophires_x/doc/source/plots/gi_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/gi_c.py b/src/geophires_x/doc/source/plots/gi_c.py deleted file mode 100644 index c05ee4cc..00000000 --- a/src/geophires_x/doc/source/plots/gi_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Scorer function Gi(z) in the complex plane -cplot(scorergi, [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/hankel1.png b/src/geophires_x/doc/source/plots/hankel1.png deleted file mode 100644 index be950dc2..00000000 Binary files a/src/geophires_x/doc/source/plots/hankel1.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hankel1.py b/src/geophires_x/doc/source/plots/hankel1.py deleted file mode 100644 index d75c4c19..00000000 --- a/src/geophires_x/doc/source/plots/hankel1.py +++ /dev/null @@ -1,6 +0,0 @@ -# Hankel function H1_n(x) on the real line for n=0,1,2,3 -h0 = lambda x: hankel1(0,x) -h1 = lambda x: hankel1(1,x) -h2 = lambda x: hankel1(2,x) -h3 = lambda x: hankel1(3,x) -plot([h0,h1,h2,h3],[0,6],[-2,1]) diff --git a/src/geophires_x/doc/source/plots/hankel1_c.png b/src/geophires_x/doc/source/plots/hankel1_c.png deleted file mode 100644 index 8547d94a..00000000 Binary files a/src/geophires_x/doc/source/plots/hankel1_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hankel1_c.py b/src/geophires_x/doc/source/plots/hankel1_c.py deleted file mode 100644 index 9475cc1f..00000000 --- a/src/geophires_x/doc/source/plots/hankel1_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Hankel function H1_n(z) in the complex plane -cplot(lambda z: hankel1(1,z), [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/hankel2.png b/src/geophires_x/doc/source/plots/hankel2.png deleted file mode 100644 index f3691442..00000000 Binary files a/src/geophires_x/doc/source/plots/hankel2.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hankel2.py b/src/geophires_x/doc/source/plots/hankel2.py deleted file mode 100644 index 7f1d6709..00000000 --- a/src/geophires_x/doc/source/plots/hankel2.py +++ /dev/null @@ -1,6 +0,0 @@ -# Hankel function H2_n(x) on the real line for n=0,1,2,3 -h0 = lambda x: hankel2(0,x) -h1 = lambda x: hankel2(1,x) -h2 = lambda x: hankel2(2,x) -h3 = lambda x: hankel2(3,x) -plot([h0,h1,h2,h3],[0,6],[-1,2]) diff --git a/src/geophires_x/doc/source/plots/hankel2_c.png b/src/geophires_x/doc/source/plots/hankel2_c.png deleted file mode 100644 index 4eb83ba2..00000000 Binary files a/src/geophires_x/doc/source/plots/hankel2_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hankel2_c.py b/src/geophires_x/doc/source/plots/hankel2_c.py deleted file mode 100644 index e893caa3..00000000 --- a/src/geophires_x/doc/source/plots/hankel2_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Hankel function H2_n(z) in the complex plane -cplot(lambda z: hankel2(1,z), [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/hermite.png b/src/geophires_x/doc/source/plots/hermite.png deleted file mode 100644 index 9628dad8..00000000 Binary files a/src/geophires_x/doc/source/plots/hermite.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hermite.py b/src/geophires_x/doc/source/plots/hermite.py deleted file mode 100644 index 4de0b111..00000000 --- a/src/geophires_x/doc/source/plots/hermite.py +++ /dev/null @@ -1,7 +0,0 @@ -# Hermite polynomials H_n(x) on the real line for n=0,1,2,3,4 -f0 = lambda x: hermite(0,x) -f1 = lambda x: hermite(1,x) -f2 = lambda x: hermite(2,x) -f3 = lambda x: hermite(3,x) -f4 = lambda x: hermite(4,x) -plot([f0,f1,f2,f3,f4],[-2,2],[-25,25]) diff --git a/src/geophires_x/doc/source/plots/hi.png b/src/geophires_x/doc/source/plots/hi.png deleted file mode 100644 index e4b2ae97..00000000 Binary files a/src/geophires_x/doc/source/plots/hi.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hi.py b/src/geophires_x/doc/source/plots/hi.py deleted file mode 100644 index d8f34237..00000000 --- a/src/geophires_x/doc/source/plots/hi.py +++ /dev/null @@ -1,2 +0,0 @@ -# Scorer function Hi(x) and Hi'(x) on the real line -plot([scorerhi, diffun(scorerhi)], [-10,2], [0,2]) diff --git a/src/geophires_x/doc/source/plots/hi_c.png b/src/geophires_x/doc/source/plots/hi_c.png deleted file mode 100644 index bb580ee9..00000000 Binary files a/src/geophires_x/doc/source/plots/hi_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/hi_c.py b/src/geophires_x/doc/source/plots/hi_c.py deleted file mode 100644 index 8cbc4595..00000000 --- a/src/geophires_x/doc/source/plots/hi_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Scorer function Hi(z) in the complex plane -cplot(scorerhi, [-8,8], [-8,8], points=50000) diff --git a/src/geophires_x/doc/source/plots/ker.png b/src/geophires_x/doc/source/plots/ker.png deleted file mode 100644 index ed3bd110..00000000 Binary files a/src/geophires_x/doc/source/plots/ker.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/ker.py b/src/geophires_x/doc/source/plots/ker.py deleted file mode 100644 index 19a4bdca..00000000 --- a/src/geophires_x/doc/source/plots/ker.py +++ /dev/null @@ -1,6 +0,0 @@ -# Kelvin functions ker_n(x) and kei_n(x) on the real line for n=0,2 -f0 = lambda x: ker(0,x) -f1 = lambda x: kei(0,x) -f2 = lambda x: ker(2,x) -f3 = lambda x: kei(2,x) -plot([f0,f1,f2,f3],[0,5],[-1,4]) diff --git a/src/geophires_x/doc/source/plots/kleinj.png b/src/geophires_x/doc/source/plots/kleinj.png deleted file mode 100644 index 098c79ad..00000000 Binary files a/src/geophires_x/doc/source/plots/kleinj.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/kleinj.py b/src/geophires_x/doc/source/plots/kleinj.py deleted file mode 100644 index bdffcc2d..00000000 --- a/src/geophires_x/doc/source/plots/kleinj.py +++ /dev/null @@ -1,2 +0,0 @@ -# Klein J-function as function of the number-theoretic nome -fp.cplot(lambda q: fp.kleinj(qbar=q), [-1,1], [-1,1], points=50000) diff --git a/src/geophires_x/doc/source/plots/kleinj2.png b/src/geophires_x/doc/source/plots/kleinj2.png deleted file mode 100644 index 87a61866..00000000 Binary files a/src/geophires_x/doc/source/plots/kleinj2.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/kleinj2.py b/src/geophires_x/doc/source/plots/kleinj2.py deleted file mode 100644 index 6e187f28..00000000 --- a/src/geophires_x/doc/source/plots/kleinj2.py +++ /dev/null @@ -1,2 +0,0 @@ -# Klein J-function as function of the half-period ratio -fp.cplot(lambda t: fp.kleinj(tau=t), [-1,2], [0,1.5], points=50000) diff --git a/src/geophires_x/doc/source/plots/laguerre.png b/src/geophires_x/doc/source/plots/laguerre.png deleted file mode 100644 index 2bdc0c76..00000000 Binary files a/src/geophires_x/doc/source/plots/laguerre.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/laguerre.py b/src/geophires_x/doc/source/plots/laguerre.py deleted file mode 100644 index 8fe40250..00000000 --- a/src/geophires_x/doc/source/plots/laguerre.py +++ /dev/null @@ -1,7 +0,0 @@ -# Hermite polynomials L_n(x) on the real line for n=0,1,2,3,4 -f0 = lambda x: laguerre(0,0,x) -f1 = lambda x: laguerre(1,0,x) -f2 = lambda x: laguerre(2,0,x) -f3 = lambda x: laguerre(3,0,x) -f4 = lambda x: laguerre(4,0,x) -plot([f0,f1,f2,f3,f4],[0,10],[-10,10]) diff --git a/src/geophires_x/doc/source/plots/lambertw.png b/src/geophires_x/doc/source/plots/lambertw.png deleted file mode 100644 index 0d96a626..00000000 Binary files a/src/geophires_x/doc/source/plots/lambertw.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/lambertw.py b/src/geophires_x/doc/source/plots/lambertw.py deleted file mode 100644 index 6da5025e..00000000 --- a/src/geophires_x/doc/source/plots/lambertw.py +++ /dev/null @@ -1,2 +0,0 @@ -# Branches 0 and -1 of the Lambert W function -plot([lambertw, lambda x: lambertw(x,-1)], [-2,2], [-5,2], points=2000) diff --git a/src/geophires_x/doc/source/plots/lambertw_c.png b/src/geophires_x/doc/source/plots/lambertw_c.png deleted file mode 100644 index 4f23ee29..00000000 Binary files a/src/geophires_x/doc/source/plots/lambertw_c.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/lambertw_c.py b/src/geophires_x/doc/source/plots/lambertw_c.py deleted file mode 100644 index 7562880b..00000000 --- a/src/geophires_x/doc/source/plots/lambertw_c.py +++ /dev/null @@ -1,2 +0,0 @@ -# Principal branch of the Lambert W function W(z) -cplot(lambertw, [-1,1], [-1,1], points=50000) diff --git a/src/geophires_x/doc/source/plots/legendre.png b/src/geophires_x/doc/source/plots/legendre.png deleted file mode 100644 index a02e14ea..00000000 Binary files a/src/geophires_x/doc/source/plots/legendre.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/legendre.py b/src/geophires_x/doc/source/plots/legendre.py deleted file mode 100644 index 05723a1d..00000000 --- a/src/geophires_x/doc/source/plots/legendre.py +++ /dev/null @@ -1,7 +0,0 @@ -# Legendre polynomials P_n(x) on [-1,1] for n=0,1,2,3,4 -f0 = lambda x: legendre(0,x) -f1 = lambda x: legendre(1,x) -f2 = lambda x: legendre(2,x) -f3 = lambda x: legendre(3,x) -f4 = lambda x: legendre(4,x) -plot([f0,f1,f2,f3,f4],[-1,1]) diff --git a/src/geophires_x/doc/source/plots/lommels1.png b/src/geophires_x/doc/source/plots/lommels1.png deleted file mode 100644 index 555a7158..00000000 Binary files a/src/geophires_x/doc/source/plots/lommels1.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/lommels1.py b/src/geophires_x/doc/source/plots/lommels1.py deleted file mode 100644 index 327119e6..00000000 --- a/src/geophires_x/doc/source/plots/lommels1.py +++ /dev/null @@ -1,6 +0,0 @@ -# Lommel function s_(u,v)(x) on the real line for a few different u,v -f1 = lambda x: lommels1(-1,2.5,x) -f2 = lambda x: lommels1(0,0.5,x) -f3 = lambda x: lommels1(0,6,x) -f4 = lambda x: lommels1(0.5,3,x) -plot([f1,f2,f3,f4], [0,20]) diff --git a/src/geophires_x/doc/source/plots/lommels2.png b/src/geophires_x/doc/source/plots/lommels2.png deleted file mode 100644 index 4b496808..00000000 Binary files a/src/geophires_x/doc/source/plots/lommels2.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/lommels2.py b/src/geophires_x/doc/source/plots/lommels2.py deleted file mode 100644 index 33b94471..00000000 --- a/src/geophires_x/doc/source/plots/lommels2.py +++ /dev/null @@ -1,6 +0,0 @@ -# Lommel function S_(u,v)(x) on the real line for a few different u,v -f1 = lambda x: lommels2(-1,2.5,x) -f2 = lambda x: lommels2(1.5,2,x) -f3 = lambda x: lommels2(2.5,1,x) -f4 = lambda x: lommels2(3.5,-0.5,x) -plot([f1,f2,f3,f4], [0,8], [-8,8]) diff --git a/src/geophires_x/doc/source/plots/pcfd.png b/src/geophires_x/doc/source/plots/pcfd.png deleted file mode 100644 index 966295e0..00000000 Binary files a/src/geophires_x/doc/source/plots/pcfd.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/pcfd.py b/src/geophires_x/doc/source/plots/pcfd.py deleted file mode 100644 index dfb2e22e..00000000 --- a/src/geophires_x/doc/source/plots/pcfd.py +++ /dev/null @@ -1,7 +0,0 @@ -# Parabolic cylinder function D_n(x) on the real line for n=0,1,2,3,4 -d0 = lambda x: pcfd(0,x) -d1 = lambda x: pcfd(1,x) -d2 = lambda x: pcfd(2,x) -d3 = lambda x: pcfd(3,x) -d4 = lambda x: pcfd(4,x) -plot([d0,d1,d2,d3,d4],[-7,7]) diff --git a/src/geophires_x/doc/source/plots/spherharm40.png b/src/geophires_x/doc/source/plots/spherharm40.png deleted file mode 100644 index b0a0cc7c..00000000 Binary files a/src/geophires_x/doc/source/plots/spherharm40.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/spherharm40.py b/src/geophires_x/doc/source/plots/spherharm40.py deleted file mode 100644 index de139913..00000000 --- a/src/geophires_x/doc/source/plots/spherharm40.py +++ /dev/null @@ -1,15 +0,0 @@ -# Real part of spherical harmonic Y_(4,0)(theta,phi) -def Y(l,m): - def g(theta,phi): - R = abs(fp.re(fp.spherharm(l,m,theta,phi))) - x = R*fp.cos(phi)*fp.sin(theta) - y = R*fp.sin(phi)*fp.sin(theta) - z = R*fp.cos(theta) - return [x,y,z] - return g - -fp.splot(Y(4,0), [0,fp.pi], [0,2*fp.pi], points=300) -# fp.splot(Y(4,0), [0,fp.pi], [0,2*fp.pi], points=300) -# fp.splot(Y(4,1), [0,fp.pi], [0,2*fp.pi], points=300) -# fp.splot(Y(4,2), [0,fp.pi], [0,2*fp.pi], points=300) -# fp.splot(Y(4,3), [0,fp.pi], [0,2*fp.pi], points=300) diff --git a/src/geophires_x/doc/source/plots/spherharm41.png b/src/geophires_x/doc/source/plots/spherharm41.png deleted file mode 100644 index 25ff1e9f..00000000 Binary files a/src/geophires_x/doc/source/plots/spherharm41.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/spherharm41.py b/src/geophires_x/doc/source/plots/spherharm41.py deleted file mode 100644 index bacf85b9..00000000 --- a/src/geophires_x/doc/source/plots/spherharm41.py +++ /dev/null @@ -1,11 +0,0 @@ -# Real part of spherical harmonic Y_(4,1)(theta,phi) -def Y(l,m): - def g(theta,phi): - R = abs(fp.re(fp.spherharm(l,m,theta,phi))) - x = R*fp.cos(phi)*fp.sin(theta) - y = R*fp.sin(phi)*fp.sin(theta) - z = R*fp.cos(theta) - return [x,y,z] - return g - -fp.splot(Y(4,1), [0,fp.pi], [0,2*fp.pi], points=300) diff --git a/src/geophires_x/doc/source/plots/spherharm42.png b/src/geophires_x/doc/source/plots/spherharm42.png deleted file mode 100644 index 6ba62f79..00000000 Binary files a/src/geophires_x/doc/source/plots/spherharm42.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/spherharm42.py b/src/geophires_x/doc/source/plots/spherharm42.py deleted file mode 100644 index 0a38f634..00000000 --- a/src/geophires_x/doc/source/plots/spherharm42.py +++ /dev/null @@ -1,11 +0,0 @@ -# Real part of spherical harmonic Y_(4,2)(theta,phi) -def Y(l,m): - def g(theta,phi): - R = abs(fp.re(fp.spherharm(l,m,theta,phi))) - x = R*fp.cos(phi)*fp.sin(theta) - y = R*fp.sin(phi)*fp.sin(theta) - z = R*fp.cos(theta) - return [x,y,z] - return g - -fp.splot(Y(4,2), [0,fp.pi], [0,2*fp.pi], points=300) diff --git a/src/geophires_x/doc/source/plots/spherharm43.png b/src/geophires_x/doc/source/plots/spherharm43.png deleted file mode 100644 index d7eb4b21..00000000 Binary files a/src/geophires_x/doc/source/plots/spherharm43.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/spherharm43.py b/src/geophires_x/doc/source/plots/spherharm43.py deleted file mode 100644 index 88f4fbad..00000000 --- a/src/geophires_x/doc/source/plots/spherharm43.py +++ /dev/null @@ -1,11 +0,0 @@ -# Real part of spherical harmonic Y_(4,3)(theta,phi) -def Y(l,m): - def g(theta,phi): - R = abs(fp.re(fp.spherharm(l,m,theta,phi))) - x = R*fp.cos(phi)*fp.sin(theta) - y = R*fp.sin(phi)*fp.sin(theta) - z = R*fp.cos(theta) - return [x,y,z] - return g - -fp.splot(Y(4,3), [0,fp.pi], [0,2*fp.pi], points=300) diff --git a/src/geophires_x/doc/source/plots/spherharm44.png b/src/geophires_x/doc/source/plots/spherharm44.png deleted file mode 100644 index 83a712d4..00000000 Binary files a/src/geophires_x/doc/source/plots/spherharm44.png and /dev/null differ diff --git a/src/geophires_x/doc/source/plots/spherharm44.py b/src/geophires_x/doc/source/plots/spherharm44.py deleted file mode 100644 index 91d9a3f5..00000000 --- a/src/geophires_x/doc/source/plots/spherharm44.py +++ /dev/null @@ -1,14 +0,0 @@ -from mpmath import fp - -# Real part of spherical harmonic Y_(4,4)(theta,phi) -def Y(l,m): - def g(theta,phi): - R = abs(fp.re(fp.spherharm(l,m,theta,phi))) - x = R*fp.cos(phi)*fp.sin(theta) - y = R*fp.sin(phi)*fp.sin(theta) - z = R*fp.cos(theta) - return [x,y,z] - return g - -fp.splot(Y(4,4), [0,fp.pi], [0,2*fp.pi], points=300, - dpi=45, file="spherharm44.png") diff --git a/src/geophires_x/doc/source/plotting.txt b/src/geophires_x/doc/source/plotting.txt deleted file mode 100644 index 0ae91ed2..00000000 --- a/src/geophires_x/doc/source/plotting.txt +++ /dev/null @@ -1,31 +0,0 @@ -Plotting -======== - -If `matplotlib `_ is available, the functions ``plot`` and ``cplot`` in mpmath can be used to plot functions respectively as x-y graphs and in the complex plane. Also, ``splot`` can be used to produce 3D surface plots. - -Function curve plots ------------------------ - -.. image:: plot.png - -Output of ``plot([cos, sin], [-4, 4])`` - -.. autofunction:: mpmath.plot - -Complex function plots -------------------------- - -.. image:: cplot.png - -Output of ``fp.cplot(fp.gamma, points=100000)`` - -.. autofunction:: mpmath.cplot - -3D surface plots ----------------- - -.. image:: splot.png - -Output of ``splot`` for the donut example. - -.. autofunction:: mpmath.splot diff --git a/src/geophires_x/doc/source/references.txt b/src/geophires_x/doc/source/references.txt deleted file mode 100644 index cd20ae94..00000000 --- a/src/geophires_x/doc/source/references.txt +++ /dev/null @@ -1,50 +0,0 @@ -References -=================== - -The following is a non-comprehensive list of works used in the development of mpmath -or cited for examples or mathematical definitions used in this documentation. -References not listed here can be found in the source code. - -.. [AbramowitzStegun] M Abramowitz & I Stegun. *Handbook of Mathematical Functions, 9th Ed.*, Tenth Printing, December 1972, with corrections (electronic copy: http://people.math.sfu.ca/~cbm/aands/) - -.. [Bailey] D H Bailey. "Tanh-Sinh High-Precision Quadrature", http://crd.lbl.gov/~dhbailey/dhbpapers/dhb-tanh-sinh.pdf - -.. [BenderOrszag] C M Bender & S A Orszag. *Advanced Mathematical Methods for - Scientists and Engineers*, Springer 1999 - -.. [BorweinBailey] J Borwein, D H Bailey & R Girgensohn. *Experimentation in Mathematics - Computational Paths to Discovery*, A K Peters, 2003 - -.. [BorweinBorwein] J Borwein & P B Borwein. *Pi and the AGM: A Study in Analytic Number Theory and Computational Complexity*, Wiley 1987 - -.. [BorweinZeta] P Borwein. "An Efficient Algorithm for the Riemann Zeta Function", http://www.cecm.sfu.ca/personal/pborwein/PAPERS/P155.pdf - -.. [CabralRosetti] L G Cabral-Rosetti & M A Sanchis-Lozano. "Appell Functions and the Scalar One-Loop Three-point Integrals in Feynman Diagrams". http://arxiv.org/abs/hep-ph/0206081 - -.. [Carlson] B C Carlson. "Numerical computation of real or complex elliptic integrals". http://arxiv.org/abs/math/9409227v1 - -.. [Corless] R M Corless et al. "On the Lambert W function", Adv. Comp. Math. 5 (1996) 329-359. http://www.apmaths.uwo.ca/~djeffrey/Offprints/W-adv-cm.pdf - -.. [DLMF] NIST Digital Library of Mathematical Functions. http://dlmf.nist.gov/ - -.. [GradshteynRyzhik] I S Gradshteyn & I M Ryzhik, A Jeffrey & D Zwillinger (eds.), *Table of Integrals, Series and Products*, Seventh edition (2007), Elsevier - -.. [GravesMorris] P R Graves-Morris, D E Roberts & A Salam. "The epsilon algorithm and related topics", *Journal of Computational and Applied Mathematics*, Volume 122, Issue 1-2 (October 2000) - -.. [MPFR] The MPFR team. "The MPFR Library: Algorithms and Proofs", http://www.mpfr.org/algorithms.pdf - -.. [Slater] L J Slater. *Generalized Hypergeometric Functions*. Cambridge University Press, 1966 - -.. [Spouge] J L Spouge. "Computation of the gamma, digamma, and trigamma functions", SIAM J. Numer. Anal. Vol. 31, No. 3, pp. 931-944, June 1994. - -.. [SrivastavaKarlsson] H M Srivastava & P W Karlsson. *Multiple Gaussian Hypergeometric Series*. Ellis Horwood, 1985. - -.. [Vidunas] R Vidunas. "Identities between Appell's and hypergeometric functions". http://arxiv.org/abs/0804.0655 - -.. [Weisstein] E W Weisstein. *MathWorld*. http://mathworld.wolfram.com/ - -.. [WhittakerWatson] E T Whittaker & G N Watson. *A Course of Modern Analysis*. 4th Ed. 1946 - Cambridge University Press - -.. [Wikipedia] *Wikipedia, the free encyclopedia*. http://en.wikipedia.org/wiki/Main_Page - -.. [WolframFunctions] Wolfram Research, Inc. *The Wolfram Functions Site*. http://functions.wolfram.com/ diff --git a/src/geophires_x/doc/source/setup.txt b/src/geophires_x/doc/source/setup.txt deleted file mode 100644 index aa1806b1..00000000 --- a/src/geophires_x/doc/source/setup.txt +++ /dev/null @@ -1,159 +0,0 @@ -Setting up mpmath -================= - -Download and installation -------------------------- - -Installer -......... - -The mpmath setup files can be downloaded from the `Python Package Index `_. Download the source package (available as both .zip and .tar.gz), extract it, open the extracted directory, and run - - ``python setup.py install`` - -Using pip -......... - -Releases are registered on PyPI, so you can install latest release -of the Mpmath with pip - - ``pip install mpmath`` - -or some specific version with - - ``pip install mpmath==0.19`` - -Using setuptools -................ - -If you have `setuptools `_ installed, you can download and install mpmath in one step by running: - - ``easy_install mpmath`` - -or - - ``python -m easy_install mpmath`` - -If you have an old version of mpmath installed already, you may have to pass ``easy_install`` the ``-U`` flag to force an upgrade. - - -Debian/Ubuntu -............. - -Debian and Ubuntu users can install mpmath with - - ``sudo apt-get install python-mpmath`` - -See `debian `_ and `ubuntu `_ package information; please verify that you are getting the latest version. - -OpenSUSE -........ - -Mpmath is provided in the "Science" repository for all recent versions of `openSUSE `_. To add this repository to the YAST software management tool, see http://en.opensuse.org/SDB:Add_package_repositories - -Look up http://download.opensuse.org/repositories/science/ for a list -of supported OpenSUSE versions and use http://download.opensuse.org/repositories/science/openSUSE_11.1/ -(or accordingly for your OpenSUSE version) as the repository URL for YAST. - -Current development version -........................... - -The git repository is https://github.com/fredrik-johansson/mpmath - -Checking that it works -...................... - -After the setup has completed, you should be able to fire up the interactive Python interpreter and do the following:: - - >>> from mpmath import * - >>> mp.dps = 50 - >>> print(mpf(2) ** mpf('0.5')) - 1.4142135623730950488016887242096980785696718753769 - >>> print(2*pi) - 6.2831853071795864769252867665590057683943387987502 - -*Note: if you have are upgrading mpmath from an earlier version, you may have to manually uninstall the old version or remove the old files.* - -Using gmpy (optional) ---------------------- - -By default, mpmath uses Python integers internally. If `gmpy `_ version 1.03 or later is installed on your system, mpmath will automatically detect it and transparently use gmpy integers intead. This makes mpmath much faster, especially at high precision (approximately above 100 digits). - -To verify that mpmath uses gmpy, check the internal variable ``BACKEND`` is not equal to 'python': - - >>> import mpmath.libmp - >>> mpmath.libmp.BACKEND # doctest:+SKIP - 'gmpy' - -The gmpy mode can be disabled by setting the MPMATH_NOGMPY environment variable. Note that the mode cannot be switched during runtime; mpmath must be re-imported for this change to take effect. - -Running tests -------------- - -It is recommended that you run mpmath's full set of unit tests to make sure everything works. The `py.test `_ is a required dependence for testing. The tests are located in the ``tests`` subdirectory of the main mpmath directory. They can be run using:: - - ``py.test --pyargs mpmath`` - -If any test fails, please send a detailed bug report to the `mpmath issue tracker `_. - -To run the tests with support for gmpy disabled, set ``MPMATH_NOGMPY`` environment variable. - -To enable extra diagnostics, use, set ``MPMATH_STRICT`` environment variable. - -Compiling the documentation ---------------------------- - -If you downloaded the source package, the text source for these documentation pages is included in the ``doc`` directory. The documentation can be compiled to pretty HTML using `Sphinx `_. Go to the ``doc`` directory and run - - ``python build.py`` - -You can also test that all the interactive examples in the documentation work by running - - ``python run_doctest.py`` - -and by running the individual ``.py`` files in the mpmath source. - -(The doctests may take several minutes.) - -Finally, some additional demo scripts are available in the ``demo`` directory included in the source package. - -Mpmath under Sage -------------------- - -Mpmath is a standard package in `Sage `_, in version 4.1 or later of Sage. -Mpmath is preinstalled a regular Python module, and can be imported as usual within Sage:: - - ---------------------------------------------------------------------- - | Sage Version 4.1, Release Date: 2009-07-09 | - | Type notebook() for the GUI, and license() for information. | - ---------------------------------------------------------------------- - sage: import mpmath - sage: mpmath.mp.dps = 50 - sage: print mpmath.mpf(2) ** 0.5 - 1.4142135623730950488016887242096980785696718753769 - -The mpmath installation under Sage automatically use Sage integers for asymptotically fast arithmetic, -so there is no need to install GMPY:: - - sage: mpmath.libmp.BACKEND - 'sage' - -In Sage, mpmath can alternatively be imported via the interface library -``sage.libs.mpmath.all``. For example:: - - sage: import sage.libs.mpmath.all as mpmath - -This module provides a few extra conversion functions, including :func:`call` -which permits calling any mpmath function with Sage numbers as input, and getting -Sage ``RealNumber`` or ``ComplexNumber`` instances -with the appropriate precision back:: - - sage: w = mpmath.call(mpmath.erf, 2+3*I, prec=100) - sage: w - -20.829461427614568389103088452 + 8.6873182714701631444280787545*I - sage: type(w) - - sage: w.prec() - 100 - -See the help for ``sage.libs.mpmath.all`` for further information. diff --git a/src/geophires_x/doc/source/splot.png b/src/geophires_x/doc/source/splot.png deleted file mode 100644 index df75c71e..00000000 Binary files a/src/geophires_x/doc/source/splot.png and /dev/null differ diff --git a/src/geophires_x/doc/source/technical.txt b/src/geophires_x/doc/source/technical.txt deleted file mode 100644 index dc90a8bd..00000000 --- a/src/geophires_x/doc/source/technical.txt +++ /dev/null @@ -1,159 +0,0 @@ -Precision and representation issues -=================================== - -Most of the time, using mpmath is simply a matter of setting the desired precision and entering a formula. For verification purposes, a quite (but not always!) reliable technique is to calculate the same thing a second time at a higher precision and verifying that the results agree. - -To perform more advanced calculations, it is important to have some understanding of how mpmath works internally and what the possible sources of error are. This section gives an overview of arbitrary-precision binary floating-point arithmetic and some concepts from numerical analysis. - -The following concepts are important to understand: - -* The main sources of numerical errors are rounding and cancellation, which are due to the use of finite-precision arithmetic, and truncation or approximation errors, which are due to approximating infinite sequences or continuous functions by a finite number of samples. -* Errors propagate between calculations. A small error in the input may result in a large error in the output. -* Most numerical algorithms for complex problems (e.g. integrals, derivatives) give wrong answers for sufficiently ill-behaved input. Sometimes virtually the only way to get a wrong answer is to design some very contrived input, but at other times the chance of accidentally obtaining a wrong result even for reasonable-looking input is quite high. -* Like any complex numerical software, mpmath has implementation bugs. You should be reasonably suspicious about any results computed by mpmath, even those it claims to be able to compute correctly! If possible, verify results analytically, try different algorithms, and cross-compare with other software. - -Precision, error and tolerance ------------------------------- - -The following terms are common in this documentation: - -- *Precision* (or *working precision*) is the precision at which floating-point arithmetic operations are performed. -- *Error* is the difference between a computed approximation and the exact result. -- *Accuracy* is the inverse of error. -- *Tolerance* is the maximum error (or minimum accuracy) desired in a result. - -Error and accuracy can be measured either directly, or logarithmically in bits or digits. Specifically, if a `\hat y` is an approximation for `y`, then - -- (Direct) absolute error = `|\hat y - y|` -- (Direct) relative error = `|\hat y - y| |y|^{-1}` -- (Direct) absolute accuracy = `|\hat y - y|^{-1}` -- (Direct) relative accuracy = `|\hat y - y|^{-1} |y|` -- (Logarithmic) absolute error = `\log_b |\hat y - y|` -- (Logarithmic) relative error = `\log_b |\hat y - y| - \log_b |y|` -- (Logarithmic) absolute accuracy = `-\log_b |\hat y - y|` -- (Logarithmic) relative accuracy = `-\log_b |\hat y - y| + \log_b |y|` - -where `b = 2` and `b = 10` for bits and digits respectively. Note that: - -- The logarithmic error roughly equals the position of the first incorrect bit or digit -- The logarithmic accuracy roughly equals the number of correct bits or digits in the result - -These definitions also hold for complex numbers, using `|a+bi| = \sqrt{a^2+b^2}`. - -*Full accuracy* means that the accuracy of a result at least equals *prec*-1, i.e. it is correct except possibly for the last bit. - -Representation of numbers -------------------------- - -Mpmath uses binary arithmetic. A binary floating-point number is a number of the form `man \times 2^{exp}` where both *man* (the *mantissa*) and *exp* (the *exponent*) are integers. Some examples of floating-point numbers are given in the following table. - - +--------+----------+----------+ - | Number | Mantissa | Exponent | - +========+==========+==========+ - | 3 | 3 | 0 | - +--------+----------+----------+ - | 10 | 5 | 1 | - +--------+----------+----------+ - | -16 | -1 | 4 | - +--------+----------+----------+ - | 1.25 | 5 | -2 | - +--------+----------+----------+ - -The representation as defined so far is not unique; one can always multiply the mantissa by 2 and subtract 1 from the exponent with no change in the numerical value. In mpmath, numbers are always normalized so that *man* is an odd number, with the exception of zero which is always taken to have *man = exp = 0*. With these conventions, every representable number has a unique representation. (Mpmath does not currently distinguish between positive and negative zero.) - -Simple mathematical operations are now easy to define. Due to uniqueness, equality testing of two numbers simply amounts to separately checking equality of the mantissas and the exponents. Multiplication of nonzero numbers is straightforward: `(m 2^e) \times (n 2^f) = (m n) \times 2^{e+f}`. Addition is a bit more involved: we first need to multiply the mantissa of one of the operands by a suitable power of 2 to obtain equal exponents. - -More technically, mpmath represents a floating-point number as a 4-tuple *(sign, man, exp, bc)* where *sign* is 0 or 1 (indicating positive vs negative) and the mantissa is nonnegative; *bc* (*bitcount*) is the size of the absolute value of the mantissa as measured in bits. Though redundant, keeping a separate sign field and explicitly keeping track of the bitcount significantly speeds up arithmetic (the bitcount, especially, is frequently needed but slow to compute from scratch due to the lack of a Python built-in function for the purpose). - -Contrary to popular belief, floating-point *numbers* do not come with an inherent "small uncertainty", although floating-point *arithmetic* generally is inexact. Every binary floating-point number is an exact rational number. With arbitrary-precision integers used for the mantissa and exponent, floating-point numbers can be added, subtracted and multiplied *exactly*. In particular, integers and integer multiples of 1/2, 1/4, 1/8, 1/16, etc. can be represented, added and multiplied exactly in binary floating-point arithmetic. - -Floating-point arithmetic is generally approximate because the size of the mantissa must be limited for efficiency reasons. The maximum allowed width (bitcount) of the mantissa is called the precision or *prec* for short. Sums and products of floating-point numbers are exact as long as the absolute value of the mantissa is smaller than `2^{prec}`. As soon as the mantissa becomes larger than this, it is truncated to contain at most *prec* bits (the exponent is incremented accordingly to preserve the magnitude of the number), and this operation introduces a rounding error. Division is also generally inexact; although we can add and multiply exactly by setting the precision high enough, no precision is high enough to represent for example 1/3 exactly (the same obviously applies for roots, trigonometric functions, etc). - -The special numbers ``+inf``, ``-inf`` and ``nan`` are represented internally by a zero mantissa and a nonzero exponent. - -Mpmath uses arbitrary precision integers for both the mantissa and the exponent, so numbers can be as large in magnitude as permitted by the computer's memory. Some care may be necessary when working with extremely large numbers. Although standard arithmetic operators are safe, it is for example futile to attempt to compute the exponential function of of `10^{100000}`. Mpmath does not complain when asked to perform such a calculation, but instead chugs away on the problem to the best of its ability, assuming that computer resources are infinite. In the worst case, this will be slow and allocate a huge amount of memory; if entirely impossible Python will at some point raise ``OverflowError: long int too large to convert to int``. - -For further details on how the arithmetic is implemented, refer to the mpmath source code. The basic arithmetic operations are found in the ``libmp`` directory; many functions there are commented extensively. - -Decimal issues --------------- - -Mpmath uses binary arithmetic internally, while most interaction with the user is done via the decimal number system. Translating between binary and decimal numbers is a somewhat subtle matter; many Python novices run into the following "bug" (addressed in the `General Python FAQ `_):: - - >>> 1.2 - 1.0 - 0.19999999999999996 - -Decimal fractions fall into the category of numbers that generally cannot be represented exactly in binary floating-point form. For example, none of the numbers 0.1, 0.01, 0.001 has an exact representation as a binary floating-point number. Although mpmath can approximate decimal fractions with any accuracy, it does not solve this problem for all uses; users who need *exact* decimal fractions should look at the ``decimal`` module in Python's standard library (or perhaps use fractions, which are much faster). - -With *prec* bits of precision, an arbitrary number can be approximated relatively to within `2^{-prec}`, or within `10^{-dps}` for *dps* decimal digits. The equivalent values for *prec* and *dps* are therefore related proportionally via the factor `C = \log(10)/\log(2)`, or roughly 3.32. For example, the standard (binary) precision in mpmath is 53 bits, which corresponds to a decimal precision of 15.95 digits. - -More precisely, mpmath uses the following formulas to translate between *prec* and *dps*:: - - dps(prec) = max(1, int(round(int(prec) / C - 1))) - - prec(dps) = max(1, int(round((int(dps) + 1) * C))) - -Note that the dps is set 1 decimal digit lower than the corresponding binary precision. This is done to hide minor rounding errors and artifacts resulting from binary-decimal conversion. As a result, mpmath interprets 53 bits as giving 15 digits of decimal precision, not 16. - -The *dps* value controls the number of digits to display when printing numbers with :func:`str`, while the decimal precision used by :func:`repr` is set two or three digits higher. For example, with 15 dps we have:: - - >>> from mpmath import * - >>> mp.dps = 15 - >>> str(pi) - '3.14159265358979' - >>> repr(+pi) - "mpf('3.1415926535897931')" - -The extra digits in the output from ``repr`` ensure that ``x == eval(repr(x))`` holds, i.e. that numbers can be converted to strings and back losslessly. - -It should be noted that precision and accuracy do not always correlate when translating between binary and decimal. As a simple example, the number 0.1 has a decimal precision of 1 digit but is an infinitely accurate representation of 1/10. Conversely, the number `2^{-50}` has a binary representation with 1 bit of precision that is infinitely accurate; the same number can actually be represented exactly as a decimal, but doing so requires 35 significant digits:: - - 0.00000000000000088817841970012523233890533447265625 - -All binary floating-point numbers can be represented exactly as decimals (possibly requiring many digits), but the converse is false. - -Correctness guarantees ----------------------- - -Basic arithmetic operations (with the ``mp`` context) are always performed with correct rounding. Results that can be represented exactly are guranteed to be exact, and results from single inexact operations are guaranteed to be the best possible rounded values. For higher-level operations, mpmath does not generally guarantee correct rounding. In general, mpmath only guarantees that it will use at least the user-set precision to perform a given calculation. *The user may have to manually set the working precision higher than the desired accuracy for the result, possibly much higher.* - -Functions for evaluation of transcendental functions, linear algebra operations, numerical integration, etc., usually automatically increase the working precision and use a stricter tolerance to give a correctly rounded result with high probability: for example, at 50 bits the temporary precision might be set to 70 bits and the tolerance might be set to 60 bits. It can often be assumed that such functions return values that have full accuracy, given inputs that are exact (or sufficiently precise approximations of exact values), but the user must exercise judgement about whether to trust mpmath. - -The level of rigor in mpmath covers the entire spectrum from "always correct by design" through "nearly always correct" and "handling the most common errors" to "just computing blindly and hoping for the best". Of course, a long-term development goal is to successively increase the rigor where possible. The following list might give an idea of the current state. - -Operations that are correctly rounded: - -* Addition, subtraction and multiplication of real and complex numbers. -* Division and square roots of real numbers. -* Powers of real numbers, assuming sufficiently small integer exponents (huge powers are rounded in the right direction, but possibly farther than necessary). -* Conversion from decimal to binary, for reasonably sized numbers (roughly between `10^{-100}` and `10^{100}`). -* Typically, transcendental functions for exact input-output pairs. - -Operations that should be fully accurate (however, the current implementation may be based on a heuristic error analysis): - -* Radix conversion (large or small numbers). -* Mathematical constants like `\pi`. -* Both real and imaginary parts of exp, cos, sin, cosh, sinh, log. -* Other elementary functions (the largest of the real and imaginary part). -* The gamma and log-gamma functions (the largest of the real and the imaginary part; both, when close to real axis). -* Some functions based on hypergeometric series (the largest of the real and imaginary part). - -Correctness of root-finding, numerical integration, etc. largely depends on the well-behavedness of the input functions. Specific limitations are sometimes noted in the respective sections of the documentation. - -Double precision emulation --------------------------- - -On most systems, Python's ``float`` type represents an IEEE 754 *double precision* number, with a precision of 53 bits and rounding-to-nearest. With default precision (``mp.prec = 53``), the mpmath ``mpf`` type roughly emulates the behavior of the ``float`` type. Sources of incompatibility include the following: - -* In hardware floating-point arithmetic, the size of the exponent is restricted to a fixed range: regular Python floats have a range between roughly `10^{-300}` and `10^{300}`. Mpmath does not emulate overflow or underflow when exponents fall outside this range. -* On some systems, Python uses 80-bit (extended double) registers for floating-point operations. Due to double rounding, this makes the ``float`` type less accurate. This problem is only known to occur with Python versions compiled with GCC on 32-bit systems. -* Machine floats very close to the exponent limit round subnormally, meaning that they lose accuracy (Python may raise an exception instead of rounding a ``float`` subnormally). -* Mpmath is able to produce more accurate results for transcendental functions. - -Further reading ---------------- - -There are many excellent textbooks on numerical analysis and floating-point arithmetic. Some good web resources are: - -* `David Goldberg, What Every Computer Scientist Should Know About Floating-Point Arithmetic `_ -* `The Wikipedia article about numerical analysis `_ diff --git a/src/geophires_x/epydoc.conf b/src/geophires_x/epydoc.conf deleted file mode 100644 index 071b9b99..00000000 --- a/src/geophires_x/epydoc.conf +++ /dev/null @@ -1,148 +0,0 @@ -[epydoc] # Epydoc section marker (required by ConfigParser) - -# The list of objects to document. Objects can be named using -# dotted names, module filenames, or package directory names. -# Alases for this option include "objects" and "values". -modules: mpmath - -# The type of output that should be generated. Should be one -# of: html, text, latex, dvi, ps, pdf. -output: html - -# The path to the output directory. May be relative or absolute. -target: doc_api - -# An integer indicating how verbose epydoc should be. The default -# value is 0; negative values will supress warnings and errors; -# positive values will give more verbose output. -verbosity: 0 - -# A boolean value indicating that Epydoc should show a tracaback -# in case of unexpected error. By default don't show tracebacks -debug: 0 - -# If True, don't try to use colors or cursor control when doing -# textual output. The default False assumes a rich text prompt -simple-term: 0 - - -### Generation options - -# The default markup language for docstrings, for modules that do -# not define __docformat__. Defaults to epytext. -docformat: restructuredtext - -# Whether or not parsing should be used to examine objects. -parse: yes - -# Whether or not introspection should be used to examine objects. -introspect: yes - -# Don't examine in any way the modules whose dotted name match this -# regular expression pattern. -#exclude: - -# Don't perform introspection on the modules whose dotted name match this -# regular expression pattern. -#exclude-introspect - -# Don't perform parsing on the modules whose dotted name match this -# regular expression pattern. -#exclude-parse - -# The format for showing inheritance objects. -# It should be one of: 'grouped', 'listed', 'included'. -inheritance: listed - -# Whether or not to inclue private variables. (Even if included, -# private variables will be hidden by default.) -private: yes - -# Whether or not to list each module's imports. -imports: no - -# Whether or not to include syntax highlighted source code in -# the output (HTML only). -sourcecode: yes - -# Whether or not to includea a page with Epydoc log, containing -# effective option at the time of generation and the reported logs. -include-log: no - - -### Output options - -# The documented project's name. -name: Mpmath - Python library for arbitrary-precision floating-point arithmetic - -# The CSS stylesheet for HTML output. Can be the name of a builtin -# stylesheet, or the name of a file. -css: white - -# The documented project's URL. -url: http://mpmath.googlecode.com/ - -# HTML code for the project link in the navigation bar. If left -# unspecified, the project link will be generated based on the -# project's name and URL. -#link: My Cool Project - -# The "top" page for the documentation. Can be a URL, the name -# of a module or class, or one of the special names "trees.html", -# "indices.html", or "help.html" -#top: os.path - -# An alternative help file. The named file should contain the -# body of an HTML file; navigation bars will be added to it. -#help: my_helpfile.html - -# Whether or not to include a frames-based table of contents. -frames: yes - -# Whether each class should be listed in its own section when -# generating LaTeX or PDF output. -separate-classes: no - - -### API linking options - -# Define a new API document. A new interpreted text role -# will be created -#external-api: epydoc - -# Use the records in this file to resolve objects in the API named NAME. -#external-api-file: epydoc:api-objects.txt - -# Use this URL prefix to configure the string returned for external API. -#external-api-root: epydoc:http://epydoc.sourceforge.net/api - - -### Graph options - -# The list of graph types that should be automatically included -# in the output. Graphs are generated using the Graphviz "dot" -# executable. Graph types include: "classtree", "callgraph", -# "umlclass". Use "all" to include all graph types -graph: all - -# The path to the Graphviz "dot" executable, used to generate -# graphs. -dotpath: /usr/bin/dot - -# The name of one or more pstat files (generated by the profile -# or hotshot module). These are used to generate call graphs. -pstat: ./mpmath_profile.out - -# Specify the font used to generate Graphviz graphs. -# (e.g., helvetica or times). -graph-font: Courier - -# Specify the font size used to generate Graphviz graphs. -graph-font-size: 10 - - -### Return value options - -# The condition upon which Epydoc should exit with a non-zero -# exit status. Possible values are error, warning, docstring_warning -#fail-on: error diff --git a/src/geophires_x/index.rst b/src/geophires_x/index.rst deleted file mode 100644 index 7aa97632..00000000 --- a/src/geophires_x/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. GEOPHIRES-X documentation master file, created by - sphinx-quickstart on Tue Jun 28 17:26:33 2022. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to GEOPHIRES-X's documentation! -======================================= - -.. toctree:: - :maxdepth: 2 - :caption: Contents: - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/src/geophires_x/license.txt b/src/geophires_x/license.txt deleted file mode 100644 index 63ed6fc0..00000000 --- a/src/geophires_x/license.txt +++ /dev/null @@ -1,37 +0,0 @@ -Copyright (c) 2005-2018 Fredrik Johansson and mpmath contributors - -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - a. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - b. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - c. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -DAMAGE. - -The tool is written in Python and open-source under the MIT license - see the [license.txt](license.txt) file for more information. - -Copyright 2018 NREL - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/src/geophires_x/output.txt b/src/geophires_x/output.txt deleted file mode 100644 index f650206f..00000000 --- a/src/geophires_x/output.txt +++ /dev/null @@ -1,11998 +0,0 @@ -('Value of root.tic changed from 1657552854.5803797 to 1657552858.745086.\n' - "Value of root.reserv.OutputParameterDict['Bottom-hole temperature'].value " - 'changed from 232.00000000000003 to 263.0.\n' - "Value of root.reserv.OutputParameterDict['Initial Reservoir Heat " - "Content'].value changed from 83.95200000000001 to 100.32.\n" - 'Value of root.reserv.Tresoutput[0] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[1] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[2] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[3] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[4] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[5] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[6] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[7] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[8] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[9] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[10] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[11] changed from 232.00000000000003 to ' - '263.0.\n' - 'Value of root.reserv.Tresoutput[12] changed from 231.9999999999999 to ' - '262.9999999999997.\n' - 'Value of root.reserv.Tresoutput[13] changed from 231.99999999999815 to ' - '262.99999999999636.\n' - 'Value of root.reserv.Tresoutput[14] changed from 231.9999999999838 to ' - '262.99999999996936.\n' - 'Value of root.reserv.Tresoutput[15] changed from 231.99999999989396 to ' - '262.9999999998057.\n' - 'Value of root.reserv.Tresoutput[16] changed from 231.99999999945064 to ' - '262.99999999901956.\n' - 'Value of root.reserv.Tresoutput[17] changed from 231.99999999765086 to ' - '262.9999999959037.\n' - 'Value of root.reserv.Tresoutput[18] changed from 231.99999999143975 to ' - '262.99999998537714.\n' - 'Value of root.reserv.Tresoutput[19] changed from 231.99999997273946 to ' - '262.99999995428243.\n' - 'Value of root.reserv.Tresoutput[20] changed from 231.99999992258927 to ' - '262.99999987231126.\n' - 'Value of root.reserv.Tresoutput[21] changed from 231.99999980076234 to ' - '262.99999967624956.\n' - 'Value of root.reserv.Tresoutput[22] changed from 231.99999952897429 to ' - '262.9999992449726.\n' - 'Value of root.reserv.Tresoutput[23] changed from 231.9999989657795 to ' - '262.99999836271354.\n' - 'Value of root.reserv.Tresoutput[24] changed from 231.9999978715055 to ' - '262.99999666859424.\n' - 'Value of root.reserv.Tresoutput[25] changed from 231.99999586209614 to ' - '262.99999359122694.\n' - 'Value of root.reserv.Tresoutput[26] changed from 231.99999235145177 to ' - '262.9999882682356.\n' - 'Value of root.reserv.Tresoutput[27] changed from 231.9999864826804 to ' - '262.9999794516882.\n' - 'Value of root.reserv.Tresoutput[28] changed from 231.9999770494983 to ' - '262.9999654015181.\n' - 'Value of root.reserv.Tresoutput[29] changed from 231.99996240975582 to ' - '262.9999437699339.\n' - 'Value of root.reserv.Tresoutput[30] changed from 231.99994039363744 to ' - '262.9999114804852.\n' - 'Value of root.reserv.Tresoutput[31] changed from 231.99990820946178 to ' - '262.9998646058375.\n' - 'Value of root.reserv.Tresoutput[32] changed from 231.99986235016775 to ' - '262.9997982483963.\n' - 'Value of root.reserv.Tresoutput[33] changed from 231.9997985035374 to ' - '262.99970642775463.\n' - 'Value of root.reserv.Tresoutput[34] changed from 231.9997114689935 to ' - '262.99958197855415.\n' - 'Value of root.reserv.Tresoutput[35] changed from 231.99959508346745 to ' - '262.99941646180866.\n' - 'Value of root.reserv.Tresoutput[36] changed from 231.99944215839534 to ' - '262.99920009210416.\n' - 'Value of root.reserv.Tresoutput[37] changed from 231.99924442941196 to ' - '262.9989216824017.\n' - 'Value of root.reserv.Tresoutput[38] changed from 231.99899251980838 to ' - '262.99856860749617.\n' - 'Value of root.reserv.Tresoutput[39] changed from 231.9986759183268 to ' - '262.99812678653217.\n' - 'Value of root.reserv.Tresoutput[40] changed from 231.99828297141283 to ' - '262.99758068440707.\n' - 'Value of root.reserv.Tresoutput[41] changed from 231.9978008896416 to ' - '262.99691333138594.\n' - 'Value of root.reserv.Tresoutput[42] changed from 231.99721576769232 to ' - '262.9961063598464.\n' - 'Value of root.reserv.Tresoutput[43] changed from 231.99651261696917 to ' - '262.9951400567495.\n' - 'Value of root.reserv.Tresoutput[44] changed from 231.99567540975403 to ' - '262.99399343020104.\n' - 'Value of root.reserv.Tresoutput[45] changed from 231.99468713362714 to ' - '262.9926442883162.\n' - 'Value of root.reserv.Tresoutput[46] changed from 231.99352985479666 to ' - '262.99106932851873.\n' - 'Value of root.reserv.Tresoutput[47] changed from 231.9921847889349 to ' - '262.9892442353879.\n' - 'Value of root.reserv.Tresoutput[48] changed from 231.99063237811617 to ' - '262.98714378520083.\n' - 'Value of root.reserv.Tresoutput[49] changed from 231.98885237248376 to ' - '262.984741955387.\n' - 'Value of root.reserv.Tresoutput[50] changed from 231.9868239153344 to ' - '262.98201203721953.\n' - 'Value of root.reserv.Tresoutput[51] changed from 231.98452563038924 to ' - '262.9789267501933.\n' - 'Value of root.reserv.Tresoutput[52] changed from 231.981935710116 to ' - '262.9754583566818.\n' - 'Value of root.reserv.Tresoutput[53] changed from 231.97903200407427 to ' - '262.97157877561557.\n' - 'Value of root.reserv.Tresoutput[54] changed from 231.97579210636505 to ' - '262.9672596940768.\n' - 'Value of root.reserv.Tresoutput[55] changed from 231.97219344137957 to ' - '262.96247267585943.\n' - 'Value of root.reserv.Tresoutput[56] changed from 231.96821334715347 to ' - '262.95718926618883.\n' - 'Value of root.reserv.Tresoutput[57] changed from 231.96382915573977 to ' - '262.95138109193664.\n' - 'Value of root.reserv.Tresoutput[58] changed from 231.9590182701165 to ' - '262.94501995679843.\n' - 'Value of root.reserv.Tresoutput[59] changed from 231.95375823724035 to ' - '262.9380779310212.\n' - 'Value of root.reserv.Tresoutput[60] changed from 231.9480268169461 to ' - '262.9305274353792.\n' - 'Value of root.reserv.Tresoutput[61] changed from 231.9418020464717 to ' - '262.9223413191944.\n' - 'Value of root.reserv.Tresoutput[62] changed from 231.9350623004609 to ' - '262.9134929322879.\n' - 'Value of root.reserv.Tresoutput[63] changed from 231.92778634635994 to ' - '262.9039561908224.\n' - 'Value of root.reserv.Tresoutput[64] changed from 231.91995339518039 to ' - '262.893705637066.\n' - 'Value of root.reserv.Tresoutput[65] changed from 231.91154314765035 to ' - '262.8827164931607.\n' - 'Value of root.reserv.Tresoutput[66] changed from 231.90253583581608 to ' - '262.8709647090311.\n' - 'Value of root.reserv.Tresoutput[67] changed from 231.89291226019344 to ' - '262.85842700460375.\n' - 'Value of root.reserv.Tresoutput[68] changed from 231.88265382259624 to ' - '262.8450809065431.\n' - 'Value of root.reserv.Tresoutput[69] changed from 231.8717425547927 to ' - '262.83090477973303.\n' - 'Value of root.reserv.Tresoutput[70] changed from 231.8601611431607 to ' - '262.8158778537529.\n' - 'Value of root.reserv.Tresoutput[71] changed from 231.84789294952552 to ' - '262.79998024461065.\n' - 'Value of root.reserv.Tresoutput[72] changed from 231.83492202837525 to ' - '262.7831929720034.\n' - 'Value of root.reserv.Tresoutput[73] changed from 231.8212331406559 to ' - '262.76549797238386.\n' - 'Value of root.reserv.Tresoutput[74] changed from 231.80681176435183 to ' - '262.7468781081078.\n' - 'Value of root.reserv.Tresoutput[75] changed from 231.7916441020589 to ' - '262.7273171729423.\n' - 'Value of root.reserv.Tresoutput[76] changed from 231.77571708575718 to ' - '262.70679989420364.\n' - 'Value of root.reserv.Tresoutput[77] changed from 231.75901837898732 to ' - '262.68531193179524.\n' - 'Value of root.reserv.Tresoutput[78] changed from 231.7415363766303 to ' - '262.66283987440204.\n' - 'Value of root.reserv.Tresoutput[79] changed from 231.7232602024859 to ' - '262.63937123309324.\n' - 'Value of root.reserv.Tresoutput[80] changed from 231.70417970483777 to ' - '262.61489443257284.\n' - 'Value of root.reserv.Tresoutput[81] changed from 231.68428545018705 to ' - '262.58939880030835.\n' - 'Value of root.reserv.Tresoutput[82] changed from 231.66356871532759 to ' - '262.5628745537564.\n' - 'Value of root.reserv.Tresoutput[83] changed from 231.64202147792906 to ' - '262.5353127858915.\n' - 'Value of root.reserv.Tresoutput[84] changed from 231.6196364057848 to ' - '262.5067054492355.\n' - 'Value of root.reserv.Tresoutput[85] changed from 231.59640684487317 to ' - '262.47704533856904.\n' - 'Value of root.reserv.Tresoutput[86] changed from 231.57232680637296 to ' - '262.4463260724998.\n' - 'Value of root.reserv.Tresoutput[87] changed from 231.54739095276398 to ' - '262.4145420740465.\n' - 'Value of root.reserv.Tresoutput[88] changed from 231.52159458313656 to ' - '262.3816885503901.\n' - 'Value of root.reserv.Tresoutput[89] changed from 231.49493361782456 to ' - '262.3477614719298.\n' - 'Value of root.reserv.Tresoutput[90] changed from 231.4674045824691 to ' - '262.31275755077377.\n' - 'Value of root.reserv.Tresoutput[91] changed from 231.43900459161227 to ' - '262.2766742187816.\n' - 'Value of root.reserv.Tresoutput[92] changed from 231.409731331912 to ' - '262.2395096052692.\n' - 'Value of root.reserv.Tresoutput[93] changed from 231.37958304506347 to ' - '262.20126251447425.\n' - 'Value of root.reserv.Tresoutput[94] changed from 231.3485585105036 to ' - '262.16193240287515.\n' - 'Value of root.reserv.Tresoutput[95] changed from 231.31665702797108 to ' - '262.1215193564442.\n' - 'Value of root.reserv.Tresoutput[96] changed from 231.28387839998547 to ' - '262.0800240679128.\n' - 'Value of root.reserv.Tresoutput[97] changed from 231.25022291430548 to ' - '262.0374478141143.\n' - 'Value of root.reserv.Tresoutput[98] changed from 231.21569132641963 to ' - '261.993792433467.\n' - 'Value of root.reserv.Tresoutput[99] changed from 231.18028484211754 to ' - '261.949060303652.\n' - 'Value of root.reserv.Tresoutput[100] changed from 231.14400510018532 to ' - '261.9032543195333.\n' - 'Value of root.reserv.Tresoutput[101] changed from 231.10685415526456 to ' - '261.85637787136557.\n' - 'Value of root.reserv.Tresoutput[102] changed from 231.0688344609087 to ' - '261.80843482332557.\n' - 'Value of root.reserv.Tresoutput[103] changed from 231.02994885286856 to ' - '261.7594294924019.\n' - 'Value of root.reserv.Tresoutput[104] changed from 230.99020053263303 to ' - '261.70936662767167.\n' - 'Value of root.reserv.Tresoutput[105] changed from 230.94959305124954 to ' - '261.6582513899883.\n' - 'Value of root.reserv.Tresoutput[106] changed from 230.90813029344443 to ' - '261.60608933210267.\n' - 'Value of root.reserv.Tresoutput[107] changed from 230.86581646206056 to ' - '261.5528863792342.\n' - 'Value of root.reserv.Tresoutput[108] changed from 230.82265606282775 to ' - '261.4986488101075.\n' - 'Value of root.reserv.Tresoutput[109] changed from 230.77865388947797 to ' - '261.44338323846466.\n' - 'Value of root.reserv.Tresoutput[110] changed from 230.7338150092158 to ' - '261.38709659506424.\n' - 'Value of root.reserv.Tresoutput[111] changed from 230.6881447485524 to ' - '261.32979611017197.\n' - 'Value of root.reserv.Tresoutput[112] changed from 230.641648679509 to ' - '261.27148929654834.\n' - 'Value of root.reserv.Tresoutput[113] changed from 230.59433260619488 to ' - '261.21218393293566.\n' - 'Value of root.reserv.Tresoutput[114] changed from 230.54620255176246 to ' - '261.15188804804507.\n' - 'Value of root.reserv.Tresoutput[115] changed from 230.4972647457417 to ' - '261.090609905043.\n' - 'Value of root.reserv.Tresoutput[116] changed from 230.44752561175338 to ' - '261.0283579865346.\n' - 'Value of root.reserv.Tresoutput[117] changed from 230.39699175560153 to ' - '260.96514098004116.\n' - 'Value of root.reserv.Tresoutput[118] changed from 230.3456699537421 to ' - '260.90096776396615.\n' - 'Value of root.reserv.Tresoutput[119] changed from 230.29356714212594 to ' - '260.8358473940447.\n' - 'Value of root.reserv.Tresoutput[120] changed from 230.24069040541258 to ' - '260.7697890902707.\n' - 'Value of root.reserv.Tresoutput[121] changed from 230.18704696654981 to ' - '260.70280222429267.\n' - 'Value of root.reserv.Tresoutput[122] changed from 230.1326441767153 to ' - '260.63489630727247.\n' - 'Value of root.reserv.Tresoutput[123] changed from 230.07748950561364 to ' - '260.56608097819674.\n' - 'Value of root.reserv.Tresoutput[124] changed from 230.0215905321242 to ' - '260.4963659926335.\n' - 'Value of root.reserv.Tresoutput[125] changed from 229.96495493529233 to ' - '260.42576121192343.\n' - 'Value of root.reserv.Tresoutput[126] changed from 229.90759048565778 to ' - '260.3542765927966.\n' - 'Value of root.reserv.Tresoutput[127] changed from 229.84950503691368 to ' - '260.2819221774056.\n' - 'Value of root.reserv.Tresoutput[128] changed from 229.79070651788814 to ' - '260.2087080837633.\n' - 'Value of root.reserv.Tresoutput[129] changed from 229.73120292484157 to ' - '260.1346444965762.\n' - 'Value of root.reserv.Tresoutput[130] changed from 229.67100231407215 to ' - '260.05974165846226.\n' - 'Value of root.reserv.Tresoutput[131] changed from 229.61011279482162 to ' - '259.9840098615434.\n' - 'Value of root.reserv.Tresoutput[132] changed from 229.54854252247353 to ' - '259.9074594394016.\n' - 'Value of root.reserv.Tresoutput[133] changed from 229.48629969203654 to ' - '259.8301007593882.\n' - 'Value of root.reserv.Tresoutput[134] changed from 229.42339253190454 to ' - '259.7519442152759.\n' - 'Value of root.reserv.Tresoutput[135] changed from 229.35982929788582 to ' - '259.6730002202439.\n' - 'Value of root.reserv.Tresoutput[136] changed from 229.2956182674937 to ' - '259.59327920018416.\n' - 'Value of root.reserv.Tresoutput[137] changed from 229.23076773449063 to ' - '259.5127915873202.\n' - 'Value of root.reserv.Tresoutput[138] changed from 229.16528600367823 to ' - '259.43154781412795.\n' - 'Value of root.reserv.Tresoutput[139] changed from 229.0991813859253 to ' - '259.3495583075478.\n' - 'Value of root.reserv.Tresoutput[140] changed from 229.03246219342677 to ' - '259.26683348347956.\n' - 'Value of root.reserv.Tresoutput[141] changed from 228.9651367351858 to ' - '259.1833837415492.\n' - 'Value of root.reserv.Tresoutput[142] changed from 228.89721331271167 to ' - '259.09921946013986.\n' - 'Value of root.reserv.Tresoutput[143] changed from 228.8287002159267 to ' - '259.0143509916754.\n' - 'Value of root.reserv.Tresoutput[144] changed from 228.75960571927436 to ' - '258.92878865815015.\n' - 'Value of root.reserv.Tresoutput[145] changed from 228.6899380780228 to ' - '258.8425427468937.\n' - 'Value of root.reserv.Tresoutput[146] changed from 228.61970552475557 to ' - '258.7556235065638.\n' - 'Value of root.reserv.Tresoutput[147] changed from 228.54891626604422 to ' - '258.6680411433582.\n' - 'Value of root.reserv.Tresoutput[148] changed from 228.47757847929546 to ' - '258.579805817437.\n' - 'Value of root.reserv.Tresoutput[149] changed from 228.40570030976696 to ' - '258.4909276395484.\n' - 'Value of root.reserv.Tresoutput[150] changed from 228.3332898677454 to ' - '258.40141666784893.\n' - 'Value of root.reserv.Tresoutput[151] changed from 228.2603552258809 to ' - '258.3112829049121.\n' - 'Value of root.reserv.Tresoutput[152] changed from 228.18690441667167 to ' - '258.22053629491637.\n' - 'Value of root.reserv.Tresoutput[153] changed from 228.11294543009393 to ' - '258.12918672100704.\n' - 'Value of root.reserv.Tresoutput[154] changed from 228.03848621137044 to ' - '258.03724400282385.\n' - 'Value of root.reserv.Tresoutput[155] changed from 227.9635346588733 to ' - '257.94471789418805.\n' - 'Value of root.reserv.Tresoutput[156] changed from 227.88809862215513 to ' - '257.8516180809431.\n' - 'Value of root.reserv.Tresoutput[157] changed from 227.81218590010383 to ' - '257.75795417894165.\n' - 'Value of root.reserv.Tresoutput[158] changed from 227.73580423921604 to ' - '257.663735732173.\n' - 'Value of root.reserv.Tresoutput[159] changed from 227.65896133198424 to ' - '257.5689722110259.\n' - 'Value of root.reserv.Tresoutput[160] changed from 227.58166481539334 to ' - '257.4736730106803.\n' - 'Value of root.reserv.Tresoutput[161] changed from 227.50392226952172 to ' - '257.377847449622.\n' - 'Value of root.reserv.Tresoutput[162] changed from 227.42574121624293 to ' - '257.2815047682768.\n' - 'Value of root.reserv.Tresoutput[163] changed from 227.34712911802347 to ' - '257.18465412775686.\n' - 'Value of root.reserv.Tresoutput[164] changed from 227.26809337681297 to ' - '257.08730460871544.\n' - 'Value of root.reserv.Tresoutput[165] changed from 227.18864133302216 to ' - '256.9894652103054.\n' - 'Value of root.reserv.Tresoutput[166] changed from 227.10878026458596 to ' - '256.89114484923596.\n' - 'Value of root.reserv.Tresoutput[167] changed from 227.02851738610693 to ' - '256.79235235892463.\n' - 'Value of root.reserv.Tresoutput[168] changed from 226.9478598480762 to ' - '256.69309648873815.\n' - 'Value of root.reserv.Tresoutput[169] changed from 226.86681473616844 to ' - '256.5933859033203.\n' - 'Value of root.reserv.Tresoutput[170] changed from 226.785389070607 to ' - '256.49322918200147.\n' - 'Value of root.reserv.Tresoutput[171] changed from 226.70358980559723 to ' - '256.3926348182855.\n' - 'Value of root.reserv.Tresoutput[172] changed from 226.62142382882348 to ' - '256.2916112194125.\n' - 'Value of root.reserv.Tresoutput[173] changed from 226.5388979610082 to ' - '256.19016670599166.\n' - 'Value of root.reserv.Tresoutput[174] changed from 226.45601895552906 to ' - '256.088309511701.\n' - 'Value of root.reserv.Tresoutput[175] changed from 226.37279349809256 to ' - '255.98604778305287.\n' - 'Value of root.reserv.Tresoutput[176] changed from 226.28922820646062 to ' - '255.88338957921906.\n' - 'Value of root.reserv.Tresoutput[177] changed from 226.20532963022788 to ' - '255.7803428719149.\n' - 'Value of root.reserv.Tresoutput[178] changed from 226.12110425064748 to ' - '255.67691554533775.\n' - 'Value of root.reserv.Tresoutput[179] changed from 226.03655848050275 to ' - '255.5731153961583.\n' - 'Value of root.reserv.Tresoutput[180] changed from 225.95169866402298 to ' - '255.4689501335614.\n' - 'Value of root.reserv.Tresoutput[181] changed from 225.86653107683952 to ' - '255.3644273793338.\n' - 'Value of root.reserv.Tresoutput[182] changed from 225.78106192598344 to ' - '255.2595546679964.\n' - 'Value of root.reserv.Tresoutput[183] changed from 225.69529734991863 to ' - '255.15433944697895.\n' - 'Value of root.reserv.Tresoutput[184] changed from 225.60924341861158 to ' - '255.0487890768343.\n' - 'Value of root.reserv.Tresoutput[185] changed from 225.52290613363482 to ' - '254.94291083149096.\n' - 'Value of root.reserv.Tresoutput[186] changed from 225.43629142830196 to ' - '254.8367118985404.\n' - 'Value of root.reserv.Tresoutput[187] changed from 225.34940516783317 to ' - '254.73019937955846.\n' - 'Value of root.reserv.Tresoutput[188] changed from 225.26225314954928 to ' - '254.62338029045898.\n' - 'Value of root.reserv.Tresoutput[189] changed from 225.1748411030929 to ' - '254.51626156187587.\n' - 'Value of root.reserv.Tresoutput[190] changed from 225.08717469067486 to ' - '254.40885003957467.\n' - 'Value of root.reserv.Tresoutput[191] changed from 224.99925950734533 to ' - '254.30115248488931.\n' - 'Value of root.reserv.Tresoutput[192] changed from 224.91110108128703 to ' - '254.19317557518463.\n' - 'Value of root.reserv.Tresoutput[193] changed from 224.8227048741303 to ' - '254.0849259043413.\n' - 'Value of root.reserv.Tresoutput[194] changed from 224.73407628128783 to ' - '253.97640998326276.\n' - 'Value of root.reserv.Tresoutput[195] changed from 224.64522063230885 to ' - '253.8676342404025.\n' - 'Value of root.reserv.Tresoutput[196] changed from 224.5561431912505 to ' - '253.75860502231015.\n' - 'Value of root.reserv.Tresoutput[197] changed from 224.4668491570664 to ' - '253.64932859419503.\n' - 'Value of root.reserv.Tresoutput[198] changed from 224.3773436640102 to ' - '253.53981114050637.\n' - 'Value of root.reserv.Tresoutput[199] changed from 224.2876317820541 to ' - '253.4300587655287.\n' - 'Value of root.reserv.Tresoutput[200] changed from 224.1977185173207 to ' - '253.32007749399096.\n' - 'Value of root.reserv.Tresoutput[201] changed from 224.1076088125276 to ' - '253.2098732716889.\n' - 'Value of root.reserv.Tresoutput[202] changed from 224.0173075474436 to ' - '253.0994519661193.\n' - 'Value of root.reserv.Tresoutput[203] changed from 223.92681953935585 to ' - '252.9888193671249.\n' - 'Value of root.reserv.Tresoutput[204] changed from 223.8361495435469 to ' - '252.87798118754998.\n' - 'Value of root.reserv.Tresoutput[205] changed from 223.74530225378146 to ' - '252.7669430639044.\n' - 'Value of root.reserv.Tresoutput[206] changed from 223.65428230280088 to ' - '252.65571055703592.\n' - 'Value of root.reserv.Tresoutput[207] changed from 223.5630942628264 to ' - '252.5442891528105.\n' - 'Value of root.reserv.Tresoutput[208] changed from 223.47174264606878 to ' - '252.43268426279863.\n' - 'Value of root.reserv.Tresoutput[209] changed from 223.38023190524444 to ' - '252.32090122496777.\n' - 'Value of root.reserv.Tresoutput[210] changed from 223.28856643409833 to ' - '252.2089453043803.\n' - 'Value of root.reserv.Tresoutput[211] changed from 223.19675056793068 to ' - '252.0968216938954.\n' - 'Value of root.reserv.Tresoutput[212] changed from 223.1047885841296 to ' - '251.9845355148755.\n' - 'Value of root.reserv.Tresoutput[213] changed from 223.01268470270745 to ' - '251.87209181789535.\n' - 'Value of root.reserv.Tresoutput[214] changed from 222.9204430868404 to ' - '251.75949558345425.\n' - 'Value of root.reserv.Tresoutput[215] changed from 222.82806784341219 to ' - '251.64675172269028.\n' - 'Value of root.reserv.Tresoutput[216] changed from 222.73556302355942 to ' - '251.53386507809614.\n' - 'Value of root.reserv.Tresoutput[217] changed from 222.64293262321993 to ' - '251.42084042423627.\n' - 'Value of root.reserv.Tresoutput[218] changed from 222.55018058368273 to ' - '251.3076824684643.\n' - 'Value of root.reserv.Tresoutput[219] changed from 222.45731079213934 to ' - '251.1943958516412.\n' - 'Value of root.reserv.Tresoutput[220] changed from 222.3643270822363 to ' - '251.08098514885273.\n' - 'Value of root.reserv.Tresoutput[221] changed from 222.2712332346278 to ' - '250.96745487012674.\n' - 'Value of root.reserv.Tresoutput[222] changed from 222.17803297753017 to ' - '250.85380946114932.\n' - 'Value of root.reserv.Tresoutput[223] changed from 222.08472998727427 to ' - '250.74005330397927.\n' - 'Value of root.reserv.Tresoutput[224] changed from 221.99132788885962 to ' - '250.6261907177617.\n' - 'Value of root.reserv.Tresoutput[225] changed from 221.8978302565064 to ' - '250.5122259594387.\n' - 'Value of root.reserv.Tresoutput[226] changed from 221.80424061420777 to ' - '250.39816322445847.\n' - 'Value of root.reserv.Tresoutput[227] changed from 221.71056243628018 to ' - '250.28400664748165.\n' - 'Value of root.reserv.Tresoutput[228] changed from 221.6167991479132 to ' - '250.16976030308433.\n' - 'Value of root.reserv.Tresoutput[229] changed from 221.5229541257168 to ' - '250.0554282064588.\n' - 'Value of root.reserv.Tresoutput[230] changed from 221.42903069826767 to ' - '249.94101431411048.\n' - 'Value of root.reserv.Tresoutput[231] changed from 221.33503214665296 to ' - '249.8265225245511.\n' - 'Value of root.reserv.Tresoutput[232] changed from 221.24096170501218 to ' - '249.71195667898886.\n' - 'Value of root.reserv.Tresoutput[233] changed from 221.14682256107662 to ' - '249.59732056201375.\n' - 'Value of root.reserv.Tresoutput[234] changed from 221.05261785670567 to ' - '249.4826179022793.\n' - 'Value of root.reserv.Tresoutput[235] changed from 220.9583506884216 to ' - '249.3678523731799.\n' - 'Value of root.reserv.Tresoutput[236] changed from 220.86402410794008 to ' - '249.25302759352365.\n' - 'Value of root.reserv.Tresoutput[237] changed from 220.76964112269874 to ' - '249.13814712820064.\n' - 'Value of root.reserv.Tresoutput[238] changed from 220.67520469638194 to ' - '249.02321448884618.\n' - 'Value of root.reserv.Tresoutput[239] changed from 220.58071774944247 to ' - '248.90823313449977.\n' - 'Value of root.reserv.Tresoutput[240] changed from 220.48618315962005 to ' - '248.7932064722584.\n' - 'Value of root.reserv.Tresoutput[241] changed from 220.39160376245576 to ' - '248.6781378579251.\n' - 'Value of root.reserv.Tresoutput[242] changed from 220.29698235180356 to ' - '248.5630305966523.\n' - 'Value of root.reserv.Tresoutput[243] changed from 220.2023216803376 to ' - '248.44788794358013.\n' - 'Value of root.reserv.Tresoutput[244] changed from 220.10762446005566 to ' - '248.33271310446838.\n' - 'Value of root.reserv.Tresoutput[245] changed from 220.0128933627794 to ' - '248.2175092363243.\n' - 'Value of root.reserv.Tresoutput[246] changed from 219.91813102064984 to ' - '248.10227944802395.\n' - 'Value of root.reserv.Tresoutput[247] changed from 219.8233400266192 to ' - '247.98702680092842.\n' - 'Value of root.reserv.Tresoutput[248] changed from 219.72852293493892 to ' - '247.8717543094942.\n' - 'Value of root.reserv.Tresoutput[249] changed from 219.633682261643 to ' - '247.75646494187785.\n' - 'Value of root.reserv.Tresoutput[250] changed from 219.5388204850274 to ' - '247.64116162053537.\n' - 'Value of root.reserv.Tresoutput[251] changed from 219.4439400461254 to ' - '247.52584722281497.\n' - 'Value of root.reserv.Tresoutput[252] changed from 219.34904334917843 to ' - '247.4105245815449.\n' - 'Value of root.reserv.Tresoutput[253] changed from 219.25413276210273 to ' - '247.29519648561498.\n' - 'Value of root.reserv.Tresoutput[254] changed from 219.1592106169515 to ' - '247.17986568055224.\n' - 'Value of root.reserv.Tresoutput[255] changed from 219.06427921037286 to ' - '247.0645348690911.\n' - 'Value of root.reserv.Tresoutput[256] changed from 218.96934080406314 to ' - '246.94920671173713.\n' - 'Value of root.reserv.Tresoutput[257] changed from 218.87439762521646 to ' - '246.83388382732537.\n' - 'Value of root.reserv.Tresoutput[258] changed from 218.77945186696874 to ' - '246.71856879357267.\n' - 'Value of root.reserv.Tresoutput[259] changed from 218.6845056888382 to ' - '246.6032641476238.\n' - 'Value of root.reserv.Tresoutput[260] changed from 218.58956121716133 to ' - '246.4879723865918.\n' - 'Value of root.reserv.Tresoutput[261] changed from 218.4946205455236 to ' - '246.37269596809324.\n' - 'Value of root.reserv.Tresoutput[262] changed from 218.39968573518652 to ' - '246.25743731077603.\n' - 'Value of root.reserv.Tresoutput[263] changed from 218.3047588155102 to ' - '246.1421987948428.\n' - 'Value of root.reserv.Tresoutput[264] changed from 218.20984178437084 to ' - '246.02698276256788.\n' - 'Value of root.reserv.Tresoutput[265] changed from 218.11493660857425 to ' - '245.91179151880786.\n' - 'Value of root.reserv.Tresoutput[266] changed from 218.02004522426472 to ' - '245.79662733150758.\n' - 'Value of root.reserv.Tresoutput[267] changed from 217.92516953732948 to ' - '245.68149243219924.\n' - 'Value of root.reserv.Tresoutput[268] changed from 217.83031142379886 to ' - '245.56638901649626.\n' - 'Value of root.reserv.Tresoutput[269] changed from 217.73547273024167 to ' - '245.45131924458107.\n' - 'Value of root.reserv.Tresoutput[270] changed from 217.64065527415633 to ' - '245.3362852416877.\n' - 'Value of root.reserv.Tresoutput[271] changed from 217.54586084435806 to ' - '245.221289098578.\n' - 'Value of root.reserv.Tresoutput[272] changed from 217.45109120136055 to ' - '245.10633287201293.\n' - 'Value of root.reserv.Tresoutput[273] changed from 217.35634807775452 to ' - '244.9914185852173.\n' - 'Value of root.reserv.Tresoutput[274] changed from 217.26163317858118 to ' - '244.87654822833994.\n' - 'Value of root.reserv.Tresoutput[275] changed from 217.16694818170154 to ' - '244.76172375890772.\n' - 'Value of root.reserv.Tresoutput[276] changed from 217.07229473816133 to ' - '244.6469471022739.\n' - 'Value of root.reserv.Tresoutput[277] changed from 216.97767447255202 to ' - '244.53222015206157.\n' - 'Value of root.reserv.Tresoutput[278] changed from 216.88308898336697 to ' - '244.41754477060118.\n' - 'Value of root.reserv.Tresoutput[279] changed from 216.78853984335402 to ' - '244.3029227893628.\n' - 'Value of root.reserv.Tresoutput[280] changed from 216.6940285998632 to ' - '244.1883560093831.\n' - 'Value of root.reserv.Tresoutput[281] changed from 216.5995567751909 to ' - '244.07384620168693.\n' - 'Value of root.reserv.Tresoutput[282] changed from 216.50512586691946 to ' - '243.95939510770364.\n' - 'Value of root.reserv.Tresoutput[283] changed from 216.41073734825275 to ' - '243.8450044396782.\n' - 'Value of root.reserv.Tresoutput[284] changed from 216.31639266834787 to ' - '243.73067588107708.\n' - 'Value of root.reserv.Tresoutput[285] changed from 216.22209325264254 to ' - '243.61641108698905.\n' - 'Value of root.reserv.Tresoutput[286] changed from 216.12784050317848 to ' - '243.5022116845208.\n' - 'Value of root.reserv.Tresoutput[287] changed from 216.033635798921 to ' - '243.38807927318766.\n' - 'Value of root.reserv.Tresoutput[288] changed from 215.93948049607465 to ' - '243.2740154252991.\n' - 'Value of root.reserv.Tresoutput[289] changed from 215.84537592839442 to ' - '243.1600216863395.\n' - 'Value of root.reserv.Tresoutput[290] changed from 215.75132340749386 to ' - '243.0460995753438.\n' - 'Value of root.reserv.Tresoutput[291] changed from 215.65732422314872 to ' - '242.93225058526852.\n' - 'Value of root.reserv.Tresoutput[292] changed from 215.56337964359702 to ' - '242.8184761833579.\n' - 'Value of root.reserv.Tresoutput[293] changed from 215.46949091583542 to ' - '242.704777811505.\n' - 'Value of root.reserv.Tresoutput[294] changed from 215.37565926591154 to ' - '242.59115688660842.\n' - 'Value of root.reserv.Tresoutput[295] changed from 215.28188589921294 to ' - '242.4776148009244.\n' - 'Value of root.reserv.Tresoutput[296] changed from 215.18817200075205 to ' - '242.3641529224138.\n' - 'Value of root.reserv.Tresoutput[297] changed from 215.09451873544774 to ' - '242.2507725950853.\n' - 'Value of root.reserv.Tresoutput[298] changed from 215.00092724840331 to ' - '242.13747513933328.\n' - 'Value of root.reserv.Tresoutput[299] changed from 214.90739866518058 to ' - '242.02426185227162.\n' - 'Value of root.reserv.Tresoutput[300] changed from 214.81393409207072 to ' - '241.9111340080634.\n' - 'Value of root.reserv.Tresoutput[301] changed from 214.72053461636162 to ' - '241.79809285824538.\n' - 'Value of root.reserv.Tresoutput[302] changed from 214.62720130660162 to ' - '241.685139632049.\n' - 'Value of root.reserv.Tresoutput[303] changed from 214.5339352128598 to ' - '241.57227553671657.\n' - 'Value of root.reserv.Tresoutput[304] changed from 214.44073736698326 to ' - '241.45950175781348.\n' - 'Value of root.reserv.Tresoutput[305] changed from 214.34760878285047 to ' - '241.34681945953616.\n' - 'Value of root.reserv.Tresoutput[306] changed from 214.25455045662167 to ' - '241.2342297850159.\n' - 'Value of root.reserv.Tresoutput[307] changed from 214.16156336698612 to ' - '241.12173385661862.\n' - 'Value of root.reserv.Tresoutput[308] changed from 214.0686484754058 to ' - '241.00933277624054.\n' - 'Value of root.reserv.Tresoutput[309] changed from 213.9758067263558 to ' - '240.89702762559997.\n' - 'Value of root.reserv.Tresoutput[310] changed from 213.88303904756216 to ' - '240.78481946652502.\n' - 'Value of root.reserv.Tresoutput[311] changed from 213.79034635023578 to ' - '240.67270934123746.\n' - 'Value of root.reserv.Tresoutput[312] changed from 213.69772952930393 to ' - '240.56069827263286.\n' - 'Value of root.reserv.Tresoutput[313] changed from 213.60518946363817 to ' - '240.44878726455684.\n' - 'Value of root.reserv.Tresoutput[314] changed from 213.51272701627977 to ' - '240.3369773020775.\n' - 'Value of root.reserv.Tresoutput[315] changed from 213.42034303466139 to ' - '240.22526935175415.\n' - 'Value of root.reserv.Tresoutput[316] changed from 213.32803835082657 to ' - '240.11366436190235.\n' - 'Value of root.reserv.Tresoutput[317] changed from 213.235813781646 to ' - '240.00216326285582.\n' - 'Value of root.reserv.Tresoutput[318] changed from 213.1436701290306 to ' - '239.8907669672239.\n' - 'Value of root.reserv.Tresoutput[319] changed from 213.05160818014232 to ' - '239.7794763701461.\n' - 'Value of root.reserv.Tresoutput[320] changed from 212.95962870760167 to ' - '239.66829234954304.\n' - 'Value of root.reserv.Tresoutput[321] changed from 212.86773246969267 to ' - '239.55721576636392.\n' - 'Value of root.reserv.Tresoutput[322] changed from 212.77592021056492 to ' - '239.44624746483063.\n' - 'Value of root.reserv.Tresoutput[323] changed from 212.68419266043318 to ' - '239.33538827267836.\n' - 'Value of root.reserv.Tresoutput[324] changed from 212.59255053577405 to ' - '239.22463900139311.\n' - 'Value of root.reserv.Tresoutput[325] changed from 212.50099453951998 to ' - '239.11400044644563.\n' - 'Value of root.reserv.Tresoutput[326] changed from 212.40952536125093 to ' - '239.00347338752277.\n' - 'Value of root.reserv.Tresoutput[327] changed from 212.31814367738315 to ' - '238.89305858875463.\n' - 'Value of root.reserv.Tresoutput[328] changed from 212.22685015135553 to ' - '238.7827567989396.\n' - 'Value of root.reserv.Tresoutput[329] changed from 212.13564543381352 to ' - '238.67256875176577.\n' - 'Value of root.reserv.Tresoutput[330] changed from 212.04453016279027 to ' - '238.56249516602907.\n' - 'Value of root.reserv.Tresoutput[331] changed from 211.95350496388582 to ' - '238.45253674584885.\n' - 'Value of root.reserv.Tresoutput[332] changed from 211.86257045044317 to ' - '238.34269418088056.\n' - 'Value of root.reserv.Tresoutput[333] changed from 211.77172722372262 to ' - '238.2329681465247.\n' - 'Value of root.reserv.Tresoutput[334] changed from 211.68097587307335 to ' - '238.1233593041337.\n' - 'Value of root.reserv.Tresoutput[335] changed from 211.5903169761028 to ' - '238.01386830121564.\n' - 'Value of root.reserv.Tresoutput[336] changed from 211.4997510988437 to ' - '237.90449577163497.\n' - 'Value of root.reserv.Tresoutput[337] changed from 211.4092787959188 to ' - '237.79524233581074.\n' - 'Value of root.reserv.Tresoutput[338] changed from 211.31890061070362 to ' - '237.68610860091175.\n' - 'Value of root.reserv.Tresoutput[339] changed from 211.22861707548637 to ' - '237.57709516104936.\n' - 'Value of root.reserv.Tresoutput[340] changed from 211.1384287116265 to ' - '237.46820259746724.\n' - 'Value of root.reserv.Tresoutput[341] changed from 211.04833602971027 to ' - '237.35943147872877.\n' - 'Value of root.reserv.Tresoutput[342] changed from 210.95833952970492 to ' - '237.2507823609017.\n' - 'Value of root.reserv.Tresoutput[343] changed from 210.8684397011102 to ' - '237.1422557877401.\n' - 'Value of root.reserv.Tresoutput[344] changed from 210.77863702310805 to ' - '237.03385229086425.\n' - 'Value of root.reserv.Tresoutput[345] changed from 210.68893196471026 to ' - '236.92557238993732.\n' - 'Value of root.reserv.Tresoutput[346] changed from 210.5993249849041 to ' - '236.8174165928402.\n' - 'Value of root.reserv.Tresoutput[347] changed from 210.50981653279564 to ' - '236.70938539584358.\n' - 'Value of root.reserv.Tresoutput[348] changed from 210.42040704775172 to ' - '236.60147928377765.\n' - 'Value of root.reserv.Tresoutput[349] changed from 210.3310969595394 to ' - '236.4936987301997.\n' - 'Value of root.reserv.Tresoutput[350] changed from 210.24188668846386 to ' - '236.38604419755868.\n' - 'Value of root.reserv.cpwater changed from 4292.08636494508 to ' - '4327.375179020034.\n' - 'Value of root.reserv.rhowater changed from 922.341845684 to 909.04214.\n' - 'Value of root.reserv.Trock.value changed from 232.00000000000003 to 263.0.\n' - 'Value of root.reserv.InitialReservoirHeatContent.value changed from ' - '83.95200000000001 to 100.32.\n' - "Value of root.wellbores.ParameterDict['Reservoir Hydrostatic " - "Pressure'].value changed from 28404.32921064445 to 27964.13785652749.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[0] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[1] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[2] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[3] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[4] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[5] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[6] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[7] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[8] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[9] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[10] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[11] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[12] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[13] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[14] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[15] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[16] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[17] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[18] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[19] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[20] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[21] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[22] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[23] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[24] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[25] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[26] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[27] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[28] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[29] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[30] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[31] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[32] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[33] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[34] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[35] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[36] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[37] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[38] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[39] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[40] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[41] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[42] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[43] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[44] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[45] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[46] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[47] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[48] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[49] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[50] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[51] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[52] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[53] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[54] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[55] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[56] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[57] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[58] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[59] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[60] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[61] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[62] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[63] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[64] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[65] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[66] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[67] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[68] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[69] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[70] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[71] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[72] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[73] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[74] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[75] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[76] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[77] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[78] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[79] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[80] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[81] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[82] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[83] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[84] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[85] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[86] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[87] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[88] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[89] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[90] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[91] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[92] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[93] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[94] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[95] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[96] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[97] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[98] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[99] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[100] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[101] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[102] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[103] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[104] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[105] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[106] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[107] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[108] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[109] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[110] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[111] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[112] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[113] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[114] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[115] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[116] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[117] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[118] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[119] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[120] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[121] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[122] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[123] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[124] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[125] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[126] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[127] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[128] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[129] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[130] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[131] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[132] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[133] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[134] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[135] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[136] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[137] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[138] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[139] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[140] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[141] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[142] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[143] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[144] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[145] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[146] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[147] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[148] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[149] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[150] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[151] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[152] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[153] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[154] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[155] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[156] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[157] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[158] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[159] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[160] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[161] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[162] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[163] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[164] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[165] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[166] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[167] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[168] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[169] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[170] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[171] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[172] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[173] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[174] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[175] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[176] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[177] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[178] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[179] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[180] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[181] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[182] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[183] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[184] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[185] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[186] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[187] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[188] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[189] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[190] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[191] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[192] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[193] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[194] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[195] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[196] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[197] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[198] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[199] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[200] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[201] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[202] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[203] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[204] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[205] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[206] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[207] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[208] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[209] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[210] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[211] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[212] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[213] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[214] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[215] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[216] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[217] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[218] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[219] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[220] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[221] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[222] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[223] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[224] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[225] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[226] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[227] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[228] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[229] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[230] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[231] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[232] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[233] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[234] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[235] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[236] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[237] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[238] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[239] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[240] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[241] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[242] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[243] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[244] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[245] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[246] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[247] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[248] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[249] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[250] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[251] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[252] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[253] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[254] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[255] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[256] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[257] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[258] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[259] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[260] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[261] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[262] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[263] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[264] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[265] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[266] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[267] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[268] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[269] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[270] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[271] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[272] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[273] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[274] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[275] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[276] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[277] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[278] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[279] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[280] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[281] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[282] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[283] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[284] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[285] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[286] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[287] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[288] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[289] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[290] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[291] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[292] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[293] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[294] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[295] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[296] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[297] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[298] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[299] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[300] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[301] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[302] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[303] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[304] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[305] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[306] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[307] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[308] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[309] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[310] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[311] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[312] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[313] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[314] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[315] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[316] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[317] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[318] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[319] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[320] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[321] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[322] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[323] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[324] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[325] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[326] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[327] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[328] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[329] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[330] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[331] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[332] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[333] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[334] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[335] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[336] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[337] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[338] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[339] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[340] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[341] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[342] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[343] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[344] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[345] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[346] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[347] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[348] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[349] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Injection Well Pressure " - "Drop'].value[350] changed from 650.1645856440234 to 209.97323152706372.\n" - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[0] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[1] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[2] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[3] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[4] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[5] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[6] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[7] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[8] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced Temperature'].value[9] " - 'changed from 227.00000000000003 to 258.0.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[10] changed from 227.00000000000003 to 258.0.\n" - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[11] changed from 227.00000000000003 to 258.0.\n" - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[12] changed from 226.9999999999999 to " - '257.9999999999997.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[13] changed from 226.99999999999815 to " - '257.99999999999636.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[14] changed from 226.9999999999838 to " - '257.99999999996936.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[15] changed from 226.99999999989396 to " - '257.9999999998057.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[16] changed from 226.99999999945064 to " - '257.99999999901956.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[17] changed from 226.99999999765086 to " - '257.9999999959037.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[18] changed from 226.99999999143975 to " - '257.99999998537714.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[19] changed from 226.99999997273946 to " - '257.99999995428243.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[20] changed from 226.99999992258927 to " - '257.99999987231126.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[21] changed from 226.99999980076234 to " - '257.99999967624956.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[22] changed from 226.99999952897429 to " - '257.9999992449726.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[23] changed from 226.9999989657795 to " - '257.99999836271354.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[24] changed from 226.9999978715055 to " - '257.99999666859424.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[25] changed from 226.99999586209614 to " - '257.99999359122694.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[26] changed from 226.99999235145177 to " - '257.9999882682356.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[27] changed from 226.9999864826804 to " - '257.9999794516882.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[28] changed from 226.9999770494983 to " - '257.9999654015181.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[29] changed from 226.99996240975582 to " - '257.9999437699339.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[30] changed from 226.99994039363744 to " - '257.9999114804852.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[31] changed from 226.99990820946178 to " - '257.9998646058375.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[32] changed from 226.99986235016775 to " - '257.9997982483963.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[33] changed from 226.9997985035374 to " - '257.99970642775463.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[34] changed from 226.9997114689935 to " - '257.99958197855415.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[35] changed from 226.99959508346745 to " - '257.99941646180866.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[36] changed from 226.99944215839534 to " - '257.99920009210416.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[37] changed from 226.99924442941196 to " - '257.9989216824017.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[38] changed from 226.99899251980838 to " - '257.99856860749617.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[39] changed from 226.9986759183268 to " - '257.99812678653217.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[40] changed from 226.99828297141283 to " - '257.99758068440707.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[41] changed from 226.9978008896416 to " - '257.99691333138594.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[42] changed from 226.99721576769232 to " - '257.9961063598464.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[43] changed from 226.99651261696917 to " - '257.9951400567495.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[44] changed from 226.99567540975403 to " - '257.99399343020104.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[45] changed from 226.99468713362714 to " - '257.9926442883162.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[46] changed from 226.99352985479666 to " - '257.99106932851873.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[47] changed from 226.9921847889349 to " - '257.9892442353879.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[48] changed from 226.99063237811617 to " - '257.98714378520083.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[49] changed from 226.98885237248376 to " - '257.984741955387.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[50] changed from 226.9868239153344 to " - '257.98201203721953.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[51] changed from 226.98452563038924 to " - '257.9789267501933.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[52] changed from 226.981935710116 to 257.9754583566818.\n" - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[53] changed from 226.97903200407427 to " - '257.97157877561557.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[54] changed from 226.97579210636505 to " - '257.9672596940768.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[55] changed from 226.97219344137957 to " - '257.96247267585943.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[56] changed from 226.96821334715347 to " - '257.95718926618883.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[57] changed from 226.96382915573977 to " - '257.95138109193664.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[58] changed from 226.9590182701165 to " - '257.94501995679843.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[59] changed from 226.95375823724035 to " - '257.9380779310212.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[60] changed from 226.9480268169461 to " - '257.9305274353792.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[61] changed from 226.9418020464717 to " - '257.9223413191944.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[62] changed from 226.9350623004609 to " - '257.9134929322879.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[63] changed from 226.92778634635994 to " - '257.9039561908224.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[64] changed from 226.91995339518039 to " - '257.893705637066.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[65] changed from 226.91154314765035 to " - '257.8827164931607.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[66] changed from 226.90253583581608 to " - '257.8709647090311.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[67] changed from 226.89291226019344 to " - '257.85842700460375.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[68] changed from 226.88265382259624 to " - '257.8450809065431.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[69] changed from 226.8717425547927 to " - '257.83090477973303.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[70] changed from 226.8601611431607 to " - '257.8158778537529.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[71] changed from 226.84789294952552 to " - '257.79998024461065.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[72] changed from 226.83492202837525 to " - '257.7831929720034.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[73] changed from 226.8212331406559 to " - '257.76549797238386.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[74] changed from 226.80681176435183 to " - '257.7468781081078.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[75] changed from 226.7916441020589 to " - '257.7273171729423.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[76] changed from 226.77571708575718 to " - '257.70679989420364.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[77] changed from 226.75901837898732 to " - '257.68531193179524.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[78] changed from 226.7415363766303 to " - '257.66283987440204.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[79] changed from 226.7232602024859 to " - '257.63937123309324.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[80] changed from 226.70417970483777 to " - '257.61489443257284.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[81] changed from 226.68428545018705 to " - '257.58939880030835.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[82] changed from 226.66356871532759 to " - '257.5628745537564.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[83] changed from 226.64202147792906 to " - '257.5353127858915.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[84] changed from 226.6196364057848 to " - '257.5067054492355.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[85] changed from 226.59640684487317 to " - '257.47704533856904.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[86] changed from 226.57232680637296 to " - '257.4463260724998.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[87] changed from 226.54739095276398 to " - '257.4145420740465.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[88] changed from 226.52159458313656 to " - '257.3816885503901.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[89] changed from 226.49493361782456 to " - '257.3477614719298.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[90] changed from 226.4674045824691 to " - '257.31275755077377.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[91] changed from 226.43900459161227 to " - '257.2766742187816.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[92] changed from 226.409731331912 to 257.2395096052692.\n" - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[93] changed from 226.37958304506347 to " - '257.20126251447425.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[94] changed from 226.3485585105036 to " - '257.16193240287515.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[95] changed from 226.31665702797108 to " - '257.1215193564442.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[96] changed from 226.28387839998547 to " - '257.0800240679128.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[97] changed from 226.25022291430548 to " - '257.0374478141143.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[98] changed from 226.21569132641963 to " - '256.993792433467.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[99] changed from 226.18028484211754 to " - '256.949060303652.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[100] changed from 226.14400510018532 to " - '256.9032543195333.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[101] changed from 226.10685415526456 to " - '256.85637787136557.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[102] changed from 226.0688344609087 to " - '256.80843482332557.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[103] changed from 226.02994885286856 to " - '256.7594294924019.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[104] changed from 225.99020053263303 to " - '256.70936662767167.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[105] changed from 225.94959305124954 to " - '256.6582513899883.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[106] changed from 225.90813029344443 to " - '256.60608933210267.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[107] changed from 225.86581646206056 to " - '256.5528863792342.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[108] changed from 225.82265606282775 to " - '256.4986488101075.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[109] changed from 225.77865388947797 to " - '256.44338323846466.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[110] changed from 225.7338150092158 to " - '256.38709659506424.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[111] changed from 225.6881447485524 to " - '256.32979611017197.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[112] changed from 225.641648679509 to " - '256.27148929654834.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[113] changed from 225.59433260619488 to " - '256.21218393293566.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[114] changed from 225.54620255176246 to " - '256.15188804804507.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[115] changed from 225.4972647457417 to " - '256.090609905043.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[116] changed from 225.44752561175338 to " - '256.0283579865346.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[117] changed from 225.39699175560153 to " - '255.96514098004116.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[118] changed from 225.3456699537421 to " - '255.90096776396615.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[119] changed from 225.29356714212594 to " - '255.83584739404472.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[120] changed from 225.24069040541258 to " - '255.7697890902707.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[121] changed from 225.18704696654981 to " - '255.70280222429267.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[122] changed from 225.1326441767153 to " - '255.63489630727247.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[123] changed from 225.07748950561364 to " - '255.56608097819674.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[124] changed from 225.0215905321242 to " - '255.4963659926335.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[125] changed from 224.96495493529233 to " - '255.42576121192343.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[126] changed from 224.90759048565778 to " - '255.35427659279662.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[127] changed from 224.84950503691368 to " - '255.2819221774056.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[128] changed from 224.79070651788814 to " - '255.20870808376333.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[129] changed from 224.73120292484157 to " - '255.1346444965762.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[130] changed from 224.67100231407215 to " - '255.05974165846226.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[131] changed from 224.61011279482162 to " - '254.98400986154343.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[132] changed from 224.54854252247353 to " - '254.90745943940158.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[133] changed from 224.48629969203654 to " - '254.8301007593882.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[134] changed from 224.42339253190454 to " - '254.7519442152759.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[135] changed from 224.35982929788582 to " - '254.67300022024392.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[136] changed from 224.2956182674937 to " - '254.59327920018416.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[137] changed from 224.23076773449063 to " - '254.51279158732018.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[138] changed from 224.16528600367823 to " - '254.43154781412795.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[139] changed from 224.0991813859253 to " - '254.3495583075478.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[140] changed from 224.03246219342677 to " - '254.26683348347956.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[141] changed from 223.9651367351858 to " - '254.18338374154922.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[142] changed from 223.89721331271167 to " - '254.09921946013986.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[143] changed from 223.8287002159267 to " - '254.01435099167543.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[144] changed from 223.75960571927436 to " - '253.92878865815015.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[145] changed from 223.6899380780228 to " - '253.84254274689368.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[146] changed from 223.61970552475557 to " - '253.75562350656378.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[147] changed from 223.54891626604422 to " - '253.6680411433582.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[148] changed from 223.47757847929546 to " - '253.57980581743698.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[149] changed from 223.40570030976696 to " - '253.49092763954837.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[150] changed from 223.3332898677454 to " - '253.40141666784893.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[151] changed from 223.2603552258809 to " - '253.3112829049121.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[152] changed from 223.18690441667167 to " - '253.22053629491637.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[153] changed from 223.11294543009393 to " - '253.12918672100704.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[154] changed from 223.03848621137044 to " - '253.03724400282385.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[155] changed from 222.9635346588733 to " - '252.94471789418805.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[156] changed from 222.88809862215513 to " - '252.85161808094313.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[157] changed from 222.81218590010383 to " - '252.75795417894165.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[158] changed from 222.73580423921604 to " - '252.663735732173.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[159] changed from 222.65896133198424 to " - '252.56897221102588.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[160] changed from 222.58166481539334 to " - '252.47367301068027.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[161] changed from 222.50392226952172 to " - '252.37784744962198.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[162] changed from 222.42574121624293 to " - '252.28150476827682.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[163] changed from 222.34712911802347 to " - '252.18465412775686.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[164] changed from 222.26809337681297 to " - '252.08730460871544.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[165] changed from 222.18864133302216 to " - '251.9894652103054.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[166] changed from 222.10878026458596 to " - '251.89114484923596.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[167] changed from 222.02851738610693 to " - '251.79235235892463.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[168] changed from 221.9478598480762 to " - '251.69309648873815.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[169] changed from 221.86681473616844 to " - '251.59338590332032.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[170] changed from 221.785389070607 to " - '251.49322918200147.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[171] changed from 221.70358980559723 to " - '251.3926348182855.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[172] changed from 221.62142382882348 to " - '251.29161121941252.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[173] changed from 221.5388979610082 to " - '251.19016670599166.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[174] changed from 221.45601895552906 to " - '251.08830951170103.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[175] changed from 221.37279349809256 to " - '250.98604778305287.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[176] changed from 221.28922820646062 to " - '250.88338957921906.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[177] changed from 221.20532963022788 to " - '250.7803428719149.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[178] changed from 221.12110425064748 to " - '250.67691554533775.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[179] changed from 221.03655848050275 to " - '250.5731153961583.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[180] changed from 220.95169866402298 to " - '250.4689501335614.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[181] changed from 220.86653107683952 to " - '250.3644273793338.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[182] changed from 220.78106192598344 to " - '250.2595546679964.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[183] changed from 220.69529734991863 to " - '250.15433944697895.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[184] changed from 220.60924341861158 to " - '250.0487890768343.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[185] changed from 220.52290613363482 to " - '249.94291083149096.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[186] changed from 220.43629142830196 to " - '249.8367118985404.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[187] changed from 220.34940516783317 to " - '249.73019937955846.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[188] changed from 220.26225314954928 to " - '249.62338029045898.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[189] changed from 220.1748411030929 to " - '249.51626156187587.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[190] changed from 220.08717469067486 to " - '249.40885003957467.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[191] changed from 219.99925950734533 to " - '249.30115248488931.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[192] changed from 219.91110108128703 to " - '249.19317557518463.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[193] changed from 219.8227048741303 to " - '249.0849259043413.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[194] changed from 219.73407628128783 to " - '248.97640998326276.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[195] changed from 219.64522063230885 to " - '248.8676342404025.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[196] changed from 219.5561431912505 to " - '248.75860502231015.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[197] changed from 219.4668491570664 to " - '248.64932859419503.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[198] changed from 219.3773436640102 to " - '248.53981114050637.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[199] changed from 219.2876317820541 to " - '248.4300587655287.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[200] changed from 219.1977185173207 to " - '248.32007749399096.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[201] changed from 219.1076088125276 to " - '248.2098732716889.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[202] changed from 219.0173075474436 to " - '248.0994519661193.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[203] changed from 218.92681953935585 to " - '247.9888193671249.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[204] changed from 218.8361495435469 to " - '247.87798118754998.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[205] changed from 218.74530225378146 to " - '247.7669430639044.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[206] changed from 218.65428230280088 to " - '247.65571055703592.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[207] changed from 218.5630942628264 to " - '247.5442891528105.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[208] changed from 218.47174264606878 to " - '247.43268426279863.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[209] changed from 218.38023190524444 to " - '247.32090122496777.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[210] changed from 218.28856643409833 to " - '247.2089453043803.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[211] changed from 218.19675056793068 to " - '247.0968216938954.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[212] changed from 218.1047885841296 to " - '246.9845355148755.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[213] changed from 218.01268470270745 to " - '246.87209181789535.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[214] changed from 217.9204430868404 to " - '246.75949558345425.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[215] changed from 217.82806784341219 to " - '246.64675172269028.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[216] changed from 217.73556302355942 to " - '246.53386507809614.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[217] changed from 217.64293262321993 to " - '246.42084042423627.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[218] changed from 217.55018058368273 to " - '246.3076824684643.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[219] changed from 217.45731079213934 to " - '246.1943958516412.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[220] changed from 217.3643270822363 to " - '246.08098514885273.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[221] changed from 217.2712332346278 to " - '245.96745487012674.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[222] changed from 217.17803297753017 to " - '245.85380946114932.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[223] changed from 217.08472998727427 to " - '245.74005330397927.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[224] changed from 216.99132788885962 to " - '245.6261907177617.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[225] changed from 216.8978302565064 to " - '245.5122259594387.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[226] changed from 216.80424061420777 to " - '245.39816322445847.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[227] changed from 216.71056243628018 to " - '245.28400664748165.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[228] changed from 216.6167991479132 to " - '245.16976030308433.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[229] changed from 216.5229541257168 to " - '245.0554282064588.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[230] changed from 216.42903069826767 to " - '244.94101431411048.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[231] changed from 216.33503214665296 to " - '244.8265225245511.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[232] changed from 216.24096170501218 to " - '244.71195667898886.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[233] changed from 216.14682256107662 to " - '244.59732056201375.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[234] changed from 216.05261785670567 to " - '244.4826179022793.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[235] changed from 215.9583506884216 to " - '244.3678523731799.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[236] changed from 215.86402410794008 to " - '244.25302759352365.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[237] changed from 215.76964112269874 to " - '244.13814712820064.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[238] changed from 215.67520469638194 to " - '244.02321448884618.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[239] changed from 215.58071774944247 to " - '243.90823313449977.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[240] changed from 215.48618315962005 to " - '243.7932064722584.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[241] changed from 215.39160376245576 to " - '243.6781378579251.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[242] changed from 215.29698235180356 to " - '243.5630305966523.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[243] changed from 215.2023216803376 to " - '243.44788794358013.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[244] changed from 215.10762446005566 to " - '243.33271310446838.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[245] changed from 215.0128933627794 to " - '243.2175092363243.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[246] changed from 214.91813102064984 to " - '243.10227944802395.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[247] changed from 214.8233400266192 to " - '242.98702680092842.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[248] changed from 214.72852293493892 to " - '242.8717543094942.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[249] changed from 214.633682261643 to " - '242.75646494187785.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[250] changed from 214.5388204850274 to " - '242.64116162053537.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[251] changed from 214.4439400461254 to " - '242.52584722281497.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[252] changed from 214.34904334917843 to " - '242.4105245815449.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[253] changed from 214.25413276210273 to " - '242.29519648561498.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[254] changed from 214.1592106169515 to " - '242.17986568055224.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[255] changed from 214.06427921037286 to " - '242.0645348690911.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[256] changed from 213.96934080406314 to " - '241.94920671173713.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[257] changed from 213.87439762521646 to " - '241.83388382732537.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[258] changed from 213.77945186696874 to " - '241.71856879357267.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[259] changed from 213.6845056888382 to " - '241.6032641476238.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[260] changed from 213.58956121716133 to " - '241.4879723865918.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[261] changed from 213.4946205455236 to " - '241.37269596809324.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[262] changed from 213.39968573518652 to " - '241.25743731077603.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[263] changed from 213.3047588155102 to " - '241.1421987948428.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[264] changed from 213.20984178437084 to " - '241.02698276256788.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[265] changed from 213.11493660857425 to " - '240.91179151880786.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[266] changed from 213.02004522426472 to " - '240.79662733150758.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[267] changed from 212.92516953732948 to " - '240.68149243219924.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[268] changed from 212.83031142379886 to " - '240.56638901649626.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[269] changed from 212.73547273024167 to " - '240.45131924458107.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[270] changed from 212.64065527415633 to " - '240.3362852416877.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[271] changed from 212.54586084435806 to " - '240.221289098578.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[272] changed from 212.45109120136055 to " - '240.10633287201293.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[273] changed from 212.35634807775452 to " - '239.9914185852173.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[274] changed from 212.26163317858118 to " - '239.87654822833994.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[275] changed from 212.16694818170154 to " - '239.76172375890772.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[276] changed from 212.07229473816133 to " - '239.6469471022739.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[277] changed from 211.97767447255202 to " - '239.53222015206157.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[278] changed from 211.88308898336697 to " - '239.41754477060118.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[279] changed from 211.78853984335402 to " - '239.3029227893628.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[280] changed from 211.6940285998632 to " - '239.1883560093831.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[281] changed from 211.5995567751909 to " - '239.07384620168693.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[282] changed from 211.50512586691946 to " - '238.95939510770364.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[283] changed from 211.41073734825275 to " - '238.8450044396782.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[284] changed from 211.31639266834787 to " - '238.73067588107708.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[285] changed from 211.22209325264254 to " - '238.61641108698905.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[286] changed from 211.12784050317848 to " - '238.5022116845208.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[287] changed from 211.033635798921 to " - '238.38807927318766.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[288] changed from 210.93948049607465 to " - '238.2740154252991.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[289] changed from 210.84537592839442 to " - '238.1600216863395.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[290] changed from 210.75132340749386 to " - '238.0460995753438.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[291] changed from 210.65732422314872 to " - '237.93225058526852.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[292] changed from 210.56337964359702 to " - '237.8184761833579.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[293] changed from 210.46949091583542 to " - '237.704777811505.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[294] changed from 210.37565926591154 to " - '237.59115688660842.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[295] changed from 210.28188589921294 to " - '237.4776148009244.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[296] changed from 210.18817200075205 to " - '237.3641529224138.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[297] changed from 210.09451873544774 to " - '237.2507725950853.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[298] changed from 210.00092724840331 to " - '237.13747513933328.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[299] changed from 209.90739866518058 to " - '237.02426185227162.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[300] changed from 209.81393409207072 to " - '236.9111340080634.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[301] changed from 209.72053461636162 to " - '236.79809285824538.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[302] changed from 209.62720130660162 to " - '236.685139632049.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[303] changed from 209.5339352128598 to " - '236.57227553671657.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[304] changed from 209.44073736698326 to " - '236.45950175781348.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[305] changed from 209.34760878285047 to " - '236.34681945953616.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[306] changed from 209.25455045662167 to " - '236.2342297850159.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[307] changed from 209.16156336698612 to " - '236.12173385661862.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[308] changed from 209.0686484754058 to " - '236.00933277624054.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[309] changed from 208.9758067263558 to " - '235.89702762559997.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[310] changed from 208.88303904756216 to " - '235.78481946652502.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[311] changed from 208.79034635023578 to " - '235.67270934123746.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[312] changed from 208.69772952930393 to " - '235.56069827263286.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[313] changed from 208.60518946363817 to " - '235.44878726455684.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[314] changed from 208.51272701627977 to " - '235.3369773020775.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[315] changed from 208.42034303466139 to " - '235.22526935175415.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[316] changed from 208.32803835082657 to " - '235.11366436190235.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[317] changed from 208.235813781646 to " - '235.00216326285582.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[318] changed from 208.1436701290306 to " - '234.8907669672239.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[319] changed from 208.05160818014232 to " - '234.7794763701461.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[320] changed from 207.95962870760167 to " - '234.66829234954304.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[321] changed from 207.86773246969267 to " - '234.55721576636392.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[322] changed from 207.77592021056492 to " - '234.44624746483063.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[323] changed from 207.68419266043318 to " - '234.33538827267836.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[324] changed from 207.59255053577405 to " - '234.22463900139311.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[325] changed from 207.50099453951998 to " - '234.11400044644563.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[326] changed from 207.40952536125093 to " - '234.00347338752277.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[327] changed from 207.31814367738315 to " - '233.89305858875463.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[328] changed from 207.22685015135553 to " - '233.7827567989396.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[329] changed from 207.13564543381352 to " - '233.67256875176577.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[330] changed from 207.04453016279027 to " - '233.56249516602907.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[331] changed from 206.95350496388582 to " - '233.45253674584885.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[332] changed from 206.86257045044317 to " - '233.34269418088056.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[333] changed from 206.77172722372262 to " - '233.2329681465247.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[334] changed from 206.68097587307335 to " - '233.1233593041337.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[335] changed from 206.5903169761028 to " - '233.01386830121564.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[336] changed from 206.4997510988437 to " - '232.90449577163497.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[337] changed from 206.4092787959188 to " - '232.79524233581074.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[338] changed from 206.31890061070362 to " - '232.68610860091175.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[339] changed from 206.22861707548637 to " - '232.57709516104936.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[340] changed from 206.1384287116265 to " - '232.46820259746724.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[341] changed from 206.04833602971027 to " - '232.35943147872877.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[342] changed from 205.95833952970492 to " - '232.2507823609017.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[343] changed from 205.8684397011102 to " - '232.1422557877401.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[344] changed from 205.77863702310805 to " - '232.03385229086425.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[345] changed from 205.68893196471026 to " - '231.92557238993732.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[346] changed from 205.5993249849041 to " - '231.8174165928402.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[347] changed from 205.50981653279564 to " - '231.70938539584358.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[348] changed from 205.42040704775172 to " - '231.60147928377765.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[349] changed from 205.3310969595394 to " - '231.4936987301997.\n' - "Value of root.wellbores.OutputParameterDict['Produced " - "Temperature'].value[350] changed from 205.24188668846386 to " - '231.38604419755868.\n' - 'Value of root.wellbores.Phydrostatic.value changed from 28404.32921064445 to ' - '27964.13785652749.\n' - 'Value of root.wellbores.Pinjwellhead[0] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[1] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[2] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[3] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[4] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[5] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[6] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[7] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[8] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[9] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[10] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[11] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[12] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[13] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[14] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[15] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[16] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[17] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[18] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[19] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[20] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[21] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[22] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[23] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[24] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[25] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[26] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[27] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[28] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[29] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[30] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[31] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[32] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[33] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[34] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[35] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[36] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[37] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[38] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[39] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[40] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[41] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[42] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[43] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[44] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[45] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[46] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[47] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[48] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[49] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[50] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[51] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[52] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[53] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[54] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[55] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[56] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[57] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[58] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[59] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[60] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[61] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[62] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[63] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[64] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[65] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[66] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[67] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[68] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[69] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[70] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[71] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[72] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[73] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[74] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[75] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[76] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[77] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[78] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[79] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[80] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[81] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[82] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[83] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[84] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[85] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[86] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[87] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[88] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[89] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[90] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[91] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[92] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[93] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[94] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[95] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[96] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[97] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[98] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[99] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[100] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[101] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[102] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[103] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[104] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[105] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[106] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[107] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[108] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[109] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[110] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[111] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[112] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[113] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[114] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[115] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[116] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[117] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[118] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[119] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[120] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[121] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[122] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[123] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[124] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[125] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[126] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[127] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[128] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[129] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[130] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[131] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[132] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[133] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[134] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[135] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[136] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[137] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[138] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[139] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[140] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[141] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[142] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[143] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[144] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[145] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[146] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[147] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[148] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[149] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[150] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[151] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[152] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[153] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[154] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[155] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[156] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[157] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[158] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[159] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[160] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[161] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[162] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[163] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[164] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[165] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[166] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[167] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[168] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[169] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[170] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[171] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[172] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[173] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[174] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[175] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[176] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[177] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[178] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[179] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[180] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[181] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[182] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[183] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[184] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[185] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[186] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[187] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[188] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[189] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[190] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[191] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[192] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[193] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[194] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[195] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[196] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[197] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[198] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[199] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[200] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[201] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[202] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[203] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[204] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[205] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[206] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[207] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[208] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[209] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[210] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[211] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[212] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[213] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[214] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[215] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[216] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[217] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[218] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[219] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[220] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[221] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[222] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[223] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[224] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[225] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[226] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[227] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[228] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[229] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[230] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[231] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[232] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[233] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[234] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[235] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[236] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[237] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[238] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[239] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[240] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[241] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[242] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[243] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[244] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[245] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[246] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[247] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[248] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[249] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[250] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[251] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[252] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[253] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[254] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[255] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[256] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[257] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[258] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[259] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[260] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[261] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[262] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[263] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[264] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[265] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[266] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[267] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[268] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[269] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[270] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[271] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[272] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[273] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[274] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[275] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[276] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[277] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[278] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[279] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[280] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[281] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[282] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[283] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[284] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[285] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[286] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[287] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[288] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[289] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[290] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[291] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[292] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[293] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[294] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[295] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[296] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[297] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[298] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[299] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[300] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[301] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[302] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[303] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[304] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[305] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[306] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[307] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[308] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[309] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[310] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[311] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[312] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[313] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[314] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[315] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[316] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[317] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[318] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[319] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[320] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[321] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[322] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[323] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[324] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[325] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[326] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[327] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[328] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[329] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[330] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[331] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[332] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[333] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[334] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[335] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[336] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[337] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[338] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[339] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[340] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[341] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[342] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[343] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[344] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[345] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[346] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[347] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[348] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[349] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.Pinjwellhead[350] changed from 750.1645856440234 to ' - '309.9732315270637.\n' - 'Value of root.wellbores.DP1.value[0] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[1] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[2] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[3] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[4] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[5] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[6] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[7] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[8] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[9] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[10] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[11] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[12] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[13] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[14] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[15] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[16] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[17] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[18] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[19] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[20] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[21] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[22] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[23] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[24] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[25] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[26] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[27] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[28] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[29] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[30] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[31] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[32] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[33] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[34] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[35] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[36] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[37] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[38] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[39] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[40] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[41] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[42] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[43] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[44] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[45] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[46] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[47] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[48] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[49] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[50] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[51] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[52] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[53] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[54] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[55] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[56] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[57] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[58] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[59] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[60] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[61] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[62] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[63] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[64] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[65] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[66] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[67] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[68] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[69] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[70] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[71] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[72] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[73] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[74] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[75] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[76] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[77] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[78] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[79] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[80] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[81] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[82] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[83] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[84] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[85] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[86] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[87] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[88] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[89] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[90] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[91] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[92] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[93] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[94] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[95] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[96] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[97] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[98] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[99] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[100] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[101] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[102] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[103] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[104] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[105] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[106] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[107] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[108] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[109] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[110] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[111] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[112] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[113] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[114] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[115] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[116] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[117] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[118] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[119] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[120] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[121] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[122] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[123] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[124] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[125] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[126] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[127] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[128] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[129] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[130] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[131] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[132] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[133] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[134] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[135] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[136] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[137] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[138] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[139] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[140] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[141] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[142] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[143] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[144] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[145] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[146] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[147] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[148] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[149] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[150] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[151] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[152] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[153] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[154] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[155] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[156] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[157] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[158] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[159] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[160] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[161] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[162] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[163] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[164] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[165] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[166] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[167] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[168] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[169] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[170] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[171] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[172] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[173] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[174] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[175] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[176] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[177] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[178] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[179] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[180] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[181] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[182] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[183] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[184] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[185] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[186] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[187] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[188] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[189] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[190] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[191] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[192] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[193] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[194] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[195] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[196] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[197] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[198] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[199] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[200] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[201] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[202] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[203] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[204] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[205] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[206] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[207] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[208] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[209] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[210] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[211] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[212] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[213] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[214] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[215] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[216] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[217] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[218] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[219] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[220] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[221] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[222] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[223] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[224] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[225] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[226] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[227] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[228] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[229] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[230] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[231] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[232] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[233] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[234] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[235] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[236] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[237] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[238] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[239] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[240] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[241] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[242] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[243] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[244] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[245] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[246] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[247] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[248] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[249] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[250] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[251] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[252] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[253] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[254] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[255] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[256] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[257] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[258] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[259] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[260] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[261] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[262] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[263] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[264] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[265] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[266] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[267] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[268] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[269] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[270] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[271] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[272] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[273] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[274] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[275] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[276] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[277] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[278] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[279] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[280] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[281] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[282] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[283] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[284] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[285] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[286] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[287] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[288] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[289] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[290] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[291] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[292] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[293] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[294] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[295] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[296] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[297] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[298] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[299] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[300] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[301] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[302] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[303] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[304] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[305] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[306] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[307] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[308] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[309] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[310] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[311] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[312] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[313] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[314] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[315] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[316] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[317] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[318] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[319] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[320] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[321] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[322] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[323] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[324] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[325] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[326] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[327] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[328] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[329] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[330] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[331] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[332] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[333] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[334] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[335] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[336] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[337] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[338] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[339] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[340] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[341] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[342] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[343] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[344] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[345] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[346] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[347] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[348] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[349] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.DP1.value[350] changed from 650.1645856440234 to ' - '209.97323152706372.\n' - 'Value of root.wellbores.ProducedTemperature.value[0] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[1] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[2] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[3] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[4] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[5] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[6] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[7] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[8] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[9] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[10] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[11] changed from ' - '227.00000000000003 to 258.0.\n' - 'Value of root.wellbores.ProducedTemperature.value[12] changed from ' - '226.9999999999999 to 257.9999999999997.\n' - 'Value of root.wellbores.ProducedTemperature.value[13] changed from ' - '226.99999999999815 to 257.99999999999636.\n' - 'Value of root.wellbores.ProducedTemperature.value[14] changed from ' - '226.9999999999838 to 257.99999999996936.\n' - 'Value of root.wellbores.ProducedTemperature.value[15] changed from ' - '226.99999999989396 to 257.9999999998057.\n' - 'Value of root.wellbores.ProducedTemperature.value[16] changed from ' - '226.99999999945064 to 257.99999999901956.\n' - 'Value of root.wellbores.ProducedTemperature.value[17] changed from ' - '226.99999999765086 to 257.9999999959037.\n' - 'Value of root.wellbores.ProducedTemperature.value[18] changed from ' - '226.99999999143975 to 257.99999998537714.\n' - 'Value of root.wellbores.ProducedTemperature.value[19] changed from ' - '226.99999997273946 to 257.99999995428243.\n' - 'Value of root.wellbores.ProducedTemperature.value[20] changed from ' - '226.99999992258927 to 257.99999987231126.\n' - 'Value of root.wellbores.ProducedTemperature.value[21] changed from ' - '226.99999980076234 to 257.99999967624956.\n' - 'Value of root.wellbores.ProducedTemperature.value[22] changed from ' - '226.99999952897429 to 257.9999992449726.\n' - 'Value of root.wellbores.ProducedTemperature.value[23] changed from ' - '226.9999989657795 to 257.99999836271354.\n' - 'Value of root.wellbores.ProducedTemperature.value[24] changed from ' - '226.9999978715055 to 257.99999666859424.\n' - 'Value of root.wellbores.ProducedTemperature.value[25] changed from ' - '226.99999586209614 to 257.99999359122694.\n' - 'Value of root.wellbores.ProducedTemperature.value[26] changed from ' - '226.99999235145177 to 257.9999882682356.\n' - 'Value of root.wellbores.ProducedTemperature.value[27] changed from ' - '226.9999864826804 to 257.9999794516882.\n' - 'Value of root.wellbores.ProducedTemperature.value[28] changed from ' - '226.9999770494983 to 257.9999654015181.\n' - 'Value of root.wellbores.ProducedTemperature.value[29] changed from ' - '226.99996240975582 to 257.9999437699339.\n' - 'Value of root.wellbores.ProducedTemperature.value[30] changed from ' - '226.99994039363744 to 257.9999114804852.\n' - 'Value of root.wellbores.ProducedTemperature.value[31] changed from ' - '226.99990820946178 to 257.9998646058375.\n' - 'Value of root.wellbores.ProducedTemperature.value[32] changed from ' - '226.99986235016775 to 257.9997982483963.\n' - 'Value of root.wellbores.ProducedTemperature.value[33] changed from ' - '226.9997985035374 to 257.99970642775463.\n' - 'Value of root.wellbores.ProducedTemperature.value[34] changed from ' - '226.9997114689935 to 257.99958197855415.\n' - 'Value of root.wellbores.ProducedTemperature.value[35] changed from ' - '226.99959508346745 to 257.99941646180866.\n' - 'Value of root.wellbores.ProducedTemperature.value[36] changed from ' - '226.99944215839534 to 257.99920009210416.\n' - 'Value of root.wellbores.ProducedTemperature.value[37] changed from ' - '226.99924442941196 to 257.9989216824017.\n' - 'Value of root.wellbores.ProducedTemperature.value[38] changed from ' - '226.99899251980838 to 257.99856860749617.\n' - 'Value of root.wellbores.ProducedTemperature.value[39] changed from ' - '226.9986759183268 to 257.99812678653217.\n' - 'Value of root.wellbores.ProducedTemperature.value[40] changed from ' - '226.99828297141283 to 257.99758068440707.\n' - 'Value of root.wellbores.ProducedTemperature.value[41] changed from ' - '226.9978008896416 to 257.99691333138594.\n' - 'Value of root.wellbores.ProducedTemperature.value[42] changed from ' - '226.99721576769232 to 257.9961063598464.\n' - 'Value of root.wellbores.ProducedTemperature.value[43] changed from ' - '226.99651261696917 to 257.9951400567495.\n' - 'Value of root.wellbores.ProducedTemperature.value[44] changed from ' - '226.99567540975403 to 257.99399343020104.\n' - 'Value of root.wellbores.ProducedTemperature.value[45] changed from ' - '226.99468713362714 to 257.9926442883162.\n' - 'Value of root.wellbores.ProducedTemperature.value[46] changed from ' - '226.99352985479666 to 257.99106932851873.\n' - 'Value of root.wellbores.ProducedTemperature.value[47] changed from ' - '226.9921847889349 to 257.9892442353879.\n' - 'Value of root.wellbores.ProducedTemperature.value[48] changed from ' - '226.99063237811617 to 257.98714378520083.\n' - 'Value of root.wellbores.ProducedTemperature.value[49] changed from ' - '226.98885237248376 to 257.984741955387.\n' - 'Value of root.wellbores.ProducedTemperature.value[50] changed from ' - '226.9868239153344 to 257.98201203721953.\n' - 'Value of root.wellbores.ProducedTemperature.value[51] changed from ' - '226.98452563038924 to 257.9789267501933.\n' - 'Value of root.wellbores.ProducedTemperature.value[52] changed from ' - '226.981935710116 to 257.9754583566818.\n' - 'Value of root.wellbores.ProducedTemperature.value[53] changed from ' - '226.97903200407427 to 257.97157877561557.\n' - 'Value of root.wellbores.ProducedTemperature.value[54] changed from ' - '226.97579210636505 to 257.9672596940768.\n' - 'Value of root.wellbores.ProducedTemperature.value[55] changed from ' - '226.97219344137957 to 257.96247267585943.\n' - 'Value of root.wellbores.ProducedTemperature.value[56] changed from ' - '226.96821334715347 to 257.95718926618883.\n' - 'Value of root.wellbores.ProducedTemperature.value[57] changed from ' - '226.96382915573977 to 257.95138109193664.\n' - 'Value of root.wellbores.ProducedTemperature.value[58] changed from ' - '226.9590182701165 to 257.94501995679843.\n' - 'Value of root.wellbores.ProducedTemperature.value[59] changed from ' - '226.95375823724035 to 257.9380779310212.\n' - 'Value of root.wellbores.ProducedTemperature.value[60] changed from ' - '226.9480268169461 to 257.9305274353792.\n' - 'Value of root.wellbores.ProducedTemperature.value[61] changed from ' - '226.9418020464717 to 257.9223413191944.\n' - 'Value of root.wellbores.ProducedTemperature.value[62] changed from ' - '226.9350623004609 to 257.9134929322879.\n' - 'Value of root.wellbores.ProducedTemperature.value[63] changed from ' - '226.92778634635994 to 257.9039561908224.\n' - 'Value of root.wellbores.ProducedTemperature.value[64] changed from ' - '226.91995339518039 to 257.893705637066.\n' - 'Value of root.wellbores.ProducedTemperature.value[65] changed from ' - '226.91154314765035 to 257.8827164931607.\n' - 'Value of root.wellbores.ProducedTemperature.value[66] changed from ' - '226.90253583581608 to 257.8709647090311.\n' - 'Value of root.wellbores.ProducedTemperature.value[67] changed from ' - '226.89291226019344 to 257.85842700460375.\n' - 'Value of root.wellbores.ProducedTemperature.value[68] changed from ' - '226.88265382259624 to 257.8450809065431.\n' - 'Value of root.wellbores.ProducedTemperature.value[69] changed from ' - '226.8717425547927 to 257.83090477973303.\n' - 'Value of root.wellbores.ProducedTemperature.value[70] changed from ' - '226.8601611431607 to 257.8158778537529.\n' - 'Value of root.wellbores.ProducedTemperature.value[71] changed from ' - '226.84789294952552 to 257.79998024461065.\n' - 'Value of root.wellbores.ProducedTemperature.value[72] changed from ' - '226.83492202837525 to 257.7831929720034.\n' - 'Value of root.wellbores.ProducedTemperature.value[73] changed from ' - '226.8212331406559 to 257.76549797238386.\n' - 'Value of root.wellbores.ProducedTemperature.value[74] changed from ' - '226.80681176435183 to 257.7468781081078.\n' - 'Value of root.wellbores.ProducedTemperature.value[75] changed from ' - '226.7916441020589 to 257.7273171729423.\n' - 'Value of root.wellbores.ProducedTemperature.value[76] changed from ' - '226.77571708575718 to 257.70679989420364.\n' - 'Value of root.wellbores.ProducedTemperature.value[77] changed from ' - '226.75901837898732 to 257.68531193179524.\n' - 'Value of root.wellbores.ProducedTemperature.value[78] changed from ' - '226.7415363766303 to 257.66283987440204.\n' - 'Value of root.wellbores.ProducedTemperature.value[79] changed from ' - '226.7232602024859 to 257.63937123309324.\n' - 'Value of root.wellbores.ProducedTemperature.value[80] changed from ' - '226.70417970483777 to 257.61489443257284.\n' - 'Value of root.wellbores.ProducedTemperature.value[81] changed from ' - '226.68428545018705 to 257.58939880030835.\n' - 'Value of root.wellbores.ProducedTemperature.value[82] changed from ' - '226.66356871532759 to 257.5628745537564.\n' - 'Value of root.wellbores.ProducedTemperature.value[83] changed from ' - '226.64202147792906 to 257.5353127858915.\n' - 'Value of root.wellbores.ProducedTemperature.value[84] changed from ' - '226.6196364057848 to 257.5067054492355.\n' - 'Value of root.wellbores.ProducedTemperature.value[85] changed from ' - '226.59640684487317 to 257.47704533856904.\n' - 'Value of root.wellbores.ProducedTemperature.value[86] changed from ' - '226.57232680637296 to 257.4463260724998.\n' - 'Value of root.wellbores.ProducedTemperature.value[87] changed from ' - '226.54739095276398 to 257.4145420740465.\n' - 'Value of root.wellbores.ProducedTemperature.value[88] changed from ' - '226.52159458313656 to 257.3816885503901.\n' - 'Value of root.wellbores.ProducedTemperature.value[89] changed from ' - '226.49493361782456 to 257.3477614719298.\n' - 'Value of root.wellbores.ProducedTemperature.value[90] changed from ' - '226.4674045824691 to 257.31275755077377.\n' - 'Value of root.wellbores.ProducedTemperature.value[91] changed from ' - '226.43900459161227 to 257.2766742187816.\n' - 'Value of root.wellbores.ProducedTemperature.value[92] changed from ' - '226.409731331912 to 257.2395096052692.\n' - 'Value of root.wellbores.ProducedTemperature.value[93] changed from ' - '226.37958304506347 to 257.20126251447425.\n' - 'Value of root.wellbores.ProducedTemperature.value[94] changed from ' - '226.3485585105036 to 257.16193240287515.\n' - 'Value of root.wellbores.ProducedTemperature.value[95] changed from ' - '226.31665702797108 to 257.1215193564442.\n' - 'Value of root.wellbores.ProducedTemperature.value[96] changed from ' - '226.28387839998547 to 257.0800240679128.\n' - 'Value of root.wellbores.ProducedTemperature.value[97] changed from ' - '226.25022291430548 to 257.0374478141143.\n' - 'Value of root.wellbores.ProducedTemperature.value[98] changed from ' - '226.21569132641963 to 256.993792433467.\n' - 'Value of root.wellbores.ProducedTemperature.value[99] changed from ' - '226.18028484211754 to 256.949060303652.\n' - 'Value of root.wellbores.ProducedTemperature.value[100] changed from ' - '226.14400510018532 to 256.9032543195333.\n' - 'Value of root.wellbores.ProducedTemperature.value[101] changed from ' - '226.10685415526456 to 256.85637787136557.\n' - 'Value of root.wellbores.ProducedTemperature.value[102] changed from ' - '226.0688344609087 to 256.80843482332557.\n' - 'Value of root.wellbores.ProducedTemperature.value[103] changed from ' - '226.02994885286856 to 256.7594294924019.\n' - 'Value of root.wellbores.ProducedTemperature.value[104] changed from ' - '225.99020053263303 to 256.70936662767167.\n' - 'Value of root.wellbores.ProducedTemperature.value[105] changed from ' - '225.94959305124954 to 256.6582513899883.\n' - 'Value of root.wellbores.ProducedTemperature.value[106] changed from ' - '225.90813029344443 to 256.60608933210267.\n' - 'Value of root.wellbores.ProducedTemperature.value[107] changed from ' - '225.86581646206056 to 256.5528863792342.\n' - 'Value of root.wellbores.ProducedTemperature.value[108] changed from ' - '225.82265606282775 to 256.4986488101075.\n' - 'Value of root.wellbores.ProducedTemperature.value[109] changed from ' - '225.77865388947797 to 256.44338323846466.\n' - 'Value of root.wellbores.ProducedTemperature.value[110] changed from ' - '225.7338150092158 to 256.38709659506424.\n' - 'Value of root.wellbores.ProducedTemperature.value[111] changed from ' - '225.6881447485524 to 256.32979611017197.\n' - 'Value of root.wellbores.ProducedTemperature.value[112] changed from ' - '225.641648679509 to 256.27148929654834.\n' - 'Value of root.wellbores.ProducedTemperature.value[113] changed from ' - '225.59433260619488 to 256.21218393293566.\n' - 'Value of root.wellbores.ProducedTemperature.value[114] changed from ' - '225.54620255176246 to 256.15188804804507.\n' - 'Value of root.wellbores.ProducedTemperature.value[115] changed from ' - '225.4972647457417 to 256.090609905043.\n' - 'Value of root.wellbores.ProducedTemperature.value[116] changed from ' - '225.44752561175338 to 256.0283579865346.\n' - 'Value of root.wellbores.ProducedTemperature.value[117] changed from ' - '225.39699175560153 to 255.96514098004116.\n' - 'Value of root.wellbores.ProducedTemperature.value[118] changed from ' - '225.3456699537421 to 255.90096776396615.\n' - 'Value of root.wellbores.ProducedTemperature.value[119] changed from ' - '225.29356714212594 to 255.83584739404472.\n' - 'Value of root.wellbores.ProducedTemperature.value[120] changed from ' - '225.24069040541258 to 255.7697890902707.\n' - 'Value of root.wellbores.ProducedTemperature.value[121] changed from ' - '225.18704696654981 to 255.70280222429267.\n' - 'Value of root.wellbores.ProducedTemperature.value[122] changed from ' - '225.1326441767153 to 255.63489630727247.\n' - 'Value of root.wellbores.ProducedTemperature.value[123] changed from ' - '225.07748950561364 to 255.56608097819674.\n' - 'Value of root.wellbores.ProducedTemperature.value[124] changed from ' - '225.0215905321242 to 255.4963659926335.\n' - 'Value of root.wellbores.ProducedTemperature.value[125] changed from ' - '224.96495493529233 to 255.42576121192343.\n' - 'Value of root.wellbores.ProducedTemperature.value[126] changed from ' - '224.90759048565778 to 255.35427659279662.\n' - 'Value of root.wellbores.ProducedTemperature.value[127] changed from ' - '224.84950503691368 to 255.2819221774056.\n' - 'Value of root.wellbores.ProducedTemperature.value[128] changed from ' - '224.79070651788814 to 255.20870808376333.\n' - 'Value of root.wellbores.ProducedTemperature.value[129] changed from ' - '224.73120292484157 to 255.1346444965762.\n' - 'Value of root.wellbores.ProducedTemperature.value[130] changed from ' - '224.67100231407215 to 255.05974165846226.\n' - 'Value of root.wellbores.ProducedTemperature.value[131] changed from ' - '224.61011279482162 to 254.98400986154343.\n' - 'Value of root.wellbores.ProducedTemperature.value[132] changed from ' - '224.54854252247353 to 254.90745943940158.\n' - 'Value of root.wellbores.ProducedTemperature.value[133] changed from ' - '224.48629969203654 to 254.8301007593882.\n' - 'Value of root.wellbores.ProducedTemperature.value[134] changed from ' - '224.42339253190454 to 254.7519442152759.\n' - 'Value of root.wellbores.ProducedTemperature.value[135] changed from ' - '224.35982929788582 to 254.67300022024392.\n' - 'Value of root.wellbores.ProducedTemperature.value[136] changed from ' - '224.2956182674937 to 254.59327920018416.\n' - 'Value of root.wellbores.ProducedTemperature.value[137] changed from ' - '224.23076773449063 to 254.51279158732018.\n' - 'Value of root.wellbores.ProducedTemperature.value[138] changed from ' - '224.16528600367823 to 254.43154781412795.\n' - 'Value of root.wellbores.ProducedTemperature.value[139] changed from ' - '224.0991813859253 to 254.3495583075478.\n' - 'Value of root.wellbores.ProducedTemperature.value[140] changed from ' - '224.03246219342677 to 254.26683348347956.\n' - 'Value of root.wellbores.ProducedTemperature.value[141] changed from ' - '223.9651367351858 to 254.18338374154922.\n' - 'Value of root.wellbores.ProducedTemperature.value[142] changed from ' - '223.89721331271167 to 254.09921946013986.\n' - 'Value of root.wellbores.ProducedTemperature.value[143] changed from ' - '223.8287002159267 to 254.01435099167543.\n' - 'Value of root.wellbores.ProducedTemperature.value[144] changed from ' - '223.75960571927436 to 253.92878865815015.\n' - 'Value of root.wellbores.ProducedTemperature.value[145] changed from ' - '223.6899380780228 to 253.84254274689368.\n' - 'Value of root.wellbores.ProducedTemperature.value[146] changed from ' - '223.61970552475557 to 253.75562350656378.\n' - 'Value of root.wellbores.ProducedTemperature.value[147] changed from ' - '223.54891626604422 to 253.6680411433582.\n' - 'Value of root.wellbores.ProducedTemperature.value[148] changed from ' - '223.47757847929546 to 253.57980581743698.\n' - 'Value of root.wellbores.ProducedTemperature.value[149] changed from ' - '223.40570030976696 to 253.49092763954837.\n' - 'Value of root.wellbores.ProducedTemperature.value[150] changed from ' - '223.3332898677454 to 253.40141666784893.\n' - 'Value of root.wellbores.ProducedTemperature.value[151] changed from ' - '223.2603552258809 to 253.3112829049121.\n' - 'Value of root.wellbores.ProducedTemperature.value[152] changed from ' - '223.18690441667167 to 253.22053629491637.\n' - 'Value of root.wellbores.ProducedTemperature.value[153] changed from ' - '223.11294543009393 to 253.12918672100704.\n' - 'Value of root.wellbores.ProducedTemperature.value[154] changed from ' - '223.03848621137044 to 253.03724400282385.\n' - 'Value of root.wellbores.ProducedTemperature.value[155] changed from ' - '222.9635346588733 to 252.94471789418805.\n' - 'Value of root.wellbores.ProducedTemperature.value[156] changed from ' - '222.88809862215513 to 252.85161808094313.\n' - 'Value of root.wellbores.ProducedTemperature.value[157] changed from ' - '222.81218590010383 to 252.75795417894165.\n' - 'Value of root.wellbores.ProducedTemperature.value[158] changed from ' - '222.73580423921604 to 252.663735732173.\n' - 'Value of root.wellbores.ProducedTemperature.value[159] changed from ' - '222.65896133198424 to 252.56897221102588.\n' - 'Value of root.wellbores.ProducedTemperature.value[160] changed from ' - '222.58166481539334 to 252.47367301068027.\n' - 'Value of root.wellbores.ProducedTemperature.value[161] changed from ' - '222.50392226952172 to 252.37784744962198.\n' - 'Value of root.wellbores.ProducedTemperature.value[162] changed from ' - '222.42574121624293 to 252.28150476827682.\n' - 'Value of root.wellbores.ProducedTemperature.value[163] changed from ' - '222.34712911802347 to 252.18465412775686.\n' - 'Value of root.wellbores.ProducedTemperature.value[164] changed from ' - '222.26809337681297 to 252.08730460871544.\n' - 'Value of root.wellbores.ProducedTemperature.value[165] changed from ' - '222.18864133302216 to 251.9894652103054.\n' - 'Value of root.wellbores.ProducedTemperature.value[166] changed from ' - '222.10878026458596 to 251.89114484923596.\n' - 'Value of root.wellbores.ProducedTemperature.value[167] changed from ' - '222.02851738610693 to 251.79235235892463.\n' - 'Value of root.wellbores.ProducedTemperature.value[168] changed from ' - '221.9478598480762 to 251.69309648873815.\n' - 'Value of root.wellbores.ProducedTemperature.value[169] changed from ' - '221.86681473616844 to 251.59338590332032.\n' - 'Value of root.wellbores.ProducedTemperature.value[170] changed from ' - '221.785389070607 to 251.49322918200147.\n' - 'Value of root.wellbores.ProducedTemperature.value[171] changed from ' - '221.70358980559723 to 251.3926348182855.\n' - 'Value of root.wellbores.ProducedTemperature.value[172] changed from ' - '221.62142382882348 to 251.29161121941252.\n' - 'Value of root.wellbores.ProducedTemperature.value[173] changed from ' - '221.5388979610082 to 251.19016670599166.\n' - 'Value of root.wellbores.ProducedTemperature.value[174] changed from ' - '221.45601895552906 to 251.08830951170103.\n' - 'Value of root.wellbores.ProducedTemperature.value[175] changed from ' - '221.37279349809256 to 250.98604778305287.\n' - 'Value of root.wellbores.ProducedTemperature.value[176] changed from ' - '221.28922820646062 to 250.88338957921906.\n' - 'Value of root.wellbores.ProducedTemperature.value[177] changed from ' - '221.20532963022788 to 250.7803428719149.\n' - 'Value of root.wellbores.ProducedTemperature.value[178] changed from ' - '221.12110425064748 to 250.67691554533775.\n' - 'Value of root.wellbores.ProducedTemperature.value[179] changed from ' - '221.03655848050275 to 250.5731153961583.\n' - 'Value of root.wellbores.ProducedTemperature.value[180] changed from ' - '220.95169866402298 to 250.4689501335614.\n' - 'Value of root.wellbores.ProducedTemperature.value[181] changed from ' - '220.86653107683952 to 250.3644273793338.\n' - 'Value of root.wellbores.ProducedTemperature.value[182] changed from ' - '220.78106192598344 to 250.2595546679964.\n' - 'Value of root.wellbores.ProducedTemperature.value[183] changed from ' - '220.69529734991863 to 250.15433944697895.\n' - 'Value of root.wellbores.ProducedTemperature.value[184] changed from ' - '220.60924341861158 to 250.0487890768343.\n' - 'Value of root.wellbores.ProducedTemperature.value[185] changed from ' - '220.52290613363482 to 249.94291083149096.\n' - 'Value of root.wellbores.ProducedTemperature.value[186] changed from ' - '220.43629142830196 to 249.8367118985404.\n' - 'Value of root.wellbores.ProducedTemperature.value[187] changed from ' - '220.34940516783317 to 249.73019937955846.\n' - 'Value of root.wellbores.ProducedTemperature.value[188] changed from ' - '220.26225314954928 to 249.62338029045898.\n' - 'Value of root.wellbores.ProducedTemperature.value[189] changed from ' - '220.1748411030929 to 249.51626156187587.\n' - 'Value of root.wellbores.ProducedTemperature.value[190] changed from ' - '220.08717469067486 to 249.40885003957467.\n' - 'Value of root.wellbores.ProducedTemperature.value[191] changed from ' - '219.99925950734533 to 249.30115248488931.\n' - 'Value of root.wellbores.ProducedTemperature.value[192] changed from ' - '219.91110108128703 to 249.19317557518463.\n' - 'Value of root.wellbores.ProducedTemperature.value[193] changed from ' - '219.8227048741303 to 249.0849259043413.\n' - 'Value of root.wellbores.ProducedTemperature.value[194] changed from ' - '219.73407628128783 to 248.97640998326276.\n' - 'Value of root.wellbores.ProducedTemperature.value[195] changed from ' - '219.64522063230885 to 248.8676342404025.\n' - 'Value of root.wellbores.ProducedTemperature.value[196] changed from ' - '219.5561431912505 to 248.75860502231015.\n' - 'Value of root.wellbores.ProducedTemperature.value[197] changed from ' - '219.4668491570664 to 248.64932859419503.\n' - 'Value of root.wellbores.ProducedTemperature.value[198] changed from ' - '219.3773436640102 to 248.53981114050637.\n' - 'Value of root.wellbores.ProducedTemperature.value[199] changed from ' - '219.2876317820541 to 248.4300587655287.\n' - 'Value of root.wellbores.ProducedTemperature.value[200] changed from ' - '219.1977185173207 to 248.32007749399096.\n' - 'Value of root.wellbores.ProducedTemperature.value[201] changed from ' - '219.1076088125276 to 248.2098732716889.\n' - 'Value of root.wellbores.ProducedTemperature.value[202] changed from ' - '219.0173075474436 to 248.0994519661193.\n' - 'Value of root.wellbores.ProducedTemperature.value[203] changed from ' - '218.92681953935585 to 247.9888193671249.\n' - 'Value of root.wellbores.ProducedTemperature.value[204] changed from ' - '218.8361495435469 to 247.87798118754998.\n' - 'Value of root.wellbores.ProducedTemperature.value[205] changed from ' - '218.74530225378146 to 247.7669430639044.\n' - 'Value of root.wellbores.ProducedTemperature.value[206] changed from ' - '218.65428230280088 to 247.65571055703592.\n' - 'Value of root.wellbores.ProducedTemperature.value[207] changed from ' - '218.5630942628264 to 247.5442891528105.\n' - 'Value of root.wellbores.ProducedTemperature.value[208] changed from ' - '218.47174264606878 to 247.43268426279863.\n' - 'Value of root.wellbores.ProducedTemperature.value[209] changed from ' - '218.38023190524444 to 247.32090122496777.\n' - 'Value of root.wellbores.ProducedTemperature.value[210] changed from ' - '218.28856643409833 to 247.2089453043803.\n' - 'Value of root.wellbores.ProducedTemperature.value[211] changed from ' - '218.19675056793068 to 247.0968216938954.\n' - 'Value of root.wellbores.ProducedTemperature.value[212] changed from ' - '218.1047885841296 to 246.9845355148755.\n' - 'Value of root.wellbores.ProducedTemperature.value[213] changed from ' - '218.01268470270745 to 246.87209181789535.\n' - 'Value of root.wellbores.ProducedTemperature.value[214] changed from ' - '217.9204430868404 to 246.75949558345425.\n' - 'Value of root.wellbores.ProducedTemperature.value[215] changed from ' - '217.82806784341219 to 246.64675172269028.\n' - 'Value of root.wellbores.ProducedTemperature.value[216] changed from ' - '217.73556302355942 to 246.53386507809614.\n' - 'Value of root.wellbores.ProducedTemperature.value[217] changed from ' - '217.64293262321993 to 246.42084042423627.\n' - 'Value of root.wellbores.ProducedTemperature.value[218] changed from ' - '217.55018058368273 to 246.3076824684643.\n' - 'Value of root.wellbores.ProducedTemperature.value[219] changed from ' - '217.45731079213934 to 246.1943958516412.\n' - 'Value of root.wellbores.ProducedTemperature.value[220] changed from ' - '217.3643270822363 to 246.08098514885273.\n' - 'Value of root.wellbores.ProducedTemperature.value[221] changed from ' - '217.2712332346278 to 245.96745487012674.\n' - 'Value of root.wellbores.ProducedTemperature.value[222] changed from ' - '217.17803297753017 to 245.85380946114932.\n' - 'Value of root.wellbores.ProducedTemperature.value[223] changed from ' - '217.08472998727427 to 245.74005330397927.\n' - 'Value of root.wellbores.ProducedTemperature.value[224] changed from ' - '216.99132788885962 to 245.6261907177617.\n' - 'Value of root.wellbores.ProducedTemperature.value[225] changed from ' - '216.8978302565064 to 245.5122259594387.\n' - 'Value of root.wellbores.ProducedTemperature.value[226] changed from ' - '216.80424061420777 to 245.39816322445847.\n' - 'Value of root.wellbores.ProducedTemperature.value[227] changed from ' - '216.71056243628018 to 245.28400664748165.\n' - 'Value of root.wellbores.ProducedTemperature.value[228] changed from ' - '216.6167991479132 to 245.16976030308433.\n' - 'Value of root.wellbores.ProducedTemperature.value[229] changed from ' - '216.5229541257168 to 245.0554282064588.\n' - 'Value of root.wellbores.ProducedTemperature.value[230] changed from ' - '216.42903069826767 to 244.94101431411048.\n' - 'Value of root.wellbores.ProducedTemperature.value[231] changed from ' - '216.33503214665296 to 244.8265225245511.\n' - 'Value of root.wellbores.ProducedTemperature.value[232] changed from ' - '216.24096170501218 to 244.71195667898886.\n' - 'Value of root.wellbores.ProducedTemperature.value[233] changed from ' - '216.14682256107662 to 244.59732056201375.\n' - 'Value of root.wellbores.ProducedTemperature.value[234] changed from ' - '216.05261785670567 to 244.4826179022793.\n' - 'Value of root.wellbores.ProducedTemperature.value[235] changed from ' - '215.9583506884216 to 244.3678523731799.\n' - 'Value of root.wellbores.ProducedTemperature.value[236] changed from ' - '215.86402410794008 to 244.25302759352365.\n' - 'Value of root.wellbores.ProducedTemperature.value[237] changed from ' - '215.76964112269874 to 244.13814712820064.\n' - 'Value of root.wellbores.ProducedTemperature.value[238] changed from ' - '215.67520469638194 to 244.02321448884618.\n' - 'Value of root.wellbores.ProducedTemperature.value[239] changed from ' - '215.58071774944247 to 243.90823313449977.\n' - 'Value of root.wellbores.ProducedTemperature.value[240] changed from ' - '215.48618315962005 to 243.7932064722584.\n' - 'Value of root.wellbores.ProducedTemperature.value[241] changed from ' - '215.39160376245576 to 243.6781378579251.\n' - 'Value of root.wellbores.ProducedTemperature.value[242] changed from ' - '215.29698235180356 to 243.5630305966523.\n' - 'Value of root.wellbores.ProducedTemperature.value[243] changed from ' - '215.2023216803376 to 243.44788794358013.\n' - 'Value of root.wellbores.ProducedTemperature.value[244] changed from ' - '215.10762446005566 to 243.33271310446838.\n' - 'Value of root.wellbores.ProducedTemperature.value[245] changed from ' - '215.0128933627794 to 243.2175092363243.\n' - 'Value of root.wellbores.ProducedTemperature.value[246] changed from ' - '214.91813102064984 to 243.10227944802395.\n' - 'Value of root.wellbores.ProducedTemperature.value[247] changed from ' - '214.8233400266192 to 242.98702680092842.\n' - 'Value of root.wellbores.ProducedTemperature.value[248] changed from ' - '214.72852293493892 to 242.8717543094942.\n' - 'Value of root.wellbores.ProducedTemperature.value[249] changed from ' - '214.633682261643 to 242.75646494187785.\n' - 'Value of root.wellbores.ProducedTemperature.value[250] changed from ' - '214.5388204850274 to 242.64116162053537.\n' - 'Value of root.wellbores.ProducedTemperature.value[251] changed from ' - '214.4439400461254 to 242.52584722281497.\n' - 'Value of root.wellbores.ProducedTemperature.value[252] changed from ' - '214.34904334917843 to 242.4105245815449.\n' - 'Value of root.wellbores.ProducedTemperature.value[253] changed from ' - '214.25413276210273 to 242.29519648561498.\n' - 'Value of root.wellbores.ProducedTemperature.value[254] changed from ' - '214.1592106169515 to 242.17986568055224.\n' - 'Value of root.wellbores.ProducedTemperature.value[255] changed from ' - '214.06427921037286 to 242.0645348690911.\n' - 'Value of root.wellbores.ProducedTemperature.value[256] changed from ' - '213.96934080406314 to 241.94920671173713.\n' - 'Value of root.wellbores.ProducedTemperature.value[257] changed from ' - '213.87439762521646 to 241.83388382732537.\n' - 'Value of root.wellbores.ProducedTemperature.value[258] changed from ' - '213.77945186696874 to 241.71856879357267.\n' - 'Value of root.wellbores.ProducedTemperature.value[259] changed from ' - '213.6845056888382 to 241.6032641476238.\n' - 'Value of root.wellbores.ProducedTemperature.value[260] changed from ' - '213.58956121716133 to 241.4879723865918.\n' - 'Value of root.wellbores.ProducedTemperature.value[261] changed from ' - '213.4946205455236 to 241.37269596809324.\n' - 'Value of root.wellbores.ProducedTemperature.value[262] changed from ' - '213.39968573518652 to 241.25743731077603.\n' - 'Value of root.wellbores.ProducedTemperature.value[263] changed from ' - '213.3047588155102 to 241.1421987948428.\n' - 'Value of root.wellbores.ProducedTemperature.value[264] changed from ' - '213.20984178437084 to 241.02698276256788.\n' - 'Value of root.wellbores.ProducedTemperature.value[265] changed from ' - '213.11493660857425 to 240.91179151880786.\n' - 'Value of root.wellbores.ProducedTemperature.value[266] changed from ' - '213.02004522426472 to 240.79662733150758.\n' - 'Value of root.wellbores.ProducedTemperature.value[267] changed from ' - '212.92516953732948 to 240.68149243219924.\n' - 'Value of root.wellbores.ProducedTemperature.value[268] changed from ' - '212.83031142379886 to 240.56638901649626.\n' - 'Value of root.wellbores.ProducedTemperature.value[269] changed from ' - '212.73547273024167 to 240.45131924458107.\n' - 'Value of root.wellbores.ProducedTemperature.value[270] changed from ' - '212.64065527415633 to 240.3362852416877.\n' - 'Value of root.wellbores.ProducedTemperature.value[271] changed from ' - '212.54586084435806 to 240.221289098578.\n' - 'Value of root.wellbores.ProducedTemperature.value[272] changed from ' - '212.45109120136055 to 240.10633287201293.\n' - 'Value of root.wellbores.ProducedTemperature.value[273] changed from ' - '212.35634807775452 to 239.9914185852173.\n' - 'Value of root.wellbores.ProducedTemperature.value[274] changed from ' - '212.26163317858118 to 239.87654822833994.\n' - 'Value of root.wellbores.ProducedTemperature.value[275] changed from ' - '212.16694818170154 to 239.76172375890772.\n' - 'Value of root.wellbores.ProducedTemperature.value[276] changed from ' - '212.07229473816133 to 239.6469471022739.\n' - 'Value of root.wellbores.ProducedTemperature.value[277] changed from ' - '211.97767447255202 to 239.53222015206157.\n' - 'Value of root.wellbores.ProducedTemperature.value[278] changed from ' - '211.88308898336697 to 239.41754477060118.\n' - 'Value of root.wellbores.ProducedTemperature.value[279] changed from ' - '211.78853984335402 to 239.3029227893628.\n' - 'Value of root.wellbores.ProducedTemperature.value[280] changed from ' - '211.6940285998632 to 239.1883560093831.\n' - 'Value of root.wellbores.ProducedTemperature.value[281] changed from ' - '211.5995567751909 to 239.07384620168693.\n' - 'Value of root.wellbores.ProducedTemperature.value[282] changed from ' - '211.50512586691946 to 238.95939510770364.\n' - 'Value of root.wellbores.ProducedTemperature.value[283] changed from ' - '211.41073734825275 to 238.8450044396782.\n' - 'Value of root.wellbores.ProducedTemperature.value[284] changed from ' - '211.31639266834787 to 238.73067588107708.\n' - 'Value of root.wellbores.ProducedTemperature.value[285] changed from ' - '211.22209325264254 to 238.61641108698905.\n' - 'Value of root.wellbores.ProducedTemperature.value[286] changed from ' - '211.12784050317848 to 238.5022116845208.\n' - 'Value of root.wellbores.ProducedTemperature.value[287] changed from ' - '211.033635798921 to 238.38807927318766.\n' - 'Value of root.wellbores.ProducedTemperature.value[288] changed from ' - '210.93948049607465 to 238.2740154252991.\n' - 'Value of root.wellbores.ProducedTemperature.value[289] changed from ' - '210.84537592839442 to 238.1600216863395.\n' - 'Value of root.wellbores.ProducedTemperature.value[290] changed from ' - '210.75132340749386 to 238.0460995753438.\n' - 'Value of root.wellbores.ProducedTemperature.value[291] changed from ' - '210.65732422314872 to 237.93225058526852.\n' - 'Value of root.wellbores.ProducedTemperature.value[292] changed from ' - '210.56337964359702 to 237.8184761833579.\n' - 'Value of root.wellbores.ProducedTemperature.value[293] changed from ' - '210.46949091583542 to 237.704777811505.\n' - 'Value of root.wellbores.ProducedTemperature.value[294] changed from ' - '210.37565926591154 to 237.59115688660842.\n' - 'Value of root.wellbores.ProducedTemperature.value[295] changed from ' - '210.28188589921294 to 237.4776148009244.\n' - 'Value of root.wellbores.ProducedTemperature.value[296] changed from ' - '210.18817200075205 to 237.3641529224138.\n' - 'Value of root.wellbores.ProducedTemperature.value[297] changed from ' - '210.09451873544774 to 237.2507725950853.\n' - 'Value of root.wellbores.ProducedTemperature.value[298] changed from ' - '210.00092724840331 to 237.13747513933328.\n' - 'Value of root.wellbores.ProducedTemperature.value[299] changed from ' - '209.90739866518058 to 237.02426185227162.\n' - 'Value of root.wellbores.ProducedTemperature.value[300] changed from ' - '209.81393409207072 to 236.9111340080634.\n' - 'Value of root.wellbores.ProducedTemperature.value[301] changed from ' - '209.72053461636162 to 236.79809285824538.\n' - 'Value of root.wellbores.ProducedTemperature.value[302] changed from ' - '209.62720130660162 to 236.685139632049.\n' - 'Value of root.wellbores.ProducedTemperature.value[303] changed from ' - '209.5339352128598 to 236.57227553671657.\n' - 'Value of root.wellbores.ProducedTemperature.value[304] changed from ' - '209.44073736698326 to 236.45950175781348.\n' - 'Value of root.wellbores.ProducedTemperature.value[305] changed from ' - '209.34760878285047 to 236.34681945953616.\n' - 'Value of root.wellbores.ProducedTemperature.value[306] changed from ' - '209.25455045662167 to 236.2342297850159.\n' - 'Value of root.wellbores.ProducedTemperature.value[307] changed from ' - '209.16156336698612 to 236.12173385661862.\n' - 'Value of root.wellbores.ProducedTemperature.value[308] changed from ' - '209.0686484754058 to 236.00933277624054.\n' - 'Value of root.wellbores.ProducedTemperature.value[309] changed from ' - '208.9758067263558 to 235.89702762559997.\n' - 'Value of root.wellbores.ProducedTemperature.value[310] changed from ' - '208.88303904756216 to 235.78481946652502.\n' - 'Value of root.wellbores.ProducedTemperature.value[311] changed from ' - '208.79034635023578 to 235.67270934123746.\n' - 'Value of root.wellbores.ProducedTemperature.value[312] changed from ' - '208.69772952930393 to 235.56069827263286.\n' - 'Value of root.wellbores.ProducedTemperature.value[313] changed from ' - '208.60518946363817 to 235.44878726455684.\n' - 'Value of root.wellbores.ProducedTemperature.value[314] changed from ' - '208.51272701627977 to 235.3369773020775.\n' - 'Value of root.wellbores.ProducedTemperature.value[315] changed from ' - '208.42034303466139 to 235.22526935175415.\n' - 'Value of root.wellbores.ProducedTemperature.value[316] changed from ' - '208.32803835082657 to 235.11366436190235.\n' - 'Value of root.wellbores.ProducedTemperature.value[317] changed from ' - '208.235813781646 to 235.00216326285582.\n' - 'Value of root.wellbores.ProducedTemperature.value[318] changed from ' - '208.1436701290306 to 234.8907669672239.\n' - 'Value of root.wellbores.ProducedTemperature.value[319] changed from ' - '208.05160818014232 to 234.7794763701461.\n' - 'Value of root.wellbores.ProducedTemperature.value[320] changed from ' - '207.95962870760167 to 234.66829234954304.\n' - 'Value of root.wellbores.ProducedTemperature.value[321] changed from ' - '207.86773246969267 to 234.55721576636392.\n' - 'Value of root.wellbores.ProducedTemperature.value[322] changed from ' - '207.77592021056492 to 234.44624746483063.\n' - 'Value of root.wellbores.ProducedTemperature.value[323] changed from ' - '207.68419266043318 to 234.33538827267836.\n' - 'Value of root.wellbores.ProducedTemperature.value[324] changed from ' - '207.59255053577405 to 234.22463900139311.\n' - 'Value of root.wellbores.ProducedTemperature.value[325] changed from ' - '207.50099453951998 to 234.11400044644563.\n' - 'Value of root.wellbores.ProducedTemperature.value[326] changed from ' - '207.40952536125093 to 234.00347338752277.\n' - 'Value of root.wellbores.ProducedTemperature.value[327] changed from ' - '207.31814367738315 to 233.89305858875463.\n' - 'Value of root.wellbores.ProducedTemperature.value[328] changed from ' - '207.22685015135553 to 233.7827567989396.\n' - 'Value of root.wellbores.ProducedTemperature.value[329] changed from ' - '207.13564543381352 to 233.67256875176577.\n' - 'Value of root.wellbores.ProducedTemperature.value[330] changed from ' - '207.04453016279027 to 233.56249516602907.\n' - 'Value of root.wellbores.ProducedTemperature.value[331] changed from ' - '206.95350496388582 to 233.45253674584885.\n' - 'Value of root.wellbores.ProducedTemperature.value[332] changed from ' - '206.86257045044317 to 233.34269418088056.\n' - 'Value of root.wellbores.ProducedTemperature.value[333] changed from ' - '206.77172722372262 to 233.2329681465247.\n' - 'Value of root.wellbores.ProducedTemperature.value[334] changed from ' - '206.68097587307335 to 233.1233593041337.\n' - 'Value of root.wellbores.ProducedTemperature.value[335] changed from ' - '206.5903169761028 to 233.01386830121564.\n' - 'Value of root.wellbores.ProducedTemperature.value[336] changed from ' - '206.4997510988437 to 232.90449577163497.\n' - 'Value of root.wellbores.ProducedTemperature.value[337] changed from ' - '206.4092787959188 to 232.79524233581074.\n' - 'Value of root.wellbores.ProducedTemperature.value[338] changed from ' - '206.31890061070362 to 232.68610860091175.\n' - 'Value of root.wellbores.ProducedTemperature.value[339] changed from ' - '206.22861707548637 to 232.57709516104936.\n' - 'Value of root.wellbores.ProducedTemperature.value[340] changed from ' - '206.1384287116265 to 232.46820259746724.\n' - 'Value of root.wellbores.ProducedTemperature.value[341] changed from ' - '206.04833602971027 to 232.35943147872877.\n' - 'Value of root.wellbores.ProducedTemperature.value[342] changed from ' - '205.95833952970492 to 232.2507823609017.\n' - 'Value of root.wellbores.ProducedTemperature.value[343] changed from ' - '205.8684397011102 to 232.1422557877401.\n' - 'Value of root.wellbores.ProducedTemperature.value[344] changed from ' - '205.77863702310805 to 232.03385229086425.\n' - 'Value of root.wellbores.ProducedTemperature.value[345] changed from ' - '205.68893196471026 to 231.92557238993732.\n' - 'Value of root.wellbores.ProducedTemperature.value[346] changed from ' - '205.5993249849041 to 231.8174165928402.\n' - 'Value of root.wellbores.ProducedTemperature.value[347] changed from ' - '205.50981653279564 to 231.70938539584358.\n' - 'Value of root.wellbores.ProducedTemperature.value[348] changed from ' - '205.42040704775172 to 231.60147928377765.\n' - 'Value of root.wellbores.ProducedTemperature.value[349] changed from ' - '205.3310969595394 to 231.4936987301997.\n' - 'Value of root.wellbores.ProducedTemperature.value[350] changed from ' - '205.24188668846386 to 231.38604419755868.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[0] " - 'changed from 1094347079.865682 to 1325446456.6576545.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[1] " - 'changed from 1094347079.8105743 to 1325446456.5648806.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[2] " - 'changed from 1094346994.933417 to 1325446327.7752042.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[3] " - 'changed from 1094343059.4363928 to 1325440675.5426247.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[4] " - 'changed from 1094304190.4532602 to 1325386842.4692135.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[5] " - 'changed from 1094137962.4101267 to 1325162477.4148467.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[6] " - 'changed from 1093700481.1198754 to 1324582976.7358584.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[7] " - 'changed from 1092843565.26182 to 1323463714.5302563.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[8] " - 'changed from 1091453425.0809498 to 1321667487.7916625.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[9] " - 'changed from 1089464669.4355264 to 1319119583.9049146.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[10] " - 'changed from 1086856912.105105 to 1315801536.3084433.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[11] " - 'changed from 1083644223.658538 to 1311736843.994545.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[12] " - 'changed from 1079863735.54063 to 1306976341.2544644.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[13] " - 'changed from 1075566067.5941176 to 1301586256.002384.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[14] " - 'changed from 1070808221.8285382 to 1295639536.448519.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[15] " - 'changed from 1065648718.3653375 to 1289210035.0408473.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[16] " - 'changed from 1060144488.7552577 to 1282368878.5660303.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[17] " - 'changed from 1054349041.2207874 to 1275182391.1501865.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[18] " - 'changed from 1048311499.2082274 to 1267711065.5080104.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[19] " - 'changed from 1042076214.6451665 to 1260009212.004246.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[20] " - 'changed from 1035682743.7544156 to 1252125026.588169.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[21] " - 'changed from 1029166039.9752918 to 1244100902.650823.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[22] " - 'changed from 1022556767.0231023 to 1235973871.8493443.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[23] " - 'changed from 1015881669.101683 to 1227776100.4016397.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[24] " - 'changed from 1009163958.5245475 to 1219535395.344904.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[25] " - 'changed from 1002423696.592864 to 1211275693.7970855.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[26] " - 'changed from 995678153.8625153 to 1203017520.3334181.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[27] " - 'changed from 988942142.5954907 to 1194778405.298354.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[28] " - 'changed from 982228318.4165369 to 1186573261.67598.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[29] " - 'changed from 975547450.7999653 to 1178414721.033072.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[30] " - 'changed from 968908663.5487772 to 1170313430.6977515.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[31] " - 'changed from 962319647.2730849 to 1162278315.190175.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[32] " - 'changed from 955786846.2774194 to 1154316805.2756505.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[33] " - 'changed from 949315622.393206 to 1146435038.0596113.\n' - "Value of root.surfaceplant.ParameterDict['annual heat production'].value[34] " - 'changed from 942910398.2527815 to 1138638031.4144526.\n' - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[0] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[1] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[2] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[3] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[4] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[5] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[6] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[7] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[8] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[9] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[10] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[11] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[12] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[13] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[14] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[15] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[16] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[17] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[18] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[19] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[20] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[21] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[22] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[23] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[24] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[25] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[26] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[27] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[28] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[29] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[30] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[31] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[32] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[33] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.ParameterDict['annual electricity " - "production'].value[34] changed from 1412103.6176849776 to 456044.463822447.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[0] changed from 166831172.04817635 to 225677090.1138359.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[1] changed from 166831172.03475925 to " - '225677090.08701667.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[2] changed from 166831151.37018326 to " - '225677052.85729775.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[3] changed from 166830193.21907812 to 225675418.9510872.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[4] changed from 166820730.24765685 to " - '225659857.72613624.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[5] changed from 166780264.60626024 to " - '225595009.43721965.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[6] changed from 166673795.32537508 to 225427570.2703053.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[7] changed from 166465366.61184788 to 225104389.530303.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[8] changed from 166127569.36441877 to " - '224586326.40188456.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[9] changed from 165645014.1096584 to 223852701.74364728.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[10] changed from 165013513.05476353 to " - '222899493.78717175.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[11] changed from 164237466.6943281 to " - '221735123.25245655.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[12] changed from 163327012.1982563 to " - '220376089.80488262.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[13] changed from 162295608.23315853 to " - '218843378.94007367.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[14] changed from 161158229.7967185 to 217159833.7529033.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[15] changed from 159930126.8110413 to " - '215348384.58721793.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[16] changed from 158626030.1557766 to 213430943.7902981.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[17] changed from 157259684.9011058 to " - '211427778.04768994.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[18] changed from 155843610.0638453 to 209357205.8392292.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[19] changed from 154389008.32184893 to " - '207235506.32407582.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[20] changed from 152905770.60620236 to " - '205076959.13736564.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[21] changed from 151402537.41378662 to " - '202893960.1093149.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[22] changed from 149886791.1873842 to " - '200697176.46803004.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[23] changed from 148364962.9974544 to " - '198495718.09170744.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[24] changed from 146842542.90841648 to " - '196297310.26232967.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[25] changed from 145324187.5780525 to 194108459.3201124.\n" - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[26] changed from 143813821.40805247 to " - '191934606.52026004.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[27] changed from 142314729.3688268 to " - '189780267.89921403.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[28] changed from 140829640.77082568 to " - '187649159.52322698.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[29] changed from 139360803.96333137 to " - '185544308.43371445.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[30] changed from 137910052.35860395 to " - '183468150.1369218.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[31] changed from 136478862.40564975 to " - '181422613.7556232.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[32] changed from 135068404.24218696 to " - '179409196.06515306.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[33] changed from 133679585.78134061 to " - '177429025.63954678.\n' - "Value of root.surfaceplant.OutputParameterDict['Total Electricity " - "Generation'].value[34] changed from 132313090.9716053 to " - '175482918.27821928.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[0] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[1] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[2] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[3] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[4] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[5] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[6] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[7] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[8] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[9] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[10] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[11] changed from 20.981617000316003 to " - '28.566850031711493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[12] changed from 20.9816170003159 to 28.566850031711354.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[13] changed from 20.98161700031555 to " - '28.566850031710477.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[14] changed from 20.981617000312326 to " - '28.56685003170339.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[15] changed from 20.98161700029267 to 28.56685003166033.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[16] changed from 20.981617000195367 to " - '28.56685003145383.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[17] changed from 20.981616999800465 to " - '28.566850030635397.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[18] changed from 20.981616998437477 to " - '28.56685002787008.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[19] changed from 20.98161699433382 to " - '28.566850019701576.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[20] changed from 20.98161698332865 to " - '28.566849998168106.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[21] changed from 20.981616956594458 to " - '28.566849946663684.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[22] changed from 20.98161689695219 to 28.56684983336915.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[23] changed from 20.981616773362614 to " - '28.56684960160364.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[24] changed from 20.98161653323088 to 28.56684915656624.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[25] changed from 20.98161609227832 to " - '28.566848348155695.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[26] changed from 20.9816153218889 to 28.56684694982997.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[27] changed from 20.98161403402304 to " - '28.566844633762965.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[28] changed from 20.98161196396933 to 28.56684094284727.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[29] changed from 20.981608751367997 to " - '28.566835260329242.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[30] changed from 20.981603920067204 to " - '28.566826778040188.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[31] changed from 20.9815968574502 to 28.566814464289468.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[32] changed from 20.98158679391602 to 28.56679703250543.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[33] changed from 20.981572783178517 to " - '28.56677291167045.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[34] changed from 20.981553684009466 to " - '28.566740219491493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[35] changed from 20.98152814397268 to " - '28.566696739110213.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[36] changed from 20.98149458560074 to 28.56663989998291.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[37] changed from 20.981451195360272 to " - '28.566566763390743.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[38] changed from 20.9813959156379 to 28.566474012850772.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[39] changed from 20.981326439875858 to " - '28.566357949538737.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[40] changed from 20.981240210882092 to " - '28.566214492678746.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[41] changed from 20.981134422253472 to " - '28.566039184722115.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[42] changed from 20.98100602277675 to 28.56582720103391.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[43] changed from 20.98085172360845 to 28.56557336371779.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[44] changed from 20.980668007989447 to " - '28.56527215915184.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[45] changed from 20.980451143220115 to " - '28.564917758766306.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[46] changed from 20.980197194594147 to " - '28.56450404257255.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[47] changed from 20.979902040987252 to " - '28.564024624949212.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[48] changed from 20.979561391791698 to " - '28.56347288219883.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[49] changed from 20.97917080489439 to 28.56284198140702.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[50] changed from 20.97872570541385 to " - '28.562124910164915.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[51] changed from 20.978221404922294 to " - '28.561314506745312.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[52] changed from 20.977653120906925 to " - '28.56040349036703.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[53] changed from 20.9770159962432 to 28.559384491210555.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[54] changed from 20.976305118477136 to " - '28.558250079899512.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[55] changed from 20.975515538742556 to " - '28.556992796194606.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[56] changed from 20.97464229015722 to " - '28.555605176687905.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[57] changed from 20.97368040557062 to 28.55407978132087.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[58] changed from 20.972624934555906 to " - '28.55240921858741.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[59] changed from 20.971470959560424 to " - '28.550586169309852.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[60] changed from 20.970213611146743 to " - '28.548603408907947.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[61] changed from 20.968848082276985 to " - '28.546453828105975.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[62] changed from 20.96736964160591 to 28.54413045204662.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[63] changed from 20.965773645763235 to " - '28.541626457799335.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[64] changed from 20.964055550619857 to " - '28.53893519027006.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[65] changed from 20.9622109215397 to 28.536050176532136.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[66] changed from 20.960235442631923 to " - '28.532965138612873.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[67] changed from 20.95812492502338 to " - '28.529674004779583.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[68] changed from 20.95587531417858 to " - '28.526170919376728.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[69] changed from 20.953482696299947 to " - '28.522450251274513.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[70] changed from 20.95094330384506 to 28.51850660099228.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[71] changed from 20.948253520199643 to " - '28.514334806565344.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[72] changed from 20.94540988355031 to " - '28.509929948223814.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[73] changed from 20.94240908999938 to " - '28.505287351959378.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[74] changed from 20.939247995966554 to " - '28.50040259204641.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[75] changed from 20.935923619923695 to " - '28.495271492595712.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[76] changed from 20.93243314350676 to " - '28.489890128207403.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[77] changed from 20.92877391204952 to 28.48425482379451.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[78] changed from 20.92494343458315 to 28.47836215364625.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[79] changed from 20.920939383343498 to " - '28.47220893979422.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[80] changed from 20.916759592829465 to " - '28.46579224974686.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[81] changed from 20.912402058448627 to " - '28.459109393650653.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[82] changed from 20.907864934791828 to " - '28.452157920937836.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[83] changed from 20.903146533571494 to " - '28.444935616513458.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[84] changed from 20.89824532125759 to " - '28.437440496534276.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[85] changed from 20.893159916446464 to " - '28.429670803828156.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[86] changed from 20.887889086990572 to " - '28.421625003000212.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[87] changed from 20.882431746920613 to " - '28.413301775266152.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[88] changed from 20.876786953185906 to " - '28.404700013056733.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[89] changed from 20.870953902239638 to " - '28.395818814426235.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[90] changed from 20.86493192649153 to " - '28.386657477302325.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[91] changed from 20.85872049065129 to " - '28.377215493606702.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[92] changed from 20.85231918798239 to " - '28.367492543278946.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[93] changed from 20.845727736485657 to " - '28.357488488226135.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[94] changed from 20.83894597502968 to " - '28.347203366227326.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[95] changed from 20.831973859444165 to " - '28.33663738481167.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[96] changed from 20.824811458591142 to " - '28.325790915133524.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[97] changed from 20.817458950426904 to " - '28.314664485860447.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[98] changed from 20.80991661806697 to " - '28.303258777093053.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[99] changed from 20.80218484586537 to " - '28.291574614329352.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[100] changed from 20.794264115517777 to " - '28.27961296249092.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[101] changed from 20.786155002197496 to " - '28.267374920017286.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[102] changed from 20.777858170732472 to " - '28.25486171304432.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[103] changed from 20.76937437183006 to " - '28.24207468967288.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[104] changed from 20.76070443835638 to 28.229015314338.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[105] changed from 20.75184928167508 to " - '28.21568516228237.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[106] changed from 20.74280988805096 to " - '28.202085914144625.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[107] changed from 20.733587315122513 to " - '28.188219350663445.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[108] changed from 20.724182688445964 to " - '28.17408734750521.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[109] changed from 20.714597198116394 to " - '28.159691870215703.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[110] changed from 20.704832095464567 to " - '28.145034969300315.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[111] changed from 20.694888689835473 to " - '28.130118775435676.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[112] changed from 20.684768345447452 to " - '28.114945494811572.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[113] changed from 20.67447247833454 to " - '28.09951740460682.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[114] changed from 20.664002553372406 to " - '28.08383684859895.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[115] changed from 20.65336008138814 to " - '28.06790623290564.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[116] changed from 20.642546616355208 to " - '28.05172802186225.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[117] changed from 20.631563752672008 to " - '28.035304734028323.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[118] changed from 20.62041312252563 to " - '28.018638938329826.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[119] changed from 20.609096393338763 to " - '28.001733250327536.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[120] changed from 20.597615265299876 to " - '27.98459032861789.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[121] changed from 20.58597146897587 to " - '27.967212871358647.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[122] changed from 20.57416676300625 to " - '27.949603612920324.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[123] changed from 20.562202931876975 to " - '27.931765320661622.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[124] changed from 20.550081783774576 to " - '27.913700791824304.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[125] changed from 20.53780514851645 to " - '27.89541285054819.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[126] changed from 20.52537487555925 to " - '27.876904345000238.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[127] changed from 20.512792832080695 to " - '27.858178144619693.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[128] changed from 20.500060901135956 to " - '27.839237137472207.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[129] changed from 20.487180979885288 to " - '27.820084227712567.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[130] changed from 20.47415497789157 to " - '27.800722333153928.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[131] changed from 20.46098481548692 to " - '27.78115438293931.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[132] changed from 20.44767242220602 to " - '27.761383315312724.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[133] changed from 20.434219735284668 to " - '27.741412075488824.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[134] changed from 20.420628698220927 to " - '27.721243613615403.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[135] changed from 20.406901259399337 to " - '27.700880882830077.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[136] changed from 20.39303937077396 to " - '27.680326837403722.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[137] changed from 20.379044986610406 to " - '27.65958443097179.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[138] changed from 20.364920062284046 to " - '27.638656614848998.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[139] changed from 20.350666553133138 to " - '27.617546336424255.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[140] changed from 20.336286413365357 to " - '27.596256537635526.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[141] changed from 20.32178159501578 to " - '27.57479015351895.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[142] changed from 20.30715404695431 to " - '27.55315011083256.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[143] changed from 20.292405713942145 to " - '27.53133932674977.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[144] changed from 20.277538535734582 to " - '27.509360707621646.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[145] changed from 20.262554446228677 to " - '27.487217147805868.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[146] changed from 20.247455372655033 to " - '27.464911528557653.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[147] changed from 20.2322432348114 to " - '27.442446716983774.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[148] changed from 20.216919944336627 to " - '27.419825565054207.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[149] changed from 20.20148740402506 to " - '27.397050908671847.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[150] changed from 20.185947507176433 to " - '27.37412556679646.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[151] changed from 20.170302136984958 to " - '27.351052340620782.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[152] changed from 20.154553165961477 to " - '27.327834012798977.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[153] changed from 20.13870245539001 to " - '27.30447334672164.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[154] changed from 20.122751854817267 to " - '27.280973085839765.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[155] changed from 20.106703201572596 to " - '27.257335953032086.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[156] changed from 20.090558320319094 to " - '27.233564650016177.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[157] changed from 20.07431902263256 to " - '27.209661856801393.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[158] changed from 20.057987106608948 to " - '27.185630231181086.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[159] changed from 20.041564356498434 to " - '27.161472408262703.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[160] changed from 20.025052542364726 to " - '27.137191000035056.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[161] changed from 20.008453419769392 to " - '27.112788594970084.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[162] changed from 19.991768729479624 to " - '27.08826775765833.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[163] changed from 19.975000197198508 to " - '27.0636310284768.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[164] changed from 19.958149533317123 to " - '27.03888092328651.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[165] changed from 19.941218432687712 to " - '27.014019933160405.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[166] changed from 19.92420857441562 to " - '26.989050524139298.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[167] changed from 19.90712162167204 to " - '26.963975137013232.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[168] changed from 19.889959221523068 to " - '26.938796187130666.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[169] changed from 19.872723004777757 to " - '26.913516064229693.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[170] changed from 19.855414585852156 to " - '26.88813713229475.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[171] changed from 19.838035562648773 to " - '26.862661729433864.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[172] changed from 19.82058751645237 to " - '26.837092167777982.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[173] changed from 19.8030720118392 to 26.81143073339991.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[174] changed from 19.785490596600816 to " - '26.785679686253488.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[175] changed from 19.767844801680972 to " - '26.75984126012927.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[176] changed from 19.750136141124145 to " - '26.733917662629537.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[177] changed from 19.732366112038086 to " - '26.707911075158222.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[178] changed from 19.714536194565568 to " - '26.68182365292759.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[179] changed from 19.696647851868196 to " - '26.65565752497905.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[180] changed from 19.67870253012098 to " - '26.629414794218714.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[181] changed from 19.660701658514718 to " - '26.6030975374656.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[182] changed from 19.642646649270777 to " - '26.5767078055136.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[183] changed from 19.624538897661658 to " - '26.550247623203674.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[184] changed from 19.60637978204186 to " - '26.523718989509423.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[185] changed from 19.588170663886192 to " - '26.497123877631775.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[186] changed from 19.569912887835418 to " - '26.470464235104853.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[187] changed from 19.551607781749347 to " - '26.44374198391011.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[188] changed from 19.533256656766326 to " - '26.416959020600824.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[189] changed from 19.514860807369544 to " - '26.39011721643435.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[190] changed from 19.496421511458905 to " - '26.36321841751158.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[191] changed from 19.477940030428833 to " - '26.336264444925686.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[192] changed from 19.459417609251194 to " - '26.309257094915814.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[193] changed from 19.440855476563687 to " - '26.282198139028633.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[194] changed from 19.422254844762396 to " - '26.25508932428517.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[195] changed from 19.403616910099203 to " - '26.22793237335419.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[196] changed from 19.38494285278278 to " - '26.20072898472966.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[197] changed from 19.366233837084344 to " - '26.1734808329144.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[198] changed from 19.347491011446273 to " - '26.14618956860735.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[199] changed from 19.328715508594176 to " - '26.11885681889541.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[200] changed from 19.309908445652606 to " - '26.091484187449083.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[201] changed from 19.291070924263554 to " - '26.06407325472165.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[202] changed from 19.272204030706433 to " - '26.036625578151508.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[203] changed from 19.25330883602296 to " - '26.00914269236809.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[204] changed from 19.234386396141893 to " - '25.981626109399386.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[205] changed from 19.215437752007585 to " - '25.95407731888281.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[206] changed from 19.196463929709296 to " - '25.926497788277818.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[207] changed from 19.177465940613228 to " - '25.898888963080616.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[208] changed from 19.15844478149557 to " - '25.87125226704072.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[209] changed from 19.13940143467721 to " - '25.843589102378452.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[210] changed from 19.120336868159203 to " - '25.815900850004656.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[211] changed from 19.101252035760695 to " - '25.788188869740722.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[212] changed from 19.082147877256055 to " - '25.760454500539392.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[213] changed from 19.063025318514637 to " - '25.73269906070788.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[214] changed from 19.043885271639937 to " - '25.704923848129162.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[215] changed from 19.024728635110062 to " - '25.677130140485385.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[216] changed from 19.005556293918875 to " - '25.64931919548118.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[217] changed from 18.986369119716965 to " - '25.621492251067295.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[218] changed from 18.967167970953557 to " - '25.59365052566293.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[219] changed from 18.947953693018203 to " - '25.565795218379616.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[220] changed from 18.92872711838255 to " - '25.537927509244053.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[221] changed from 18.909489066742587 to " - '25.51004855942033.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[222] changed from 18.890240345160812 to " - '25.482159511432247.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[223] changed from 18.87098174820779 to " - '25.45426148938419.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[224] changed from 18.851714058103752 to " - '25.426355599182212.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[225] changed from 18.83243804486042 to " - '25.398442928754097.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[226] changed from 18.813154466421665 to " - '25.370524548267433.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[227] changed from 18.79386406880441 to " - '25.34260151034916.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[228] changed from 18.774567586238877 to " - '25.31467485030125.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[229] changed from 18.755265741308328 to " - '25.286745586317355.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[230] changed from 18.73595924508812 to " - '25.25881471969684.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[231] changed from 18.71664879728452 to " - '25.23088323505924.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[232] changed from 18.6973350863723 to " - '25.202952100555684.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[233] changed from 18.678018789732228 to " - '25.175022268079843.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[234] changed from 18.658700573787595 to " - '25.147094673477707.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[235] changed from 18.639381094139544 to " - '25.11917023675505.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[236] changed from 18.620060995702204 to " - '25.09124986228403.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[237] changed from 18.600740912837036 to " - '25.06333443900832.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[238] changed from 18.581421469485246 to " - '25.03542484064599.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[239] changed from 18.56210327930071 to " - '25.007521925891815.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[240] changed from 18.542786945780936 to " - '24.979626538616852.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[241] changed from 18.52347306239751 to " - '24.951739508066492.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[242] changed from 18.504162212725333 to " - '24.923861649058008.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[243] changed from 18.484854970571156 to " - '24.89599376217513.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[244] changed from 18.465551900100692 to " - '24.868136633960134.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[245] changed from 18.446253555965043 to " - '24.84029103710709.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[246] changed from 18.426960483425628 to " - '24.81245773064995.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[247] changed from 18.407673218478752 to " - '24.78463746015092.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[248] changed from 18.388392287978025 to " - '24.756830957886432.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[249] changed from 18.369118209756955 to " - '24.72903894303067.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[250] changed from 18.349851492748908 to " - '24.701262121838642.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[251] changed from 18.33059263710757 to " - '24.673501187825785.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[252] changed from 18.311342134325074 to " - '24.64575682194718.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[253] changed from 18.292100467349126 to " - '24.618029692773387.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[254] changed from 18.27286811069969 to " - '24.590320456665825.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[255] changed from 18.253645530583817 to " - '24.562629757949242.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[256] changed from 18.234433185009458 to " - '24.534958229083074.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[257] changed from 18.21523152389815 to " - '24.50730649082999.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[258] changed from 18.196040989197073 to " - '24.479675152423617.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[259] changed from 18.176862014988455 to " - '24.452064811733603.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[260] changed from 18.1576950275996 to " - '24.424476055428947.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[261] changed from 18.138540445710547 to " - '24.39690945913971.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[262] changed from 18.119398680461 to 24.369365587616972.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[263] changed from 18.100270135555775 to " - '24.34184499488978.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[264] changed from 18.08115520736951 to " - '24.314348224422044.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[265] changed from 18.062054285049932 to " - '24.286875809265876.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[266] changed from 18.042967750619894 to " - '24.25942827221439.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[267] changed from 18.02389597907824 to " - '24.232006125951948.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[268] changed from 18.004839338500112 to " - '24.204609873202212.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[269] changed from 17.985798190135068 to " - '24.177240006875472.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[270] changed from 17.96677288850442 to " - '24.149897010213795.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[271] changed from 17.94776378149819 to " - '24.12258135693287.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[272] changed from 17.928771210469886 to " - '24.095293511365178.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[273] changed from 17.909795510330728 to " - '24.068033928597867.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[274] changed from 17.89083700964207 to " - '24.040803054611494.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[275] changed from 17.871896030707937 to " - '24.01360132641554.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[276] changed from 17.85297288966508 to " - '23.986429172183307.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[277] changed from 17.834067896572737 to " - '23.959287011384276.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[278] changed from 17.815181355501082 to " - '23.932175254913872.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[279] changed from 17.796313564618618 to " - '23.905094305224456.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[280] changed from 17.77746481627813 to " - '23.878044556451293.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[281] changed from 17.758635397102022 to " - '23.851026394539062.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[282] changed from 17.73982558806663 to " - '23.82404019736566.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[283] changed from 17.721035664584658 to " - '23.797086334865007.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[284] changed from 17.70226589658774 to " - '23.770165169147294.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[285] changed from 17.68351654860688 to " - '23.74327705461887.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[286] changed from 17.66478787985245 to " - '23.71642233809941.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[287] changed from 17.64608014429324 to " - '23.689601358938162.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[288] changed from 17.627393590733796 to " - '23.662814449128568.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[289] changed from 17.60872846289164 to " - '23.636061933420773.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[290] changed from 17.590084999472776 to " - '23.609344129433264.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[291] changed from 17.571463434246443 to " - '23.58266134776283.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[292] changed from 17.55286399611917 to " - '23.556013892092775.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[293] changed from 17.534286909207225 to " - '23.529402059299894.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[294] changed from 17.51573239290899 to " - '23.50282613955956.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[295] changed from 17.497200661975057 to " - '23.476286416450026.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[296] changed from 17.47869192657888 to " - '23.449783167055003.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[297] changed from 17.460206392385572 to " - '23.42331666206425.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[298] changed from 17.441744260619764 to " - '23.396887165873746.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[299] changed from 17.42330572813277 to " - '23.370494936683397.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[300] changed from 17.404890987469223 to " - '23.34414022659456.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[301] changed from 17.38650022693197 to " - '23.317823281705312.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[302] changed from 17.368133630646593 to " - '23.29154434220418.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[303] changed from 17.349791378625266 to " - '23.265303642463966.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[304] changed from 17.331473646829245 to " - '23.23910141113228.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[305] changed from 17.313180607230475 to " - '23.21293787122241.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[306] changed from 17.294912427873026 to " - '23.186813240202188.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[307] changed from 17.276669272932903 to " - '23.16072773008127.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[308] changed from 17.25845130277748 to " - '23.13468154749832.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[309] changed from 17.24025867402398 to " - '23.10867489380547.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[310] changed from 17.22209153959706 to " - '23.082707965152576.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[311] changed from 17.203950048785913 to " - '23.056780952570207.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[312] changed from 17.18583434730011 to " - '23.030894042051052.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[313] changed from 17.16774457732489 to " - '23.005047414630102.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[314] changed from 17.149680877575925 to " - '22.979241246464255.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[315] changed from 17.13164338335281 to " - '22.95347570891032.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[316] changed from 17.113632226592078 to " - '22.927750968601664.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[317] changed from 17.095647535919948 to " - '22.902067187524626.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[318] changed from 17.077689436702897 to " - '22.8764245230928.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[319] changed from 17.05975805109923 to " - '22.850823128220934.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[320] changed from 17.041853498108992 to " - '22.82526315139725.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[321] changed from 17.023975893622907 to " - '22.799744736755407.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[322] changed from 17.0061253504718 to 22.77426802414445.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[323] changed from 16.988301978473782 to " - '22.74883314919876.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[324] changed from 16.970505884482 to 22.723440243406255.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[325] changed from 16.952737172431114 to " - '22.698089434175404.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[326] changed from 16.934995943383026 to " - '22.672780844902697.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[327] changed from 16.91728229557265 to " - '22.647514595036924.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[328] changed from 16.899596324452123 to " - '22.62229080014446.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[329] changed from 16.88193812273493 to " - '22.597109571972467.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[330] changed from 16.86430778043939 to " - '22.571971018511565.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[331] changed from 16.846705384931155 to " - '22.546875244057546.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[332] changed from 16.829131020965352 to " - '22.521822349272114.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[333] changed from 16.811584770728526 to " - '22.49681243124258.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[334] changed from 16.79406671387889 to " - '22.47184558354118.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[335] changed from 16.77657692758728 to " - '22.446921896282774.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[336] changed from 16.759115486576384 to " - '22.422041456182434.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[337] changed from 16.741682463160142 to " - '22.39720434661152.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[338] changed from 16.72427792728249 to " - '22.372410647653542.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[339] changed from 16.706901946555103 to " - '22.347660436158353.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[340] changed from 16.68955458629501 to " - '22.32295378579667.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[341] changed from 16.672235909561707 to " - '22.29829076711275.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[342] changed from 16.654945977193115 to " - '22.27367144757688.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[343] changed from 16.637684847841925 to " - '22.249095891636635.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[344] changed from 16.620452578010788 to " - '22.224564160767958.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[345] changed from 16.603249222086884 to " - '22.200076313524853.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[346] changed from 16.586074832376728 to " - '22.175632405588782.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[347] changed from 16.56892945913949 to " - '22.15123248981715.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[348] changed from 16.55181315062081 to " - '22.12687661629094.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[349] changed from 16.5347259530852 to " - '22.102564832361853.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Production'].value[350] changed from 16.51766791084872 to " - '22.07829718269861.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[0] changed from 165419068.43049133 to " - '225221045.65001345.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[1] changed from 165419068.4170743 to 225221045.62319425.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[2] changed from 165419047.75249824 to " - '225221008.39347532.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[3] changed from 165418089.6013931 to 225219374.48726478.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[4] changed from 165408626.6299719 to 225203813.2623138.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[5] changed from 165368160.98857522 to " - '225138964.97339723.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[6] changed from 165261691.70769006 to 224971525.8064829.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[7] changed from 165053262.9941629 to 224648345.06648055.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[8] changed from 164715465.74673384 to " - '224130281.93806207.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[9] changed from 164232910.49197346 to " - '223396657.27982485.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[10] changed from 163601409.43707857 to " - '222443449.3233493.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[11] changed from 162825363.0766431 to " - '221279078.78863412.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[12] changed from 161914908.5805713 to " - '219920045.34106013.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[13] changed from 160883504.6154736 to " - '218387334.47625118.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[14] changed from 159746126.17903355 to " - '216703789.28908086.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[15] changed from 158518023.19335628 to " - '214892340.12339547.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[16] changed from 157213926.53809163 to " - '212974899.32647565.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[17] changed from 155847581.28342083 to " - '210971733.58386752.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[18] changed from 154431506.44616035 to " - '208901161.37540674.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[19] changed from 152976904.7041639 to " - '206779461.86025336.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[20] changed from 151493666.98851743 to " - '204620914.6735432.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[21] changed from 149990433.79610163 to " - '202437915.6454924.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[22] changed from 148474687.5696992 to " - '200241132.00420758.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[23] changed from 146952859.37976944 to " - '198039673.62788504.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[24] changed from 145430439.29073155 to " - '195841265.79850718.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[25] changed from 143912083.9603675 to " - '193652414.85628995.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[26] changed from 142401717.7903675 to 191478562.0564376.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[27] changed from 140902625.75114185 to " - '189324223.43539158.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[28] changed from 139417537.15314066 to " - '187193115.05940452.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[29] changed from 137948700.3456464 to 185088263.969892.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[30] changed from 136497948.740919 to 183012105.67309934.\n" - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[31] changed from 135066758.78796476 to " - '180966569.29180077.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[32] changed from 133656300.62450197 to " - '178953151.60133058.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[33] changed from 132267482.16365564 to " - '176972981.17572433.\n' - "Value of root.surfaceplant.OutputParameterDict['Net Electricity " - "Generation'].value[34] changed from 130900987.35392034 to " - '175026873.81439683.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[0] " - 'changed from 93834106.57025869 to 121834901.03703542.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[1] " - 'changed from 93834106.56231956 to 121834901.02765305.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[2] " - 'changed from 93834094.33439766 to 121834888.00308456.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[3] " - 'changed from 93833527.3600652 to 121834316.38455978.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[4] " - 'changed from 93827927.42672591 to 121828871.77955167.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[5] " - 'changed from 93803974.94585605 to 121806173.16234332.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[6] " - 'changed from 93740909.6414029 to 121747499.26300849.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[7] " - 'changed from 93617270.61393705 to 121633988.28657046.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[8] " - 'changed from 93416389.57120258 to 121451313.14761288.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[9] " - 'changed from 93128349.9413553 to 121191121.29855631.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[10] " - 'changed from 92749489.63409857 to 120850401.4518542.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[11] " - 'changed from 92280922.89756572 to 120430113.13014057.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[12] " - 'changed from 91726969.7065309 to 119933822.07677707.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[13] " - 'changed from 91093855.02669382 to 119366613.79918045.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[14] " - 'changed from 90388754.75329588 to 118734320.80776092.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[15] " - 'changed from 89619148.3351723 to 118043011.76546931.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[16] " - 'changed from 88792406.60500015 to 117298673.52961412.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[17] " - 'changed from 87915546.7152051 to 116507025.76143631.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[18] " - 'changed from 86995100.04845743 to 115673422.60265239.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[19] " - 'changed from 86037053.6088111 to 114802809.53825028.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[20] " - 'changed from 85046837.46553236 to 113899714.05672209.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[21] " - 'changed from 84029339.81217004 to 112968256.16680768.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[22] " - 'changed from 82988937.55121242 to 112012169.8828444.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[23] " - 'changed from 81929534.6530822 to 111034830.12506007.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[24] " - 'changed from 80854603.43945664 to 110039281.64062221.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[25] " - 'changed from 79767225.84959355 to 109028267.93046159.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[26] " - 'changed from 78670132.98634717 to 108004259.0371021.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[27] " - 'changed from 77565742.02993207 to 106969477.59085709.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[28] " - 'changed from 76456190.10462967 to 105925922.8442622.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[29] " - 'changed from 75343364.98867811 to 104875392.62416176.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[30] " - 'changed from 74228932.73833859 to 103819503.24670015.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[31] " - 'changed from 73114362.39827323 to 102759707.50405033.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[32] " - 'changed from 72000948.02119635 to 101697310.86306264.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[33] " - 'changed from 70889828.23935905 to 100633486.02781992.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced'].value[34] " - 'changed from 69782003.63118193 to 99569286.01834619.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[0] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[1] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[2] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[3] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[4] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[5] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[6] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[7] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[8] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[9] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[10] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[11] " - 'changed from 138.80607304232393 to 168.11852570492832.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[12] " - 'changed from 138.8060730423238 to 168.11852570492803.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[13] " - 'changed from 138.80607304232223 to 168.118525704925.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[14] " - 'changed from 138.8060730423093 to 168.11852570490046.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[15] " - 'changed from 138.80607304222832 to 168.11852570475176.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[16] " - 'changed from 138.8060730418287 to 168.11852570403732.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[17] " - 'changed from 138.8060730402065 to 168.11852570120578.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[18] " - 'changed from 138.8060730346082 to 168.1185256916398.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[19] " - 'changed from 138.8060730177529 to 168.11852566338254.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[20] " - 'changed from 138.80607297255065 to 168.11852558889132.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[21] " - 'changed from 138.8060728627434 to 168.1185254107205.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[22] " - 'changed from 138.80607261777047 to 168.11852501879812.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[23] " - 'changed from 138.8060721101415 to 168.11852421704623.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[24] " - 'changed from 138.80607112383063 to 168.11852267751735.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[25] " - 'changed from 138.80606931267334 to 168.11851988096356.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[26] " - 'changed from 138.8060661483957 to 168.11851504370165.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[27] " - 'changed from 138.80606085864824 to 168.11850703167488.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[28] " - 'changed from 138.80605235616147 to 168.11849426359984.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[29] " - 'changed from 138.80603916080327 to 168.11847460592392.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[30] " - 'changed from 138.80601931683614 to 168.11844526292654.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[31] " - 'changed from 138.80599030801122 to 168.1184026656473.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[32] " - 'changed from 138.80594897328058 to 168.11834236340306.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[33] " - 'changed from 138.80589142587775 to 168.11825892150625.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[34] " - 'changed from 138.80581297832416 to 168.11814582844622.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[35] " - 'changed from 138.80570807561097 to 168.11799541530442.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[36] " - 'changed from 138.8055702384114 to 168.11779878959777.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[37] " - 'changed from 138.80539201773797 to 168.1175457851182.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[38] " - 'changed from 138.80516496200528 to 168.1172249287259.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[39] " - 'changed from 138.8048795970158 to 168.11682342446053.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[40] " - 'changed from 138.80452541897657 to 168.11632715481642.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[41] " - 'changed from 138.80409090029121 to 168.11572069856757.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[42] " - 'changed from 138.80356350756375 to 168.11498736415942.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[43] " - 'changed from 138.80292973100114 to 168.11410923739166.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[44] " - 'changed from 138.80217512420987 to 168.1130672419059.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[45] " - 'changed from 138.80128435324715 to 168.11184121085378.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[46] " - 'changed from 138.80024125370255 to 168.11040996804732.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[47] " - 'changed from 138.79902889454505 to 168.10875141687742.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[48] " - 'changed from 138.7976296474704 to 168.10684263531653.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[49] " - 'changed from 138.79602526051048 to 168.10465997538518.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[50] " - 'changed from 138.79419693472323 to 168.10217916556027.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[51] " - 'changed from 138.7921254028533 to 168.0993754147158.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[52] " - 'changed from 138.78979100894017 to 168.09622351631737.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[53] " - 'changed from 138.78717378794715 to 168.09269795172705.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[54] " - 'changed from 138.784253544583 to 168.08877299161514.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[55] " - 'changed from 138.78100993059064 to 168.08442279461391.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[56] " - 'changed from 138.77742251987723 to 168.0796215024814.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[57] " - 'changed from 138.77347088095775 to 168.07434333117158.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[58] " - 'changed from 138.76913464627447 to 168.06856265732702.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[59] " - 'changed from 138.7643935780432 to 168.06225409981852.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[60] " - 'changed from 138.75922763035493 to 168.0553925960581.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[61] " - 'changed from 138.75361700733453 to 168.04795347290008.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[62] " - 'changed from 138.74754221722372 to 168.0399125120266.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[63] " - 'changed from 138.74098412231208 to 168.03124600978222.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[64] " - 'changed from 138.73392398469156 to 168.02193083148393.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[65] " - 'changed from 138.72634350785415 to 168.01194446028327.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[66] " - 'changed from 138.71822487418936 to 168.0012650407035.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[67] " - 'changed from 138.70955077846983 to 167.9898714170059.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[68] " - 'changed from 138.70030445744115 to 167.97774316657416.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[69] " - 'changed from 138.69046971565075 to 167.96486062852273.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[70] " - 'changed from 138.6800309476707 to 167.95120492775703.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[71] " - 'changed from 138.66897315687967 to 167.93675799472334.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[72] " - 'changed from 138.65728197097957 to 167.9215025810945.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[73] " - 'changed from 138.64494365442997 to 167.90542227164374.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[74] " - 'changed from 138.6319451179843 to 167.88850149255774.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[75] " - 'changed from 138.61827392551604 to 167.8707255164419.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[76] " - 'changed from 138.60391829832042 to 167.85208046426337.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[77] " - 'changed from 138.5888671170762 to 167.83255330447687.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[78] " - 'changed from 138.57310992164705 to 167.81213184956604.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[79] " - 'changed from 138.55663690889884 to 167.7908047502302.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[80] " - 'changed from 138.53943892870254 to 167.76856148743312.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[81] " - 'changed from 138.52150747828586 to 167.7453923625238.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[82] " - 'changed from 138.50283469509037 to 167.72128848562787.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[83] " - 'changed from 138.48341334828388 to 167.69624176249667.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[84] " - 'changed from 138.46323682906888 to 167.67024487999424.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[85] " - 'changed from 138.44229913992186 to 167.6432912903862.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[86] " - 'changed from 138.42059488288987 to 167.61537519458997.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[87] " - 'changed from 138.39811924706248 to 167.58649152453066.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[88] " - 'changed from 138.37486799533045 to 167.55663592473968.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[89] " - 'changed from 138.35083745053515 to 167.5258047333223.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[90] " - 'changed from 138.3260244811044 to 167.49399496241068.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[91] " - 'changed from 138.30042648626497 to 167.46120427821043.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[92] " - 'changed from 138.27404138091342 to 167.42743098073962.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[93] " - 'changed from 138.2468675802225 to 167.39267398335076.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[94] " - 'changed from 138.21890398405225 to 167.35693279211912.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[95] " - 'changed from 138.19014996123033 to 167.320207485172.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[96] " - 'changed from 138.16060533376023 to 167.2824986920282.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[97] " - 'changed from 138.13027036100976 to 167.2438075730085.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[98] " - 'changed from 138.09914572392958 to 167.2041357987733.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[99] " - 'changed from 138.0672325093438 to 167.16348553003743.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[100] " - 'changed from 138.0345321943529 to 167.121859397505.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[101] " - 'changed from 138.00104663088365 to 167.07926048206585.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[102] " - 'changed from 137.96677803041737 to 167.03569229528594.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[103] " - 'changed from 137.93172894892442 to 166.9911587602234.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[104] " - 'changed from 137.89590227202882 to 166.94566419259633.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[105] " - 'changed from 137.85930120042505 to 166.89921328232398.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[106] " - 'changed from 137.8219292355651 to 166.851811075462.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[107] " - 'changed from 137.78379016563153 to 166.80346295654633.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[108] " - 'changed from 137.74488805181048 to 166.75417463136037.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[109] " - 'changed from 137.70522721487532 to 166.70395211013425.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[110] " - 'changed from 137.66481222209086 to 166.65280169118637.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[111] " - 'changed from 137.6236478744447 to 166.60072994501198.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[112] " - 'changed from 137.58173919421213 to 166.547743698823.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[113] " - 'changed from 137.53909141285814 to 166.49385002154216.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[114] " - 'changed from 137.4957099592797 to 166.4390562092509.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[115] " - 'changed from 137.45160044838977 to 166.38336977109174.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[116] " - 'changed from 137.40676867004277 to 166.32679841562185.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[117] " - 'changed from 137.36122057830167 to 166.26935003761557.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[118] " - 'changed from 137.31496228104476 to 166.2110327053114.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[119] " - 'changed from 137.26800002990905 to 166.1518546480976.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[120] " - 'changed from 137.22034021056828 to 166.09182424463245.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[121] " - 'changed from 137.17198933334086 to 166.0309500113902.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[122] " - 'changed from 137.1229540241235 to 165.9692405916276.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[123] " - 'changed from 137.0732410156458 to 165.90670474476212.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[124] " - 'changed from 137.02285713904084 to 165.8433513361544.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[125] " - 'changed from 136.97180931572498 to 165.77918932728574.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[126] " - 'changed from 136.92010454958208 to 165.71422776632264.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[127] " - 'changed from 136.8677499194453 to 165.64847577905894.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[128] " - 'changed from 136.81475257186966 to 165.58194256022674.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[129] " - 'changed from 136.7611197141898 to 165.51463736516553.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[130] " - 'changed from 136.7068586078544 to 165.44656950184213.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[131] " - 'changed from 136.6519765620323 to 165.37774832320983.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[132] " - 'changed from 136.59648092748174 to 165.30818321989858.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[133] " - 'changed from 136.54037909067657 to 165.23788361322653.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[134] " - 'changed from 136.48367846818198 to 165.16685894852193.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[135] " - 'changed from 136.42638650127282 to 165.09511868874878.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[136] " - 'changed from 136.36851065078756 to 165.0226723084237.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[137] " - 'changed from 136.31005839221055 to 164.9495292878172.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[138] " - 'changed from 136.25103721097625 to 164.8756991074292.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[139] " - 'changed from 136.19145459798762 to 164.80119124272903.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[140] " - 'changed from 136.131318045343 to 164.72601515915306.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[141] " - 'changed from 136.07063504226375 to 164.65018030734882.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[142] " - 'changed from 136.00941307121678 to 164.57369611865934.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[143] " - 'changed from 135.94765960422527 to 164.4965720008373.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[144] " - 'changed from 135.8853820993607 to 164.41881733398247.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[145] " - 'changed from 135.82258799741103 to 164.3404414666932.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[146] " - 'changed from 135.7592847187178 to 164.26145371242478.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[147] " - 'changed from 135.6954796601769 to 164.1818633460471.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[148] " - 'changed from 135.6311801923968 to 164.1016796005932.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[149] " - 'changed from 135.56639365700903 to 164.02091166419336.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[150] " - 'changed from 135.50112736412416 to 163.9395686771851.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[151] " - 'changed from 135.43538858992957 to 163.85765972939495.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[152] " - 'changed from 135.36918457442235 to 163.77519385758305.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[153] " - 'changed from 135.3025225192727 to 163.6921800430457.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[154] " - 'changed from 135.23540958581293 to 163.60862720936862.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[155] " - 'changed from 135.167852893147 to 163.52454422032503.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[156] " - 'changed from 135.09985951637606 to 163.43993987791345.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[157] " - 'changed from 135.0314364849352 to 163.35482292052825.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[158] " - 'changed from 134.96259078103725 to 163.26920202125822.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[159] " - 'changed from 134.89332933821905 to 163.18308578630763.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[160] " - 'changed from 134.82365903998635 to 163.09648275353484.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[161] " - 'changed from 134.7535867185529 to 163.0094013911026.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[162] " - 'changed from 134.68311915367016 to 162.92185009623662.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[163] " - 'changed from 134.6122630715438 to 162.83383719408639.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[164] " - 'changed from 134.54102514383328 to 162.74537093668462.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[165] " - 'changed from 134.46941198673076 to 162.65645950200053.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[166] " - 'changed from 134.39743016011653 to 162.56711099308285.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[167] " - 'changed from 134.32508616678697 to 162.47733343728902.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[168] " - 'changed from 134.2523864517525 to 162.38713478559544.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[169] " - 'changed from 134.1793374016019 to 162.2965229119867.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[170] " - 'changed from 134.10594534393022 to 162.20550561291878.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[171] " - 'changed from 134.03221654682793 to 162.1140906068531.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[172] " - 'changed from 133.9581572184276 to 162.02228553385888.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[173] " - 'changed from 133.8837735065065 to 161.93009795527956.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[174] " - 'changed from 133.8090714981415 to 161.83753535346023.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[175] " - 'changed from 133.73405721941478 to 161.7446051315339.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[176] " - 'changed from 133.6587366351676 to 161.65131461326334.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[177] " - 'changed from 133.58311564879935 to 161.5576710429351.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[178] " - 'changed from 133.5072001021107 to 161.46368158530402.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[179] " - 'changed from 133.43099577518777 to 161.3693533255851.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[180] " - 'changed from 133.35450838632642 to 161.2746932694907.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[181] " - 'changed from 133.27774359199248 to 161.17970834331038.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[182] " - 'changed from 133.2007069868198 to 161.0844053940308.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[183] " - 'changed from 133.12340410363996 to 160.98879118949472.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[184] " - 'changed from 133.04584041354525 to 160.89287241859566.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[185] " - 'changed from 132.96802132598185 to 160.7966556915073.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[186] " - 'changed from 132.88995218887166 to 160.70014753994468.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[187] " - 'changed from 132.81163828876123 to 160.60335441745625.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[188] " - 'changed from 132.73308485099693 to 160.50628269974519.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[189] " - 'changed from 132.6542970399242 to 160.40893868501664.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[190] " - 'changed from 132.57527995910954 to 160.31132859435178.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[191] " - 'changed from 132.49603865158508 to 160.2134585721046.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[192] " - 'changed from 132.4165781001127 to 160.1153346863223.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[193] " - 'changed from 132.33690322746816 to 160.01696292918595.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[194] " - 'changed from 132.25701889674264 to 159.91834921747116.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[195] " - 'changed from 132.1769299116621 to 159.81949939302726.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[196] " - 'changed from 132.09664101692206 to 159.72041922327347.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[197] " - 'changed from 132.01615689853764 to 159.62111440171122.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[198] " - 'changed from 131.93548218420744 to 159.52159054845126.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[199] " - 'changed from 131.8546214436908 to 159.42185321075473.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[200] " - 'changed from 131.77357918919694 to 159.32190786358672.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[201] " - 'changed from 131.69235987578566 to 159.22175991018196.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[202] " - 'changed from 131.61096790177876 to 159.121414682621.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[203] " - 'changed from 131.52940760918082 to 159.02087744241646.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[204] " - 'changed from 131.44768328410936 to 158.9201533811086.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[205] " - 'changed from 131.3657991572335 to 158.81924762086896.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[206] " - 'changed from 131.28375940421975 to 158.71816521511113.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[207] " - 'changed from 131.20156814618545 to 158.61691114910928.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[208] " - 'changed from 131.11922945015823 to 158.51549034062137.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[209] " - 'changed from 131.0367473295412 to 158.413907640519.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[210] " - 'changed from 130.9541257445843 to 158.31216783342114.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[211] " - 'changed from 130.8713686028589 to 158.21027563833232.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[212] " - 'changed from 130.78847975973807 to 158.10823570928437.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[213] " - 'changed from 130.70546301887984 to 158.00605263598106.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[214] " - 'changed from 130.62232213271372 to 157.90373094444504.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[215] " - 'changed from 130.5390608029306 to 157.8012750976671.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[216] " - 'changed from 130.45568268097443 to 157.69868949625658.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[217] " - 'changed from 130.37219136853636 to 157.59597847909316.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[218] " - 'changed from 130.2885904180505 to 157.49314632397875.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[219] " - 'changed from 130.20488333319076 to 157.3901972482901.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[220] " - 'changed from 130.121073569369 to 157.2871354096309.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[221] " - 'changed from 130.03716453423309 to 157.18396490648342.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[222] " - 'changed from 129.95315958816647 to 157.08068977885952.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[223] " - 'changed from 129.86906204478643 to 156.9773140089499.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[224] " - 'changed from 129.78487517144322 to 156.8738415217723.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[225] " - 'changed from 129.7006021897179 to 156.7702761858178.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[226] " - 'changed from 129.61624627591976 to 156.66662181369486.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[227] " - 'changed from 129.53181056158283 to 156.56288216277125.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[228] " - 'changed from 129.44729813396106 to 156.45906093581314.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[229] " - 'changed from 129.36271203652174 to 156.35516178162158.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[230] " - 'changed from 129.27805526943806 to 156.2511882956661.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[231] " - 'changed from 129.19333079007893 to 156.14714402071456.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[232] " - 'changed from 129.10854151349767 to 156.04303244746015.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[233] " - 'changed from 129.02369031291806 to 155.9388570151445.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[234] " - 'changed from 128.93878002021776 to 155.834621112177.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[235] " - 'changed from 128.8538134264104 to 155.73032807675028.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[236] " - 'changed from 128.7687932821237 to 155.62598119745192.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[237] " - 'changed from 128.6837222980759 to 155.52158371387137.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[238] " - 'changed from 128.59860314554874 to 155.41713881720298.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[239] " - 'changed from 128.51343845685764 to 155.31264965084475.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[240] " - 'changed from 128.42823082581924 to 155.2081193109919.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[241] " - 'changed from 128.34298280821477 to 155.1035508472264.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[242] " - 'changed from 128.25769692225143 to 154.99894726310143.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[243] " - 'changed from 128.17237564901936 to 154.8943115167217.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[244] " - 'changed from 128.0870214329456 to 154.78964652131754.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[245] " - 'changed from 128.00163668224488 to 154.68495514581545.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[246] " - 'changed from 127.91622376936633 to 154.5802402154028.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[247] " - 'changed from 127.83078503143665 to 154.4755045120877.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[248] " - 'changed from 127.74532277070007 to 154.3707507752539.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[249] " - 'changed from 127.65983925495398 to 154.26598170221.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[250] " - 'changed from 127.57433671798105 to 154.16119994873446.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[251] " - 'changed from 127.48881735997767 to 154.05640812961389.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[252] " - 'changed from 127.40328334797837 to 153.95160881917755.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[253] " - 'changed from 127.31773681627628 to 153.84680455182567.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[254] " - 'changed from 127.23217986683994 to 153.74199782255266.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[255] " - 'changed from 127.14661456972588 to 153.63719108746508.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[256] " - 'changed from 127.06104296348727 to 153.53238676429422.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[257] " - 'changed from 126.97546705557906 to 153.42758723290314.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[258] " - 'changed from 126.88988882275834 to 153.32279483578898.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[259] " - 'changed from 126.8043102114812 to 153.21801187857898.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[260] " - 'changed from 126.71873313829586 to 153.11324063052155.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[261] " - 'changed from 126.6331594902307 to 153.0084833249728.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[262] " - 'changed from 126.54759112517935 to 152.90374215987603.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[263] " - 'changed from 126.46202987228148 to 152.79901929823757.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[264] " - 'changed from 126.37647753229906 to 152.69431686859627.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[265] " - 'changed from 126.29093587798921 to 152.5896369654879.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[266] " - 'changed from 126.20540665447263 to 152.4849816499045.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[267] " - 'changed from 126.11989157959812 to 152.38035294974827.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[268] " - 'changed from 126.03439234430338 to 152.27575286028025.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[269] " - 'changed from 125.94891061297132 to 152.1711833445636.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[270] " - 'changed from 125.86344802378257 to 152.06664633390213.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[271] " - 'changed from 125.77800618906448 to 151.9621437282732.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[272] " - 'changed from 125.69258669563523 to 151.85767739675575.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[273] " - 'changed from 125.60719110514485 to 151.75324917795297.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[274] " - 'changed from 125.52182095441206 to 151.64886088041015.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[275] " - 'changed from 125.43647775575694 to 151.54451428302747.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[276] " - 'changed from 125.35116299733 to 151.4402111354674.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[277] " - 'changed from 125.26587814343746 to 151.33595315855754.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[278] " - 'changed from 125.18062463486238 to 151.2317420446885.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[279] " - 'changed from 125.09540388918234 to 151.12757945820647.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[280] " - 'changed from 125.01021730108292 to 151.02346703580136.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[281] " - 'changed from 124.92506624266795 to 150.91940638688982.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[282] " - 'changed from 124.8399520637655 to 150.81539909399368.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[283] " - 'changed from 124.75487609223038 to 150.71144671311345.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[284] " - 'changed from 124.66983963424317 to 150.6075507740973.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[285] " - 'changed from 124.58484397460523 to 150.50371278100508.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[286] " - 'changed from 124.49989037703024 to 150.39993421246808.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[287] " - 'changed from 124.41498008443223 to 150.2962165220439.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[288] " - 'changed from 124.33011431921007 to 150.19256113856684.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[289] " - 'changed from 124.245294283528 to 150.08896946649398.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[290] " - 'changed from 124.16052115959333 to 149.98544288624643.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[291] " - 'changed from 124.07579610993015 to 149.88198275454673.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[292] " - 'changed from 123.99112027764973 to 149.77859040475118.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[293] " - 'changed from 123.90649478671774 to 149.67526714717843.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[294] " - 'changed from 123.82192074221764 to 149.5720142694333.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[295] " - 'changed from 123.7373992306112 to 149.46883303672706.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[296] " - 'changed from 123.65293131999535 to 149.3657246921924.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[297] " - 'changed from 123.56851806035584 to 149.2626904571956.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[298] " - 'changed from 123.48416048381802 to 149.15973153164342.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[299] " - 'changed from 123.39985960489358 to 149.0568490942866.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[300] " - 'changed from 123.31561642072505 to 148.95404430301923.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[301] " - 'changed from 123.23143191132638 to 148.85131829517385.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[302] " - 'changed from 123.14730703982102 to 148.748672187813.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[303] " - 'changed from 123.0632427526762 to 148.64610707801677.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[304] " - 'changed from 122.97923997993513 to 148.54362404316615.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[305] " - 'changed from 122.8952996354451 to 148.4412241412233.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[306] " - 'changed from 122.81142261708334 to 148.33890841100742.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[307] " - 'changed from 122.72760980697979 to 148.2366778724671.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[308] " - 'changed from 122.64386207173683 to 148.13453352694924.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[309] " - 'changed from 122.56018026264586 to 148.03247635746405.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[310] " - 'changed from 122.47656521590172 to 147.9305073289465.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[311] " - 'changed from 122.39301775281356 to 147.8286273885144.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[312] " - 'changed from 122.30953868001346 to 147.72683746572284.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[313] " - 'changed from 122.22612878966189 to 147.6251384728153.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[314] " - 'changed from 122.14278885965084 to 147.52353130497124.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[315] " - 'changed from 122.05951965380368 to 147.42201684055027.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[316] " - 'changed from 121.97632192207301 to 147.32059594133295.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[317] " - 'changed from 121.89319640073548 to 147.21926945275902.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[318] " - 'changed from 121.81014381258407 to 147.11803820416102.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[319] " - 'changed from 121.7271648671178 to 147.01690300899594.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[320] " - 'changed from 121.64426026072903 to 146.91586466507306.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[321] " - 'changed from 121.56143067688805 to 146.81492395477895.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[322] " - 'changed from 121.47867678632528 to 146.71408164529916.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[323] " - 'changed from 121.39599924721111 to 146.61333848883712.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[324] " - 'changed from 121.31339870533326 to 146.5126952228297.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[325] " - 'changed from 121.23087579427154 to 146.41215257016.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[326] " - 'changed from 121.14843113557066 to 146.31171123936753.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[327] " - 'changed from 121.0660653389104 to 146.2113719248545.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[328] " - 'changed from 120.98377900227351 to 146.11113530709062.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[329] " - 'changed from 120.90157271211154 to 146.01100205281404.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[330] " - 'changed from 120.81944704350815 to 145.91097281522966.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[331] " - 'changed from 120.73740256034047 to 145.8110482342051.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[332] " - 'changed from 120.65543981543794 to 145.71122893646393.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[333] " - 'changed from 120.57355935073942 to 145.61151553577554.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[334] " - 'changed from 120.49176169744777 to 145.5119086331431.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[335] " - 'changed from 120.41004737618265 to 145.41240881698883.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[336] " - 'changed from 120.3284168971309 to 145.3130166633363.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[337] " - 'changed from 120.24687076019516 to 145.21373273599053.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[338] " - 'changed from 120.16540945514056 to 145.11455758671542.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[339] " - 'changed from 120.0840334617387 to 145.01549175540902.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[340] " - 'changed from 120.00274324991078 to 144.91653577027574.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[341] " - 'changed from 119.92153927986764 to 144.81769014799687.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[342] " - 'changed from 119.84042200224884 to 144.71895539389837.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[343] " - 'changed from 119.75939185825915 to 144.62033200211602.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[344] " - 'changed from 119.67844927980356 to 144.5218204557591.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[345] " - 'changed from 119.59759468962025 to 144.42342122707092.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[346] " - 'changed from 119.51682850141195 to 144.32513477758766.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[347] " - 'changed from 119.43615111997514 to 144.22696155829462.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[348] " - 'changed from 119.35556294132785 to 144.12890200978072.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[349] " - 'changed from 119.27506435283551 to 144.03095656239051.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Extracted'].value[350] " - 'changed from 119.19465573333528 to 143.93312563637394.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[0] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[1] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[2] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[3] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[4] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[5] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[6] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[7] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[8] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[9] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[10] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[11] " - 'changed from 11.901840001301203 to 15.45343747298775.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[12] " - 'changed from 11.901840001301192 to 15.453437472987716.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[13] " - 'changed from 11.901840001300961 to 15.453437472987412.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[14] " - 'changed from 11.901840001299092 to 15.453437472984925.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[15] " - 'changed from 11.901840001287438 to 15.453437472969897.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[16] " - 'changed from 11.901840001229855 to 15.453437472897651.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[17] " - 'changed from 11.901840000996163 to 15.453437472611267.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[18] " - 'changed from 11.901840000189624 to 15.453437471643864.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[19] " - 'changed from 11.901839997761364 to 15.453437468786195.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[20] " - 'changed from 11.901839991249249 to 15.453437461252857.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[21] " - 'changed from 11.901839975429743 to 15.453437443234368.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[22] " - 'changed from 11.901839940137439 to 15.453437403599052.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[23] " - 'changed from 11.90183986700532 to 15.4534373225175.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[24] " - 'changed from 11.901839724911373 to 15.453437166824164.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[25] " - 'changed from 11.901839463985018 to 15.453436884007257.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[26] " - 'changed from 11.901839008119895 to 15.453436394812499.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[27] " - 'changed from 11.901838246046612 to 15.453435584552045.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[28] " - 'changed from 11.901837021126397 to 15.453434293309783.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[29] " - 'changed from 11.901835120122211 to 15.453432305318008.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[30] " - 'changed from 11.901832261278175 to 15.453429337843115.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[31] " - 'changed from 11.901828082087249 to 15.453425029952452.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[32] " - 'changed from 11.90182212714779 to 15.453418931542362.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[33] " - 'changed from 11.90181383650513 to 15.453410492993171.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[34] " - 'changed from 11.901802534846421 to 15.453399055779979.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[35] " - 'changed from 11.90178742187264 to 15.453383844319708.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[36] " - 'changed from 11.901767564114763 to 15.45336395927569.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[37] " - 'changed from 11.901741888397616 to 15.453338372477598.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[38] " - 'changed from 11.90170917708946 to 15.453305923553215.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[39] " - 'changed from 11.90166806521129 to 15.453265318308068.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[40] " - 'changed from 11.901617039421192 to 15.453215128836595.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[41] " - 'changed from 11.901554438836055 to 15.453153795301764.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[42] " - 'changed from 11.901478457609464 to 15.453079629282955.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[43] " - 'changed from 11.901387149147462 to 15.452990818562485.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[44] " - 'changed from 11.9012784318175 to 15.452885433198908.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[45] " - 'changed from 11.901150095985464 to 15.45276143272297.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[46] " - 'changed from 11.900999812204176 to 15.452616674282956.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[47] " - 'changed from 11.900825140370774 to 15.452448921566086.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[48] " - 'changed from 11.900623539669951 to 15.452255854324779.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[49] " - 'changed from 11.900392379125071 to 15.452035078343881.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[50] " - 'changed from 11.900128948586081 to 15.451784135694743.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[51] " - 'changed from 11.899830469994813 to 15.451500515133372.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[52] " - 'changed from 11.899494108779983 to 15.451181662514182.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[53] " - 'changed from 11.899116985248614 to 15.450824991103268.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[54] " - 'changed from 11.89869618585503 to 15.45042789169107.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[55] " - 'changed from 11.8982287742428 to 15.449987742416994.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[56] " - 'changed from 11.89771180197048 to 15.449501918233334.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[57] " - 'changed from 11.897142318845196 to 15.448967799948095.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[58] " - 'changed from 11.896517382801857 to 15.448382782799046.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[59] " - 'changed from 11.89583406927838 to 15.447744284522093.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[60] " - 'changed from 11.895089480048457 to 15.447049752887592.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[61] " - 'changed from 11.894280751484285 to 15.446296672687266.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[62] " - 'changed from 11.893405062230462 to 15.445482572162334.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[63] " - 'changed from 11.892459640279599 to 15.444605028870676.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[64] " - 'changed from 11.891441769446187 to 15.443661674997317.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[65] " - 'changed from 11.890348795242922 to 15.442650202116738.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[66] " - 'changed from 11.889178130168156 to 15.441568365421125.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[67] " - 'changed from 11.88792725841804 to 15.440413987431057.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[68] " - 'changed from 11.88659374004085 to 15.439184961209111.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[69] " - 'changed from 11.885175214553623 to 15.437879253098053.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[70] " - 'changed from 11.88366940404396 to 15.436494905007534.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[71] " - 'changed from 11.8820741157815 to 15.435030036274448.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[72] " - 'changed from 11.880387244364933 to 15.433482845122544.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[73] " - 'changed from 11.878606773431208 to 15.431851609747271.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[74] " - 'changed from 11.876730776954057 to 15.430134689052071.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[75] " - 'changed from 11.874757420159284 to 15.428330523061948.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[76] " - 'changed from 11.872684960083733 to 15.42643763303977.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[77] " - 'changed from 11.870511745804897 to 15.424454621330083.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[78] " - 'changed from 11.868236218367054 to 15.422380170954328.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[79] " - 'changed from 11.86585691042971 to 15.420213044980693.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[80] " - 'changed from 11.863372445662572 to 15.417952085690699.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[81] " - 'changed from 11.860781537910697 to 15.415596213563346.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[82] " - 'changed from 11.858082990152534 to 15.413144426097155.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[83] " - 'changed from 11.855275693271967 to 15.410595796488524.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[84] " - 'changed from 11.852358624664914 to 15.407949472184479.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[85] " - 'changed from 11.84933084669967 to 15.405204673326102.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[86] " - 'changed from 11.846191505048623 to 15.402360691098202.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[87] " - 'changed from 11.8429398269088 to 15.399416885999747.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[88] " - 'changed from 11.839575119126486 to 15.396372686048121.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[89] " - 'changed from 11.836096766240871 to 15.393227584929566.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[90] " - 'changed from 11.832504228460198 to 15.389981140107498.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[91] " - 'changed from 11.828797039583065 to 15.386632970898205.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[92] " - 'changed from 11.824974804876316 to 15.383182756524468.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[93] " - 'changed from 11.821037198920425 to 15.379630234154764.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[94] " - 'changed from 11.816983963431717 to 15.375975196936412.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[95] " - 'changed from 11.812814905070827 to 15.372217492029744.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[96] " - 'changed from 11.808529893244874 to 15.368357018649185.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[97] " - 'changed from 11.804128857911314 to 15.364393726117358.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[98] " - 'changed from 11.799611787389473 to 15.360327611937173.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[99] " - 'changed from 11.794978726186176 to 15.356158719886224.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[100] " - 'changed from 11.790229772840359 to 15.351887138137592.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[101] " - 'changed from 11.785365077791754 to 15.347512997410405.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[102] " - 'changed from 11.780384841277641 to 15.343036469153263.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[103] " - 'changed from 11.77528931126119 to 15.338457763762882.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[104] " - 'changed from 11.770078781395013 to 15.333777128840419.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[105] " - 'changed from 11.76475358902212 to 15.32899484748694.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[106] " - 'changed from 11.759314113217314 to 15.324111236640013.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[107] " - 'changed from 11.75376077287036 to 15.319126645452073.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[108] " - 'changed from 11.748094024813193 to 15.314041453711873.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[109] " - 'changed from 11.742314361992056 to 15.308856070309659.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[110] " - 'changed from 11.736422311685978 to 15.303570931746457.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[111] " - 'changed from 11.730418433772249 to 15.298186500687672.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[112] " - 'changed from 11.724303319039597 to 15.292703264561391.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[113] " - 'changed from 11.718077587549296 to 15.28712173420082.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[114] " - 'changed from 11.71174188704457 to 15.281442442531343.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[115] " - 'changed from 11.705296891408345 to 15.275665943301208.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[116] " - 'changed from 11.698743299168983 to 15.269792809855685.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[117] " - 'changed from 11.692081832054013 to 15.26382363395433.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[118] " - 'changed from 11.68531323359135 to 15.257759024630419.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[119] " - 'changed from 11.67843826775753 to 15.251599607091897.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[120] " - 'changed from 11.671457717672324 to 15.245346021663504.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[121] " - 'changed from 11.664372384339305 to 15.2389989227685.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[122] " - 'changed from 11.657183085431267 to 15.232558977949923.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[123] " - 'changed from 11.649890654119984 to 15.226026866929919.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[124] " - 'changed from 11.642495937949459 to 15.21940328070662.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[125] " - 'changed from 11.634999797751513 to 15.21268892068727.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[126] " - 'changed from 11.627403106603076 to 15.205884497856808.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[127] " - 'changed from 11.619706748824123 to 15.198990731981228.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[128] " - 'changed from 11.61191161901515 to 15.19200835084392.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[129] " - 'changed from 11.604018621133413 to 15.184938089515146.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[130] " - 'changed from 11.596028667606731 to 15.177780689652478.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[131] " - 'changed from 11.587942678483916 to 15.170536898832104.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[132] " - 'changed from 11.579761580620785 to 15.163207469909747.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[133] " - 'changed from 11.571486306900757 to 15.155793160409958.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[134] " - 'changed from 11.563117795489015 to 15.148294731943338.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[135] " - 'changed from 11.554656989119028 to 15.140712949650215.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[136] " - 'changed from 11.546104834410826 to 15.133048581670366.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[137] " - 'changed from 11.537462281219563 to 15.125302398637452.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[138] " - 'changed from 11.528730282013788 to 15.11747517319751.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[139] " - 'changed from 11.519909791282046 to 15.10956767955066.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[140] " - 'changed from 11.511001764967343 to 15.101580693014894.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[141] " - 'changed from 11.502007159928025 to 15.093514989611483.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[142] " - 'changed from 11.492926933424496 to 15.08537134567094.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[143] " - 'changed from 11.483762042630769 to 15.077150537458824.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[144] " - 'changed from 11.474513444169903 to 15.068853340820597.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[145] " - 'changed from 11.465182093672585 to 15.060480530844972.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[146] " - 'changed from 11.455768945357859 to 15.052032881544601.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[147] " - 'changed from 11.446274951635289 to 15.043511165553836.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[148] " - 'changed from 11.436701062727874 to 15.034916153842726.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[149] " - 'changed from 11.427048226314549 to 15.026248615446452.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[150] " - 'changed from 11.417317387191945 to 15.017509317209814.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[151] " - 'changed from 11.407509486954382 to 15.008699023545843.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[152] " - 'changed from 11.397625463691591 to 14.999818496208343.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[153] " - 'changed from 11.387666251703207 to 14.99086849407742.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[154] " - 'changed from 11.377632781229673 to 14.981849772957549.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[155] " - 'changed from 11.367525978198646 to 14.972763085387708.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[156] " - 'changed from 11.357346763986394 to 14.963609180463198.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[157] " - 'changed from 11.347096055193596 to 14.954388803668117.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[158] " - 'changed from 11.336774763434876 to 14.945102696718704.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[159] " - 'changed from 11.326383795141485 to 14.935751597416639.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[160] " - 'changed from 11.315924051376811 to 14.926336239511748.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[161] " - 'changed from 11.305396427663695 to 14.916857352574363.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[162] " - 'changed from 11.29480181382374 to 14.907315661876023.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[163] " - 'changed from 11.28414109382732 to 14.897711888278701.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[164] " - 'changed from 11.27341514565454 to 14.888046748132194.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[165] " - 'changed from 11.262624841166161 to 14.878320953178866.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[166] " - 'changed from 11.25177104598433 to 14.868535210465925.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[167] " - 'changed from 11.24085461938254 to 14.858690222264471.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[168] " - 'changed from 11.229876414184531 to 14.848786685995167.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[169] " - 'changed from 11.218837276671637 to 14.8388252941604.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[170] " - 'changed from 11.207738046498186 to 14.828806734282189.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[171] " - 'changed from 11.196579556614719 to 14.818731688845993.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[172] " - 'changed from 11.185362633198464 to 14.808600835249974.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[173] " - 'changed from 11.174088095590994 to 14.798414845759183.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[174] " - 'changed from 11.1627567562424 to 14.78817438746507.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[175] " - 'changed from 11.15136942066205 to 14.777880122249396.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[176] " - 'changed from 11.139926887375188 to 14.767532706752656.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[177] " - 'changed from 11.12842994788569 to 14.757132792346807.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[178] " - 'changed from 11.116879386643872 to 14.746681025111876.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[179] " - 'changed from 11.105275981019977 to 14.736178045816617.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[180] " - 'changed from 11.093620501282466 to 14.725624489902508.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[181] " - 'changed from 11.081913710580832 to 14.715020987471444.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[182] " - 'changed from 11.070156364933469 to 14.704368163276413.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[183] " - 'changed from 11.058349213219248 to 14.693666636715573.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[184] " - 'changed from 11.046492997173488 to 14.682917021828924.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[185] " - 'changed from 11.034588451387712 to 14.672119927298079.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[186] " - 'changed from 11.022636303312915 to 14.661275956448334.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[187] " - 'changed from 11.01063727326663 to 14.650385707253406.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[188] " - 'changed from 10.998592074442763 to 14.639449772342559.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[189] " - 'changed from 10.986501412925078 to 14.628468739009646.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[190] " - 'changed from 10.974365987703145 to 14.617443189224678.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[191] " - 'changed from 10.962186490691371 to 14.606373699646882.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[192] " - 'changed from 10.949963606750487 to 14.595260841640009.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[193] " - 'changed from 10.937698013711524 to 14.584105181289157.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[194] " - 'changed from 10.925390382402199 to 14.572907279419288.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[195] " - 'changed from 10.913041376675343 to 14.561667691615327.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[196] " - 'changed from 10.900651653439478 to 14.550386968243672.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[197] " - 'changed from 10.888221862691399 to 14.539065654475086.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[198] " - 'changed from 10.875752647550337 to 14.527704290308803.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[199] " - 'changed from 10.86324464429408 to 14.516303410597935.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[200] " - 'changed from 10.850698482396565 to 14.504863545075919.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[201] " - 'changed from 10.838114784566935 to 14.493385218383912.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[202] " - 'changed from 10.825494166790035 to 14.481868950099447.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[203] " - 'changed from 10.812837238368212 to 14.470315254765602.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[204] " - 'changed from 10.800144601964272 to 14.458724641921368.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[205] " - 'changed from 10.787416853645606 to 14.447097616132536.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[206] " - 'changed from 10.774654582929315 to 14.435434677023443.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[207] " - 'changed from 10.761858372828312 to 14.423736319309304.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[208] " - 'changed from 10.749028799898324 to 14.412003032829245.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[209] " - 'changed from 10.73616643428561 to 14.400235302579746.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[210] " - 'changed from 10.72327183977561 to 14.38843360874883.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[211] " - 'changed from 10.710345573842094 to 14.376598426750435.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[212] " - 'changed from 10.697388187696953 to 14.36473022725944.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[213] " - 'changed from 10.684400226340719 to 14.352829476246995.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[214] " - 'changed from 10.671382228613316 to 14.340896635016158.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[215] " - 'changed from 10.658334727245476 to 14.328932160237894.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[216] " - 'changed from 10.645258248910501 to 14.316936503987284.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[217] " - 'changed from 10.632153314276255 to 14.304910113780121.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[218] " - 'changed from 10.619020438057653 to 14.292853432609492.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[219] " - 'changed from 10.605860129069283 to 14.28076689898271.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[220] " - 'changed from 10.592672890278248 to 14.268650946958333.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[221] " - 'changed from 10.579459218857215 to 14.256506006183349.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[222] " - 'changed from 10.566219606237699 to 14.24433250193035.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[223] " - 'changed from 10.55295453816319 to 14.232130855134903.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[224] " - 'changed from 10.539664494742665 to 14.219901482432922.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[225] " - 'changed from 10.526349950503972 to 14.207644796198004.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[226] " - 'changed from 10.513011374447155 to 14.195361204578928.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[227] " - 'changed from 10.499649230097932 to 14.183051111536994.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[228] " - 'changed from 10.486263975561117 to 14.170714916883357.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[229] " - 'changed from 10.47285606357375 to 14.158353016316399.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[230] " - 'changed from 10.459425941558335 to 14.145965801458981.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[231] " - 'changed from 10.445974051676009 to 14.133553659895577.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[232] " - 'changed from 10.432500830879306 to 14.121116975209395.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[233] " - 'changed from 10.419006710965066 to 14.108656127019335.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[234] " - 'changed from 10.405492118626952 to 14.096171491016827.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[235] " - 'changed from 10.39195747550784 to 14.08366343900261.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[236] " - 'changed from 10.37840319825199 to 14.071132338923242.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[237] " - 'changed from 10.36482969855703 to 14.058578554907575.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[238] " - 'changed from 10.351237383225637 to 14.046002447303028.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[239] " - 'changed from 10.337626654216928 to 14.033404372711638.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[240] " - 'changed from 10.323997908697663 to 14.02078468402599.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[241] " - 'changed from 10.310351539093157 to 14.008143730464951.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[242] " - 'changed from 10.296687933137788 to 13.995481857609164.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[243] " - 'changed from 10.28300747392535 to 13.982799407436424.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[244] " - 'changed from 10.269310539958871 to 13.97009671835668.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[245] " - 'changed from 10.25559750520044 to 13.957374125247071.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[246] " - 'changed from 10.241868739120347 to 13.944631959486449.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[247] " - 'changed from 10.228124606746023 to 13.931870548989938.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[248] " - 'changed from 10.21436546871079 to 13.91909021824308.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[249] " - 'changed from 10.20059168130194 to 13.906291288335787.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[250] " - 'changed from 10.18680359650866 to 13.893474076996164.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[251] " - 'changed from 10.17300156206957 to 13.880638898623934.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[252] " - 'changed from 10.159185921519827 to 13.867786064323624.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[253] " - 'changed from 10.14535701423784 to 13.854915881937673.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[254] " - 'changed from 10.131515175491689 to 13.842028656079057.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[255] " - 'changed from 10.117660736485126 to 13.829124688163834.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[256] " - 'changed from 10.103794024402976 to 13.816204276443335.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[257] " - 'changed from 10.089915362456649 to 13.803267716036132.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[258] " - 'changed from 10.076025069928605 to 13.790315298959719.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[259] " - 'changed from 10.062123462216945 to 13.777347314161997.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[260] " - 'changed from 10.048210850879382 to 13.764364047552297.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[261] " - 'changed from 10.034287543676722 to 13.75136578203252.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[262] " - 'changed from 10.020353844616194 to 13.738352797527552.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[263] " - 'changed from 10.00641005399416 to 13.72532537101573.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[264] " - 'changed from 9.992456468438442 to 13.712283776558968.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[265] " - 'changed from 9.978493380950413 to 13.6992282853325.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[266] " - 'changed from 9.964521080946406 to 13.686159165654544.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[267] " - 'changed from 9.950539854298976 to 13.673076683015513.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[268] " - 'changed from 9.936549983377654 to 13.659981100107123.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[269] " - 'changed from 9.92255174708917 to 13.646872676851025.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[270] " - 'changed from 9.908545420917559 to 13.633751670427493.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[271] " - 'changed from 9.894531276963535 to 13.620618335303456.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[272] " - 'changed from 9.88050958398368 to 13.60747292326057.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[273] " - 'changed from 9.866480607429207 to 13.594315683422888.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[274] " - 'changed from 9.852444609484206 to 13.58114686228424.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[275] " - 'changed from 9.838401849103649 to 13.5679667037355.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[276] " - 'changed from 9.824352582050796 to 13.554775449091384.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[277] " - 'changed from 9.810297060934493 to 13.541573337117129.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[278] " - 'changed from 9.796235535245673 to 13.528360604054903.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[279] " - 'changed from 9.782168251393955 to 13.515137483649916.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[280] " - 'changed from 9.768095452743411 to 13.501904207176214.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[281] " - 'changed from 9.754017379648142 to 13.48866100346235.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[282] " - 'changed from 9.73993426948754 to 13.475408098916773.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[283] " - 'changed from 9.72584635670098 to 13.46214571755281.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[284] " - 'changed from 9.711753872822326 to 13.448874081013594.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[285] " - 'changed from 9.697657046513838 to 13.435593408596642.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[286] " - 'changed from 9.683556103599958 to 13.422303917278231.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[287] " - 'changed from 9.66945126710043 to 13.40900582173742.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[288] " - 'changed from 9.655342757263377 to 13.39569933437994.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[289] " - 'changed from 9.64123079159772 to 13.382384665361819.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[290] " - 'changed from 9.627115584905358 to 13.36906202261274.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[291] " - 'changed from 9.612997349313073 to 13.355731611859131.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[292] " - 'changed from 9.598876294303832 to 13.342393636647145.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[293] " - 'changed from 9.58475262674803 to 13.329048298365196.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[294] " - 'changed from 9.570626550934087 to 13.31569579626643.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[295] " - 'changed from 9.556498268598968 to 13.302336327490943.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[296] " - 'changed from 9.54236797895809 to 13.288970087087636.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[297] " - 'changed from 9.528235878735124 to 13.275597268036075.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[298] " - 'changed from 9.5141021621913 to 13.26221806126782.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[299] " - 'changed from 9.499967021154422 to 13.248832655687856.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[300] " - 'changed from 9.485830645047551 to 13.235441238195529.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[301] " - 'changed from 9.471693220917324 to 13.222043993705423.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[302] " - 'changed from 9.457554933462042 to 13.208641105167956.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[303] " - 'changed from 9.443415965059224 to 13.19523275358977.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[304] " - 'changed from 9.429276495793152 to 13.181819118053884.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[305] " - 'changed from 9.415136703481785 to 13.168400375739711.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[306] " - 'changed from 9.4009967637035 to 13.154976701942696.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[307] " - 'changed from 9.386856849823575 to 13.141548270094015.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[308] " - 'changed from 9.372717133020227 to 13.128115251779754.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[309] " - 'changed from 9.358577782310437 to 13.11467781676016.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[310] " - 'changed from 9.344438964575456 to 13.101236132988438.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[311] " - 'changed from 9.330300844585985 to 13.087790366629587.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[312] " - 'changed from 9.316163585027038 to 13.074340682078828.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[313] " - 'changed from 9.302027346522598 to 13.06088724198005.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[314] " - 'changed from 9.287892287659913 to 13.047430207243787.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[315] " - 'changed from 9.273758565013457 to 13.03396973706526.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[316] " - 'changed from 9.259626333168738 to 13.020505988942057.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[317] " - 'changed from 9.245495744745728 to 13.007039118691788.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[318] " - 'changed from 9.231366950422007 to 12.99356928046929.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[319] " - 'changed from 9.217240098955694 to 12.980096626783965.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[320] " - 'changed from 9.203115337208075 to 12.96662130851664.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[321] " - 'changed from 9.18899281016589 to 12.953143474936509.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[322] " - 'changed from 9.174872660963503 to 12.939663273717649.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[323] " - 'changed from 9.160755030904692 to 12.926180850955541.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[324] " - 'changed from 9.146640059484218 to 12.912696351183332.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[325] " - 'changed from 9.13252788440907 to 12.899209917387918.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[326] " - 'changed from 9.118418641619577 to 12.885721691025928.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[327] " - 'changed from 9.104312465310237 to 12.872231812039402.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[328] " - 'changed from 9.09020948795015 to 12.858740418871458.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[329] " - 'changed from 9.076109840303394 to 12.845247648481664.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[330] " - 'changed from 9.06201365144907 to 12.83175363636127.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[331] " - 'changed from 9.04792104880112 to 12.818258516548404.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[332] " - 'changed from 9.033832158127904 to 12.80476242164289.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[333] " - 'changed from 9.01974710357144 to 12.79126548282107.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[334] " - 'changed from 9.005666007666738 to 12.77776782985039.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[335] " - 'changed from 8.991588991360448 to 12.764269591103895.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[336] " - 'changed from 8.977516174029658 to 12.750770893574504.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[337] " - 'changed from 8.963447673500212 to 12.737271862889106.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[338] " - 'changed from 8.94938360606505 to 12.723772623322644.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[339] " - 'changed from 8.935324086502016 to 12.71027329781188.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[340] " - 'changed from 8.921269228091838 to 12.696774007969124.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[341] " - 'changed from 8.907219142635489 to 12.683274874095778.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[342] " - 'changed from 8.893173940471623 to 12.669776015195742.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[343] " - 'changed from 8.879133730493749 to 12.656277548988607.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[344] " - 'changed from 8.865098620167043 to 12.642779591922888.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[345] " - 'changed from 8.85106871554519 to 12.629282259188892.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[346] " - 'changed from 8.837044121286853 to 12.615785664731629.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[347] " - 'changed from 8.823024940671965 to 12.602289921263413.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[348] " - 'changed from 8.809011275617888 to 12.588795140276545.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[349] " - 'changed from 8.795003226695416 to 12.57530143205565.\n' - "Value of root.surfaceplant.OutputParameterDict['Heat Produced2'].value[350] " - 'changed from 8.781000893144368 to 12.561808905689967.\n' - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[0] changed from 80.01235051248356 to 95.54839275603244.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[1] changed from 76.07270102516549 to 90.77678551239887.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[2] changed from 72.13305184340518 to 86.00517873240813.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[3] changed from 68.19341682943417 to 81.23359230045469.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[4] changed from 64.25392174380244 to 76.46219966756551.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[5] changed from 60.31502507912598 to 71.69161474887207.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[6] changed from 56.377703347094425 to 66.92311603262297.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[7] changed from 52.44346651215187 to 62.158646660314055.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[8] changed from 48.51423418186046 to 57.40064370426407.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[9] changed from 44.59216137189256 to 52.65181320220638.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[10] changed from 40.67947648831418 to 47.91492767149599.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[11] changed from 36.77835728314345 to 43.19267503311562.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[12] changed from 32.89084783519718 to 38.487560204599546.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[13] changed from 29.018809991858355 to 33.80184968299096.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[14] changed from 25.16390039327561 to 29.13754735177629.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[15] changed from 21.327565007160395 to 24.49639122562924.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[16] changed from 17.51104484764147 to 19.879863262791545.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[17] changed from 13.71538829924664 to 15.289206654650869.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[18] changed from 9.941466902097005 to 10.725446818822022.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[21] changed from -1.2434630920525507 to " - '-2.7969996896536173.\n' - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[22] changed from -4.924667453335715 to -7.246505628311269.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[23] changed from -8.581841462101778 to -11.666499589757166.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[24] changed from -12.214831712790158 to " - '-16.056827012998824.\n' - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[25] changed from -15.823557020524461 to -20.41741951066834.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[26] changed from -19.407998374429525 to -24.74828258386863.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[27] changed from -22.96819008777328 to -29.049484842942718.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[28] changed from -26.504212034072822 to -33.32114858497624.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[29] changed from -30.016182856952696 to -37.5634415806953.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[30] changed from -33.5042540457283 to -41.776569931207234.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[31] changed from -36.968604775911416 to -45.96077186589184.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[32] changed from -40.40943742251011 to -50.11631236488421.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[33] changed from -43.826973663125656 to -54.24347850189878.\n" - "Value of root.surfaceplant.OutputParameterDict['Remaining Reservoir Heat " - "Content'].value[34] changed from -47.22145109683568 to -58.34257541499082.\n" - 'Value of root.surfaceplant.TenteringPP[0] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[1] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[2] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[3] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[4] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[5] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[6] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[7] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[8] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[9] changed from 227.00000000000003 to ' - '258.0.\n' - 'Value of root.surfaceplant.TenteringPP[10] changed from 227.00000000000003 ' - 'to 258.0.\n' - 'Value of root.surfaceplant.TenteringPP[11] changed from 227.00000000000003 ' - 'to 258.0.\n' - 'Value of root.surfaceplant.TenteringPP[12] changed from 226.9999999999999 to ' - '257.9999999999997.\n' - 'Value of root.surfaceplant.TenteringPP[13] changed from 226.99999999999815 ' - 'to 257.99999999999636.\n' - 'Value of root.surfaceplant.TenteringPP[14] changed from 226.9999999999838 to ' - '257.99999999996936.\n' - 'Value of root.surfaceplant.TenteringPP[15] changed from 226.99999999989396 ' - 'to 257.9999999998057.\n' - 'Value of root.surfaceplant.TenteringPP[16] changed from 226.99999999945064 ' - 'to 257.99999999901956.\n' - 'Value of root.surfaceplant.TenteringPP[17] changed from 226.99999999765086 ' - 'to 257.9999999959037.\n' - 'Value of root.surfaceplant.TenteringPP[18] changed from 226.99999999143975 ' - 'to 257.99999998537714.\n' - 'Value of root.surfaceplant.TenteringPP[19] changed from 226.99999997273946 ' - 'to 257.99999995428243.\n' - 'Value of root.surfaceplant.TenteringPP[20] changed from 226.99999992258927 ' - 'to 257.99999987231126.\n' - 'Value of root.surfaceplant.TenteringPP[21] changed from 226.99999980076234 ' - 'to 257.99999967624956.\n' - 'Value of root.surfaceplant.TenteringPP[22] changed from 226.99999952897429 ' - 'to 257.9999992449726.\n' - 'Value of root.surfaceplant.TenteringPP[23] changed from 226.9999989657795 to ' - '257.99999836271354.\n' - 'Value of root.surfaceplant.TenteringPP[24] changed from 226.9999978715055 to ' - '257.99999666859424.\n' - 'Value of root.surfaceplant.TenteringPP[25] changed from 226.99999586209614 ' - 'to 257.99999359122694.\n' - 'Value of root.surfaceplant.TenteringPP[26] changed from 226.99999235145177 ' - 'to 257.9999882682356.\n' - 'Value of root.surfaceplant.TenteringPP[27] changed from 226.9999864826804 to ' - '257.9999794516882.\n' - 'Value of root.surfaceplant.TenteringPP[28] changed from 226.9999770494983 to ' - '257.9999654015181.\n' - 'Value of root.surfaceplant.TenteringPP[29] changed from 226.99996240975582 ' - 'to 257.9999437699339.\n' - 'Value of root.surfaceplant.TenteringPP[30] changed from 226.99994039363744 ' - 'to 257.9999114804852.\n' - 'Value of root.surfaceplant.TenteringPP[31] changed from 226.99990820946178 ' - 'to 257.9998646058375.\n' - 'Value of root.surfaceplant.TenteringPP[32] changed from 226.99986235016775 ' - 'to 257.9997982483963.\n' - 'Value of root.surfaceplant.TenteringPP[33] changed from 226.9997985035374 to ' - '257.99970642775463.\n' - 'Value of root.surfaceplant.TenteringPP[34] changed from 226.9997114689935 to ' - '257.99958197855415.\n' - 'Value of root.surfaceplant.TenteringPP[35] changed from 226.99959508346745 ' - 'to 257.99941646180866.\n' - 'Value of root.surfaceplant.TenteringPP[36] changed from 226.99944215839534 ' - 'to 257.99920009210416.\n' - 'Value of root.surfaceplant.TenteringPP[37] changed from 226.99924442941196 ' - 'to 257.9989216824017.\n' - 'Value of root.surfaceplant.TenteringPP[38] changed from 226.99899251980838 ' - 'to 257.99856860749617.\n' - 'Value of root.surfaceplant.TenteringPP[39] changed from 226.9986759183268 to ' - '257.99812678653217.\n' - 'Value of root.surfaceplant.TenteringPP[40] changed from 226.99828297141283 ' - 'to 257.99758068440707.\n' - 'Value of root.surfaceplant.TenteringPP[41] changed from 226.9978008896416 to ' - '257.99691333138594.\n' - 'Value of root.surfaceplant.TenteringPP[42] changed from 226.99721576769232 ' - 'to 257.9961063598464.\n' - 'Value of root.surfaceplant.TenteringPP[43] changed from 226.99651261696917 ' - 'to 257.9951400567495.\n' - 'Value of root.surfaceplant.TenteringPP[44] changed from 226.99567540975403 ' - 'to 257.99399343020104.\n' - 'Value of root.surfaceplant.TenteringPP[45] changed from 226.99468713362714 ' - 'to 257.9926442883162.\n' - 'Value of root.surfaceplant.TenteringPP[46] changed from 226.99352985479666 ' - 'to 257.99106932851873.\n' - 'Value of root.surfaceplant.TenteringPP[47] changed from 226.9921847889349 to ' - '257.9892442353879.\n' - 'Value of root.surfaceplant.TenteringPP[48] changed from 226.99063237811617 ' - 'to 257.98714378520083.\n' - 'Value of root.surfaceplant.TenteringPP[49] changed from 226.98885237248376 ' - 'to 257.984741955387.\n' - 'Value of root.surfaceplant.TenteringPP[50] changed from 226.9868239153344 to ' - '257.98201203721953.\n' - 'Value of root.surfaceplant.TenteringPP[51] changed from 226.98452563038924 ' - 'to 257.9789267501933.\n' - 'Value of root.surfaceplant.TenteringPP[52] changed from 226.981935710116 to ' - '257.9754583566818.\n' - 'Value of root.surfaceplant.TenteringPP[53] changed from 226.97903200407427 ' - 'to 257.97157877561557.\n' - 'Value of root.surfaceplant.TenteringPP[54] changed from 226.97579210636505 ' - 'to 257.9672596940768.\n' - 'Value of root.surfaceplant.TenteringPP[55] changed from 226.97219344137957 ' - 'to 257.96247267585943.\n' - 'Value of root.surfaceplant.TenteringPP[56] changed from 226.96821334715347 ' - 'to 257.95718926618883.\n' - 'Value of root.surfaceplant.TenteringPP[57] changed from 226.96382915573977 ' - 'to 257.95138109193664.\n' - 'Value of root.surfaceplant.TenteringPP[58] changed from 226.9590182701165 to ' - '257.94501995679843.\n' - 'Value of root.surfaceplant.TenteringPP[59] changed from 226.95375823724035 ' - 'to 257.9380779310212.\n' - 'Value of root.surfaceplant.TenteringPP[60] changed from 226.9480268169461 to ' - '257.9305274353792.\n' - 'Value of root.surfaceplant.TenteringPP[61] changed from 226.9418020464717 to ' - '257.9223413191944.\n' - 'Value of root.surfaceplant.TenteringPP[62] changed from 226.9350623004609 to ' - '257.9134929322879.\n' - 'Value of root.surfaceplant.TenteringPP[63] changed from 226.92778634635994 ' - 'to 257.9039561908224.\n' - 'Value of root.surfaceplant.TenteringPP[64] changed from 226.91995339518039 ' - 'to 257.893705637066.\n' - 'Value of root.surfaceplant.TenteringPP[65] changed from 226.91154314765035 ' - 'to 257.8827164931607.\n' - 'Value of root.surfaceplant.TenteringPP[66] changed from 226.90253583581608 ' - 'to 257.8709647090311.\n' - 'Value of root.surfaceplant.TenteringPP[67] changed from 226.89291226019344 ' - 'to 257.85842700460375.\n' - 'Value of root.surfaceplant.TenteringPP[68] changed from 226.88265382259624 ' - 'to 257.8450809065431.\n' - 'Value of root.surfaceplant.TenteringPP[69] changed from 226.8717425547927 to ' - '257.83090477973303.\n' - 'Value of root.surfaceplant.TenteringPP[70] changed from 226.8601611431607 to ' - '257.8158778537529.\n' - 'Value of root.surfaceplant.TenteringPP[71] changed from 226.84789294952552 ' - 'to 257.79998024461065.\n' - 'Value of root.surfaceplant.TenteringPP[72] changed from 226.83492202837525 ' - 'to 257.7831929720034.\n' - 'Value of root.surfaceplant.TenteringPP[73] changed from 226.8212331406559 to ' - '257.76549797238386.\n' - 'Value of root.surfaceplant.TenteringPP[74] changed from 226.80681176435183 ' - 'to 257.7468781081078.\n' - 'Value of root.surfaceplant.TenteringPP[75] changed from 226.7916441020589 to ' - '257.7273171729423.\n' - 'Value of root.surfaceplant.TenteringPP[76] changed from 226.77571708575718 ' - 'to 257.70679989420364.\n' - 'Value of root.surfaceplant.TenteringPP[77] changed from 226.75901837898732 ' - 'to 257.68531193179524.\n' - 'Value of root.surfaceplant.TenteringPP[78] changed from 226.7415363766303 to ' - '257.66283987440204.\n' - 'Value of root.surfaceplant.TenteringPP[79] changed from 226.7232602024859 to ' - '257.63937123309324.\n' - 'Value of root.surfaceplant.TenteringPP[80] changed from 226.70417970483777 ' - 'to 257.61489443257284.\n' - 'Value of root.surfaceplant.TenteringPP[81] changed from 226.68428545018705 ' - 'to 257.58939880030835.\n' - 'Value of root.surfaceplant.TenteringPP[82] changed from 226.66356871532759 ' - 'to 257.5628745537564.\n' - 'Value of root.surfaceplant.TenteringPP[83] changed from 226.64202147792906 ' - 'to 257.5353127858915.\n' - 'Value of root.surfaceplant.TenteringPP[84] changed from 226.6196364057848 to ' - '257.5067054492355.\n' - 'Value of root.surfaceplant.TenteringPP[85] changed from 226.59640684487317 ' - 'to 257.47704533856904.\n' - 'Value of root.surfaceplant.TenteringPP[86] changed from 226.57232680637296 ' - 'to 257.4463260724998.\n' - 'Value of root.surfaceplant.TenteringPP[87] changed from 226.54739095276398 ' - 'to 257.4145420740465.\n' - 'Value of root.surfaceplant.TenteringPP[88] changed from 226.52159458313656 ' - 'to 257.3816885503901.\n' - 'Value of root.surfaceplant.TenteringPP[89] changed from 226.49493361782456 ' - 'to 257.3477614719298.\n' - 'Value of root.surfaceplant.TenteringPP[90] changed from 226.4674045824691 to ' - '257.31275755077377.\n' - 'Value of root.surfaceplant.TenteringPP[91] changed from 226.43900459161227 ' - 'to 257.2766742187816.\n' - 'Value of root.surfaceplant.TenteringPP[92] changed from 226.409731331912 to ' - '257.2395096052692.\n' - 'Value of root.surfaceplant.TenteringPP[93] changed from 226.37958304506347 ' - 'to 257.20126251447425.\n' - 'Value of root.surfaceplant.TenteringPP[94] changed from 226.3485585105036 to ' - '257.16193240287515.\n' - 'Value of root.surfaceplant.TenteringPP[95] changed from 226.31665702797108 ' - 'to 257.1215193564442.\n' - 'Value of root.surfaceplant.TenteringPP[96] changed from 226.28387839998547 ' - 'to 257.0800240679128.\n' - 'Value of root.surfaceplant.TenteringPP[97] changed from 226.25022291430548 ' - 'to 257.0374478141143.\n' - 'Value of root.surfaceplant.TenteringPP[98] changed from 226.21569132641963 ' - 'to 256.993792433467.\n' - 'Value of root.surfaceplant.TenteringPP[99] changed from 226.18028484211754 ' - 'to 256.949060303652.\n' - 'Value of root.surfaceplant.TenteringPP[100] changed from 226.14400510018532 ' - 'to 256.9032543195333.\n' - 'Value of root.surfaceplant.TenteringPP[101] changed from 226.10685415526456 ' - 'to 256.85637787136557.\n' - 'Value of root.surfaceplant.TenteringPP[102] changed from 226.0688344609087 ' - 'to 256.80843482332557.\n' - 'Value of root.surfaceplant.TenteringPP[103] changed from 226.02994885286856 ' - 'to 256.7594294924019.\n' - 'Value of root.surfaceplant.TenteringPP[104] changed from 225.99020053263303 ' - 'to 256.70936662767167.\n' - 'Value of root.surfaceplant.TenteringPP[105] changed from 225.94959305124954 ' - 'to 256.6582513899883.\n' - 'Value of root.surfaceplant.TenteringPP[106] changed from 225.90813029344443 ' - 'to 256.60608933210267.\n' - 'Value of root.surfaceplant.TenteringPP[107] changed from 225.86581646206056 ' - 'to 256.5528863792342.\n' - 'Value of root.surfaceplant.TenteringPP[108] changed from 225.82265606282775 ' - 'to 256.4986488101075.\n' - 'Value of root.surfaceplant.TenteringPP[109] changed from 225.77865388947797 ' - 'to 256.44338323846466.\n' - 'Value of root.surfaceplant.TenteringPP[110] changed from 225.7338150092158 ' - 'to 256.38709659506424.\n' - 'Value of root.surfaceplant.TenteringPP[111] changed from 225.6881447485524 ' - 'to 256.32979611017197.\n' - 'Value of root.surfaceplant.TenteringPP[112] changed from 225.641648679509 to ' - '256.27148929654834.\n' - 'Value of root.surfaceplant.TenteringPP[113] changed from 225.59433260619488 ' - 'to 256.21218393293566.\n' - 'Value of root.surfaceplant.TenteringPP[114] changed from 225.54620255176246 ' - 'to 256.15188804804507.\n' - 'Value of root.surfaceplant.TenteringPP[115] changed from 225.4972647457417 ' - 'to 256.090609905043.\n' - 'Value of root.surfaceplant.TenteringPP[116] changed from 225.44752561175338 ' - 'to 256.0283579865346.\n' - 'Value of root.surfaceplant.TenteringPP[117] changed from 225.39699175560153 ' - 'to 255.96514098004116.\n' - 'Value of root.surfaceplant.TenteringPP[118] changed from 225.3456699537421 ' - 'to 255.90096776396615.\n' - 'Value of root.surfaceplant.TenteringPP[119] changed from 225.29356714212594 ' - 'to 255.83584739404472.\n' - 'Value of root.surfaceplant.TenteringPP[120] changed from 225.24069040541258 ' - 'to 255.7697890902707.\n' - 'Value of root.surfaceplant.TenteringPP[121] changed from 225.18704696654981 ' - 'to 255.70280222429267.\n' - 'Value of root.surfaceplant.TenteringPP[122] changed from 225.1326441767153 ' - 'to 255.63489630727247.\n' - 'Value of root.surfaceplant.TenteringPP[123] changed from 225.07748950561364 ' - 'to 255.56608097819674.\n' - 'Value of root.surfaceplant.TenteringPP[124] changed from 225.0215905321242 ' - 'to 255.4963659926335.\n' - 'Value of root.surfaceplant.TenteringPP[125] changed from 224.96495493529233 ' - 'to 255.42576121192343.\n' - 'Value of root.surfaceplant.TenteringPP[126] changed from 224.90759048565778 ' - 'to 255.35427659279662.\n' - 'Value of root.surfaceplant.TenteringPP[127] changed from 224.84950503691368 ' - 'to 255.2819221774056.\n' - 'Value of root.surfaceplant.TenteringPP[128] changed from 224.79070651788814 ' - 'to 255.20870808376333.\n' - 'Value of root.surfaceplant.TenteringPP[129] changed from 224.73120292484157 ' - 'to 255.1346444965762.\n' - 'Value of root.surfaceplant.TenteringPP[130] changed from 224.67100231407215 ' - 'to 255.05974165846226.\n' - 'Value of root.surfaceplant.TenteringPP[131] changed from 224.61011279482162 ' - 'to 254.98400986154343.\n' - 'Value of root.surfaceplant.TenteringPP[132] changed from 224.54854252247353 ' - 'to 254.90745943940158.\n' - 'Value of root.surfaceplant.TenteringPP[133] changed from 224.48629969203654 ' - 'to 254.8301007593882.\n' - 'Value of root.surfaceplant.TenteringPP[134] changed from 224.42339253190454 ' - 'to 254.7519442152759.\n' - 'Value of root.surfaceplant.TenteringPP[135] changed from 224.35982929788582 ' - 'to 254.67300022024392.\n' - 'Value of root.surfaceplant.TenteringPP[136] changed from 224.2956182674937 ' - 'to 254.59327920018416.\n' - 'Value of root.surfaceplant.TenteringPP[137] changed from 224.23076773449063 ' - 'to 254.51279158732018.\n' - 'Value of root.surfaceplant.TenteringPP[138] changed from 224.16528600367823 ' - 'to 254.43154781412795.\n' - 'Value of root.surfaceplant.TenteringPP[139] changed from 224.0991813859253 ' - 'to 254.3495583075478.\n' - 'Value of root.surfaceplant.TenteringPP[140] changed from 224.03246219342677 ' - 'to 254.26683348347956.\n' - 'Value of root.surfaceplant.TenteringPP[141] changed from 223.9651367351858 ' - 'to 254.18338374154922.\n' - 'Value of root.surfaceplant.TenteringPP[142] changed from 223.89721331271167 ' - 'to 254.09921946013986.\n' - 'Value of root.surfaceplant.TenteringPP[143] changed from 223.8287002159267 ' - 'to 254.01435099167543.\n' - 'Value of root.surfaceplant.TenteringPP[144] changed from 223.75960571927436 ' - 'to 253.92878865815015.\n' - 'Value of root.surfaceplant.TenteringPP[145] changed from 223.6899380780228 ' - 'to 253.84254274689368.\n' - 'Value of root.surfaceplant.TenteringPP[146] changed from 223.61970552475557 ' - 'to 253.75562350656378.\n' - 'Value of root.surfaceplant.TenteringPP[147] changed from 223.54891626604422 ' - 'to 253.6680411433582.\n' - 'Value of root.surfaceplant.TenteringPP[148] changed from 223.47757847929546 ' - 'to 253.57980581743698.\n' - 'Value of root.surfaceplant.TenteringPP[149] changed from 223.40570030976696 ' - 'to 253.49092763954837.\n' - 'Value of root.surfaceplant.TenteringPP[150] changed from 223.3332898677454 ' - 'to 253.40141666784893.\n' - 'Value of root.surfaceplant.TenteringPP[151] changed from 223.2603552258809 ' - 'to 253.3112829049121.\n' - 'Value of root.surfaceplant.TenteringPP[152] changed from 223.18690441667167 ' - 'to 253.22053629491637.\n' - 'Value of root.surfaceplant.TenteringPP[153] changed from 223.11294543009393 ' - 'to 253.12918672100704.\n' - 'Value of root.surfaceplant.TenteringPP[154] changed from 223.03848621137044 ' - 'to 253.03724400282385.\n' - 'Value of root.surfaceplant.TenteringPP[155] changed from 222.9635346588733 ' - 'to 252.94471789418805.\n' - 'Value of root.surfaceplant.TenteringPP[156] changed from 222.88809862215513 ' - 'to 252.85161808094313.\n' - 'Value of root.surfaceplant.TenteringPP[157] changed from 222.81218590010383 ' - 'to 252.75795417894165.\n' - 'Value of root.surfaceplant.TenteringPP[158] changed from 222.73580423921604 ' - 'to 252.663735732173.\n' - 'Value of root.surfaceplant.TenteringPP[159] changed from 222.65896133198424 ' - 'to 252.56897221102588.\n' - 'Value of root.surfaceplant.TenteringPP[160] changed from 222.58166481539334 ' - 'to 252.47367301068027.\n' - 'Value of root.surfaceplant.TenteringPP[161] changed from 222.50392226952172 ' - 'to 252.37784744962198.\n' - 'Value of root.surfaceplant.TenteringPP[162] changed from 222.42574121624293 ' - 'to 252.28150476827682.\n' - 'Value of root.surfaceplant.TenteringPP[163] changed from 222.34712911802347 ' - 'to 252.18465412775686.\n' - 'Value of root.surfaceplant.TenteringPP[164] changed from 222.26809337681297 ' - 'to 252.08730460871544.\n' - 'Value of root.surfaceplant.TenteringPP[165] changed from 222.18864133302216 ' - 'to 251.9894652103054.\n' - 'Value of root.surfaceplant.TenteringPP[166] changed from 222.10878026458596 ' - 'to 251.89114484923596.\n' - 'Value of root.surfaceplant.TenteringPP[167] changed from 222.02851738610693 ' - 'to 251.79235235892463.\n' - 'Value of root.surfaceplant.TenteringPP[168] changed from 221.9478598480762 ' - 'to 251.69309648873815.\n' - 'Value of root.surfaceplant.TenteringPP[169] changed from 221.86681473616844 ' - 'to 251.59338590332032.\n' - 'Value of root.surfaceplant.TenteringPP[170] changed from 221.785389070607 to ' - '251.49322918200147.\n' - 'Value of root.surfaceplant.TenteringPP[171] changed from 221.70358980559723 ' - 'to 251.3926348182855.\n' - 'Value of root.surfaceplant.TenteringPP[172] changed from 221.62142382882348 ' - 'to 251.29161121941252.\n' - 'Value of root.surfaceplant.TenteringPP[173] changed from 221.5388979610082 ' - 'to 251.19016670599166.\n' - 'Value of root.surfaceplant.TenteringPP[174] changed from 221.45601895552906 ' - 'to 251.08830951170103.\n' - 'Value of root.surfaceplant.TenteringPP[175] changed from 221.37279349809256 ' - 'to 250.98604778305287.\n' - 'Value of root.surfaceplant.TenteringPP[176] changed from 221.28922820646062 ' - 'to 250.88338957921906.\n' - 'Value of root.surfaceplant.TenteringPP[177] changed from 221.20532963022788 ' - 'to 250.7803428719149.\n' - 'Value of root.surfaceplant.TenteringPP[178] changed from 221.12110425064748 ' - 'to 250.67691554533775.\n' - 'Value of root.surfaceplant.TenteringPP[179] changed from 221.03655848050275 ' - 'to 250.5731153961583.\n' - 'Value of root.surfaceplant.TenteringPP[180] changed from 220.95169866402298 ' - 'to 250.4689501335614.\n' - 'Value of root.surfaceplant.TenteringPP[181] changed from 220.86653107683952 ' - 'to 250.3644273793338.\n' - 'Value of root.surfaceplant.TenteringPP[182] changed from 220.78106192598344 ' - 'to 250.2595546679964.\n' - 'Value of root.surfaceplant.TenteringPP[183] changed from 220.69529734991863 ' - 'to 250.15433944697895.\n' - 'Value of root.surfaceplant.TenteringPP[184] changed from 220.60924341861158 ' - 'to 250.0487890768343.\n' - 'Value of root.surfaceplant.TenteringPP[185] changed from 220.52290613363482 ' - 'to 249.94291083149096.\n' - 'Value of root.surfaceplant.TenteringPP[186] changed from 220.43629142830196 ' - 'to 249.8367118985404.\n' - 'Value of root.surfaceplant.TenteringPP[187] changed from 220.34940516783317 ' - 'to 249.73019937955846.\n' - 'Value of root.surfaceplant.TenteringPP[188] changed from 220.26225314954928 ' - 'to 249.62338029045898.\n' - 'Value of root.surfaceplant.TenteringPP[189] changed from 220.1748411030929 ' - 'to 249.51626156187587.\n' - 'Value of root.surfaceplant.TenteringPP[190] changed from 220.08717469067486 ' - 'to 249.40885003957467.\n' - 'Value of root.surfaceplant.TenteringPP[191] changed from 219.99925950734533 ' - 'to 249.30115248488931.\n' - 'Value of root.surfaceplant.TenteringPP[192] changed from 219.91110108128703 ' - 'to 249.19317557518463.\n' - 'Value of root.surfaceplant.TenteringPP[193] changed from 219.8227048741303 ' - 'to 249.0849259043413.\n' - 'Value of root.surfaceplant.TenteringPP[194] changed from 219.73407628128783 ' - 'to 248.97640998326276.\n' - 'Value of root.surfaceplant.TenteringPP[195] changed from 219.64522063230885 ' - 'to 248.8676342404025.\n' - 'Value of root.surfaceplant.TenteringPP[196] changed from 219.5561431912505 ' - 'to 248.75860502231015.\n' - 'Value of root.surfaceplant.TenteringPP[197] changed from 219.4668491570664 ' - 'to 248.64932859419503.\n' - 'Value of root.surfaceplant.TenteringPP[198] changed from 219.3773436640102 ' - 'to 248.53981114050637.\n' - 'Value of root.surfaceplant.TenteringPP[199] changed from 219.2876317820541 ' - 'to 248.4300587655287.\n' - 'Value of root.surfaceplant.TenteringPP[200] changed from 219.1977185173207 ' - 'to 248.32007749399096.\n' - 'Value of root.surfaceplant.TenteringPP[201] changed from 219.1076088125276 ' - 'to 248.2098732716889.\n' - 'Value of root.surfaceplant.TenteringPP[202] changed from 219.0173075474436 ' - 'to 248.0994519661193.\n' - 'Value of root.surfaceplant.TenteringPP[203] changed from 218.92681953935585 ' - 'to 247.9888193671249.\n' - 'Value of root.surfaceplant.TenteringPP[204] changed from 218.8361495435469 ' - 'to 247.87798118754998.\n' - 'Value of root.surfaceplant.TenteringPP[205] changed from 218.74530225378146 ' - 'to 247.7669430639044.\n' - 'Value of root.surfaceplant.TenteringPP[206] changed from 218.65428230280088 ' - 'to 247.65571055703592.\n' - 'Value of root.surfaceplant.TenteringPP[207] changed from 218.5630942628264 ' - 'to 247.5442891528105.\n' - 'Value of root.surfaceplant.TenteringPP[208] changed from 218.47174264606878 ' - 'to 247.43268426279863.\n' - 'Value of root.surfaceplant.TenteringPP[209] changed from 218.38023190524444 ' - 'to 247.32090122496777.\n' - 'Value of root.surfaceplant.TenteringPP[210] changed from 218.28856643409833 ' - 'to 247.2089453043803.\n' - 'Value of root.surfaceplant.TenteringPP[211] changed from 218.19675056793068 ' - 'to 247.0968216938954.\n' - 'Value of root.surfaceplant.TenteringPP[212] changed from 218.1047885841296 ' - 'to 246.9845355148755.\n' - 'Value of root.surfaceplant.TenteringPP[213] changed from 218.01268470270745 ' - 'to 246.87209181789535.\n' - 'Value of root.surfaceplant.TenteringPP[214] changed from 217.9204430868404 ' - 'to 246.75949558345425.\n' - 'Value of root.surfaceplant.TenteringPP[215] changed from 217.82806784341219 ' - 'to 246.64675172269028.\n' - 'Value of root.surfaceplant.TenteringPP[216] changed from 217.73556302355942 ' - 'to 246.53386507809614.\n' - 'Value of root.surfaceplant.TenteringPP[217] changed from 217.64293262321993 ' - 'to 246.42084042423627.\n' - 'Value of root.surfaceplant.TenteringPP[218] changed from 217.55018058368273 ' - 'to 246.3076824684643.\n' - 'Value of root.surfaceplant.TenteringPP[219] changed from 217.45731079213934 ' - 'to 246.1943958516412.\n' - 'Value of root.surfaceplant.TenteringPP[220] changed from 217.3643270822363 ' - 'to 246.08098514885273.\n' - 'Value of root.surfaceplant.TenteringPP[221] changed from 217.2712332346278 ' - 'to 245.96745487012674.\n' - 'Value of root.surfaceplant.TenteringPP[222] changed from 217.17803297753017 ' - 'to 245.85380946114932.\n' - 'Value of root.surfaceplant.TenteringPP[223] changed from 217.08472998727427 ' - 'to 245.74005330397927.\n' - 'Value of root.surfaceplant.TenteringPP[224] changed from 216.99132788885962 ' - 'to 245.6261907177617.\n' - 'Value of root.surfaceplant.TenteringPP[225] changed from 216.8978302565064 ' - 'to 245.5122259594387.\n' - 'Value of root.surfaceplant.TenteringPP[226] changed from 216.80424061420777 ' - 'to 245.39816322445847.\n' - 'Value of root.surfaceplant.TenteringPP[227] changed from 216.71056243628018 ' - 'to 245.28400664748165.\n' - 'Value of root.surfaceplant.TenteringPP[228] changed from 216.6167991479132 ' - 'to 245.16976030308433.\n' - 'Value of root.surfaceplant.TenteringPP[229] changed from 216.5229541257168 ' - 'to 245.0554282064588.\n' - 'Value of root.surfaceplant.TenteringPP[230] changed from 216.42903069826767 ' - 'to 244.94101431411048.\n' - 'Value of root.surfaceplant.TenteringPP[231] changed from 216.33503214665296 ' - 'to 244.8265225245511.\n' - 'Value of root.surfaceplant.TenteringPP[232] changed from 216.24096170501218 ' - 'to 244.71195667898886.\n' - 'Value of root.surfaceplant.TenteringPP[233] changed from 216.14682256107662 ' - 'to 244.59732056201375.\n' - 'Value of root.surfaceplant.TenteringPP[234] changed from 216.05261785670567 ' - 'to 244.4826179022793.\n' - 'Value of root.surfaceplant.TenteringPP[235] changed from 215.9583506884216 ' - 'to 244.3678523731799.\n' - 'Value of root.surfaceplant.TenteringPP[236] changed from 215.86402410794008 ' - 'to 244.25302759352365.\n' - 'Value of root.surfaceplant.TenteringPP[237] changed from 215.76964112269874 ' - 'to 244.13814712820064.\n' - 'Value of root.surfaceplant.TenteringPP[238] changed from 215.67520469638194 ' - 'to 244.02321448884618.\n' - 'Value of root.surfaceplant.TenteringPP[239] changed from 215.58071774944247 ' - 'to 243.90823313449977.\n' - 'Value of root.surfaceplant.TenteringPP[240] changed from 215.48618315962005 ' - 'to 243.7932064722584.\n' - 'Value of root.surfaceplant.TenteringPP[241] changed from 215.39160376245576 ' - 'to 243.6781378579251.\n' - 'Value of root.surfaceplant.TenteringPP[242] changed from 215.29698235180356 ' - 'to 243.5630305966523.\n' - 'Value of root.surfaceplant.TenteringPP[243] changed from 215.2023216803376 ' - 'to 243.44788794358013.\n' - 'Value of root.surfaceplant.TenteringPP[244] changed from 215.10762446005566 ' - 'to 243.33271310446838.\n' - 'Value of root.surfaceplant.TenteringPP[245] changed from 215.0128933627794 ' - 'to 243.2175092363243.\n' - 'Value of root.surfaceplant.TenteringPP[246] changed from 214.91813102064984 ' - 'to 243.10227944802395.\n' - 'Value of root.surfaceplant.TenteringPP[247] changed from 214.8233400266192 ' - 'to 242.98702680092842.\n' - 'Value of root.surfaceplant.TenteringPP[248] changed from 214.72852293493892 ' - 'to 242.8717543094942.\n' - 'Value of root.surfaceplant.TenteringPP[249] changed from 214.633682261643 to ' - '242.75646494187785.\n' - 'Value of root.surfaceplant.TenteringPP[250] changed from 214.5388204850274 ' - 'to 242.64116162053537.\n' - 'Value of root.surfaceplant.TenteringPP[251] changed from 214.4439400461254 ' - 'to 242.52584722281497.\n' - 'Value of root.surfaceplant.TenteringPP[252] changed from 214.34904334917843 ' - 'to 242.4105245815449.\n' - 'Value of root.surfaceplant.TenteringPP[253] changed from 214.25413276210273 ' - 'to 242.29519648561498.\n' - 'Value of root.surfaceplant.TenteringPP[254] changed from 214.1592106169515 ' - 'to 242.17986568055224.\n' - 'Value of root.surfaceplant.TenteringPP[255] changed from 214.06427921037286 ' - 'to 242.0645348690911.\n' - 'Value of root.surfaceplant.TenteringPP[256] changed from 213.96934080406314 ' - 'to 241.94920671173713.\n' - 'Value of root.surfaceplant.TenteringPP[257] changed from 213.87439762521646 ' - 'to 241.83388382732537.\n' - 'Value of root.surfaceplant.TenteringPP[258] changed from 213.77945186696874 ' - 'to 241.71856879357267.\n' - 'Value of root.surfaceplant.TenteringPP[259] changed from 213.6845056888382 ' - 'to 241.6032641476238.\n' - 'Value of root.surfaceplant.TenteringPP[260] changed from 213.58956121716133 ' - 'to 241.4879723865918.\n' - 'Value of root.surfaceplant.TenteringPP[261] changed from 213.4946205455236 ' - 'to 241.37269596809324.\n' - 'Value of root.surfaceplant.TenteringPP[262] changed from 213.39968573518652 ' - 'to 241.25743731077603.\n' - 'Value of root.surfaceplant.TenteringPP[263] changed from 213.3047588155102 ' - 'to 241.1421987948428.\n' - 'Value of root.surfaceplant.TenteringPP[264] changed from 213.20984178437084 ' - 'to 241.02698276256788.\n' - 'Value of root.surfaceplant.TenteringPP[265] changed from 213.11493660857425 ' - 'to 240.91179151880786.\n' - 'Value of root.surfaceplant.TenteringPP[266] changed from 213.02004522426472 ' - 'to 240.79662733150758.\n' - 'Value of root.surfaceplant.TenteringPP[267] changed from 212.92516953732948 ' - 'to 240.68149243219924.\n' - 'Value of root.surfaceplant.TenteringPP[268] changed from 212.83031142379886 ' - 'to 240.56638901649626.\n' - 'Value of root.surfaceplant.TenteringPP[269] changed from 212.73547273024167 ' - 'to 240.45131924458107.\n' - 'Value of root.surfaceplant.TenteringPP[270] changed from 212.64065527415633 ' - 'to 240.3362852416877.\n' - 'Value of root.surfaceplant.TenteringPP[271] changed from 212.54586084435806 ' - 'to 240.221289098578.\n' - 'Value of root.surfaceplant.TenteringPP[272] changed from 212.45109120136055 ' - 'to 240.10633287201293.\n' - 'Value of root.surfaceplant.TenteringPP[273] changed from 212.35634807775452 ' - 'to 239.9914185852173.\n' - 'Value of root.surfaceplant.TenteringPP[274] changed from 212.26163317858118 ' - 'to 239.87654822833994.\n' - 'Value of root.surfaceplant.TenteringPP[275] changed from 212.16694818170154 ' - 'to 239.76172375890772.\n' - 'Value of root.surfaceplant.TenteringPP[276] changed from 212.07229473816133 ' - 'to 239.6469471022739.\n' - 'Value of root.surfaceplant.TenteringPP[277] changed from 211.97767447255202 ' - 'to 239.53222015206157.\n' - 'Value of root.surfaceplant.TenteringPP[278] changed from 211.88308898336697 ' - 'to 239.41754477060118.\n' - 'Value of root.surfaceplant.TenteringPP[279] changed from 211.78853984335402 ' - 'to 239.3029227893628.\n' - 'Value of root.surfaceplant.TenteringPP[280] changed from 211.6940285998632 ' - 'to 239.1883560093831.\n' - 'Value of root.surfaceplant.TenteringPP[281] changed from 211.5995567751909 ' - 'to 239.07384620168693.\n' - 'Value of root.surfaceplant.TenteringPP[282] changed from 211.50512586691946 ' - 'to 238.95939510770364.\n' - 'Value of root.surfaceplant.TenteringPP[283] changed from 211.41073734825275 ' - 'to 238.8450044396782.\n' - 'Value of root.surfaceplant.TenteringPP[284] changed from 211.31639266834787 ' - 'to 238.73067588107708.\n' - 'Value of root.surfaceplant.TenteringPP[285] changed from 211.22209325264254 ' - 'to 238.61641108698905.\n' - 'Value of root.surfaceplant.TenteringPP[286] changed from 211.12784050317848 ' - 'to 238.5022116845208.\n' - 'Value of root.surfaceplant.TenteringPP[287] changed from 211.033635798921 to ' - '238.38807927318766.\n' - 'Value of root.surfaceplant.TenteringPP[288] changed from 210.93948049607465 ' - 'to 238.2740154252991.\n' - 'Value of root.surfaceplant.TenteringPP[289] changed from 210.84537592839442 ' - 'to 238.1600216863395.\n' - 'Value of root.surfaceplant.TenteringPP[290] changed from 210.75132340749386 ' - 'to 238.0460995753438.\n' - 'Value of root.surfaceplant.TenteringPP[291] changed from 210.65732422314872 ' - 'to 237.93225058526852.\n' - 'Value of root.surfaceplant.TenteringPP[292] changed from 210.56337964359702 ' - 'to 237.8184761833579.\n' - 'Value of root.surfaceplant.TenteringPP[293] changed from 210.46949091583542 ' - 'to 237.704777811505.\n' - 'Value of root.surfaceplant.TenteringPP[294] changed from 210.37565926591154 ' - 'to 237.59115688660842.\n' - 'Value of root.surfaceplant.TenteringPP[295] changed from 210.28188589921294 ' - 'to 237.4776148009244.\n' - 'Value of root.surfaceplant.TenteringPP[296] changed from 210.18817200075205 ' - 'to 237.3641529224138.\n' - 'Value of root.surfaceplant.TenteringPP[297] changed from 210.09451873544774 ' - 'to 237.2507725950853.\n' - 'Value of root.surfaceplant.TenteringPP[298] changed from 210.00092724840331 ' - 'to 237.13747513933328.\n' - 'Value of root.surfaceplant.TenteringPP[299] changed from 209.90739866518058 ' - 'to 237.02426185227162.\n' - 'Value of root.surfaceplant.TenteringPP[300] changed from 209.81393409207072 ' - 'to 236.9111340080634.\n' - 'Value of root.surfaceplant.TenteringPP[301] changed from 209.72053461636162 ' - 'to 236.79809285824538.\n' - 'Value of root.surfaceplant.TenteringPP[302] changed from 209.62720130660162 ' - 'to 236.685139632049.\n' - 'Value of root.surfaceplant.TenteringPP[303] changed from 209.5339352128598 ' - 'to 236.57227553671657.\n' - 'Value of root.surfaceplant.TenteringPP[304] changed from 209.44073736698326 ' - 'to 236.45950175781348.\n' - 'Value of root.surfaceplant.TenteringPP[305] changed from 209.34760878285047 ' - 'to 236.34681945953616.\n' - 'Value of root.surfaceplant.TenteringPP[306] changed from 209.25455045662167 ' - 'to 236.2342297850159.\n' - 'Value of root.surfaceplant.TenteringPP[307] changed from 209.16156336698612 ' - 'to 236.12173385661862.\n' - 'Value of root.surfaceplant.TenteringPP[308] changed from 209.0686484754058 ' - 'to 236.00933277624054.\n' - 'Value of root.surfaceplant.TenteringPP[309] changed from 208.9758067263558 ' - 'to 235.89702762559997.\n' - 'Value of root.surfaceplant.TenteringPP[310] changed from 208.88303904756216 ' - 'to 235.78481946652502.\n' - 'Value of root.surfaceplant.TenteringPP[311] changed from 208.79034635023578 ' - 'to 235.67270934123746.\n' - 'Value of root.surfaceplant.TenteringPP[312] changed from 208.69772952930393 ' - 'to 235.56069827263286.\n' - 'Value of root.surfaceplant.TenteringPP[313] changed from 208.60518946363817 ' - 'to 235.44878726455684.\n' - 'Value of root.surfaceplant.TenteringPP[314] changed from 208.51272701627977 ' - 'to 235.3369773020775.\n' - 'Value of root.surfaceplant.TenteringPP[315] changed from 208.42034303466139 ' - 'to 235.22526935175415.\n' - 'Value of root.surfaceplant.TenteringPP[316] changed from 208.32803835082657 ' - 'to 235.11366436190235.\n' - 'Value of root.surfaceplant.TenteringPP[317] changed from 208.235813781646 to ' - '235.00216326285582.\n' - 'Value of root.surfaceplant.TenteringPP[318] changed from 208.1436701290306 ' - 'to 234.8907669672239.\n' - 'Value of root.surfaceplant.TenteringPP[319] changed from 208.05160818014232 ' - 'to 234.7794763701461.\n' - 'Value of root.surfaceplant.TenteringPP[320] changed from 207.95962870760167 ' - 'to 234.66829234954304.\n' - 'Value of root.surfaceplant.TenteringPP[321] changed from 207.86773246969267 ' - 'to 234.55721576636392.\n' - 'Value of root.surfaceplant.TenteringPP[322] changed from 207.77592021056492 ' - 'to 234.44624746483063.\n' - 'Value of root.surfaceplant.TenteringPP[323] changed from 207.68419266043318 ' - 'to 234.33538827267836.\n' - 'Value of root.surfaceplant.TenteringPP[324] changed from 207.59255053577405 ' - 'to 234.22463900139311.\n' - 'Value of root.surfaceplant.TenteringPP[325] changed from 207.50099453951998 ' - 'to 234.11400044644563.\n' - 'Value of root.surfaceplant.TenteringPP[326] changed from 207.40952536125093 ' - 'to 234.00347338752277.\n' - 'Value of root.surfaceplant.TenteringPP[327] changed from 207.31814367738315 ' - 'to 233.89305858875463.\n' - 'Value of root.surfaceplant.TenteringPP[328] changed from 207.22685015135553 ' - 'to 233.7827567989396.\n' - 'Value of root.surfaceplant.TenteringPP[329] changed from 207.13564543381352 ' - 'to 233.67256875176577.\n' - 'Value of root.surfaceplant.TenteringPP[330] changed from 207.04453016279027 ' - 'to 233.56249516602907.\n' - 'Value of root.surfaceplant.TenteringPP[331] changed from 206.95350496388582 ' - 'to 233.45253674584885.\n' - 'Value of root.surfaceplant.TenteringPP[332] changed from 206.86257045044317 ' - 'to 233.34269418088056.\n' - 'Value of root.surfaceplant.TenteringPP[333] changed from 206.77172722372262 ' - 'to 233.2329681465247.\n' - 'Value of root.surfaceplant.TenteringPP[334] changed from 206.68097587307335 ' - 'to 233.1233593041337.\n' - 'Value of root.surfaceplant.TenteringPP[335] changed from 206.5903169761028 ' - 'to 233.01386830121564.\n' - 'Value of root.surfaceplant.TenteringPP[336] changed from 206.4997510988437 ' - 'to 232.90449577163497.\n' - 'Value of root.surfaceplant.TenteringPP[337] changed from 206.4092787959188 ' - 'to 232.79524233581074.\n' - 'Value of root.surfaceplant.TenteringPP[338] changed from 206.31890061070362 ' - 'to 232.68610860091175.\n' - 'Value of root.surfaceplant.TenteringPP[339] changed from 206.22861707548637 ' - 'to 232.57709516104936.\n' - 'Value of root.surfaceplant.TenteringPP[340] changed from 206.1384287116265 ' - 'to 232.46820259746724.\n' - 'Value of root.surfaceplant.TenteringPP[341] changed from 206.04833602971027 ' - 'to 232.35943147872877.\n' - 'Value of root.surfaceplant.TenteringPP[342] changed from 205.95833952970492 ' - 'to 232.2507823609017.\n' - 'Value of root.surfaceplant.TenteringPP[343] changed from 205.8684397011102 ' - 'to 232.1422557877401.\n' - 'Value of root.surfaceplant.TenteringPP[344] changed from 205.77863702310805 ' - 'to 232.03385229086425.\n' - 'Value of root.surfaceplant.TenteringPP[345] changed from 205.68893196471026 ' - 'to 231.92557238993732.\n' - 'Value of root.surfaceplant.TenteringPP[346] changed from 205.5993249849041 ' - 'to 231.8174165928402.\n' - 'Value of root.surfaceplant.TenteringPP[347] changed from 205.50981653279564 ' - 'to 231.70938539584358.\n' - 'Value of root.surfaceplant.TenteringPP[348] changed from 205.42040704775172 ' - 'to 231.60147928377765.\n' - 'Value of root.surfaceplant.TenteringPP[349] changed from 205.3310969595394 ' - 'to 231.4936987301997.\n' - 'Value of root.surfaceplant.TenteringPP[350] changed from 205.24188668846386 ' - 'to 231.38604419755868.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[0] changed from ' - '1094347079.865682 to 1325446456.6576545.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[1] changed from ' - '1094347079.8105743 to 1325446456.5648806.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[2] changed from ' - '1094346994.933417 to 1325446327.7752042.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[3] changed from ' - '1094343059.4363928 to 1325440675.5426247.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[4] changed from ' - '1094304190.4532602 to 1325386842.4692135.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[5] changed from ' - '1094137962.4101267 to 1325162477.4148467.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[6] changed from ' - '1093700481.1198754 to 1324582976.7358584.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[7] changed from ' - '1092843565.26182 to 1323463714.5302563.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[8] changed from ' - '1091453425.0809498 to 1321667487.7916625.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[9] changed from ' - '1089464669.4355264 to 1319119583.9049146.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[10] changed from ' - '1086856912.105105 to 1315801536.3084433.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[11] changed from ' - '1083644223.658538 to 1311736843.994545.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[12] changed from ' - '1079863735.54063 to 1306976341.2544644.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[13] changed from ' - '1075566067.5941176 to 1301586256.002384.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[14] changed from ' - '1070808221.8285382 to 1295639536.448519.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[15] changed from ' - '1065648718.3653375 to 1289210035.0408473.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[16] changed from ' - '1060144488.7552577 to 1282368878.5660303.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[17] changed from ' - '1054349041.2207874 to 1275182391.1501865.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[18] changed from ' - '1048311499.2082274 to 1267711065.5080104.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[19] changed from ' - '1042076214.6451665 to 1260009212.004246.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[20] changed from ' - '1035682743.7544156 to 1252125026.588169.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[21] changed from ' - '1029166039.9752918 to 1244100902.650823.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[22] changed from ' - '1022556767.0231023 to 1235973871.8493443.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[23] changed from ' - '1015881669.101683 to 1227776100.4016397.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[24] changed from ' - '1009163958.5245475 to 1219535395.344904.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[25] changed from ' - '1002423696.592864 to 1211275693.7970855.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[26] changed from ' - '995678153.8625153 to 1203017520.3334181.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[27] changed from ' - '988942142.5954907 to 1194778405.298354.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[28] changed from ' - '982228318.4165369 to 1186573261.67598.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[29] changed from ' - '975547450.7999653 to 1178414721.033072.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[30] changed from ' - '968908663.5487772 to 1170313430.6977515.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[31] changed from ' - '962319647.2730849 to 1162278315.190175.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[32] changed from ' - '955786846.2774194 to 1154316805.2756505.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[33] changed from ' - '949315622.393206 to 1146435038.0596113.\n' - 'Value of root.surfaceplant.HeatkWhExtracted.value[34] changed from ' - '942910398.2527815 to 1138638031.4144526.\n' - 'Value of root.surfaceplant.PumpingkWh.value[0] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[1] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[2] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[3] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[4] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[5] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[6] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[7] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[8] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[9] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[10] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[11] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[12] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[13] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[14] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[15] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[16] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[17] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[18] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[19] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[20] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[21] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[22] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[23] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[24] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[25] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[26] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[27] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[28] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[29] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[30] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[31] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[32] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[33] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.PumpingkWh.value[34] changed from ' - '1412103.6176849776 to 456044.463822447.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[0] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[1] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[2] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[3] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[4] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[5] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[6] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[7] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[8] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[9] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[10] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[11] changed from ' - '21.16072704822125 to 28.624694332044122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[12] changed from ' - '21.160727048221148 to 28.624694332043983.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[13] changed from ' - '21.160727048220796 to 28.624694332043106.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[14] changed from ' - '21.160727048217574 to 28.624694332036018.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[15] changed from ' - '21.160727048197916 to 28.62469433199296.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[16] changed from ' - '21.160727048100615 to 28.624694331786458.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[17] changed from ' - '21.160727047705713 to 28.624694330968026.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[18] changed from ' - '21.160727046342725 to 28.624694328202708.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[19] changed from ' - '21.160727042239067 to 28.624694320034205.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[20] changed from ' - '21.160727031233897 to 28.624694298500735.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[21] changed from ' - '21.160727004499705 to 28.624694246996313.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[22] changed from ' - '21.160726944857437 to 28.62469413370178.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[23] changed from ' - '21.16072682126786 to 28.62469390193627.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[24] changed from ' - '21.160726581136128 to 28.624693456898868.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[25] changed from ' - '21.160726140183566 to 28.624692648488324.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[26] changed from ' - '21.160725369794147 to 28.6246912501626.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[27] changed from ' - '21.160724081928286 to 28.624688934095595.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[28] changed from ' - '21.160722011874576 to 28.6246852431799.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[29] changed from ' - '21.160718799273244 to 28.62467956066187.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[30] changed from ' - '21.160713967972452 to 28.624671078372817.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[31] changed from ' - '21.160706905355447 to 28.624658764622097.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[32] changed from ' - '21.160696841821267 to 28.62464133283806.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[33] changed from ' - '21.160682831083765 to 28.62461721200308.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[34] changed from ' - '21.160663731914713 to 28.624584519824122.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[35] changed from ' - '21.16063819187793 to 28.624541039442843.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[36] changed from ' - '21.160604633505987 to 28.62448420031554.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[37] changed from ' - '21.16056124326552 to 28.62441106372337.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[38] changed from ' - '21.160505963543148 to 28.6243183131834.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[39] changed from ' - '21.160436487781105 to 28.624202249871367.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[40] changed from ' - '21.16035025878734 to 28.624058793011375.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[41] changed from ' - '21.16024447015872 to 28.623883485054744.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[42] changed from ' - '21.160116070681998 to 28.623671501366537.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[43] changed from ' - '21.159961771513697 to 28.623417664050418.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[44] changed from ' - '21.159778055894694 to 28.623116459484468.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[45] changed from ' - '21.159561191125363 to 28.622762059098935.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[46] changed from ' - '21.159307242499395 to 28.62234834290518.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[47] changed from ' - '21.1590120888925 to 28.62186892528184.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[48] changed from ' - '21.158671439696946 to 28.62131718253146.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[49] changed from ' - '21.15828085279964 to 28.620686281739648.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[50] changed from ' - '21.157835753319098 to 28.619969210497544.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[51] changed from ' - '21.157331452827542 to 28.61915880707794.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[52] changed from ' - '21.156763168812173 to 28.61824779069966.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[53] changed from ' - '21.156126044148447 to 28.617228791543184.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[54] changed from ' - '21.155415166382383 to 28.61609438023214.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[55] changed from ' - '21.154625586647803 to 28.614837096527236.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[56] changed from ' - '21.153752338062468 to 28.613449477020534.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[57] changed from ' - '21.152790453475866 to 28.6119240816535.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[58] changed from ' - '21.151734982461154 to 28.61025351892004.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[59] changed from ' - '21.15058100746567 to 28.60843046964248.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[60] changed from ' - '21.14932365905199 to 28.606447709240577.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[61] changed from ' - '21.147958130182232 to 28.604298128438604.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[62] changed from ' - '21.146479689511157 to 28.60197475237925.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[63] changed from ' - '21.144883693668483 to 28.599470758131964.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[64] changed from ' - '21.143165598525105 to 28.59677949060269.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[65] changed from ' - '21.141320969444948 to 28.593894476864765.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[66] changed from ' - '21.13934549053717 to 28.590809438945502.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[67] changed from ' - '21.137234972928628 to 28.587518305112212.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[68] changed from ' - '21.134985362083828 to 28.584015219709357.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[69] changed from ' - '21.132592744205194 to 28.580294551607142.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[70] changed from ' - '21.13005335175031 to 28.576350901324908.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[71] changed from ' - '21.12736356810489 to 28.572179106897973.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[72] changed from ' - '21.12451993145556 to 28.567774248556443.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[73] changed from ' - '21.121519137904627 to 28.563131652292007.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[74] changed from ' - '21.1183580438718 to 28.55824689237904.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[75] changed from ' - '21.115033667828943 to 28.55311579292834.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[76] changed from ' - '21.111543191412007 to 28.547734428540032.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[77] changed from ' - '21.10788395995477 to 28.54209912412714.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[78] changed from ' - '21.104053482488396 to 28.536206453978878.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[79] changed from ' - '21.100049431248745 to 28.53005324012685.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[80] changed from ' - '21.095869640734712 to 28.523636550079488.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[81] changed from ' - '21.091512106353875 to 28.516953693983282.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[82] changed from ' - '21.086974982697075 to 28.510002221270465.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[83] changed from ' - '21.08225658147674 to 28.502779916846087.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[84] changed from ' - '21.077355369162838 to 28.495284796866905.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[85] changed from ' - '21.07226996435171 to 28.487515104160785.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[86] changed from ' - '21.06699913489582 to 28.47946930333284.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[87] changed from ' - '21.06154179482586 to 28.47114607559878.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[88] changed from ' - '21.055897001091154 to 28.462544313389362.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[89] changed from ' - '21.050063950144885 to 28.453663114758864.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[90] changed from ' - '21.044041974396777 to 28.444501777634954.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[91] changed from ' - '21.037830538556538 to 28.43505979393933.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[92] changed from ' - '21.031429235887636 to 28.425336843611575.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[93] changed from ' - '21.024837784390904 to 28.415332788558764.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[94] changed from ' - '21.01805602293493 to 28.405047666559955.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[95] changed from ' - '21.011083907349413 to 28.3944816851443.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[96] changed from ' - '21.00392150649639 to 28.383635215466153.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[97] changed from ' - '20.99656899833215 to 28.372508786193077.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[98] changed from ' - '20.98902666597222 to 28.361103077425682.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[99] changed from ' - '20.981294893770617 to 28.34941891466198.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[100] changed from ' - '20.973374163423024 to 28.33745726282355.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[101] changed from ' - '20.965265050102744 to 28.325219220349915.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[102] changed from ' - '20.95696821863772 to 28.31270601337695.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[103] changed from ' - '20.94848441973531 to 28.29991899000551.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[104] changed from ' - '20.93981448626163 to 28.28685961467063.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[105] changed from ' - '20.93095932958033 to 28.273529462615.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[106] changed from ' - '20.921919935956208 to 28.259930214477254.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[107] changed from ' - '20.91269736302776 to 28.246063650996074.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[108] changed from ' - '20.90329273635121 to 28.23193164783784.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[109] changed from ' - '20.89370724602164 to 28.217536170548332.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[110] changed from ' - '20.883942143369815 to 28.202879269632945.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[111] changed from ' - '20.87399873774072 to 28.187963075768305.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[112] changed from ' - '20.8638783933527 to 28.1727897951442.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[113] changed from ' - '20.853582526239787 to 28.15736170493945.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[114] changed from ' - '20.843112601277653 to 28.14168114893158.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[115] changed from ' - '20.832470129293387 to 28.125750533238268.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[116] changed from ' - '20.821656664260455 to 28.10957232219488.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[117] changed from ' - '20.810673800577256 to 28.093149034360952.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[118] changed from ' - '20.799523170430877 to 28.076483238662455.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[119] changed from ' - '20.78820644124401 to 28.059577550660165.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[120] changed from ' - '20.776725313205123 to 28.04243462895052.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[121] changed from ' - '20.765081516881118 to 28.025057171691277.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[122] changed from ' - '20.753276810911498 to 28.007447913252953.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[123] changed from ' - '20.741312979782222 to 27.98960962099425.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[124] changed from ' - '20.729191831679824 to 27.971545092156934.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[125] changed from ' - '20.7169151964217 to 27.95325715088082.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[126] changed from ' - '20.7044849234645 to 27.934748645332867.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[127] changed from ' - '20.691902879985943 to 27.916022444952322.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[128] changed from ' - '20.679170949041204 to 27.897081437804836.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[129] changed from ' - '20.666291027790535 to 27.877928528045196.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[130] changed from ' - '20.653265025796816 to 27.858566633486557.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[131] changed from ' - '20.640094863392168 to 27.83899868327194.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[132] changed from ' - '20.626782470111266 to 27.819227615645353.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[133] changed from ' - '20.613329783189915 to 27.799256375821454.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[134] changed from ' - '20.599738746126175 to 27.779087913948032.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[135] changed from ' - '20.586011307304585 to 27.758725183162706.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[136] changed from ' - '20.572149418679206 to 27.73817113773635.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[137] changed from ' - '20.558155034515654 to 27.71742873130442.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[138] changed from ' - '20.544030110189293 to 27.696500915181627.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[139] changed from ' - '20.529776601038385 to 27.675390636756884.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[140] changed from ' - '20.515396461270605 to 27.654100837968155.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[141] changed from ' - '20.500891642921026 to 27.63263445385158.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[142] changed from ' - '20.486264094859557 to 27.61099441116519.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[143] changed from ' - '20.471515761847392 to 27.5891836270824.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[144] changed from ' - '20.45664858363983 to 27.567205007954275.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[145] changed from ' - '20.441664494133924 to 27.545061448138497.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[146] changed from ' - '20.42656542056028 to 27.522755828890283.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[147] changed from ' - '20.411353282716647 to 27.500291017316403.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[148] changed from ' - '20.396029992241875 to 27.477669865386837.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[149] changed from ' - '20.380597451930306 to 27.454895209004476.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[150] changed from ' - '20.36505755508168 to 27.43196986712909.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[151] changed from ' - '20.349412184890205 to 27.40889664095341.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[152] changed from ' - '20.333663213866725 to 27.385678313131606.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[153] changed from ' - '20.317812503295258 to 27.36231764705427.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[154] changed from ' - '20.301861902722514 to 27.338817386172394.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[155] changed from ' - '20.285813249477844 to 27.315180253364716.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[156] changed from ' - '20.26966836822434 to 27.291408950348806.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[157] changed from ' - '20.25342907053781 to 27.267506157134022.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[158] changed from ' - '20.237097154514196 to 27.243474531513716.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[159] changed from ' - '20.22067440440368 to 27.219316708595333.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[160] changed from ' - '20.204162590269974 to 27.195035300367685.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[161] changed from ' - '20.18756346767464 to 27.170632895302713.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[162] changed from ' - '20.17087877738487 to 27.14611205799096.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[163] changed from ' - '20.154110245103755 to 27.121475328809428.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[164] changed from ' - '20.13725958122237 to 27.09672522361914.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[165] changed from ' - '20.12032848059296 to 27.071864233493034.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[166] changed from ' - '20.103318622320867 to 27.046894824471927.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[167] changed from ' - '20.086231669577288 to 27.02181943734586.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[168] changed from ' - '20.069069269428315 to 26.996640487463296.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[169] changed from ' - '20.051833052683005 to 26.971360364562322.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[170] changed from ' - '20.034524633757403 to 26.94598143262738.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[171] changed from ' - '20.01714561055402 to 26.920506029766493.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[172] changed from ' - '19.999697564357618 to 26.89493646811061.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[173] changed from ' - '19.982182059744446 to 26.86927503373254.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[174] changed from ' - '19.964600644506064 to 26.843523986586117.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[175] changed from ' - '19.94695484958622 to 26.8176855604619.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[176] changed from ' - '19.929246189029392 to 26.791761962962166.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[177] changed from ' - '19.911476159943334 to 26.76575537549085.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[178] changed from ' - '19.893646242470815 to 26.73966795326022.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[179] changed from ' - '19.875757899773443 to 26.713501825311678.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[180] changed from ' - '19.857812578026227 to 26.687259094551344.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[181] changed from ' - '19.839811706419965 to 26.66094183779823.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[182] changed from ' - '19.821756697176024 to 26.63455210584623.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[183] changed from ' - '19.803648945566906 to 26.608091923536303.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[184] changed from ' - '19.785489829947107 to 26.58156328984205.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[185] changed from ' - '19.76728071179144 to 26.554968177964405.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[186] changed from ' - '19.749022935740665 to 26.528308535437482.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[187] changed from ' - '19.730717829654594 to 26.50158628424274.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[188] changed from ' - '19.712366704671574 to 26.474803320933454.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[189] changed from ' - '19.69397085527479 to 26.44796151676698.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[190] changed from ' - '19.675531559364153 to 26.421062717844208.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[191] changed from ' - '19.65705007833408 to 26.394108745258315.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[192] changed from ' - '19.63852765715644 to 26.367101395248444.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[193] changed from ' - '19.619965524468935 to 26.340042439361262.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[194] changed from ' - '19.601364892667643 to 26.3129336246178.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[195] changed from ' - '19.58272695800445 to 26.28577667368682.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[196] changed from ' - '19.564052900688026 to 26.25857328506229.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[197] changed from ' - '19.54534388498959 to 26.23132513324703.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[198] changed from ' - '19.52660105935152 to 26.20403386893998.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[199] changed from ' - '19.507825556499423 to 26.17670111922804.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[200] changed from ' - '19.489018493557854 to 26.149328487781712.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[201] changed from ' - '19.4701809721688 to 26.121917555054278.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[202] changed from ' - '19.45131407861168 to 26.094469878484137.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[203] changed from ' - '19.432418883928207 to 26.06698699270072.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[204] changed from ' - '19.41349644404714 to 26.039470409732015.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[205] changed from ' - '19.394547799912832 to 26.01192161921544.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[206] changed from ' - '19.375573977614543 to 25.984342088610447.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[207] changed from ' - '19.356575988518475 to 25.956733263413245.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[208] changed from ' - '19.33755482940082 to 25.92909656737335.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[209] changed from ' - '19.31851148258246 to 25.90143340271108.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[210] changed from ' - '19.29944691606445 to 25.873745150337285.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[211] changed from ' - '19.280362083665942 to 25.84603317007335.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[212] changed from ' - '19.261257925161303 to 25.81829880087202.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[213] changed from ' - '19.242135366419884 to 25.79054336104051.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[214] changed from ' - '19.222995319545184 to 25.76276814846179.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[215] changed from ' - '19.20383868301531 to 25.734974440818014.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[216] changed from ' - '19.184666341824123 to 25.70716349581381.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[217] changed from ' - '19.165479167622212 to 25.679336551399924.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[218] changed from ' - '19.146278018858805 to 25.65149482599556.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[219] changed from ' - '19.12706374092345 to 25.623639518712245.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[220] changed from ' - '19.107837166287798 to 25.595771809576682.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[221] changed from ' - '19.088599114647835 to 25.56789285975296.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[222] changed from ' - '19.06935039306606 to 25.540003811764876.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[223] changed from ' - '19.050091796113037 to 25.51210578971682.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[224] changed from ' - '19.030824106009 to 25.48419989951484.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[225] changed from ' - '19.01154809276567 to 25.456287229086726.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[226] changed from ' - '18.992264514326912 to 25.428368848600062.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[227] changed from ' - '18.972974116709658 to 25.400445810681788.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[228] changed from ' - '18.953677634144125 to 25.37251915063388.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[229] changed from ' - '18.934375789213576 to 25.344589886649985.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[230] changed from ' - '18.91506929299337 to 25.31665902002947.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[231] changed from ' - '18.895758845189768 to 25.288727535391867.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[232] changed from ' - '18.876445134277546 to 25.260796400888314.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[233] changed from ' - '18.857128837637475 to 25.232866568412472.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[234] changed from ' - '18.837810621692842 to 25.204938973810336.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[235] changed from ' - '18.818491142044792 to 25.17701453708768.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[236] changed from ' - '18.79917104360745 to 25.14909416261666.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[237] changed from ' - '18.779850960742284 to 25.121178739340948.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[238] changed from ' - '18.760531517390493 to 25.09326914097862.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[239] changed from ' - '18.74121332720596 to 25.065366226224445.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[240] changed from ' - '18.721896993686183 to 25.03747083894948.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[241] changed from ' - '18.702583110302758 to 25.00958380839912.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[242] changed from ' - '18.68327226063058 to 24.981705949390637.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[243] changed from ' - '18.663965018476404 to 24.95383806250776.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[244] changed from ' - '18.64466194800594 to 24.925980934292763.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[245] changed from ' - '18.62536360387029 to 24.89813533743972.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[246] changed from ' - '18.606070531330875 to 24.87030203098258.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[247] changed from ' - '18.586783266384 to 24.842481760483548.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[248] changed from ' - '18.567502335883272 to 24.81467525821906.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[249] changed from ' - '18.548228257662203 to 24.7868832433633.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[250] changed from ' - '18.528961540654155 to 24.75910642217127.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[251] changed from ' - '18.50970268501282 to 24.731345488158414.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[252] changed from ' - '18.49045218223032 to 24.70360112227981.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[253] changed from ' - '18.471210515254374 to 24.675873993106016.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[254] changed from ' - '18.451978158604938 to 24.648164756998455.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[255] changed from ' - '18.432755578489065 to 24.62047405828187.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[256] changed from ' - '18.413543232914705 to 24.592802529415703.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[257] changed from ' - '18.3943415718034 to 24.56515079116262.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[258] changed from ' - '18.37515103710232 to 24.537519452756246.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[259] changed from ' - '18.355972062893702 to 24.509909112066232.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[260] changed from ' - '18.33680507550485 to 24.482320355761576.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[261] changed from ' - '18.317650493615794 to 24.45475375947234.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[262] changed from ' - '18.298508728366247 to 24.4272098879496.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[263] changed from ' - '18.279380183461022 to 24.39968929522241.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[264] changed from ' - '18.260265255274756 to 24.372192524754674.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[265] changed from ' - '18.24116433295518 to 24.344720109598505.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[266] changed from ' - '18.22207779852514 to 24.31727257254702.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[267] changed from ' - '18.203006026983488 to 24.289850426284577.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[268] changed from ' - '18.18394938640536 to 24.26245417353484.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[269] changed from ' - '18.164908238040315 to 24.2350843072081.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[270] changed from ' - '18.145882936409667 to 24.207741310546425.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[271] changed from ' - '18.126873829403436 to 24.1804256572655.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[272] changed from ' - '18.107881258375134 to 24.153137811697807.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[273] changed from ' - '18.088905558235975 to 24.125878228930496.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[274] changed from ' - '18.069947057547317 to 24.098647354944124.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[275] changed from ' - '18.051006078613185 to 24.07144562674817.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[276] changed from ' - '18.032082937570326 to 24.044273472515936.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[277] changed from ' - '18.013177944477984 to 24.017131311716906.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[278] changed from ' - '17.99429140340633 to 23.9900195552465.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[279] changed from ' - '17.975423612523866 to 23.962938605557085.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[280] changed from ' - '17.956574864183377 to 23.935888856783922.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[281] changed from ' - '17.93774544500727 to 23.90887069487169.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[282] changed from ' - '17.918935635971877 to 23.88188449769829.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[283] changed from ' - '17.900145712489905 to 23.854930635197636.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[284] changed from ' - '17.881375944492987 to 23.828009469479923.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[285] changed from ' - '17.86262659651213 to 23.801121354951498.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[286] changed from ' - '17.8438979277577 to 23.77426663843204.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[287] changed from ' - '17.825190192198487 to 23.74744565927079.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[288] changed from ' - '17.806503638639043 to 23.720658749461197.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[289] changed from ' - '17.787838510796888 to 23.693906233753403.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[290] changed from ' - '17.769195047378023 to 23.667188429765893.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[291] changed from ' - '17.75057348215169 to 23.64050564809546.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[292] changed from ' - '17.73197404402442 to 23.613858192425404.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[293] changed from ' - '17.713396957112472 to 23.587246359632523.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[294] changed from ' - '17.694842440814238 to 23.56067043989219.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[295] changed from ' - '17.676310709880305 to 23.534130716782656.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[296] changed from ' - '17.657801974484126 to 23.507627467387632.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[297] changed from ' - '17.63931644029082 to 23.481160962396878.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[298] changed from ' - '17.62085430852501 to 23.454731466206376.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[299] changed from ' - '17.60241577603802 to 23.428339237016026.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[300] changed from ' - '17.58400103537447 to 23.40198452692719.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[301] changed from ' - '17.56561027483722 to 23.37566758203794.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[302] changed from ' - '17.54724367855184 to 23.34938864253681.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[303] changed from ' - '17.528901426530513 to 23.323147942796595.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[304] changed from ' - '17.510583694734493 to 23.296945711464907.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[305] changed from ' - '17.492290655135722 to 23.27078217155504.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[306] changed from ' - '17.474022475778273 to 23.244657540534817.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[307] changed from ' - '17.45577932083815 to 23.2185720304139.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[308] changed from ' - '17.437561350682728 to 23.19252584783095.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[309] changed from ' - '17.419368721929228 to 23.1665191941381.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[310] changed from ' - '17.401201587502307 to 23.140552265485205.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[311] changed from ' - '17.38306009669116 to 23.114625252902837.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[312] changed from ' - '17.364944395205356 to 23.08873834238368.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[313] changed from ' - '17.346854625230137 to 23.06289171496273.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[314] changed from ' - '17.328790925481172 to 23.037085546796884.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[315] changed from ' - '17.310753431258057 to 23.01132000924295.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[316] changed from ' - '17.292742274497325 to 22.985595268934294.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[317] changed from ' - '17.274757583825195 to 22.959911487857255.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[318] changed from ' - '17.256799484608145 to 22.93426882342543.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[319] changed from ' - '17.238868099004478 to 22.908667428553564.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[320] changed from ' - '17.22096354601424 to 22.88310745172988.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[321] changed from ' - '17.203085941528155 to 22.857589037088037.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[322] changed from ' - '17.18523539837705 to 22.83211232447708.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[323] changed from ' - '17.16741202637903 to 22.80667744953139.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[324] changed from ' - '17.14961593238725 to 22.781284543738884.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[325] changed from ' - '17.13184722033636 to 22.755933734508034.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[326] changed from ' - '17.114105991288273 to 22.730625145235326.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[327] changed from ' - '17.0963923434779 to 22.705358895369553.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[328] changed from ' - '17.07870637235737 to 22.680135100477088.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[329] changed from ' - '17.061048170640177 to 22.654953872305096.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[330] changed from ' - '17.043417828344637 to 22.629815318844194.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[331] changed from ' - '17.025815432836403 to 22.604719544390175.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[332] changed from ' - '17.0082410688706 to 22.579666649604743.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[333] changed from ' - '16.990694818633774 to 22.55465673157521.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[334] changed from ' - '16.97317676178414 to 22.52968988387381.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[335] changed from ' - '16.955686975492526 to 22.504766196615403.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[336] changed from ' - '16.93822553448163 to 22.479885756515063.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[337] changed from ' - '16.92079251106539 to 22.45504864694415.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[338] changed from ' - '16.903387975187737 to 22.43025494798617.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[339] changed from ' - '16.88601199446035 to 22.405504736490983.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[340] changed from ' - '16.868664634200258 to 22.3807980861293.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[341] changed from ' - '16.851345957466954 to 22.35613506744538.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[342] changed from ' - '16.834056025098363 to 22.33151574790951.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[343] changed from ' - '16.816794895747172 to 22.306940191969264.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[344] changed from ' - '16.799562625916035 to 22.282408461100587.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[345] changed from ' - '16.78235926999213 to 22.257920613857483.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[346] changed from ' - '16.765184880281975 to 22.23347670592141.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[347] changed from ' - '16.748039507044737 to 22.20907679014978.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[348] changed from ' - '16.730923198526057 to 22.18472091662357.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[349] changed from ' - '16.713836000990447 to 22.160409132694483.\n' - 'Value of root.surfaceplant.ElectricityProduced.value[350] changed from ' - '16.696777958753966 to 22.13614148303124.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[0] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[1] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[2] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[3] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[4] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[5] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[6] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[7] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[8] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[9] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[10] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[11] changed from ' - '20.981617000316003 to 28.566850031711493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[12] changed from ' - '20.9816170003159 to 28.566850031711354.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[13] changed from ' - '20.98161700031555 to 28.566850031710477.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[14] changed from ' - '20.981617000312326 to 28.56685003170339.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[15] changed from ' - '20.98161700029267 to 28.56685003166033.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[16] changed from ' - '20.981617000195367 to 28.56685003145383.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[17] changed from ' - '20.981616999800465 to 28.566850030635397.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[18] changed from ' - '20.981616998437477 to 28.56685002787008.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[19] changed from ' - '20.98161699433382 to 28.566850019701576.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[20] changed from ' - '20.98161698332865 to 28.566849998168106.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[21] changed from ' - '20.981616956594458 to 28.566849946663684.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[22] changed from ' - '20.98161689695219 to 28.56684983336915.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[23] changed from ' - '20.981616773362614 to 28.56684960160364.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[24] changed from ' - '20.98161653323088 to 28.56684915656624.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[25] changed from ' - '20.98161609227832 to 28.566848348155695.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[26] changed from ' - '20.9816153218889 to 28.56684694982997.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[27] changed from ' - '20.98161403402304 to 28.566844633762965.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[28] changed from ' - '20.98161196396933 to 28.56684094284727.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[29] changed from ' - '20.981608751367997 to 28.566835260329242.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[30] changed from ' - '20.981603920067204 to 28.566826778040188.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[31] changed from ' - '20.9815968574502 to 28.566814464289468.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[32] changed from ' - '20.98158679391602 to 28.56679703250543.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[33] changed from ' - '20.981572783178517 to 28.56677291167045.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[34] changed from ' - '20.981553684009466 to 28.566740219491493.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[35] changed from ' - '20.98152814397268 to 28.566696739110213.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[36] changed from ' - '20.98149458560074 to 28.56663989998291.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[37] changed from ' - '20.981451195360272 to 28.566566763390743.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[38] changed from ' - '20.9813959156379 to 28.566474012850772.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[39] changed from ' - '20.981326439875858 to 28.566357949538737.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[40] changed from ' - '20.981240210882092 to 28.566214492678746.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[41] changed from ' - '20.981134422253472 to 28.566039184722115.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[42] changed from ' - '20.98100602277675 to 28.56582720103391.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[43] changed from ' - '20.98085172360845 to 28.56557336371779.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[44] changed from ' - '20.980668007989447 to 28.56527215915184.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[45] changed from ' - '20.980451143220115 to 28.564917758766306.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[46] changed from ' - '20.980197194594147 to 28.56450404257255.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[47] changed from ' - '20.979902040987252 to 28.564024624949212.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[48] changed from ' - '20.979561391791698 to 28.56347288219883.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[49] changed from ' - '20.97917080489439 to 28.56284198140702.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[50] changed from ' - '20.97872570541385 to 28.562124910164915.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[51] changed from ' - '20.978221404922294 to 28.561314506745312.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[52] changed from ' - '20.977653120906925 to 28.56040349036703.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[53] changed from ' - '20.9770159962432 to 28.559384491210555.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[54] changed from ' - '20.976305118477136 to 28.558250079899512.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[55] changed from ' - '20.975515538742556 to 28.556992796194606.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[56] changed from ' - '20.97464229015722 to 28.555605176687905.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[57] changed from ' - '20.97368040557062 to 28.55407978132087.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[58] changed from ' - '20.972624934555906 to 28.55240921858741.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[59] changed from ' - '20.971470959560424 to 28.550586169309852.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[60] changed from ' - '20.970213611146743 to 28.548603408907947.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[61] changed from ' - '20.968848082276985 to 28.546453828105975.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[62] changed from ' - '20.96736964160591 to 28.54413045204662.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[63] changed from ' - '20.965773645763235 to 28.541626457799335.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[64] changed from ' - '20.964055550619857 to 28.53893519027006.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[65] changed from ' - '20.9622109215397 to 28.536050176532136.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[66] changed from ' - '20.960235442631923 to 28.532965138612873.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[67] changed from ' - '20.95812492502338 to 28.529674004779583.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[68] changed from ' - '20.95587531417858 to 28.526170919376728.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[69] changed from ' - '20.953482696299947 to 28.522450251274513.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[70] changed from ' - '20.95094330384506 to 28.51850660099228.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[71] changed from ' - '20.948253520199643 to 28.514334806565344.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[72] changed from ' - '20.94540988355031 to 28.509929948223814.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[73] changed from ' - '20.94240908999938 to 28.505287351959378.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[74] changed from ' - '20.939247995966554 to 28.50040259204641.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[75] changed from ' - '20.935923619923695 to 28.495271492595712.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[76] changed from ' - '20.93243314350676 to 28.489890128207403.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[77] changed from ' - '20.92877391204952 to 28.48425482379451.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[78] changed from ' - '20.92494343458315 to 28.47836215364625.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[79] changed from ' - '20.920939383343498 to 28.47220893979422.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[80] changed from ' - '20.916759592829465 to 28.46579224974686.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[81] changed from ' - '20.912402058448627 to 28.459109393650653.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[82] changed from ' - '20.907864934791828 to 28.452157920937836.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[83] changed from ' - '20.903146533571494 to 28.444935616513458.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[84] changed from ' - '20.89824532125759 to 28.437440496534276.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[85] changed from ' - '20.893159916446464 to 28.429670803828156.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[86] changed from ' - '20.887889086990572 to 28.421625003000212.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[87] changed from ' - '20.882431746920613 to 28.413301775266152.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[88] changed from ' - '20.876786953185906 to 28.404700013056733.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[89] changed from ' - '20.870953902239638 to 28.395818814426235.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[90] changed from ' - '20.86493192649153 to 28.386657477302325.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[91] changed from ' - '20.85872049065129 to 28.377215493606702.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[92] changed from ' - '20.85231918798239 to 28.367492543278946.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[93] changed from ' - '20.845727736485657 to 28.357488488226135.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[94] changed from ' - '20.83894597502968 to 28.347203366227326.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[95] changed from ' - '20.831973859444165 to 28.33663738481167.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[96] changed from ' - '20.824811458591142 to 28.325790915133524.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[97] changed from ' - '20.817458950426904 to 28.314664485860447.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[98] changed from ' - '20.80991661806697 to 28.303258777093053.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[99] changed from ' - '20.80218484586537 to 28.291574614329352.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[100] changed from ' - '20.794264115517777 to 28.27961296249092.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[101] changed from ' - '20.786155002197496 to 28.267374920017286.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[102] changed from ' - '20.777858170732472 to 28.25486171304432.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[103] changed from ' - '20.76937437183006 to 28.24207468967288.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[104] changed from ' - '20.76070443835638 to 28.229015314338.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[105] changed from ' - '20.75184928167508 to 28.21568516228237.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[106] changed from ' - '20.74280988805096 to 28.202085914144625.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[107] changed from ' - '20.733587315122513 to 28.188219350663445.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[108] changed from ' - '20.724182688445964 to 28.17408734750521.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[109] changed from ' - '20.714597198116394 to 28.159691870215703.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[110] changed from ' - '20.704832095464567 to 28.145034969300315.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[111] changed from ' - '20.694888689835473 to 28.130118775435676.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[112] changed from ' - '20.684768345447452 to 28.114945494811572.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[113] changed from ' - '20.67447247833454 to 28.09951740460682.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[114] changed from ' - '20.664002553372406 to 28.08383684859895.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[115] changed from ' - '20.65336008138814 to 28.06790623290564.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[116] changed from ' - '20.642546616355208 to 28.05172802186225.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[117] changed from ' - '20.631563752672008 to 28.035304734028323.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[118] changed from ' - '20.62041312252563 to 28.018638938329826.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[119] changed from ' - '20.609096393338763 to 28.001733250327536.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[120] changed from ' - '20.597615265299876 to 27.98459032861789.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[121] changed from ' - '20.58597146897587 to 27.967212871358647.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[122] changed from ' - '20.57416676300625 to 27.949603612920324.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[123] changed from ' - '20.562202931876975 to 27.931765320661622.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[124] changed from ' - '20.550081783774576 to 27.913700791824304.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[125] changed from ' - '20.53780514851645 to 27.89541285054819.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[126] changed from ' - '20.52537487555925 to 27.876904345000238.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[127] changed from ' - '20.512792832080695 to 27.858178144619693.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[128] changed from ' - '20.500060901135956 to 27.839237137472207.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[129] changed from ' - '20.487180979885288 to 27.820084227712567.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[130] changed from ' - '20.47415497789157 to 27.800722333153928.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[131] changed from ' - '20.46098481548692 to 27.78115438293931.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[132] changed from ' - '20.44767242220602 to 27.761383315312724.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[133] changed from ' - '20.434219735284668 to 27.741412075488824.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[134] changed from ' - '20.420628698220927 to 27.721243613615403.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[135] changed from ' - '20.406901259399337 to 27.700880882830077.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[136] changed from ' - '20.39303937077396 to 27.680326837403722.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[137] changed from ' - '20.379044986610406 to 27.65958443097179.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[138] changed from ' - '20.364920062284046 to 27.638656614848998.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[139] changed from ' - '20.350666553133138 to 27.617546336424255.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[140] changed from ' - '20.336286413365357 to 27.596256537635526.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[141] changed from ' - '20.32178159501578 to 27.57479015351895.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[142] changed from ' - '20.30715404695431 to 27.55315011083256.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[143] changed from ' - '20.292405713942145 to 27.53133932674977.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[144] changed from ' - '20.277538535734582 to 27.509360707621646.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[145] changed from ' - '20.262554446228677 to 27.487217147805868.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[146] changed from ' - '20.247455372655033 to 27.464911528557653.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[147] changed from ' - '20.2322432348114 to 27.442446716983774.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[148] changed from ' - '20.216919944336627 to 27.419825565054207.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[149] changed from ' - '20.20148740402506 to 27.397050908671847.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[150] changed from ' - '20.185947507176433 to 27.37412556679646.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[151] changed from ' - '20.170302136984958 to 27.351052340620782.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[152] changed from ' - '20.154553165961477 to 27.327834012798977.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[153] changed from ' - '20.13870245539001 to 27.30447334672164.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[154] changed from ' - '20.122751854817267 to 27.280973085839765.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[155] changed from ' - '20.106703201572596 to 27.257335953032086.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[156] changed from ' - '20.090558320319094 to 27.233564650016177.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[157] changed from ' - '20.07431902263256 to 27.209661856801393.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[158] changed from ' - '20.057987106608948 to 27.185630231181086.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[159] changed from ' - '20.041564356498434 to 27.161472408262703.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[160] changed from ' - '20.025052542364726 to 27.137191000035056.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[161] changed from ' - '20.008453419769392 to 27.112788594970084.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[162] changed from ' - '19.991768729479624 to 27.08826775765833.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[163] changed from ' - '19.975000197198508 to 27.0636310284768.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[164] changed from ' - '19.958149533317123 to 27.03888092328651.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[165] changed from ' - '19.941218432687712 to 27.014019933160405.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[166] changed from ' - '19.92420857441562 to 26.989050524139298.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[167] changed from ' - '19.90712162167204 to 26.963975137013232.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[168] changed from ' - '19.889959221523068 to 26.938796187130666.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[169] changed from ' - '19.872723004777757 to 26.913516064229693.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[170] changed from ' - '19.855414585852156 to 26.88813713229475.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[171] changed from ' - '19.838035562648773 to 26.862661729433864.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[172] changed from ' - '19.82058751645237 to 26.837092167777982.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[173] changed from ' - '19.8030720118392 to 26.81143073339991.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[174] changed from ' - '19.785490596600816 to 26.785679686253488.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[175] changed from ' - '19.767844801680972 to 26.75984126012927.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[176] changed from ' - '19.750136141124145 to 26.733917662629537.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[177] changed from ' - '19.732366112038086 to 26.707911075158222.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[178] changed from ' - '19.714536194565568 to 26.68182365292759.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[179] changed from ' - '19.696647851868196 to 26.65565752497905.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[180] changed from ' - '19.67870253012098 to 26.629414794218714.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[181] changed from ' - '19.660701658514718 to 26.6030975374656.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[182] changed from ' - '19.642646649270777 to 26.5767078055136.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[183] changed from ' - '19.624538897661658 to 26.550247623203674.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[184] changed from ' - '19.60637978204186 to 26.523718989509423.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[185] changed from ' - '19.588170663886192 to 26.497123877631775.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[186] changed from ' - '19.569912887835418 to 26.470464235104853.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[187] changed from ' - '19.551607781749347 to 26.44374198391011.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[188] changed from ' - '19.533256656766326 to 26.416959020600824.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[189] changed from ' - '19.514860807369544 to 26.39011721643435.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[190] changed from ' - '19.496421511458905 to 26.36321841751158.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[191] changed from ' - '19.477940030428833 to 26.336264444925686.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[192] changed from ' - '19.459417609251194 to 26.309257094915814.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[193] changed from ' - '19.440855476563687 to 26.282198139028633.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[194] changed from ' - '19.422254844762396 to 26.25508932428517.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[195] changed from ' - '19.403616910099203 to 26.22793237335419.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[196] changed from ' - '19.38494285278278 to 26.20072898472966.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[197] changed from ' - '19.366233837084344 to 26.1734808329144.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[198] changed from ' - '19.347491011446273 to 26.14618956860735.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[199] changed from ' - '19.328715508594176 to 26.11885681889541.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[200] changed from ' - '19.309908445652606 to 26.091484187449083.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[201] changed from ' - '19.291070924263554 to 26.06407325472165.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[202] changed from ' - '19.272204030706433 to 26.036625578151508.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[203] changed from ' - '19.25330883602296 to 26.00914269236809.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[204] changed from ' - '19.234386396141893 to 25.981626109399386.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[205] changed from ' - '19.215437752007585 to 25.95407731888281.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[206] changed from ' - '19.196463929709296 to 25.926497788277818.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[207] changed from ' - '19.177465940613228 to 25.898888963080616.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[208] changed from ' - '19.15844478149557 to 25.87125226704072.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[209] changed from ' - '19.13940143467721 to 25.843589102378452.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[210] changed from ' - '19.120336868159203 to 25.815900850004656.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[211] changed from ' - '19.101252035760695 to 25.788188869740722.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[212] changed from ' - '19.082147877256055 to 25.760454500539392.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[213] changed from ' - '19.063025318514637 to 25.73269906070788.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[214] changed from ' - '19.043885271639937 to 25.704923848129162.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[215] changed from ' - '19.024728635110062 to 25.677130140485385.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[216] changed from ' - '19.005556293918875 to 25.64931919548118.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[217] changed from ' - '18.986369119716965 to 25.621492251067295.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[218] changed from ' - '18.967167970953557 to 25.59365052566293.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[219] changed from ' - '18.947953693018203 to 25.565795218379616.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[220] changed from ' - '18.92872711838255 to 25.537927509244053.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[221] changed from ' - '18.909489066742587 to 25.51004855942033.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[222] changed from ' - '18.890240345160812 to 25.482159511432247.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[223] changed from ' - '18.87098174820779 to 25.45426148938419.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[224] changed from ' - '18.851714058103752 to 25.426355599182212.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[225] changed from ' - '18.83243804486042 to 25.398442928754097.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[226] changed from ' - '18.813154466421665 to 25.370524548267433.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[227] changed from ' - '18.79386406880441 to 25.34260151034916.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[228] changed from ' - '18.774567586238877 to 25.31467485030125.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[229] changed from ' - '18.755265741308328 to 25.286745586317355.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[230] changed from ' - '18.73595924508812 to 25.25881471969684.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[231] changed from ' - '18.71664879728452 to 25.23088323505924.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[232] changed from ' - '18.6973350863723 to 25.202952100555684.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[233] changed from ' - '18.678018789732228 to 25.175022268079843.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[234] changed from ' - '18.658700573787595 to 25.147094673477707.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[235] changed from ' - '18.639381094139544 to 25.11917023675505.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[236] changed from ' - '18.620060995702204 to 25.09124986228403.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[237] changed from ' - '18.600740912837036 to 25.06333443900832.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[238] changed from ' - '18.581421469485246 to 25.03542484064599.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[239] changed from ' - '18.56210327930071 to 25.007521925891815.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[240] changed from ' - '18.542786945780936 to 24.979626538616852.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[241] changed from ' - '18.52347306239751 to 24.951739508066492.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[242] changed from ' - '18.504162212725333 to 24.923861649058008.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[243] changed from ' - '18.484854970571156 to 24.89599376217513.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[244] changed from ' - '18.465551900100692 to 24.868136633960134.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[245] changed from ' - '18.446253555965043 to 24.84029103710709.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[246] changed from ' - '18.426960483425628 to 24.81245773064995.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[247] changed from ' - '18.407673218478752 to 24.78463746015092.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[248] changed from ' - '18.388392287978025 to 24.756830957886432.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[249] changed from ' - '18.369118209756955 to 24.72903894303067.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[250] changed from ' - '18.349851492748908 to 24.701262121838642.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[251] changed from ' - '18.33059263710757 to 24.673501187825785.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[252] changed from ' - '18.311342134325074 to 24.64575682194718.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[253] changed from ' - '18.292100467349126 to 24.618029692773387.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[254] changed from ' - '18.27286811069969 to 24.590320456665825.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[255] changed from ' - '18.253645530583817 to 24.562629757949242.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[256] changed from ' - '18.234433185009458 to 24.534958229083074.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[257] changed from ' - '18.21523152389815 to 24.50730649082999.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[258] changed from ' - '18.196040989197073 to 24.479675152423617.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[259] changed from ' - '18.176862014988455 to 24.452064811733603.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[260] changed from ' - '18.1576950275996 to 24.424476055428947.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[261] changed from ' - '18.138540445710547 to 24.39690945913971.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[262] changed from ' - '18.119398680461 to 24.369365587616972.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[263] changed from ' - '18.100270135555775 to 24.34184499488978.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[264] changed from ' - '18.08115520736951 to 24.314348224422044.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[265] changed from ' - '18.062054285049932 to 24.286875809265876.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[266] changed from ' - '18.042967750619894 to 24.25942827221439.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[267] changed from ' - '18.02389597907824 to 24.232006125951948.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[268] changed from ' - '18.004839338500112 to 24.204609873202212.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[269] changed from ' - '17.985798190135068 to 24.177240006875472.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[270] changed from ' - '17.96677288850442 to 24.149897010213795.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[271] changed from ' - '17.94776378149819 to 24.12258135693287.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[272] changed from ' - '17.928771210469886 to 24.095293511365178.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[273] changed from ' - '17.909795510330728 to 24.068033928597867.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[274] changed from ' - '17.89083700964207 to 24.040803054611494.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[275] changed from ' - '17.871896030707937 to 24.01360132641554.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[276] changed from ' - '17.85297288966508 to 23.986429172183307.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[277] changed from ' - '17.834067896572737 to 23.959287011384276.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[278] changed from ' - '17.815181355501082 to 23.932175254913872.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[279] changed from ' - '17.796313564618618 to 23.905094305224456.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[280] changed from ' - '17.77746481627813 to 23.878044556451293.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[281] changed from ' - '17.758635397102022 to 23.851026394539062.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[282] changed from ' - '17.73982558806663 to 23.82404019736566.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[283] changed from ' - '17.721035664584658 to 23.797086334865007.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[284] changed from ' - '17.70226589658774 to 23.770165169147294.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[285] changed from ' - '17.68351654860688 to 23.74327705461887.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[286] changed from ' - '17.66478787985245 to 23.71642233809941.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[287] changed from ' - '17.64608014429324 to 23.689601358938162.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[288] changed from ' - '17.627393590733796 to 23.662814449128568.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[289] changed from ' - '17.60872846289164 to 23.636061933420773.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[290] changed from ' - '17.590084999472776 to 23.609344129433264.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[291] changed from ' - '17.571463434246443 to 23.58266134776283.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[292] changed from ' - '17.55286399611917 to 23.556013892092775.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[293] changed from ' - '17.534286909207225 to 23.529402059299894.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[294] changed from ' - '17.51573239290899 to 23.50282613955956.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[295] changed from ' - '17.497200661975057 to 23.476286416450026.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[296] changed from ' - '17.47869192657888 to 23.449783167055003.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[297] changed from ' - '17.460206392385572 to 23.42331666206425.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[298] changed from ' - '17.441744260619764 to 23.396887165873746.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[299] changed from ' - '17.42330572813277 to 23.370494936683397.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[300] changed from ' - '17.404890987469223 to 23.34414022659456.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[301] changed from ' - '17.38650022693197 to 23.317823281705312.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[302] changed from ' - '17.368133630646593 to 23.29154434220418.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[303] changed from ' - '17.349791378625266 to 23.265303642463966.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[304] changed from ' - '17.331473646829245 to 23.23910141113228.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[305] changed from ' - '17.313180607230475 to 23.21293787122241.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[306] changed from ' - '17.294912427873026 to 23.186813240202188.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[307] changed from ' - '17.276669272932903 to 23.16072773008127.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[308] changed from ' - '17.25845130277748 to 23.13468154749832.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[309] changed from ' - '17.24025867402398 to 23.10867489380547.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[310] changed from ' - '17.22209153959706 to 23.082707965152576.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[311] changed from ' - '17.203950048785913 to 23.056780952570207.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[312] changed from ' - '17.18583434730011 to 23.030894042051052.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[313] changed from ' - '17.16774457732489 to 23.005047414630102.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[314] changed from ' - '17.149680877575925 to 22.979241246464255.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[315] changed from ' - '17.13164338335281 to 22.95347570891032.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[316] changed from ' - '17.113632226592078 to 22.927750968601664.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[317] changed from ' - '17.095647535919948 to 22.902067187524626.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[318] changed from ' - '17.077689436702897 to 22.8764245230928.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[319] changed from ' - '17.05975805109923 to 22.850823128220934.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[320] changed from ' - '17.041853498108992 to 22.82526315139725.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[321] changed from ' - '17.023975893622907 to 22.799744736755407.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[322] changed from ' - '17.0061253504718 to 22.77426802414445.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[323] changed from ' - '16.988301978473782 to 22.74883314919876.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[324] changed from ' - '16.970505884482 to 22.723440243406255.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[325] changed from ' - '16.952737172431114 to 22.698089434175404.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[326] changed from ' - '16.934995943383026 to 22.672780844902697.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[327] changed from ' - '16.91728229557265 to 22.647514595036924.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[328] changed from ' - '16.899596324452123 to 22.62229080014446.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[329] changed from ' - '16.88193812273493 to 22.597109571972467.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[330] changed from ' - '16.86430778043939 to 22.571971018511565.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[331] changed from ' - '16.846705384931155 to 22.546875244057546.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[332] changed from ' - '16.829131020965352 to 22.521822349272114.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[333] changed from ' - '16.811584770728526 to 22.49681243124258.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[334] changed from ' - '16.79406671387889 to 22.47184558354118.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[335] changed from ' - '16.77657692758728 to 22.446921896282774.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[336] changed from ' - '16.759115486576384 to 22.422041456182434.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[337] changed from ' - '16.741682463160142 to 22.39720434661152.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[338] changed from ' - '16.72427792728249 to 22.372410647653542.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[339] changed from ' - '16.706901946555103 to 22.347660436158353.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[340] changed from ' - '16.68955458629501 to 22.32295378579667.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[341] changed from ' - '16.672235909561707 to 22.29829076711275.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[342] changed from ' - '16.654945977193115 to 22.27367144757688.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[343] changed from ' - '16.637684847841925 to 22.249095891636635.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[344] changed from ' - '16.620452578010788 to 22.224564160767958.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[345] changed from ' - '16.603249222086884 to 22.200076313524853.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[346] changed from ' - '16.586074832376728 to 22.175632405588782.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[347] changed from ' - '16.56892945913949 to 22.15123248981715.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[348] changed from ' - '16.55181315062081 to 22.12687661629094.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[349] changed from ' - '16.5347259530852 to 22.102564832361853.\n' - 'Value of root.surfaceplant.NetElectricityProduced.value[350] changed from ' - '16.51766791084872 to 22.07829718269861.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[0] changed from ' - '166831172.04817635 to 225677090.1138359.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[1] changed from ' - '166831172.03475925 to 225677090.08701667.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[2] changed from ' - '166831151.37018326 to 225677052.85729775.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[3] changed from ' - '166830193.21907812 to 225675418.9510872.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[4] changed from ' - '166820730.24765685 to 225659857.72613624.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[5] changed from ' - '166780264.60626024 to 225595009.43721965.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[6] changed from ' - '166673795.32537508 to 225427570.2703053.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[7] changed from ' - '166465366.61184788 to 225104389.530303.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[8] changed from ' - '166127569.36441877 to 224586326.40188456.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[9] changed from ' - '165645014.1096584 to 223852701.74364728.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[10] changed from ' - '165013513.05476353 to 222899493.78717175.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[11] changed from ' - '164237466.6943281 to 221735123.25245655.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[12] changed from ' - '163327012.1982563 to 220376089.80488262.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[13] changed from ' - '162295608.23315853 to 218843378.94007367.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[14] changed from ' - '161158229.7967185 to 217159833.7529033.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[15] changed from ' - '159930126.8110413 to 215348384.58721793.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[16] changed from ' - '158626030.1557766 to 213430943.7902981.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[17] changed from ' - '157259684.9011058 to 211427778.04768994.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[18] changed from ' - '155843610.0638453 to 209357205.8392292.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[19] changed from ' - '154389008.32184893 to 207235506.32407582.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[20] changed from ' - '152905770.60620236 to 205076959.13736564.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[21] changed from ' - '151402537.41378662 to 202893960.1093149.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[22] changed from ' - '149886791.1873842 to 200697176.46803004.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[23] changed from ' - '148364962.9974544 to 198495718.09170744.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[24] changed from ' - '146842542.90841648 to 196297310.26232967.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[25] changed from ' - '145324187.5780525 to 194108459.3201124.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[26] changed from ' - '143813821.40805247 to 191934606.52026004.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[27] changed from ' - '142314729.3688268 to 189780267.89921403.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[28] changed from ' - '140829640.77082568 to 187649159.52322698.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[29] changed from ' - '139360803.96333137 to 185544308.43371445.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[30] changed from ' - '137910052.35860395 to 183468150.1369218.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[31] changed from ' - '136478862.40564975 to 181422613.7556232.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[32] changed from ' - '135068404.24218696 to 179409196.06515306.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[33] changed from ' - '133679585.78134061 to 177429025.63954678.\n' - 'Value of root.surfaceplant.TotalkWhProduced.value[34] changed from ' - '132313090.9716053 to 175482918.27821928.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[0] changed from ' - '165419068.43049133 to 225221045.65001345.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[1] changed from ' - '165419068.4170743 to 225221045.62319425.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[2] changed from ' - '165419047.75249824 to 225221008.39347532.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[3] changed from ' - '165418089.6013931 to 225219374.48726478.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[4] changed from ' - '165408626.6299719 to 225203813.2623138.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[5] changed from ' - '165368160.98857522 to 225138964.97339723.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[6] changed from ' - '165261691.70769006 to 224971525.8064829.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[7] changed from ' - '165053262.9941629 to 224648345.06648055.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[8] changed from ' - '164715465.74673384 to 224130281.93806207.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[9] changed from ' - '164232910.49197346 to 223396657.27982485.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[10] changed from ' - '163601409.43707857 to 222443449.3233493.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[11] changed from ' - '162825363.0766431 to 221279078.78863412.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[12] changed from ' - '161914908.5805713 to 219920045.34106013.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[13] changed from ' - '160883504.6154736 to 218387334.47625118.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[14] changed from ' - '159746126.17903355 to 216703789.28908086.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[15] changed from ' - '158518023.19335628 to 214892340.12339547.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[16] changed from ' - '157213926.53809163 to 212974899.32647565.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[17] changed from ' - '155847581.28342083 to 210971733.58386752.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[18] changed from ' - '154431506.44616035 to 208901161.37540674.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[19] changed from ' - '152976904.7041639 to 206779461.86025336.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[20] changed from ' - '151493666.98851743 to 204620914.6735432.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[21] changed from ' - '149990433.79610163 to 202437915.6454924.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[22] changed from ' - '148474687.5696992 to 200241132.00420758.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[23] changed from ' - '146952859.37976944 to 198039673.62788504.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[24] changed from ' - '145430439.29073155 to 195841265.79850718.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[25] changed from ' - '143912083.9603675 to 193652414.85628995.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[26] changed from ' - '142401717.7903675 to 191478562.0564376.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[27] changed from ' - '140902625.75114185 to 189324223.43539158.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[28] changed from ' - '139417537.15314066 to 187193115.05940452.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[29] changed from ' - '137948700.3456464 to 185088263.969892.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[30] changed from ' - '136497948.740919 to 183012105.67309934.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[31] changed from ' - '135066758.78796476 to 180966569.29180077.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[32] changed from ' - '133656300.62450197 to 178953151.60133058.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[33] changed from ' - '132267482.16365564 to 176972981.17572433.\n' - 'Value of root.surfaceplant.NetkWhProduced.value[34] changed from ' - '130900987.35392034 to 175026873.81439683.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[0] changed from ' - '93834106.57025869 to 121834901.03703542.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[1] changed from ' - '93834106.56231956 to 121834901.02765305.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[2] changed from ' - '93834094.33439766 to 121834888.00308456.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[3] changed from ' - '93833527.3600652 to 121834316.38455978.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[4] changed from ' - '93827927.42672591 to 121828871.77955167.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[5] changed from ' - '93803974.94585605 to 121806173.16234332.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[6] changed from ' - '93740909.6414029 to 121747499.26300849.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[7] changed from ' - '93617270.61393705 to 121633988.28657046.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[8] changed from ' - '93416389.57120258 to 121451313.14761288.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[9] changed from ' - '93128349.9413553 to 121191121.29855631.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[10] changed from ' - '92749489.63409857 to 120850401.4518542.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[11] changed from ' - '92280922.89756572 to 120430113.13014057.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[12] changed from ' - '91726969.7065309 to 119933822.07677707.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[13] changed from ' - '91093855.02669382 to 119366613.79918045.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[14] changed from ' - '90388754.75329588 to 118734320.80776092.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[15] changed from ' - '89619148.3351723 to 118043011.76546931.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[16] changed from ' - '88792406.60500015 to 117298673.52961412.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[17] changed from ' - '87915546.7152051 to 116507025.76143631.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[18] changed from ' - '86995100.04845743 to 115673422.60265239.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[19] changed from ' - '86037053.6088111 to 114802809.53825028.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[20] changed from ' - '85046837.46553236 to 113899714.05672209.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[21] changed from ' - '84029339.81217004 to 112968256.16680768.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[22] changed from ' - '82988937.55121242 to 112012169.8828444.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[23] changed from ' - '81929534.6530822 to 111034830.12506007.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[24] changed from ' - '80854603.43945664 to 110039281.64062221.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[25] changed from ' - '79767225.84959355 to 109028267.93046159.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[26] changed from ' - '78670132.98634717 to 108004259.0371021.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[27] changed from ' - '77565742.02993207 to 106969477.59085709.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[28] changed from ' - '76456190.10462967 to 105925922.8442622.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[29] changed from ' - '75343364.98867811 to 104875392.62416176.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[30] changed from ' - '74228932.73833859 to 103819503.24670015.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[31] changed from ' - '73114362.39827323 to 102759707.50405033.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[32] changed from ' - '72000948.02119635 to 101697310.86306264.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[33] changed from ' - '70889828.23935905 to 100633486.02781992.\n' - 'Value of root.surfaceplant.HeatkWhProduced.value[34] changed from ' - '69782003.63118193 to 99569286.01834619.\n' - 'Value of root.surfaceplant.HeatExtracted.value[0] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[1] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[2] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[3] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[4] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[5] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[6] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[7] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[8] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[9] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[10] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[11] changed from ' - '138.80607304232393 to 168.11852570492832.\n' - 'Value of root.surfaceplant.HeatExtracted.value[12] changed from ' - '138.8060730423238 to 168.11852570492803.\n' - 'Value of root.surfaceplant.HeatExtracted.value[13] changed from ' - '138.80607304232223 to 168.118525704925.\n' - 'Value of root.surfaceplant.HeatExtracted.value[14] changed from ' - '138.8060730423093 to 168.11852570490046.\n' - 'Value of root.surfaceplant.HeatExtracted.value[15] changed from ' - '138.80607304222832 to 168.11852570475176.\n' - 'Value of root.surfaceplant.HeatExtracted.value[16] changed from ' - '138.8060730418287 to 168.11852570403732.\n' - 'Value of root.surfaceplant.HeatExtracted.value[17] changed from ' - '138.8060730402065 to 168.11852570120578.\n' - 'Value of root.surfaceplant.HeatExtracted.value[18] changed from ' - '138.8060730346082 to 168.1185256916398.\n' - 'Value of root.surfaceplant.HeatExtracted.value[19] changed from ' - '138.8060730177529 to 168.11852566338254.\n' - 'Value of root.surfaceplant.HeatExtracted.value[20] changed from ' - '138.80607297255065 to 168.11852558889132.\n' - 'Value of root.surfaceplant.HeatExtracted.value[21] changed from ' - '138.8060728627434 to 168.1185254107205.\n' - 'Value of root.surfaceplant.HeatExtracted.value[22] changed from ' - '138.80607261777047 to 168.11852501879812.\n' - 'Value of root.surfaceplant.HeatExtracted.value[23] changed from ' - '138.8060721101415 to 168.11852421704623.\n' - 'Value of root.surfaceplant.HeatExtracted.value[24] changed from ' - '138.80607112383063 to 168.11852267751735.\n' - 'Value of root.surfaceplant.HeatExtracted.value[25] changed from ' - '138.80606931267334 to 168.11851988096356.\n' - 'Value of root.surfaceplant.HeatExtracted.value[26] changed from ' - '138.8060661483957 to 168.11851504370165.\n' - 'Value of root.surfaceplant.HeatExtracted.value[27] changed from ' - '138.80606085864824 to 168.11850703167488.\n' - 'Value of root.surfaceplant.HeatExtracted.value[28] changed from ' - '138.80605235616147 to 168.11849426359984.\n' - 'Value of root.surfaceplant.HeatExtracted.value[29] changed from ' - '138.80603916080327 to 168.11847460592392.\n' - 'Value of root.surfaceplant.HeatExtracted.value[30] changed from ' - '138.80601931683614 to 168.11844526292654.\n' - 'Value of root.surfaceplant.HeatExtracted.value[31] changed from ' - '138.80599030801122 to 168.1184026656473.\n' - 'Value of root.surfaceplant.HeatExtracted.value[32] changed from ' - '138.80594897328058 to 168.11834236340306.\n' - 'Value of root.surfaceplant.HeatExtracted.value[33] changed from ' - '138.80589142587775 to 168.11825892150625.\n' - 'Value of root.surfaceplant.HeatExtracted.value[34] changed from ' - '138.80581297832416 to 168.11814582844622.\n' - 'Value of root.surfaceplant.HeatExtracted.value[35] changed from ' - '138.80570807561097 to 168.11799541530442.\n' - 'Value of root.surfaceplant.HeatExtracted.value[36] changed from ' - '138.8055702384114 to 168.11779878959777.\n' - 'Value of root.surfaceplant.HeatExtracted.value[37] changed from ' - '138.80539201773797 to 168.1175457851182.\n' - 'Value of root.surfaceplant.HeatExtracted.value[38] changed from ' - '138.80516496200528 to 168.1172249287259.\n' - 'Value of root.surfaceplant.HeatExtracted.value[39] changed from ' - '138.8048795970158 to 168.11682342446053.\n' - 'Value of root.surfaceplant.HeatExtracted.value[40] changed from ' - '138.80452541897657 to 168.11632715481642.\n' - 'Value of root.surfaceplant.HeatExtracted.value[41] changed from ' - '138.80409090029121 to 168.11572069856757.\n' - 'Value of root.surfaceplant.HeatExtracted.value[42] changed from ' - '138.80356350756375 to 168.11498736415942.\n' - 'Value of root.surfaceplant.HeatExtracted.value[43] changed from ' - '138.80292973100114 to 168.11410923739166.\n' - 'Value of root.surfaceplant.HeatExtracted.value[44] changed from ' - '138.80217512420987 to 168.1130672419059.\n' - 'Value of root.surfaceplant.HeatExtracted.value[45] changed from ' - '138.80128435324715 to 168.11184121085378.\n' - 'Value of root.surfaceplant.HeatExtracted.value[46] changed from ' - '138.80024125370255 to 168.11040996804732.\n' - 'Value of root.surfaceplant.HeatExtracted.value[47] changed from ' - '138.79902889454505 to 168.10875141687742.\n' - 'Value of root.surfaceplant.HeatExtracted.value[48] changed from ' - '138.7976296474704 to 168.10684263531653.\n' - 'Value of root.surfaceplant.HeatExtracted.value[49] changed from ' - '138.79602526051048 to 168.10465997538518.\n' - 'Value of root.surfaceplant.HeatExtracted.value[50] changed from ' - '138.79419693472323 to 168.10217916556027.\n' - 'Value of root.surfaceplant.HeatExtracted.value[51] changed from ' - '138.7921254028533 to 168.0993754147158.\n' - 'Value of root.surfaceplant.HeatExtracted.value[52] changed from ' - '138.78979100894017 to 168.09622351631737.\n' - 'Value of root.surfaceplant.HeatExtracted.value[53] changed from ' - '138.78717378794715 to 168.09269795172705.\n' - 'Value of root.surfaceplant.HeatExtracted.value[54] changed from ' - '138.784253544583 to 168.08877299161514.\n' - 'Value of root.surfaceplant.HeatExtracted.value[55] changed from ' - '138.78100993059064 to 168.08442279461391.\n' - 'Value of root.surfaceplant.HeatExtracted.value[56] changed from ' - '138.77742251987723 to 168.0796215024814.\n' - 'Value of root.surfaceplant.HeatExtracted.value[57] changed from ' - '138.77347088095775 to 168.07434333117158.\n' - 'Value of root.surfaceplant.HeatExtracted.value[58] changed from ' - '138.76913464627447 to 168.06856265732702.\n' - 'Value of root.surfaceplant.HeatExtracted.value[59] changed from ' - '138.7643935780432 to 168.06225409981852.\n' - 'Value of root.surfaceplant.HeatExtracted.value[60] changed from ' - '138.75922763035493 to 168.0553925960581.\n' - 'Value of root.surfaceplant.HeatExtracted.value[61] changed from ' - '138.75361700733453 to 168.04795347290008.\n' - 'Value of root.surfaceplant.HeatExtracted.value[62] changed from ' - '138.74754221722372 to 168.0399125120266.\n' - 'Value of root.surfaceplant.HeatExtracted.value[63] changed from ' - '138.74098412231208 to 168.03124600978222.\n' - 'Value of root.surfaceplant.HeatExtracted.value[64] changed from ' - '138.73392398469156 to 168.02193083148393.\n' - 'Value of root.surfaceplant.HeatExtracted.value[65] changed from ' - '138.72634350785415 to 168.01194446028327.\n' - 'Value of root.surfaceplant.HeatExtracted.value[66] changed from ' - '138.71822487418936 to 168.0012650407035.\n' - 'Value of root.surfaceplant.HeatExtracted.value[67] changed from ' - '138.70955077846983 to 167.9898714170059.\n' - 'Value of root.surfaceplant.HeatExtracted.value[68] changed from ' - '138.70030445744115 to 167.97774316657416.\n' - 'Value of root.surfaceplant.HeatExtracted.value[69] changed from ' - '138.69046971565075 to 167.96486062852273.\n' - 'Value of root.surfaceplant.HeatExtracted.value[70] changed from ' - '138.6800309476707 to 167.95120492775703.\n' - 'Value of root.surfaceplant.HeatExtracted.value[71] changed from ' - '138.66897315687967 to 167.93675799472334.\n' - 'Value of root.surfaceplant.HeatExtracted.value[72] changed from ' - '138.65728197097957 to 167.9215025810945.\n' - 'Value of root.surfaceplant.HeatExtracted.value[73] changed from ' - '138.64494365442997 to 167.90542227164374.\n' - 'Value of root.surfaceplant.HeatExtracted.value[74] changed from ' - '138.6319451179843 to 167.88850149255774.\n' - 'Value of root.surfaceplant.HeatExtracted.value[75] changed from ' - '138.61827392551604 to 167.8707255164419.\n' - 'Value of root.surfaceplant.HeatExtracted.value[76] changed from ' - '138.60391829832042 to 167.85208046426337.\n' - 'Value of root.surfaceplant.HeatExtracted.value[77] changed from ' - '138.5888671170762 to 167.83255330447687.\n' - 'Value of root.surfaceplant.HeatExtracted.value[78] changed from ' - '138.57310992164705 to 167.81213184956604.\n' - 'Value of root.surfaceplant.HeatExtracted.value[79] changed from ' - '138.55663690889884 to 167.7908047502302.\n' - 'Value of root.surfaceplant.HeatExtracted.value[80] changed from ' - '138.53943892870254 to 167.76856148743312.\n' - 'Value of root.surfaceplant.HeatExtracted.value[81] changed from ' - '138.52150747828586 to 167.7453923625238.\n' - 'Value of root.surfaceplant.HeatExtracted.value[82] changed from ' - '138.50283469509037 to 167.72128848562787.\n' - 'Value of root.surfaceplant.HeatExtracted.value[83] changed from ' - '138.48341334828388 to 167.69624176249667.\n' - 'Value of root.surfaceplant.HeatExtracted.value[84] changed from ' - '138.46323682906888 to 167.67024487999424.\n' - 'Value of root.surfaceplant.HeatExtracted.value[85] changed from ' - '138.44229913992186 to 167.6432912903862.\n' - 'Value of root.surfaceplant.HeatExtracted.value[86] changed from ' - '138.42059488288987 to 167.61537519458997.\n' - 'Value of root.surfaceplant.HeatExtracted.value[87] changed from ' - '138.39811924706248 to 167.58649152453066.\n' - 'Value of root.surfaceplant.HeatExtracted.value[88] changed from ' - '138.37486799533045 to 167.55663592473968.\n' - 'Value of root.surfaceplant.HeatExtracted.value[89] changed from ' - '138.35083745053515 to 167.5258047333223.\n' - 'Value of root.surfaceplant.HeatExtracted.value[90] changed from ' - '138.3260244811044 to 167.49399496241068.\n' - 'Value of root.surfaceplant.HeatExtracted.value[91] changed from ' - '138.30042648626497 to 167.46120427821043.\n' - 'Value of root.surfaceplant.HeatExtracted.value[92] changed from ' - '138.27404138091342 to 167.42743098073962.\n' - 'Value of root.surfaceplant.HeatExtracted.value[93] changed from ' - '138.2468675802225 to 167.39267398335076.\n' - 'Value of root.surfaceplant.HeatExtracted.value[94] changed from ' - '138.21890398405225 to 167.35693279211912.\n' - 'Value of root.surfaceplant.HeatExtracted.value[95] changed from ' - '138.19014996123033 to 167.320207485172.\n' - 'Value of root.surfaceplant.HeatExtracted.value[96] changed from ' - '138.16060533376023 to 167.2824986920282.\n' - 'Value of root.surfaceplant.HeatExtracted.value[97] changed from ' - '138.13027036100976 to 167.2438075730085.\n' - 'Value of root.surfaceplant.HeatExtracted.value[98] changed from ' - '138.09914572392958 to 167.2041357987733.\n' - 'Value of root.surfaceplant.HeatExtracted.value[99] changed from ' - '138.0672325093438 to 167.16348553003743.\n' - 'Value of root.surfaceplant.HeatExtracted.value[100] changed from ' - '138.0345321943529 to 167.121859397505.\n' - 'Value of root.surfaceplant.HeatExtracted.value[101] changed from ' - '138.00104663088365 to 167.07926048206585.\n' - 'Value of root.surfaceplant.HeatExtracted.value[102] changed from ' - '137.96677803041737 to 167.03569229528594.\n' - 'Value of root.surfaceplant.HeatExtracted.value[103] changed from ' - '137.93172894892442 to 166.9911587602234.\n' - 'Value of root.surfaceplant.HeatExtracted.value[104] changed from ' - '137.89590227202882 to 166.94566419259633.\n' - 'Value of root.surfaceplant.HeatExtracted.value[105] changed from ' - '137.85930120042505 to 166.89921328232398.\n' - 'Value of root.surfaceplant.HeatExtracted.value[106] changed from ' - '137.8219292355651 to 166.851811075462.\n' - 'Value of root.surfaceplant.HeatExtracted.value[107] changed from ' - '137.78379016563153 to 166.80346295654633.\n' - 'Value of root.surfaceplant.HeatExtracted.value[108] changed from ' - '137.74488805181048 to 166.75417463136037.\n' - 'Value of root.surfaceplant.HeatExtracted.value[109] changed from ' - '137.70522721487532 to 166.70395211013425.\n' - 'Value of root.surfaceplant.HeatExtracted.value[110] changed from ' - '137.66481222209086 to 166.65280169118637.\n' - 'Value of root.surfaceplant.HeatExtracted.value[111] changed from ' - '137.6236478744447 to 166.60072994501198.\n' - 'Value of root.surfaceplant.HeatExtracted.value[112] changed from ' - '137.58173919421213 to 166.547743698823.\n' - 'Value of root.surfaceplant.HeatExtracted.value[113] changed from ' - '137.53909141285814 to 166.49385002154216.\n' - 'Value of root.surfaceplant.HeatExtracted.value[114] changed from ' - '137.4957099592797 to 166.4390562092509.\n' - 'Value of root.surfaceplant.HeatExtracted.value[115] changed from ' - '137.45160044838977 to 166.38336977109174.\n' - 'Value of root.surfaceplant.HeatExtracted.value[116] changed from ' - '137.40676867004277 to 166.32679841562185.\n' - 'Value of root.surfaceplant.HeatExtracted.value[117] changed from ' - '137.36122057830167 to 166.26935003761557.\n' - 'Value of root.surfaceplant.HeatExtracted.value[118] changed from ' - '137.31496228104476 to 166.2110327053114.\n' - 'Value of root.surfaceplant.HeatExtracted.value[119] changed from ' - '137.26800002990905 to 166.1518546480976.\n' - 'Value of root.surfaceplant.HeatExtracted.value[120] changed from ' - '137.22034021056828 to 166.09182424463245.\n' - 'Value of root.surfaceplant.HeatExtracted.value[121] changed from ' - '137.17198933334086 to 166.0309500113902.\n' - 'Value of root.surfaceplant.HeatExtracted.value[122] changed from ' - '137.1229540241235 to 165.9692405916276.\n' - 'Value of root.surfaceplant.HeatExtracted.value[123] changed from ' - '137.0732410156458 to 165.90670474476212.\n' - 'Value of root.surfaceplant.HeatExtracted.value[124] changed from ' - '137.02285713904084 to 165.8433513361544.\n' - 'Value of root.surfaceplant.HeatExtracted.value[125] changed from ' - '136.97180931572498 to 165.77918932728574.\n' - 'Value of root.surfaceplant.HeatExtracted.value[126] changed from ' - '136.92010454958208 to 165.71422776632264.\n' - 'Value of root.surfaceplant.HeatExtracted.value[127] changed from ' - '136.8677499194453 to 165.64847577905894.\n' - 'Value of root.surfaceplant.HeatExtracted.value[128] changed from ' - '136.81475257186966 to 165.58194256022674.\n' - 'Value of root.surfaceplant.HeatExtracted.value[129] changed from ' - '136.7611197141898 to 165.51463736516553.\n' - 'Value of root.surfaceplant.HeatExtracted.value[130] changed from ' - '136.7068586078544 to 165.44656950184213.\n' - 'Value of root.surfaceplant.HeatExtracted.value[131] changed from ' - '136.6519765620323 to 165.37774832320983.\n' - 'Value of root.surfaceplant.HeatExtracted.value[132] changed from ' - '136.59648092748174 to 165.30818321989858.\n' - 'Value of root.surfaceplant.HeatExtracted.value[133] changed from ' - '136.54037909067657 to 165.23788361322653.\n' - 'Value of root.surfaceplant.HeatExtracted.value[134] changed from ' - '136.48367846818198 to 165.16685894852193.\n' - 'Value of root.surfaceplant.HeatExtracted.value[135] changed from ' - '136.42638650127282 to 165.09511868874878.\n' - 'Value of root.surfaceplant.HeatExtracted.value[136] changed from ' - '136.36851065078756 to 165.0226723084237.\n' - 'Value of root.surfaceplant.HeatExtracted.value[137] changed from ' - '136.31005839221055 to 164.9495292878172.\n' - 'Value of root.surfaceplant.HeatExtracted.value[138] changed from ' - '136.25103721097625 to 164.8756991074292.\n' - 'Value of root.surfaceplant.HeatExtracted.value[139] changed from ' - '136.19145459798762 to 164.80119124272903.\n' - 'Value of root.surfaceplant.HeatExtracted.value[140] changed from ' - '136.131318045343 to 164.72601515915306.\n' - 'Value of root.surfaceplant.HeatExtracted.value[141] changed from ' - '136.07063504226375 to 164.65018030734882.\n' - 'Value of root.surfaceplant.HeatExtracted.value[142] changed from ' - '136.00941307121678 to 164.57369611865934.\n' - 'Value of root.surfaceplant.HeatExtracted.value[143] changed from ' - '135.94765960422527 to 164.4965720008373.\n' - 'Value of root.surfaceplant.HeatExtracted.value[144] changed from ' - '135.8853820993607 to 164.41881733398247.\n' - 'Value of root.surfaceplant.HeatExtracted.value[145] changed from ' - '135.82258799741103 to 164.3404414666932.\n' - 'Value of root.surfaceplant.HeatExtracted.value[146] changed from ' - '135.7592847187178 to 164.26145371242478.\n' - 'Value of root.surfaceplant.HeatExtracted.value[147] changed from ' - '135.6954796601769 to 164.1818633460471.\n' - 'Value of root.surfaceplant.HeatExtracted.value[148] changed from ' - '135.6311801923968 to 164.1016796005932.\n' - 'Value of root.surfaceplant.HeatExtracted.value[149] changed from ' - '135.56639365700903 to 164.02091166419336.\n' - 'Value of root.surfaceplant.HeatExtracted.value[150] changed from ' - '135.50112736412416 to 163.9395686771851.\n' - 'Value of root.surfaceplant.HeatExtracted.value[151] changed from ' - '135.43538858992957 to 163.85765972939495.\n' - 'Value of root.surfaceplant.HeatExtracted.value[152] changed from ' - '135.36918457442235 to 163.77519385758305.\n' - 'Value of root.surfaceplant.HeatExtracted.value[153] changed from ' - '135.3025225192727 to 163.6921800430457.\n' - 'Value of root.surfaceplant.HeatExtracted.value[154] changed from ' - '135.23540958581293 to 163.60862720936862.\n' - 'Value of root.surfaceplant.HeatExtracted.value[155] changed from ' - '135.167852893147 to 163.52454422032503.\n' - 'Value of root.surfaceplant.HeatExtracted.value[156] changed from ' - '135.09985951637606 to 163.43993987791345.\n' - 'Value of root.surfaceplant.HeatExtracted.value[157] changed from ' - '135.0314364849352 to 163.35482292052825.\n' - 'Value of root.surfaceplant.HeatExtracted.value[158] changed from ' - '134.96259078103725 to 163.26920202125822.\n' - 'Value of root.surfaceplant.HeatExtracted.value[159] changed from ' - '134.89332933821905 to 163.18308578630763.\n' - 'Value of root.surfaceplant.HeatExtracted.value[160] changed from ' - '134.82365903998635 to 163.09648275353484.\n' - 'Value of root.surfaceplant.HeatExtracted.value[161] changed from ' - '134.7535867185529 to 163.0094013911026.\n' - 'Value of root.surfaceplant.HeatExtracted.value[162] changed from ' - '134.68311915367016 to 162.92185009623662.\n' - 'Value of root.surfaceplant.HeatExtracted.value[163] changed from ' - '134.6122630715438 to 162.83383719408639.\n' - 'Value of root.surfaceplant.HeatExtracted.value[164] changed from ' - '134.54102514383328 to 162.74537093668462.\n' - 'Value of root.surfaceplant.HeatExtracted.value[165] changed from ' - '134.46941198673076 to 162.65645950200053.\n' - 'Value of root.surfaceplant.HeatExtracted.value[166] changed from ' - '134.39743016011653 to 162.56711099308285.\n' - 'Value of root.surfaceplant.HeatExtracted.value[167] changed from ' - '134.32508616678697 to 162.47733343728902.\n' - 'Value of root.surfaceplant.HeatExtracted.value[168] changed from ' - '134.2523864517525 to 162.38713478559544.\n' - 'Value of root.surfaceplant.HeatExtracted.value[169] changed from ' - '134.1793374016019 to 162.2965229119867.\n' - 'Value of root.surfaceplant.HeatExtracted.value[170] changed from ' - '134.10594534393022 to 162.20550561291878.\n' - 'Value of root.surfaceplant.HeatExtracted.value[171] changed from ' - '134.03221654682793 to 162.1140906068531.\n' - 'Value of root.surfaceplant.HeatExtracted.value[172] changed from ' - '133.9581572184276 to 162.02228553385888.\n' - 'Value of root.surfaceplant.HeatExtracted.value[173] changed from ' - '133.8837735065065 to 161.93009795527956.\n' - 'Value of root.surfaceplant.HeatExtracted.value[174] changed from ' - '133.8090714981415 to 161.83753535346023.\n' - 'Value of root.surfaceplant.HeatExtracted.value[175] changed from ' - '133.73405721941478 to 161.7446051315339.\n' - 'Value of root.surfaceplant.HeatExtracted.value[176] changed from ' - '133.6587366351676 to 161.65131461326334.\n' - 'Value of root.surfaceplant.HeatExtracted.value[177] changed from ' - '133.58311564879935 to 161.5576710429351.\n' - 'Value of root.surfaceplant.HeatExtracted.value[178] changed from ' - '133.5072001021107 to 161.46368158530402.\n' - 'Value of root.surfaceplant.HeatExtracted.value[179] changed from ' - '133.43099577518777 to 161.3693533255851.\n' - 'Value of root.surfaceplant.HeatExtracted.value[180] changed from ' - '133.35450838632642 to 161.2746932694907.\n' - 'Value of root.surfaceplant.HeatExtracted.value[181] changed from ' - '133.27774359199248 to 161.17970834331038.\n' - 'Value of root.surfaceplant.HeatExtracted.value[182] changed from ' - '133.2007069868198 to 161.0844053940308.\n' - 'Value of root.surfaceplant.HeatExtracted.value[183] changed from ' - '133.12340410363996 to 160.98879118949472.\n' - 'Value of root.surfaceplant.HeatExtracted.value[184] changed from ' - '133.04584041354525 to 160.89287241859566.\n' - 'Value of root.surfaceplant.HeatExtracted.value[185] changed from ' - '132.96802132598185 to 160.7966556915073.\n' - 'Value of root.surfaceplant.HeatExtracted.value[186] changed from ' - '132.88995218887166 to 160.70014753994468.\n' - 'Value of root.surfaceplant.HeatExtracted.value[187] changed from ' - '132.81163828876123 to 160.60335441745625.\n' - 'Value of root.surfaceplant.HeatExtracted.value[188] changed from ' - '132.73308485099693 to 160.50628269974519.\n' - 'Value of root.surfaceplant.HeatExtracted.value[189] changed from ' - '132.6542970399242 to 160.40893868501664.\n' - 'Value of root.surfaceplant.HeatExtracted.value[190] changed from ' - '132.57527995910954 to 160.31132859435178.\n' - 'Value of root.surfaceplant.HeatExtracted.value[191] changed from ' - '132.49603865158508 to 160.2134585721046.\n' - 'Value of root.surfaceplant.HeatExtracted.value[192] changed from ' - '132.4165781001127 to 160.1153346863223.\n' - 'Value of root.surfaceplant.HeatExtracted.value[193] changed from ' - '132.33690322746816 to 160.01696292918595.\n' - 'Value of root.surfaceplant.HeatExtracted.value[194] changed from ' - '132.25701889674264 to 159.91834921747116.\n' - 'Value of root.surfaceplant.HeatExtracted.value[195] changed from ' - '132.1769299116621 to 159.81949939302726.\n' - 'Value of root.surfaceplant.HeatExtracted.value[196] changed from ' - '132.09664101692206 to 159.72041922327347.\n' - 'Value of root.surfaceplant.HeatExtracted.value[197] changed from ' - '132.01615689853764 to 159.62111440171122.\n' - 'Value of root.surfaceplant.HeatExtracted.value[198] changed from ' - '131.93548218420744 to 159.52159054845126.\n' - 'Value of root.surfaceplant.HeatExtracted.value[199] changed from ' - '131.8546214436908 to 159.42185321075473.\n' - 'Value of root.surfaceplant.HeatExtracted.value[200] changed from ' - '131.77357918919694 to 159.32190786358672.\n' - 'Value of root.surfaceplant.HeatExtracted.value[201] changed from ' - '131.69235987578566 to 159.22175991018196.\n' - 'Value of root.surfaceplant.HeatExtracted.value[202] changed from ' - '131.61096790177876 to 159.121414682621.\n' - 'Value of root.surfaceplant.HeatExtracted.value[203] changed from ' - '131.52940760918082 to 159.02087744241646.\n' - 'Value of root.surfaceplant.HeatExtracted.value[204] changed from ' - '131.44768328410936 to 158.9201533811086.\n' - 'Value of root.surfaceplant.HeatExtracted.value[205] changed from ' - '131.3657991572335 to 158.81924762086896.\n' - 'Value of root.surfaceplant.HeatExtracted.value[206] changed from ' - '131.28375940421975 to 158.71816521511113.\n' - 'Value of root.surfaceplant.HeatExtracted.value[207] changed from ' - '131.20156814618545 to 158.61691114910928.\n' - 'Value of root.surfaceplant.HeatExtracted.value[208] changed from ' - '131.11922945015823 to 158.51549034062137.\n' - 'Value of root.surfaceplant.HeatExtracted.value[209] changed from ' - '131.0367473295412 to 158.413907640519.\n' - 'Value of root.surfaceplant.HeatExtracted.value[210] changed from ' - '130.9541257445843 to 158.31216783342114.\n' - 'Value of root.surfaceplant.HeatExtracted.value[211] changed from ' - '130.8713686028589 to 158.21027563833232.\n' - 'Value of root.surfaceplant.HeatExtracted.value[212] changed from ' - '130.78847975973807 to 158.10823570928437.\n' - 'Value of root.surfaceplant.HeatExtracted.value[213] changed from ' - '130.70546301887984 to 158.00605263598106.\n' - 'Value of root.surfaceplant.HeatExtracted.value[214] changed from ' - '130.62232213271372 to 157.90373094444504.\n' - 'Value of root.surfaceplant.HeatExtracted.value[215] changed from ' - '130.5390608029306 to 157.8012750976671.\n' - 'Value of root.surfaceplant.HeatExtracted.value[216] changed from ' - '130.45568268097443 to 157.69868949625658.\n' - 'Value of root.surfaceplant.HeatExtracted.value[217] changed from ' - '130.37219136853636 to 157.59597847909316.\n' - 'Value of root.surfaceplant.HeatExtracted.value[218] changed from ' - '130.2885904180505 to 157.49314632397875.\n' - 'Value of root.surfaceplant.HeatExtracted.value[219] changed from ' - '130.20488333319076 to 157.3901972482901.\n' - 'Value of root.surfaceplant.HeatExtracted.value[220] changed from ' - '130.121073569369 to 157.2871354096309.\n' - 'Value of root.surfaceplant.HeatExtracted.value[221] changed from ' - '130.03716453423309 to 157.18396490648342.\n' - 'Value of root.surfaceplant.HeatExtracted.value[222] changed from ' - '129.95315958816647 to 157.08068977885952.\n' - 'Value of root.surfaceplant.HeatExtracted.value[223] changed from ' - '129.86906204478643 to 156.9773140089499.\n' - 'Value of root.surfaceplant.HeatExtracted.value[224] changed from ' - '129.78487517144322 to 156.8738415217723.\n' - 'Value of root.surfaceplant.HeatExtracted.value[225] changed from ' - '129.7006021897179 to 156.7702761858178.\n' - 'Value of root.surfaceplant.HeatExtracted.value[226] changed from ' - '129.61624627591976 to 156.66662181369486.\n' - 'Value of root.surfaceplant.HeatExtracted.value[227] changed from ' - '129.53181056158283 to 156.56288216277125.\n' - 'Value of root.surfaceplant.HeatExtracted.value[228] changed from ' - '129.44729813396106 to 156.45906093581314.\n' - 'Value of root.surfaceplant.HeatExtracted.value[229] changed from ' - '129.36271203652174 to 156.35516178162158.\n' - 'Value of root.surfaceplant.HeatExtracted.value[230] changed from ' - '129.27805526943806 to 156.2511882956661.\n' - 'Value of root.surfaceplant.HeatExtracted.value[231] changed from ' - '129.19333079007893 to 156.14714402071456.\n' - 'Value of root.surfaceplant.HeatExtracted.value[232] changed from ' - '129.10854151349767 to 156.04303244746015.\n' - 'Value of root.surfaceplant.HeatExtracted.value[233] changed from ' - '129.02369031291806 to 155.9388570151445.\n' - 'Value of root.surfaceplant.HeatExtracted.value[234] changed from ' - '128.93878002021776 to 155.834621112177.\n' - 'Value of root.surfaceplant.HeatExtracted.value[235] changed from ' - '128.8538134264104 to 155.73032807675028.\n' - 'Value of root.surfaceplant.HeatExtracted.value[236] changed from ' - '128.7687932821237 to 155.62598119745192.\n' - 'Value of root.surfaceplant.HeatExtracted.value[237] changed from ' - '128.6837222980759 to 155.52158371387137.\n' - 'Value of root.surfaceplant.HeatExtracted.value[238] changed from ' - '128.59860314554874 to 155.41713881720298.\n' - 'Value of root.surfaceplant.HeatExtracted.value[239] changed from ' - '128.51343845685764 to 155.31264965084475.\n' - 'Value of root.surfaceplant.HeatExtracted.value[240] changed from ' - '128.42823082581924 to 155.2081193109919.\n' - 'Value of root.surfaceplant.HeatExtracted.value[241] changed from ' - '128.34298280821477 to 155.1035508472264.\n' - 'Value of root.surfaceplant.HeatExtracted.value[242] changed from ' - '128.25769692225143 to 154.99894726310143.\n' - 'Value of root.surfaceplant.HeatExtracted.value[243] changed from ' - '128.17237564901936 to 154.8943115167217.\n' - 'Value of root.surfaceplant.HeatExtracted.value[244] changed from ' - '128.0870214329456 to 154.78964652131754.\n' - 'Value of root.surfaceplant.HeatExtracted.value[245] changed from ' - '128.00163668224488 to 154.68495514581545.\n' - 'Value of root.surfaceplant.HeatExtracted.value[246] changed from ' - '127.91622376936633 to 154.5802402154028.\n' - 'Value of root.surfaceplant.HeatExtracted.value[247] changed from ' - '127.83078503143665 to 154.4755045120877.\n' - 'Value of root.surfaceplant.HeatExtracted.value[248] changed from ' - '127.74532277070007 to 154.3707507752539.\n' - 'Value of root.surfaceplant.HeatExtracted.value[249] changed from ' - '127.65983925495398 to 154.26598170221.\n' - 'Value of root.surfaceplant.HeatExtracted.value[250] changed from ' - '127.57433671798105 to 154.16119994873446.\n' - 'Value of root.surfaceplant.HeatExtracted.value[251] changed from ' - '127.48881735997767 to 154.05640812961389.\n' - 'Value of root.surfaceplant.HeatExtracted.value[252] changed from ' - '127.40328334797837 to 153.95160881917755.\n' - 'Value of root.surfaceplant.HeatExtracted.value[253] changed from ' - '127.31773681627628 to 153.84680455182567.\n' - 'Value of root.surfaceplant.HeatExtracted.value[254] changed from ' - '127.23217986683994 to 153.74199782255266.\n' - 'Value of root.surfaceplant.HeatExtracted.value[255] changed from ' - '127.14661456972588 to 153.63719108746508.\n' - 'Value of root.surfaceplant.HeatExtracted.value[256] changed from ' - '127.06104296348727 to 153.53238676429422.\n' - 'Value of root.surfaceplant.HeatExtracted.value[257] changed from ' - '126.97546705557906 to 153.42758723290314.\n' - 'Value of root.surfaceplant.HeatExtracted.value[258] changed from ' - '126.88988882275834 to 153.32279483578898.\n' - 'Value of root.surfaceplant.HeatExtracted.value[259] changed from ' - '126.8043102114812 to 153.21801187857898.\n' - 'Value of root.surfaceplant.HeatExtracted.value[260] changed from ' - '126.71873313829586 to 153.11324063052155.\n' - 'Value of root.surfaceplant.HeatExtracted.value[261] changed from ' - '126.6331594902307 to 153.0084833249728.\n' - 'Value of root.surfaceplant.HeatExtracted.value[262] changed from ' - '126.54759112517935 to 152.90374215987603.\n' - 'Value of root.surfaceplant.HeatExtracted.value[263] changed from ' - '126.46202987228148 to 152.79901929823757.\n' - 'Value of root.surfaceplant.HeatExtracted.value[264] changed from ' - '126.37647753229906 to 152.69431686859627.\n' - 'Value of root.surfaceplant.HeatExtracted.value[265] changed from ' - '126.29093587798921 to 152.5896369654879.\n' - 'Value of root.surfaceplant.HeatExtracted.value[266] changed from ' - '126.20540665447263 to 152.4849816499045.\n' - 'Value of root.surfaceplant.HeatExtracted.value[267] changed from ' - '126.11989157959812 to 152.38035294974827.\n' - 'Value of root.surfaceplant.HeatExtracted.value[268] changed from ' - '126.03439234430338 to 152.27575286028025.\n' - 'Value of root.surfaceplant.HeatExtracted.value[269] changed from ' - '125.94891061297132 to 152.1711833445636.\n' - 'Value of root.surfaceplant.HeatExtracted.value[270] changed from ' - '125.86344802378257 to 152.06664633390213.\n' - 'Value of root.surfaceplant.HeatExtracted.value[271] changed from ' - '125.77800618906448 to 151.9621437282732.\n' - 'Value of root.surfaceplant.HeatExtracted.value[272] changed from ' - '125.69258669563523 to 151.85767739675575.\n' - 'Value of root.surfaceplant.HeatExtracted.value[273] changed from ' - '125.60719110514485 to 151.75324917795297.\n' - 'Value of root.surfaceplant.HeatExtracted.value[274] changed from ' - '125.52182095441206 to 151.64886088041015.\n' - 'Value of root.surfaceplant.HeatExtracted.value[275] changed from ' - '125.43647775575694 to 151.54451428302747.\n' - 'Value of root.surfaceplant.HeatExtracted.value[276] changed from ' - '125.35116299733 to 151.4402111354674.\n' - 'Value of root.surfaceplant.HeatExtracted.value[277] changed from ' - '125.26587814343746 to 151.33595315855754.\n' - 'Value of root.surfaceplant.HeatExtracted.value[278] changed from ' - '125.18062463486238 to 151.2317420446885.\n' - 'Value of root.surfaceplant.HeatExtracted.value[279] changed from ' - '125.09540388918234 to 151.12757945820647.\n' - 'Value of root.surfaceplant.HeatExtracted.value[280] changed from ' - '125.01021730108292 to 151.02346703580136.\n' - 'Value of root.surfaceplant.HeatExtracted.value[281] changed from ' - '124.92506624266795 to 150.91940638688982.\n' - 'Value of root.surfaceplant.HeatExtracted.value[282] changed from ' - '124.8399520637655 to 150.81539909399368.\n' - 'Value of root.surfaceplant.HeatExtracted.value[283] changed from ' - '124.75487609223038 to 150.71144671311345.\n' - 'Value of root.surfaceplant.HeatExtracted.value[284] changed from ' - '124.66983963424317 to 150.6075507740973.\n' - 'Value of root.surfaceplant.HeatExtracted.value[285] changed from ' - '124.58484397460523 to 150.50371278100508.\n' - 'Value of root.surfaceplant.HeatExtracted.value[286] changed from ' - '124.49989037703024 to 150.39993421246808.\n' - 'Value of root.surfaceplant.HeatExtracted.value[287] changed from ' - '124.41498008443223 to 150.2962165220439.\n' - 'Value of root.surfaceplant.HeatExtracted.value[288] changed from ' - '124.33011431921007 to 150.19256113856684.\n' - 'Value of root.surfaceplant.HeatExtracted.value[289] changed from ' - '124.245294283528 to 150.08896946649398.\n' - 'Value of root.surfaceplant.HeatExtracted.value[290] changed from ' - '124.16052115959333 to 149.98544288624643.\n' - 'Value of root.surfaceplant.HeatExtracted.value[291] changed from ' - '124.07579610993015 to 149.88198275454673.\n' - 'Value of root.surfaceplant.HeatExtracted.value[292] changed from ' - '123.99112027764973 to 149.77859040475118.\n' - 'Value of root.surfaceplant.HeatExtracted.value[293] changed from ' - '123.90649478671774 to 149.67526714717843.\n' - 'Value of root.surfaceplant.HeatExtracted.value[294] changed from ' - '123.82192074221764 to 149.5720142694333.\n' - 'Value of root.surfaceplant.HeatExtracted.value[295] changed from ' - '123.7373992306112 to 149.46883303672706.\n' - 'Value of root.surfaceplant.HeatExtracted.value[296] changed from ' - '123.65293131999535 to 149.3657246921924.\n' - 'Value of root.surfaceplant.HeatExtracted.value[297] changed from ' - '123.56851806035584 to 149.2626904571956.\n' - 'Value of root.surfaceplant.HeatExtracted.value[298] changed from ' - '123.48416048381802 to 149.15973153164342.\n' - 'Value of root.surfaceplant.HeatExtracted.value[299] changed from ' - '123.39985960489358 to 149.0568490942866.\n' - 'Value of root.surfaceplant.HeatExtracted.value[300] changed from ' - '123.31561642072505 to 148.95404430301923.\n' - 'Value of root.surfaceplant.HeatExtracted.value[301] changed from ' - '123.23143191132638 to 148.85131829517385.\n' - 'Value of root.surfaceplant.HeatExtracted.value[302] changed from ' - '123.14730703982102 to 148.748672187813.\n' - 'Value of root.surfaceplant.HeatExtracted.value[303] changed from ' - '123.0632427526762 to 148.64610707801677.\n' - 'Value of root.surfaceplant.HeatExtracted.value[304] changed from ' - '122.97923997993513 to 148.54362404316615.\n' - 'Value of root.surfaceplant.HeatExtracted.value[305] changed from ' - '122.8952996354451 to 148.4412241412233.\n' - 'Value of root.surfaceplant.HeatExtracted.value[306] changed from ' - '122.81142261708334 to 148.33890841100742.\n' - 'Value of root.surfaceplant.HeatExtracted.value[307] changed from ' - '122.72760980697979 to 148.2366778724671.\n' - 'Value of root.surfaceplant.HeatExtracted.value[308] changed from ' - '122.64386207173683 to 148.13453352694924.\n' - 'Value of root.surfaceplant.HeatExtracted.value[309] changed from ' - '122.56018026264586 to 148.03247635746405.\n' - 'Value of root.surfaceplant.HeatExtracted.value[310] changed from ' - '122.47656521590172 to 147.9305073289465.\n' - 'Value of root.surfaceplant.HeatExtracted.value[311] changed from ' - '122.39301775281356 to 147.8286273885144.\n' - 'Value of root.surfaceplant.HeatExtracted.value[312] changed from ' - '122.30953868001346 to 147.72683746572284.\n' - 'Value of root.surfaceplant.HeatExtracted.value[313] changed from ' - '122.22612878966189 to 147.6251384728153.\n' - 'Value of root.surfaceplant.HeatExtracted.value[314] changed from ' - '122.14278885965084 to 147.52353130497124.\n' - 'Value of root.surfaceplant.HeatExtracted.value[315] changed from ' - '122.05951965380368 to 147.42201684055027.\n' - 'Value of root.surfaceplant.HeatExtracted.value[316] changed from ' - '121.97632192207301 to 147.32059594133295.\n' - 'Value of root.surfaceplant.HeatExtracted.value[317] changed from ' - '121.89319640073548 to 147.21926945275902.\n' - 'Value of root.surfaceplant.HeatExtracted.value[318] changed from ' - '121.81014381258407 to 147.11803820416102.\n' - 'Value of root.surfaceplant.HeatExtracted.value[319] changed from ' - '121.7271648671178 to 147.01690300899594.\n' - 'Value of root.surfaceplant.HeatExtracted.value[320] changed from ' - '121.64426026072903 to 146.91586466507306.\n' - 'Value of root.surfaceplant.HeatExtracted.value[321] changed from ' - '121.56143067688805 to 146.81492395477895.\n' - 'Value of root.surfaceplant.HeatExtracted.value[322] changed from ' - '121.47867678632528 to 146.71408164529916.\n' - 'Value of root.surfaceplant.HeatExtracted.value[323] changed from ' - '121.39599924721111 to 146.61333848883712.\n' - 'Value of root.surfaceplant.HeatExtracted.value[324] changed from ' - '121.31339870533326 to 146.5126952228297.\n' - 'Value of root.surfaceplant.HeatExtracted.value[325] changed from ' - '121.23087579427154 to 146.41215257016.\n' - 'Value of root.surfaceplant.HeatExtracted.value[326] changed from ' - '121.14843113557066 to 146.31171123936753.\n' - 'Value of root.surfaceplant.HeatExtracted.value[327] changed from ' - '121.0660653389104 to 146.2113719248545.\n' - 'Value of root.surfaceplant.HeatExtracted.value[328] changed from ' - '120.98377900227351 to 146.11113530709062.\n' - 'Value of root.surfaceplant.HeatExtracted.value[329] changed from ' - '120.90157271211154 to 146.01100205281404.\n' - 'Value of root.surfaceplant.HeatExtracted.value[330] changed from ' - '120.81944704350815 to 145.91097281522966.\n' - 'Value of root.surfaceplant.HeatExtracted.value[331] changed from ' - '120.73740256034047 to 145.8110482342051.\n' - 'Value of root.surfaceplant.HeatExtracted.value[332] changed from ' - '120.65543981543794 to 145.71122893646393.\n' - 'Value of root.surfaceplant.HeatExtracted.value[333] changed from ' - '120.57355935073942 to 145.61151553577554.\n' - 'Value of root.surfaceplant.HeatExtracted.value[334] changed from ' - '120.49176169744777 to 145.5119086331431.\n' - 'Value of root.surfaceplant.HeatExtracted.value[335] changed from ' - '120.41004737618265 to 145.41240881698883.\n' - 'Value of root.surfaceplant.HeatExtracted.value[336] changed from ' - '120.3284168971309 to 145.3130166633363.\n' - 'Value of root.surfaceplant.HeatExtracted.value[337] changed from ' - '120.24687076019516 to 145.21373273599053.\n' - 'Value of root.surfaceplant.HeatExtracted.value[338] changed from ' - '120.16540945514056 to 145.11455758671542.\n' - 'Value of root.surfaceplant.HeatExtracted.value[339] changed from ' - '120.0840334617387 to 145.01549175540902.\n' - 'Value of root.surfaceplant.HeatExtracted.value[340] changed from ' - '120.00274324991078 to 144.91653577027574.\n' - 'Value of root.surfaceplant.HeatExtracted.value[341] changed from ' - '119.92153927986764 to 144.81769014799687.\n' - 'Value of root.surfaceplant.HeatExtracted.value[342] changed from ' - '119.84042200224884 to 144.71895539389837.\n' - 'Value of root.surfaceplant.HeatExtracted.value[343] changed from ' - '119.75939185825915 to 144.62033200211602.\n' - 'Value of root.surfaceplant.HeatExtracted.value[344] changed from ' - '119.67844927980356 to 144.5218204557591.\n' - 'Value of root.surfaceplant.HeatExtracted.value[345] changed from ' - '119.59759468962025 to 144.42342122707092.\n' - 'Value of root.surfaceplant.HeatExtracted.value[346] changed from ' - '119.51682850141195 to 144.32513477758766.\n' - 'Value of root.surfaceplant.HeatExtracted.value[347] changed from ' - '119.43615111997514 to 144.22696155829462.\n' - 'Value of root.surfaceplant.HeatExtracted.value[348] changed from ' - '119.35556294132785 to 144.12890200978072.\n' - 'Value of root.surfaceplant.HeatExtracted.value[349] changed from ' - '119.27506435283551 to 144.03095656239051.\n' - 'Value of root.surfaceplant.HeatExtracted.value[350] changed from ' - '119.19465573333528 to 143.93312563637394.\n' - 'Value of root.surfaceplant.HeatProduced.value[0] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[1] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[2] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[3] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[4] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[5] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[6] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[7] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[8] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[9] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[10] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[11] changed from ' - '11.901840001301203 to 15.45343747298775.\n' - 'Value of root.surfaceplant.HeatProduced.value[12] changed from ' - '11.901840001301192 to 15.453437472987716.\n' - 'Value of root.surfaceplant.HeatProduced.value[13] changed from ' - '11.901840001300961 to 15.453437472987412.\n' - 'Value of root.surfaceplant.HeatProduced.value[14] changed from ' - '11.901840001299092 to 15.453437472984925.\n' - 'Value of root.surfaceplant.HeatProduced.value[15] changed from ' - '11.901840001287438 to 15.453437472969897.\n' - 'Value of root.surfaceplant.HeatProduced.value[16] changed from ' - '11.901840001229855 to 15.453437472897651.\n' - 'Value of root.surfaceplant.HeatProduced.value[17] changed from ' - '11.901840000996163 to 15.453437472611267.\n' - 'Value of root.surfaceplant.HeatProduced.value[18] changed from ' - '11.901840000189624 to 15.453437471643864.\n' - 'Value of root.surfaceplant.HeatProduced.value[19] changed from ' - '11.901839997761364 to 15.453437468786195.\n' - 'Value of root.surfaceplant.HeatProduced.value[20] changed from ' - '11.901839991249249 to 15.453437461252857.\n' - 'Value of root.surfaceplant.HeatProduced.value[21] changed from ' - '11.901839975429743 to 15.453437443234368.\n' - 'Value of root.surfaceplant.HeatProduced.value[22] changed from ' - '11.901839940137439 to 15.453437403599052.\n' - 'Value of root.surfaceplant.HeatProduced.value[23] changed from ' - '11.90183986700532 to 15.4534373225175.\n' - 'Value of root.surfaceplant.HeatProduced.value[24] changed from ' - '11.901839724911373 to 15.453437166824164.\n' - 'Value of root.surfaceplant.HeatProduced.value[25] changed from ' - '11.901839463985018 to 15.453436884007257.\n' - 'Value of root.surfaceplant.HeatProduced.value[26] changed from ' - '11.901839008119895 to 15.453436394812499.\n' - 'Value of root.surfaceplant.HeatProduced.value[27] changed from ' - '11.901838246046612 to 15.453435584552045.\n' - 'Value of root.surfaceplant.HeatProduced.value[28] changed from ' - '11.901837021126397 to 15.453434293309783.\n' - 'Value of root.surfaceplant.HeatProduced.value[29] changed from ' - '11.901835120122211 to 15.453432305318008.\n' - 'Value of root.surfaceplant.HeatProduced.value[30] changed from ' - '11.901832261278175 to 15.453429337843115.\n' - 'Value of root.surfaceplant.HeatProduced.value[31] changed from ' - '11.901828082087249 to 15.453425029952452.\n' - 'Value of root.surfaceplant.HeatProduced.value[32] changed from ' - '11.90182212714779 to 15.453418931542362.\n' - 'Value of root.surfaceplant.HeatProduced.value[33] changed from ' - '11.90181383650513 to 15.453410492993171.\n' - 'Value of root.surfaceplant.HeatProduced.value[34] changed from ' - '11.901802534846421 to 15.453399055779979.\n' - 'Value of root.surfaceplant.HeatProduced.value[35] changed from ' - '11.90178742187264 to 15.453383844319708.\n' - 'Value of root.surfaceplant.HeatProduced.value[36] changed from ' - '11.901767564114763 to 15.45336395927569.\n' - 'Value of root.surfaceplant.HeatProduced.value[37] changed from ' - '11.901741888397616 to 15.453338372477598.\n' - 'Value of root.surfaceplant.HeatProduced.value[38] changed from ' - '11.90170917708946 to 15.453305923553215.\n' - 'Value of root.surfaceplant.HeatProduced.value[39] changed from ' - '11.90166806521129 to 15.453265318308068.\n' - 'Value of root.surfaceplant.HeatProduced.value[40] changed from ' - '11.901617039421192 to 15.453215128836595.\n' - 'Value of root.surfaceplant.HeatProduced.value[41] changed from ' - '11.901554438836055 to 15.453153795301764.\n' - 'Value of root.surfaceplant.HeatProduced.value[42] changed from ' - '11.901478457609464 to 15.453079629282955.\n' - 'Value of root.surfaceplant.HeatProduced.value[43] changed from ' - '11.901387149147462 to 15.452990818562485.\n' - 'Value of root.surfaceplant.HeatProduced.value[44] changed from ' - '11.9012784318175 to 15.452885433198908.\n' - 'Value of root.surfaceplant.HeatProduced.value[45] changed from ' - '11.901150095985464 to 15.45276143272297.\n' - 'Value of root.surfaceplant.HeatProduced.value[46] changed from ' - '11.900999812204176 to 15.452616674282956.\n' - 'Value of root.surfaceplant.HeatProduced.value[47] changed from ' - '11.900825140370774 to 15.452448921566086.\n' - 'Value of root.surfaceplant.HeatProduced.value[48] changed from ' - '11.900623539669951 to 15.452255854324779.\n' - 'Value of root.surfaceplant.HeatProduced.value[49] changed from ' - '11.900392379125071 to 15.452035078343881.\n' - 'Value of root.surfaceplant.HeatProduced.value[50] changed from ' - '11.900128948586081 to 15.451784135694743.\n' - 'Value of root.surfaceplant.HeatProduced.value[51] changed from ' - '11.899830469994813 to 15.451500515133372.\n' - 'Value of root.surfaceplant.HeatProduced.value[52] changed from ' - '11.899494108779983 to 15.451181662514182.\n' - 'Value of root.surfaceplant.HeatProduced.value[53] changed from ' - '11.899116985248614 to 15.450824991103268.\n' - 'Value of root.surfaceplant.HeatProduced.value[54] changed from ' - '11.89869618585503 to 15.45042789169107.\n' - 'Value of root.surfaceplant.HeatProduced.value[55] changed from ' - '11.8982287742428 to 15.449987742416994.\n' - 'Value of root.surfaceplant.HeatProduced.value[56] changed from ' - '11.89771180197048 to 15.449501918233334.\n' - 'Value of root.surfaceplant.HeatProduced.value[57] changed from ' - '11.897142318845196 to 15.448967799948095.\n' - 'Value of root.surfaceplant.HeatProduced.value[58] changed from ' - '11.896517382801857 to 15.448382782799046.\n' - 'Value of root.surfaceplant.HeatProduced.value[59] changed from ' - '11.89583406927838 to 15.447744284522093.\n' - 'Value of root.surfaceplant.HeatProduced.value[60] changed from ' - '11.895089480048457 to 15.447049752887592.\n' - 'Value of root.surfaceplant.HeatProduced.value[61] changed from ' - '11.894280751484285 to 15.446296672687266.\n' - 'Value of root.surfaceplant.HeatProduced.value[62] changed from ' - '11.893405062230462 to 15.445482572162334.\n' - 'Value of root.surfaceplant.HeatProduced.value[63] changed from ' - '11.892459640279599 to 15.444605028870676.\n' - 'Value of root.surfaceplant.HeatProduced.value[64] changed from ' - '11.891441769446187 to 15.443661674997317.\n' - 'Value of root.surfaceplant.HeatProduced.value[65] changed from ' - '11.890348795242922 to 15.442650202116738.\n' - 'Value of root.surfaceplant.HeatProduced.value[66] changed from ' - '11.889178130168156 to 15.441568365421125.\n' - 'Value of root.surfaceplant.HeatProduced.value[67] changed from ' - '11.88792725841804 to 15.440413987431057.\n' - 'Value of root.surfaceplant.HeatProduced.value[68] changed from ' - '11.88659374004085 to 15.439184961209111.\n' - 'Value of root.surfaceplant.HeatProduced.value[69] changed from ' - '11.885175214553623 to 15.437879253098053.\n' - 'Value of root.surfaceplant.HeatProduced.value[70] changed from ' - '11.88366940404396 to 15.436494905007534.\n' - 'Value of root.surfaceplant.HeatProduced.value[71] changed from ' - '11.8820741157815 to 15.435030036274448.\n' - 'Value of root.surfaceplant.HeatProduced.value[72] changed from ' - '11.880387244364933 to 15.433482845122544.\n' - 'Value of root.surfaceplant.HeatProduced.value[73] changed from ' - '11.878606773431208 to 15.431851609747271.\n' - 'Value of root.surfaceplant.HeatProduced.value[74] changed from ' - '11.876730776954057 to 15.430134689052071.\n' - 'Value of root.surfaceplant.HeatProduced.value[75] changed from ' - '11.874757420159284 to 15.428330523061948.\n' - 'Value of root.surfaceplant.HeatProduced.value[76] changed from ' - '11.872684960083733 to 15.42643763303977.\n' - 'Value of root.surfaceplant.HeatProduced.value[77] changed from ' - '11.870511745804897 to 15.424454621330083.\n' - 'Value of root.surfaceplant.HeatProduced.value[78] changed from ' - '11.868236218367054 to 15.422380170954328.\n' - 'Value of root.surfaceplant.HeatProduced.value[79] changed from ' - '11.86585691042971 to 15.420213044980693.\n' - 'Value of root.surfaceplant.HeatProduced.value[80] changed from ' - '11.863372445662572 to 15.417952085690699.\n' - 'Value of root.surfaceplant.HeatProduced.value[81] changed from ' - '11.860781537910697 to 15.415596213563346.\n' - 'Value of root.surfaceplant.HeatProduced.value[82] changed from ' - '11.858082990152534 to 15.413144426097155.\n' - 'Value of root.surfaceplant.HeatProduced.value[83] changed from ' - '11.855275693271967 to 15.410595796488524.\n' - 'Value of root.surfaceplant.HeatProduced.value[84] changed from ' - '11.852358624664914 to 15.407949472184479.\n' - 'Value of root.surfaceplant.HeatProduced.value[85] changed from ' - '11.84933084669967 to 15.405204673326102.\n' - 'Value of root.surfaceplant.HeatProduced.value[86] changed from ' - '11.846191505048623 to 15.402360691098202.\n' - 'Value of root.surfaceplant.HeatProduced.value[87] changed from ' - '11.8429398269088 to 15.399416885999747.\n' - 'Value of root.surfaceplant.HeatProduced.value[88] changed from ' - '11.839575119126486 to 15.396372686048121.\n' - 'Value of root.surfaceplant.HeatProduced.value[89] changed from ' - '11.836096766240871 to 15.393227584929566.\n' - 'Value of root.surfaceplant.HeatProduced.value[90] changed from ' - '11.832504228460198 to 15.389981140107498.\n' - 'Value of root.surfaceplant.HeatProduced.value[91] changed from ' - '11.828797039583065 to 15.386632970898205.\n' - 'Value of root.surfaceplant.HeatProduced.value[92] changed from ' - '11.824974804876316 to 15.383182756524468.\n' - 'Value of root.surfaceplant.HeatProduced.value[93] changed from ' - '11.821037198920425 to 15.379630234154764.\n' - 'Value of root.surfaceplant.HeatProduced.value[94] changed from ' - '11.816983963431717 to 15.375975196936412.\n' - 'Value of root.surfaceplant.HeatProduced.value[95] changed from ' - '11.812814905070827 to 15.372217492029744.\n' - 'Value of root.surfaceplant.HeatProduced.value[96] changed from ' - '11.808529893244874 to 15.368357018649185.\n' - 'Value of root.surfaceplant.HeatProduced.value[97] changed from ' - '11.804128857911314 to 15.364393726117358.\n' - 'Value of root.surfaceplant.HeatProduced.value[98] changed from ' - '11.799611787389473 to 15.360327611937173.\n' - 'Value of root.surfaceplant.HeatProduced.value[99] changed from ' - '11.794978726186176 to 15.356158719886224.\n' - 'Value of root.surfaceplant.HeatProduced.value[100] changed from ' - '11.790229772840359 to 15.351887138137592.\n' - 'Value of root.surfaceplant.HeatProduced.value[101] changed from ' - '11.785365077791754 to 15.347512997410405.\n' - 'Value of root.surfaceplant.HeatProduced.value[102] changed from ' - '11.780384841277641 to 15.343036469153263.\n' - 'Value of root.surfaceplant.HeatProduced.value[103] changed from ' - '11.77528931126119 to 15.338457763762882.\n' - 'Value of root.surfaceplant.HeatProduced.value[104] changed from ' - '11.770078781395013 to 15.333777128840419.\n' - 'Value of root.surfaceplant.HeatProduced.value[105] changed from ' - '11.76475358902212 to 15.32899484748694.\n' - 'Value of root.surfaceplant.HeatProduced.value[106] changed from ' - '11.759314113217314 to 15.324111236640013.\n' - 'Value of root.surfaceplant.HeatProduced.value[107] changed from ' - '11.75376077287036 to 15.319126645452073.\n' - 'Value of root.surfaceplant.HeatProduced.value[108] changed from ' - '11.748094024813193 to 15.314041453711873.\n' - 'Value of root.surfaceplant.HeatProduced.value[109] changed from ' - '11.742314361992056 to 15.308856070309659.\n' - 'Value of root.surfaceplant.HeatProduced.value[110] changed from ' - '11.736422311685978 to 15.303570931746457.\n' - 'Value of root.surfaceplant.HeatProduced.value[111] changed from ' - '11.730418433772249 to 15.298186500687672.\n' - 'Value of root.surfaceplant.HeatProduced.value[112] changed from ' - '11.724303319039597 to 15.292703264561391.\n' - 'Value of root.surfaceplant.HeatProduced.value[113] changed from ' - '11.718077587549296 to 15.28712173420082.\n' - 'Value of root.surfaceplant.HeatProduced.value[114] changed from ' - '11.71174188704457 to 15.281442442531343.\n' - 'Value of root.surfaceplant.HeatProduced.value[115] changed from ' - '11.705296891408345 to 15.275665943301208.\n' - 'Value of root.surfaceplant.HeatProduced.value[116] changed from ' - '11.698743299168983 to 15.269792809855685.\n' - 'Value of root.surfaceplant.HeatProduced.value[117] changed from ' - '11.692081832054013 to 15.26382363395433.\n' - 'Value of root.surfaceplant.HeatProduced.value[118] changed from ' - '11.68531323359135 to 15.257759024630419.\n' - 'Value of root.surfaceplant.HeatProduced.value[119] changed from ' - '11.67843826775753 to 15.251599607091897.\n' - 'Value of root.surfaceplant.HeatProduced.value[120] changed from ' - '11.671457717672324 to 15.245346021663504.\n' - 'Value of root.surfaceplant.HeatProduced.value[121] changed from ' - '11.664372384339305 to 15.2389989227685.\n' - 'Value of root.surfaceplant.HeatProduced.value[122] changed from ' - '11.657183085431267 to 15.232558977949923.\n' - 'Value of root.surfaceplant.HeatProduced.value[123] changed from ' - '11.649890654119984 to 15.226026866929919.\n' - 'Value of root.surfaceplant.HeatProduced.value[124] changed from ' - '11.642495937949459 to 15.21940328070662.\n' - 'Value of root.surfaceplant.HeatProduced.value[125] changed from ' - '11.634999797751513 to 15.21268892068727.\n' - 'Value of root.surfaceplant.HeatProduced.value[126] changed from ' - '11.627403106603076 to 15.205884497856808.\n' - 'Value of root.surfaceplant.HeatProduced.value[127] changed from ' - '11.619706748824123 to 15.198990731981228.\n' - 'Value of root.surfaceplant.HeatProduced.value[128] changed from ' - '11.61191161901515 to 15.19200835084392.\n' - 'Value of root.surfaceplant.HeatProduced.value[129] changed from ' - '11.604018621133413 to 15.184938089515146.\n' - 'Value of root.surfaceplant.HeatProduced.value[130] changed from ' - '11.596028667606731 to 15.177780689652478.\n' - 'Value of root.surfaceplant.HeatProduced.value[131] changed from ' - '11.587942678483916 to 15.170536898832104.\n' - 'Value of root.surfaceplant.HeatProduced.value[132] changed from ' - '11.579761580620785 to 15.163207469909747.\n' - 'Value of root.surfaceplant.HeatProduced.value[133] changed from ' - '11.571486306900757 to 15.155793160409958.\n' - 'Value of root.surfaceplant.HeatProduced.value[134] changed from ' - '11.563117795489015 to 15.148294731943338.\n' - 'Value of root.surfaceplant.HeatProduced.value[135] changed from ' - '11.554656989119028 to 15.140712949650215.\n' - 'Value of root.surfaceplant.HeatProduced.value[136] changed from ' - '11.546104834410826 to 15.133048581670366.\n' - 'Value of root.surfaceplant.HeatProduced.value[137] changed from ' - '11.537462281219563 to 15.125302398637452.\n' - 'Value of root.surfaceplant.HeatProduced.value[138] changed from ' - '11.528730282013788 to 15.11747517319751.\n' - 'Value of root.surfaceplant.HeatProduced.value[139] changed from ' - '11.519909791282046 to 15.10956767955066.\n' - 'Value of root.surfaceplant.HeatProduced.value[140] changed from ' - '11.511001764967343 to 15.101580693014894.\n' - 'Value of root.surfaceplant.HeatProduced.value[141] changed from ' - '11.502007159928025 to 15.093514989611483.\n' - 'Value of root.surfaceplant.HeatProduced.value[142] changed from ' - '11.492926933424496 to 15.08537134567094.\n' - 'Value of root.surfaceplant.HeatProduced.value[143] changed from ' - '11.483762042630769 to 15.077150537458824.\n' - 'Value of root.surfaceplant.HeatProduced.value[144] changed from ' - '11.474513444169903 to 15.068853340820597.\n' - 'Value of root.surfaceplant.HeatProduced.value[145] changed from ' - '11.465182093672585 to 15.060480530844972.\n' - 'Value of root.surfaceplant.HeatProduced.value[146] changed from ' - '11.455768945357859 to 15.052032881544601.\n' - 'Value of root.surfaceplant.HeatProduced.value[147] changed from ' - '11.446274951635289 to 15.043511165553836.\n' - 'Value of root.surfaceplant.HeatProduced.value[148] changed from ' - '11.436701062727874 to 15.034916153842726.\n' - 'Value of root.surfaceplant.HeatProduced.value[149] changed from ' - '11.427048226314549 to 15.026248615446452.\n' - 'Value of root.surfaceplant.HeatProduced.value[150] changed from ' - '11.417317387191945 to 15.017509317209814.\n' - 'Value of root.surfaceplant.HeatProduced.value[151] changed from ' - '11.407509486954382 to 15.008699023545843.\n' - 'Value of root.surfaceplant.HeatProduced.value[152] changed from ' - '11.397625463691591 to 14.999818496208343.\n' - 'Value of root.surfaceplant.HeatProduced.value[153] changed from ' - '11.387666251703207 to 14.99086849407742.\n' - 'Value of root.surfaceplant.HeatProduced.value[154] changed from ' - '11.377632781229673 to 14.981849772957549.\n' - 'Value of root.surfaceplant.HeatProduced.value[155] changed from ' - '11.367525978198646 to 14.972763085387708.\n' - 'Value of root.surfaceplant.HeatProduced.value[156] changed from ' - '11.357346763986394 to 14.963609180463198.\n' - 'Value of root.surfaceplant.HeatProduced.value[157] changed from ' - '11.347096055193596 to 14.954388803668117.\n' - 'Value of root.surfaceplant.HeatProduced.value[158] changed from ' - '11.336774763434876 to 14.945102696718704.\n' - 'Value of root.surfaceplant.HeatProduced.value[159] changed from ' - '11.326383795141485 to 14.935751597416639.\n' - 'Value of root.surfaceplant.HeatProduced.value[160] changed from ' - '11.315924051376811 to 14.926336239511748.\n' - 'Value of root.surfaceplant.HeatProduced.value[161] changed from ' - '11.305396427663695 to 14.916857352574363.\n' - 'Value of root.surfaceplant.HeatProduced.value[162] changed from ' - '11.29480181382374 to 14.907315661876023.\n' - 'Value of root.surfaceplant.HeatProduced.value[163] changed from ' - '11.28414109382732 to 14.897711888278701.\n' - 'Value of root.surfaceplant.HeatProduced.value[164] changed from ' - '11.27341514565454 to 14.888046748132194.\n' - 'Value of root.surfaceplant.HeatProduced.value[165] changed from ' - '11.262624841166161 to 14.878320953178866.\n' - 'Value of root.surfaceplant.HeatProduced.value[166] changed from ' - '11.25177104598433 to 14.868535210465925.\n' - 'Value of root.surfaceplant.HeatProduced.value[167] changed from ' - '11.24085461938254 to 14.858690222264471.\n' - 'Value of root.surfaceplant.HeatProduced.value[168] changed from ' - '11.229876414184531 to 14.848786685995167.\n' - 'Value of root.surfaceplant.HeatProduced.value[169] changed from ' - '11.218837276671637 to 14.8388252941604.\n' - 'Value of root.surfaceplant.HeatProduced.value[170] changed from ' - '11.207738046498186 to 14.828806734282189.\n' - 'Value of root.surfaceplant.HeatProduced.value[171] changed from ' - '11.196579556614719 to 14.818731688845993.\n' - 'Value of root.surfaceplant.HeatProduced.value[172] changed from ' - '11.185362633198464 to 14.808600835249974.\n' - 'Value of root.surfaceplant.HeatProduced.value[173] changed from ' - '11.174088095590994 to 14.798414845759183.\n' - 'Value of root.surfaceplant.HeatProduced.value[174] changed from ' - '11.1627567562424 to 14.78817438746507.\n' - 'Value of root.surfaceplant.HeatProduced.value[175] changed from ' - '11.15136942066205 to 14.777880122249396.\n' - 'Value of root.surfaceplant.HeatProduced.value[176] changed from ' - '11.139926887375188 to 14.767532706752656.\n' - 'Value of root.surfaceplant.HeatProduced.value[177] changed from ' - '11.12842994788569 to 14.757132792346807.\n' - 'Value of root.surfaceplant.HeatProduced.value[178] changed from ' - '11.116879386643872 to 14.746681025111876.\n' - 'Value of root.surfaceplant.HeatProduced.value[179] changed from ' - '11.105275981019977 to 14.736178045816617.\n' - 'Value of root.surfaceplant.HeatProduced.value[180] changed from ' - '11.093620501282466 to 14.725624489902508.\n' - 'Value of root.surfaceplant.HeatProduced.value[181] changed from ' - '11.081913710580832 to 14.715020987471444.\n' - 'Value of root.surfaceplant.HeatProduced.value[182] changed from ' - '11.070156364933469 to 14.704368163276413.\n' - 'Value of root.surfaceplant.HeatProduced.value[183] changed from ' - '11.058349213219248 to 14.693666636715573.\n' - 'Value of root.surfaceplant.HeatProduced.value[184] changed from ' - '11.046492997173488 to 14.682917021828924.\n' - 'Value of root.surfaceplant.HeatProduced.value[185] changed from ' - '11.034588451387712 to 14.672119927298079.\n' - 'Value of root.surfaceplant.HeatProduced.value[186] changed from ' - '11.022636303312915 to 14.661275956448334.\n' - 'Value of root.surfaceplant.HeatProduced.value[187] changed from ' - '11.01063727326663 to 14.650385707253406.\n' - 'Value of root.surfaceplant.HeatProduced.value[188] changed from ' - '10.998592074442763 to 14.639449772342559.\n' - 'Value of root.surfaceplant.HeatProduced.value[189] changed from ' - '10.986501412925078 to 14.628468739009646.\n' - 'Value of root.surfaceplant.HeatProduced.value[190] changed from ' - '10.974365987703145 to 14.617443189224678.\n' - 'Value of root.surfaceplant.HeatProduced.value[191] changed from ' - '10.962186490691371 to 14.606373699646882.\n' - 'Value of root.surfaceplant.HeatProduced.value[192] changed from ' - '10.949963606750487 to 14.595260841640009.\n' - 'Value of root.surfaceplant.HeatProduced.value[193] changed from ' - '10.937698013711524 to 14.584105181289157.\n' - 'Value of root.surfaceplant.HeatProduced.value[194] changed from ' - '10.925390382402199 to 14.572907279419288.\n' - 'Value of root.surfaceplant.HeatProduced.value[195] changed from ' - '10.913041376675343 to 14.561667691615327.\n' - 'Value of root.surfaceplant.HeatProduced.value[196] changed from ' - '10.900651653439478 to 14.550386968243672.\n' - 'Value of root.surfaceplant.HeatProduced.value[197] changed from ' - '10.888221862691399 to 14.539065654475086.\n' - 'Value of root.surfaceplant.HeatProduced.value[198] changed from ' - '10.875752647550337 to 14.527704290308803.\n' - 'Value of root.surfaceplant.HeatProduced.value[199] changed from ' - '10.86324464429408 to 14.516303410597935.\n' - 'Value of root.surfaceplant.HeatProduced.value[200] changed from ' - '10.850698482396565 to 14.504863545075919.\n' - 'Value of root.surfaceplant.HeatProduced.value[201] changed from ' - '10.838114784566935 to 14.493385218383912.\n' - 'Value of root.surfaceplant.HeatProduced.value[202] changed from ' - '10.825494166790035 to 14.481868950099447.\n' - 'Value of root.surfaceplant.HeatProduced.value[203] changed from ' - '10.812837238368212 to 14.470315254765602.\n' - 'Value of root.surfaceplant.HeatProduced.value[204] changed from ' - '10.800144601964272 to 14.458724641921368.\n' - 'Value of root.surfaceplant.HeatProduced.value[205] changed from ' - '10.787416853645606 to 14.447097616132536.\n' - 'Value of root.surfaceplant.HeatProduced.value[206] changed from ' - '10.774654582929315 to 14.435434677023443.\n' - 'Value of root.surfaceplant.HeatProduced.value[207] changed from ' - '10.761858372828312 to 14.423736319309304.\n' - 'Value of root.surfaceplant.HeatProduced.value[208] changed from ' - '10.749028799898324 to 14.412003032829245.\n' - 'Value of root.surfaceplant.HeatProduced.value[209] changed from ' - '10.73616643428561 to 14.400235302579746.\n' - 'Value of root.surfaceplant.HeatProduced.value[210] changed from ' - '10.72327183977561 to 14.38843360874883.\n' - 'Value of root.surfaceplant.HeatProduced.value[211] changed from ' - '10.710345573842094 to 14.376598426750435.\n' - 'Value of root.surfaceplant.HeatProduced.value[212] changed from ' - '10.697388187696953 to 14.36473022725944.\n' - 'Value of root.surfaceplant.HeatProduced.value[213] changed from ' - '10.684400226340719 to 14.352829476246995.\n' - 'Value of root.surfaceplant.HeatProduced.value[214] changed from ' - '10.671382228613316 to 14.340896635016158.\n' - 'Value of root.surfaceplant.HeatProduced.value[215] changed from ' - '10.658334727245476 to 14.328932160237894.\n' - 'Value of root.surfaceplant.HeatProduced.value[216] changed from ' - '10.645258248910501 to 14.316936503987284.\n' - 'Value of root.surfaceplant.HeatProduced.value[217] changed from ' - '10.632153314276255 to 14.304910113780121.\n' - 'Value of root.surfaceplant.HeatProduced.value[218] changed from ' - '10.619020438057653 to 14.292853432609492.\n' - 'Value of root.surfaceplant.HeatProduced.value[219] changed from ' - '10.605860129069283 to 14.28076689898271.\n' - 'Value of root.surfaceplant.HeatProduced.value[220] changed from ' - '10.592672890278248 to 14.268650946958333.\n' - 'Value of root.surfaceplant.HeatProduced.value[221] changed from ' - '10.579459218857215 to 14.256506006183349.\n' - 'Value of root.surfaceplant.HeatProduced.value[222] changed from ' - '10.566219606237699 to 14.24433250193035.\n' - 'Value of root.surfaceplant.HeatProduced.value[223] changed from ' - '10.55295453816319 to 14.232130855134903.\n' - 'Value of root.surfaceplant.HeatProduced.value[224] changed from ' - '10.539664494742665 to 14.219901482432922.\n' - 'Value of root.surfaceplant.HeatProduced.value[225] changed from ' - '10.526349950503972 to 14.207644796198004.\n' - 'Value of root.surfaceplant.HeatProduced.value[226] changed from ' - '10.513011374447155 to 14.195361204578928.\n' - 'Value of root.surfaceplant.HeatProduced.value[227] changed from ' - '10.499649230097932 to 14.183051111536994.\n' - 'Value of root.surfaceplant.HeatProduced.value[228] changed from ' - '10.486263975561117 to 14.170714916883357.\n' - 'Value of root.surfaceplant.HeatProduced.value[229] changed from ' - '10.47285606357375 to 14.158353016316399.\n' - 'Value of root.surfaceplant.HeatProduced.value[230] changed from ' - '10.459425941558335 to 14.145965801458981.\n' - 'Value of root.surfaceplant.HeatProduced.value[231] changed from ' - '10.445974051676009 to 14.133553659895577.\n' - 'Value of root.surfaceplant.HeatProduced.value[232] changed from ' - '10.432500830879306 to 14.121116975209395.\n' - 'Value of root.surfaceplant.HeatProduced.value[233] changed from ' - '10.419006710965066 to 14.108656127019335.\n' - 'Value of root.surfaceplant.HeatProduced.value[234] changed from ' - '10.405492118626952 to 14.096171491016827.\n' - 'Value of root.surfaceplant.HeatProduced.value[235] changed from ' - '10.39195747550784 to 14.08366343900261.\n' - 'Value of root.surfaceplant.HeatProduced.value[236] changed from ' - '10.37840319825199 to 14.071132338923242.\n' - 'Value of root.surfaceplant.HeatProduced.value[237] changed from ' - '10.36482969855703 to 14.058578554907575.\n' - 'Value of root.surfaceplant.HeatProduced.value[238] changed from ' - '10.351237383225637 to 14.046002447303028.\n' - 'Value of root.surfaceplant.HeatProduced.value[239] changed from ' - '10.337626654216928 to 14.033404372711638.\n' - 'Value of root.surfaceplant.HeatProduced.value[240] changed from ' - '10.323997908697663 to 14.02078468402599.\n' - 'Value of root.surfaceplant.HeatProduced.value[241] changed from ' - '10.310351539093157 to 14.008143730464951.\n' - 'Value of root.surfaceplant.HeatProduced.value[242] changed from ' - '10.296687933137788 to 13.995481857609164.\n' - 'Value of root.surfaceplant.HeatProduced.value[243] changed from ' - '10.28300747392535 to 13.982799407436424.\n' - 'Value of root.surfaceplant.HeatProduced.value[244] changed from ' - '10.269310539958871 to 13.97009671835668.\n' - 'Value of root.surfaceplant.HeatProduced.value[245] changed from ' - '10.25559750520044 to 13.957374125247071.\n' - 'Value of root.surfaceplant.HeatProduced.value[246] changed from ' - '10.241868739120347 to 13.944631959486449.\n' - 'Value of root.surfaceplant.HeatProduced.value[247] changed from ' - '10.228124606746023 to 13.931870548989938.\n' - 'Value of root.surfaceplant.HeatProduced.value[248] changed from ' - '10.21436546871079 to 13.91909021824308.\n' - 'Value of root.surfaceplant.HeatProduced.value[249] changed from ' - '10.20059168130194 to 13.906291288335787.\n' - 'Value of root.surfaceplant.HeatProduced.value[250] changed from ' - '10.18680359650866 to 13.893474076996164.\n' - 'Value of root.surfaceplant.HeatProduced.value[251] changed from ' - '10.17300156206957 to 13.880638898623934.\n' - 'Value of root.surfaceplant.HeatProduced.value[252] changed from ' - '10.159185921519827 to 13.867786064323624.\n' - 'Value of root.surfaceplant.HeatProduced.value[253] changed from ' - '10.14535701423784 to 13.854915881937673.\n' - 'Value of root.surfaceplant.HeatProduced.value[254] changed from ' - '10.131515175491689 to 13.842028656079057.\n' - 'Value of root.surfaceplant.HeatProduced.value[255] changed from ' - '10.117660736485126 to 13.829124688163834.\n' - 'Value of root.surfaceplant.HeatProduced.value[256] changed from ' - '10.103794024402976 to 13.816204276443335.\n' - 'Value of root.surfaceplant.HeatProduced.value[257] changed from ' - '10.089915362456649 to 13.803267716036132.\n' - 'Value of root.surfaceplant.HeatProduced.value[258] changed from ' - '10.076025069928605 to 13.790315298959719.\n' - 'Value of root.surfaceplant.HeatProduced.value[259] changed from ' - '10.062123462216945 to 13.777347314161997.\n' - 'Value of root.surfaceplant.HeatProduced.value[260] changed from ' - '10.048210850879382 to 13.764364047552297.\n' - 'Value of root.surfaceplant.HeatProduced.value[261] changed from ' - '10.034287543676722 to 13.75136578203252.\n' - 'Value of root.surfaceplant.HeatProduced.value[262] changed from ' - '10.020353844616194 to 13.738352797527552.\n' - 'Value of root.surfaceplant.HeatProduced.value[263] changed from ' - '10.00641005399416 to 13.72532537101573.\n' - 'Value of root.surfaceplant.HeatProduced.value[264] changed from ' - '9.992456468438442 to 13.712283776558968.\n' - 'Value of root.surfaceplant.HeatProduced.value[265] changed from ' - '9.978493380950413 to 13.6992282853325.\n' - 'Value of root.surfaceplant.HeatProduced.value[266] changed from ' - '9.964521080946406 to 13.686159165654544.\n' - 'Value of root.surfaceplant.HeatProduced.value[267] changed from ' - '9.950539854298976 to 13.673076683015513.\n' - 'Value of root.surfaceplant.HeatProduced.value[268] changed from ' - '9.936549983377654 to 13.659981100107123.\n' - 'Value of root.surfaceplant.HeatProduced.value[269] changed from ' - '9.92255174708917 to 13.646872676851025.\n' - 'Value of root.surfaceplant.HeatProduced.value[270] changed from ' - '9.908545420917559 to 13.633751670427493.\n' - 'Value of root.surfaceplant.HeatProduced.value[271] changed from ' - '9.894531276963535 to 13.620618335303456.\n' - 'Value of root.surfaceplant.HeatProduced.value[272] changed from ' - '9.88050958398368 to 13.60747292326057.\n' - 'Value of root.surfaceplant.HeatProduced.value[273] changed from ' - '9.866480607429207 to 13.594315683422888.\n' - 'Value of root.surfaceplant.HeatProduced.value[274] changed from ' - '9.852444609484206 to 13.58114686228424.\n' - 'Value of root.surfaceplant.HeatProduced.value[275] changed from ' - '9.838401849103649 to 13.5679667037355.\n' - 'Value of root.surfaceplant.HeatProduced.value[276] changed from ' - '9.824352582050796 to 13.554775449091384.\n' - 'Value of root.surfaceplant.HeatProduced.value[277] changed from ' - '9.810297060934493 to 13.541573337117129.\n' - 'Value of root.surfaceplant.HeatProduced.value[278] changed from ' - '9.796235535245673 to 13.528360604054903.\n' - 'Value of root.surfaceplant.HeatProduced.value[279] changed from ' - '9.782168251393955 to 13.515137483649916.\n' - 'Value of root.surfaceplant.HeatProduced.value[280] changed from ' - '9.768095452743411 to 13.501904207176214.\n' - 'Value of root.surfaceplant.HeatProduced.value[281] changed from ' - '9.754017379648142 to 13.48866100346235.\n' - 'Value of root.surfaceplant.HeatProduced.value[282] changed from ' - '9.73993426948754 to 13.475408098916773.\n' - 'Value of root.surfaceplant.HeatProduced.value[283] changed from ' - '9.72584635670098 to 13.46214571755281.\n' - 'Value of root.surfaceplant.HeatProduced.value[284] changed from ' - '9.711753872822326 to 13.448874081013594.\n' - 'Value of root.surfaceplant.HeatProduced.value[285] changed from ' - '9.697657046513838 to 13.435593408596642.\n' - 'Value of root.surfaceplant.HeatProduced.value[286] changed from ' - '9.683556103599958 to 13.422303917278231.\n' - 'Value of root.surfaceplant.HeatProduced.value[287] changed from ' - '9.66945126710043 to 13.40900582173742.\n' - 'Value of root.surfaceplant.HeatProduced.value[288] changed from ' - '9.655342757263377 to 13.39569933437994.\n' - 'Value of root.surfaceplant.HeatProduced.value[289] changed from ' - '9.64123079159772 to 13.382384665361819.\n' - 'Value of root.surfaceplant.HeatProduced.value[290] changed from ' - '9.627115584905358 to 13.36906202261274.\n' - 'Value of root.surfaceplant.HeatProduced.value[291] changed from ' - '9.612997349313073 to 13.355731611859131.\n' - 'Value of root.surfaceplant.HeatProduced.value[292] changed from ' - '9.598876294303832 to 13.342393636647145.\n' - 'Value of root.surfaceplant.HeatProduced.value[293] changed from ' - '9.58475262674803 to 13.329048298365196.\n' - 'Value of root.surfaceplant.HeatProduced.value[294] changed from ' - '9.570626550934087 to 13.31569579626643.\n' - 'Value of root.surfaceplant.HeatProduced.value[295] changed from ' - '9.556498268598968 to 13.302336327490943.\n' - 'Value of root.surfaceplant.HeatProduced.value[296] changed from ' - '9.54236797895809 to 13.288970087087636.\n' - 'Value of root.surfaceplant.HeatProduced.value[297] changed from ' - '9.528235878735124 to 13.275597268036075.\n' - 'Value of root.surfaceplant.HeatProduced.value[298] changed from ' - '9.5141021621913 to 13.26221806126782.\n' - 'Value of root.surfaceplant.HeatProduced.value[299] changed from ' - '9.499967021154422 to 13.248832655687856.\n' - 'Value of root.surfaceplant.HeatProduced.value[300] changed from ' - '9.485830645047551 to 13.235441238195529.\n' - 'Value of root.surfaceplant.HeatProduced.value[301] changed from ' - '9.471693220917324 to 13.222043993705423.\n' - 'Value of root.surfaceplant.HeatProduced.value[302] changed from ' - '9.457554933462042 to 13.208641105167956.\n' - 'Value of root.surfaceplant.HeatProduced.value[303] changed from ' - '9.443415965059224 to 13.19523275358977.\n' - 'Value of root.surfaceplant.HeatProduced.value[304] changed from ' - '9.429276495793152 to 13.181819118053884.\n' - 'Value of root.surfaceplant.HeatProduced.value[305] changed from ' - '9.415136703481785 to 13.168400375739711.\n' - 'Value of root.surfaceplant.HeatProduced.value[306] changed from ' - '9.4009967637035 to 13.154976701942696.\n' - 'Value of root.surfaceplant.HeatProduced.value[307] changed from ' - '9.386856849823575 to 13.141548270094015.\n' - 'Value of root.surfaceplant.HeatProduced.value[308] changed from ' - '9.372717133020227 to 13.128115251779754.\n' - 'Value of root.surfaceplant.HeatProduced.value[309] changed from ' - '9.358577782310437 to 13.11467781676016.\n' - 'Value of root.surfaceplant.HeatProduced.value[310] changed from ' - '9.344438964575456 to 13.101236132988438.\n' - 'Value of root.surfaceplant.HeatProduced.value[311] changed from ' - '9.330300844585985 to 13.087790366629587.\n' - 'Value of root.surfaceplant.HeatProduced.value[312] changed from ' - '9.316163585027038 to 13.074340682078828.\n' - 'Value of root.surfaceplant.HeatProduced.value[313] changed from ' - '9.302027346522598 to 13.06088724198005.\n' - 'Value of root.surfaceplant.HeatProduced.value[314] changed from ' - '9.287892287659913 to 13.047430207243787.\n' - 'Value of root.surfaceplant.HeatProduced.value[315] changed from ' - '9.273758565013457 to 13.03396973706526.\n' - 'Value of root.surfaceplant.HeatProduced.value[316] changed from ' - '9.259626333168738 to 13.020505988942057.\n' - 'Value of root.surfaceplant.HeatProduced.value[317] changed from ' - '9.245495744745728 to 13.007039118691788.\n' - 'Value of root.surfaceplant.HeatProduced.value[318] changed from ' - '9.231366950422007 to 12.99356928046929.\n' - 'Value of root.surfaceplant.HeatProduced.value[319] changed from ' - '9.217240098955694 to 12.980096626783965.\n' - 'Value of root.surfaceplant.HeatProduced.value[320] changed from ' - '9.203115337208075 to 12.96662130851664.\n' - 'Value of root.surfaceplant.HeatProduced.value[321] changed from ' - '9.18899281016589 to 12.953143474936509.\n' - 'Value of root.surfaceplant.HeatProduced.value[322] changed from ' - '9.174872660963503 to 12.939663273717649.\n' - 'Value of root.surfaceplant.HeatProduced.value[323] changed from ' - '9.160755030904692 to 12.926180850955541.\n' - 'Value of root.surfaceplant.HeatProduced.value[324] changed from ' - '9.146640059484218 to 12.912696351183332.\n' - 'Value of root.surfaceplant.HeatProduced.value[325] changed from ' - '9.13252788440907 to 12.899209917387918.\n' - 'Value of root.surfaceplant.HeatProduced.value[326] changed from ' - '9.118418641619577 to 12.885721691025928.\n' - 'Value of root.surfaceplant.HeatProduced.value[327] changed from ' - '9.104312465310237 to 12.872231812039402.\n' - 'Value of root.surfaceplant.HeatProduced.value[328] changed from ' - '9.09020948795015 to 12.858740418871458.\n' - 'Value of root.surfaceplant.HeatProduced.value[329] changed from ' - '9.076109840303394 to 12.845247648481664.\n' - 'Value of root.surfaceplant.HeatProduced.value[330] changed from ' - '9.06201365144907 to 12.83175363636127.\n' - 'Value of root.surfaceplant.HeatProduced.value[331] changed from ' - '9.04792104880112 to 12.818258516548404.\n' - 'Value of root.surfaceplant.HeatProduced.value[332] changed from ' - '9.033832158127904 to 12.80476242164289.\n' - 'Value of root.surfaceplant.HeatProduced.value[333] changed from ' - '9.01974710357144 to 12.79126548282107.\n' - 'Value of root.surfaceplant.HeatProduced.value[334] changed from ' - '9.005666007666738 to 12.77776782985039.\n' - 'Value of root.surfaceplant.HeatProduced.value[335] changed from ' - '8.991588991360448 to 12.764269591103895.\n' - 'Value of root.surfaceplant.HeatProduced.value[336] changed from ' - '8.977516174029658 to 12.750770893574504.\n' - 'Value of root.surfaceplant.HeatProduced.value[337] changed from ' - '8.963447673500212 to 12.737271862889106.\n' - 'Value of root.surfaceplant.HeatProduced.value[338] changed from ' - '8.94938360606505 to 12.723772623322644.\n' - 'Value of root.surfaceplant.HeatProduced.value[339] changed from ' - '8.935324086502016 to 12.71027329781188.\n' - 'Value of root.surfaceplant.HeatProduced.value[340] changed from ' - '8.921269228091838 to 12.696774007969124.\n' - 'Value of root.surfaceplant.HeatProduced.value[341] changed from ' - '8.907219142635489 to 12.683274874095778.\n' - 'Value of root.surfaceplant.HeatProduced.value[342] changed from ' - '8.893173940471623 to 12.669776015195742.\n' - 'Value of root.surfaceplant.HeatProduced.value[343] changed from ' - '8.879133730493749 to 12.656277548988607.\n' - 'Value of root.surfaceplant.HeatProduced.value[344] changed from ' - '8.865098620167043 to 12.642779591922888.\n' - 'Value of root.surfaceplant.HeatProduced.value[345] changed from ' - '8.85106871554519 to 12.629282259188892.\n' - 'Value of root.surfaceplant.HeatProduced.value[346] changed from ' - '8.837044121286853 to 12.615785664731629.\n' - 'Value of root.surfaceplant.HeatProduced.value[347] changed from ' - '8.823024940671965 to 12.602289921263413.\n' - 'Value of root.surfaceplant.HeatProduced.value[348] changed from ' - '8.809011275617888 to 12.588795140276545.\n' - 'Value of root.surfaceplant.HeatProduced.value[349] changed from ' - '8.795003226695416 to 12.57530143205565.\n' - 'Value of root.surfaceplant.HeatProduced.value[350] changed from ' - '8.781000893144368 to 12.561808905689967.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[0] changed ' - 'from 80.01235051248356 to 95.54839275603244.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[1] changed ' - 'from 76.07270102516549 to 90.77678551239887.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[2] changed ' - 'from 72.13305184340518 to 86.00517873240813.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[3] changed ' - 'from 68.19341682943417 to 81.23359230045469.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[4] changed ' - 'from 64.25392174380244 to 76.46219966756551.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[5] changed ' - 'from 60.31502507912598 to 71.69161474887207.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[6] changed ' - 'from 56.377703347094425 to 66.92311603262297.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[7] changed ' - 'from 52.44346651215187 to 62.158646660314055.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[8] changed ' - 'from 48.51423418186046 to 57.40064370426407.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[9] changed ' - 'from 44.59216137189256 to 52.65181320220638.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[10] changed ' - 'from 40.67947648831418 to 47.91492767149599.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[11] changed ' - 'from 36.77835728314345 to 43.19267503311562.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[12] changed ' - 'from 32.89084783519718 to 38.487560204599546.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[13] changed ' - 'from 29.018809991858355 to 33.80184968299096.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[14] changed ' - 'from 25.16390039327561 to 29.13754735177629.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[15] changed ' - 'from 21.327565007160395 to 24.49639122562924.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[16] changed ' - 'from 17.51104484764147 to 19.879863262791545.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[17] changed ' - 'from 13.71538829924664 to 15.289206654650869.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[18] changed ' - 'from 9.941466902097005 to 10.725446818822022.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[21] changed ' - 'from -1.2434630920525507 to -2.7969996896536173.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[22] changed ' - 'from -4.924667453335715 to -7.246505628311269.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[23] changed ' - 'from -8.581841462101778 to -11.666499589757166.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[24] changed ' - 'from -12.214831712790158 to -16.056827012998824.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[25] changed ' - 'from -15.823557020524461 to -20.41741951066834.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[26] changed ' - 'from -19.407998374429525 to -24.74828258386863.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[27] changed ' - 'from -22.96819008777328 to -29.049484842942718.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[28] changed ' - 'from -26.504212034072822 to -33.32114858497624.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[29] changed ' - 'from -30.016182856952696 to -37.5634415806953.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[30] changed ' - 'from -33.5042540457283 to -41.776569931207234.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[31] changed ' - 'from -36.968604775911416 to -45.96077186589184.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[32] changed ' - 'from -40.40943742251011 to -50.11631236488421.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[33] changed ' - 'from -43.826973663125656 to -54.24347850189878.\n' - 'Value of root.surfaceplant.RemainingReservoirHeatContent.value[34] changed ' - 'from -47.22145109683568 to -58.34257541499082.\n' - "Value of root.economics.OutputParameterDict['Total O & M Cost'].value " - 'changed from 1.474505336862446 to 1.567604407234426.\n' - 'Value of root.economics.Cpumps changed from 199882.28793858213 to ' - '102604.70571172354.\n' - 'Value of root.economics.Cplantcorrelation changed from 41.429541732855604 to ' - '44.974071073299584.\n' - 'Value of root.economics.Coam.value changed from 1.474505336862446 to ' - '1.567604407234426.\n' - "Value of root.addeconomics.OutputParameterDict['Project Net Present " - "Value'].value changed from 126.30383632361853 to 179.07744281692445.\n" - "Value of root.addeconomics.OutputParameterDict['Project Internal Rate of " - "Return'].value changed from 1.2974636576825285 to 1.8344561722324548.\n" - "Value of root.addeconomics.OutputParameterDict['Project Value Investment " - "Ratio'].value changed from 17.438163594498302 to 24.692883316212303.\n" - "Value of root.addeconomics.OutputParameterDict['Project Multiple of Invested " - "Capital'].value changed from 5.231151679186104 to 6.9855425513269385.\n" - "Value of root.addeconomics.OutputParameterDict['Adjusted OPEX'].value " - 'changed from 1.474505336862446 to 1.567604407234426.\n' - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[1] changed from 9.969396091071046 to 13.8654256294422.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[2] changed from 9.969396090134628 to 13.865425627732584.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[3] changed from 9.969394647884899 to 13.86542325448383.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[4] changed from 9.969327775215806 to 13.865319099179132.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[5] changed from 9.968667313454155 to 13.864327116681626.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[6] changed from 9.965842891155592 to 13.860192995361004.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[7] changed from 9.958410448095579 to 13.849516993697346.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[8] changed from 9.943855893164939 to 13.828904278586265.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[9] changed from 9.920255018487982 to 13.795843928049308.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[10] changed from 9.886513488729976 to 13.748989775619847.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[11] changed from 9.84230942302934 to 13.688045341846141.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[12] changed from 9.787912704792069 to 13.613497754393965.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[13] changed from 9.72398887773225 to 13.526343638443308.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[14] changed from 9.651433792655947 to 13.427864333938903.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[15] changed from 9.571250471816796 to 13.319462023859046.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[16] changed from 9.484464647151459 to 13.20254959368906.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[17] changed from 9.392070787857598 to 13.078481893962088.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[18] changed from 9.295000301605826 to 12.948516583914195.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[19] changed from 9.194105018887809 to 12.813795033479256.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[20] changed from 9.090150762086846 to 12.675336233535766.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[21] changed from 8.983817284144322 to 12.534038751228504.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[22] changed from 8.875702017227395 to 12.390687357437848.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[23] changed from 8.766325918251319 to 12.245962100068102.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[24] changed from 8.656140295351928 to 12.100448395425754.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[25] changed from 8.545533910114205 to 11.954647252699026.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[26] changed from 8.434839927197606 to 11.808985108123064.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[27] changed from 8.324342466266446 to 11.663822981797196.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[28] changed from 8.214282630198657 to 11.519464821483538.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[29] changed from 8.104863959176033 to 11.376164992139376.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[30] changed from 7.9962573068650595 to 11.23413492671368.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[31] changed from 7.888605162346563 to 11.093548985953543.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[32] changed from 7.7820254564324465 to 10.954549591415876.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[33] changed from 7.676614898015071 to 10.817251702415323.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[34] changed from 7.5724518881225915 to 10.68174670812591.\n" - "Value of root.addeconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[35] changed from 7.46959905838272 to 10.548105803016053.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[1] changed from 2.2858227042061507 to 6.3071457684854995.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[2] changed from 12.255218794340779 to 20.172571396218082.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[3] changed from 22.224613442225678 to 34.03799465070191.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[4] changed from 32.193941217441484 to 47.90331374988104.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[5] changed from 42.16260853089564 to 61.76764086656267.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[6] changed from 52.12845142205123 to 75.62783386192368.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[7] changed from 62.086861870146805 to 89.47735085562103.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[8] changed from 72.03071776331174 to 103.30625513420729.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[9] changed from 81.95097278179972 to 117.1020990622566.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[10] changed from 91.8374862705297 to 130.85108883787643.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[11] changed from 101.67979569355903 to 144.53913417972257.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[12] changed from 111.46770839835109 to 158.15263193411653.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[13] changed from 121.19169727608335 to 171.67897557255984.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[14] changed from 130.8431310687393 to 185.10683990649875.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[15] changed from 140.4143815405561 to 198.4263019303578.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[16] changed from 149.89884618770756 to 211.62885152404687.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[17] changed from 159.29091697556515 to 224.70733341800894.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[18] changed from 168.58591727717098 to 237.65585000192314.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[19] changed from 177.78002229605877 to 250.4696450354024.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[20] changed from 186.8701730581456 to 263.1449812689382.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[21] changed from 195.85399034228993 to 275.67902002016666.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[22] changed from 204.72969235951732 to 288.0697073776045.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[23] changed from 213.49601827776863 to 300.3156694776726.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[24] changed from 222.15215857312054 to 312.41611787309836.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[25] changed from 230.69769248323476 to 324.3707651257974.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[26] changed from 239.13253241043236 to 336.17975023392046.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[27] changed from 247.4568748766988 to 347.84357321571764.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[28] changed from 255.67115750689746 to 359.3630380372012.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[29] changed from 263.7760214660735 to 370.73920302934056.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[30] changed from 271.77227877293853 to 381.97333795605425.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[31] changed from 279.6608839352851 to 393.0668869420078.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[32] changed from 287.44290939171754 to 404.02143653342364.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[33] changed from 295.1195242897326 to 414.83868823583896.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[34] changed from 302.6919761778552 to 425.52043494396486.\n" - "Value of root.addeconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[35] changed from 310.1615752362379 to 436.0685407469809.\n" - 'Value of root.addeconomics.ProjectNPV.value changed from 126.30383632361853 ' - 'to 179.07744281692445.\n' - 'Value of root.addeconomics.ProjectIRR.value changed from 1.2974636576825285 ' - 'to 1.8344561722324548.\n' - 'Value of root.addeconomics.ProjectVIR.value changed from 17.438163594498302 ' - 'to 24.692883316212303.\n' - 'Value of root.addeconomics.ProjectMOIC.value changed from 5.231151679186104 ' - 'to 6.9855425513269385.\n' - 'Value of root.addeconomics.AdjustedProjectOPEX.value changed from ' - '1.474505336862446 to 1.567604407234426.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[1] changed from ' - '9.969396091071046 to 13.8654256294422.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[2] changed from ' - '9.969396090134628 to 13.865425627732584.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[3] changed from ' - '9.969394647884899 to 13.86542325448383.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[4] changed from ' - '9.969327775215806 to 13.865319099179132.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[5] changed from ' - '9.968667313454155 to 13.864327116681626.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[6] changed from ' - '9.965842891155592 to 13.860192995361004.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[7] changed from ' - '9.958410448095579 to 13.849516993697346.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[8] changed from ' - '9.943855893164939 to 13.828904278586265.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[9] changed from ' - '9.920255018487982 to 13.795843928049308.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[10] changed from ' - '9.886513488729976 to 13.748989775619847.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[11] changed from ' - '9.84230942302934 to 13.688045341846141.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[12] changed from ' - '9.787912704792069 to 13.613497754393965.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[13] changed from ' - '9.72398887773225 to 13.526343638443308.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[14] changed from ' - '9.651433792655947 to 13.427864333938903.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[15] changed from ' - '9.571250471816796 to 13.319462023859046.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[16] changed from ' - '9.484464647151459 to 13.20254959368906.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[17] changed from ' - '9.392070787857598 to 13.078481893962088.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[18] changed from ' - '9.295000301605826 to 12.948516583914195.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[19] changed from ' - '9.194105018887809 to 12.813795033479256.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[20] changed from ' - '9.090150762086846 to 12.675336233535766.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[21] changed from ' - '8.983817284144322 to 12.534038751228504.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[22] changed from ' - '8.875702017227395 to 12.390687357437848.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[23] changed from ' - '8.766325918251319 to 12.245962100068102.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[24] changed from ' - '8.656140295351928 to 12.100448395425754.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[25] changed from ' - '8.545533910114205 to 11.954647252699026.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[26] changed from ' - '8.434839927197606 to 11.808985108123064.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[27] changed from ' - '8.324342466266446 to 11.663822981797196.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[28] changed from ' - '8.214282630198657 to 11.519464821483538.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[29] changed from ' - '8.104863959176033 to 11.376164992139376.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[30] changed from ' - '7.9962573068650595 to 11.23413492671368.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[31] changed from ' - '7.888605162346563 to 11.093548985953543.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[32] changed from ' - '7.7820254564324465 to 10.954549591415876.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[33] changed from ' - '7.676614898015071 to 10.817251702415323.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[34] changed from ' - '7.5724518881225915 to 10.68174670812591.\n' - 'Value of root.addeconomics.ProjectCashFlow.value[35] changed from ' - '7.46959905838272 to 10.548105803016053.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[1] changed from ' - '2.2858227042061507 to 6.3071457684854995.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[2] changed from ' - '12.255218794340779 to 20.172571396218082.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[3] changed from ' - '22.224613442225678 to 34.03799465070191.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[4] changed from ' - '32.193941217441484 to 47.90331374988104.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[5] changed from ' - '42.16260853089564 to 61.76764086656267.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[6] changed from ' - '52.12845142205123 to 75.62783386192368.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[7] changed from ' - '62.086861870146805 to 89.47735085562103.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[8] changed from ' - '72.03071776331174 to 103.30625513420729.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[9] changed from ' - '81.95097278179972 to 117.1020990622566.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[10] changed from ' - '91.8374862705297 to 130.85108883787643.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[11] changed from ' - '101.67979569355903 to 144.53913417972257.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[12] changed from ' - '111.46770839835109 to 158.15263193411653.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[13] changed from ' - '121.19169727608335 to 171.67897557255984.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[14] changed from ' - '130.8431310687393 to 185.10683990649875.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[15] changed from ' - '140.4143815405561 to 198.4263019303578.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[16] changed from ' - '149.89884618770756 to 211.62885152404687.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[17] changed from ' - '159.29091697556515 to 224.70733341800894.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[18] changed from ' - '168.58591727717098 to 237.65585000192314.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[19] changed from ' - '177.78002229605877 to 250.4696450354024.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[20] changed from ' - '186.8701730581456 to 263.1449812689382.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[21] changed from ' - '195.85399034228993 to 275.67902002016666.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[22] changed from ' - '204.72969235951732 to 288.0697073776045.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[23] changed from ' - '213.49601827776863 to 300.3156694776726.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[24] changed from ' - '222.15215857312054 to 312.41611787309836.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[25] changed from ' - '230.69769248323476 to 324.3707651257974.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[26] changed from ' - '239.13253241043236 to 336.17975023392046.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[27] changed from ' - '247.4568748766988 to 347.84357321571764.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[28] changed from ' - '255.67115750689746 to 359.3630380372012.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[29] changed from ' - '263.7760214660735 to 370.73920302934056.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[30] changed from ' - '271.77227877293853 to 381.97333795605425.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[31] changed from ' - '279.6608839352851 to 393.0668869420078.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[32] changed from ' - '287.44290939171754 to 404.02143653342364.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[33] changed from ' - '295.1195242897326 to 414.83868823583896.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[34] changed from ' - '302.6919761778552 to 425.52043494396486.\n' - 'Value of root.addeconomics.ProjectCummCashFlow.value[35] changed from ' - '310.1615752362379 to 436.0685407469809.\n' - "Value of root.ccuseconomics.OutputParameterDict['Project Net Present " - "Value'].value changed from 126.30383632361853 to 179.07744281692445.\n" - "Value of root.ccuseconomics.OutputParameterDict['Project Internal Rate of " - "Return'].value changed from 1.2974636576825285 to 1.8344561722324548.\n" - "Value of root.ccuseconomics.OutputParameterDict['Project Value Investment " - "Ratio'].value changed from 17.438163594498302 to 24.692883316212303.\n" - "Value of root.ccuseconomics.OutputParameterDict['Project Multiple of " - "Invested Capital'].value changed from 5.231151679186104 to " - '6.9855425513269385.\n' - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[1] changed from 9.969396091071046 to 13.8654256294422.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[2] changed from 9.969396090134628 to 13.865425627732584.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[3] changed from 9.969394647884899 to 13.86542325448383.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[4] changed from 9.969327775215806 to 13.865319099179132.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[5] changed from 9.968667313454155 to 13.864327116681626.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[6] changed from 9.965842891155592 to 13.860192995361004.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[7] changed from 9.958410448095579 to 13.849516993697346.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[8] changed from 9.943855893164939 to 13.828904278586265.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[9] changed from 9.920255018487982 to 13.795843928049308.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[10] changed from 9.886513488729976 to 13.748989775619847.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[11] changed from 9.84230942302934 to 13.688045341846141.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[12] changed from 9.787912704792069 to 13.613497754393965.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[13] changed from 9.72398887773225 to 13.526343638443308.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[14] changed from 9.651433792655947 to 13.427864333938903.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[15] changed from 9.571250471816796 to 13.319462023859046.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[16] changed from 9.484464647151459 to 13.20254959368906.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[17] changed from 9.392070787857598 to 13.078481893962088.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[18] changed from 9.295000301605826 to 12.948516583914195.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[19] changed from 9.194105018887809 to 12.813795033479256.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[20] changed from 9.090150762086846 to 12.675336233535766.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[21] changed from 8.983817284144322 to 12.534038751228504.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[22] changed from 8.875702017227395 to 12.390687357437848.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[23] changed from 8.766325918251319 to 12.245962100068102.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[24] changed from 8.656140295351928 to 12.100448395425754.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[25] changed from 8.545533910114205 to 11.954647252699026.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[26] changed from 8.434839927197606 to 11.808985108123064.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[27] changed from 8.324342466266446 to 11.663822981797196.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[28] changed from 8.214282630198657 to 11.519464821483538.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[29] changed from 8.104863959176033 to 11.376164992139376.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[30] changed from 7.9962573068650595 to 11.23413492671368.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[31] changed from 7.888605162346563 to 11.093548985953543.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[32] changed from 7.7820254564324465 to 10.954549591415876.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[33] changed from 7.676614898015071 to 10.817251702415323.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[34] changed from 7.5724518881225915 to 10.68174670812591.\n" - "Value of root.ccuseconomics.OutputParameterDict['Annual Project Cash " - "Flow'].value[35] changed from 7.46959905838272 to 10.548105803016053.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[1] changed from 2.2858227042061507 to 6.3071457684854995.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[2] changed from 12.255218794340779 to 20.172571396218082.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[3] changed from 22.224613442225678 to 34.03799465070191.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[4] changed from 32.193941217441484 to 47.90331374988104.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[5] changed from 42.16260853089564 to 61.76764086656267.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[6] changed from 52.12845142205123 to 75.62783386192368.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[7] changed from 62.086861870146805 to 89.47735085562103.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[8] changed from 72.03071776331174 to 103.30625513420729.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[9] changed from 81.95097278179972 to 117.1020990622566.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[10] changed from 91.8374862705297 to 130.85108883787643.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[11] changed from 101.67979569355903 to 144.53913417972257.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[12] changed from 111.46770839835109 to 158.15263193411653.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[13] changed from 121.19169727608335 to 171.67897557255984.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[14] changed from 130.8431310687393 to 185.10683990649875.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[15] changed from 140.4143815405561 to 198.4263019303578.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[16] changed from 149.89884618770756 to 211.62885152404687.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[17] changed from 159.29091697556515 to 224.70733341800894.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[18] changed from 168.58591727717098 to 237.65585000192314.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[19] changed from 177.78002229605877 to 250.4696450354024.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[20] changed from 186.8701730581456 to 263.1449812689382.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[21] changed from 195.85399034228993 to 275.67902002016666.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[22] changed from 204.72969235951732 to 288.0697073776045.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[23] changed from 213.49601827776863 to 300.3156694776726.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[24] changed from 222.15215857312054 to 312.41611787309836.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[25] changed from 230.69769248323476 to 324.3707651257974.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[26] changed from 239.13253241043236 to 336.17975023392046.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[27] changed from 247.4568748766988 to 347.84357321571764.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[28] changed from 255.67115750689746 to 359.3630380372012.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[29] changed from 263.7760214660735 to 370.73920302934056.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[30] changed from 271.77227877293853 to 381.97333795605425.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[31] changed from 279.6608839352851 to 393.0668869420078.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[32] changed from 287.44290939171754 to 404.02143653342364.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[33] changed from 295.1195242897326 to 414.83868823583896.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[34] changed from 302.6919761778552 to 425.52043494396486.\n" - "Value of root.ccuseconomics.OutputParameterDict['Cummulative Project Cash " - "Flow'].value[35] changed from 310.1615752362379 to 436.0685407469809.\n" - 'Value of root.ccuseconomics.ProjectNPV.value changed from 126.30383632361853 ' - 'to 179.07744281692445.\n' - 'Value of root.ccuseconomics.ProjectIRR.value changed from 1.2974636576825285 ' - 'to 1.8344561722324548.\n' - 'Value of root.ccuseconomics.ProjectVIR.value changed from 17.438163594498302 ' - 'to 24.692883316212303.\n' - 'Value of root.ccuseconomics.ProjectMOIC.value changed from 5.231151679186104 ' - 'to 6.9855425513269385.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[1] changed from ' - '9.969396091071046 to 13.8654256294422.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[2] changed from ' - '9.969396090134628 to 13.865425627732584.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[3] changed from ' - '9.969394647884899 to 13.86542325448383.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[4] changed from ' - '9.969327775215806 to 13.865319099179132.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[5] changed from ' - '9.968667313454155 to 13.864327116681626.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[6] changed from ' - '9.965842891155592 to 13.860192995361004.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[7] changed from ' - '9.958410448095579 to 13.849516993697346.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[8] changed from ' - '9.943855893164939 to 13.828904278586265.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[9] changed from ' - '9.920255018487982 to 13.795843928049308.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[10] changed from ' - '9.886513488729976 to 13.748989775619847.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[11] changed from ' - '9.84230942302934 to 13.688045341846141.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[12] changed from ' - '9.787912704792069 to 13.613497754393965.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[13] changed from ' - '9.72398887773225 to 13.526343638443308.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[14] changed from ' - '9.651433792655947 to 13.427864333938903.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[15] changed from ' - '9.571250471816796 to 13.319462023859046.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[16] changed from ' - '9.484464647151459 to 13.20254959368906.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[17] changed from ' - '9.392070787857598 to 13.078481893962088.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[18] changed from ' - '9.295000301605826 to 12.948516583914195.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[19] changed from ' - '9.194105018887809 to 12.813795033479256.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[20] changed from ' - '9.090150762086846 to 12.675336233535766.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[21] changed from ' - '8.983817284144322 to 12.534038751228504.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[22] changed from ' - '8.875702017227395 to 12.390687357437848.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[23] changed from ' - '8.766325918251319 to 12.245962100068102.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[24] changed from ' - '8.656140295351928 to 12.100448395425754.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[25] changed from ' - '8.545533910114205 to 11.954647252699026.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[26] changed from ' - '8.434839927197606 to 11.808985108123064.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[27] changed from ' - '8.324342466266446 to 11.663822981797196.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[28] changed from ' - '8.214282630198657 to 11.519464821483538.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[29] changed from ' - '8.104863959176033 to 11.376164992139376.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[30] changed from ' - '7.9962573068650595 to 11.23413492671368.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[31] changed from ' - '7.888605162346563 to 11.093548985953543.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[32] changed from ' - '7.7820254564324465 to 10.954549591415876.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[33] changed from ' - '7.676614898015071 to 10.817251702415323.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[34] changed from ' - '7.5724518881225915 to 10.68174670812591.\n' - 'Value of root.ccuseconomics.ProjectCashFlow.value[35] changed from ' - '7.46959905838272 to 10.548105803016053.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[1] changed from ' - '2.2858227042061507 to 6.3071457684854995.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[2] changed from ' - '12.255218794340779 to 20.172571396218082.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[3] changed from ' - '22.224613442225678 to 34.03799465070191.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[4] changed from ' - '32.193941217441484 to 47.90331374988104.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[5] changed from ' - '42.16260853089564 to 61.76764086656267.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[6] changed from ' - '52.12845142205123 to 75.62783386192368.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[7] changed from ' - '62.086861870146805 to 89.47735085562103.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[8] changed from ' - '72.03071776331174 to 103.30625513420729.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[9] changed from ' - '81.95097278179972 to 117.1020990622566.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[10] changed from ' - '91.8374862705297 to 130.85108883787643.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[11] changed from ' - '101.67979569355903 to 144.53913417972257.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[12] changed from ' - '111.46770839835109 to 158.15263193411653.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[13] changed from ' - '121.19169727608335 to 171.67897557255984.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[14] changed from ' - '130.8431310687393 to 185.10683990649875.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[15] changed from ' - '140.4143815405561 to 198.4263019303578.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[16] changed from ' - '149.89884618770756 to 211.62885152404687.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[17] changed from ' - '159.29091697556515 to 224.70733341800894.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[18] changed from ' - '168.58591727717098 to 237.65585000192314.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[19] changed from ' - '177.78002229605877 to 250.4696450354024.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[20] changed from ' - '186.8701730581456 to 263.1449812689382.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[21] changed from ' - '195.85399034228993 to 275.67902002016666.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[22] changed from ' - '204.72969235951732 to 288.0697073776045.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[23] changed from ' - '213.49601827776863 to 300.3156694776726.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[24] changed from ' - '222.15215857312054 to 312.41611787309836.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[25] changed from ' - '230.69769248323476 to 324.3707651257974.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[26] changed from ' - '239.13253241043236 to 336.17975023392046.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[27] changed from ' - '247.4568748766988 to 347.84357321571764.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[28] changed from ' - '255.67115750689746 to 359.3630380372012.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[29] changed from ' - '263.7760214660735 to 370.73920302934056.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[30] changed from ' - '271.77227877293853 to 381.97333795605425.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[31] changed from ' - '279.6608839352851 to 393.0668869420078.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[32] changed from ' - '287.44290939171754 to 404.02143653342364.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[33] changed from ' - '295.1195242897326 to 414.83868823583896.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[34] changed from ' - '302.6919761778552 to 425.52043494396486.\n' - 'Value of root.ccuseconomics.ProjectCummCashFlow.value[35] changed from ' - '310.1615752362379 to 436.0685407469809.') diff --git a/src/geophires_x/pkgdocs.sh b/src/geophires_x/pkgdocs.sh deleted file mode 100644 index e7a4756e..00000000 --- a/src/geophires_x/pkgdocs.sh +++ /dev/null @@ -1,7 +0,0 @@ -TARFILE=mpmath-docsrc-`python -c "import mpmath; print mpmath.__version__"`.tar - -tar -cf $TARFILE README.rst CHANGES pkgdocs.sh demo/*.py doc/*.py \ - `find doc/source -not \( -name .git -prune \) -type f | less` - -gzip $TARFILE - diff --git a/src/geophires_x_client/__init__.py b/src/geophires_x_client/__init__.py index df0f8eb0..aec9bc5d 100644 --- a/src/geophires_x_client/__init__.py +++ b/src/geophires_x_client/__init__.py @@ -29,7 +29,7 @@ def get_geophires_result(self, input_params: GeophiresInputParameters) -> Geophi try: geophires.main(enable_geophires_logging_config=False) except Exception as e: - raise RuntimeError('GEOPHIRES encountered an exception') from e + raise RuntimeError(f'GEOPHIRES encountered an exception: {e!s}') from e except SystemExit: raise RuntimeError('GEOPHIRES exited without giving a reason') from None diff --git a/src/geophires_x_client/geophires_x_result.py b/src/geophires_x_client/geophires_x_result.py index e9962784..1adf1959 100644 --- a/src/geophires_x_client/geophires_x_result.py +++ b/src/geophires_x_client/geophires_x_result.py @@ -11,6 +11,7 @@ class GeophiresXResult: 'SUMMARY OF RESULTS': [ # TODO uses colon delimiter inconsistently # 'End-Use Option', + 'End-Use', 'Average Net Electricity Production', 'Electricity breakeven price', 'Average Direct-Use Heat Production', @@ -27,11 +28,7 @@ class GeophiresXResult: 'Geothermal gradient', # AGS/CLGS 'LCOE', - # 'Fluid', - # 'Design', - # 'Flow rate', - # 'Lateral Length', - # 'Vertical Depth' + 'LCOH', ], 'ECONOMIC PARAMETERS': [ 'Interest Rate', # % @@ -46,12 +43,20 @@ class GeophiresXResult: 'Water loss rate', # % 'Pump efficiency', # % 'Injection temperature', + 'Injection Temperature', 'Average production well temperature drop', 'Flowrate per production well', 'Injection well casing ID', 'Production well casing ID', # TODO correct typo upstream 'Number of times redrilling', # 'Power plant type', # Not a number - TODO parse non-number values without throwing exception + # AGS/CLGS + 'Fluid', + 'Design', + 'Flow rate', + 'Lateral Length', + 'Vertical Depth', + 'Wellbore Diameter', ], 'RESOURCE CHARACTERISTICS': ['Maximum reservoir temperature', 'Number of segments', 'Geothermal gradient'], 'RESERVOIR PARAMETERS': [ @@ -73,6 +78,7 @@ class GeophiresXResult: 'Reservoir thermal conductivity', 'Reservoir heat capacity', 'Reservoir porosity', + 'Thermal Conductivity', ], 'RESERVOIR SIMULATION RESULTS': [ 'Maximum Production Temperature', @@ -84,6 +90,11 @@ class GeophiresXResult: 'Average Production Well Temperature Drop', 'Average Injection Well Pump Pressure Drop', 'Average Production Well Pump Pressure Drop', + 'Average Production Pressure', + 'Average Heat Production', + 'First Year Heat Production', + 'Average Net Electricity Production', + 'First Year Electricity Production', ], 'CAPITAL COSTS (M$)': [ 'Drilling and completion costs', @@ -98,6 +109,7 @@ class GeophiresXResult: 'Total capital costs', # AGS/CLGS 'Total CAPEX', + 'Drilling Cost', ], 'OPERATING AND MAINTENANCE COSTS (M$/yr)': [ 'Wellfield maintenance costs', @@ -211,7 +223,9 @@ def _get_result_field(self, field): return None if len(matching_lines) > 1: - self._logger.warning(f'Found multiple ({len(matching_lines)}) entries for field: {field}\n\t{matching_lines}') + self._logger.warning( + f'Found multiple ({len(matching_lines)}) entries for field: {field}\n\t{matching_lines}' + ) matching_line = matching_lines.pop() val_and_unit_str = re.sub(r'\s\s+', '', matching_line.replace(f'{field}:', '').replace('\n', '')) @@ -235,7 +249,9 @@ def _get_metadata_field(self, metadata_field): return None if len(matching_lines) > 1: - self._logger.warning(f'Found multiple ({len(matching_lines)}) entries for metadata field: {metadata_field}\n\t{matching_lines}') + self._logger.warning( + f'Found multiple ({len(matching_lines)}) entries for metadata field: {metadata_field}\n\t{matching_lines}' + ) return matching_lines.pop().split(metadata_marker)[1].replace('\n', '') @@ -244,9 +260,15 @@ def power_generation_profile(self): return self.result['POWER GENERATION PROFILE'] def _get_power_generation_profile(self): - s1 = '* HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE *' - s2 = '***************************************************************' # header of next profile - profile_lines = ''.join(self._lines).split(s1)[1].split(s2)[0].split('\n') # [5:] + profile_lines = None + try: + s1 = '* HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE *' + s2 = '***************************************************************' # header of next profile + profile_lines = ''.join(self._lines).split(s1)[1].split(s2)[0].split('\n') # [5:] + except IndexError: + s1 = '* POWER GENERATION PROFILE *' + s2 = '***************************************************************' # header of next profile + profile_lines = ''.join(self._lines).split(s1)[1].split(s2)[0].split('\n') # [5:] return self._get_data_from_profile_lines(profile_lines) @property @@ -254,8 +276,13 @@ def heat_electricity_extraction_generation_profile(self): return self.result['HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE'] def _get_heat_electricity_extraction_generation_profile(self): - s1 = '* ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE *' - profile_lines = ''.join(self._lines).split(s1)[1].split('\n') + profile_lines = None + try: + s1 = '* ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE *' + profile_lines = ''.join(self._lines).split(s1)[1].split('\n') + except IndexError: + s1 = '* HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE *' + profile_lines = ''.join(self._lines).split(s1)[1].split('\n') return self._get_data_from_profile_lines(profile_lines) def _get_data_from_profile_lines(self, profile_lines): @@ -296,14 +323,25 @@ def _parse_number(self, number_str, field='string'): def _get_end_use_option(self) -> EndUseOption: try: - end_use_option_snippet = list(filter(lambda x: 'End-Use Option: ' in x, self._lines))[0].split('End-Use Option: ')[1] + end_use_option_snippet = next(filter(lambda x: 'End-Use Option: ' in x, self._lines)).split( + 'End-Use Option: ' + )[1] if 'Direct-Use Heat' in end_use_option_snippet: return EndUseOption.DIRECT_USE_HEAT elif 'Electricity' in end_use_option_snippet: return EndUseOption.ELECTRICITY - except IndexError: - # FIXME - self._logger.error('Failed to parse End-Use Option') + except StopIteration: + # FIXME clean up + try: + end_use_option_snippet = next(filter(lambda x: 'End-Use: ' in x, self._lines)).split('End-Use: ')[1] + + if 'Direct-Use Heat' in end_use_option_snippet: + return EndUseOption.DIRECT_USE_HEAT + elif 'Electricity' in end_use_option_snippet: + return EndUseOption.ELECTRICITY + except StopIteration: + # FIXME + self._logger.error('Failed to parse End-Use Option') return None diff --git a/src/geophires_x_schema_generator/__init__.py b/src/geophires_x_schema_generator/__init__.py new file mode 100644 index 00000000..bb09a67c --- /dev/null +++ b/src/geophires_x_schema_generator/__init__.py @@ -0,0 +1,183 @@ +import json +from typing import Tuple + +from geophires_x.AGSEconomics import AGSEconomics +from geophires_x.AGSSurfacePlant import AGSSurfacePlant +from geophires_x.AGSWellBores import AGSWellBores +from geophires_x.CylindricalReservoir import CylindricalReservoir +from geophires_x.GeoPHIRESUtils import json_dumpse +from geophires_x.Model import Model +from geophires_x.Parameter import Parameter + + +class GeophiresXSchemaGenerator: + def __init__(self): + pass + + def get_parameters_json(self) -> Tuple[str, str]: + dummy_model = Model(enable_geophires_logging_config=False) + + def with_category(param_dict: dict, category: str): + def _with_cat(p: Parameter, cat: str): + p.parameter_category = cat + return p + + return {k: _with_cat(v, category) for k, v in param_dict.items()} + + parameter_sources = [ + (dummy_model.reserv, 'Reservoir'), + (CylindricalReservoir(dummy_model), 'Reservoir'), + (dummy_model.wellbores, 'Well Bores'), + (AGSWellBores(dummy_model), 'Well Bores'), + (dummy_model.surfaceplant, 'Surface Plant'), + (AGSSurfacePlant(dummy_model), 'Surface Plant'), + (dummy_model.economics, 'Economics'), + (AGSEconomics(dummy_model), 'Economics'), + ] + + output_params = {} + input_params = {} + for param_source in parameter_sources: + input_params.update(with_category(param_source[0].ParameterDict, param_source[1])) + output_params.update(with_category(param_source[0].OutputParameterDict, param_source[1])) + + return json_dumpse(input_params), json_dumpse(output_params) + + def generate_json_schema(self) -> dict: + input_params_json, output_params_json = self.get_parameters_json() + input_params = json.loads(input_params_json) + + properties = {} + required = [] + + for param_name in input_params: + param = input_params[param_name] + + units_val = param['CurrentUnits'] if isinstance(param['CurrentUnits'], str) else None + properties[param_name] = { + 'description': param['ToolTipText'], + 'type': param['json_parameter_type'], + 'units': units_val, + 'category': param['parameter_category'], + } + + if param['Required']: + required.append(param_name) + + schema = { + 'definitions': {}, + '$schema': 'http://json-schema.org/draft-04/schema#', + 'type': 'object', + 'title': 'GEOPHIRES Schema', + 'required': required, + 'properties': properties, + } + + return schema + + def generate_parameters_reference_rst(self) -> str: + input_params_json, output_params_json = self.get_parameters_json() + input_params: dict = json.loads(input_params_json) + + input_params_by_category: dict = {} + for input_param_name, input_param in input_params.items(): + category: str = input_param['parameter_category'] + if category not in input_params_by_category: + input_params_by_category[category] = {} # [] + + input_params_by_category[category][input_param_name] = input_param + + def get_input_params_table(category_params, category_name) -> str: + input_rst = f""" +{category_name} +{'-' * len(category_name)} + .. list-table:: {category_name} Parameters + :header-rows: 1 + + * - Name + - Description + - Preferred Units + - Default Value Type + - Default Value + - Min + - Max""" + + for param_name in category_params: + param = input_params[param_name] + + # if param['Required']: + # TODO designate required params + + def get_key(k): + if k in param and str(param[k]) != '': # noqa + return param[k] # noqa + else: + return '' + + min_val = get_key('Min') + max_val = get_key('Max') + + if 'AllowableRange' in param: + # TODO warn if min/max are defined and at odds with allowable range + min_val = min(param['AllowableRange']) + max_val = max(param['AllowableRange']) + + # TODO include full AllowableRange in reference (or fully describe if possible using min/max/increment) + + input_rst += f"""\n * - {param['Name']} + - {get_key('ToolTipText')} + - {get_key('PreferredUnits')} + - {get_key('json_parameter_type')} + - {get_key('DefaultValue')} + - {min_val} + - {max_val}""" + + return input_rst + + input_rst = '' + for category, category_params in input_params_by_category.items(): + input_rst += get_input_params_table(category_params, category) + + output_rst = self.get_output_params_table_rst(output_params_json) + + rst = f"""Parameters +========== + +.. contents:: + +Input Parameters +################ +{input_rst} + +Output Parameters +################# +{output_rst} +""" + + return rst + + def get_output_params_table_rst(self, output_params_json) -> str: + output_params = json.loads(output_params_json) + + output_rst = """ + .. list-table:: Output Parameters + :header-rows: 1 + + * - Name + - Preferred Units + - Default Value Type""" + + for param_name in output_params: + param = output_params[param_name] + + def get_key(k): + if k in param and str(param[k]) != '': # noqa + return param[k] # noqa + else: + return '' + + output_rst += f"""\n * - {param['Name']} + - {get_key('PreferredUnits')} + - {get_key('json_parameter_type')}""" + + return output_rst diff --git a/src/geophires_x_schema_generator/main.py b/src/geophires_x_schema_generator/main.py index f436b2c1..d02b039f 100644 --- a/src/geophires_x_schema_generator/main.py +++ b/src/geophires_x_schema_generator/main.py @@ -1,46 +1,37 @@ +import argparse import json from pathlib import Path -from geophires_x.Model import Model +from geophires_x_schema_generator import GeophiresXSchemaGenerator +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--build-in-src', required=False, choices=[True, False], default=True) + parser.add_argument('--build-path', required=False) + args = parser.parse_args() + build_in_src = args.build_in_src -def get_json_schema() -> dict: - params = json.loads(Model(enable_geophires_logging_config=False).get_parameters_json()) - - properties = {} - required = [] - - for param_name in params: - param = params[param_name] - - properties[param_name] = { - 'description': param['ToolTipText'], - 'type': param['json_parameter_type'], - 'units': param['CurrentUnits'] if type(param['CurrentUnits']) == str else None, - 'category': param['parameter_category'], - } + build_dir = Path(Path(__file__).parent) + if not args.build_in_src: + build_dir = Path(Path(__file__).parent.parent.parent, 'build') - if param['Required']: - required.append(param_name) + if args.build_path: + build_dir = Path(args.build_path) - schema = { - 'definitions': {}, - '$schema': 'http://json-schema.org/draft-04/schema#', - 'type': 'object', - 'title': 'GEOPHIRES Schema', - 'required': required, - 'properties': properties, - } + build_dir.mkdir(exist_ok=True) - return schema + build_path = Path(build_dir, 'geophires-request.json') + generator = GeophiresXSchemaGenerator() -if __name__ == '__main__': - build_dir = Path(Path(__file__).parent.parent.parent, 'build') - build_dir.mkdir(exist_ok=True) + schema_json = generator.generate_json_schema() - build_path = Path(build_dir, 'geophires-request.json') with open(build_path, 'w') as f: - f.write(json.dumps(get_json_schema(), indent=2)) + f.write(json.dumps(schema_json, indent=2)) + print(f'Wrote schema file to {build_path}.') + + rst = generator.generate_parameters_reference_rst() - print(f'Wrote schema file to {build_path}.') + build_path_rst = Path(build_dir, 'parameters.rst') + with open(build_path_rst, 'w') as f: + f.write(rst) diff --git a/src/hip_ra/.gitignore b/src/hip_ra/.gitignore new file mode 100644 index 00000000..073f4615 --- /dev/null +++ b/src/hip_ra/.gitignore @@ -0,0 +1,2 @@ +*.log +*.out diff --git a/src/geophires_x/HIP_RA.py b/src/hip_ra/HIP_RA.py old mode 100644 new mode 100755 similarity index 64% rename from src/geophires_x/HIP_RA.py rename to src/hip_ra/HIP_RA.py index 1d1bb9d4..b835771e --- a/src/geophires_x/HIP_RA.py +++ b/src/hip_ra/HIP_RA.py @@ -1,5 +1,4 @@ #! python -# -*- coding: utf-8 -*- """ Heat in Place calculation: Muffler, P., and Raffaele Cataldi. @@ -13,18 +12,37 @@ @author: Malcolm Ross V1 """ -import os -import sys +from __future__ import annotations + import logging import logging.config +import os +import sys + import numpy as np from geophires_x.GeoPHIRESUtils import read_input_file -from geophires_x.Parameter import intParameter, floatParameter, OutputParameter, ReadParameter, ConvertUnitsBack, \ - ConvertOutputUnits, LookupUnits -from geophires_x.Units import * - -NL= os.linesep +from geophires_x.Parameter import ConvertOutputUnits +from geophires_x.Parameter import ConvertUnitsBack +from geophires_x.Parameter import LookupUnits +from geophires_x.Parameter import OutputParameter +from geophires_x.Parameter import ReadParameter +from geophires_x.Parameter import floatParameter +from geophires_x.Parameter import intParameter +from geophires_x.Units import AreaUnit +from geophires_x.Units import DensityUnit +from geophires_x.Units import EnthalpyUnit +from geophires_x.Units import EntropyUnit +from geophires_x.Units import HeatCapacityUnit +from geophires_x.Units import HeatUnit +from geophires_x.Units import LengthUnit +from geophires_x.Units import MassUnit +from geophires_x.Units import PercentUnit +from geophires_x.Units import PowerUnit +from geophires_x.Units import TemperatureUnit +from geophires_x.Units import TimeUnit +from geophires_x.Units import Units +from geophires_x.Units import VolumeUnit # user-defined static functions @@ -39,8 +57,9 @@ def DensityWater(Twater: float) -> float: density of water in kg/m3 """ T = Twater + 273.15 - rhowater = (.7983223 + ( - 1.50896E-3 - 2.9104E-6 * T) * T) * 1E3 # water density correlation as used in Geophires v1.2 [kg/m3] + rhowater = ( + 0.7983223 + (1.50896e-3 - 2.9104e-6 * T) * T + ) * 1e3 # water density correlation as used in Geophires v1.2 [kg/m3] return rhowater @@ -54,7 +73,7 @@ def ViscosityWater(Twater: float) -> float: Viscosity of water in Ns/m2 """ # accurate to within 2.5% from 0 to 370 degrees C [Ns/m2] - muwater = 2.414E-5 * np.power(10, 247.8 / (Twater + 273.15 - 140)) + muwater = 2.414e-5 * np.power(10, 247.8 / (Twater + 273.15 - 140)) return muwater @@ -73,8 +92,9 @@ def HeatCapacityWater(Twater) -> float: C = -3196.413 D = 2474.455 E = 3.855326 - cpwater = (A + B * Twater + C * Twater ** 2 + D * Twater ** 3 + E / ( - Twater ** 2)) / 18.02 * 1000 # water specific heat capacity in J/kg-K + cpwater = ( + (A + B * Twater + C * Twater**2 + D * Twater**3 + E / (Twater**2)) / 18.02 * 1000 + ) # water specific heat capacity in J/kg-K return cpwater @@ -121,16 +141,122 @@ def VaporPressureWater(Twater) -> float: # define 3 lookup functions for the enthalpy (aka "s", kJ/(kg K)) and entropy (aka "h", kJ/kg) of water # as a function of T (dec-c) from https://www.engineeringtoolbox.com/water-properties-d_1508.html -T = [0.01, 10.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0, 110.0, 120.0, 140.0, 160.0, 180.0, - 200.0, 220.0, 240.0, 260.0, 280.0, 300.0, 320.0, 340.0, 360.0, 373.946] -EntropyH20 = [0.0, 0.15109, 0.29648, 0.36722, 0.43675, 0.5724, 0.70381, 0.83129, 0.95513, 1.0756, 1.1929, 1.3072, - 1.4188, 1.5279, 1.7392, 1.9426, 2.1392, 2.3305, 2.5177, 2.702, 2.8849, 3.0685, 3.2552, 3.4494, 3.6601, - 3.9167, 4.407] -EnthalpyH20 = [0.000612, 42.021, 83.914, 104.83, 125.73, 167.53, 209.34, 251.18, 293.07, 335.01, 377.04, 419.17, - 461.42, 503.81, 589.16, 675.47, 763.05, 852.27, 943.58, 1037.6, 1135.0, 1236.9, 1345.0, 1462.2, - 1594.5, 1761.7, 2084.3] -UtilEff = [0.0, 0.0, 0.0, 0.0, 0.0057, 0.0337, 0.0617, 0.0897, 0.1177, 0.13, 0.16, 0.19, 0.22, 0.26, 0.29, 0.32, - 0.35, 0.38, 0.40, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4] +T = [ + 0.01, + 10.0, + 20.0, + 25.0, + 30.0, + 40.0, + 50.0, + 60.0, + 70.0, + 80.0, + 90.0, + 100.0, + 110.0, + 120.0, + 140.0, + 160.0, + 180.0, + 200.0, + 220.0, + 240.0, + 260.0, + 280.0, + 300.0, + 320.0, + 340.0, + 360.0, + 373.946, +] +EntropyH20 = [ + 0.0, + 0.15109, + 0.29648, + 0.36722, + 0.43675, + 0.5724, + 0.70381, + 0.83129, + 0.95513, + 1.0756, + 1.1929, + 1.3072, + 1.4188, + 1.5279, + 1.7392, + 1.9426, + 2.1392, + 2.3305, + 2.5177, + 2.702, + 2.8849, + 3.0685, + 3.2552, + 3.4494, + 3.6601, + 3.9167, + 4.407, +] +EnthalpyH20 = [ + 0.000612, + 42.021, + 83.914, + 104.83, + 125.73, + 167.53, + 209.34, + 251.18, + 293.07, + 335.01, + 377.04, + 419.17, + 461.42, + 503.81, + 589.16, + 675.47, + 763.05, + 852.27, + 943.58, + 1037.6, + 1135.0, + 1236.9, + 1345.0, + 1462.2, + 1594.5, + 1761.7, + 2084.3, +] +UtilEff = [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0057, + 0.0337, + 0.0617, + 0.0897, + 0.1177, + 0.13, + 0.16, + 0.19, + 0.22, + 0.26, + 0.29, + 0.32, + 0.35, + 0.38, + 0.40, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, + 0.4, +] def EntropyH20_func(x: float) -> float: @@ -191,7 +317,7 @@ def __init__(self, enable_geophires_logging_config=True): logging.config.fileConfig('logging.conf') self.logger.setLevel(logging.INFO) - self.logger.info(f'Init {str(__class__)}: {sys._getframe().f_code.co_name}') + self.logger.info(f'Init {__class__!s}: {sys._getframe().f_code.co_name}') # Initiate the elements of the Model # Set up all the Parameters that will be predefined by this class using the different types of parameter @@ -206,12 +332,12 @@ def __init__(self, enable_geophires_logging_config=True): # "OutputParameter" Objects. This will allow us later to access them in a user interface and get that list, # along with unit type, preferred units, etc. self.ParameterDict = {} - self.OutputParameterDict = {} # declare some dictionaries + self.OutputParameterDict = {} # declare some dictionaries self.InputParameters = {} # dictionary to hold all the input parameter the user wants to change # inputs self.ReservoirTemperature = self.ParameterDict[self.ReservoirTemperature.Name] = floatParameter( - "Reservoir Temperature", + 'Reservoir Temperature', value=150.0, Min=50, Max=1000, @@ -219,11 +345,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=TemperatureUnit.CELSIUS, CurrentUnits=TemperatureUnit.CELSIUS, Required=True, - ErrMessage="assume default reservoir temperature (150 deg-C)", - ToolTipText="Reservoir Temperature [150 dec-C]" + ErrMessage='assume default reservoir temperature (150 deg-C)', + ToolTipText='Reservoir Temperature [150 dec-C]', ) self.RejectionTemperature = self.ParameterDict[self.RejectionTemperature.Name] = floatParameter( - "Rejection Temperature", + 'Rejection Temperature', value=25.0, Min=0.1, Max=200, @@ -231,11 +357,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=TemperatureUnit.CELSIUS, CurrentUnits=TemperatureUnit.CELSIUS, Required=True, - ErrMessage="assume default rejection temperature (25 deg-C)", - ToolTipText="Rejection Temperature [25 dec-C]" + ErrMessage='assume default rejection temperature (25 deg-C)', + ToolTipText='Rejection Temperature [25 dec-C]', ) self.FormationPorosity = self.ParameterDict[self.FormationPorosity.Name] = floatParameter( - "Formation Porosity", + 'Formation Porosity', value=18.0, Min=0.0, Max=100.0, @@ -243,11 +369,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=PercentUnit.PERCENT, CurrentUnits=PercentUnit.PERCENT, Required=True, - ErrMessage="assume default formation porosity (18%)", - ToolTipText="Formation Porosity [18%]" + ErrMessage='assume default formation porosity (18%)', + ToolTipText='Formation Porosity [18%]', ) self.ReservoirArea = self.ParameterDict[self.ReservoirArea.Name] = floatParameter( - "Reservoir Area", + 'Reservoir Area', value=81.0, Min=0.0, Max=10000.0, @@ -255,11 +381,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=AreaUnit.KILOMETERS2, CurrentUnits=AreaUnit.KILOMETERS2, Required=True, - ErrMessage="assume default reservoir area (81 km2)", - ToolTipText="Reservoir Area [81 km2]" + ErrMessage='assume default reservoir area (81 km2)', + ToolTipText='Reservoir Area [81 km2]', ) self.ReservoirThickness = self.ParameterDict[self.ReservoirThickness.Name] = floatParameter( - "Reservoir Thickness", + 'Reservoir Thickness', value=0.286, Min=0.0, Max=10000.0, @@ -267,36 +393,36 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=LengthUnit.KILOMETERS, CurrentUnits=LengthUnit.KILOMETERS, Required=True, - ErrMessage="assume default reservoir thickness (0.286 km2)", - ToolTipText="Reservoir Thickness [0.286 km]" + ErrMessage='assume default reservoir thickness (0.286 km2)', + ToolTipText='Reservoir Thickness [0.286 km]', ) self.ReservoirLifeCycle = self.ParameterDict[self.ReservoirLifeCycle.Name] = intParameter( - "Reservoir Life Cycle", + 'Reservoir Life Cycle', value=30, UnitType=Units.TIME, PreferredUnits=TimeUnit.YEAR, CurrentUnits=TimeUnit.YEAR, AllowableRange=list(range(1, 101, 1)), Required=True, - ErrMessage="assume default Reservoir Life Cycle (25 years)", - ToolTipText="Reservoir Life Cycle [30 years]" + ErrMessage='assume default Reservoir Life Cycle (25 years)', + ToolTipText='Reservoir Life Cycle [30 years]', ) # user-changeable semi-constants self.ReservoirHeatCapacity = self.ParameterDict[self.ReservoirHeatCapacity.Name] = floatParameter( - "Reservoir Heat Capacity", - value=2.84E+12, + 'Reservoir Heat Capacity', + value=2.84e12, Min=0.0, - Max=1E+14, + Max=1e14, UnitType=Units.HEAT_CAPACITY, PreferredUnits=HeatCapacityUnit.KJPERKM3C, CurrentUnits=HeatCapacityUnit.KJPERKM3C, Required=True, - ErrMessage="assume default Reservoir Heat Capacity (2.84E+12 kJ/km3C)", - ToolTipText="Reservoir Heat Capacity [2.84E+12 kJ/km3C]" + ErrMessage='assume default Reservoir Heat Capacity (2.84E+12 kJ/km3C)', + ToolTipText='Reservoir Heat Capacity [2.84E+12 kJ/km3C]', ) self.HeatCapacityOfWater = self.ParameterDict[self.HeatCapacityOfWater.Name] = floatParameter( - "Heat Capacity Of Water", + 'Heat Capacity Of Water', value=-1.0, Min=3.0, Max=10.0, @@ -304,11 +430,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=HeatCapacityUnit.kJPERKGC, CurrentUnits=HeatCapacityUnit.kJPERKGC, Required=True, - ErrMessage="calculate a value based on the water temperature", - ToolTipText="Heat Capacity Of Water [4.18 kJ/kgC]" + ErrMessage='calculate a value based on the water temperature', + ToolTipText='Heat Capacity Of Water [4.18 kJ/kgC]', ) self.HeatCapacityOfRock = self.ParameterDict[self.HeatCapacityOfRock.Name] = floatParameter( - "Heat Capacity Of Rock", + 'Heat Capacity Of Rock', value=1.000, Min=0.0, Max=10.0, @@ -316,35 +442,35 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=HeatCapacityUnit.kJPERKGC, CurrentUnits=HeatCapacityUnit.kJPERKGC, Required=True, - ErrMessage="assume default Heat Capacity Of Rock (1.0 kJ/kgC)", - ToolTipText="Heat Capacity Of Rock [1.0 kJ/kgC]" + ErrMessage='assume default Heat Capacity Of Rock (1.0 kJ/kgC)', + ToolTipText='Heat Capacity Of Rock [1.0 kJ/kgC]', ) self.DensityOfWater = self.ParameterDict[self.DensityOfWater.Name] = floatParameter( - "Density Of Water", + 'Density Of Water', value=-1.0, - Min=1.000E+11, - Max=1.000E+13, + Min=1.000e11, + Max=1.000e13, UnitType=Units.DENSITY, PreferredUnits=DensityUnit.KGPERKILOMETERS3, CurrentUnits=DensityUnit.KGPERKILOMETERS3, Required=True, - ErrMessage="calculate a value based on the water temperature", - ToolTipText="Heat Density Of Water [1.0E+12 kg/km3]" + ErrMessage='calculate a value based on the water temperature', + ToolTipText='Heat Density Of Water [1.0E+12 kg/km3]', ) self.DensityOfRock = self.ParameterDict[self.DensityOfRock.Name] = floatParameter( - "Density Of Rock", - value=2.55E+12, - Min=1.000E+11, - Max=1.000E+13, + 'Density Of Rock', + value=2.55e12, + Min=1.000e11, + Max=1.000e13, UnitType=Units.DENSITY, PreferredUnits=DensityUnit.KGPERKILOMETERS3, CurrentUnits=DensityUnit.KGPERKILOMETERS3, Required=True, - ErrMessage="assume default Density Of Rock (2.55E+12 kg/km3)", - ToolTipText="Heat Density Of Rock [2.55E+12 kg/km3]" + ErrMessage='assume default Density Of Rock (2.55E+12 kg/km3)', + ToolTipText='Heat Density Of Rock [2.55E+12 kg/km3]', ) self.RecoverableHeat = self.ParameterDict[self.RecoverableHeat.Name] = floatParameter( - "Recoverable Heat", + 'Recoverable Heat', value=-1.0, Min=0.001, Max=1.000, @@ -352,14 +478,15 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=PercentUnit.TENTH, CurrentUnits=PercentUnit.TENTH, Required=False, - ErrMessage="assume 0.66 for high-T reservoirs (>150C), 0.43 for low-T reservoirs \ - (>90, Garg and Combs (2011)", - ToolTipText="percent of heat that is recoverable from the rock in the reservoir 0.66 for high-T reservoirs,\ - 0.43 for low-T reservoirs (Garg and Combs (2011)") + ErrMessage='assume 0.66 for high-T reservoirs (>150C), 0.43 for low-T reservoirs \ + (>90, Garg and Combs (2011)', + ToolTipText='percent of heat that is recoverable from the rock in the reservoir 0.66 for high-T reservoirs,\ + 0.43 for low-T reservoirs (Garg and Combs (2011)', + ) # internal self.WaterContent = self.ParameterDict[self.WaterContent.Name] = floatParameter( - "Water Content", + 'Water Content', value=18.0, Min=0.0, Max=100.0, @@ -367,11 +494,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=PercentUnit.PERCENT, CurrentUnits=PercentUnit.PERCENT, Required=True, - ErrMessage="assume default water content (18%)", - ToolTipText="Water Content" + ErrMessage='assume default water content (18%)', + ToolTipText='Water Content', ) self.RockContent = self.ParameterDict[self.RockContent.Name] = floatParameter( - "Rock Content", + 'Rock Content', value=82.0, Min=0.0, Max=100.0, @@ -379,11 +506,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=PercentUnit.PERCENT, CurrentUnits=PercentUnit.PERCENT, Required=True, - ErrMessage="assume default rock content (82%)", - ToolTipText="Rock Content" + ErrMessage='assume default rock content (82%)', + ToolTipText='Rock Content', ) self.RejectionTemperatureK = self.ParameterDict[self.RejectionTemperatureK.Name] = floatParameter( - "Rejection Temperature in K", + 'Rejection Temperature in K', value=298.15, Min=0.1, Max=1000.0, @@ -391,11 +518,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=TemperatureUnit.KELVIN, CurrentUnits=TemperatureUnit.KELVIN, Required=True, - ErrMessage="assume default rejection temperature in K (298.15 deg-K)", - ToolTipText="Rejection Temperature in K [298.15 deg-K]" + ErrMessage='assume default rejection temperature in K (298.15 deg-K)', + ToolTipText='Rejection Temperature in K [298.15 deg-K]', ) self.RejectionEntropy = self.ParameterDict[self.RejectionEntropy.Name] = floatParameter( - "Rejection Entropy", + 'Rejection Entropy', value=0.3670, Min=0.0001, Max=100.0, @@ -403,11 +530,11 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=EntropyUnit.KJPERKGK, CurrentUnits=EntropyUnit.KJPERKGK, Required=True, - ErrMessage="assume default Rejection Entropy (0.3670 kJ/kgK @25 deg-C)", - ToolTipText="Rejection Entropy [0.3670 kJ/kgK @25 deg-C]" + ErrMessage='assume default Rejection Entropy (0.3670 kJ/kgK @25 deg-C)', + ToolTipText='Rejection Entropy [0.3670 kJ/kgK @25 deg-C]', ) self.RejectionEnthalpy = self.ParameterDict[self.RejectionEnthalpy.Name] = floatParameter( - "Rejection Enthalpy", + 'Rejection Enthalpy', value=104.8, Min=0.0001, Max=1000.0, @@ -415,67 +542,49 @@ def __init__(self, enable_geophires_logging_config=True): PreferredUnits=EnthalpyUnit.KJPERKG, CurrentUnits=EnthalpyUnit.KJPERKG, Required=True, - ErrMessage="assume default Rejection Enthalpy (104.8 kJ/kg @25 deg-C)", - ToolTipText="Rejection Enthalpy [104.8 kJ/kg @25 deg-C]" + ErrMessage='assume default Rejection Enthalpy (104.8 kJ/kg @25 deg-C)', + ToolTipText='Rejection Enthalpy [104.8 kJ/kg @25 deg-C]', ) # Outputs self.V = self.OutputParameterDict[self.V.Name] = OutputParameter( - Name="Reservoir Volume", + Name='Reservoir Volume', UnitType=Units.VOLUME, PreferredUnits=VolumeUnit.KILOMETERS3, - CurrentUnits=VolumeUnit.KILOMETERS3 + CurrentUnits=VolumeUnit.KILOMETERS3, ) self.qR = self.OutputParameterDict[self.qR.Name] = OutputParameter( - Name="Stored Heat", - UnitType=Units.HEAT, - PreferredUnits=HeatUnit.KJ, - CurrentUnits=HeatUnit.KJ + Name='Stored Heat', UnitType=Units.HEAT, PreferredUnits=HeatUnit.KJ, CurrentUnits=HeatUnit.KJ ) self.mWH = self.OutputParameterDict[self.mWH.Name] = OutputParameter( - Name="Fluid Produced", - UnitType=Units.MASS, - PreferredUnits=MassUnit.KILOGRAM, - CurrentUnits=MassUnit.KILOGRAM + Name='Fluid Produced', UnitType=Units.MASS, PreferredUnits=MassUnit.KILOGRAM, CurrentUnits=MassUnit.KILOGRAM ) self.e = self.OutputParameterDict[self.e.Name] = OutputParameter( - Name="Enthalpy", + Name='Enthalpy', UnitType=Units.ENTHALPY, PreferredUnits=EnthalpyUnit.KJPERKG, - CurrentUnits=EnthalpyUnit.KJPERKG + CurrentUnits=EnthalpyUnit.KJPERKG, ) self.qWH = self.OutputParameterDict[self.qWH.Name] = OutputParameter( - Name="Wellhead Heat", - UnitType=Units.HEAT, - PreferredUnits=HeatUnit.KJ, - CurrentUnits=HeatUnit.KJ + Name='Wellhead Heat', UnitType=Units.HEAT, PreferredUnits=HeatUnit.KJ, CurrentUnits=HeatUnit.KJ ) self.Rg = self.OutputParameterDict[self.Rg.Name] = OutputParameter( - Name="Recovery Factor", + Name='Recovery Factor', UnitType=Units.PERCENT, PreferredUnits=PercentUnit.PERCENT, - CurrentUnits=PercentUnit.PERCENT + CurrentUnits=PercentUnit.PERCENT, ) self.WA = self.OutputParameterDict[self.WA.Name] = OutputParameter( - Name="Available Heat", - UnitType=Units.HEAT, - PreferredUnits=HeatUnit.KJ, - CurrentUnits=HeatUnit.KJ + Name='Available Heat', UnitType=Units.HEAT, PreferredUnits=HeatUnit.KJ, CurrentUnits=HeatUnit.KJ ) self.WE = self.OutputParameterDict[self.WE.Name] = OutputParameter( - Name="Producible Heat", - UnitType=Units.HEAT, - PreferredUnits=HeatUnit.KJ, - CurrentUnits=HeatUnit.KJ + Name='Producible Heat', UnitType=Units.HEAT, PreferredUnits=HeatUnit.KJ, CurrentUnits=HeatUnit.KJ ) self.We = self.OutputParameterDict[self.We.Name] = OutputParameter( - Name="Producible Electricity", - UnitType=Units.POWER, - PreferredUnits=PowerUnit.MW, - CurrentUnits=PowerUnit.MW + Name='Producible Electricity', UnitType=Units.POWER, PreferredUnits=PowerUnit.MW, CurrentUnits=PowerUnit.MW ) - self.logger.info("Complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + self.logger.info(f'Complete {__class__!s}: {sys._getframe().f_code.co_name}') def read_parameters(self) -> None: """ @@ -489,7 +598,7 @@ def read_parameters(self) -> None: :return: None :doc-author: Malcolm Ross """ - self.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + self.logger.info(f'Init {__class__!s}: {sys._getframe().f_code.co_name}') # This should give us a dictionary with all the parameters the user wants to set. Should be only those value # that they want to change from the default. @@ -517,47 +626,51 @@ def read_parameters(self) -> None: # Before we change the parameter, let's assume that the unit preferences will match - # if they don't, the later code will fix this. ParameterToModify.CurrentUnits = ParameterToModify.PreferredUnits - ReadParameter(ParameterReadIn, ParameterToModify, self) # this should handle all the non-special cases + ReadParameter( + ParameterReadIn, ParameterToModify, self + ) # this should handle all the non-special cases # handle special cases - if ParameterToModify.Name == "Formation Porosity": + if ParameterToModify.Name == 'Formation Porosity': self.WaterContent.value = ParameterToModify.value self.RockContent = 100.0 - ParameterToModify.value - elif ParameterToModify.Name == "Rejection Temperature": + elif ParameterToModify.Name == 'Rejection Temperature': self.RejectionTemperatureK.value = 273.15 + ParameterToModify.value self.RejectionEntropy.value = EntropyH20_func(ParameterToModify.value) self.RejectionEnthalpy.value = EnthalpyH20_func(ParameterToModify.value) - elif ParameterToModify.Name == "Density Of Water": + elif ParameterToModify.Name == 'Density Of Water': value = float(ParameterReadIn.sValue) if value < 0: # if the user supplied -1 as the density, they want us to calculate it. ParameterToModify.value = DensityWater(self.ReservoirTemperature.value) * 1_000_000_000.0 self.DensityOfWater.value = ParameterToModify.value - elif ParameterToModify.Name == "Heat Capacity Of Water": + elif ParameterToModify.Name == 'Heat Capacity Of Water': value = float(ParameterReadIn.sValue) if value < 0: # if the user supplied -1 as the capacity, they want us to calculate it. ParameterToModify.value = HeatCapacityWater(self.ReservoirTemperature.value) / 1000.0 self.HeatCapacityOfWater.value = ParameterToModify.value - elif ParameterToModify.Name == "Recoverable Heat": + elif ParameterToModify.Name == 'Recoverable Heat': value = float(ParameterReadIn.sValue) if value < 0: # if the user supplied -1 as the Recoverable Heat, they want us to calculate it. ParameterToModify.value = HeatCapacityWater(self.ReservoirTemperature.value) / 1000.0 self.HeatCapacityOfWater.value = ParameterToModify.value else: - self.logger.info("No parameters read because no content provided") + self.logger.info('No parameters read because no content provided') # loop through all the parameters that the user wishes to set, looking for parameters that contain # the prefix "Units:" - that means we want to set a special case for converting this output parameter # to new units for key in self.InputParameters.keys(): - if key.startswith("Units:"): - self.OutputParameterDict[key.replace("Units:", "")].CurrentUnits = LookupUnits(self.InputParameters[key].sValue)[0] - self.OutputParameterDict[key.replace("Units:", "")].UnitsMatch = False + if key.startswith('Units:'): + self.OutputParameterDict[key.replace('Units:', '')].CurrentUnits = LookupUnits( + self.InputParameters[key].sValue + )[0] + self.OutputParameterDict[key.replace('Units:', '')].UnitsMatch = False - self.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + self.logger.info(f'complete {__class__!s}: {sys._getframe().f_code.co_name}') def Calculate(self): """ @@ -567,33 +680,42 @@ def Calculate(self): :return: None :doc-author: Malcolm Ross """ - self.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + self.logger.info(f'Init {__class__!s}: {sys._getframe().f_code.co_name}') # This is where all the calculations are made using all the values that have been set. - if self.DensityOfWater.value < self.DensityOfWater.Min: self.DensityOfWater.value = DensityWater( - self.ReservoirTemperature.value) * 1_000_000_000.0 + if self.DensityOfWater.value < self.DensityOfWater.Min: + self.DensityOfWater.value = DensityWater(self.ReservoirTemperature.value) * 1_000_000_000.0 if self.HeatCapacityOfWater.value < self.HeatCapacityOfWater.Min: self.HeatCapacityOfWater.value = HeatCapacityWater(self.ReservoirTemperature.value) / 1000.0 self.V.value = self.ReservoirArea.value * self.ReservoirThickness.value - self.qR.value = self.V.value * (self.ReservoirHeatCapacity.value * (self.ReservoirTemperature.value - self.RejectionTemperature.value)) + self.qR.value = self.V.value * ( + self.ReservoirHeatCapacity.value * (self.ReservoirTemperature.value - self.RejectionTemperature.value) + ) self.mWH.value = (self.V.value * (self.FormationPorosity.value / 100.0)) * self.DensityOfWater.value self.e.value = (EnthalpyH20_func(self.ReservoirTemperature.value) - self.RejectionEnthalpy.value) - ( - self.RejectionTemperatureK.value * ( - EntropyH20_func(self.ReservoirTemperature.value) - self.RejectionEntropy.value)) + self.RejectionTemperatureK.value + * (EntropyH20_func(self.ReservoirTemperature.value) - self.RejectionEntropy.value) + ) self.qWH.value = self.mWH.value * ( - EnthalpyH20_func(self.ReservoirTemperature.value) - self.RejectionTemperatureK.value) + EnthalpyH20_func(self.ReservoirTemperature.value) - self.RejectionTemperatureK.value + ) self.Rg.value = self.qWH.value / self.qR.value - self.WA.value = self.mWH.value * self.e.value * self.Rg.value * RecoverableHeat(self.RecoverableHeat.value, self.ReservoirTemperature.value) + self.WA.value = ( + self.mWH.value + * self.e.value + * self.Rg.value + * RecoverableHeat(self.RecoverableHeat.value, self.ReservoirTemperature.value) + ) self.WE.value = self.WA.value * UtilEff_func(self.ReservoirTemperature.value) - self.We.value = (self.WE.value/3_600_000) / 8_760 # convert Kilojoules of heat to MWe of electricity + self.We.value = (self.WE.value / 3_600_000) / 8_760 # convert Kilojoules of heat to MWe of electricity - self.logger.info("complete " + str(__class__) + ": " + sys._getframe().f_code.co_name) + self.logger.info(f'Complete {__class__!s}: {sys._getframe().f_code.co_name}') def PrintOutputs(self): """ PrintOutputs writes the standard outputs to the output file. """ - self.logger.info("Init " + str(__class__) + ": " + sys._getframe().f_code.co_name) + self.logger.info(f'Init {__class__!s}: {sys._getframe().f_code.co_name}') # Deal with converting Units back to PreferredUnits, if required. # before we write the outputs, we go through all the parameters for all the objects and set the values back @@ -605,7 +727,7 @@ def PrintOutputs(self): if not param.UnitsMatch: ConvertUnitsBack(param, self) - # now we need to loop through all thw output parameters to update their units to whatever + # now we need to loop through all the output parameters to update their units to whatever # units the user has specified. # i.e., they may have specified that all LENGTH results must be in feet, so we need to convert those from # whatever LENGTH unit they are to feet. @@ -618,45 +740,67 @@ def PrintOutputs(self): # write results to output file and screen # --------------------------------------- try: - outputfile = "HIP.out" - if len(sys.argv) > 2: outputfile = sys.argv[2] - with open(outputfile,'w', encoding='UTF-8') as f: - f.write(' *********************' + NL) - f.write(' ***HIP CASE REPORT***' + NL) - f.write(' *********************' + NL) - f.write(NL) - f.write(' ***SUMMARY OF RESULTS***' + NL) - f.write(NL) - f.write( - f" Reservoir Temperature: {self.ReservoirTemperature.value:10.2f} " + self.ReservoirTemperature.CurrentUnits.value + NL) - f.write(f" Reservoir Volume: {self.V.value:10.2f} " + self.V.CurrentUnits.value + NL) - f.write(f" Stored Heat: {self.qR.value:10.2e} " + self.qR.CurrentUnits.value + NL) - f.write(f" Fluid Produced: {self.mWH.value:10.2e} " + self.mWH.CurrentUnits.value + NL) - f.write(f" Enthalpy: {self.e.value:10.2f} " + self.e.CurrentUnits.value + NL) - f.write(f" Wellhead Heat: {self.qWH.value:10.2e} " + self.qWH.CurrentUnits.value + NL) - f.write( - f" Recovery Factor: {(100 * self.Rg.value):10.2f} " + self.Rg.CurrentUnits.value + NL) - f.write(f" Available Heat: {self.WA.value:10.2e} " + self.WA.CurrentUnits.value + NL) - f.write(f" Produceable Heat: {self.WE.value:10.2e} " + self.WE.CurrentUnits.value + NL) - f.write(f" Produceable Electricity: {self.We.value:10.2f} " + self.We.CurrentUnits.value + NL) - f.write(NL) + outputfile = 'HIP.out' if len(sys.argv) <= 2 else sys.argv[2] + + def render_default(p: floatParameter | OutputParameter) -> str: + return f'{p.value:10.2f} {p.CurrentUnits.value}' + + def render_scientific(p: floatParameter | OutputParameter) -> str: + return f'{p.value:10.2e} {p.CurrentUnits.value}' + + summary_of_results = {} + + for param, render in [ + (self.ReservoirTemperature, render_default), + (self.V, render_default), + (self.qR, render_scientific), + (self.mWH, render_scientific), + (self.e, render_default), + (self.qWH, render_scientific), + (self.Rg, lambda rg: f'{(100 * rg.value):10.2f} {rg.CurrentUnits.value}'), + (self.WA, render_scientific), + (self.WE, render_scientific), + (self.We, render_default), + ]: + summary_of_results[param.Name] = render(param) + + case_data = {'SUMMARY OF RESULTS': summary_of_results} + + with open(outputfile, 'w', encoding='UTF-8') as f: + nl = '\n' + + f.write(f' *********************{nl}') + f.write(f' ***HIP CASE REPORT***{nl}') + f.write(f' *********************{nl}') + f.write(nl) + f.write(f' ***SUMMARY OF RESULTS***{nl}') + f.write(nl) + + for k, v in case_data['SUMMARY OF RESULTS'].items(): + # align space between value and units to same column + kv_spaces = max(1, (24 - (len(v.split(' ')[0]) + len(k)))) * ' ' + + f.write(f' {k}:{kv_spaces}{v}{nl}') + except BaseException as ex: tb = sys.exc_info()[2] print(str(ex)) - print("Error: GEOPHIRES Failed to write the output file. Exiting....Line %i" % tb.tb_lineno) + msg = f'Error: HIP_RA Failed to write the output file. Exiting....Line {tb.tb_lineno}' + print(msg) self.logger.critical(str(ex)) - self.logger.critical("Error: GEOPHIRES Failed to write the output file. Exiting....Line %i" % tb.tb_lineno) + self.logger.critical(msg) sys.exit() # copy the output file to the screen - with open(outputfile, 'r', encoding='UTF-8') as f: + with open(outputfile, encoding='UTF-8') as f: content = f.readlines() # store all output in one long list # Now write each line to the screen - for line in content: sys.stdout.write(line) + for line in content: + sys.stdout.write(line) def __str__(self): - return "HIP_RA" + return 'HIP_RA' def main(enable_geophires_logging_config=True): @@ -668,7 +812,7 @@ def main(enable_geophires_logging_config=True): logging.config.fileConfig('logging.conf') logger = logging.getLogger('root') - logger.info("Init " + str(__name__)) + logger.info(f'Init {__name__!s}') # initiate the HIP-RA parameters, setting them to their default values model = HIP_RA(enable_geophires_logging_config=enable_geophires_logging_config) @@ -682,8 +826,8 @@ def main(enable_geophires_logging_config=True): # write the outputs model.PrintOutputs() - logger.info("Complete " + str(__name__) + ": " + sys._getframe().f_code.co_name) + logger.info(f'Complete {__name__!s}: {sys._getframe().f_code.co_name}') -if __name__ == "__main__": +if __name__ == '__main__': main() diff --git a/src/hip_ra/__init__.py b/src/hip_ra/__init__.py new file mode 100644 index 00000000..a7d84d02 --- /dev/null +++ b/src/hip_ra/__init__.py @@ -0,0 +1,53 @@ +import os +import sys +import tempfile +import uuid +from pathlib import Path + +from hip_ra import HIP_RA + + +class HipRaInputParameters: + def __init__(self, from_file_path: str): + self._input_file_path = Path(from_file_path) + self._output_file_path = Path( + tempfile.gettempdir(), f'hip-ra-result_{self._input_file_path.stem}_{uuid.uuid1()!s}.out' + ) + + def as_file_path(self) -> Path: + return self._input_file_path + + @property + def output_file_path(self) -> Path: + return self._output_file_path + + +class HipRaResult: + def __init__(self, output_file_path): + self.output_file_path = output_file_path + + +class HipRaClient: + def __init__(self, enable_caching=True, logger_name='root'): + # self._logger = _get_logger(logger_name=logger_name) + pass + + def get_hip_ra_result(self, input_params: HipRaInputParameters) -> HipRaResult: + stash_cwd = Path.cwd() + stash_sys_argv = sys.argv + + sys.argv = ['', input_params.as_file_path(), input_params.output_file_path] + try: + HIP_RA.main(enable_geophires_logging_config=False) + except Exception as e: + raise RuntimeError(f'HIP_RA encountered an exception: {e!s}') from e + except SystemExit: + raise RuntimeError('HIP_RA exited without giving a reason') from None + + # Undo Geophires internal global settings changes + sys.argv = stash_sys_argv + os.chdir(stash_cwd) + + # self._logger.info(f'GEOPHIRES-X output file: {input_params.get_output_file_path()}') + + return HipRaResult(input_params.output_file_path) diff --git a/src/hip_ra/logging.conf b/src/hip_ra/logging.conf new file mode 100644 index 00000000..14d2abaa --- /dev/null +++ b/src/hip_ra/logging.conf @@ -0,0 +1,31 @@ +[loggers] +keys=root + +[handlers] +keys=consoleHandler, fileHandler + +[formatters] +keys=consoleFormatter, fileFormatter + +[logger_root] +level=WARN +handlers=consoleHandler, fileHandler + +[handler_consoleHandler] +class=logging.StreamHandler +level=WARN +formatter=consoleFormatter +args=(sys.stdout,) + +[handler_fileHandler] +class = logging.FileHandler +kwargs = {"filename": "all_messages_conf.log"} +level = INFO +formatter = fileFormatter + +[formatter_consoleFormatter] +format=%(asctime)s - %(name)s - %(levelname)s - %(message)s + +[formatter_fileFormatter] +format = %(asctime)s : %(levelname)s : %(module)s : %(funcName)s : %(lineno)d : (Process Details : (%(process)d, %(processName)s), Thread Details : (%(thread)d, %(threadName)s)): %(message)s +datefmt = %d-%m-%Y %I:%M:%S diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/base_test_case.py b/tests/base_test_case.py new file mode 100644 index 00000000..6776466e --- /dev/null +++ b/tests/base_test_case.py @@ -0,0 +1,63 @@ +import os.path +import unittest + + +class BaseTestCase(unittest.TestCase): + maxDiff = None + + def _get_test_file_path(self, test_file_name) -> str: + return os.path.join(os.path.abspath(os.path.dirname(__file__)), test_file_name) + + def _get_test_file_content(self, test_file_name): + with open(self._get_test_file_path(test_file_name)) as f: + return f.readlines() + + def _list_test_files_dir(self, test_files_dir: str): + return os.listdir(self._get_test_file_path(test_files_dir)) + + def assertDictAlmostEqual(self, d1, d2, msg=None, places=7): + """ + https://stackoverflow.com/a/53081544/21380804 + """ + + # check if both inputs are dicts + self.assertIsInstance(d1, dict, 'First argument is not a dictionary') + self.assertIsInstance(d2, dict, 'Second argument is not a dictionary') + + # check if both inputs have the same keys + self.assertEqual(d1.keys(), d2.keys()) + + # check each key + for key, value in d1.items(): + if isinstance(value, dict): + self.assertDictAlmostEqual(d1[key], d2[key], msg=msg, places=places) + elif isinstance(value, list): + self.assertListAlmostEqual(d1[key], d2[key], msg=msg, places=places) + else: + self.assertAlmostEqual(d1[key], d2[key], places=places, msg=msg) + + def assertListAlmostEqual(self, l1, l2, msg=None, places=7): + # check if both inputs are dicts + self.assertIsInstance(l1, list, 'First argument is not a list') + self.assertIsInstance(l2, list, 'Second argument is not a list') + + # check if both inputs have the same keys + self.assertEqual(len(l1), len(l2)) + + # check each key + for i in range(len(l1)): + v1 = l1[i] + v2 = l2[i] + if isinstance(v1, dict): + self.assertDictAlmostEqual(v1, v2, msg=msg, places=places) + elif isinstance(v1, list): + self.assertListAlmostEqual(v1, v2, msg=msg, places=places) + else: + self.assertAlmostEqual(v1, v2, places=places, msg=msg) + + def assertFileContentsEqual(self, f1, f2): + with open(f1, newline=None) as f1_o: # newline=None enables universal line endings which is required by Windows + with open(f2, newline=None) as f2_o: + f1_lines = f1_o.readlines() + f2_lines = f2_o.readlines() + self.assertListEqual(f1_lines, f2_lines) diff --git a/tests/error-code-5500.txt b/tests/error-code-5500.txt new file mode 100644 index 00000000..cbb7915d --- /dev/null +++ b/tests/error-code-5500.txt @@ -0,0 +1,22 @@ +Is AGS, True +Closed-loop Configuration, 1 +End-Use Option, 1 +Heat Transfer Fluid, 2 +Number of Production Wells, 1 +Number of Injection Wells, 0 +All-in Vertical Drilling Costs, 1000 +All-in Nonvertical Drilling Costs, 1000 +Production Flow Rate per Well, 40 +Gradient 1, 60 +Total Nonvertical Length, 1000 +Production Well Diameter, 8.5 +Injection Temperature, 60 +Plant Lifetime, 40 +Ambient Temperature, 20 +Electricity Rate, 0.1 +Circulation Pump Efficiency, 0.8 +CO2 Turbine Outlet Pressure, 200 +Economic Model, 4 +Reservoir Stimulation Capital Cost, 0 +Exploration Capital Cost, 0 +Print Output to Console, 1 diff --git a/tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_sCO2_heatV3_output.txt b/tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_sCO2_heat.out similarity index 100% rename from tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_sCO2_heatV3_output.txt rename to tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_sCO2_heat.out diff --git a/tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_water_heatV3_output.txt b/tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_water_heat.out similarity index 100% rename from tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_water_heatV3_output.txt rename to tests/examples/Beckers_et_al_2023_Tabulated_Database_Coaxial_water_heat.out diff --git a/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_elecV3_output.txt b/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_elec.out similarity index 100% rename from tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_elecV3_output.txt rename to tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_elec.out diff --git a/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_heatV3_output.txt b/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_heat.out similarity index 100% rename from tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_heatV3_output.txt rename to tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_sCO2_heat.out diff --git a/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_elecV3_output.txt b/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_elec.out similarity index 100% rename from tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_elecV3_output.txt rename to tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_elec.out diff --git a/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_heatV3_output.txt b/tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_heat.out similarity index 100% rename from tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_heatV3_output.txt rename to tests/examples/Beckers_et_al_2023_Tabulated_Database_Uloop_water_heat.out diff --git a/tests/examples/FIXME_example12_DHV3_output.txt b/tests/examples/FIXME_example12_DH.out similarity index 100% rename from tests/examples/FIXME_example12_DHV3_output.txt rename to tests/examples/FIXME_example12_DH.out diff --git a/tests/examples/example1_outputunitsV3_output.txt b/tests/examples/FIXME_example1_outputunits.out similarity index 100% rename from tests/examples/example1_outputunitsV3_output.txt rename to tests/examples/FIXME_example1_outputunits.out diff --git a/tests/examples/example1_outputunits.txt b/tests/examples/FIXME_example1_outputunits.txt similarity index 100% rename from tests/examples/example1_outputunits.txt rename to tests/examples/FIXME_example1_outputunits.txt diff --git a/tests/examples/HIPexample1_output.txt b/tests/examples/HIPexample1.out similarity index 86% rename from tests/examples/HIPexample1_output.txt rename to tests/examples/HIPexample1.out index e2bdf3f7..e49642ee 100644 --- a/tests/examples/HIPexample1_output.txt +++ b/tests/examples/HIPexample1.out @@ -12,5 +12,5 @@ Wellhead Heat: 8.19e+14 kJ Recovery Factor: 11.04 % Available Heat: 1.44e+13 kJ - Produceable Heat: 5.75e+12 kJ - Produceable Electricity: 182.47 MW + Producible Heat: 5.75e+12 kJ + Producible Electricity: 182.47 MW diff --git a/tests/examples/S-DAC-GTV3_output.txt b/tests/examples/S-DAC-GT.out similarity index 100% rename from tests/examples/S-DAC-GTV3_output.txt rename to tests/examples/S-DAC-GT.out diff --git a/tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_RecoveryV3_output.txt b/tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_Recovery.out similarity index 100% rename from tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_RecoveryV3_output.txt rename to tests/examples/Wanju_Yuan_Closed-Loop_Geothermal_Energy_Recovery.out diff --git a/tests/examples/example1V3_output.txt b/tests/examples/example1.out similarity index 100% rename from tests/examples/example1V3_output.txt rename to tests/examples/example1.out diff --git a/tests/examples/example10_HPV3_output.txt b/tests/examples/example10_HP.out similarity index 100% rename from tests/examples/example10_HPV3_output.txt rename to tests/examples/example10_HP.out diff --git a/tests/examples/example11_ACV3_output.txt b/tests/examples/example11_AC.out similarity index 100% rename from tests/examples/example11_ACV3_output.txt rename to tests/examples/example11_AC.out diff --git a/tests/examples/FIXME_example1_addonsV3_output.txt b/tests/examples/example1_addons.out similarity index 66% rename from tests/examples/FIXME_example1_addonsV3_output.txt rename to tests/examples/example1_addons.out index d5a51b8b..6218ee06 100644 --- a/tests/examples/FIXME_example1_addonsV3_output.txt +++ b/tests/examples/example1_addons.out @@ -6,15 +6,15 @@ Simulation Metadata ---------------------- GEOPHIRES Version: 3.0 GEOPHIRES Build Date: 2022-06-30 - Simulation Date: 2023-09-29 - Simulation Time: 20:58 - Calculation Time: 13.943 sec + Simulation Date: 2023-10-12 + Simulation Time: 09:27 + Calculation Time: 2.207 sec ***SUMMARY OF RESULTS*** End-Use Option: Electricity Average Net Electricity Production: 5.39 MW - Electricity breakeven price: 1.46 cents/kWh + Electricity breakeven price: 1.74 cents/kWh Number of production wells: 2 Number of injection wells: 2 Flowrate per production well: 55.0 kg/sec @@ -29,10 +29,10 @@ Simulation Metadata Accrued financing during construction: 0.00 Project lifetime: 30 yr Capacity factor: 90.0 % - Project NPV: 51.70 MUSD - Project IRR: 0.18 % - Project VIR=PI=PIR: 2.77 - Project MOIC: 42.84 + Project NPV: 49.60 MUSD + Project IRR: 0.17 % + Project VIR=PI=PIR: 2.60 + Project MOIC: 24.83 ***ENGINEERING PARAMETERS*** @@ -45,8 +45,8 @@ Simulation Metadata Production Wellbore heat transmission calculated with Ramey's model Average production well temperature drop: 2.9 degC Flowrate per production well: 55.0 kg/sec - Injection well casing ID: 7.000 in - Production well casing ID: 7.000 in + Injection well casing ID: 0.005 meter + Production well casing ID: 0.005 meter Number of times redrilling: 0 Power plant type: Supercritical ORC @@ -94,20 +94,20 @@ Simulation Metadata Drilling and completion costs: 21.95 MUSD Drilling and completion costs per well: 5.49 MUSD Stimulation costs: 3.02 MUSD - Surface power plant costs: 18.92 MUSD + Surface power plant costs: 20.81 MUSD Field gathering system costs: 2.31 MUSD - Total surface equipment costs: 21.23 MUSD + Total surface equipment costs: 23.12 MUSD Exploration costs: 5.33 MUSD - Total capital costs: 29.19 MUSD - Annualized capital costs: 1.46 MUSD + Total capital costs: 31.08 MUSD + Annualized capital costs: 1.55 MUSD ***OPERATING AND MAINTENANCE COSTS (M$/yr)*** Wellfield maintenance costs: 0.44 MUSD/yr - Power plant maintenance costs: 0.87 MUSD/yr + Power plant maintenance costs: 0.90 MUSD/yr Water costs: 0.06 MUSD/yr - Total operating and maintenance costs: -0.84 MUSD/yr + Total operating and maintenance costs: -0.82 MUSD/yr ***SURFACE EQUIPMENT SIMULATION RESULTS*** @@ -121,52 +121,52 @@ Simulation Metadata Average Net Electricity Generation: 5.39 MW Minimum Net Electricity Generation: 5.22 MW Initial Net Electricity Generation: 5.22 MW - Average Annual Total Electricity Generation: 43.89 GWh - Average Annual Net Electricity Generation: 42.28 GWh + Average Annual Total Electricity Generation: 44.13 GWh + Average Annual Net Electricity Generation: 42.52 GWh Initial pumping power/net installed power: 100.00 % Average Pumping Power: 0.20 MW - ****************************** - * POWER GENERATION PROFILE * - ****************************** + ************************************************************ + * HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ************************************************************ YEAR THERMAL GEOFLUID PUMP NET FIRST LAW DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY (degC) (MW) (MW) (%) - 1 1.0000 165.41 0.2066 5.2226 9.7429 - 2 1.0056 166.33 0.2055 5.3142 9.8355 - 3 1.0071 166.59 0.2053 5.3407 9.8621 - 4 1.0080 166.73 0.2051 5.3545 9.8759 - 5 1.0085 166.82 0.2050 5.3636 9.8851 - 6 1.0089 166.89 0.2049 5.3703 9.8918 - 7 1.0093 166.94 0.2049 5.3757 9.8971 - 8 1.0095 166.98 0.2048 5.3800 9.9015 - 9 1.0097 167.02 0.2048 5.3837 9.9051 - 10 1.0099 167.05 0.2047 5.3868 9.9083 - 11 1.0101 167.08 0.2047 5.3896 9.9111 - 12 1.0102 167.10 0.2047 5.3921 9.9135 - 13 1.0104 167.13 0.2047 5.3943 9.9158 - 14 1.0105 167.15 0.2046 5.3963 9.9178 - 15 1.0106 167.16 0.2046 5.3982 9.9196 - 16 1.0107 167.18 0.2046 5.3999 9.9213 - 17 1.0108 167.20 0.2046 5.4014 9.9228 - 18 1.0109 167.21 0.2046 5.4029 9.9243 - 19 1.0110 167.22 0.2045 5.4042 9.9256 - 20 1.0110 167.24 0.2045 5.4055 9.9269 - 21 1.0111 167.25 0.2045 5.4067 9.9281 - 22 1.0112 167.26 0.2045 5.4078 9.9292 - 23 1.0112 167.27 0.2045 5.4089 9.9303 - 24 1.0113 167.28 0.2045 5.4099 9.9313 - 25 1.0114 167.29 0.2045 5.4108 9.9322 - 26 1.0114 167.30 0.2045 5.4117 9.9331 - 27 1.0115 167.31 0.2045 5.4126 9.9340 - 28 1.0115 167.32 0.2044 5.4134 9.9348 - 29 1.0116 167.32 0.2044 5.4142 9.9356 - 30 1.0116 167.33 0.2044 5.4149 9.9363 - - - *************************************************************** - * HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE * - *************************************************************** + 1 1.0000 165.41 0.2066 5.2223 9.7425 + 2 1.0056 166.33 0.2055 5.3140 9.8353 + 3 1.0072 166.59 0.2053 5.3405 9.8619 + 4 1.0080 166.73 0.2051 5.3543 9.8757 + 5 1.0085 166.82 0.2050 5.3634 9.8849 + 6 1.0089 166.89 0.2049 5.3702 9.8916 + 7 1.0093 166.94 0.2049 5.3755 9.8970 + 8 1.0095 166.98 0.2048 5.3799 9.9013 + 9 1.0097 167.02 0.2048 5.3835 9.9050 + 10 1.0099 167.05 0.2047 5.3867 9.9082 + 11 1.0101 167.08 0.2047 5.3895 9.9109 + 12 1.0103 167.10 0.2047 5.3920 9.9134 + 13 1.0104 167.12 0.2047 5.3942 9.9156 + 14 1.0105 167.14 0.2046 5.3962 9.9176 + 15 1.0106 167.16 0.2046 5.3980 9.9195 + 16 1.0107 167.18 0.2046 5.3997 9.9211 + 17 1.0108 167.20 0.2046 5.4013 9.9227 + 18 1.0109 167.21 0.2046 5.4027 9.9242 + 19 1.0110 167.22 0.2045 5.4041 9.9255 + 20 1.0111 167.24 0.2045 5.4054 9.9268 + 21 1.0111 167.25 0.2045 5.4066 9.9280 + 22 1.0112 167.26 0.2045 5.4077 9.9291 + 23 1.0113 167.27 0.2045 5.4088 9.9301 + 24 1.0113 167.28 0.2045 5.4098 9.9312 + 25 1.0114 167.29 0.2045 5.4107 9.9321 + 26 1.0114 167.30 0.2045 5.4116 9.9330 + 27 1.0115 167.31 0.2045 5.4125 9.9339 + 28 1.0115 167.31 0.2044 5.4133 9.9347 + 29 1.0116 167.32 0.2044 5.4141 9.9354 + 30 1.0116 167.33 0.2044 5.4148 9.9362 + + + ******************************************************************* + * ANNUAL HEATING, COOLING AND/OR ELECTRICITY PRODUCTION PROFILE * + ******************************************************************* YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED (GWh/year) (GWh/year) (10^15 J) (%) @@ -195,31 +195,31 @@ Simulation Metadata 23 42.7 429.4 288.52 10.95 24 42.7 429.5 286.98 11.43 25 42.7 429.5 285.43 11.90 - 26 42.7 429.6 283.88 12.38 + 26 42.7 429.5 283.88 12.38 27 42.7 429.6 282.34 12.86 28 42.7 429.6 280.79 13.34 29 42.7 429.6 279.24 13.81 - 30 35.6 358.1 277.95 14.21 + 30 42.7 429.7 277.70 14.29 ***EXTENDED ECONOMICS*** - Adjusted Project LCOE (after incentives, grants, AddOns,etc): 1.46 cents/kWh + Adjusted Project LCOE (after incentives, grants, AddOns,etc): 1.74 cents/kWh Adjusted Project LCOH (after incentives, grants, AddOns,etc): 0.00 USD/MMBTU - Adjusted Project CAPEX (after incentives, grants, AddOns, etc): 99.19 MUSD - Adjusted Project OPEX (after incentives, grants, AddOns, etc): 0.86 MUSD - Project NPV (including AddOns): -2.98 MUSD + Adjusted Project CAPEX (after incentives, grants, AddOns, etc): 101.08 MUSD + Adjusted Project OPEX (after incentives, grants, AddOns, etc): 0.88 MUSD + Project NPV (including AddOns): -5.08 MUSD Project IRR (including AddOns): 0.06 % - Project VIR=PI=PIR (including AddOns): 0.97 - Project MOIC (including AddOns): 1.04 - Project Payback Period (including AddOns): 15.33 yr + Project VIR=PI=PIR (including AddOns): 0.95 + Project MOIC (including AddOns): 1.01 + Project Payback Period (including AddOns): 15.61 yr Total Add-on CAPEX: 70.00 MUSD Total Add-on OPEX: 1.70 MUSD/yr Total Add-on Net Elec: 25900.00 kW/yr Total Add-on Net Heat: 0.00 kW/yr Total Add-on Profit: 2.84 MUSD/yr - AddOns Payback Period: -1.00 yr + AddOns Payback Period: 0.00 yr ******************************* @@ -228,48 +228,48 @@ Simulation Metadata Year Electricity Heat Add-on Annual AddOn Cumm. AddOn Annual Project Cumm. Project Since Price Revenue Price Revenue Revenue Cash Flow Cash Flow Cash Flow Cash Flow Start (cents/kWh)(MUSD/yr) (cents/kWh)(MUSD/yr) (MUSD/yr) (MUSD/yr) (MUSD) (MUSD/yr) (MUSD) - 1 -70.00 -70.00 -99.19 -99.19 - 2 0.090 0.0023 0.012 0.0000 1.14 -70.00 -70.00 -99.19 -99.19 - 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -68.86 5.73 -93.46 - 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -67.72 5.77 -87.70 - 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -66.59 5.78 -81.92 - 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -65.45 5.79 -76.13 - 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -64.31 5.79 -70.34 - 2 0.102 0.0026 0.012 0.0000 1.14 1.14 -63.17 5.80 -64.54 - 2 0.114 0.0030 0.012 0.0000 1.14 1.14 -62.03 6.31 -58.23 - 2 0.126 0.0033 0.022 0.0000 1.14 1.14 -60.89 6.82 -51.41 - 2 0.138 0.0036 0.032 0.0000 1.14 1.14 -59.75 7.34 -44.07 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -58.61 7.85 -36.22 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -57.47 8.36 -27.86 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -56.33 8.37 -19.50 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -55.19 8.37 -11.13 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -54.05 8.37 -2.76 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -52.91 8.37 5.62 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -51.77 8.37 13.99 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -50.63 8.38 22.37 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -49.49 8.38 30.74 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -48.35 8.38 39.12 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -47.21 8.38 47.50 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -46.07 8.38 55.89 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -44.93 8.38 64.27 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -43.80 8.38 72.65 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -42.66 8.39 81.04 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -41.52 8.39 89.43 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -40.38 8.39 97.82 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -39.24 8.39 106.20 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -38.10 8.39 114.59 - 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -36.96 8.39 122.99 + 1 -70.00 -70.00 -101.08 -101.08 + 2 0.090 0.0023 0.012 0.0000 1.14 -70.00 -70.00 -101.08 -101.08 + 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -68.86 5.70 -95.39 + 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -67.72 5.74 -89.65 + 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -66.59 5.75 -83.90 + 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -65.45 5.76 -78.14 + 2 0.090 0.0023 0.012 0.0000 1.14 1.14 -64.31 5.76 -72.37 + 2 0.102 0.0026 0.012 0.0000 1.14 1.14 -63.17 5.77 -66.61 + 2 0.114 0.0030 0.012 0.0000 1.14 1.14 -62.03 6.28 -60.32 + 2 0.126 0.0033 0.022 0.0000 1.14 1.14 -60.89 6.79 -53.53 + 2 0.138 0.0036 0.032 0.0000 1.14 1.14 -59.75 7.31 -46.22 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -58.61 7.82 -38.40 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -57.47 8.33 -30.07 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -56.33 8.34 -21.73 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -55.19 8.34 -13.39 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -54.05 8.34 -5.05 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -52.91 8.34 3.30 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -51.77 8.35 11.64 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -50.63 8.35 19.99 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -49.49 8.35 28.34 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -48.35 8.35 36.69 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -47.21 8.35 45.04 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -46.07 8.35 53.40 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -44.93 8.36 61.75 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -43.80 8.36 70.11 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -42.66 8.36 78.46 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -41.52 8.36 86.82 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -40.38 8.36 95.18 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -39.24 8.36 103.54 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -38.10 8.36 111.90 + 2 0.150 0.0039 0.036 0.0000 1.14 1.14 -36.96 8.36 120.27 ***CCUS ECONOMICS*** - Total Avoided Carbon Production: 1040122570.87 pound - Project NPV (including carbon credit): 77.52 MUSD - Project IRR (including carbon credit): 0.21 % - Project VIR=IR=PIR (including carbon credit): 3.66 - Project MOIC (including carbon credit): 62.28 - Project Payback Period (including carbon credit): 6.66 yr + Total Avoided Carbon Production: 1045929390.59 pound + Project NPV (including carbon credit): 75.51 MUSD + Project IRR (including carbon credit): 0.20 % + Project VIR=IR=PIR (including carbon credit): 3.43 + Project MOIC (including carbon credit): 36.30 + Project Payback Period (including carbon credit): 7.05 yr ****************** @@ -278,34 +278,34 @@ Start (cents/kWh)(MUSD/yr) (cents/kWh)(MUSD/yr) (MUSD/yr) (MUSD/yr) (MUSD Year Carbon CCUS CCUS Annual CCUS Cumm. Project Annual Project Cumm. Since Avoided Price Revenue Cash Flow Cash Flow Cash Flow Cash Flow Start (pound) (USD/lb) (MUSD/yr) (MUSD/yr) (MUSD) (MUSD/yr) (MUSD) - 1 -29.19 -29.19 - 2 34113562.180 0.015 0.51 0.51 0.51 5.10 -24.09 - 3 34474059.271 0.015 0.52 0.52 1.03 5.14 -18.95 - 4 34596080.667 0.015 0.52 0.52 1.55 5.16 -13.79 - 5 34668346.318 0.015 0.52 0.52 2.07 5.17 -8.62 - 6 34719002.258 0.015 0.52 0.52 2.59 5.18 -3.44 - 7 34757647.146 0.015 0.52 0.52 3.11 5.18 1.74 - 8 34788692.154 0.025 0.87 0.87 3.98 6.04 7.78 - 9 34814519.695 0.035 1.22 1.22 5.20 6.90 14.68 - 10 34836557.241 0.045 1.57 1.57 6.77 7.76 22.45 - 11 34855724.919 0.055 1.92 1.92 8.68 8.63 31.07 - 12 34872649.019 0.065 2.27 2.27 10.95 9.49 40.56 - 13 34887774.223 0.075 2.62 2.62 13.57 9.84 50.40 - 14 34901427.119 0.085 2.97 2.97 16.53 10.19 60.60 - 15 34913854.281 0.095 3.32 3.32 19.85 10.55 71.15 - 16 34925246.212 0.100 3.49 3.49 23.34 10.73 81.87 - 17 34935752.969 0.100 3.49 3.49 26.84 10.73 92.60 - 18 34945494.698 0.100 3.49 3.49 30.33 10.73 103.33 - 19 34954568.907 0.100 3.50 3.50 33.83 10.73 114.06 - 20 34963055.584 0.100 3.50 3.50 37.32 10.74 124.80 - 21 34971020.856 0.100 3.50 3.50 40.82 10.74 135.54 - 22 34978519.617 0.100 3.50 3.50 44.32 10.74 146.28 - 23 34985597.433 0.100 3.50 3.50 47.82 10.74 157.02 - 24 34992291.926 0.100 3.50 3.50 51.31 10.74 167.76 - 25 34998633.780 0.100 3.50 3.50 54.81 10.75 178.51 - 26 35004647.474 0.100 3.50 3.50 58.32 10.75 189.26 - 27 35010351.830 0.100 3.50 3.50 61.82 10.75 200.01 - 28 35015760.414 0.100 3.50 3.50 65.32 10.75 210.76 - 29 35020881.842 0.100 3.50 3.50 68.82 10.75 221.51 - 30 35025720.017 0.100 3.50 3.50 72.32 10.75 232.26 - 31 29195130.824 0.100 2.92 2.92 75.24 9.10 241.37 + 1 -31.08 -31.08 + 2 34111730.026 0.015 0.51 0.51 0.51 5.07 -26.01 + 3 34472696.061 0.015 0.52 0.52 1.03 5.12 -20.90 + 4 34594857.936 0.015 0.52 0.52 1.55 5.13 -15.76 + 5 34667203.032 0.015 0.52 0.52 2.07 5.14 -10.62 + 6 34717913.040 0.015 0.52 0.52 2.59 5.15 -5.48 + 7 34756598.286 0.015 0.52 0.52 3.11 5.15 -0.33 + 8 34787675.160 0.025 0.87 0.87 3.98 6.01 5.69 + 9 34813528.834 0.035 1.22 1.22 5.20 6.87 12.56 + 10 34835588.409 0.045 1.57 1.57 6.77 7.74 20.30 + 11 34854775.046 0.055 1.92 1.92 8.68 8.60 28.89 + 12 34871715.729 0.065 2.27 2.27 10.95 9.46 38.36 + 13 34886855.631 0.075 2.62 2.62 13.57 9.81 48.17 + 14 34900521.692 0.085 2.97 2.97 16.53 10.17 58.34 + 15 34912960.757 0.095 3.32 3.32 19.85 10.52 68.85 + 16 34924363.532 0.100 3.49 3.49 23.34 10.70 79.55 + 17 34934880.239 0.100 3.49 3.49 26.83 10.70 90.25 + 18 34944631.163 0.100 3.49 3.49 30.33 10.70 100.95 + 19 34953713.933 0.100 3.50 3.50 33.82 10.70 111.66 + 20 34962208.662 0.100 3.50 3.50 37.32 10.71 122.36 + 21 34970181.608 0.100 3.50 3.50 40.82 10.71 133.07 + 22 34977687.818 0.100 3.50 3.50 44.32 10.71 143.79 + 23 34984773.045 0.100 3.50 3.50 47.81 10.71 154.50 + 24 34991475.140 0.100 3.50 3.50 51.31 10.72 165.21 + 25 34997825.066 0.100 3.50 3.50 54.81 10.72 175.93 + 26 35003847.644 0.100 3.50 3.50 58.31 10.72 186.65 + 27 35009562.099 0.100 3.50 3.50 61.81 10.72 197.37 + 28 35014982.470 0.100 3.50 3.50 65.32 10.72 208.09 + 29 35020117.916 0.100 3.50 3.50 68.82 10.72 218.82 + 30 35024972.957 0.100 3.50 3.50 72.32 10.72 229.54 + 31 35029547.662 0.100 3.50 3.50 75.82 10.73 240.27 diff --git a/tests/examples/FIXME_example1_addons.txt b/tests/examples/example1_addons.txt similarity index 100% rename from tests/examples/FIXME_example1_addons.txt rename to tests/examples/example1_addons.txt diff --git a/tests/examples/example2V3_output.txt b/tests/examples/example2.out similarity index 100% rename from tests/examples/example2V3_output.txt rename to tests/examples/example2.out diff --git a/tests/examples/example3V3_output.txt b/tests/examples/example3.out similarity index 100% rename from tests/examples/example3V3_output.txt rename to tests/examples/example3.out diff --git a/tests/examples/example4V3_output.txt b/tests/examples/example4.out similarity index 100% rename from tests/examples/example4V3_output.txt rename to tests/examples/example4.out diff --git a/tests/examples/example5V3_output.txt b/tests/examples/example5.out similarity index 100% rename from tests/examples/example5V3_output.txt rename to tests/examples/example5.out diff --git a/tests/examples/example8V3_output.txt b/tests/examples/example8.out similarity index 100% rename from tests/examples/example8V3_output.txt rename to tests/examples/example8.out diff --git a/tests/examples/example9V3_output.txt b/tests/examples/example9.out similarity index 100% rename from tests/examples/example9V3_output.txt rename to tests/examples/example9.out diff --git a/tests/geophires-result_example-5.out b/tests/geophires-result_example-5.out new file mode 100644 index 00000000..1caabab3 --- /dev/null +++ b/tests/geophires-result_example-5.out @@ -0,0 +1,133 @@ + ***************** + ***CASE REPORT*** + ***************** + +Simulation Metadata +---------------------- + GEOPHIRES Version: 3.0 + GEOPHIRES Build Date: 2022-06-30 + Simulation Date: 2023-09-28 + Simulation Time: 17:14 + Calculation Time: 7.460 sec + + + ***AGS/CLGS STYLE OUTPUT*** + +### Configuration ### + End-Use: Electricity + Fluid: sCO2 + Design: utube + Flow rate: 40.0 kg/sec + Lateral Length: 9000 meter + Vertical Depth: 3000 meter + Geothermal Gradient: 0.0600 degC/m + Wellbore Diameter: 8.5000 in + Injection Temperature: 60.0 degC + Thermal Conductivity: 3.00 watt/m/kelvin + ### Reservoir Simulation Results ### + Average Production Temperature: 96.1 degC + Average Production Pressure: 234.2 bar + Average Heat Production: 3060.6 kW + First Year Heat Production: 33399.7 kWh + Average Net Electricity Production: 201.2 kW + First Year Electricity Production: 2410.5 kWh + ### Cost Results ### + Total CAPEX: 15.9 MUSD + Drilling Cost: 15.0 MUSD + Surface Plant Cost: 0.9 MUSD + OPEX: 13.2 KUSD/yr + LCOE: 601.4 USD/MWh + + ****************************** + * POWER GENERATION PROFILE * + ****************************** + YEAR THERMAL GEOFLUID PUMP NET FIRST LAW + DRAWDOWN TEMPERATURE POWER POWER EFFICIENCY + (degC) (MW) (MW) (%) + 1 1.0000 108.39 0.0000 0.2930 9.5729 + 2 0.9536 108.39 0.0000 0.2930 9.5729 + 3 0.9332 105.79 0.0000 0.2729 8.9163 + 4 0.9222 104.35 0.0000 0.2620 8.5597 + 5 0.9148 103.36 0.0000 0.2550 8.3317 + 6 0.9093 102.62 0.0000 0.2497 8.1597 + 7 0.9048 102.04 0.0000 0.2453 8.0153 + 8 0.9012 101.56 0.0000 0.2416 7.8931 + 9 0.8981 101.15 0.0000 0.2384 7.7891 + 10 0.8954 100.80 0.0000 0.2356 7.6992 + 11 0.8930 100.49 0.0000 0.2332 7.6199 + 12 0.8909 100.21 0.0000 0.2310 7.5489 + 13 0.8890 99.96 0.0000 0.2291 7.4863 + 14 0.8872 99.74 0.0000 0.2276 7.4355 + 15 0.8856 99.53 0.0000 0.2261 7.3889 + 16 0.8842 99.34 0.0000 0.2248 7.3460 + 17 0.8828 99.16 0.0000 0.2236 7.3062 + 18 0.8815 98.99 0.0000 0.2225 7.2690 + 19 0.8803 98.84 0.0000 0.2214 7.2343 + 20 0.8792 98.69 0.0000 0.2204 7.2016 + 21 0.8781 98.56 0.0000 0.2195 7.1708 + 22 0.8771 98.43 0.0000 0.2186 7.1417 + 23 0.8762 98.31 0.0000 0.2177 7.1141 + 24 0.8753 98.19 0.0000 0.2169 7.0867 + 25 0.8744 98.08 0.0000 0.2161 7.0601 + 26 0.8736 97.97 0.0000 0.2153 7.0346 + 27 0.8728 97.87 0.0000 0.2146 7.0102 + 28 0.8721 97.78 0.0000 0.2138 6.9869 + 29 0.8713 97.68 0.0000 0.2132 6.9645 + 30 0.8707 97.59 0.0000 0.2125 6.9429 + 31 0.8700 97.51 0.0000 0.2119 6.9222 + 32 0.8693 97.43 0.0000 0.2112 6.9023 + 33 0.8687 97.35 0.0000 0.2107 6.8830 + 34 0.8681 97.27 0.0000 0.2101 6.8644 + 35 0.8675 97.20 0.0000 0.2095 6.8464 + 36 0.8670 97.12 0.0000 0.2090 6.8290 + 37 0.8664 97.05 0.0000 0.2085 6.8122 + 38 0.8659 96.99 0.0000 0.2080 6.7959 + 39 0.8654 96.92 0.0000 0.2075 6.7800 + 40 0.8649 96.86 0.0000 0.2070 6.7646 + + *************************************************************** + * HEAT AND/OR ELECTRICITY EXTRACTION AND GENERATION PROFILE * + *************************************************************** + YEAR ELECTRICITY HEAT RESERVOIR PERCENTAGE OF + PROVIDED EXTRACTED HEAT CONTENT TOTAL HEAT MINED + (GWh/year) (GWh/year) (10^15 J) (%) + 1 2.6 30.1 3.68 2.86 + 2 2.6 27.8 3.58 5.49 + 3 2.4 26.8 3.49 8.04 + 4 2.3 26.2 3.39 10.53 + 5 2.2 25.8 3.30 12.98 + 6 2.2 25.5 3.21 15.40 + 7 2.1 25.2 3.12 17.80 + 8 2.1 25.0 3.03 20.18 + 9 2.1 24.8 2.94 22.53 + 10 2.1 24.7 2.85 24.88 + 11 2.0 24.5 2.76 27.20 + 12 2.0 24.4 2.67 29.52 + 13 2.0 24.3 2.58 31.82 + 14 2.0 24.2 2.50 34.12 + 15 2.0 24.1 2.41 36.40 + 16 2.0 24.0 2.32 38.68 + 17 2.0 23.9 2.24 40.95 + 18 1.9 23.8 2.15 43.21 + 19 1.9 23.7 2.07 45.46 + 20 1.9 23.7 1.98 47.70 + 21 1.9 23.6 1.90 49.94 + 22 1.9 23.5 1.81 52.18 + 23 1.9 23.5 1.73 54.40 + 24 1.9 23.4 1.64 56.63 + 25 1.9 23.3 1.56 58.84 + 26 1.9 23.3 1.48 61.05 + 27 1.9 23.2 1.39 63.26 + 28 1.9 23.2 1.31 65.46 + 29 1.9 23.1 1.23 67.66 + 30 1.9 23.1 1.14 69.85 + 31 1.9 23.1 1.06 72.04 + 32 1.9 23.0 0.98 74.23 + 33 1.8 23.0 0.89 76.41 + 34 1.8 22.9 0.81 78.58 + 35 1.8 22.9 0.73 80.76 + 36 1.8 22.9 0.65 82.93 + 37 1.8 22.8 0.57 85.09 + 38 1.8 22.8 0.48 87.26 + 39 1.8 22.8 0.40 89.42 + 40 1.8 22.7 0.32 91.57 diff --git a/tests/test_HIP_RA.py b/tests/test_HIP_RA.py index d22b4192..2f51dc10 100644 --- a/tests/test_HIP_RA.py +++ b/tests/test_HIP_RA.py @@ -1,34 +1,25 @@ -import os.path -import sys -import unittest from pathlib import Path -from geophires_x import HIP_RA +from hip_ra import HipRaClient +from hip_ra import HipRaInputParameters +from tests.base_test_case import BaseTestCase # noinspection PyTypeChecker -class HIP_RATestCase(unittest.TestCase): - maxDiff = None - +class HIP_RATestCase(BaseTestCase): def test_HIP_RA_examples(self): example_files = self._list_test_files_dir(test_files_dir='examples') - def get_output_file_for_example(example_file: str): - return self._get_test_file_path(Path('examples', f'{example_file.split(".txt")[0].capitalize()}V3_output.txt')) + client = HipRaClient() + + def get_output_file_for_example(example_file: Path): + return self._get_test_file_path(Path(example_file).with_suffix('.out')) for example_file_path in example_files: - if example_file_path.startswith('HIPexample') and '_output' not in example_file_path: + if example_file_path.startswith('HIPexample') and '.out' not in example_file_path: with self.subTest(msg=example_file_path): input_file_path = self._get_test_file_path(Path('examples', example_file_path)) - sys.argv = ['', input_file_path] - HIP_RA.main() - - def _get_test_file_path(self, test_file_name): - return os.path.join(os.path.abspath(os.path.dirname(__file__)), test_file_name) - - def _get_test_file_content(self, test_file_name): - with open(self._get_test_file_path(test_file_name)) as f: - return f.readlines() + result = client.get_hip_ra_result(HipRaInputParameters(input_file_path)) - def _list_test_files_dir(self, test_files_dir: str): - return os.listdir(self._get_test_file_path(test_files_dir)) + assert result is not None + self.assertFileContentsEqual(get_output_file_for_example(input_file_path), result.output_file_path) diff --git a/tests/test_geophires_x.py b/tests/test_geophires_x.py index 0e5014b1..36308fd9 100644 --- a/tests/test_geophires_x.py +++ b/tests/test_geophires_x.py @@ -1,18 +1,16 @@ -import os.path -import unittest from pathlib import Path +from geophires_x.OptionList import EndUseOptions from geophires_x_client import GeophiresXClient from geophires_x_client import GeophiresXResult from geophires_x_client import _get_logger from geophires_x_client.geophires_input_parameters import EndUseOption from geophires_x_client.geophires_input_parameters import GeophiresInputParameters +from tests.base_test_case import BaseTestCase # noinspection PyTypeChecker -class GeophiresXTestCase(unittest.TestCase): - maxDiff = None - +class GeophiresXTestCase(BaseTestCase): def test_geophires_x_end_use_direct_use_heat(self): client = GeophiresXClient() result = client.get_geophires_result( @@ -135,117 +133,67 @@ def test_reservoir_model_2(self): assert result is not None - def test_geophires_x_result_1(self): - test_result_path = self._get_test_file_path('geophires-result_example-1.out') - - result = GeophiresXResult(test_result_path) - - assert result is not None - - expected_price = 7.06 - - assert result.direct_use_heat_breakeven_price_USD_per_MMBTU == expected_price - assert result.result['SUMMARY OF RESULTS']['Direct-Use heat breakeven price']['value'] == expected_price - assert result.result['SUMMARY OF RESULTS']['Direct-Use heat breakeven price']['unit'] == 'USD/MMBTU' - - def test_geophires_x_result_2(self): - test_result_path = self._get_test_file_path('geophires-result_example-2.out') - result = GeophiresXResult(test_result_path) - - assert result is not None - assert result.direct_use_heat_breakeven_price_USD_per_MMBTU is None - assert result.result['SUMMARY OF RESULTS']['Average Net Electricity Production']['value'] == 5.39 - - def test_geophires_x_result_4(self): - test_result_path = self._get_test_file_path('geophires-result_example-4.out') - result = GeophiresXResult(test_result_path) - - assert result is not None - assert result.result['SUMMARY OF RESULTS']['Annual District Heating Demand']['value'] == 242.90 - assert result.result['SUMMARY OF RESULTS']['Annual District Heating Demand']['unit'] == 'GWh/year' - - assert result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Annual District Heating O&M Cost']['value'] == 0.39 - assert result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Annual District Heating O&M Cost']['unit'] == 'MUSD/yr' - - assert result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Average Annual Peaking Fuel Cost']['value'] == 3.01 - assert result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Average Annual Peaking Fuel Cost']['unit'] == 'MUSD/yr' - - def test_geophires_x_result_generation_profiles(self): - test_result_path = self._get_test_file_path('geophires-result_example-3.out') - result = GeophiresXResult(test_result_path) - - assert result.power_generation_profile is not None - assert len(result.power_generation_profile) == 36 - assert result.power_generation_profile[0] == [ - 'YEAR', - 'THERMAL DRAWDOWN', - 'GEOFLUID TEMPERATURE (deg C)', - 'PUMP POWER (MW)', - 'NET POWER (MW)', - 'NET HEAT (MW)', - 'FIRST LAW EFFICIENCY (%)', - ] - assert result.power_generation_profile[1] == [0, 1.0, 225.24, 0.1791, 20.597, 11.6711, 16.5771] - assert result.power_generation_profile[19] == [18, 0.9877, 222.47, 0.1791, 20.0002, 11.3001, 16.3717] - assert result.power_generation_profile[35] == [34, 0.9248, 208.31, 0.1791, 17.1102, 9.2569, 15.3214] - - assert result.heat_electricity_extraction_generation_profile is not None - assert len(result.heat_electricity_extraction_generation_profile) == 36 - assert result.heat_electricity_extraction_generation_profile[0] == [ - 'YEAR', - 'HEAT PROVIDED (GWh/year)', - 'ELECTRICITY PROVIDED (GWh/year)', - 'HEAT EXTRACTED (GWh/year)', - 'RESERVOIR HEAT CONTENT (10^15 J)', - 'PERCENTAGE OF TOTAL HEAT MINED (%)', - ] - assert result.heat_electricity_extraction_generation_profile[1] == [1, 93.2, 164.4, 1090.2, 80.03, 4.67] - assert result.heat_electricity_extraction_generation_profile[-1] == [35, 72.5, 134.2, 958.47, -48.48, 157.75] - def test_geophires_examples(self): + log = _get_logger() client = GeophiresXClient() example_files = self._list_test_files_dir(test_files_dir='examples') - _get_logger() def get_output_file_for_example(example_file: str): - return self._get_test_file_path(Path('examples', f'{example_file.split(".txt")[0]}V3_output.txt')) + return self._get_test_file_path(Path('examples', f'{example_file.split(".txt")[0]}.out')) for example_file_path in example_files: - if (example_file_path.startswith(('example', 'Beckers_et_al'))) and '_output' not in example_file_path: + if (example_file_path.startswith(('example', 'Beckers_et_al'))) and '.out' not in example_file_path: with self.subTest(msg=example_file_path): print(f'Running example test {example_file_path}') - input_params = GeophiresInputParameters(from_file_path=self._get_test_file_path(Path('examples', example_file_path))) + input_params = GeophiresInputParameters( + from_file_path=self._get_test_file_path(Path('examples', example_file_path)) + ) geophires_result: GeophiresXResult = client.get_geophires_result(input_params) del geophires_result.result['metadata'] expected_result: GeophiresXResult = GeophiresXResult(get_output_file_for_example(example_file_path)) del expected_result.result['metadata'] - self.assertDictEqual(geophires_result.result, expected_result.result) - - def test_input_hashing(self): - input1 = GeophiresInputParameters( - {'End-Use Option': EndUseOption.DIRECT_USE_HEAT.value, 'Gradient 1': 50, 'Maximum Temperature': 250} - ) - - input2 = GeophiresInputParameters( - {'Maximum Temperature': 250, 'End-Use Option': EndUseOption.DIRECT_USE_HEAT.value, 'Gradient 1': 50} - ) + try: + self.assertDictEqual( + geophires_result.result, expected_result.result, msg=f'Example test: {example_file_path}' + ) + except AssertionError as ae: + # Float deviation is observed across processor architecture in some test cases - see example + # https://github.com/softwareengineerprogrammer/python-geophires-x-nrel/actions/runs/6475850654/job/17588523571 + # Adding additional test cases that require this fallback should be avoided if possible. + cases_to_allow_almost_equal = [ + 'Beckers_et_al_2023_Tabulated_Database_Coaxial_water_heat.txt', + ] + if example_file_path in cases_to_allow_almost_equal: + log.warning( + f"Results aren't exactly equal in {example_file_path}, falling back to almostEqual" + ) + self.assertDictAlmostEqual( + geophires_result.result, + expected_result.result, + places=2, + msg=f'Example test: {example_file_path}', + ) + else: + raise ae + + def test_runtime_error_with_error_code(self): + client = GeophiresXClient() - assert hash(input1) == hash(input2) + with self.assertRaises(RuntimeError) as re: + # Note that error-code-5500.txt is expected to fail with error code 5500 as of the time of the writing + # of this test. If this expectation is voided by future code updates (possibly such as addressing + # https://github.com/NREL/python-geophires-x/issues/13), then error-code-5500.txt should be updated with + # different input that is still expected to result in error code 5500. + input_params = GeophiresInputParameters( + from_file_path=self._get_test_file_path(Path('error-code-5500.txt')) + ) + client.get_geophires_result(input_params) - input3 = GeophiresInputParameters( - {'Maximum Temperature': 420, 'End-Use Option': EndUseOption.DIRECT_USE_HEAT.value, 'Gradient 1': 69} + self.assertEqual( + str(re.exception), 'GEOPHIRES encountered an exception: failed with the following error codes: [5500.]' ) - assert hash(input1) != hash(input3) - - def _get_test_file_path(self, test_file_name): - return os.path.join(os.path.abspath(os.path.dirname(__file__)), test_file_name) - - def _get_test_file_content(self, test_file_name): - with open(self._get_test_file_path(test_file_name)) as f: - return f.readlines() - - def _list_test_files_dir(self, test_files_dir: str): - return os.listdir(self._get_test_file_path(test_files_dir)) + def test_RTES_name(self): + self.assertEqual(EndUseOptions.RTES.value, 'Reservoir Thermal Energy Storage') diff --git a/tests/test_geophires_x_client.py b/tests/test_geophires_x_client.py new file mode 100644 index 00000000..f2951d7b --- /dev/null +++ b/tests/test_geophires_x_client.py @@ -0,0 +1,158 @@ +from geophires_x_client import GeophiresXResult +from geophires_x_client.geophires_input_parameters import EndUseOption +from geophires_x_client.geophires_input_parameters import GeophiresInputParameters +from tests.base_test_case import BaseTestCase + + +# noinspection PyTypeChecker +class GeophiresXClientTestCase(BaseTestCase): + """ + Note that these are tests of the geophires_x_client package only and not of the core geophires_x package. + If a test calls geophires_x_client.GeophiresXClient.get_geophires_result then it belongs in + test_geophires_x.GeophiresXTestCase. + """ + + def test_geophires_x_result_1(self): + test_result_path = self._get_test_file_path('geophires-result_example-1.out') + + result = GeophiresXResult(test_result_path) + + assert result is not None + + expected_price = 7.06 + + assert result.direct_use_heat_breakeven_price_USD_per_MMBTU == expected_price + assert result.result['SUMMARY OF RESULTS']['Direct-Use heat breakeven price']['value'] == expected_price + assert result.result['SUMMARY OF RESULTS']['Direct-Use heat breakeven price']['unit'] == 'USD/MMBTU' + + def test_geophires_x_result_2(self): + test_result_path = self._get_test_file_path('geophires-result_example-2.out') + result = GeophiresXResult(test_result_path) + + assert result is not None + assert result.direct_use_heat_breakeven_price_USD_per_MMBTU is None + assert result.result['SUMMARY OF RESULTS']['Average Net Electricity Production']['value'] == 5.39 + + def test_geophires_x_result_4(self): + test_result_path = self._get_test_file_path('geophires-result_example-4.out') + result = GeophiresXResult(test_result_path) + + assert result is not None + assert result.result['SUMMARY OF RESULTS']['Annual District Heating Demand']['value'] == 242.90 + assert result.result['SUMMARY OF RESULTS']['Annual District Heating Demand']['unit'] == 'GWh/year' + + assert ( + result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Annual District Heating O&M Cost']['value'] + == 0.39 + ) + assert ( + result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Annual District Heating O&M Cost']['unit'] + == 'MUSD/yr' + ) + + assert ( + result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Average Annual Peaking Fuel Cost']['value'] + == 3.01 + ) + assert ( + result.result['OPERATING AND MAINTENANCE COSTS (M$/yr)']['Average Annual Peaking Fuel Cost']['unit'] + == 'MUSD/yr' + ) + + def test_geophires_x_result_generation_profiles(self): + test_result_path = self._get_test_file_path('geophires-result_example-3.out') + result = GeophiresXResult(test_result_path) + + assert result.power_generation_profile is not None + assert len(result.power_generation_profile) == 36 + self.assertListEqual( + result.power_generation_profile[0], + [ + 'YEAR', + 'THERMAL DRAWDOWN', + 'GEOFLUID TEMPERATURE (deg C)', + 'PUMP POWER (MW)', + 'NET POWER (MW)', + 'NET HEAT (MW)', + 'FIRST LAW EFFICIENCY (%)', + ], + ) + self.assertListEqual(result.power_generation_profile[1], [0, 1.0, 225.24, 0.1791, 20.597, 11.6711, 16.5771]) + self.assertListEqual( + result.power_generation_profile[19], [18, 0.9877, 222.47, 0.1791, 20.0002, 11.3001, 16.3717] + ) + self.assertListEqual( + result.power_generation_profile[35], [34, 0.9248, 208.31, 0.1791, 17.1102, 9.2569, 15.3214] + ) + + assert result.heat_electricity_extraction_generation_profile is not None + assert len(result.heat_electricity_extraction_generation_profile) == 36 + self.assertListEqual( + result.heat_electricity_extraction_generation_profile[0], + [ + 'YEAR', + 'HEAT PROVIDED (GWh/year)', + 'ELECTRICITY PROVIDED (GWh/year)', + 'HEAT EXTRACTED (GWh/year)', + 'RESERVOIR HEAT CONTENT (10^15 J)', + 'PERCENTAGE OF TOTAL HEAT MINED (%)', + ], + ) + self.assertListEqual( + result.heat_electricity_extraction_generation_profile[1], [1, 93.2, 164.4, 1090.2, 80.03, 4.67] + ) + self.assertListEqual( + result.heat_electricity_extraction_generation_profile[-1], [35, 72.5, 134.2, 958.47, -48.48, 157.75] + ) + + def test_ags_clgs_result_generation_profiles(self): + test_result_path = self._get_test_file_path('geophires-result_example-5.out') + result = GeophiresXResult(test_result_path) + + assert result.power_generation_profile is not None + assert len(result.power_generation_profile) == 41 + self.assertListEqual( + result.power_generation_profile[0], + [ + 'YEAR', + 'THERMAL DRAWDOWN', + 'GEOFLUID TEMPERATURE (degC)', + 'PUMP POWER (MW)', + 'NET POWER (MW)', + 'FIRST LAW EFFICIENCY (%)', + ], + ) + self.assertListEqual(result.power_generation_profile[1], [1, 1.0000, 108.39, 0.0000, 0.2930, 9.5729]) + self.assertListEqual(result.power_generation_profile[-1], [40, 0.8649, 96.86, 0.0000, 0.2070, 6.7646]) + + assert result.heat_electricity_extraction_generation_profile is not None + assert len(result.heat_electricity_extraction_generation_profile) == 41 + self.assertListEqual( + result.heat_electricity_extraction_generation_profile[0], + [ + 'YEAR', + 'ELECTRICITY PROVIDED (GWh/year)', + 'HEAT EXTRACTED (GWh/year)', + 'RESERVOIR HEAT CONTENT (10^15 J)', + 'PERCENTAGE OF TOTAL HEAT MINED (%)', + ], + ) + self.assertListEqual(result.heat_electricity_extraction_generation_profile[1], [1, 2.6, 30.1, 3.68, 2.86]) + self.assertListEqual(result.heat_electricity_extraction_generation_profile[-1], [40, 1.8, 22.7, 0.32, 91.57]) + + def test_input_hashing(self): + input1 = GeophiresInputParameters( + {'End-Use Option': EndUseOption.DIRECT_USE_HEAT.value, 'Gradient 1': 50, 'Maximum Temperature': 250} + ) + + input2 = GeophiresInputParameters( + {'Maximum Temperature': 250, 'End-Use Option': EndUseOption.DIRECT_USE_HEAT.value, 'Gradient 1': 50} + ) + + assert hash(input1) == hash(input2) + + input3 = GeophiresInputParameters( + {'Maximum Temperature': 420, 'End-Use Option': EndUseOption.DIRECT_USE_HEAT.value, 'Gradient 1': 69} + ) + + assert hash(input1) != hash(input3) diff --git a/tests/test_geophires_x_schema_generator.py b/tests/test_geophires_x_schema_generator.py new file mode 100644 index 00000000..d8fe777c --- /dev/null +++ b/tests/test_geophires_x_schema_generator.py @@ -0,0 +1,15 @@ +import unittest + +from geophires_x_schema_generator import GeophiresXSchemaGenerator +from tests.base_test_case import BaseTestCase + + +class GeophiresXSchemaGeneratorTestCase(BaseTestCase): + def test_parameters_rst(self): + g = GeophiresXSchemaGenerator() + rst = g.generate_parameters_reference_rst() + self.assertIsNotNone(rst) + + +if __name__ == '__main__': + unittest.main() diff --git a/tox.ini b/tox.ini index 5b043825..ee8c2547 100644 --- a/tox.ini +++ b/tox.ini @@ -13,7 +13,8 @@ passenv = envlist = clean, check, - {py38,py39,py310,py311,pypy38,pypy39}, + docs, + {py38,py39,py310,py311,py312,pypy38,pypy39,pypy310}, report ignore_basepython_conflict = true @@ -21,11 +22,13 @@ ignore_basepython_conflict = true basepython = pypy38: {env:TOXPYTHON:pypy3.8} pypy39: {env:TOXPYTHON:pypy3.9} + pypy310: {env:TOXPYTHON:pypy3.10} py38: {env:TOXPYTHON:python3.8} py39: {env:TOXPYTHON:python3.9} py310: {env:TOXPYTHON:python3.10} py311: {env:TOXPYTHON:python3.11} - {bootstrap,clean,check,report}: {env:TOXPYTHON:python3} + py312: {env:TOXPYTHON:python3.12} + {bootstrap,clean,check,report,docs}: {env:TOXPYTHON:python3} setenv = PYTHONPATH={toxinidir}/tests PYTHONUNBUFFERED=yes @@ -52,6 +55,16 @@ commands = check-manifest . pre-commit run --all-files --show-diff-on-failure +[testenv:docs] +usedevelop = true +deps = + -r{toxinidir}/docs/requirements.txt +commands = + python src/geophires_x_schema_generator/main.py --build-path docs/ + sphinx-build {posargs:-E} -b html docs dist/docs + sphinx-build docs dist/docs + ; TODO re-enable linkcheck probably - `sphinx-build -b linkcheck docs dist/docs` + [testenv:report] deps = coverage