diff --git a/.coveragerc b/.coveragerc deleted file mode 100644 index fa5c3e4242..0000000000 --- a/.coveragerc +++ /dev/null @@ -1,2 +0,0 @@ -[run] -source = pybamm diff --git a/.flake8 b/.flake8 deleted file mode 100644 index a69ea9bf0e..0000000000 --- a/.flake8 +++ /dev/null @@ -1,47 +0,0 @@ -[flake8] -max-line-length = 88 -exclude= - .git, - problems, - __init__.py, - venv, - bin, - etc, - lib, - lib64, - share, - pyvenv.cfg, - third-party, - KLU_module_deps, -ignore= - # False positive for white space before ':' on list slice - # black should format these correctly - E203, - - # Block comment should start with '# ' - # Not if it's a commented out line - E265, - - # Ambiguous variable names - # It's absolutely fine to have i and I - E741, - - # List comprehension redefines variable - # Re-using throw-away variables like `i`, `x`, etc. is a Good Idea - F812, - - # Blank line at end of file - # This increases readability - W391, - - # Line break before binary operator - # This is now actually advised in pep8 - W503, - - # Line break after binary operator - W504, - - # Invalid escape sequence - # These happen all the time in latex parts of docstrings, - # e.g. \sigma - W605, diff --git a/.github/workflows/build_wheels_and_publish.yml b/.github/workflows/build_wheels_and_publish.yml index 2667c0bec1..62d184c1c5 100644 --- a/.github/workflows/build_wheels_and_publish.yml +++ b/.github/workflows/build_wheels_and_publish.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: os: [macos-latest] - python-version: [3.6, 3.7] + python-version: [3.6, 3.7, 3.8] include: - os: ubuntu-latest python-version: 3.8 diff --git a/.github/workflows/test_on_push.yml b/.github/workflows/test_on_push.yml index d187cf09b1..6997fda137 100644 --- a/.github/workflows/test_on_push.yml +++ b/.github/workflows/test_on_push.yml @@ -15,18 +15,15 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Check style + - name: Setup python uses: actions/setup-python@v1 with: python-version: 3.7 - - name: Install package - run: | - python -m pip install --upgrade pip wheel setuptools - pip install -e .[dev] - - name: Check style - run: python -m flake8 + run: | + python -m pip install tox + tox -e flake8 build: needs: style @@ -35,7 +32,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: [3.6, 3.7] + python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v2 @@ -47,7 +44,7 @@ jobs: - name: Install Linux system dependencies if: matrix.os == 'ubuntu-latest' run: | - sudo apt install gfortran gcc libopenblas-dev liblapack-dev graphviz + sudo apt install gfortran gcc libopenblas-dev graphviz sudo apt install python${{ matrix.python-version }}.dev - name: Install MacOS system dependencies @@ -64,51 +61,33 @@ jobs: - name: Install standard python dependencies run: | python -m pip install --upgrade pip wheel setuptools - pip install -e . + python -m pip install tox - - name: Install SUNDIALS and SuiteSparse + - name: Install SuiteSparse and Sundials if: matrix.os != 'windows-latest' - run: | - pip install wget - git clone https://github.com/pybind/pybind11.git - python scripts/setup_KLU_module_build.py - export SUNDIALS_INST=$HOME/.local - pip install scikits.odes - pip install -e . + run: tox -e pybamm-requires - - name: Run unit tests Windows - if: matrix.os == 'windows-latest' - run: | - python run-tests.py --unit --folder all - - - name: Run unit tests + - name: Run unit tests for GNU/Linux and MacOS if: matrix.os != 'windows-latest' - run: | - export LD_LIBRARY_PATH=$HOME/.local/lib:scikits.odes/sundials5/lib:$LD_LIBRARY_PATH - python run-tests.py --unit --folder all + run: python -m tox -e tests + + - name: Run unit tests for Windows + if: matrix.os == 'windows-latest' + run: python -m tox -e windows-tests - name: Install docs dependencies and run doctests if: matrix.os != 'windows-latest' - run: | - export LD_LIBRARY_PATH=$HOME/.local/lib:scikits.odes/sundials5/lib:$LD_LIBRARY_PATH - pip install -e .[docs] - python run-tests.py --doctest - + run: tox -e doctests + - name: Install dev dependencies and run example tests if: matrix.os != 'windows-latest' - run: | - export LD_LIBRARY_PATH=$HOME/.local/lib:scikits.odes/sundials5/lib:$LD_LIBRARY_PATH - pip install -e .[dev] - python run-tests.py --examples - - - name: Install and run coverage - if: success() && (matrix.os == 'ubuntu-latest' && matrix.python-version == 3.7) - run: | - pip install coverage - export LD_LIBRARY_PATH=$HOME/.local/lib:scikits.odes/sundials5/lib:$LD_LIBRARY_PATH - coverage run run-tests.py --nosub - coverage xml + run: tox -e examples + + - name: Instal and run coverage + if: success() && (matrix.os == 'unbuntu-latest' && matrix.python-version == 3.7) + run: tox -e coverage - name: Upload coverage report if: matrix.os == 'ubuntu-latest' && matrix.python-version == 3.7 uses: codecov/codecov-action@v1 + diff --git a/.gitignore b/.gitignore index 66d86b2264..45764bf036 100644 --- a/.gitignore +++ b/.gitignore @@ -95,11 +95,15 @@ cmake_install.cmake *.so *.json - third-party/pybind11 pybind11/ -setup.log +# Build dependencies/ +KLU_module_deps +# setup +setup.log +# tox +.tox/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b77c5d5fd..1c588edab5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,46 @@ +# [v0.2.4](https://github.com/pybamm-team/PyBaMM/tree/v0.2.4) - 2020-09-07 + +This release adds new operators for more complex models, some basic sensitivity analysis, and a spectral volumes spatial method, as well as some small bug fixes. + +## Features + +- Added variables which track the total amount of lithium in the system ([#1136](https://github.com/pybamm-team/PyBaMM/pull/1136)) +- Added `Upwind` and `Downwind` operators for convection ([#1134](https://github.com/pybamm-team/PyBaMM/pull/1134)) +- Added Getting Started notebook on solver options and changing the mesh. Also added a notebook detailing the different thermal options, and a notebook explaining the steps that occur behind the scenes in the `Simulation` class ([#1131](https://github.com/pybamm-team/PyBaMM/pull/1131)) +- Added particle submodel that use a polynomial approximation to the concentration within the electrode particles ([#1130](https://github.com/pybamm-team/PyBaMM/pull/1130)) +- Added `Modulo`, `Floor` and `Ceiling` operators ([#1121](https://github.com/pybamm-team/PyBaMM/pull/1121)) +- Added DFN model for a half cell ([#1121](https://github.com/pybamm-team/PyBaMM/pull/1121)) +- Automatically compute surface area per unit volume based on particle shape for li-ion models ([#1120](https://github.com/pybamm-team/PyBaMM/pull/1120)) +- Added "R-averaged particle concentration" variables ([#1118](https://github.com/pybamm-team/PyBaMM/pull/1118)) +- Added support for sensitivity calculations to the casadi solver ([#1109](https://github.com/pybamm-team/PyBaMM/pull/1109)) +- Added support for index 1 semi-explicit dae equations and sensitivity calculations to JAX BDF solver ([#1107](https://github.com/pybamm-team/PyBaMM/pull/1107)) +- Allowed keyword arguments to be passed to `Simulation.plot()` ([#1099](https://github.com/pybamm-team/PyBaMM/pull/1099)) +- Added the Spectral Volumes spatial method and the submesh that it works with ([#900](https://github.com/pybamm-team/PyBaMM/pull/900)) + +## Bug fixes + +- Fixed bug where some parameters were not being set by the `EcReactionLimited` SEI model ([#1136](https://github.com/pybamm-team/PyBaMM/pull/1136)) +- Fixed bug on electrolyte potential for `BasicDFNHalfCell` ([#1133](https://github.com/pybamm-team/PyBaMM/pull/1133)) +- Fixed `r_average` to work with `SecondaryBroadcast` ([#1118](https://github.com/pybamm-team/PyBaMM/pull/1118)) +- Fixed finite volume discretisation of spherical integrals ([#1118](https://github.com/pybamm-team/PyBaMM/pull/1118)) +- `t_eval` now gets changed to a `linspace` if a list of length 2 is passed ([#1113](https://github.com/pybamm-team/PyBaMM/pull/1113)) +- Fixed bug when setting a function with an `InputParameter` ([#1111](https://github.com/pybamm-team/PyBaMM/pull/1111)) + +## Breaking changes + +- The "fast diffusion" particle option has been renamed "uniform profile" ([#1130](https://github.com/pybamm-team/PyBaMM/pull/1130)) +- The modules containing standard parameters are now classes so they can take options +(e.g. `standard_parameters_lithium_ion` is now `LithiumIonParameters`) ([#1120](https://github.com/pybamm-team/PyBaMM/pull/1120)) +- Renamed `quick_plot_vars` to `output_variables` in `Simulation` to be consistent with `QuickPlot`. Passing `quick_plot_vars` to `Simulation.plot()` has been deprecated and `output_variables` should be passed instead ([#1099](https://github.com/pybamm-team/PyBaMM/pull/1099)) + + # [v0.2.3](https://github.com/pybamm-team/PyBaMM/tree/v0.2.3) - 2020-07-01 This release enables the use of [Google Colab](https://colab.research.google.com/github/pybamm-team/PyBaMM/blob/master/) for running example notebooks, and adds some small new features and bug fixes. ## Features +- Added JAX evaluator, and ODE solver ([#1038](https://github.com/pybamm-team/PyBaMM/pull/1038)) - Reformatted Getting Started notebooks ([#1083](https://github.com/pybamm-team/PyBaMM/pull/1083)) - Reformatted Landesfeind electrolytes ([#1064](https://github.com/pybamm-team/PyBaMM/pull/1064)) - Adapted examples to be run in Google Colab ([#1061](https://github.com/pybamm-team/PyBaMM/pull/1061)) @@ -32,7 +69,7 @@ This release enables the use of [Google Colab](https://colab.research.google.com ## Breaking changes - `Simulation.specs` and `Simulation.set_defaults` have been deprecated. Users should create a new `Simulation` object for each different case instead ([#1090](https://github.com/pybamm-team/PyBaMM/pull/1090)) -- The solution times `t_eval` must now be provided to `Simulation.solve()` when not using an experiment or prescribing the current using drive cycle data ([#1086](https://github.com/pybamm-team/PyBaMM/pull/1086)) +- The solution times `t_eval` must now be provided to `Simulation.solve()` when not using an experiment or prescribing the current using drive cycle data ([#1086](https://github.com/pybamm-team/PyBaMM/pull/1086)) # [v0.2.2](https://github.com/pybamm-team/PyBaMM/tree/v0.2.2) - 2020-06-01 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5d1513a424..a8baba661a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,11 +9,8 @@ If you're already familiar with our workflow, maybe have a quick look at the [pr Before you commit any code, please perform the following checks: - [No style issues](#coding-style-guidelines): `$ flake8` -- [All tests pass](#testing): `$ python run-tests.py --unit` -- [The documentation builds](#building-the-documentation): `$ cd docs` and then `$ make clean; make html` - -You can even run all three at once, using `$ python run-tests.py --quick`. - +- [All tests pass](#testing): `$ tox -e quick` (GNU/Linux and MacOS), `$ python -m tox -e windows-quick` (Windows) +- [The documentation builds](#building-the-documentation): `$ python -m tox -e docs` ## Workflow @@ -52,13 +49,26 @@ Finally, if you really, really, _really_ love developing PyBaMM, have a look at To install PyBaMM with all developer options, type: ```bash -pip install -e .[dev,docs] +tox -e dev # (GNU/Linux and MacOS) +# +python -m tox -e windows-dev # (Windows) ``` This will -1. Install all the dependencies for PyBaMM, including the ones for documentation (docs) and development (dev). -2. Tell Python to use your local pybamm files when you use `import pybamm` anywhere on your system. +1. Create a virtual environment located at `.tox/dev`. +2. Install all the dependencies for PyBaMM, including the ones for documentation and development. +3. Tell Python to use your local pybamm files when you use `import pybamm` anywhere on your system. + +Finally, activate your environment. + + +```bash +source .tox/dev/bin/activate # (GNU/Linux and MacOS) +# +.tox\dev\Scripts\activate.bat # (Windows) +``` + ## Coding style guidelines @@ -71,11 +81,7 @@ We use [flake8](http://flake8.pycqa.org/en/latest/) to check our PEP8 adherence. ```bash flake8 ``` -The configuration file -``` -.flake8 -``` -allows us to ignore some errors. If you think this should be added or removed, please submit an [issue](#issues) +Flake8 is configured inside the file `tox.ini`, under the section `[flake8]`, allowing us to ignore some errors. If you think this should be added or removed, please submit an [issue](#issues) When you commit your changes they will be checked against flake8 automatically (see [infrastructure](#infrastructure)). @@ -145,7 +151,9 @@ All code requires testing. We use the [unittest](https://docs.python.org/3.3/lib To run quick tests, type ```bash -python run-tests.py --unit +tox -e quick # (GNU/Linux and MacOS) +# +python -m tox -e windows-quick (Windows) ``` ### Writing tests @@ -160,7 +168,9 @@ The tests are divided into `unit` tests, whose aim is to check individual bits o If you want to check integration tests as well as unit tests, type ```bash -python run-tests.py --unit --folder all +tox -e tests # (GNU/Linux and MacOS) +# +python -m tox -e windows-tests (Windows) ``` When you commit anything to PyBaMM, these checks will also be run automatically (see [infrastructure](#infrastructure)). @@ -170,7 +180,9 @@ When you commit anything to PyBaMM, these checks will also be run automatically To test all example scripts and notebooks, type ```bash -python run-tests.py --examples +tox -e examples # (GNU/Linux and MacOS) +# +python -m tox -e windows-examples (Windows) ``` If notebooks fail because of changes to pybamm, it can be a bit of a hassle to debug. In these cases, you can create a temporary export of a notebook's Python content using @@ -277,16 +289,12 @@ Using [Sphinx](http://www.sphinx-doc.org/en/stable/) the documentation in `docs` ### Building the documentation -To test and debug the documentation, it's best to build it locally. To do this, make sure you have the relevant dependencies installed (see [installation](#installation)), navigate to your PyBaMM directory in a console, and then type: +To test and debug the documentation, it's best to build it locally. To do this, navigate to your PyBaMM directory in a console, and then type: ``` -cd docs -make clean -make html +python -m tox -e docs (GNU/Linux, MacOS and Windows) ``` - -Next, open a browser, and navigate to your local PyBaMM directory (by typing the path, or part of the path into your location bar). Then have a look at `<your pybamm path>/docs/build/html/index.html`. - +And then visit the webpage served at http://127.0.0.1:8000. Each time a change to the documentation source is detected, the HTML is rebuilt and the browser automatically reloaded. ### Example notebooks diff --git a/LICENSE.txt b/LICENSE.txt index 8f0f2ff964..be86944adc 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2018-2020, University of Oxford (University of Oxford means the Chancellor, Masters and Scholars of the University of Oxford, having an administrative office at Wellington Square, Oxford OX1 2JD, UK). +Copyright (c) 2018-2020, the PyBaMM team. All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/MANIFEST.in b/MANIFEST.in index 90c8657a42..c40770432c 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -84,3 +84,4 @@ include pybamm/input/parameters/lithium-ion/separators/separator_Chen2020/README include pybamm/input/parameters/lithium-ion/separators/separator_Marquis2019/README.md include pybamm/version include pybamm/CITATIONS.txt +include CMakeBuild.py \ No newline at end of file diff --git a/README.md b/README.md index 8610988c9d..ef339a4cee 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,9 @@ sim = pybamm.Simulation(model, experiment=experiment, solver=pybamm.CasadiSolver sim.solve() sim.plot() ``` -However, much greater customisation is available. It is possible to change the physics, parameter values, geometry, submesh type, number of submesh points, methods for spatial discretisation and solver for integration (see DFN [script](examples/scripts/DFN.py) or [notebook](examples/notebooks/models/dfn.ipynb)). +However, much greater customisation is available. It is possible to change the physics, parameter values, geometry, submesh type, number of submesh points, methods for spatial discretisation and solver for integration (see DFN [script](examples/scripts/DFN.py) or [notebook](examples/notebooks/models/DFN.ipynb)). -For new users we recommend the [Getting Started](examples/notebooks/Getting%20Started/) guides. These are intended to be very simple step-by-step guides to show the basic functionality of PyBaMM. +For new users we recommend the [Getting Started](examples/notebooks/Getting%20Started/) guides. These are intended to be very simple step-by-step guides to show the basic functionality of PyBaMM, and can either be downloaded and used locally, or used online through [Google Colab](https://colab.research.google.com/github/pybamm-team/PyBaMM/blob/master/). Further details can be found in a number of [detailed examples](examples/notebooks/README.md), hosted here on github. In addition, there is a [full API documentation](http://pybamm.readthedocs.io/), diff --git a/docs/conf.py b/docs/conf.py index 6cb79428e7..dc22f6d6b0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,13 +22,13 @@ # -- Project information ----------------------------------------------------- project = "PyBaMM" -copyright = "2020, Valentin Sulzer" +copyright = "2020, The PyBaMM Team" author = "The PyBaMM Team" # The short X.Y version version = "0.2" # The full version, including alpha/beta/rc tags -release = "0.2.3" +release = "0.2.4" # -- General configuration --------------------------------------------------- diff --git a/docs/index.rst b/docs/index.rst index 25c2994611..4643edc471 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -57,7 +57,7 @@ Installation install/GNU-linux install/windows install/windows-wsl - For developers: compiling the KLU solver <install/install-klu> + install/install-from-source API documentation ==================== diff --git a/docs/install/GNU-linux.rst b/docs/install/GNU-linux.rst index 368ffab47a..68ec737398 100644 --- a/docs/install/GNU-linux.rst +++ b/docs/install/GNU-linux.rst @@ -7,8 +7,7 @@ Prerequisites ============= -To use and/or contribute to PyBaMM, you must have Python 3.6 or 3.7 -installed (note that 3.8 is not yet supported). +To use and/or contribute to PyBaMM, you must have Python 3.6, 3.7, or 3.8 installed. To install Python 3 on Debian-based distribution (Debian, Ubuntu, Linux mint), open a terminal and run @@ -47,7 +46,7 @@ User install We recommend to install PyBaMM within a virtual environment, in order not to alter any distribution python files. -First, make sure you are using python 3.6 or 3.7. +First, make sure you are using python 3.6, 3.7, or 3.8. To create a virtual environment ``env`` within your current directory type: .. code:: bash @@ -149,17 +148,10 @@ repository Then, to install PyBaMM as a `developer <CONTRIBUTING.md>`__, type -.. code:: bash + .. code:: bash pip install -e .[dev,docs] -**KLU sparse solver** If you wish so simulate large systems such as the -2+1D models, we recommend employing a sparse solver. PyBaMM currently -offers a direct interface to the sparse KLU solver within Sundials, but -it is unlikely to be installed as you may not have all the dependencies -available. If you wish to install the KLU from the PyBaMM sources, see -:doc:`the instructions for compiling the KLU sparse solver <install-klu>`. - To check whether PyBaMM has installed properly, you can run the tests: .. code:: bash diff --git a/docs/install/install-from-source.rst b/docs/install/install-from-source.rst new file mode 100644 index 0000000000..261515c1e0 --- /dev/null +++ b/docs/install/install-from-source.rst @@ -0,0 +1,249 @@ +Install from source (developer install) +========================================= + +.. contents:: + +This page describes the build and installation of PyBaMM from the source code, available on GitHub. Note that this is **not the recommended approach for most users** and should be reserved to people wanting to participate in the development of PyBaMM, or people who really need to use bleeding-edge feature(s) not yet available in the latest released version. If you do not fall in the two previous categories, you would be better off installing PyBaMM using pip or conda. + +Lastly, familiarity with the python ecosystem is recommended (pip, virtualenvs). +Here is a gentle introduction/refresher: `Python Virtual Environments: A Primer <https://realpython.com/python-virtual-environments-a-primer/>`_. + + +Prerequisites +--------------- + +The following instructions are valid for both GNU/Linux distributions and MacOS. +If you are running Windows, consider using the `Windows Subsystem for Linux (WSL) <https://docs.microsoft.com/en-us/windows/wsl/install-win10>`_. + +To obtain the PyBaMM source code, clone the GitHub repository + +.. code:: bash + + git clone https://github.com/pybamm-team/PyBaMM.git + +or download the source archive on the repository's homepage. + +To install PyBaMM, you will need: + +- Python 3 (PyBaMM supports versions 3.6, 3.7 and 3.8) +- The python headers file for your current python version. +- A BLAS library (for instance `openblas <https://www.openblas.net/>`_). +- A C compiler (ex: ``gcc``). +- A Fortran compiler (ex: ``gfortran``). + +On Ubuntu, you can install the above with + +.. code:: bash + + sudo apt install python3.X python3.X-dev libopenblas-dev gcc gfortran + +Where ``X`` is the version sub-number. + +On MacOS, + +.. code:: bash + + brew install python openblas gcc gfortran + +Finally, we recommend using `Tox <https://tox.readthedocs.io/en/latest/>`_. +You can install it with + +.. code:: bash + + python3.X -m pip install --user tox + +Depending on your operating system, you may or may not have ``pip`` installed along python. +If ``pip`` is not found, you probably want to install the ``python3-pip`` package. + +Installing the build-time requirements +-------------------------------------- + +PyBaMM comes with a DAE solver based on the IDA solver provided by the SUNDIALS library. +To use this solver, you must make sure that you have the necessary SUNDIALS components +installed on your system. + +The IDA-based solver is currently unavailable on windows. +If you are running windows, you can simply skip this section and jump to :ref:`pybamm-install`. + +Using Tox (recommended for GNU/Linux users) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code:: bash + + # in the PyBaMM/ directory + tox -e pybamm-requires + +This will download, compile and install the SuiteSparse and SUNDIALS libraries. +Both libraries are installed in ``~/.local``. + +Using Homebrew (recommended for MacOS users) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you are using MacOS, an alternative to the above is to get the required SUNDIALS components from Homebrew: + +.. code:: bash + + brew install sundials + +Next, clone the pybind11 repository: + +.. code:: bash + + # in the PyBaMM/ directory + git clone https://github.com/pybind/pybind11.git + +That's it. + +Manual install of build time requirements +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you'd rather do things yourself, + +1. Make sure you have CMake installed +2. Compile and install SuiteSparse (PyBaMM only requires the ``KLU`` component). +3. Compile and install SUNDIALS. +4. Clone the pybind11 repository in the ``PyBaMM/`` directory (make sure the directory is named ``pybind11``). + +PyBaMM ships with a python script that automates points 2. and 3. You can run it with + +.. code:: bash + + python scripts/install_KLU_Sundials.py + +.. _pybamm-install: + +Installing PyBaMM +----------------- + +You should now have everything ready to build and install PyBaMM successfully. + +Using Tox (recommended) +~~~~~~~~~~~~~~~~~~~~~~~ + +.. code:: bash + + # in the PyBaMM/ directory + tox -e dev # (GNU/Linux and MacOS) + # + python -m tox -e windows-dev # (Windows) + + +This creates a virtual environment ``.tox/dev`` inside the ``PyBaMM/`` directory. +It comes ready with PyBaMM and some useful development tools like `flake8 <https://flake8.pycqa.org/en/latest/>`_ and `black <https://black.readthedocs.io/en/stable/>`_. + +You can now activate the environment with + +.. code:: bash + + source .tox/dev/bin/activate # (GNU/Linux and MacOS) + # + .tox\dev\Scripts\activate.bat # (Windows) + +and run the tests to check your installation. + +Manual install +~~~~~~~~~~~~~~ + +From the ``PyBaMM/`` directory, you can install PyBaMM using ``python setup.py install`` or + +.. code:: bash + + pip install . + + +If you intend to contribute to the development of PyBaMM, it is convenient to install in "editable mode", along with useful tools for development and documentation: + +.. code:: bash + + pip install -e .[dev,docs] + +Running the tests +-------------------- + +Using Tox (recommended) +~~~~~~~~~~~~~~~~~~~~~~~ + +You can use Tox to run the unit tests and example notebooks in isolated virtual environments. + +The default command + +.. code:: bash + + tox -e tests # (GNU/Linux and MacOS) + # + python -m tox -e windows-tests # (Windows) + +will run the full test suite (integration and unit tests). +This can take several minutes. + +Is is often sufficient to run the unit tests only. To do so, use + + .. code:: bash + + tox -e quick # (GNU/Linux and MacOS) + # + python -m tox -e windows-quick # (Windows) + + +Using the test runner +~~~~~~~~~~~~~~~~~~~~~~ + +You can run unit tests for PyBaMM using + +.. code:: bash + + # in the PyBaMM/ directory + python run-tests.py --unit + + +The above starts a sub-process using the current python interpreter (i.e. using your current +python environment) and run the unit tests. This can take a few minutes. + +You can also use the test runner to run the doctests: + +.. code:: bash + + python run-tests.py --doctests + +There is more to the PyBaMM test runner. To see a list of all options, type + +.. code:: bash + + python run-tests.py --help + +How to build the PyBaMM documentation +------------------------------------- + +The documentation is built using + +.. code:: bash + + tox -e docs + +This will build the documentation and serve it locally (thanks to `sphinx-autobuild <https://github.com/GaretJax/sphinx-autobuild>`_) for preview. +The preview will be updated automatically following changes. + +Doctests, examples, style and coverage +-------------------------------------- + +- ``tox -e examples``: Run the example scripts in ``examples/scripts``. +- ``tox -e flake8``: Check for PEP8 compliance. +- ``tox -e doctests``: Run doctests. +- ``tox -e coverage``: Measure current test coverage. + +Note for Windows users +---------------------- + +If you are running Windows, the following tox commands must be prefixed by ``windows-``: + +- ``tests`` +- ``quick`` +- ``examples`` +- ``doctests`` +- ``dev`` + +For example, to run the full test suite on Windows you would type: + +.. code:: bash + + python -m tox -e windows-tests diff --git a/docs/install/install-klu.rst b/docs/install/install-klu.rst deleted file mode 100644 index 19a6615e9d..0000000000 --- a/docs/install/install-klu.rst +++ /dev/null @@ -1,247 +0,0 @@ -PyBaMM developer install - The KLU sparse solver -================================================ - -If you wish to try a different DAE solver, PyBaMM currently offers a -direct interface to the sparse KLU solver within Sundials. This solver -comes as a C++ python extension module. Therefore, when installing -PyBaMM from source (e.g. from the GitHub repository), the KLU sparse -solver module must be compiled. Running ``pip install .`` or -``python setup.py install`` in the PyBaMM directory will result in a -attempt to compile the KLU module. - -Note that if CMake of pybind11 are not found (see below), the -installation of PyBaMM will carry on, however skipping the compilation -of the ``idaklu`` module. This allows developers that are not interested -in the KLU module to install PyBaMM from source without having to -install the required dependencies. - -To build the KLU solver, the following dependencies are required: - -- A C++ compiler (e.g. ``g++``) -- A Fortran compiler (e.g. ``gfortran``) -- The python 3 header files -- `CMake <https://cmake.org/>`__ -- A BLAS implementation (e.g. `openblas <https://www.openblas.net/>`__) -- `pybind11 <https://github.com/pybind/pybind11>`__ -- `sundials <https://computing.llnl.gov/projects/sundials>`__ -- `SuiteSparse <http://faculty.cse.tamu.edu/davis/suitesparse.html>`__ - -The first four should be available through your favourite package -manager. On Debian-based GNU/Linux distributions: - -.. code:: bash - - apt update - apt install python3-dev gcc gfortran cmake libopenblas-dev - -pybind11 --------- - -The pybind11 source directory should be located in the PyBaMM project -directory at the time of compilation. Simply clone the GitHub -repository, for example: - -.. code:: bash - - # In the PyBaMM project dir (next to setup.py) - git clone https://github.com/pybind/pybind11.git - -SuiteSparse and sundials ------------------------- - -Method 1 - Using the convenience script -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The PyBaMM repository contains a script -``scripts/setup_KLU_module_build.py`` that automatically downloads, -extracts, compiles and installs the two libraries. - -First install the Python ``wget`` module - -:: - - pip install wget - -Then execute the script - -:: - - # In the PyBaMM project dir (next to setup.py) - python scripts/setup_KLU_module_build.py - -The above will install the required component of SuiteSparse and -Sundials in your home directory under ``~/.local/``. Note that you can -provide the option ``--install-dir=<install/path>`` to install both -libraries to an alternative location. If ``<install/path>`` is not -absolute, it will be interpreted as relative to the PyBaMM project -directory. - -Finally, reactivate your virtual environment by running - -:: - - source $(VIRTUAL_ENV)/bin/activate - -Alternatively, you update the ``LD_LIBRARY_PATH`` environment variable -as follows - -:: - - export LD_LIBRARY_PATH=$(HOME)/.local:$LD_LIBRARY_PATH - -The above export statement will be ran automatically the next time you -activate you python virtual environment. - -If did not run the convenience script inside a python virtual -environment, execute you bash config file - -:: - - source ~/.bashrc - -(or start a new shell). - -Build files are located inside the PyBaMM project directory under -``KLU_module_deps/``. Feel free to remove this directory once everything -is installed correctly. - -Method 2 - Compiling Sundials (advanced) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -SuiteSparse -^^^^^^^^^^^ - -On most current linux distributions and macOS, a recent enough version -of the suitesparse source package is available through the package -manager. For instance on Fedora - -:: - - yum install libsuitesparse-dev - -Sundials -^^^^^^^^ - -The PyBaMM KLU solver requires Sundials >= 4.0. Because most Linux -distribution provide older versions through their respective package -manager, it is recommended to build and install Sundials manually. - -First, download and extract the sundials 5.0.0 source - -:: - - wget https://computing.llnl.gov/projects/sundials/download/sundials-5.0.0.tar.gz . - tar -xvf sundials-5.0.0.tar.gz - -Then, create a temporary build directory and navigate into it - -:: - - mkdir build_sundials - cd build_sundials - -You can now configure the build, by running - -:: - - cmake -DLAPACK_ENABLE=ON\ - -DSUNDIALS_INDEX_SIZE=32\ - -DBUILD_ARKODE=OFF\ - -DBUILD_CVODE=OFF\ - -DBUILD_CVODES=OFF\ - -DBUILD_IDAS=OFF\ - -DBUILD_KINSOL=OFF\ - -DEXAMPLES_ENABLE:BOOL=OFF\ - -DKLU_ENABLE=ON\ - -DKLU_INCLUDE_DIR=path/to/suitesparse/headers\ - -DKLU_LIBRARY_DIR=path/to/suitesparse/libraries\ - ../sundials-5.0.0 - -Be careful set the two variables ``KLU_INCLUDE_DIR`` and -``KLU_LIBRARY_DIR`` to the correct installation location of the -SuiteSparse libary on your system. If you installed SuiteSparse through -your package manager, this is likely to be something similar to: - -:: - - -DKLU_INCLUDE_DIR=/usr/include/suitesparse\ - -DKLU_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu\ - -By default, Sundials will be installed on your system under -``/usr/local`` (this varies depending on the distribution). Should you -wish to install sundials in a specific location, set the following -variable - -:: - - -DCMAKE_INSTALL_PREFIX=install/location\ - -Finally, build the library: - -:: - - make install - -You may be asked to run this command as a super-user, depending on the -installation location. - -Alternative installation location -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -By default, it is assumed that the SuiteSparse and Sundials libraries -are installed in your home directory under ``~/.local``. If you -installed the libraries to (a) different location(s), you must set the -options ``suitesparse-root`` or/and ``sundials-root`` when installing -PyBaMM. Examples: - -:: - - python setup.py install --suitesparse-root=path/to/suitesparse - -or - -:: - - pip install . --install-option="--sundials-root=path/to/sundials" - -(re)Install PyBaMM to build the KLU solver ------------------------------------------- - -If the above dependencies are correctly installed, any of the following -commands will install PyBaMM with the ``idaklu`` solver module: - -:: - - pip install . - pip install -e . - python setup.py install - python setup.py develop - ... - -Note that it doesn’t matter if pybamm is already installed. The above -commands will update your exisitng installation by adding the ``idaklu`` -module. - -Check that the solver is correctly installed --------------------------------------------- - -If you install PyBaMM in `editable -mode <https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs>`__ -using the ``-e`` pip switch or if you use the -``python setup.py install`` command, a log file will be located in the -project directory (next to the ``setup.py`` file). - -:: - - cat setup.log - 020-03-24 11:33:50,645 - PyBaMM setup - INFO - Starting PyBaMM setup - 2020-03-24 11:33:50,653 - PyBaMM setup - INFO - Not running on windows - 2020-03-24 11:33:50,654 - PyBaMM setup - INFO - Could not find CMake. Skipping compilation of KLU module. - 2020-03-24 11:33:50,655 - PyBaMM setup - INFO - Could not find pybind11 directory (/io/pybind11). Skipping compilation of KLU module. - -If the KLU sparse solver is correctly installed, then the following -command should return ``True``. - -:: - - $ python -c "import pybamm; print(pybamm.have_idaklu())" diff --git a/docs/install/windows.rst b/docs/install/windows.rst index 1e4f8dea0d..9254a62d68 100644 --- a/docs/install/windows.rst +++ b/docs/install/windows.rst @@ -6,8 +6,7 @@ Windows Prerequisites ------------- -To use and/or contribute to PyBaMM, you must have Python 3.6 or 3.7 -installed (note that 3.8 is not yet supported). +To use and/or contribute to PyBaMM, you must have Python 3.6, 3.7, or 3.8 installed. To install Python 3 download the installation files from `Python’s website <https://www.python.org/downloads/windows/>`__. Make sure to diff --git a/docs/source/expression_tree/binary_operator.rst b/docs/source/expression_tree/binary_operator.rst index 826956a3ef..39e819bfb0 100644 --- a/docs/source/expression_tree/binary_operator.rst +++ b/docs/source/expression_tree/binary_operator.rst @@ -34,6 +34,9 @@ Binary Operators .. autoclass:: pybamm.NotEqualHeaviside :members: +.. autoclass:: pybamm.Modulo + :members: + .. autoclass:: pybamm.Minimum :members: diff --git a/docs/source/expression_tree/unary_operator.rst b/docs/source/expression_tree/unary_operator.rst index d481f51bd3..3fe0627da1 100644 --- a/docs/source/expression_tree/unary_operator.rst +++ b/docs/source/expression_tree/unary_operator.rst @@ -58,6 +58,15 @@ Unary Operators .. autoclass:: pybamm.BoundaryGradient :members: +.. autoclass:: pybamm.UpwindDownwind + :members: + +.. autoclass:: pybamm.Upwind + :members: + +.. autoclass:: pybamm.Downwind + :members: + .. autofunction:: pybamm.grad .. autofunction:: pybamm.div @@ -79,3 +88,7 @@ Unary Operators .. autofunction:: pybamm.boundary_value .. autofunction:: pybamm.sign + +.. autofunction:: pybamm.upwind + +.. autofunction:: pybamm.downwind diff --git a/docs/source/models/submodels/particle/fast_many_particles.rst b/docs/source/models/submodels/particle/fast_many_particles.rst deleted file mode 100644 index 703a49047c..0000000000 --- a/docs/source/models/submodels/particle/fast_many_particles.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fast Many Particles -=================== - -.. autoclass:: pybamm.particle.FastManyParticles - :members: diff --git a/docs/source/models/submodels/particle/fast_single_particle.rst b/docs/source/models/submodels/particle/fast_single_particle.rst deleted file mode 100644 index 6c1de67f5c..0000000000 --- a/docs/source/models/submodels/particle/fast_single_particle.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fast Single Particle -==================== - -.. autoclass:: pybamm.particle.FastSingleParticle - :members: diff --git a/docs/source/models/submodels/particle/index.rst b/docs/source/models/submodels/particle/index.rst index a28c75a83a..71c2ac483a 100644 --- a/docs/source/models/submodels/particle/index.rst +++ b/docs/source/models/submodels/particle/index.rst @@ -7,5 +7,5 @@ Particle base_particle fickian_single_particle fickian_many_particles - fast_single_particle - fast_many_particles + polynomial_single_particle + polynomial_many_particles diff --git a/docs/source/models/submodels/particle/polynomial_many_particles.rst b/docs/source/models/submodels/particle/polynomial_many_particles.rst new file mode 100644 index 0000000000..4a3fe1e138 --- /dev/null +++ b/docs/source/models/submodels/particle/polynomial_many_particles.rst @@ -0,0 +1,5 @@ +Polynomial Many Particles +========================= + +.. autoclass:: pybamm.particle.PolynomialManyParticles + :members: diff --git a/docs/source/models/submodels/particle/polynomial_single_particle.rst b/docs/source/models/submodels/particle/polynomial_single_particle.rst new file mode 100644 index 0000000000..5cd1747e0e --- /dev/null +++ b/docs/source/models/submodels/particle/polynomial_single_particle.rst @@ -0,0 +1,5 @@ +Polynomial Single Particle +=========================== + +.. autoclass:: pybamm.particle.PolynomialSingleParticle + :members: diff --git a/docs/source/parameters/electrical_parameters.rst b/docs/source/parameters/electrical_parameters.rst index b04620e195..6cc609ea32 100644 --- a/docs/source/parameters/electrical_parameters.rst +++ b/docs/source/parameters/electrical_parameters.rst @@ -1,4 +1,4 @@ Electrical Parameters ===================== -.. automodule:: pybamm.parameters.electrical_parameters +.. autoclass:: pybamm.ElectricalParameters diff --git a/docs/source/parameters/geometric_parameters.rst b/docs/source/parameters/geometric_parameters.rst index cb0d174c1a..a7d0cfbd61 100644 --- a/docs/source/parameters/geometric_parameters.rst +++ b/docs/source/parameters/geometric_parameters.rst @@ -1,5 +1,4 @@ Geometric Parameters ==================== -.. automodule:: pybamm.parameters.geometric_parameters - +.. autoclass:: pybamm.GeometricParameters diff --git a/docs/source/parameters/index.rst b/docs/source/parameters/index.rst index 02f6e82025..9d7585717d 100644 --- a/docs/source/parameters/index.rst +++ b/docs/source/parameters/index.rst @@ -7,6 +7,6 @@ Parameters geometric_parameters electrical_parameters thermal_parameters - standard_parameters_lithium_ion - standard_parameters_lead_acid - parameter_sets \ No newline at end of file + lithium_ion_parameters + lead_acid_parameters + parameter_sets diff --git a/docs/source/parameters/lead_acid_parameters.rst b/docs/source/parameters/lead_acid_parameters.rst new file mode 100644 index 0000000000..c4d4bc0723 --- /dev/null +++ b/docs/source/parameters/lead_acid_parameters.rst @@ -0,0 +1,4 @@ +Lead-Acid Parameters +==================== + +.. autoclass:: pybamm.LeadAcidParameters diff --git a/docs/source/parameters/lithium_ion_parameters.rst b/docs/source/parameters/lithium_ion_parameters.rst new file mode 100644 index 0000000000..48928506c4 --- /dev/null +++ b/docs/source/parameters/lithium_ion_parameters.rst @@ -0,0 +1,4 @@ +Lithium-ion Parameters +====================== + +.. autoclass:: pybamm.LithiumIonParameters diff --git a/docs/source/parameters/parameter_values.rst b/docs/source/parameters/parameter_values.rst index 2ea2d6750d..adcbac4c31 100644 --- a/docs/source/parameters/parameter_values.rst +++ b/docs/source/parameters/parameter_values.rst @@ -1,5 +1,5 @@ -Base Parameter Values -===================== +Parameter Values +================ .. autoclass:: pybamm.ParameterValues :members: diff --git a/docs/source/parameters/standard_parameters_lead_acid.rst b/docs/source/parameters/standard_parameters_lead_acid.rst deleted file mode 100644 index cbfcd0b3af..0000000000 --- a/docs/source/parameters/standard_parameters_lead_acid.rst +++ /dev/null @@ -1,4 +0,0 @@ -Standard Lead-Acid Parameters -============================= - -.. automodule:: pybamm.parameters.standard_parameters_lead_acid diff --git a/docs/source/parameters/standard_parameters_lithium_ion.rst b/docs/source/parameters/standard_parameters_lithium_ion.rst deleted file mode 100644 index 19b2b37c32..0000000000 --- a/docs/source/parameters/standard_parameters_lithium_ion.rst +++ /dev/null @@ -1,4 +0,0 @@ -Standard Lithium-ion Parameters -=============================== - -.. automodule:: pybamm.parameters.standard_parameters_lithium_ion diff --git a/docs/source/parameters/thermal_parameters.rst b/docs/source/parameters/thermal_parameters.rst index d06ef55ed2..3d2ded012c 100644 --- a/docs/source/parameters/thermal_parameters.rst +++ b/docs/source/parameters/thermal_parameters.rst @@ -1,4 +1,4 @@ Thermal Parameters -===================== +================== -.. automodule:: pybamm.parameters.thermal_parameters +.. autoclass:: pybamm.ThermalParameters diff --git a/docs/source/solvers/index.rst b/docs/source/solvers/index.rst index 1aff323a6a..434545e7f8 100644 --- a/docs/source/solvers/index.rst +++ b/docs/source/solvers/index.rst @@ -6,6 +6,7 @@ Solvers base_solver dummy_solver scipy_solver + jax_solver scikits_solvers casadi_solver algebraic_solvers diff --git a/docs/source/solvers/jax_solver.rst b/docs/source/solvers/jax_solver.rst new file mode 100644 index 0000000000..c87d1e7ff6 --- /dev/null +++ b/docs/source/solvers/jax_solver.rst @@ -0,0 +1,7 @@ +JAX Solver +============ + +.. autoclass:: pybamm.JaxSolver + :members: + +.. autofunction:: pybamm.jax_bdf_integrate diff --git a/docs/tutorials/add-model.rst b/docs/tutorials/add-model.rst index ee941ed1a3..e55c3d0e9d 100644 --- a/docs/tutorials/add-model.rst +++ b/docs/tutorials/add-model.rst @@ -142,10 +142,11 @@ The inbuilt models in PyBaMM do not add all the model attributes within their ow In addition to calling submodels, common sets of variables and parameters found in lithium-ion and lead acid batteries are provided in `standard_variables.py`, -`standard_parameters_lithium_ion.py`, -`standard_parameters_lead_acid.py`, +`lithium_ion_parameters.py`, +`lead_acid_parameters.py`, `electrical_parameters.py`, `geometric_parameters.py`, +`thermal_parameters.py`, and `standard_spatial_vars.py` which we encourage use of to save redefining the same parameters and variables in every model and submodel. diff --git a/examples/notebooks/Getting Started/Tutorial 2 - Compare models.ipynb b/examples/notebooks/Getting Started/Tutorial 2 - Compare models.ipynb index 192cec7d86..8ae75f737d 100644 --- a/examples/notebooks/Getting Started/Tutorial 2 - Compare models.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 2 - Compare models.ipynb @@ -119,8 +119,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this tutorial we have seen how easy it is to run and compare different electrochemical models. In [Tutorial 3](./Tutorial%203%20-%20Basic%20plotting.ipynb) we cover how to simulate and compare different models." + "In this tutorial we have seen how easy it is to run and compare different electrochemical models. In [Tutorial 3](./Tutorial%203%20-%20Basic%20plotting.ipynb) we show how to create different plots using PyBaMM's built-in plotting capability." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/notebooks/Getting Started/Tutorial 3 - Basic plotting.ipynb b/examples/notebooks/Getting Started/Tutorial 3 - Basic plotting.ipynb index b2d6f6691b..8154c22e0c 100644 --- a/examples/notebooks/Getting Started/Tutorial 3 - Basic plotting.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 3 - Basic plotting.ipynb @@ -11,12 +11,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In [Tutorial 2](./Tutorial%202%20-%20Compare%20models.ipynb), we made use of PyBaMM's automatic plotting function. This gave a good quick overview of many of the key variables in the model. However, by passing in just a few arguments it is easy to plot any of the many other variables that may be of interest to you. We start by building and solving a model as before:" + "In [Tutorial 2](./Tutorial%202%20-%20Compare%20models.ipynb), we made use of PyBaMM's automatic plotting function when comparing models. This gave a good quick overview of many of the key variables in the model. However, by passing in just a few arguments it is easy to plot any of the many other variables that may be of interest to you. We start by building and solving a model as before:" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -29,10 +29,10 @@ { "data": { "text/plain": [ - "<pybamm.solvers.solution.Solution at 0x7fe21ea34c50>" + "<pybamm.solvers.solution.Solution at 0x7f58bbcf9470>" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -54,7 +54,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -179,6 +179,8 @@ " 'Negative particle concentration [mol.m-3]',\n", " 'X-averaged negative particle concentration',\n", " 'X-averaged negative particle concentration [mol.m-3]',\n", + " 'R-averaged negative particle concentration',\n", + " 'R-averaged negative particle concentration [mol.m-3]',\n", " 'Negative particle surface concentration',\n", " 'Negative particle surface concentration [mol.m-3]',\n", " 'X-averaged negative particle surface concentration',\n", @@ -191,6 +193,8 @@ " 'Positive particle concentration [mol.m-3]',\n", " 'X-averaged positive particle concentration',\n", " 'X-averaged positive particle concentration [mol.m-3]',\n", + " 'R-averaged positive particle concentration',\n", + " 'R-averaged positive particle concentration [mol.m-3]',\n", " 'Positive particle surface concentration',\n", " 'Positive particle surface concentration [mol.m-3]',\n", " 'X-averaged positive particle surface concentration',\n", @@ -381,12 +385,12 @@ " 'X-averaged positive electrode surface potential difference',\n", " 'Positive electrode surface potential difference [V]',\n", " 'X-averaged positive electrode surface potential difference [V]',\n", + " 'Negative particle distribution in x',\n", " 'Negative particle flux',\n", " 'X-averaged negative particle flux',\n", - " 'Negative particle distribution in x',\n", + " 'Positive particle distribution in x',\n", " 'Positive particle flux',\n", " 'X-averaged positive particle flux',\n", - " 'Positive particle distribution in x',\n", " 'Negative electrode effective conductivity',\n", " 'Negative electrode current density',\n", " 'Negative electrode current density [A.m-2]',\n", @@ -398,10 +402,22 @@ " 'Electrolyte current density [A.m-2]',\n", " 'Ohmic heating',\n", " 'Ohmic heating [W.m-3]',\n", + " 'X-averaged Ohmic heating',\n", + " 'X-averaged Ohmic heating [W.m-3]',\n", + " 'Volume-averaged Ohmic heating',\n", + " 'Volume-averaged Ohmic heating [W.m-3]',\n", " 'Irreversible electrochemical heating',\n", " 'Irreversible electrochemical heating [W.m-3]',\n", + " 'X-averaged irreversible electrochemical heating',\n", + " 'X-averaged irreversible electrochemical heating [W.m-3]',\n", + " 'Volume-averaged irreversible electrochemical heating',\n", + " 'Volume-averaged irreversible electrochemical heating[W.m-3]',\n", " 'Reversible heating',\n", " 'Reversible heating [W.m-3]',\n", + " 'X-averaged reversible heating',\n", + " 'X-averaged reversible heating [W.m-3]',\n", + " 'Volume-averaged reversible heating',\n", + " 'Volume-averaged reversible heating [W.m-3]',\n", " 'Total heating',\n", " 'Total heating [W.m-3]',\n", " 'X-averaged total heating',\n", @@ -416,6 +432,8 @@ " 'Sei interfacial current density',\n", " 'Sei interfacial current density [A.m-2]',\n", " 'Sei interfacial current density per volume [A.m-3]',\n", + " 'Negative surface area per unit volume distribution in x',\n", + " 'Positive surface area per unit volume distribution in x',\n", " 'Negative electrode interfacial current density',\n", " 'X-averaged negative electrode interfacial current density',\n", " 'Negative electrode interfacial current density [A.m-2]',\n", @@ -554,7 +572,7 @@ " 'Terminal power [W]']" ] }, - "execution_count": 2, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -567,12 +585,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You can also search the list of variables for a particular string (e.g. \"electrolyte\")" + "There are a _lot_ of variables. You can also search the list of variables for a particular string (e.g. \"electrolyte\")" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -660,13 +678,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "210ea1fb46d9436e8b48f53c70b80db7", + "model_id": "500cc762737441e29f10ad74539ab7ca", "version_major": 2, "version_minor": 0 }, @@ -679,8 +697,8 @@ } ], "source": [ - "quick_plot_vars = [\"Terminal voltage [V]\"]\n", - "sim.plot(quick_plot_vars=quick_plot_vars)" + "output_variables = [\"Terminal voltage [V]\"]\n", + "sim.plot(output_variables=output_variables)" ] }, { @@ -692,13 +710,13 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "8b13649c493c4561b647cf49f3867486", + "model_id": "cf2959d990cb4fc3a8b540f23601f2a5", "version_major": 2, "version_minor": 0 }, @@ -711,8 +729,8 @@ } ], "source": [ - "quick_plot_vars = [\"Electrolyte concentration [mol.m-3]\", \"Terminal voltage [V]\"]\n", - "sim.plot(quick_plot_vars=quick_plot_vars)" + "output_variables = [\"Electrolyte concentration [mol.m-3]\", \"Terminal voltage [V]\"]\n", + "sim.plot(output_variables=output_variables)" ] }, { @@ -724,13 +742,13 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b471a3ef004a422d9ad5797c74099c6b", + "model_id": "7ec90fc467fc4a5aaf48dd137cd88551", "version_major": 2, "version_minor": 0 }, @@ -748,13 +766,13 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ec65841022c74b27bc1c60757a8a3f1a", + "model_id": "8ecaf998bb0748cdaea4e350b2bc4b31", "version_major": 2, "version_minor": 0 }, @@ -776,8 +794,15 @@ "source": [ "In this tutorial we have seen how to use the plotting functionality in PyBaMM.\n", "\n", - "In [Tutorial 4](./Tutorial%204%20-%20Setting%20parameter%20values.ipynb) we show how to change model options." + "In [Tutorial 4](./Tutorial%204%20-%20Setting%20parameter%20values.ipynb) we show how to change parameter values." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -796,7 +821,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.7" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb b/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb index 4a77d2d8b6..d9c3b97513 100644 --- a/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 4 - Setting parameter values.ipynb @@ -29,7 +29,9 @@ ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", - "import pybamm" + "import pybamm\n", + "import os\n", + "os.chdir(pybamm.__path__[0]+'/..')" ] }, { @@ -135,8 +137,8 @@ " 'EC initial concentration in electrolyte [mol.m-3]': 4541.0,\n", " 'Electrode height [m]': 0.065,\n", " 'Electrode width [m]': 1.58,\n", - " 'Electrolyte conductivity [S.m-1]': <function electrolyte_conductivity_Nyman2008 at 0x7f234684e1e0>,\n", - " 'Electrolyte diffusivity [m2.s-1]': <function electrolyte_diffusivity_Nyman2008 at 0x7f2391b5a268>,\n", + " 'Electrolyte conductivity [S.m-1]': <function electrolyte_conductivity_Nyman2008 at 0x7f4fbd88a620>,\n", + " 'Electrolyte diffusivity [m2.s-1]': <function electrolyte_diffusivity_Nyman2008 at 0x7f500fac02f0>,\n", " 'Initial concentration in electrolyte [mol.m-3]': 1000.0,\n", " 'Initial concentration in negative electrode [mol.m-3]': 29866.0,\n", " 'Initial concentration in positive electrode [mol.m-3]': 17038.0,\n", @@ -407,10 +409,9 @@ " 'Negative electrode diffusivity [m2.s-1]': 3.3e-14,\n", " 'Negative electrode double-layer capacity [F.m-2]': 0.2,\n", " 'Negative electrode electrons in reaction': 1.0,\n", - " 'Negative electrode exchange-current density [A.m-2]': <function graphite_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x7f23886d5ea0>,\n", + " 'Negative electrode exchange-current density [A.m-2]': <function graphite_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x7f5004e5d840>,\n", " 'Negative electrode porosity': 0.25,\n", " 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", - " 'Negative electrode surface area to volume ratio [m-1]': 383959.0,\n", " 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7,\n", " 'Negative electrode thickness [m]': 8.52e-05,\n", " 'Negative particle distribution in x': 1.0,\n", @@ -675,10 +676,9 @@ " 'Positive electrode diffusivity [m2.s-1]': 4e-15,\n", " 'Positive electrode double-layer capacity [F.m-2]': 0.2,\n", " 'Positive electrode electrons in reaction': 1.0,\n", - " 'Positive electrode exchange-current density [A.m-2]': <function nmc_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x7f234684e0d0>,\n", + " 'Positive electrode exchange-current density [A.m-2]': <function nmc_LGM50_electrolyte_exchange_current_density_Chen2020 at 0x7f4fbd88a510>,\n", " 'Positive electrode porosity': 0.335,\n", " 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", - " 'Positive electrode surface area to volume ratio [m-1]': 382184.0,\n", " 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1,\n", " 'Positive electrode thickness [m]': 7.56e-05,\n", " 'Positive particle distribution in x': 1.0,\n", @@ -730,8 +730,8 @@ "output_type": "stream", "text": [ "EC initial concentration in electrolyte [mol.m-3]\t4541.0\n", - "Electrolyte conductivity [S.m-1]\t<function electrolyte_conductivity_Nyman2008 at 0x7f234684e1e0>\n", - "Electrolyte diffusivity [m2.s-1]\t<function electrolyte_diffusivity_Nyman2008 at 0x7f2391b5a268>\n", + "Electrolyte conductivity [S.m-1]\t<function electrolyte_conductivity_Nyman2008 at 0x7f4fbd88a620>\n", + "Electrolyte diffusivity [m2.s-1]\t<function electrolyte_diffusivity_Nyman2008 at 0x7f500fac02f0>\n", "Initial concentration in electrolyte [mol.m-3]\t1000.0\n", "Negative electrode Bruggeman coefficient (electrolyte)\t1.5\n", "Positive electrode Bruggeman coefficient (electrolyte)\t1.5\n", @@ -753,13 +753,13 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "b5f87571fee74cbb90479e86401f1eb4", + "model_id": "2679c387ef134d2eaf3aa2926e45e025", "version_major": 2, "version_minor": 0 }, @@ -796,7 +796,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -813,7 +813,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -829,13 +829,13 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "947dc63e8bf449028214c950ff6f6844", + "model_id": "84b98b54fb614eabb0799673de97f6fd", "version_major": 2, "version_minor": 0 }, @@ -864,34 +864,51 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "You can also simulate drive cycles by passing the data directly" + "### Drive cycle" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can implement drive cycles importing the dataset and creating an interpolant to pass as the current function." ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ - "parameter_values[\"Current function [A]\"] = \"[current data]US06\"" + "import pandas as pd # needed to read the csv data file\n", + "\n", + "# Import drive cycle from file\n", + "drive_cycle = pd.read_csv(\"pybamm/input/drive_cycles/US06.csv\", comment=\"#\", header=None).to_numpy()\n", + "\n", + "# Create interpolant\n", + "timescale = parameter_values.evaluate(model.timescale)\n", + "current_interpolant = pybamm.Interpolant(drive_cycle, timescale * pybamm.t)\n", + "\n", + "# Set drive cycle\n", + "parameter_values[\"Current function [A]\"] = current_interpolant" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Then we can just define the model and solve it" + "Note that your drive cycle data can be stored anywhere, you just need to pass the path of the file. Then, again, the model can be solved as usual but notice that now, if `t_eval` is not specified, the solver will take the time points from the data set." ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "08ca39eec4544f6b86e227156d3937b2", + "model_id": "4f01888556824b2ca66bd91c0fe61783", "version_major": 2, "version_minor": 0 }, @@ -910,6 +927,13 @@ "sim.plot([\"Current [A]\", \"Terminal voltage [V]\"])" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Custom current function" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -919,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -940,13 +964,13 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "e166a9f922d14eaebe4be57072829277", + "model_id": "08ef31fef963457cbbfe6519c0b5e8ad", "version_major": 2, "version_minor": 0 }, @@ -972,6 +996,13 @@ "source": [ "In this notebook we have seen how we can change the parameters of our model. In [Tutorial 5](./Tutorial%205%20-%20Run%20experiments.ipynb) we show how can we define and run experiments." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/notebooks/Getting Started/Tutorial 6 - Managing simulation outputs.ipynb b/examples/notebooks/Getting Started/Tutorial 6 - Managing simulation outputs.ipynb index a4d0c9569a..565726a863 100644 --- a/examples/notebooks/Getting Started/Tutorial 6 - Managing simulation outputs.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 6 - Managing simulation outputs.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -31,10 +31,10 @@ { "data": { "text/plain": [ - "<pybamm.solvers.solution.Solution at 0x7fd5b3e91be0>" + "<pybamm.solvers.solution.Solution at 0x7f39e107d1d0>" ] }, - "execution_count": 2, + "execution_count": 1, "metadata": {}, "output_type": "execute_result" } @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -79,7 +79,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -96,35 +96,35 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([3.77057104, 3.75314461, 3.74576311, 3.74048117, 3.73590496,\n", - " 3.73162686, 3.72751691, 3.72353235, 3.71965942, 3.71589494,\n", - " 3.71223915, 3.70869332, 3.70525855, 3.70193545, 3.69872414,\n", - " 3.69562413, 3.69263434, 3.68975318, 3.68697862, 3.68430825,\n", - " 3.68173935, 3.67926889, 3.67689358, 3.67460986, 3.67241392,\n", - " 3.67030168, 3.6682687 , 3.66631015, 3.66442061, 3.66259389,\n", - " 3.66082272, 3.65909835, 3.6574099 , 3.65574365, 3.65408194,\n", - " 3.65240196, 3.65067434, 3.64886178, 3.64691843, 3.64479094,\n", - " 3.64242262, 3.63976266, 3.63678089, 3.63348596, 3.62994003,\n", - " 3.62625983, 3.62259742, 3.61910534, 3.61590162, 3.61305016,\n", - " 3.61056143, 3.60840702, 3.60653781, 3.60489893, 3.60343905,\n", - " 3.60211465, 3.6008912 , 3.59974248, 3.59864935, 3.59759829,\n", - " 3.59658021, 3.59558935, 3.59462252, 3.59367839, 3.59275703,\n", - " 3.59185944, 3.59098715, 3.59014183, 3.5893249 , 3.58853704,\n", - " 3.58777775, 3.58704477, 3.58633355, 3.5856367 , 3.58494342,\n", - " 3.58423909, 3.58350484, 3.58271739, 3.58184885, 3.58086676,\n", - " 3.57973396, 3.57840835, 3.57684218, 3.57498043, 3.57275802,\n", - " 3.57009488, 3.56688821, 3.56300064, 3.55824248, 3.55234574,\n", - " 3.54492659, 3.53543151, 3.52306093, 3.50666266, 3.48458575,\n", - " 3.45448664, 3.4130848 , 3.35588169, 3.27689371, 3.16851934])" + "array([3.77047806, 3.75305163, 3.74567013, 3.74038819, 3.73581198,\n", + " 3.73153388, 3.72742394, 3.72343938, 3.71956644, 3.71580196,\n", + " 3.71214617, 3.70860034, 3.70516557, 3.70184247, 3.69863116,\n", + " 3.69553115, 3.69254136, 3.6896602 , 3.68688564, 3.68421527,\n", + " 3.68164637, 3.67917591, 3.6768006 , 3.67451688, 3.67232094,\n", + " 3.6702087 , 3.66817572, 3.66621717, 3.66432763, 3.66250091,\n", + " 3.66072975, 3.65900537, 3.65731692, 3.65565067, 3.65398896,\n", + " 3.65230898, 3.65058136, 3.6487688 , 3.64682545, 3.64469796,\n", + " 3.64232964, 3.63966968, 3.63668791, 3.63339298, 3.62984705,\n", + " 3.62616685, 3.62250444, 3.61901236, 3.61580864, 3.61295718,\n", + " 3.61046845, 3.60831404, 3.60644483, 3.60480596, 3.60334607,\n", + " 3.60202167, 3.60079822, 3.5996495 , 3.59855637, 3.59750531,\n", + " 3.59648723, 3.59549638, 3.59452954, 3.59358541, 3.59266405,\n", + " 3.59176646, 3.59089417, 3.59004885, 3.58923192, 3.58844407,\n", + " 3.58768477, 3.58695179, 3.58624057, 3.58554372, 3.58485045,\n", + " 3.58414611, 3.58341187, 3.58262441, 3.58175587, 3.58077378,\n", + " 3.57964098, 3.57831538, 3.5767492 , 3.57488745, 3.57266504,\n", + " 3.5700019 , 3.56679523, 3.56290767, 3.5581495 , 3.55225276,\n", + " 3.54483362, 3.53533853, 3.52296795, 3.50656968, 3.48449277,\n", + " 3.45439366, 3.41299183, 3.35578872, 3.27680073, 3.16842637])" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -175,7 +175,7 @@ " 3490.90909091, 3527.27272727, 3563.63636364, 3600. ])" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -193,16 +193,16 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "array([3.72957189, 3.70869332, 3.6782 , 3.65409855])" + "array([3.72947891, 3.70860034, 3.67810702, 3.65400558])" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -227,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -243,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -259,13 +259,13 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "cf1e17785b834c7dbee9b936027904d1", + "model_id": "7e116fdff90e40b28b3f13b79f3e7347", "version_major": 2, "version_minor": 0 }, @@ -290,7 +290,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -307,13 +307,13 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "0c585713c60f4ec68dcbbe5496e84c59", + "model_id": "cb9640519af3475b9b921b8523c01020", "version_major": 2, "version_minor": 0 }, @@ -327,10 +327,10 @@ { "data": { "text/plain": [ - "<pybamm.plotting.quick_plot.QuickPlot at 0x7fd5af060da0>" + "<pybamm.plotting.quick_plot.QuickPlot at 0x7f39dc81a0b8>" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -349,7 +349,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -365,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -379,6 +379,34 @@ "source": [ "In this notebook we have shown how to extract and store the outputs of PyBaMM's simulations. Next, in [Tutorial 7](./Tutorial%207%20-%20Model%20options.ipynb) we will show how to change the model options." ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before finishing we will remove the data files we saved so that we leave the directory as we found it" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.remove(\"SPMe.pkl\")\n", + "os.remove(\"SPMe_sol.pkl\")\n", + "os.remove(\"sol_data.pkl\")\n", + "os.remove(\"sol_data.csv\")\n", + "os.remove(\"sol_data.mat\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/notebooks/Getting Started/Tutorial 7 - Model options.ipynb b/examples/notebooks/Getting Started/Tutorial 7 - Model options.ipynb index a8cfd5c18e..9447f4838d 100644 --- a/examples/notebooks/Getting Started/Tutorial 7 - Model options.ipynb +++ b/examples/notebooks/Getting Started/Tutorial 7 - Model options.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -31,12 +31,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this tutorial, we add a thermal model to the SPMe. From the [documentation](https://pybamm.readthedocs.io/en/latest/source/models/base_models/base_battery_model.html), we see that we have a choice of either a 'x-full' thermal model or a number of different lumped thermal models. We choose the full thermal model, which solves the spatially-dependent heat equation on our battery geometry, and couples the temperature with the electrochemistry. We set the model options by creating a Python dictionary:" + "In this tutorial, we add a thermal model to the SPMe. From the [documentation](https://pybamm.readthedocs.io/en/latest/source/models/base_models/base_battery_model.html), we see that we have a choice of either a 'x-full' thermal model or a number of different lumped thermal models. For a deeper look at the thermal models see the [thermal models notebook](../models/thermal-models.ipynb). We choose the full thermal model, which solves the spatially-dependent heat equation on our battery geometry, and couples the temperature with the electrochemistry. We set the model options by creating a Python dictionary:" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -52,16 +52,16 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<pybamm.solvers.solution.Solution at 0x7f5d433cf7f0>" + "<pybamm.solvers.solution.Solution at 0x7fae75b904e0>" ] }, - "execution_count": 3, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -85,13 +85,13 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "7e85b1c4a9094d17b2a9c7c944f1b093", + "model_id": "bfcf6b4c55e5433bae07f3e94fe6aea9", "version_major": 2, "version_minor": 0 }, @@ -111,8 +111,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this tutorial we have seen how to adjust the model options. To see all of the options currently available in PyBaMM, please take a look at the documentation [here](https://pybamm.readthedocs.io/en/latest/source/models/base_models/base_battery_model.html)." + "In this tutorial we have seen how to adjust the model options. To see all of the options currently available in PyBaMM, please take a look at the documentation [here](https://pybamm.readthedocs.io/en/latest/source/models/base_models/base_battery_model.html).\n", + "\n", + "In the [next tutorial](./Tutorial%208%20-%20Solver%20options.ipynb) we show how to change the solver options." ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/notebooks/Getting Started/Tutorial 8 - Solver options.ipynb b/examples/notebooks/Getting Started/Tutorial 8 - Solver options.ipynb new file mode 100644 index 0000000000..f95c225f3d --- /dev/null +++ b/examples/notebooks/Getting Started/Tutorial 8 - Solver options.ipynb @@ -0,0 +1,147 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial 8 - Solver options\n", + "\n", + "In [Tutorial 7](./Tutorial%207%20-%20Model%20options.ipynb) we saw how to change the model options. In this tutorial we will show how to pass options to the solver.\n", + "\n", + "All models in PyBaMM have a default solver which is typically different depending on whether the model results in a system of ordinary differential equations (ODEs) or differential algebraic equations (DAEs). \n", + "\n", + "One of the most common options you will want to change is the solver tolerances. By default all tolerances are set to $10^{-6}$. However, depending on your simulation you may find you want to tighten the tolerances to obtain a more accurate solution, or you may want to loosen the tolerances to reduce the solve time. It is good practice to conduct a tolerance study, where you simulate the same problem with a tighter tolerances and compare the results. We do not show how to do this here, but we give an example of a mesh resolution study in the [next tutorial](./Tutorial%209%20-%20Changing%20the%20mesh.ipynb), which is conducted in a similar way." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install pybamm -q # install PyBaMM if it is not installed\n", + "import pybamm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we will change the absolute and relative tolerances, as well as the \"mode\" of the `CasadiSolver`. For a list of all the solver options please consult the [documentation](https://pybamm.readthedocs.io/en/latest/source/solvers/index.html).\n", + "\n", + "The `CasadiSolver` can operate in a number of modes, including \"safe\" (default) and \"fast\". Safe mode performs step-and-check integration and supports event handling (e.g. you can integrate until you hit a certain voltage), and is the recommended for simulations of a full charge or discharge. Fast mode performs direct integration, ignoring events, and is recommended when simulating a drive cycle or other simulation where no events should be triggered.\n", + "\n", + "We'll solve the DFN with all the default options in both \"safe\" and \"fast\" mode and compare the solutions. For both simulations we'll use $10^{-3}$ for both the absolute and relative tolerance. For demonstration purposes we'll change the cut-off voltage to 3.6V so we can observe the different behaviour of the two solver modes." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Safe mode solve time: 0.5297854829987045\n", + "Fast mode solve time: 0.09761962499942456\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "2a5906d642a14d759e93c9057eecf1b9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "<pybamm.plotting.quick_plot.QuickPlot at 0x7f8dc64984a8>" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# load model and parameters\n", + "model = pybamm.lithium_ion.DFN()\n", + "param = model.default_parameter_values\n", + "param[\"Lower voltage cut-off [V]\"] = 3.6\n", + "\n", + "# load solvers\n", + "safe_solver = pybamm.CasadiSolver(atol=1e-3, rtol=1e-3, mode=\"safe\")\n", + "fast_solver = pybamm.CasadiSolver(atol=1e-3, rtol=1e-3, mode=\"fast\")\n", + "\n", + "# create simulations\n", + "safe_sim = pybamm.Simulation(model, parameter_values=param, solver=safe_solver)\n", + "fast_sim = pybamm.Simulation(model, parameter_values=param, solver=fast_solver)\n", + "\n", + "# solve\n", + "safe_sim.solve([0, 3600])\n", + "print(\"Safe mode solve time: {}\".format(safe_sim.solution.solve_time))\n", + "fast_sim.solve([0, 3600])\n", + "print(\"Fast mode solve time: {}\".format(fast_sim.solution.solve_time))\n", + "\n", + "# plot solutions\n", + "pybamm.dynamic_plot([safe_sim, fast_sim])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that both solvers give the same solution up to the time at which the cut-off voltage is reached. At this point the solver using \"safe\" mode stops, but the solver using \"fast\" mode carries on integrating until the final time. As its name suggests, \"fast\" mode integrates more quickly that \"safe\" mode, but is unsuitable if your simulation required events to be handled.\n", + "\n", + "Usually the default solver options provide a good combination of speed and accuracy, but we encourage you to investigate different solvers and options to find the best combination for your problem.\n", + "\n", + "In the [next tutorial](./Tutorial%209%20-%20Changing%20the%20mesh.ipynb) we show how to change the mesh." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/Getting Started/Tutorial 9 - Changing the mesh.ipynb b/examples/notebooks/Getting Started/Tutorial 9 - Changing the mesh.ipynb new file mode 100644 index 0000000000..3b8cacddde --- /dev/null +++ b/examples/notebooks/Getting Started/Tutorial 9 - Changing the mesh.ipynb @@ -0,0 +1,296 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tutorial 9 - Changing the mesh\n", + "\n", + "In [Tutorial 8](./Tutorial%207%20-%20Solver%20options.ipynb) we saw how to change the solver options. In this tutorial we will change the mesh used in the simulation, and show how to investigate the influence of the mesh on the solution.\n", + "\n", + "All models in PyBaMM have a default number of mesh points used in a simulation. However, depending on things like the operating conditions you are simulating or the parameters you are using, you may find you need to increase the number points in the mesh to obtain an accurate solution. On the other hand, you may find that you are able to decrease the number of mesh points and still obtain a solution with an acceptable degree of accuracy but in a shorter amount of computational time. \n", + "\n", + "It is always good practice to conduct a mesh refinement study, where you simulate the same problem with a finer mesh and compare the results. Here will show how to do this graphically, but in practice you may wish to do a more detailed calculation of the relative error." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install pybamm -q # install PyBaMM if it is not installed\n", + "import pybamm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Changing the number of points in the mesh\n", + "\n", + "First we load a model" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "model = pybamm.lithium_ion.SPMe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then look at the default number of points, which are stored as a dictionary whose keys are the variables for each domain" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{SpatialVariable(0x62eb5d16885394c9, x_n, children=[], domain=['negative electrode'], auxiliary_domains={'secondary': \"['current collector']\"}): 20,\n", + " SpatialVariable(-0x14459c29151bda45, x_s, children=[], domain=['separator'], auxiliary_domains={'secondary': \"['current collector']\"}): 20,\n", + " SpatialVariable(-0x4a38fdaaecee173f, x_p, children=[], domain=['positive electrode'], auxiliary_domains={'secondary': \"['current collector']\"}): 20,\n", + " SpatialVariable(-0xf387938c410c357, r_n, children=[], domain=['negative particle'], auxiliary_domains={'secondary': \"['negative electrode']\", 'tertiary': \"['current collector']\"}): 30,\n", + " SpatialVariable(0x2f93da3e03d4dcbe, r_p, children=[], domain=['positive particle'], auxiliary_domains={'secondary': \"['positive electrode']\", 'tertiary': \"['current collector']\"}): 30,\n", + " SpatialVariable(0x14b0200ccfc1f5cc, y, children=[], domain=['current collector'], auxiliary_domains={}): 10,\n", + " SpatialVariable(-0x4938b510c47f7708, z, children=[], domain=['current collector'], auxiliary_domains={}): 10}" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.default_var_pts" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To run a simulation with a different number of points we can define our own dictionary " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# get the spatial variables used in pybamm\n", + "var = pybamm.standard_spatial_vars \n", + "\n", + "# create our dictionary \n", + "var_pts = {\n", + " var.x_n: 10, # negative electrode\n", + " var.x_s: 10, # separator \n", + " var.x_p: 10, # positive electrode\n", + " var.r_n: 10, # negative particle\n", + " var.r_p: 10, # positive particle\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then create and solve a simulation, passing the dictionary of points as a keyword argument" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<pybamm.solvers.solution.Solution at 0x7f8beed56e80>" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim = pybamm.Simulation(model, var_pts=var_pts)\n", + "sim.solve([0, 3600])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and plot the solution in the usual way" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0613bdd52da440c9925d1dcb26558e71", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sim.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conducting a mesh refinement study\n", + "\n", + "In order to investigate the influence of the mesh on the solution we must solve the model multiple times, increasing the mesh resolution as we go. We first create a list of the number of points per domain we would like to use" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "npts = [4, 8, 16, 32, 64]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and now we can loop over the list, creating and solving simulations as we go. The solutions are stored in the list `solutions`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# choose model and parameters\n", + "model = pybamm.lithium_ion.DFN()\n", + "chemistry = pybamm.parameter_sets.Ecker2015\n", + "parameter_values = pybamm.ParameterValues(chemistry=chemistry)\n", + "\n", + "# choose solver \n", + "solver = pybamm.CasadiSolver(mode=\"fast\")\n", + "\n", + "# loop over number of mesh points\n", + "solutions = []\n", + "for N in npts:\n", + " var_pts = {\n", + " var.x_n: N, # negative electrode\n", + " var.x_s: N, # separator \n", + " var.x_p: N, # positive electrode\n", + " var.r_n: N, # negative particle\n", + " var.r_p: N, # positive particle\n", + " } \n", + " sim = pybamm.Simulation(\n", + " model, solver=solver, parameter_values=parameter_values, var_pts=var_pts\n", + " )\n", + " sim.solve([0, 3600])\n", + " solutions.append(sim.solution)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now pass our list of solutions to the dynamic plot method, allowing use to see the influence of the mesh on the computed terminal voltage. We pass our list of points using the `labels` keyword so that the plots are labeled with the number of points used in the simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "99cad0a3137b4ee1ba353ae02b02b43f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=3600.0, step=36.0), Output()), _dom_classes=…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "<pybamm.plotting.quick_plot.QuickPlot at 0x7f8beb334e80>" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pybamm.dynamic_plot(solutions, [\"Terminal voltage [V]\"], time_unit=\"seconds\", labels=npts) " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/README.md b/examples/notebooks/README.md index b83a1044fc..2873777041 100644 --- a/examples/notebooks/README.md +++ b/examples/notebooks/README.md @@ -13,7 +13,7 @@ These notebooks can be downloaded and used locally by running ``` $ jupyter notebook ``` -from your local PyBaMM repository, or used online through [Binder](https://mybinder.org/v2/gh/pybamm-team/PyBaMM/master), or you can simply copy/paste the relevant code. +from your local PyBaMM repository or used online through [Google Colab](https://colab.research.google.com/github/pybamm-team/PyBaMM/blob/master/). Alternatively, you can simply copy/paste the relevant code. ## Using PyBaMM @@ -41,8 +41,8 @@ For more advanced usage, new sets of parameters, spatial methods and solvers can PyBaMM is built around an expression tree structure. -- [The expression tree notebook](expression_tree/expression-tree.ipynb) explains how this works, from model creation to solution. -- [The broadcast notebook](expression_tree/broadcasts.ipynb) explains the different types of broadcast. +- [The expression tree notebook](expression_tree/expression-tree.ipynb) explains how this works, from model creation to solution. +- [The broadcast notebook](expression_tree/broadcasts.ipynb) explains the different types of broadcast. The following notebooks are specific to different stages of the PyBaMM pipeline, such as choosing a model, spatial method, or solver. @@ -67,7 +67,8 @@ Once you are comfortable with the expression tree structure, a good starting poi ### Spatial Methods The following spatial methods are implemented -- [Finite Volumes](./spatial_methods/finite-volumes.ipynb) +- [Finite Volumes](./spatial_methods/finite-volumes.ipynb) (1D only) +- Spectral Volumes (1D only) - Finite Elements (only for 2D current collector domains) See [here](https://pybamm.readthedocs.io/en/latest/tutorials/add-spatial-method.html) for instructions on adding new spatial methods. diff --git a/examples/notebooks/change-input-current.ipynb b/examples/notebooks/change-input-current.ipynb index 3bc1a17255..d0cf216944 100644 --- a/examples/notebooks/change-input-current.ipynb +++ b/examples/notebooks/change-input-current.ipynb @@ -27,7 +27,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -48,9 +48,6 @@ "# create the model\n", "model = pybamm.lithium_ion.DFN()\n", "\n", - "# set the default model geometry\n", - "geometry = model.default_geometry\n", - "\n", "# set the default model parameters\n", "param = model.default_parameter_values\n", "\n", @@ -62,7 +59,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We can now solve the model in the usual way, with a 1.6A current" + "We can set up a simulation in the usual way, making sure we pass in our updated parameters. We choose to solve with a 1.6A current. In order to do this we must pass a dictionary of inputs whose keys are the parameter names and values are the values we want to use for that call to solve" ] }, { @@ -75,7 +72,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "807f6dec221b4226aea64326d51c751b", + "model_id": "3618af62527f494f9316b382a72bafe7", "version_major": 2, "version_minor": 0 }, @@ -88,25 +85,15 @@ } ], "source": [ - "# set the parameters for the model and the geometry\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)\n", - "\n", - "# mesh the domains\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", + "# set up simlation\n", + "simulation = pybamm.Simulation(model, parameter_values=param)\n", "\n", - "# discretise the model equations\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model)\n", - "\n", - "# Solve the model at the given time points\n", - "solver = pybamm.CasadiSolver()\n", + "# solve the model at the given time points, passing the current as an input\n", "t_eval = np.linspace(0, 600, 300)\n", - "solution = solver.solve(model, t_eval, inputs={\"Current function [A]\": 1.6})\n", + "simulation.solve(t_eval, inputs={\"Current function [A]\": 1.6})\n", "\n", "# plot\n", - "quick_plot = pybamm.QuickPlot(solution)\n", - "quick_plot.dynamic_plot();" + "simulation.plot()" ] }, { @@ -124,7 +111,7 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "eaab57697cef4852b4fbab5ee1f7efd7", + "model_id": "2c12a37de83a48d1bb6c2dd88ca470f6", "version_major": 2, "version_minor": 0 }, @@ -137,12 +124,11 @@ } ], "source": [ - "# Solve the model at the given time points\n", - "solution = solver.solve(model, t_eval, inputs={\"Current function [A]\": 0})\n", + "# solve the model at the given time points\n", + "simulation.solve(t_eval, inputs={\"Current function [A]\": 0})\n", "\n", "# plot\n", - "quick_plot = pybamm.QuickPlot(solution)\n", - "quick_plot.dynamic_plot();" + "simulation.plot()" ] }, { @@ -151,18 +137,53 @@ "source": [ "## Loading in current data <a name=\"data\"></a>\n", "\n", - "Data can be loaded in from a csv file by putting the file in the folder 'input/drive_cycles' and using the prefix \"[current data]\". As an example, we show how to solve the SPM using the US06 drive cycle" + "To run drive cycles from data we can create an interpolant and pass it as the current function. " ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd # needed to read the csv data file\n", + "\n", + "model = pybamm.lithium_ion.DFN()\n", + "\n", + "# import drive cycle from file\n", + "drive_cycle = pd.read_csv(\"pybamm/input/drive_cycles/US06.csv\", comment=\"#\", header=None).to_numpy()\n", + "\n", + "# load parameter values\n", + "param = model.default_parameter_values\n", + "\n", + "# create interpolant - must be a function of *dimensional* time\n", + "timescale = param.evaluate(model.timescale)\n", + "current_interpolant = pybamm.Interpolant(drive_cycle, timescale * pybamm.t)\n", + "\n", + "# set drive cycle\n", + "param[\"Current function [A]\"] = current_interpolant\n", + "\n", + "# set up simulation - for drive cycles we recommend using the CasadiSolver in \"fast\" mode\n", + "solver = pybamm.CasadiSolver(mode=\"fast\")\n", + "simulation = pybamm.Simulation(model, parameter_values=param, solver=solver)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that when simulating drive cycles there is no need to pass a list of times at which to return the solution, the results are automatically returned at the time points in the data. If you would like the solution returned at times different to those in the data then you can pass an array of times `t_eval` to `solve` in the usual way." + ] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a72be467b6f84733927cb2e7a5c4b3f9", + "model_id": "585b85222a45476cbfdae10dd0a07e97", "version_major": 2, "version_minor": 0 }, @@ -175,31 +196,11 @@ } ], "source": [ - "model = pybamm.lithium_ion.DFN()\n", - "\n", - "# create geometry\n", - "geometry = model.default_geometry\n", - "\n", - "# load parameter values and process model and geometry\n", - "param = model.default_parameter_values\n", - "param[\"Current function [A]\"] = \"[current data]US06\"\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)\n", - "\n", - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model)\n", - "\n", "# simulate US06 drive cycle (duration 600 seconds)\n", - "t_eval = np.linspace(0, 600, 600)\n", - "solution = solver.solve(model, t_eval)\n", + "simulation.solve()\n", "\n", "# plot\n", - "quick_plot = pybamm.QuickPlot(solution)\n", - "quick_plot.dynamic_plot();" + "simulation.plot()" ] }, { @@ -217,12 +218,12 @@ "\n", "A user defined current function can be passed to any model by specifying either a function or a set of data points for interpolation.\n", "\n", - "For example, you may want to simulate a sinusoidal current with amplitude A and freqency omega. In order to do so you must first define the method" + "For example, you may want to simulate a sinusoidal current with amplitude A and frequency omega. In order to do so you must first define the method" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -244,26 +245,19 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "model = pybamm.lithium_ion.SPM()\n", "\n", - "# create geometry\n", - "geometry = model.default_geometry\n", - "\n", "# load default parameter values\n", "param = model.default_parameter_values\n", "\n", "# set user defined current function\n", - "A = pybamm.electrical_parameters.I_typ\n", + "A = model.param.I_typ\n", "omega = 0.1\n", - "param[\"Current function [A]\"] = my_fun(A,omega)\n", - "\n", - "# process model and geometry\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)" + "param[\"Current function [A]\"] = my_fun(A,omega)\n" ] }, { @@ -275,13 +269,13 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "7dff98a2d9a44f87b71abeb0a94e16c9", + "model_id": "8910bc31f25f4a679fde080e5c943cc0", "version_major": 2, "version_minor": 0 }, @@ -294,24 +288,19 @@ } ], "source": [ - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model)\n", + "# set up simulation\n", + "simulation = pybamm.Simulation(model, parameter_values=param)\n", "\n", "# Example: simulate for 30 seconds\n", "simulation_time = 30 # end time in seconds\n", "npts = int(50 * simulation_time * omega) # need enough timesteps to resolve output\n", "t_eval = np.linspace(0, simulation_time, npts)\n", - "solution = model.default_solver.solve(model, t_eval)\n", + "solution = simulation.solve(t_eval)\n", "label = [\"Frequency: {} Hz\".format(omega)]\n", "\n", "# plot current and voltage\n", "output_variables = [\"Current [A]\", \"Terminal voltage [V]\"]\n", - "quick_plot = pybamm.QuickPlot(solution, output_variables, label)\n", - "quick_plot.dynamic_plot();" + "simulation.plot(output_variables, labels=label)" ] }, { @@ -338,7 +327,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.7" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/change-settings.ipynb b/examples/notebooks/change-settings.ipynb index 4d30b7b9d6..ab00333a00 100644 --- a/examples/notebooks/change-settings.ipynb +++ b/examples/notebooks/change-settings.ipynb @@ -6,7 +6,8 @@ "source": [ "# Changing settings when solving PyBaMM models\n", "\n", - "[This](./models/SPM.ipynb) example notebook showed how to run an SPM battery model, using the default parameters, discretisation and solvers that were defined for that particular model. Naturally we would like the ability to alter these options on a case by case basis, and this notebook gives an example of how to do this, again using the SPM model.\n", + "[This](./models/SPM.ipynb) example notebook showed how to run an SPM battery model, using the default parameters, discretisation and solvers that were defined for that particular model. Naturally we would like the ability to alter these options on a case by case basis, and this notebook gives an example of how to do this, again using the SPM model. In this notebook we explicitly handle all the stages of setting up, processing and solving the model in order to explain them in detail. However, it is often simpler in practice to use the `Simulation` class, which handles many of the stages automatically, as shown [here](../simulation-class.ipynb).\n", + "\n", "\n", "### Table of Contents\n", "1. [Default SPM model](#default)\n", @@ -28,7 +29,15 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", "import pybamm\n", @@ -78,7 +87,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -117,7 +126,118 @@ { "data": { "text/plain": [ - "<bound method ParameterValues.items of <pybamm.parameters.parameter_values.ParameterValues object at 0x13017ea90>>" + "<bound method ParameterValues.items of {'1 + dlnf/dlnc': 1.0,\n", + " 'Ambient temperature [K]': 298.15,\n", + " 'Bulk solvent concentration [mol.m-3]': 2636.0,\n", + " 'Cation transference number': 0.4,\n", + " 'Cell capacity [A.h]': 0.680616,\n", + " 'Cell cooling surface area [m2]': 0.0569,\n", + " 'Cell volume [m3]': 7.8e-06,\n", + " 'Current function [A]': 0.680616,\n", + " 'EC diffusivity [m2.s-1]': 2e-18,\n", + " 'EC initial concentration in electrolyte [mol.m-3]': 4541.0,\n", + " 'Edge heat transfer coefficient [W.m-2.K-1]': 0.3,\n", + " 'Electrode height [m]': 0.13699999999999998,\n", + " 'Electrode width [m]': 0.207,\n", + " 'Electrolyte conductivity [S.m-1]': <function electrolyte_conductivity_Capiglia1999 at 0x7f1f9075d2f0>,\n", + " 'Electrolyte diffusivity [m2.s-1]': <function electrolyte_diffusivity_Capiglia1999 at 0x7f1f9075d400>,\n", + " 'Initial concentration in electrolyte [mol.m-3]': 1000.0,\n", + " 'Initial concentration in negative electrode [mol.m-3]': 19986.609595075,\n", + " 'Initial concentration in positive electrode [mol.m-3]': 30730.755438556498,\n", + " 'Initial inner SEI thickness [m]': 2.5e-09,\n", + " 'Initial outer SEI thickness [m]': 2.5e-09,\n", + " 'Initial temperature [K]': 298.15,\n", + " 'Inner SEI electron conductivity [S.m-1]': 8.95e-14,\n", + " 'Inner SEI lithium interstitial diffusivity [m2.s-1]': 1.0000000000000001e-20,\n", + " 'Inner SEI open-circuit potential [V]': 0.1,\n", + " 'Inner SEI partial molar volume [m3.mol-1]': 9.585e-05,\n", + " 'Inner SEI reaction proportion': 0.5,\n", + " 'Lithium interstitial reference concentration [mol.m-3]': 15.0,\n", + " 'Lower voltage cut-off [V]': 3.105,\n", + " 'Maximum concentration in negative electrode [mol.m-3]': 24983.2619938437,\n", + " 'Maximum concentration in positive electrode [mol.m-3]': 51217.9257309275,\n", + " 'Negative current collector conductivity [S.m-1]': 59600000.0,\n", + " 'Negative current collector density [kg.m-3]': 8954.0,\n", + " 'Negative current collector specific heat capacity [J.kg-1.K-1]': 385.0,\n", + " 'Negative current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0,\n", + " 'Negative current collector thermal conductivity [W.m-1.K-1]': 401.0,\n", + " 'Negative current collector thickness [m]': 2.5e-05,\n", + " 'Negative electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Negative electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Negative electrode OCP [V]': <function graphite_mcmb2528_ocp_Dualfoil1998 at 0x7f1f90ecef28>,\n", + " 'Negative electrode OCP entropic change [V.K-1]': <function graphite_entropic_change_Moura2016 at 0x7f1f9075d048>,\n", + " 'Negative electrode active material volume fraction': 0.6,\n", + " 'Negative electrode cation signed stoichiometry': -1.0,\n", + " 'Negative electrode charge transfer coefficient': 0.5,\n", + " 'Negative electrode conductivity [S.m-1]': 100.0,\n", + " 'Negative electrode density [kg.m-3]': 1657.0,\n", + " 'Negative electrode diffusivity [m2.s-1]': <function graphite_mcmb2528_diffusivity_Dualfoil1998 at 0x7f1f90eced08>,\n", + " 'Negative electrode double-layer capacity [F.m-2]': 0.2,\n", + " 'Negative electrode electrons in reaction': 1.0,\n", + " 'Negative electrode exchange-current density [A.m-2]': <function graphite_electrolyte_exchange_current_density_Dualfoil1998 at 0x7f1f90eceea0>,\n", + " 'Negative electrode porosity': 0.3,\n", + " 'Negative electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", + " 'Negative electrode thermal conductivity [W.m-1.K-1]': 1.7,\n", + " 'Negative electrode thickness [m]': 0.0001,\n", + " 'Negative particle distribution in x': 1.0,\n", + " 'Negative particle radius [m]': 1e-05,\n", + " 'Negative tab centre y-coordinate [m]': 0.06,\n", + " 'Negative tab centre z-coordinate [m]': 0.13699999999999998,\n", + " 'Negative tab heat transfer coefficient [W.m-2.K-1]': 10.0,\n", + " 'Negative tab width [m]': 0.04,\n", + " 'Number of cells connected in series to make a battery': 1.0,\n", + " 'Number of electrodes connected in parallel to make a cell': 1.0,\n", + " 'Outer SEI open-circuit potential [V]': 0.8,\n", + " 'Outer SEI partial molar volume [m3.mol-1]': 9.585e-05,\n", + " 'Outer SEI solvent diffusivity [m2.s-1]': 2.5000000000000002e-22,\n", + " 'Positive current collector conductivity [S.m-1]': 35500000.0,\n", + " 'Positive current collector density [kg.m-3]': 2707.0,\n", + " 'Positive current collector specific heat capacity [J.kg-1.K-1]': 897.0,\n", + " 'Positive current collector surface heat transfer coefficient [W.m-2.K-1]': 0.0,\n", + " 'Positive current collector thermal conductivity [W.m-1.K-1]': 237.0,\n", + " 'Positive current collector thickness [m]': 2.5e-05,\n", + " 'Positive electrode Bruggeman coefficient (electrode)': 1.5,\n", + " 'Positive electrode Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Positive electrode OCP [V]': <function lico2_ocp_Dualfoil1998 at 0x7f1f9075d158>,\n", + " 'Positive electrode OCP entropic change [V.K-1]': <function lico2_entropic_change_Moura2016 at 0x7f1f9075d268>,\n", + " 'Positive electrode active material volume fraction': 0.5,\n", + " 'Positive electrode cation signed stoichiometry': -1.0,\n", + " 'Positive electrode charge transfer coefficient': 0.5,\n", + " 'Positive electrode conductivity [S.m-1]': 10.0,\n", + " 'Positive electrode density [kg.m-3]': 3262.0,\n", + " 'Positive electrode diffusivity [m2.s-1]': <function lico2_diffusivity_Dualfoil1998 at 0x7f1f9075d0d0>,\n", + " 'Positive electrode double-layer capacity [F.m-2]': 0.2,\n", + " 'Positive electrode electrons in reaction': 1.0,\n", + " 'Positive electrode exchange-current density [A.m-2]': <function lico2_electrolyte_exchange_current_density_Dualfoil1998 at 0x7f1f9075d1e0>,\n", + " 'Positive electrode porosity': 0.3,\n", + " 'Positive electrode specific heat capacity [J.kg-1.K-1]': 700.0,\n", + " 'Positive electrode thermal conductivity [W.m-1.K-1]': 2.1,\n", + " 'Positive electrode thickness [m]': 0.0001,\n", + " 'Positive particle distribution in x': 1.0,\n", + " 'Positive particle radius [m]': 1e-05,\n", + " 'Positive tab centre y-coordinate [m]': 0.147,\n", + " 'Positive tab centre z-coordinate [m]': 0.13699999999999998,\n", + " 'Positive tab heat transfer coefficient [W.m-2.K-1]': 10.0,\n", + " 'Positive tab width [m]': 0.04,\n", + " 'Ratio of inner and outer SEI exchange current densities': 1.0,\n", + " 'Reference OCP vs SHE in the negative electrode [V]': nan,\n", + " 'Reference OCP vs SHE in the positive electrode [V]': nan,\n", + " 'Reference temperature [K]': 298.15,\n", + " 'SEI kinetic rate constant [m.s-1]': 1e-12,\n", + " 'SEI open-circuit potential [V]': 0.4,\n", + " 'SEI reaction exchange current density [A.m-2]': 1.5e-07,\n", + " 'SEI resistivity [Ohm.m]': 5000000.0,\n", + " 'Separator Bruggeman coefficient (electrode)': 1.5,\n", + " 'Separator Bruggeman coefficient (electrolyte)': 1.5,\n", + " 'Separator density [kg.m-3]': 397.0,\n", + " 'Separator porosity': 1.0,\n", + " 'Separator specific heat capacity [J.kg-1.K-1]': 700.0,\n", + " 'Separator thermal conductivity [W.m-1.K-1]': 0.16,\n", + " 'Separator thickness [m]': 2.5e-05,\n", + " 'Total heat transfer coefficient [W.m-2.K-1]': 10.0,\n", + " 'Typical current [A]': 0.680616,\n", + " 'Typical electrolyte concentration [mol.m-3]': 1000.0,\n", + " 'Upper voltage cut-off [V]': 4.7}>" ] }, "execution_count": 3, @@ -153,6 +273,8 @@ "Positive tab width [m] 0.04\n", "Positive tab centre y-coordinate [m] 0.147\n", "Positive tab centre z-coordinate [m] 0.13699999999999998\n", + "Cell cooling surface area [m2] 0.0569\n", + "Cell volume [m3] 7.8e-06\n", "Negative current collector conductivity [S.m-1] 59600000.0\n", "Positive current collector conductivity [S.m-1] 35500000.0\n", "Negative current collector density [kg.m-3] 8954.0\n", @@ -163,15 +285,15 @@ "Positive current collector thermal conductivity [W.m-1.K-1] 237.0\n", "Cell capacity [A.h] 0.680616\n", "Typical current [A] 0.680616\n", + "Current function [A] 0.680616\n", "Negative electrode conductivity [S.m-1] 100.0\n", "Maximum concentration in negative electrode [mol.m-3] 24983.2619938437\n", - "Negative electrode diffusivity [m2.s-1] <function graphite_mcmb2528_diffusivity_Dualfoil1998 at 0x12fe09f28>\n", - "Negative electrode OCP [V] <function graphite_mcmb2528_ocp_Dualfoil1998 at 0x13020a048>\n", + "Negative electrode diffusivity [m2.s-1] <function graphite_mcmb2528_diffusivity_Dualfoil1998 at 0x7f1f90eced08>\n", + "Negative electrode OCP [V] <function graphite_mcmb2528_ocp_Dualfoil1998 at 0x7f1f90ecef28>\n", "Negative electrode porosity 0.3\n", - "Negative electrode active material volume fraction 0.7\n", + "Negative electrode active material volume fraction 0.6\n", "Negative particle radius [m] 1e-05\n", "Negative particle distribution in x 1.0\n", - "Negative electrode surface area to volume ratio [m-1] 180000.0\n", "Negative electrode Bruggeman coefficient (electrolyte) 1.5\n", "Negative electrode Bruggeman coefficient (electrode) 1.5\n", "Negative electrode cation signed stoichiometry -1.0\n", @@ -179,23 +301,19 @@ "Reference OCP vs SHE in the negative electrode [V] nan\n", "Negative electrode charge transfer coefficient 0.5\n", "Negative electrode double-layer capacity [F.m-2] 0.2\n", + "Negative electrode exchange-current density [A.m-2] <function graphite_electrolyte_exchange_current_density_Dualfoil1998 at 0x7f1f90eceea0>\n", "Negative electrode density [kg.m-3] 1657.0\n", "Negative electrode specific heat capacity [J.kg-1.K-1] 700.0\n", "Negative electrode thermal conductivity [W.m-1.K-1] 1.7\n", - "Negative electrode OCP entropic change [V.K-1] <function graphite_entropic_change_Moura2016 at 0x13020a0d0>\n", - "Reference temperature [K] 298.15\n", - "Negative electrode exchange-current density [A.m-2] <function graphite_electrolyte_exchange_current_density_Dualfoil1998 at 0x13020a158>\n", - "Negative reaction rate activation energy [J.mol-1] 37480.0\n", - "Negative solid diffusion activation energy [J.mol-1] 42770.0\n", + "Negative electrode OCP entropic change [V.K-1] <function graphite_entropic_change_Moura2016 at 0x7f1f9075d048>\n", "Positive electrode conductivity [S.m-1] 10.0\n", "Maximum concentration in positive electrode [mol.m-3] 51217.9257309275\n", - "Positive electrode diffusivity [m2.s-1] <function lico2_diffusivity_Dualfoil1998 at 0x13020a268>\n", - "Positive electrode OCP [V] <function lico2_ocp_Dualfoil1998 at 0x13020a1e0>\n", + "Positive electrode diffusivity [m2.s-1] <function lico2_diffusivity_Dualfoil1998 at 0x7f1f9075d0d0>\n", + "Positive electrode OCP [V] <function lico2_ocp_Dualfoil1998 at 0x7f1f9075d158>\n", "Positive electrode porosity 0.3\n", - "Positive electrode active material volume fraction 0.7\n", + "Positive electrode active material volume fraction 0.5\n", "Positive particle radius [m] 1e-05\n", "Positive particle distribution in x 1.0\n", - "Positive electrode surface area to volume ratio [m-1] 150000.0\n", "Positive electrode Bruggeman coefficient (electrolyte) 1.5\n", "Positive electrode Bruggeman coefficient (electrode) 1.5\n", "Positive electrode cation signed stoichiometry -1.0\n", @@ -203,13 +321,11 @@ "Reference OCP vs SHE in the positive electrode [V] nan\n", "Positive electrode charge transfer coefficient 0.5\n", "Positive electrode double-layer capacity [F.m-2] 0.2\n", + "Positive electrode exchange-current density [A.m-2] <function lico2_electrolyte_exchange_current_density_Dualfoil1998 at 0x7f1f9075d1e0>\n", "Positive electrode density [kg.m-3] 3262.0\n", "Positive electrode specific heat capacity [J.kg-1.K-1] 700.0\n", "Positive electrode thermal conductivity [W.m-1.K-1] 2.1\n", - "Positive electrode OCP entropic change [V.K-1] <function lico2_entropic_change_Moura2016 at 0x13020a2f0>\n", - "Positive electrode exchange-current density [A.m-2] <function lico2_electrolyte_exchange_current_density_Dualfoil1998 at 0x13020a378>\n", - "Positive reaction rate activation energy [J.mol-1] 39570.0\n", - "Positive solid diffusion activation energy [J.mol-1] 18550.0\n", + "Positive electrode OCP entropic change [V.K-1] <function lico2_entropic_change_Moura2016 at 0x7f1f9075d268>\n", "Separator porosity 1.0\n", "Separator Bruggeman coefficient (electrolyte) 1.5\n", "Separator Bruggeman coefficient (electrode) 1.5\n", @@ -218,21 +334,44 @@ "Separator thermal conductivity [W.m-1.K-1] 0.16\n", "Typical electrolyte concentration [mol.m-3] 1000.0\n", "Cation transference number 0.4\n", - "Electrolyte diffusivity [m2.s-1] <function electrolyte_diffusivity_Capiglia1999 at 0x13020a488>\n", - "Electrolyte conductivity [S.m-1] <function electrolyte_conductivity_Capiglia1999 at 0x13020a510>\n", - "Electrolyte diffusion activation energy [J.mol-1] 37040.0\n", - "Electrolyte conductivity activation energy [J.mol-1] 34700.0\n", - "Heat transfer coefficient [W.m-2.K-1] 10.0\n", + "1 + dlnf/dlnc 1.0\n", + "Electrolyte diffusivity [m2.s-1] <function electrolyte_diffusivity_Capiglia1999 at 0x7f1f9075d400>\n", + "Electrolyte conductivity [S.m-1] <function electrolyte_conductivity_Capiglia1999 at 0x7f1f9075d2f0>\n", + "Reference temperature [K] 298.15\n", + "Ambient temperature [K] 298.15\n", + "Negative current collector surface heat transfer coefficient [W.m-2.K-1] 0.0\n", + "Positive current collector surface heat transfer coefficient [W.m-2.K-1] 0.0\n", + "Negative tab heat transfer coefficient [W.m-2.K-1] 10.0\n", + "Positive tab heat transfer coefficient [W.m-2.K-1] 10.0\n", + "Edge heat transfer coefficient [W.m-2.K-1] 0.3\n", + "Total heat transfer coefficient [W.m-2.K-1] 10.0\n", "Number of electrodes connected in parallel to make a cell 1.0\n", "Number of cells connected in series to make a battery 1.0\n", "Lower voltage cut-off [V] 3.105\n", "Upper voltage cut-off [V] 4.7\n", - "C-rate 1.0\n", "Initial concentration in negative electrode [mol.m-3] 19986.609595075\n", "Initial concentration in positive electrode [mol.m-3] 30730.755438556498\n", "Initial concentration in electrolyte [mol.m-3] 1000.0\n", "Initial temperature [K] 298.15\n", - "Current function [A] 0.680616\n" + "Inner SEI reaction proportion 0.5\n", + "Inner SEI partial molar volume [m3.mol-1] 9.585e-05\n", + "Outer SEI partial molar volume [m3.mol-1] 9.585e-05\n", + "SEI reaction exchange current density [A.m-2] 1.5e-07\n", + "SEI resistivity [Ohm.m] 5000000.0\n", + "Outer SEI solvent diffusivity [m2.s-1] 2.5000000000000002e-22\n", + "Bulk solvent concentration [mol.m-3] 2636.0\n", + "Ratio of inner and outer SEI exchange current densities 1.0\n", + "Inner SEI open-circuit potential [V] 0.1\n", + "Outer SEI open-circuit potential [V] 0.8\n", + "Inner SEI electron conductivity [S.m-1] 8.95e-14\n", + "Inner SEI lithium interstitial diffusivity [m2.s-1] 1.0000000000000001e-20\n", + "Lithium interstitial reference concentration [mol.m-3] 15.0\n", + "Initial inner SEI thickness [m] 2.5e-09\n", + "Initial outer SEI thickness [m] 2.5e-09\n", + "EC initial concentration in electrolyte [mol.m-3] 4541.0\n", + "EC diffusivity [m2.s-1] 2e-18\n", + "SEI kinetic rate constant [m.s-1] 1e-12\n", + "SEI open-circuit potential [V] 0.4\n" ] } ], @@ -288,12 +427,12 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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BzNu3DjeffddHnjggWaPremWWV5+bJ1kbm4uiYmJx2xrriRSf198fDypqanMnz+/JaG3mSeqlQYPHsyePXsoKioiMjKydvvmzZsZPHhwk58bMmRIo+eueRcQEABazebNmxskkLi4OPr06cN333133NiNaYmEqBC2ZXm/Udrd5PC/OCvBbcNJBArcCQwDYoGZXonO1Lr55puZPn068+bN48orjx0XWF1dzXvvvceUKVNIS0sDYNOmTYwZMwZw+upv3ryZAQNa36ls4sSJPPHEE0RFRTX7C9UdISFOj4vS0uOvheuJaqXJkycD8Pbbb3PFFVcAkJmZySeffMLf//73Jj+Xnp7OsGHD+PDDD/nlL39Zu33p0qX0T+9FVGQEaBV9+vRhzZo1x3z20KFD7Ny50+s9sUzXkxDlGutwxLuT77k7ZfdOERkJ3A5MBPYBg4B3gcdU9aD3QjTg/JKcNWsW1157LZ999hkXXnghUVFRbN68mWeeeYb09PTa5JCRkcE999xDREQE1dXVPPTQQ8THt2xq6fomTZrEueeey6RJk7jjjjsYNmwYBQUFrF27ltLSUh5+2P0+CTUN0s8++ywzZswgIiKCESNGNHpsQkICCQkJbYo9LS2Na6+9lptvvhlVrR0E16dPn9pkATBnzhzmzJlzTJvK/fffzyWXXML//u//MnnyZJYvX85LL73Ev/7iut/qan75y1/ywx/+kKuuuoqZM2dSVFTEo48+SkhICD/5yU/aFLsx9SVG+qg7a1MDIHBmYo1qan97enSFQXA13njjDR0/frzGxMRocHCwDhgwQG+99Vbdv39/7THbtm3Ts846SyMiInTgwIE6f/58Peuss/SSSy6pPebKK6/Uxv7dXnzxRQW0sLCwwb7S0lL9/e9/r/3799fg4GBNSUnRc889VxctWlR7TJ8+ffTWW2897jkff/xx7d27twYGBmqfPn3a8k/iltLSUr3llls0MTFRIyIidOrUqfr9998fc8y9996rzo/EsV566SUdPHiwBgcHa//+/fXpp59WzdrsDIQrO6Kqqq+++qpmZGRodHS0JiUl6dSpU3XNmjXNxtSZvpfGd/70wVbtc8cifey/m9p8LpoZBCfaRF2tiFQBp6nqSu+mp7bLyMjQVatWNbl/06ZNtfXHxnhEzjYoPwIJJ0BodKtOYd9L0xr/t2IXv317PTNO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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -384,14 +523,24 @@ "outputs": [], "source": [ "spatial_methods = model.default_spatial_methods\n", - "spatial_methods[\"negative particle\"] = pybamm.FiniteVolume()" + "spatial_methods[\"negative particle\"] = pybamm.SpectralVolume()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "**NOTE**: at the current time, PyBaMM only supports Finite Volume discretisation, so the above does not alter the default discretisations. We plan on adding additional discretiations methods soon, so watch this space" + "You can also update the submeshes (meshes used for each domain) in a similar way. We'll generate a spectral mesh to use with our spectral volume method in the negative particle" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "submesh_types = model.default_submesh_types\n", + "submesh_types[\"negative particle\"] = pybamm.MeshGenerator(pybamm.SpectralVolume1DSubMesh)" ] }, { @@ -403,12 +552,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { - "image/png": "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AAAAlBySYgAAAAAAACg5JMUAAAAAAABQckiKAQAAAAAAoOSQFAMAAAAAAEDJISkGAAAAAACAkkNSDAAAAAAAACWHpBgAAAAAAABKDkkxAAAAAAAAlBySYgAAAAAAACg5JMUAAAAAAABQckiKAQAAAAAAoOSQFAMAAAAAAEDJISkGAAAAAACAkkNSDAAAAAAAACWHpBgAAAAAAABKDkkxAAAAAAAAlBySYgAAAAAAACg5JMUAAAAAAABQckiKAQAAAAAAoORU5DsAAAAAAACAlp577rnjKioq7pE0SQzqQfsaJa1paGi4bOrUqTvTrURSDAAAAAAAFJyKiop7jj/++PGVlZVvlJWVRb7jQeFqbGx0XV3dhB07dtwj6bx065FpBQAAAAAAhWhSZWXlHhJi6EhZWVlUVlbuVmpUYfr1shQPAAAAAABAJspIiCFdyc9Kp/JcJMUAAAAAAABQckiKAQAAAAAAtOKaa645/pRTTpk4ZsyYCePGjZvwu9/97hhJuvjii0c899xzvY/mnOvWres5evToiZ2pU15ePnXcuHETRo8ePfFDH/rQSXv37u1UPueGG244rnmd973vfafs2rWrvK3yV1999buuv/76Yeme/4477hhie+ovfvGL/k377r///kG2p/7gBz84Nt3zPProo/1nzJhxSqZl0kVSDAAAAAAAoIXHH3/8mEWLFg1avXr12vXr169dsmTJ+pNOOumQJC1YsODlqVOnHsxVLL169Wp84YUX1m7YsKG2R48ecdttt1WmW7ehoUF33333sH379r2dA3ryySc3Dh069HBXxjh69OgDDz300OCm7R//+MeDx44de6Arr9HVSIoBAAAAAIDCZk/NytKOrVu39hg8eHBDnz59QpKqqqoaRo4c+ZYkTZs2bezvf//7vpLUt2/f07/whS+cMHbs2AmTJ08e98orr1RIUm1tba/JkyePGzNmzIQrr7zyXX379j295TUaGhr0mc98pnrSpEnjx4wZM+GWW24Z2tFH8d73vnffxo0be0nSrFmzTp44ceL4U045ZeKtt976dt2+ffue/ulPf7p67NixE6699tqqnTt39njf+943Zvr06WMk6YQTTjh1+/btFZL0ne98Z8iYMWMmjB07dsIFF1wwquX1amtre5155pmjJ06cOH7q1Kljly9f3uoIuenTp+9bvnz5MfX19d69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\n", + "image/png": "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s2bN6n7aaae9X7PvuuuuO8S2li9fvvjuu+9+ddq0aYO2bt3qf/u3fzukY8eO1a+++uqiH/7wh28tXry4syStXbu25Ec/+lHfZ599dvnixYuXjB07dusPfvCDPvWdl/pwKwoAAAAAoNXq1q1b9cKFCxc/9thjBz/55JMHn3vuuYOvvPLK1ZdccsmG3HLt2rWLM888c6MkjRs37oMnnniiqyS9/PLLXX7/+9+vlKQLLrhgw1VXXTWg9ms88cQTXZcuXdpp5syZPSRp8+bNbRcvXtxh2LBhO3LLbd++vc2wYcPKJelTn/rU5ksvvfSd+fPnd5gyZcqAqqqqdjt27GgzcODA7TXlJ02a9H6XLl32OaPMc889d/D999+/SpJKSkrUq1ev3bn7H3vssa7PPvts1/Ly8nJJ2rp1a5ulS5d2mDx58pbadR1yyCG7u3Xrtmv69Ok9hgwZ8mGXLl2qc16ny8UXX7xeksaMGbOtX79+OxYsWNDhj3/8Y5dLLrlkffpzfVhWVrZVkp555pnOr7zySofx48cPk6SdO3d63Lhxn3jNfSGxAQAAAAAoDBFz8vGyJSUlOvnkkzeffPLJm4855pgP77jjjl61ExslJSXRpk2bPeV37drlOiurQ0T4xz/+8Runn376pr2Vyx1jo8ZFF1102KWXXrru7LPP3vjQQw8dfPXVV++5TaRz587Vn6xl/0WE/umf/mntt7/97XcaUn7q1Knvfec73zn85z//+aqmvu4JJ5yw6cEHH2xSPdyKAgAAAABotebNm3fQggULDqpZf/nllzsOGDBgx96OyTV69Ogtt912Ww9JuvXWW3vWVWbixIkbf/GLX5TWDEo6f/78gzZt2tSg/8c3b97c9rDDDtspSbfddluv+sp17dp195YtW+qs8/jjj998/fXXl0rJeB8bNmxom7t/8uTJm+64447eNeNbrFq1qt2aNWvq7Qhx9tlnv3fhhReuO+200z6WqDn++OO33HnnnT1rfsa1a9e2P+aYY7adcMIJW+66666ekvTSSy91WL58eSdJOvHEEz+orKzssnDhwoMkadOmTW3mz59/UO3X2xcSGwAAAACAVmvTpk1tzznnnCMGDx48vKysrHzp0qUdr7vuurcaevxNN9305k033dSnrKysfOXKlR26dOmyu3aZr3/96+8MGzZs28iRI48eOnTo8K985SuH79y5s0E9Pq644oq3zjrrrMHDhw8/ulevXrvqKzd58uTNy5cv71gzeGjuvl/84hdv/OEPfzi4rKysfMSIEeUvv/zyx2YzOe200zZ98YtffPfYY48dVlZWVv6FL3xh8Pvvv99W9ejRo0f1Nddcs65Dhw4fuw3mO9/5zvrq6mqXlZWVn3HGGYNvvvnm1zp27Bjf+ta31n/wwQdtjzzyyOFXXHFF//Ly8g8kqV+/frtuvvnm184888wjy8rKyisqKoYtWLBgv2daccQ+b8cBAAAAAKBZzJs377VRo0Y16BaIQrR58+Y2nTt3rm7Tpo2mT5/e49577+355JNPvpLvuA5k8+bN6z1q1KhBNeuMsQEAAAAAQCP97//+b6dLL730sIhQ165dd992222v5Tum1obEBgAAAAAAjTRp0qQty5YtW7zvkmgujLEBAAAAAMin6urq6gbPMILWLX2vfGw2GBIbAAAAAIB8WlhVVdWN5Ab2pbq62lVVVd0kLczdzq0oAAAAAIC82bVr1wXr1q27Zd26dSPEl+/Yu2pJC3ft2nVB7kZmRQEAAAAAAEWLbBgAAAAAAChaJDYAAAAAAEDRIrEBAAAAAACK1v8Hxer7c/CtJ+kAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 1080x576 with 8 Axes>" ] @@ -425,7 +574,8 @@ "param[\"Current function [A]\"] = 0.68\n", "param.process_model(model)\n", "\n", - "# re-discretise the model ...\n", + "# re-discretise the model with the new mesh...\n", + "mesh = pybamm.Mesh(geometry, submesh_types, model.default_var_pts)\n", "disc = pybamm.Discretisation(mesh, spatial_methods)\n", "disc.process_model(model)\n", "\n", @@ -440,16 +590,12 @@ "source": [ "## Changing the solver <a name=\"solver\"></a>\n", "\n", - "Which method you use to integrate the discretisated model in time can also be changed. PyBaMM currently has three different solver classes, which are:\n", - "\n", - "1. [pybamm.ScipySolver](https://pybamm.readthedocs.io/en/latest/source/solvers/scipy_solver.html). Uses normal python `scipy` ode integration classes.\n", - "1. [ScikitsOdeSolver](https://pybamm.readthedocs.io/en/latest/source/solvers/scikits_solvers.html). Uses Sundials CVODE ODE time-stepper.\n", - "1. [ScikitsDaeSolver](https://pybamm.readthedocs.io/en/latest/source/solvers/scikits_solvers.html). Uses Sundial IDA DAE time-stepper." + "Which method you use to integrate the discretised model in time can also be changed. PyBaMM has a number of different solvers available, all of which are described in the [documentation](https://pybamm.readthedocs.io/en/latest/source/solvers/).\n" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -468,17 +614,17 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "To change this, simply create a new solver using one of the above classes and use it to solve your discretised model" + "To change this, simply create a new solver using one of the available classes and use it to solve your discretised model" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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AAAAlBySYgAAAAAAACg5JMUAAAAAAABQckiKAQAAAAAAoOSQFAMAAAAAAEDJISkGAAAAAACAkkNSDAAAAAAAACWHpBgAAAAAAABKDkkxAAAAAAAAlBySYgAAAAAAACg5JMUAAAAAAABQckiKAQAAAAAAoOSQFAMAAAAAAEDJISkGAAAAAACAkkNSDAAAAAAAACWHpBgAAAAAAABKDkkxAAAAAAAAlBySYgAAAAAAACg5JMUAAAAAAABQckiKAQAAAAAAoORU5DsAAAAAAACAlp577rnjKioq7pE0SQzqQfsaJa1paGi4bOrUqTvTrURSDAAAAAAAFJyKiop7jj/++PGVlZVvlJWVRb7jQeFqbGx0XV3dhB07dtwj6bx065FpBQAAAAAAhWhSZWXlHhJi6EhZWVlUVlbuVmpUYfr1shQPAAAAAABAJspIiCFdyc9Kp/JcJMUAAAAAAABQckiKAQAAAAAAtOKaa645/pRTTpk4ZsyYCePGjZvwu9/97hhJuvjii0c899xzvY/mnOvWres5evToiZ2pU15ePnXcuHETRo8ePfFDH/rQSXv37u1UPueGG244rnmd973vfafs2rWrvK3yV1999buuv/76Yeme/4477hhie+ovfvGL/k377r///kG2p/7gBz84Nt3zPProo/1nzJhxSqZl0kVSDAAAAAAAoIXHH3/8mEWLFg1avXr12vXr169dsmTJ+pNOOumQJC1YsODlqVOnHsxVLL169Wp84YUX1m7YsKG2R48ecdttt1WmW7ehoUF33333sH379r2dA3ryySc3Dh069HBXxjh69OgDDz300OCm7R//+MeDx44de6Arr9HVSIoBAAAAAIDCZk/NytKOrVu39hg8eHBDnz59QpKqqqoaRo4c+ZYkTZs2bezvf//7vpLUt2/f07/whS+cMHbs2AmTJ08e98orr1RIUm1tba/JkyePGzNmzIQrr7zyXX379j295TUaGhr0mc98pnrSpEnjx4wZM+GWW24Z2tFH8d73vnffxo0be0nSrFmzTp44ceL4U045ZeKtt976dt2+ffue/ulPf7p67NixE6699tqqnTt39njf+943Zvr06WMk6YQTTjh1+/btFZL0ne98Z8iYMWMmjB07dsIFF1wwquX1amtre5155pmjJ06cOH7q1Kljly9f3uoIuenTp+9bvnz5MfX19d69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\n", + "image/png": "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s2bN6n7aaae9X7PvuuuuO8S2li9fvvjuu+9+ddq0aYO2bt3qf/u3fzukY8eO1a+++uqiH/7wh28tXry4syStXbu25Ec/+lHfZ599dvnixYuXjB07dusPfvCDPvWdl/pwKwoAAAAAoNXq1q1b9cKFCxc/9thjBz/55JMHn3vuuYOvvPLK1ZdccsmG3HLt2rWLM888c6MkjRs37oMnnniiqyS9/PLLXX7/+9+vlKQLLrhgw1VXXTWg9ms88cQTXZcuXdpp5syZPSRp8+bNbRcvXtxh2LBhO3LLbd++vc2wYcPKJelTn/rU5ksvvfSd+fPnd5gyZcqAqqqqdjt27GgzcODA7TXlJ02a9H6XLl32OaPMc889d/D999+/SpJKSkrUq1ev3bn7H3vssa7PPvts1/Ly8nJJ2rp1a5ulS5d2mDx58pbadR1yyCG7u3Xrtmv69Ok9hgwZ8mGXLl2qc16ny8UXX7xeksaMGbOtX79+OxYsWNDhj3/8Y5dLLrlkffpzfVhWVrZVkp555pnOr7zySofx48cPk6SdO3d63Lhxn3jNfSGxAQAAAAAoDBFz8vGyJSUlOvnkkzeffPLJm4855pgP77jjjl61ExslJSXRpk2bPeV37drlOiurQ0T4xz/+8Runn376pr2Vyx1jo8ZFF1102KWXXrru7LPP3vjQQw8dfPXVV++5TaRz587Vn6xl/0WE/umf/mntt7/97XcaUn7q1Knvfec73zn85z//+aqmvu4JJ5yw6cEHH2xSPdyKAgAAAABotebNm3fQggULDqpZf/nllzsOGDBgx96OyTV69Ogtt912Ww9JuvXWW3vWVWbixIkbf/GLX5TWDEo6f/78gzZt2tSg/8c3b97c9rDDDtspSbfddluv+sp17dp195YtW+qs8/jjj998/fXXl0rJeB8bNmxom7t/8uTJm+64447eNeNbrFq1qt2aNWvq7Qhx9tlnv3fhhReuO+200z6WqDn++OO33HnnnT1rfsa1a9e2P+aYY7adcMIJW+66666ekvTSSy91WL58eSdJOvHEEz+orKzssnDhwoMkadOmTW3mz59/UO3X2xcSGwAAAACAVmvTpk1tzznnnCMGDx48vKysrHzp0qUdr7vuurcaevxNN9305k033dSnrKysfOXKlR26dOmyu3aZr3/96+8MGzZs28iRI48eOnTo8K985SuH79y5s0E9Pq644oq3zjrrrMHDhw8/ulevXrvqKzd58uTNy5cv71gzeGjuvl/84hdv/OEPfzi4rKysfMSIEeUvv/zyx2YzOe200zZ98YtffPfYY48dVlZWVv6FL3xh8Pvvv99W9ejRo0f1Nddcs65Dhw4fuw3mO9/5zvrq6mqXlZWVn3HGGYNvvvnm1zp27Bjf+ta31n/wwQdtjzzyyOFXXHFF//Ly8g8kqV+/frtuvvnm184888wjy8rKyisqKoYtWLBgv2daccQ+b8cBAAAAAKBZzJs377VRo0Y16BaIQrR58+Y2nTt3rm7Tpo2mT5/e49577+355JNPvpLvuA5k8+bN6z1q1KhBNeuMsQEAAAAAQCP97//+b6dLL730sIhQ165dd992222v5Tum1obEBgAAAAAAjTRp0qQty5YtW7zvkmgujLEBAAAAAMin6urq6gbPMILWLX2vfGw2GBIbAAAAAIB8WlhVVdWN5Ab2pbq62lVVVd0kLczdzq0oAAAAAIC82bVr1wXr1q27Zd26dSPEl+/Yu2pJC3ft2nVB7kZmRQEAAAAAAEWLbBgAAAAAAChaJDYAAAAAAEDRIrEBAAAAAACK1v8Hxer7c/CtJ+kAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 1080x576 with 8 Axes>" ] @@ -519,7 +665,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/compare-comsol-discharge-curve.ipynb b/examples/notebooks/compare-comsol-discharge-curve.ipynb index 2d34368847..9e59868edf 100644 --- a/examples/notebooks/compare-comsol-discharge-curve.ipynb +++ b/examples/notebooks/compare-comsol-discharge-curve.ipynb @@ -11,7 +11,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "In this notebook we compare the discharge curves obatined by solving the DFN model both in PyBaMM and COMSOL. Results are presented for a range of C-rates, and we see an excellent agreement between the two implementations. If you would like to compare internal varibles please see the script [compare_comsol_DFN](https://github.com/pybamm-team/PyBaMM/blob/comsol-voltage-compare/examples/scripts/compare_comsol/compare_comsol_DFN.py) which creates a slider plot comparing potentials and concentrations as functions of time and space for a given C-rate. For more information on the DFN model, see the [DFN notebook](https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/models/DFN.ipynb)." + "In this notebook we compare the discharge curves obtained by solving the DFN model both in PyBaMM and COMSOL. Results are presented for a range of C-rates, and we see an excellent agreement between the two implementations. If you would like to compare internal variables please see the script [compare_comsol_DFN](https://github.com/pybamm-team/PyBaMM/blob/comsol-voltage-compare/examples/scripts/compare_comsol/compare_comsol_DFN.py) which creates a slider plot comparing potentials and concentrations as functions of time and space for a given C-rate. For more information on the DFN model, see the [DFN notebook](https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/models/DFN.ipynb)." ] }, { @@ -25,7 +25,15 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", "import pybamm\n", @@ -56,7 +64,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We get the DFN model equations, geometry, and default parameters. Before processign the model, we adjust the electrode height and depth to be 1 m, to match the one-dimensional model we solved in COMSOL. The model is then processed using the default geometry and updated paramters. Finally, we create a mesh and discretise the model. " + "We get the DFN model equations, geometry, and default parameters. Before processing the model, we adjust the electrode height and depth to be 1 m, and also adjust the electrode conductivities, to match the one-dimensional model we solved in COMSOL. The model is then processed using the default geometry and updated parameters. Finally, we create a mesh and discretise the model. " ] }, { @@ -71,9 +79,15 @@ "\n", "# load parameters and process model and geometry\n", "param = model.default_parameter_values\n", - "param[\"Electrode width [m]\"] = 1\n", - "param[\"Electrode height [m]\"] = 1\n", - "param[\"Current function [A]\"] = \"[input]\"\n", + "param.update(\n", + " {\n", + " \"Electrode width [m]\": 1,\n", + " \"Electrode height [m]\": 1,\n", + " \"Negative electrode conductivity [S.m-1]\": 126,\n", + " \"Positive electrode conductivity [S.m-1]\": 16.6,\n", + " \"Current function [A]\": \"[input]\",\n", + " }\n", + ")\n", "param.process_model(model)\n", "param.process_geometry(geometry)\n", "\n", @@ -101,7 +115,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9YAAAIjCAYAAADmwYOsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeZhdVZ3v//faZ595rDo1j0mqklRmyMCgJEqUVrkM2mqL2g19kabtn3jlerXb4arg023bXv01fdvWp+1BxQlbFGV2AkQEAgRICJmHqtQ8nKozz2ev+8euzFVkTlXI9/U89aT2OWvvvXYIlXzOWuu7lNYaIYQQQgghhBBCnBpjpjsghBBCCCGEEEKczyRYCyGEEEIIIYQQp0GCtRBCCCGEEEIIcRokWAshhBBCCCGEEKdBgrUQQgghhBBCCHEaJFgLIYQQQgghhBCnQYK1EEIIIYQQQghxGiRYCyGEEEIIIYQQp0GCtRBCCHEeUUp1K6XeOtP9EEIIIcQhEqyFEEKIwyilPqCUekEplVZKDSqlHlFKXTHT/TrbJgN7bvK5h5VS31FKBU7h3Aml1ENKqdaTOLeolKo56vWXlFJaKTXnVNoKIYQQ55IEayGEEGKSUurjwF3Al4B6oA34BnD9TPbrHLpWax0AVgKrgf99Cuc2AsPAP5/EufuA9x84UEotA3xnoK0QQghxTkiwFkIIIQClVBj4IvARrfXPtNYZrXVJa/2A1vqTk20WKaWeUErFlVKvKqWuO+z8bqXUJ5VSm5VSGaXUfyil6idHvFNKqd8opaoOa/83Sqn+yfd2KKXecrx7nCta637gEWDpZJ8+qZT66eFtlFL/Vyn1T1OcmwfuBRYf1vZTSqk9k8+6VSn1rqNO+x5w42HHNwF3T9O9k2krhBBCnBMSrIUQQgjb5YAHuG+qN5VSTuAB4FdAHfBR4AdKqYWHNXs3cBWwALgWO5x+BqjF/jv3f0xeayFwG7BGax0E3gZ0n+A9zrrJadxXAy9NvvR94O1Kqcjk+yZwA1MEWqWUD3gf8OxhL+8B1gJh4E7g+0qpxsPefxYITX6o4Ji89ven6d7JtBVCCCHOCQnWQgghhC0KjGmty9O8fxkQAL6stS5qrR8DHuSwacnAP2uthydHfH8PbNBavzQ5insfcPFkuwrgBhYrpZxa626t9Z4TvMe0lFLXKaXeeaLHU/i5UioOPAX8DntKPFrrQeBJ4L2T7d6O/Xu1cYpzE9gfLvyfA29orX+itR7QWlta6x8Du4BLjrr3gZHoq4BtQP9r9PNk2gohhBBnnQRrIYQQwhYDaiZHY6fSBPRqra3DXusBmg87Hj7s+9wUxwEArfVu4HbgDmBEKXWPUqrpBO/xWq4D3nkSx0d7p9Y6orVu11r/f1rr3GHvfRf408nv/xQ73B5zLvao/23A75RSDQBKqRuVUi9PTm+PY08xrznq/O8BHwD+nONP7T6ZtkxOrdfTfD11vPOFEEKI45FgLYQQQtieAQpMHzwHgFal1OF/d7ZxiqOlWusfaq2vANoBDfzD6d5Da32L1vrPT/T4JP0cWK6UWgpcA/xgmj5UtNY/wx6Vv0Ip1Q78G3bYjk6G7y2AOuq8HuzCZFcDP3utjpxM28n2b9Zaq2m+XvcV34UQQpx9EqyFEEIIQGudAD4P/ItS6p1KKZ9SyqmUeodS6ivABiAL/PXk62/GXkd9z8neSym1UCm1XinlBvLYo9nWmbzHmXZYUbIfAs9prfdP1U7ZrgeqsKdp+7E/OBidfP+/M1kUbQofAtZrrTMn0KWTaSuEEEKcVdNNdxNCCCEuOFrrrymlhrC3mfoBkAI2An+ntS4qpa7F3n7r09ijyDdqrbefwq3cwJeBRUAJeBq49Qzf42z4LnALcPMU7z2glKpgh+ge4Cat9asASqmvYc8IsLCnbv9hqotPrjM/ISfTVgghhDjblNZ6pvsghBBCiPOAUqoN2A40aK2TM90fIYQQYraQqeBCCCGEOK7Jdd8fB+6RUC2EEEIcaVZNBVdKebC383Bj9+1erfUXjmrTDvwn9p6g48Cfaq37znVfhRBCiAuFUsqPXeG8B3urLSGEEEIcZlZNBVdKKcCvtU4rpZzY+2h+TGv97GFtfgI8qLX+rlJqPfDftdZ/NkNdFkIIIYQQQghxgZtVU8G1LT156Jz8Ojr5LwYem/z+ceD6c9Q9IYQQQgghhBDiGLMqWAMopRxKqZeBEeDXWusNRzXZBPzx5PfvAoJKqei57KMQQgghhBBCCHHArJoKfjilVAS4D/io1nrLYa83AV8H5mKvx343sFRrHT/q/FuBWwH8fv+qrq6uc9V1IYQQQgghhBCvMxs3bhzTWtdO9d6sDdYASqnPA1mt9VeneT8AbNdat7zWdVavXq1feOGFs9FFIYQQQgghhBAXAKXURq316qnem1VTwZVStZMj1SilvMBV2PtlHt6mZnLLD4BPY1cIF0IIIYQQQgghZsSsCtZAI/C4Umoz8Dz2GusHlVJfVEpdN9nmzcAOpdROoB74u5npqhBCCCGEEEIIMcv2sdZabwYunuL1zx/2/b3AveeyX0IIIYQQQgghxHRmVbAWQgghhBBCCDF7lEol+vr6yOfzM92Vc8bj8dDS0oLT6TzhcyRYCyGEEEIIIYSYUl9fH8FgkDlz5qCUmununHVaa2KxGH19fcydO/eEz5tta6yFEEIIIYQQQswS+XyeaDR6QYRqAKUU0Wj0pEfoJVgLIYQQQgghhJjWhRKqDziV55VgLYQQQgghhBBi1nr00UdZuHAhnZ2dfPnLX56yzZNPPsnKlSsxTZN7752+1vXQ0BA33HADHR0drFq1iquvvpqdO3eedh8lWAshhBBCCCGEmJUqlQof+chHeOSRR9i6dSs/+tGP2Lp16zHt2tra+M53vsMHPvCBaa+lteZd73oXb37zm9mzZw8bN27k7//+7xkeHj7tfkrxMiGEEEIIIYQQs9Jzzz1HZ2cn8+bNA+CGG27gF7/4BYsXLz6i3Zw5cwAwjOnHjh9//HGcTicf/vCHD762YsWKM9JPCdZCCCGEEEIIIY7rzgdeZetA8oxec3FTiC9cu2Ta9/v7+2ltbT143NLSwoYNG07pXlu2bGHVqlWndO7xyFRwIYQQQgghhBDiNMiItRBCCCGEEEKI43qtkeWzpbm5md7e3oPHfX19NDc3n9K1lixZ8pqFzU6HjFgLIYQQQgghhJiV1qxZw65du9i3bx/FYpF77rmH66677pSutX79egqFAt/61rcOvrZ582Z+//vfn3Y/JVgLIYQQQgghhJiVTNPk61//Om9729tYtGgRf/Inf8KSJfbI+ec//3nuv/9+AJ5//nlaWlr4yU9+wl/+5V8ebHM4pRT33Xcfv/nNb+jo6GDJkiV8+tOfpqGh4bT7qbTWp32R2c7btEB/6Kv38IFL2ljZXoXH6ZjpLgkhhBBCCCHErLdt2zYWLVo0090456Z6bqXURq316qnaXzBrrB95ZYgHNw/iMg3cpsEbO2tYM6ea5oiHaMDFxS1VmKYM4AshhBBCCCGEODkXRLBe0hTiiTv+iOf2xbj3hT5+t3OUP+wa49EtQwfbuBwGHXUBagIuimWLd17cxLLmCHNrfPjdzhnsvRBCCCGEEEKI2eyCCNYAAbfJ+q561nfVA6C1ZjxT5Jk9MX67bYSwz0lPLMOmvgTjmSIb9o0fPNehFJfOq2ZBfZCA2yTsNbl2eRP1YQ9KqZl6JCGEEEIIIYQQs8AFE6yPppQiGnBzzYomrlnRdMR7iWyRoWSBPaNpfr11mBd7JkjlS/zkhV4yxQoAf/fwdgJuk5DXxOUweO/qVjpq/UT9LroaQwQ9MsothBBCCCGEEBeCCzZYv5awz0XY52JhQ5CrlzUefF1rzdaBJC/0jKOUYs9Imse2jzCYyPN/frnjiGvMifroqA1Q0ZrmiJd3XdzMvNoAVT6njHILIYQQQgghxOuIBOuToJRiSXOYJc3hg6/deb39a6ZQZt9Yhvs3DdATy2AaBntG0+wYSqGBH2zYD4BpKKp8TtYuqGVejZ9i2WJ5a4Q3dtTgdUm1ciGEEEIIIYQ430iwPkP8bpOlzWGWHha6AUpli50jKUaSBfaOZfjpi33kihWe2RPjZy/2H9G2KeyhULboagzylq565tb68TkdXNxWhUsqlgshhBBCCCEuQI8++igf+9jHqFQq3HLLLXzqU586ps13vvMdPvnJT9Lc3AzAbbfdxi233HJMu6GhIW6//Xaef/55IpEI9fX13HXXXSxYsOC0+ijB+ixzmgZLmsIsaYIrgQ9dMffge5lCiSd2jDKczJMpVNg9uaZ7Y88Ef9gdO9jOoRRza/20R32MpQq8aUEtV8yvZU7UR03AhWFI6BZCCCGEEEK8/lQqFT7ykY/w61//mpaWFtasWcN1113H4sWLj2n7vve9j69//evTXktrzbve9S5uuukm7rnnHgA2bdrE8PCwBOvzmd/t5L8tbzrm9QMVy7cPpvj5y/aodjJfYsdQiu5Ylk19Cf7vY7sPtp8T9XFRa4T6kIdkvsTblzRwUVsVYa8UUBNCCCGEEEKcv5577jk6OzuZN28eADfccAO/+MUvpgzWx/P444/jdDr58Ic/fPC1FStWnJF+zqpgrZTyAE8Cbuy+3au1/sJRbdqA7wIRwAF8Smv98Lnu69l0oGL5G+e7eeP8miPeK5Ytesez9MVzvNgzwaNbhvC7HTzfPcFAPIcGfvRcLwBBt0mxYvGGjijLWyJEfE4qluYdSxtoiniliJoQQgghhBDixD3yKRh65cxes2EZvOPL077d399Pa2vrweOWlhY2bNgwZduf/vSnPPnkkyxYsIB//Md/POI8gC1btrBq1aoz0++jzKpgDRSA9VrrtFLKCTyllHpEa/3sYW3+N/BfWutvKqUWAw8Dc17zqrHdkBqGYP3Z6vc54zINOuoCdNQFeNOCWv7nVYemLKTzJZ7vniBTKDOQyPFC9wQv9EywbSjFEztH0dpu97cPbSPoNqnyu8gWy1y3opmuxkN7dF86N4rpkOnlQgghhBBCiPPDtddey/vf/37cbjf/+q//yk033cRjjz12zu4/q4K11loD6clD5+SXProZEJr8PgwMHPfChRR8fRX80d/CxX8Gxuuz+nbA4+TKrrqDx7euO/ReoVxh+2CKZ/bGMA1F73iW57snGErmufuZbsrWod9mr9NBe9SH02FQKFe46fI5zK3xE/CYNEe8RAPuc/hUQgghhBBCiFnhNUaWz5bm5mZ6e3sPHvf19R0sUHa4aDR68PtbbrmFv/7rvz6mzZIlS7j33nvPSj9nVbAGUEo5gI1AJ/AvWuujx/nvAH6llPoo4AfeetyLRtqhfgE88DH4wz/BpX8FK28Ep+cM9372cpsOVrRGWNEaOea9csViIJ7nuX0xXtw/gddl0hPL8NL+OOOZIp/9+ZYj2nfU+mmP+skVK3icBu9b00ZbtY8qn5P6kAfDkCnmQgghhBBCiNO3Zs0adu3axb59+2hubuaee+7hhz/84THtBgcHaWxsBOD+++9n0aJFx7RZv349n/nMZ/jWt77FrbfeCsDmzZtJJBKsXbv2tPqptD56QHh2UEpFgPuAj2qttxz2+sex+/01pdTlwH8AS7XW1lHn3wrcCtDW1raqp7sbXr0PfnYrWCVwuKHtUgg2wcJ3wPyrwOU/Z893vrAszVAyT3csw+92jLJ7JI3TYbB/PMvO4dQRI90ADkOxuDFEa7WXZK5MY8TDNcubaK3yEvG5qPI5ZW23EEIIIYQQ54lt27ZNGVLPpYcffpjbb7+dSqXCzTffzGc/+1kAPv/5z7N69Wquu+46Pv3pT3P//fdjmibV1dV885vfpKur65hrDQwMcPvtt7Nx40Y8Hg9z5szhrrvuYv78+Ue0m+q5lVIbtdarp+rjrA3WAEqpzwNZrfVXD3vtVeDtWuveyeO9wGVa65HprrN69Wr9wgsv2AfxPtj+AMR7Yd+TMHxg8b2C6rmgNbRdBl3XQP0Se7RbtrOaktaaeLZI30Se3oksj24ZYixdwHQY9I1n2TeWOWYev8dpsLw5Qku1l/6JHF0NIa5e1kBrtQ+HoagNuGXEWwghhBBCiFliNgTrmXCywXpWTQVXStUCJa11XCnlBa4C/uGoZvuBtwDfUUotAjzA6AnfJNICl/2V/b3W0PcCDL4MuQkYeAl2PgoT3bDpRwd6BdXzYM4V9q/KgI71ULfodbtW+0Qppajyu6nyu1nWEubqZY1HvF+pWPQncgwlCvSOZ3nolUFyxQoVrXl2T4yBRJ4N+8b57jPdB88JekyWNoVpinjYOZxizdwo6xfW0VzlxdIWbdV+nFJYTQghhBBCCDGLzKoRa6XUcuyttByAgV39+4tKqS8CL2it75+sBP5vQAC7kNlfa61/9VrXPWLE+ni0hnzSriTe8wd48btgeiA1CNnYoXamB8KtUClC51XQfrkdvKOd4AlNf31xUKFcoW88R388R08sy6+2DmFpTb5k0TeRYziZP+Ycv8tBZ12AupCHfWMZ1s6v4fJ5UeqCdkG1rsYgHues+rxICCGEEEKI85aMWB9y3k4FP1NOKli/lvFu2PaAPTU8OQC9z0L/S4CGw5d4BxrsaeSByQrdS/8YGi8Cfy3I+uITVqpYDMZzDCTy7B1N88SOURyGIl0o0xPL0DueO2aquds0aKv2Ue13MZjIs76rjhWtYYIeJ6WyxaVzo1QHXDPyPEIIIYQQQpxvJFgfIsH6TAXr6ZRyML4X9jwG2x+CQD1M7IORrVApHWpneu3p4/OvgtpF4Kuyi6fNXSej3KdAa814pkh/PMfOoRRP7hrD63IQzxbZNZKmeyyDNcUf74jPScjjJJ4tsm5BLQvqgzgdimS+zNuXNtBRG8DvckiRNSGEEEIIccGTYH2IBOuzHaynUy5A73P2dPGxnfb67YGXwR2ARD9HbNEdaAB3EEw3LP8Te0p5sNEO4C7vue/760S2WGYokWfncIrnuycIuB2MZ0psHUyyfSiJ22Ewni0dc57bNChVLNbMqaat2oelNYlcifeubqWt2ofX5aBqMqBLABdCCCGEEK9XEqwPueCD9fKLl+vNL22e6W4cqZSD3b+F3g3grYLYHtjzG8iMgVU+sm3VHDtoaw2hJntqebQTQi1SsfwMKJQr7I9l2dKfAKUYSeZ5aX+cVwcSVPtdDCcLDCfzx0w7B2iKeKgLeihXLPIli+svaqI+5KFsWfjdJm/srKHa55JK50IIIYQQ4rwkwfqQCz5Y++b69L8+9K/82eI/m+muHJ/WkI9DbC+88l8wvs/eXzu2G4a3HLmWWxngDsHctXbQrhShYTnMu9Je3y0jqWdMuWIxEM8xlikyGM+zsWecXSNpaoNuRpIFtg0miedKVKaYe24aCpdpYCi4bF4N9SE3Y+kCXqeD6y5qOhjM68MeGsMyO0EIIYQQQswesyFY33zzzTz44IPU1dWxZcuWadvdfffdfOUrX0EphWmafPCDH+QTn/jEKd3zvN5u62xRSvGV57/CeH6cj1z0EUxjFj+2UvYIdssq++tw5RKM74HsmB20X/welLIwugN2PArWYVOanX57NLtqLnRcaVcstyxou9SeXi4j3SfFdBi0Rf20Rf3QBv9teeOU7fKlCqOpAi/tn6A7liXsdTKczPPMnhhj6QJ9E1le3D/BeKYIwM9fHjji/JqAi5qAm/FMkaDH5MqFddQE3eyPZWmMeLhyYR21QTeGgiqfC1O2HhNCCCGEEK9zf/7nf85tt93GjTfeOG2bRx55hLvuuotf/epXNDU1USgUuPvuu89ZHy+IEetVq1bp675+HffuvJd54Xl8463foDnQPNPdOrMqZdj3JCT6oJyH8d2w+SdgmPYIeKV4qK3DDZE2KCShZQ3MfRNUtYMrAM2rwOmZuee4QBTLFoOJHOOZIsPJAhv2xohlivjdJmPpAi/vj1MoVyhVNLlSZcpruBwG7VEf0YCLvvEcrdU+rphfQ03ARU8sS1dDiFVzqoj6XZiGkhAuhBBCCCFO2mwYsQbo7u7mmmuumXbEet26ddxxxx2sX7/+jNxPRqynoJTiC5d/gXpfPf/y8r/wzp+/k/cseA/vXfhe5oXnzXT3zgyHCZ1H/SF6x1fsX62KvVXYqz8DXYFiBka2wb7fwa5fwfYHD52jDDt0h5ohNwGdb4G2y+09u0PN4I+es0d6PXOZBu1RP+1RPwBvX9owbdtMocz+8SxDiTyFssVYusATO0awtMZtOhhLFxjLFBhJF3hmb2za6wQ9JnOifqr9LnYMJVncFGZVexVhr5Ptg0lWtVexrCVCxOtEA9V+Fw5ZGy6EEEIIISb9w3P/wPbx7Wf0ml3VXfzNJX9z2tfZsmULq1atOn7Ds+SCCNYHfHjFh4l6ojw98DT37LiH72/7PjXeGm676DaumnMVIdfrdMsrwwE1HfCmTx77ntaQHobBTfDqfeD02SPcQ1tgbIe9ZdjT/3yovSdsr+f21UAhBQvfAQ3LINxih28Z7T7j/G6TRY0hFjUe+vP5p5e1T9n2wFT0zX1xssUKFUszli7w+I5RfC4HpqEYTReIZYo8tXuMx7aPHDz3+xv2H3Etn8tBY9hD0OOkeyzDRW0RljSF8Dod7BxO88bOKIsbw/jcDkpli/aoD6/rgvqRIoQQQgghBHCBTAWfarutWC7G5/7wOZ4dfJaSVcKhHLSH2lkSXcKNS25kQdUCDHWBT53VGrLjMNENfRvsddyBejuIj2yFzOix5wQb7eDtCtjrv5e+G+oWQbABgs3gcJzzxxDTy5cqjKUL7B5Jky9aFCoVBhN5nt49RsjrxNKawUSe7YMpXKZBulCeskAb2EXaqvwuPE6DsVSRZS1h2qt9KAX7x7OsnV9Le9SHASTyZVa3V9EQ9uBzOjAMJduWCSGEEELMQufLVPC1a9dy5513zthU8As2WB9QtspsHt3MU/1P8b2t3yNfyQMQdAWp89axrHYZ1867liU1S/A7/eey27NfIQWZGCT2w77fw94n7JHrRJ891byYOvac6Hy7kJphQKUEF/0pVLWBt9qeam66zvljiBNnWZpkvkTveJZUoUw6b09Tf2l/nGjARalisT+WZdtQkojXRa5UIZYpUixb017TUGBpaKv2URt0U7E0Q4k8V3bV0hj2ki2WGU4WeMfSBupCdgX1itYsaw7jkxFyIYQQQoiz6nwJ1g8//DCf+9zneOihh2hoaKBYLHL33Xdzyy23nNL9JFhP4bWC9eFKlRK747vZFd/Fi8Mvct/u+7AO297KZ/qYXzWfdS3r6KruojPSSaO/UUbappOJ2RXMJ7phz2PQ94I9cj3RY08zP7yg2gHRTntKeblgF1676AMQaQXDNbn2e/q1yGL2yhXKJHIlkoUy+2MZXh1IEg24yRUr7BpJsaU/QUuVj0yxzP5YlqFkHpfDIFOcunDbAR6ngWkY5EoVljWHCXudpPIlJrIl3r6knpDXRTxbJFMsc9XiBkIek2LZwmUaLG4K4TZlBoUQQgghxGuZDcH6/e9/P0888QRjY2PU19dz55138qEPfeiYdt/+9rf52te+htYapRQ333wzH//4x0/pnhKsp3CiwfpopUqJoewQ3YluNo1u4gfbfoDTcDJRmDjYxmf6WF67nM5IJ6ZhcnnT5SyrWUbQFTyTj/D6ozWkR+xp5Yk+2PNbGNsF3oh9PLwVyrljzwu12KPi+QR4IrDiT+wgXspCzXyoW3zun0WcNaWKxXimyEA8R7likS5U2D2SYudImvZqH6l8mW1DSbrHsrRHfSRzJfaPZ0nmyigF5WmmrR/gNg2UsneiW9IcIuRxMpLKUypbrF9UT8Bt0jueRSnFlQtrCXhMYukCfreT5S1hAm4Tl0PhlIAuhBBCiNep2RCsZ4IE6ymcarCeTrqY5vmh5/netu/hN/2M5EbYNbGL0mH7SEc9UZRSXNpwKRfXXUxbqI2OcAe1vloZ4T5RpbwdshO9dvBO9IPptl8beBGKWeCoP7/eKjt8Z0ch2ARdV9tTzNPDULcE5lwBLt+MPI44t7TW5Ev2tmaDiTwep0EyV2ZLf4KBRI6WKjuIb+qLE0sXaQh7SObLdI9lyJUqOJSadquzozkMRX3QTcBjMp4p4nE6WNEaIeg22TuaJux1cem8aoIek32jGWqCbla2VxF0myRyJepCHloiXgypwi6EEEKIWUaC9SESrM9wsJ5KqpDi8b7HMTAYzg7z/NDzbBjcgGmYB9dtAwScAeZXzafWW4vL4eLK1iuZXzWflkALTofzrPbxdceqQGrIDtp7H7eLqWkNyQHY/4w91byUPfY8bxWUcvYU8/Yr7OA9sQ9aLoE5b4RQk10dXT4AueCVKxbJfJlYukDZ0qQLdjBP5cvUBNykCyU27BunULJoDHtI5cu83BfHsjRBj0m6UGY0VeA4A+cH+V0O8mWLgNukPeoj4DbZNZKmKexheUsEv9tkU1+cjlo/F7VWEXA72DqYYn5dgK6GIAGPHdSbI16CHvl5IoQQQojTJ8H6EAnW5yBYT0drzXB2mCf7nuSX3b+kKdBEb6qXbbFtZMuHQp+BgdPhZGXdSjoiHYTdYaKeKJc3XU5ToEkqlJ+qUu5Q0M5OgFW0R753PGKv4S5l7XXgUwk2Qv3SyXXh++z9vFvWgK/WLrJWuxDkwxBxAiqWJlMsk8qX2TOSIleycE9WWd+wdxyloMrnIl0o88yeGB6nQcjrJFMo8+pAEpdpoIBMoUKxMn0huMP5XA58LgfjGXs0vr3aj9tpsHUgyZKmEAsagrgcBpt641zcVkVXQxDTodgzmmFFS5i2qB+PaVAoW9QE3LhM+RkkhBBCXIgkWB8iwXoGg/V08uU8r8ZexaEc9KZ6+U3Pb3h59GXqfHX0JHvIHba+2GW4iLgjuE03b21/K3NCc6jx1DC/ej4NvgaZWn66SjkYegUyY3al8/E9sO1BcAegnIf4fshNHHueMuzw7a22p5q3XQaNy8EdstvPXQe1XfYIufw3EmdIoVwhnS+TLVZI5kpsG0piKIXTYZDIlXh2b4yw14nX6SCeK/F89zhVPhcuh0E8VyXllTAAACAASURBVKR7LIvLNChWrNes1n44l8MO+m7TYDiZp7MuQEuVF0trdgyluWxelPaoj3LFYvtQinULammt9lGxLAbiOVbPqaYx5MV0gFIKr9MhP7eEEEKI84QE60MkWK9cqV948cWZ7sYJ01rz0shLvDj8IhFPhP3J/fx2/28Zzg5jaeuItdx+p5/2UDumMqn11fKWtrfQGmylJdBC1BuVf7yeKYW0HZ6z4xDbBbt+ZQfmcsEuuja0CRwuO5gfzTDtKep1XXbVc4cbMiOw8Gp71NsdAlfQ3oZM9vkW51CxbJHKl0gX7KA+kSmycziN12mAguFkgU19cWoDbpRSjKTybB1IUhOwt0UbzxYZTRVwKHXCI+kAEa+TsM+J1hBLF7ioNUI04CZfqjCUyPPGzujBrdUyhQqXd0SpD3nwuR1EPE5cTvn/RAghhDhXJFgfcsEH62VV1frlnm4codBMd+W0VawKg5lBHtjzAD2pHsKuMD3JHp4fep6ideT2VaYy6Yh00BpspWSVmBuayxua30BrsJUGfwOmIXsAn3GlPIzvhd7n7Oni+QQMbranogfq7JHseO/UFc9NDwTq7YCeT8L8t9oVz9H2yPn8t0O4CXw19mi6ELNIqWKRKZSJZ0tkixVyJXv/8T2jaSI+J8Wypnc8y7bBJK3VXkoVzf5Ylr1jGRrDHvKlCmPpIulC+bj3inidVPtdWNpe9752fi3VfheFUoVC2eJtS+qpDXpwOw1qA26iAfc5+B0QQgghXp8kWB9ywQfrpR6v/vmb3sScH/0Qs7p6prtzVmitmchPEC/E6U318pOdPyFXzuF2uOlN9dKd7D7mnLArzNKapbQEW8iVcyyrWcaq+lW0BFvwmt5z/xAXkuwEZGP2KPjAS7D/WXsbsdy4PS19fA+4/PYI+XSqO+wgbhXtCulL/hiC9VAp2dXT510J/sn14EKcR8oVi1S+THcsw67hNNV+F4lciVf6E2wbTDK/LsBErsT2wSQD8RzVfjcT2SLZafY9D3pMagNuihWLsqX5o8X11ATcpPIlfC6TqxbX0xj2UOVzYhiyllwIIYQ43EwH697eXm688UaGh4dRSnHrrbfysY99bMq2d999N1/5yldQSmGaJh/84Af5xCc+cUr3lWA9heV19fq/GhtxNjfT9u3/xFlfP9NdOufGc+MMZgbJlDLsT+3nnu334HQ4qVgVelO9pEvpI9qbyqQl2MLy2uU0B5rJl/OsrF/JoupF1PpqpZjauVIpQWwvDL9iTxnPjEDPMzDyKlTNgfQojG6zR8L1NFNxTY/9a+sldhDPjoPhgK5r7OBdKYA3Cs0Xgysg68HFeSuWLrB3LI1pGIylizy3L8a+sSzNEQ9jmSKbe+OMZ4uYhr0e/WhK2evJl7eEqQ95iKULhDxOrr2oicaw/f/R3KifahkBF0IIcQGZ6WA9ODjI4OAgK1euJJVKsWrVKn7+85+zePHiI9o98sgjfPazn+XBBx+kqamJQqHA3XffzV/8xV+c0n0lWE9h9erV+slvfpPeD/8VyuWi/cf34G5rm+luzRoVq8IrY68QL8TJlrLsju/m/j33E3AGSJVSjGRHjmjvNJwYyqAz0smi6CLqvHWUrBJrGtawoGoB1Z5qWds9E0p5O3gPvAyx3eCN2MG7+/eQGjxUZC3ZZ29VNhXTY6cL0wPNq+zgnRwAXzV0XgX+GnsdebgVGpbJnuDivFUsW+weSdMdy2AoGErkeWLHKLFMEb/bwVAiz/7x7JRbpdUF3TRFvMSzJRrDbq5a3EBTxEu+VKGrIcjChqD8DBRCCPG6MdPB+mjXX389t912G1ddddURr69bt4477riD9evXn5H7SLCewoGq4CP//z8S+9a3MIJB6v7X/yLy3vegpFjUccXzcX7f/3sAsqUsW2NbeaLvCcKuMPFCnInCkRWz3Q43CsXi6GIWVC0g4o5gKINLGi+hM9JJyBWSf3TOtELannaeGYOepyE9Av6ovRf43t9BMQPuoD1dPdEHTPNzwukHq2yH+KaL7fXf43uhei7MuWIyzA9BdD7ULwZ3GGSqrThPaK1J5EoMJfMMJfI8tn2EZK6EyzQYTOR5oXuCYsWiclT6dpvGZPAuMqfGz9r5tTRHPIwkC1zcFmFlexU+l9S4EEIIcX44PGAOfelLFLZtP6PXdy/qouEznzmhtt3d3axbt44tW7YQOqp+VnV1Nfv27SMcDp+Rfp1ssJ5Vf7MrpTzAk4Abu2/3aq2/cFSbfwSunDz0AXVa68iJXL/2f96Oe8F84vf8mKE77iD27W/TeMcX8F9++Rl8itefiCfCtR3XTvv+cGaYpweexm26mchP8PLIyzwz+AzxQpyH9j1EqmhXyv7Gpm8A4HF4UEpxUe1FzAnPwWt6MZTBG5veSGuwlRpvDQ5DPvA4q9wB+yvSBs0rX7ut1lBI2lPIM2Ow73f2/t+ugH28+1f21mPJfrtQW2oA9j8NL//g2Gspw76erxpqFtiV1Ue2Q8MSe49wT5Vddb3pYntE3Ftlj55LsTYxA5RSRHwuIj4XXQ0h3ryw7pg2WmsmsiUG4jl+u22YbLGCBgYmcvxu1yh7RtK83Bvn6M+wIz4n2WKF+XUBVrdXURfyMBDP8YaOGla2R6gLenAY8gGkEEIIcUA6nebd7343d9111zGhejaYVSPWyh7G9Gut00opJ/AU8DGt9bPTtP8ocLHW+ubXuu7R+1hrrZm458cM33knAMG3v52aD/8lnq6uM/Uo4jC9yV6eGXyGkCvESHaEDYMbDu7ZPZwdPhi8DzCUgUM5WFqzlKZAE6YycRgO3tL6FhoDjTT6Gwm4JGjNWlpDLg75CbtI294n7FFqhwsyMdj5iD0a7nDZwXxs5+R500xPB3D6INRkrzOP90DDcmhYar8+tgva3wD1S+wR9GIa6hbZ4V2IWaBUsRiM53l6zxjZYplcyaInluHxHaO4TXu9dyp/ZDV0h1JoNPNqAyxuDFHtdzGczPOmBbUsb4nQGPYQ9ppSbE0IIcRZNxumgpdKJa655hre9ra38fGPf3zKNmvXruXOO++UqeBHU0r5sIP1X2mtN0zT5mngC1rrX7/WtY4O1mCH6+Qvf0l+0yYm7vkxOpfDNW8etbd/jOBb34qSf6ycM72pXl4afokqTxWDmUH+0P8Htsa20hxsZigzxEB6AH3UVGRDGXREOmj0N6K1xmf6uLLtShr9jdT6amn0N8p2YucTre3p5+kRGHzZPtaWvR58z2P2lHJl2Ou9hzaD02u3L+env6bpBbffDvm1XRBpt68R2w0db7arqivDnuo+d509eu/02RXVvVVSxE2cUxOZAi/3JsgUyiTyJXYOp3hixyhBj0kiV2Ignj9myjlAc8RLR12AgMvBcCrPO5Y2srgpRMTrxOUwmFPjx3TI32dCCCFO3UwHa601N910E9XV1dx1113Ttnv44Yf53Oc+x0MPPURDQwPFYpG7776bW2655ZTue94Ha6WUA9gIdAL/orX+m2natQPPAi1aHzvUpZS6FbgVoK2tbVVPT8+096zE4/R97Hayzz0HWuNqbyf8rncSvv56nI2NZ+CpxOlI5BPsiu/CNEyGMkP8dv9v6Un2UO+vZygzxO74bsrWsXvfNvgbaPQ3UqwUCbvDXNF8BfW+epyGkznhObQGWyV8n+8KaZjotqemFzP2HuF9z4Evao+AT/TY25n5a6FcsIu3ZWNMu2b8AFfQHvE2HPa687Y32CPmlQIk+mHh1faxVYZSDtoutwu7uQKyhlycFZWKxe7RDPFskbF0kVf64zy1e4yo3814pkh3LHPMqDeAz+WgNujGNBSj6SJv6aqjtcpLoWwxmi7wzouaaIr4cDkULtOgLujBkCnoQgghDjPTwfqpp55i7dq1LFu27OBMrS996UtcffXVx7T99re/zde+9jW01iiluPnmm6cd4T6e8z5YH6CUigD3AR/VWm+Z4v2/wQ7VHz3etaYasT6a1prC7t0Udu5k4vs/IPfSSwD4Vq8mdO21BP/oKsyqqlN6FnF2la0yw5lhCpUCg5lBHtn3CGO5MaLeKAPpAV4Ze4VSpYTFkdtRGcqgxlNDWZep8dawpmEN9b56MqUM88LzWFa7jHpfPS6H7AP9ulMu2CPZyQEY3W5XNy9m7fXd/S9CVbt9PL7Hnmrur4F80i74Nt22ZgAoQNuj357I5H0moPOt9ih4bgLycXurM2/E/jAAoO0y8ITtqewO+bBHnJpcscxgIs9gIs/mvjibehPUBF0kcmV2j6ToiWXxOB1MZIvHrPk+oDbgJuxzUixbJHMl1i+qI+J1MZEtksiVuP6iJsJeJ5lCGRS8YV4NAY+JoZSsCRdCiNepmQ7WM+V1E6wBlFKfB7Ja669O8d5LwEe01k8f7zpdncv09t2vnNS9h7/6VYq791Ds6aG4bx8Ars5OIu+8nsCVV+KaN08qW59HSpUSmVKG4ewwv+z+JelimpA7xHB2mCd6n7DbWHabozmUg6gnyuLoYup8dYzkRlhUvYiV9Sup99UT9UQJuWdfAQVxFmhtB+xCwg7msd0wsg3CLXaBt6FX7OO6Lrvd2M7Jrc6ikE/AUfUEpqYg0moH7XwKrBLMfZN9nBqwm8x/m32cHQeXH1pWTwZzH5jyQZB4beWKxXimSM94lkLJYixdYOtAkh3DKZoiHuLZEruG0wwl84S9TuLZIpnia9RAAA5k6pYqH363SSJbpGxpLplbTcBt0jdhb1125cI6/G6T3vEsLlPxho4a/G6T8cltzubVBPC6HDgNhUOmsAshxKwgwfqQ8yZYK6VqgZLWOq6U8gK/Av5Ba/3gUe26gEeBufoEHqCtdqH+/tcfYN37Fpx0n7TWZJ55hoFPfALldlMeHALACATwv/ENBK/6I/yXXoJZW3vS1xazT7qY5qn+p8iWsygUw9lhHtjzAF7TC8BQdohEIXHMeW6Hm+ZAM1FvlNHsKEuiS1has5RqbzXlSplF0UW0BlvxmJ5z/UhiNqmU7OnolZIdtEe22tPVwy32cd/z9ih6tMM+Htpij3B7wvZxIXn8eyiHPU3dE4bsmF1Vve1y+3h8rz2SPm8yqCcHIFAPjSvsY9Njr1+XDw3FUUoVi/F0gVShQiJXYudQiv54jmjARTpf5pX+BGPpAm3VPtKFCjuGkqQKZap9LtKFMrFMcco14q/FUBD2OvE6HcRzJdymQUdtAI/TQXcsQ8BtsrwljMfpYNtgkiqfi5XtVXhMg62DSWqCbpY1hXGZBntHM9QEXcyrCeAyDUZSBaI+J3VhD27TQcWyCLhMXE7ZkUIIIY4mwfqQ8ylYLwe+CzgAA/gvrfUXlVJfBF7QWt8/2e4OwKO1/tSJXHduY5f+xPXf4A3v7uTiq9pOuX9aa8pDQ4x/97uM3/09lMeDzmYBMMJhAldcge/SS/CuuAh3Z4fskf06pLVmODNMLB8jW87Sm+zl4X0PE3QFUUrRn+pn2/g2DGVQmaLKdcAZoGyVmReZR2ekk6ArSDwfZ1XDKuZH5hP1Rqnz1uE23TPwdGLWq5TtNeLlnB20BzfZldf9NfZx91NQykCwyT4e2Gif4/RNBvNjPxQ6hmFCoGFyhHzQXp/edLF9PLIVquZC6xr7OL7fLgJX12UHdqfX/hJiChVLky2WSRfK9E/kiOdKeEwH6UKZrQMJ8mWLxrCHXKnCC90TVCxNW7WPXKnCy71xAOpDbnLFCrtH0iil8Lkc5EsV4rnStNPbT4bToXA5DLLFCn63STTgwuUw2D+epT7koSniwekw2DaYpL3aR3uNH4eh2NQbZ35dkLk1fpSCl/fHWdgQpC3qw7I0WweTLKgP0hzxYmnNntEMHbV+6kMetIbBRI7Wah/VfhdoSBfL1ATcBD0mDqUwFJgOQ2bKCSFmhATrQ86bYH22rF69Wv/trd9hz4sjpx2uD7CKRQAKO3YS+/a3ST3yCEYwiJWcHFFyOPBefDG+lSvxrFiOb8UKzJqa076vOD9YlkWymKQ72c0TvU8QdocpW2V2x3fzzMAzVHuqyZQzjGZHpwzgfqefRn8jfqefRCHBZY2XMTc8F5/Th6EMVtSuoMnfhNPhnIGnE+cty7KnsJfSdtDuf9GurO4O2se7f2sXbPNNTl3f/4y9LZrDZR/n48e/h8MJ/jrwhCDeB9VzoHaRfY/hV6FxOdQvtbdOy4za26ZVd9jF4uTPszgNlqUplC3ypQqDiRxlS+MyDYpliy39SVwORXXARbFssWHvOCGPk9qQm0LZ4qldo1T73dSH3BRKFf6wJ0ZN0E2N30W+bPFC9zg1ATchj5NcqcKu4RTBycrrhXKFWLqI6VCULX1GAv5UTEPhNu1wnSmUiQZc+N0mZUszmizQHvUR9jrJlyr0TuRY3Bgi4nOSLpTZN5bh4rbI5NT+EvtGM6yeW0XQ7WQiW6QnlmX1nCoCk9Py+yZyrJ5Thc9lMp4pMJjIs7ItgtdpEs8WGUkVWNEaxm06SORKJHIluhqCuEyDdKFCvlihPerDaRoUShW0hprJInoAhlJSJE+I84gE60MkWK9erZ99dgN3f+YZcski625YwLI3t5zRe+hiEZxOSj09jP3Hf5L+7W9xNjaS37EDynalVrOhAU9XF2ZTE57Fi/CtWoWrvV229rqAFcoFdsV3UbbKpIoptsa28vTA0zQHmkmX0uyJ76E31YtSCmuKoll+009Zl1kcXUyjvxGlFPlynrXNa2nwN+B3+ol6ozT5m3AYMoNCnCarMrlWPGOH7P3P2lPPnV67sNvOR+0ibe6gvf6752k7YCtjcm/z4wVzZY++h1vsCuuJPnu0vLbLLjCXHYfWy6B2AfhqwB2Qaeti1ilXLHKlCqWKhdaQK1YYSOTwukycDkU6X2b3aJqo34XHaQfTVweSNEe8+FwOJjJFNvcnaI/68LtMYpkim/vidNQG8DodB9fEz6sN4HYajKUL7B5O0x71YzoU45kivRNZGsNeFJDMl4ili4S9TjR2f3KlCi6HQdmyOMkZ+meMx2lgGgalikWpYk1WrzdI5ksUyxat1T5MQzGWLlAoW3TWBTANxUA8T7FisbgxhGkoemIZShXNspYwpqHYPZrG0nBRawTTUGwfTKEUXNRmH28dTGIaiotaq3AYilcHkrhNgxUtYRyGwasDCXwuB0uawjgm2wfdJl2NQRyGwfahJGGPk466AA5DsXc0TdjrpK3aj8OA3vEcEZ+T+pBnshp/gaDHSZXPiWkYZItlvE4HPrddqPJA5WIhZjMJ1odIsJ6sCr71qX42PdbH+ECG+WvqWXfDAjz+sztCYuXzjH3r38g+twFnQyOFHdsp7N7DgY+0ldeLWVuLq62VwPr1uDs6cXfMwxGNyg9acVDFqjBRmGB7bDsbRzbS4GtgPD/O5rHN9p7fgWbG8+MMZ4Yp62O33DGUQZW7CqfhpGSVuLzpcmq9tQe3KVvXuo6oJ0qVu4pqbzWGkg97xFlgWZPBPA2pIej5gz1NXSl7q7Tdv4Fgo11cPTkAozvsYmyl3PTXDDZC1Rw73KeGYN6VULvQvi7YFddDzbINmhDTqFQsciULpTQVDZl8mYlckaDb/vfReKbAaKpAQ9iexj6SLDCYyDGvJkBFawbiOfrjWboaQlQ09IxlGIjnWNYSoWJZ7B3LMBDPs6I1TLmi2TOaZiRZYHlLmNLk8XimwJKmMGVLs3c0PTkCHqI8eX4mX6ajLkC5otk/niVfqtBS7aNiWQxM2EG7LuimojWjqQIVSxP0OKlYFql8GY094l+xNOWZ+iThKErZfSpVNE6Hwut04DAU8WyJgMck7HViKGXXMvC7iAbcKGDvWJrGsIfaoAc0bB9K0hb10RCy//u8OpBgXm2A5oiXiqXZOpBgUWOIliofpYrFloEEy5vDNE0ebxtIsqwlTGPYS6lcYc9YhsWNIeqCHsqWxUiywLxaP2GfE9NQOJQi6HHKjIMLjATrQyRYH7bdllWx2PhoD88/tA+318lVNy+mbUn0nPYn89xz5LdtwxEIkt+xncS9P7WnlpcPBSLlduNZvBhXxzwcoRCe5cvxLl2Ks6lJRrjFtIqVIv2pfhyGg7HcGBuHN/Jq7FU6I52M5cbYNLqJ/nQ/EXeEWC5G0SpOeZ06bx1Rb5RipYjDcLC2eS013hoKlQJBV5BV9auo9lQTdoclhIuzr1KCRK9d3M3htkfMR7fDvich2GAfj++1w/hUe5Q7XJPbm2Xtwm3R+fZr5Zy99Vm0057+Lh9mCvG6p7XG0lC2LCqWJle0ZxeYDoOKpYmlC1ha43OZWFrTN5FDoYj4nAeDv+lQ1Abs4LltMIXHaVAf8lC2NJt74wQ9Jg1h+3hj9wQRn5PGsJeK1jy3L0ZNwE3DZPsNe8epC7mpD3koVSxe6J6gPuymJuCmWLZ4uTdOQ8hDld9FoWyxdSBBbdBellAsW+weSRMNuPC5TArlCr3jOcI+J05DkStViGdLmA77Q4Uz9ZmCaSj8bhNDQTJXYk6Nn2q/vcyid9xeRlATdJMtlOmP53jTgloaw1572USmyBWdNdQE3DgMhdOhiPrdEtRnuZkO1vl8nnXr1lEoFCiXy7znPe/hzjvvnLLtV7/6Vf793/8dj8eD0+nkox/9KDfeeOMp3VeC9RSm2sf6x3/3HBODWSpliyVrm7jsnR1nffR6OrpUopxMQqlEYc8eRu/6J1AKw+WisHcvlfHxg22Vx4Ph9+HunI/v0ktwz5uHs60Nd3s7ht8/I/0X5yetNb2pXroT3XidXmL5GE/3P01fqo+WYAuxfIxXRl8hXUrbhfumGAkHcBpO2kPtVHuqSRQShFwh1jSuIeqJkiqmqPfVs7hmMVFPlKArKEFcnF2lvL12e3gr7P+DXXwtM2qvJx96xZ6mnhqytzE7nGHaM4laL7FHwLW22yy/wd7XPFBnF2iT8C2EOE/9P/bePNqu86zTfPa8zzzeeZKu5ivZmmzHiR0IhISQCknTsAJUJaRgAdUh1U2tCilqreoOkK5qOpWigIaCsKqykoIiZKokxCQ2Tux4lC3ZsnUlW7N0defhzPOwh6//+GRZtgbLjqSrYT9r3XW999n729+xzj17/773fX+v6/m0HZl67/g+zY5Hrt6RtfsoVFpdZopNUhETXVUp1DscW64xkg5jaCpL5RaH5iusyUZQgIVKi2NLdYZTIYSAlVqbhXKLZFiK7FrbpetdWMb2etIRk2zUlAsbjS7v29pPX9ym1nYoNrr84t2jjKRD2IaGbWhEz6bRB1w/VltYCyFoNBpEo1Ecx+H+++/nT//0T7n33ntfc9znP/95vvWtb/H1r3+deDxOtVrlW9/6Fh/72Mfe0nUDYX0RLiasna5HvdDm8J5FDvxgBt1Quev9a9j+kyPo5o1Tiyp8n8o/fBfRbgOCzrHjlL7yFdRI5FWjtLNoPVnM4REQgtDOHYTuvBNzbAxjdAwtGojugLeOL3yqnSoHcgdYbiwTt+IU20Uen32chtOgJ9xDqV3icOEwrnDPpZhfDFuzGYmPkLbT5Jo5+iP97OrdRcpOUWwXWRNbw+bMZlJ2irgZD0oiAq4+vg+lM7Dwgoxc1xalo/riQYgPyNruyhwXRr8VabYWHwavK8+94xcgMSIj4qm1QR/xgICAgPPouh71tkvtbDeAqXyDZNig0fE4latzZLHKYDJEqdnl5EqdhXIbS1cpt5xLjnnnUIL+hE2t7dLouPz6j42zJiPFfyJkMJgMulNcbVZbWJ9Ps9nk/vvv5y//8i9529ve9prXRkdHeeyxxxgfH78q1wqE9UW4mLA+n73fOc3z3zsDQCRpcc/PrmXzvf2o2o0ZWRNCgOsiHIfWSy9R/OKX0HuyCM+jc/QY7ZdfvuAcNR7HWr8eY6AfxTAJ330X1qbNmGOjaLHYKryLgFsZx3cot8vsW9pHvVsnakYptUs8PP0wqqISN+OU2iVeLrx87vhLEdbDjMRGSNkp5mpzjCfH2ZrZStJKstRYYmNqI+uS60haSeJWnIgRLCIFXAU8R9Z4d+tSZJ/8AeRPSHO1yhzkj8ljXk9iVJqvuW0ptjd/QApvIwTZTRDrvf7vJSAgIOAmw/V8io0ui5U25ZbDUqXF/ukSp3Kyh/1Spc1UoUHXfW1EXFVg52iKNZkI+XqHqKXz8XetY12P9ASImFqwYP8WOF9gPvm14+Rn61d1/OxIlHd+eONlj/E8j927d3Py5Ek+8YlP8NnPfvY1r1erVcbGxiiVSldtXoGwvghvJKyFL1g4UQYFnvnWKZanqoSiBrt/Zg1b7hvAtG+elBPh+7grK6CqeKUSjb37KH/ta5hr1uBXKnROnsR7/QdO17HGxzHXjaOnM6iRMKFdu7DWrJE13WYQgQm4tnS9LqV2iWcWnsHHx1ANiu0iD049SMyMYWs2+XaeI4Uj6KpOx+tccixd1cnYGeJmnHwrz/rUetYl1hExIiw2FrkjewfjiXGiZhRDNRiJjhAxI8GNNuDN08jLNPPKHBz7HlTmpSt6ZQ7m90tx/fqotxWXwttpSuO1De+RwrvbgN4JGNoVtB0LCAgIuELq50XC95zKM5Vr0PV8pgtNlqrtc8epCpiaStTW+ci9Y2wdTFDvOGwdTLCxLwgwvRE3grB+hXK5zM/93M/xZ3/2Z2zbtu3c/kBYXyfeSFifj+/5/I/fexan5dFuOJghnS3vGGD7u0eIpe1rPNNrj1dv0Do4iRqO4OZWaDzxJLUf/ABz3ThuLoczNw/eeX2VFQXFNLG3bMEcG0NNJtASCdkqbGQEva8PRbtxUucDbg9c36XQKvDiyotoioaqqCw1l3hk+hF6wj0YqsFSY4nJ3CQxM0bX71LpVC45nqVZRI0oDafBuuQ6hmPDmKrJcnOZ3X27GYuPYWkWnu+xMb2R3nAvYT0ciPGAy+O5rwrvl78J7SqYEbk99Tj47lnxfR6KKgV3uyIFwpwTxgAAIABJREFU+Oi9si948bRMQx99u6z3Vo3A7TwgICDgMjS7LtOFJlP5BseWajxydJmlSptCo3uu37xtqNy/vocdIwnOFBr87J1D/PimntWd+A3IjZQKDvCZz3yGcDjM7/zO77xm/8jICI8//niQCn4teTPCGsD3Bd2WS3mlyf7vneHMoQIAoxNpttw3yNo7s2jGrfkw011YpLHnaczhYZzFJWqPPkJz7z6s9etxFhZwl5Zee4KmoVgWoe3bMYeHUWNR9J5ewrt2YgwOomWzgfgIuCFouS1OV06DgI7XYaY2w56FPfSH+wGYrk7z4sqL9IZ76Xgdcq0cDadxyfFeMWEbig6RDWVRUCi1S9zVfxf9kX6EELTdNjv6dpANZYnpMVJ2iqgZDf4mAl6l24TqvOwB3qkDAsozcPIR0HSZbt7Ic1G3c9WAxJA0aCtOQf+dMLhD9g4vnIShu2QU3DrbSzy1BgzrOr/BgICAgBuLZtfl8EKVx4/nOLpU43SuzqmcvN+riuyBvnssxeGFKh//iXXcvz4Q2qstrHO5HIZhkEwmabVavPe97+V3f/d3+cAHPvCa4/7iL/6CBx54gK9+9avE43Hq9Trf/OY3A1fwq8mbFdbnUy20ePrrJwjHLc4cylMvddBNlU339rP53gH61t5e5kqdU6do7nsOY3QEZ26e6ve+R+f4cYyREZy5udc4mAOgaajhEKE77kAfHEQxDIz+fkI7dmIMDWL09aEYQdpjwI1Jo9ug6TapO3XOVM7w4sqLDEQG6HgdjpePM7kyydrEWtpum5naDEuNJSzNou21LzmmpmgkrASaotHxOmzv2U7KTtH1unS8DvcO3EvSSqKrOhEjwmh8lISVIGpEA0f12xXPgfxJaBVkhLsyD8ceBDMMKLLN2CtGbN0GCO8SAylgJ6QzerMAvVsgPQ6KBsWTMHzPq9v1ZRjcKaPmui3T02ODoAff1wEBAbce5WaX584U2Xu6yIHZMgdmy7i+7DF+73iGHSNJTq3U+dT7NrM2e/t5uay2sD548CAf+9jH8DwP3/f58Ic/zKc//ekLjhNC8LnPfY4vfOELGIaBYRh88pOf5CMf+chbum4grC/CjyKsz8f3BT/8myMce3YJRVXwPUE4YTK+vYfN7xigdyx2W4nsi9E8MEn7yGGMvn6chQUq3/l73JUcel8vzsICXi5/wTlKOIy9aRPG4CAoYAyPEN65A2NwEGNwMGgjFnDT0fW6TFenOVY8Rn+kn1q3xsH8QSZzk9yZvZNat8bLhZeZqkwxGh+l2qmSa+Uua+KmoKApGsOxYeJWnK4ne5Dv7ttNwkrgeA4hPcSWzBYSZoKEJX+CFme3GUJAswQrL0uB7bkyAj71mEwpB6jMwNzzEErLdPRWUaaeXwlmFHQLOjXIboRon2xLVp6VaevRPnBaUuyP3SfN3rwOtMpSqIfTMnquaBAflKZut/l9MyAg4Maj2XXZe7rAEyfyPHUiz4kVWVM8mg7zs9sH2NAbo+N6fHD7EKEbqJvQtWK1hfVqEQjri3C1hPUrNCoddFPjzGSOp75xknZdPgxHEibDW9Ks29nD8OY0hnXr/6G9WZqHDuHMzaEnkzgLC5S+8lX8dgs9ncFZWMCZnb3gHMWyMNeNYwwMIhwHa924jHgPDsh083T6tl/QCLj5abttCq0Ctm5T6VR4YfkFTlVOsTm9mUqnwjOLzzBXmzu3faR4hHq3jq3b1J1Lm4goKMStOCBryTemNpKwEjSdJjEjxkR2gqSVxFANesO9ZENZklaSiBEYut1W+L6MhnfrUhQvvyRdzX1PppnP7pPRbOHLeu+lSUiOgtuV0e3akoyEOy0ppK8URZPRcK8LybFXx2gWpFA3I9AsQmMF1r1bCvFGDlolGP8Jud0syrkP3y23nbasPU+Py2i7bsu0+oCAgIC3yHy5xYOHFnnkyAr7zhTxfKmfPv7j4/zSPaOoikIqYt6yPbYDYf0qgbC+ysL6fArzdUpLDVzH58zBPKdezIEAzVAZWJegf12C0YkMvWtiaDdo+64bifbx43ilEoph4iwuUPzil1BMEzUWxZlfoHvy5IUn6TrmyAjG4CB+s4k1MUH4zjvQBwal+A7SzQNuUXzhoyoqju9wcOUgS40lhmJDVDoVfjDzA8rtMpvSm6h0Kjw5/yRtt01/pJ9Kp8JiYxHvkinDUpDbus1QdIiElaDWrZG1s2zObCZpJWm5LQajg4zFx0hYCdnuzIyjq7fmQ0XAm8BpSaGt6uB2oDwtW5el1kjRnTsOyy9D/x1SEOeOyp/+O6QoLp6SdefJMfl6PScFv2a+OdH+euwE6CE5P+FBzyYwwrKPue/ByD1ShJemZOR/9O0yOl+cAlWTwl23oTIr9/dtk9vNvFwASI7Jbd8FKwpWIjCXCwi4BSk1uvzgyDJfeW6WF2ZKCAGJkI6hqTzxqZ8gfAuK60BYv0ogrK+hsD4f3xcc+uEcTselXXeZPVqkuCDNEHRLY3Bdgr7xBGPbMvSMRG/YPtk3KkIIunNziHYbXJfuzAyFL34RPZVGMU26s7N0Dh++8ERFQe/pQe/txW82sbdtxZ6YQO/tRYsnMNevw+jpCdzNA24rcs0cbbdNxIxQ7pR56PRDOMJhNDZKpVPhgVMPoKs6A9EByp0yB1YOoKs6nvBwffeS48bMGEkrScNp0B/ulz3G7STFVpH1qfVsTG0kbaWJWTH6I/1YWmCmFfAm8D2Z6t7MybR0pyWFeG0JUmNSmC+9BLUF6Nsq25otHJAR796t4LZg8aBMfU+Py/MLJ+X+UEpG4JsFKbyF/8bzeSNUQ46lGRDukYK8viznnh6X2/njEM5IozndgsVJiA+cFe4WzO2X2QF9E1K4LxyQIr5nA2gWFE5JE7vkqFx8aBaloV0kI7cVLRD4AQHXiMVKi2+/uMDf7p1mrtQiETL4pbtHmMrX+advG+Ndm3pXe4pXhUBYv8qqCGtFUVLAINACzghxNe5Qb43rJaxfT6fp8PyDZ7AjBvVSh5mXC1Tz0tTItDX6xxNkhqIMb07RuyaOHQmiqj8KQgi8QgHhefjNJp3jJyh9/WsYvX0AdE+fpnXgAIppIrrd156s6+jpNMLzsLdOYG3YgJZKo9o2oW1bMUZGgpTzgNsaX/g4voOpmjTdJt+f/j66opOyU5Q7Zb527GtkQhmyoSyldolHZx49Z8JW6pRoua2Ljhs1onKMdpl1yXXnUtUL7QLbe7azKbWJbChLNpRFU4PFr4DriBBnXdlXpHu7EZIR+JUjMnIe65cR9bnnpQhPrZHb03tkHXl6XG6feRp089UI/NxzUiBH++T2yhEpoM2IHL+Rk3Xnvs9F3eDfCqohx9dNaBRk7XukV0biCychvRbiw/LY5UNyESI5KhcyFg9It/nkmKynXzwEQztl/3XPkQsDA3dKczvfkeZ6vZvlYoFAGuolhuT1XyG4lwbcYggheO5MiS/tmeKhl5bwBWwbivOHP3cnmwdiOJ5P2Lx5I9lHjhxh8+bNt9VzsBCCo0ePrp6wVhQlAXwC+GXABHKADfQBzwJ/IYT44VW74BWyWsL69dRLbSYfmSWWCVFYqDN9qECj/GpaWyxjk+gJMbYtQ/+6BD3DsVu2rddqITxP/jSbtA4fpvoP38UYHkK0O7QPH6axdy96Oo1XKl0ovg0DRdOwNm7EXDOGFouDphG+azfm6ChGfz9qInFbfekEBFwJnu/xUv4lUGSK+WJjkQenHiRtpzE1k4X6AvuW9hE1onS9LuVOGXERQZEwEwzHhklYCfLNPHf3382m9CYSZgJd1ZnITJAJZYK/wYBbg1eEfbsia9BBCvqVY2DYMo3dacPcPhltDyVlBP7MkxDtlxHrTh3OPCWN4sJp6FRhZp+MiNsJub30koxwG7YUweVZmcoOcvxLLIq9JTRDvqdQSkbtfU8uXGQ2yPl3G7J0YOguOd9WWQr/8R+X5zTycnv9T8n5N/IydX/9T8m2cs0i1JdgzX1gROSCiNOEns3y/aHI35oZiPuAa8Z8ucX/eOYMf7t3hmrbZetgnJlikwf+5f2suUkdxaempojFYmQyt8c9VghBoVCgVquxdu3a17x2PYX194G/Bh4QQpRf99pu4KPAISHEF67aRa+AG0VYv55KrsWJ55foGYmRn6tzbO8SpcXmudcVVSEcNxnenKJnJEZmOEp2OBpEtq8DQgjax45T/+GjmEPDeJUKzeefo/HMs5hjo7iFAu7S8tmIwnkoCsbICObwEBgmCEHk/vswz5qs6UNDGNlskHYeEHAZWk6Lg/mDCCFouS1Olk/y6Myj9EX6zrU2m61daHQIYGs2SStJ022yu28344lxQnqIttvm/uH7GYuPkbbTgVN6QMCbwXOlqH/FWA4V8KXoL01DKCFTzht5WU+fGJRR8vqyNMJLj8vt2iIsH4bMOlmDX1+C/AkZ7QcZra/MyWwA35PjtytSDLtdGRG/GqiGzBoQnnxfiVG53a3Ln6G75DXrK9IBf/xdMmOhMi+F+vi7ztbnL8j/N2PvkNutonxfvVvk8ULI33pQ8nI7Um07fOnpM/zVE6dodDzeO9HHp356EwBjmQimfvPchxzHYW5ujnb70u1EbzVs22Z4eBjjdT5NQY31DSqsX0+74ZCfrZHsC7M8VWX/Q2cozDewIgat6qvR02jKIjscJdEbpncsRmYoSrI3HES3rzPOygrN55/H6OvDzeWoP/kUzb17sSe24Cwv0z15Cr/RuPBETUPPZlEsCxSF6H33off1oVgmeiaDvXWrrP+ORq//mwoIuIlou23yrTzHS8fZs7CHnlAP1W6VI8UjvJx/magZpdgq4orX1oRrioZAMJGeYDg2jKqo1Lo1fmbtzzASGyFmxOgJ95xzUw8ICLhB8H0ZvXfb8ne7Bp2yFMq+A7VlaXwXH5LbxTNQOg19d7xqnFc6DUO7Zdp97qiM0A/uOGukd1xG0FNrz7aNOyuk9ZD8fRnDx8tixaXA7tYBFbIbpBCvzMro+dBu+XrhhNw/ei+YMVk/H0pK4zwzIhcqwlno2Xg2tV6RCwJBDf0NTaUlBfZ/e+o0ra6Hqav82MYePv+R3as9tYC3wPWMWB8Gvgz8nRDi1FUb+EfkZhHWF6PTdLDCBs1ql2e+fZL8bJ1Uf4TCfP2cMRrI6HYoahDL2AxtTJEaCJPqj5DqD2PaN29Nx82M6HZxVlZQTBN3JUf98cdoHTqEvXkz7vIKjb178XI5lFAIv1q94HzFMFAsC3vbNoy+XoTno6VThO+6C6OvD72vTwp0Pfj3DQi4FL7wmanOcDB/kJAeIt/Kc2DlAAdzB+mP9JNr5ZivzV8gvgF6Qj30hfsQCJpukw+t+xD9kX484RHRI9w/fH9gvhYQcDvhtGV6uoIU2qVpuR3JSiG+/BK0y6/W08+/IMV0evyskd6LUtAnRuTxuSMyMm8n5PGN/FnTvDfxbK7qUmybEZkBEErLiLkZke77iRHZQ96KwcphmXY/tEteszInt7PrZVRdiCBF/hpSbHT53D8e5Sv7ZomHDP7dP9nCB+4YYKXWuWlTxG9Hrqew3g78EvBhoAD8HfBVIcTCVbvIW+BmFtaX48Tzy1RWWsR7bEqLTSYfmQUFPMfH9179d42mLFIDEeyoQe9ojJ7RGMneMOGEeVvUSdwM+M0m9aeeonPqFObwMO7KCtWHHsItFDF6e3FWlnEXl+RN73XoPT3ofX2IbhctkyF8913o2SyoKubwCObateiZdCDAAwIugRCCpcYS1W6VleYK+5f3c6R4hL5wH8vNZY4Vj1HqlPAv4sGZslIA+Pi8Y/AdZOwMtW4NW7f5seEfI2NniBgRBiIDWEE6aEBAwBshhBTf3YbsGe80X412zz4HCGkM123IenrNlMK+24CZZ+WxZlRul6Zkir7vvLHLvWbJqH44K1PzXxHifVtlKzwzKhcORu6VQv2VGv3eCbCD7J43w6G5Cr/3nZd4YabMYMIm3+jw+Kd+goFEaLWnFnAFrJYr+L3ALwI/D5wCviyE+K/X5GJvwK0qrF+P63h0Wx5WRKeaa/H4l4+hmxpWRKe00CA3W3/N8YqqEE1Z9I7GSPSGiKQsskMyxTwcD0T3jUZ3YQF3aQnVtnGWl6l881v4zQZ6fz/uSo7mvn0I3wfnIjVoioJiGGjJJNamTejZLF6lgrl2DaE77kDv6UFLp6UBWyj4Yg8IuBgNp8Fyc5lDuUOcrpwmYkRYbizz4sqLFNtFQnqIYrtI021e9PyYGSNjZ2i5LUJ6iF19u84ZsaXsFLv6dpG0kqio9Ef6yYazGGrgqREQEPAjIsRZoX1GGrrhy7Z103vAsM72Yy/C1BNSJGumrBdfOSoj2U7r0vXtiirFuB2H6gIM7JBi3AjJ8ze+V0bIw1mZ5h7JBlFxZIveb7wwxx888DKOK/iDD23ll+4eodH1iN6CfbBvJVa1xlpRlHcBfwxMCCEuu1yvKIoNPAFYgA58Qwjxexc57sPA7yNzZSaFEP/0cuPeLsL6cvi+YPpQHkVTUFWF4nyDvQ+cJpaxET5U863XRLl1U8W0dTJDUXrOCu9kb5hEbygQ3TcwwnURvo+Xz1P53oPgOmjJJO5KjvLffxvVDqGGQri5HO7y8kXHUCMR9J4evEYda81a7IktaNke/FYTe9NmzLVrpBBPJoPPQUDARSi2i8zX5vHxKbQKPDb7GNVuld5wL4VWgf3L+3F8B0uzKHfKOJcxZIoaURzfIW7GGU+OEzNizNZm6Qv3sa1nGzEjxnx9nuHYMBuSG4iZMVCgL9RH3Iqjq8EDWkBAwI+IEK+mvneqUqRX5qQwt6LS6b0yAwuTYIalG327fPGxwhkZETcj0gxuywdkjbmdAF/A2L1SlN8mzJdb/M7XJnnmdIF3rMvw8kKFz/3Cdt67tX+1pxZwCa67sFYU5W5ky62fB6aArwBfF0IU3uA8BYgIIeqKohjAU8BvCyGePe+YDcDXgJ8UQpQURekVQqxcbtxAWF8aIQSKotCqdXnx+zPE0jYAS6crHN+3TDhh0q45+P6rnxPD0oilbXRTpXdNnMxghHhPiHg2RCxto91ELoe3K0IInIUF/EYThI+ztET5q19DSyVRwxGcxUXqjz+OFo3it9uI1sXbrWjJJMboKFoygVcsYm/dJnuAJxOgKFjr18soeDweiPCAgIsghGChvkCxXURTNcqdMo/OPIoQgmw4S6VT4Ym5JzBUg7gZp+7UmapMoSgKrn9hXfjrCethOl6HlJ1iKDpEWA8zVZ1iLD7GeGIcW7M5VT7F+tR61ibWYmkWuWaOsfgY/ZF+QnoIW7dJWAlMNVhUDQgIuEI8B2pL0nCtviLrvaeflm3TWiXZNq06d2GJmxWXNelGSBrJ7fqYFN7RfpmeHu295SLevi/44p4zfPbBo6DAn/ziDt5/x8BqTyvgElzPGuv/B5n+XUSK6a8KIebe4lhhpLD+uBBi73n7/yNwXAjx3650rEBYvzWcjoeigqoqzB8vc+D7M/SMxXDaHounK+Sma6ia8ppIt6JANG0TSZgYts7AugTJvjCJs8I7aBV2c+IWi9QeeQQ1EkEBOqenqH73uxiDgyAE3fl5nOlp+QG42HeKrqOcbUVmjAyjhsP41RqhnTsxx8ZQEwn0RBxjZERGwgOH04CAN8T1XRpOg8mVSRRFwdIsqt0qD08/TMpKkbSSVDoVHpt7jLSdJmyEqXVrHC8dJ6yHEQgaTuOiteMXQ1d0bN2m7bbpCfeQDWXRFZ25+hzrk+sZiA4ghOBM9QwTmQkGInJ7sbHIpvQmesO9KCg0nAajsVESVgJLs86J90C0BwTchrzSsm1xEmaflQ7vlVlYOiQF+euN3EbfLlPNFVU+b7zzdyB+a0R3jy/X+N/+Zj8zxSZ/8KGtLJbbvG9bP9uGEqs9tYDzuJ7C+tNIR/ATP8IYGrAfWA/8FyHE777u9W8Dx4H7AA34fSHEQ5cbMxDWVx/P8ankW8RSFp2Wx+kDOQ4/vcDI5hTNapfFUxVqhQt73ZkhnURPiFDMwI4YDKxPkugNkciGiKYsVC0QVDcrottFeB5+o0Fnaor6o49iDAwiPI/OsWPUn3oKc2wU0WrjLCzglS+RJqZpqNEoeB7W5s0YgwMoholwHMJ37cYYGERLpdB6shjpNIoRLNYEBLxVPN+j0C7geA4CQald4sWVF0lZKSzdIt/K89T8UwzHhokYEVaaKzy39BzD0WEMzaDQKnC6cpqUnQIBdad+yRrzy6GgYOs2uqrTclsMRgaJm3Fc4ZJv5ZnITJAwEzTdJkuNJXb07iBhJqg7dfKtPDt6dxA1orTcFtVulc3pzUSNKK7v4gufgeiAFPCajaVZ6KoeCPmAgBsd35ctz/LH4PTjMLtPmrDljsqU9FeI9MpotqrB+/4QBndJ4W0nbrrodqXl8NtfeZHHjuUIGRq//s61fPK9m1Z7WgHncT2F9f1CiKcu83ocGBVCvHQFYyWBbwH/+/nHK4ryD4CDdB4fRtZk3yGEKL/u/N8EfhNgdHR09/T09Ft4RwFvlU7TobjYJDMQplrscOzZRU5P5hjdkqFaaLE8VaXTvDCNMd4TIpG1sSIG0aRF39oE8axNLGNjR4zgQegWQbguTr6Aoqn41Sqtl16i8eRTWJs24jcatA+9ROvAAYzRUfxqFWd5GdyLp71qySSKbSNcl/Du3eg9PSB8hBCE77kHI5uVEfFsFi2RCKLhAQHXGNd3cX0Xx3cotUtMVaZIWkkEguXGMocKh1gTX4OqqMzV5pjMTbIpvQkFhbnaHIcLh9mQ2oCPz1J9idna7Lk2Z5VOhbpTx1CNy9amvxGqop5rleZ4DkOxIUzNpOk0aTpNJrITWKpFqVOi0W2ws28ntmaTb+VpuS129e2S2+08vu+zNbsVS7Ood+toisZoYhRbsxEIwnqYqBnF0ixUJfj+CQj4kRECaoswt//V6PbJ70Mj9+oxRkiapb3zkzKV/FyKub16875CPF/wuX88xucfP8Xb1qb5q4/uxtBUIoGp2Q3B9RTWfwy8DXgIGXXOATYy+vwTwBjwSSHEc1c43qeBphDiP5237/PAXiHEF89uPwL828uNGUSsbzzqpTalpSbJvjCVXIuXn5hnZbpG75oY1VyL/Hwd333tZ1PVFJJ9YeIZG8PWiKVD9K6JEc+EiGVsrHAQgbhVcWs1uidPyVruUonmvn009j1HeOdO3GKB1osH6J4+jT4wgFcqXbQvOACahpZKSXGtQHj3brRUGuF0USyL8F13o6dTqPEEem9PIMQDAm5AXnluEQjK7TIrrRUZ3fZd5uvzTFenGU+M4/oupyqnOFU+xfae7XS9LsdKx5iqTLGrbxcdt8Px0nFm67Pckb2DjtthqjpFrpljbWItHa/DUmOJhtMgbsZpe21a7sX9Jq4UBQVVUUlaSWzdptatoSoqa+JrsHSLpcYSpmqyKb0JS7OYrc0S0kNMZCawNIvp6jQxM8bm9GZMzWS5sUzCSjAaH8XSLFpui5gRIx1KY2omtmZjqMGidMBtQrsKiwdk//Aj35Htylqlsy8qEE7DPb8JY/fJDPOhHTLSfYPy9wfm+dQ3DjKWDtNyPD729jX8xo+Nr/a0bnuuq3mZoihppGnZfcAA0AKOAN+9XDT77Lk9gCOEKCuKEgIeBj4rhPiH8455H/DLQoiPKYqSBV4EdlzOGC0Q1jcfhfk6lVyLeNammm8z+egszUqXVH+Yar5NcbF+QUtGTVdI9kWIZWx0QyXZF6ZnNHY24h3CCgUrfbcLztIS7RMnMHp68IpF6k8/TefECeyJCbxiieZz+3BXcug9PbilEn6lcvGBNA0tmQRAsSxC2+9ET6Xxm020VJLQ9h1o6RRaIoHe2xsI8YCAW5y226bhNLA0i7bXZrY6S6lTYiAyQMfrcLhwmHKnzIbUBtpumwMrB6g7dTalN9FxO7yw8gJtt8361Hq6XpeDuYM4vsNIbISO1+Fk+SRCCBJWgo7XodguIoRAvL7O9E1iaza2btNwGkSNKP2RfmzdZqY6Q2+4l7WJtYT0EEeLRxmJjbAuuQ5bszleOs5YfOycsd1CfYHh2LA8X7PxhEfKThExIoEDfcCNSW0Z5p6DA38L+eNSbL/yAJlaA/d+Ata/W7YbG9ol08lvIJ48keM3/vp5TE3ljz68nfdM3Br15Dczq9pu682gKMqdwH9H1k6rwNeEEJ9RFOUzwPNCiO+cdQ7/I+B9gAf8ByHEVy43biCsbz2Wz1RoN1zCMZNqocX+h6YRviCatKgW2hQXGhecoxkqqf4w8UwIRYX0oGwlFkvLVPNAeN++dOcXcOZm0ZJJvGKR6g8ewcvlMNeN4xVL1J98EtFqnXvdu5QQV1UpxD0PNZHAnphAT6dwKxWM/gFCd2xDS6VRY1GMvj6Zxq7dWDfxgICAGwchBL7wURSFrtdltjaL4zvEjBhtr82h3CEURaEv3Efba/Ps4rPYms1QdIiO1+GJ+SeIm3EGI4O0vTZ7FvaQMBNkQhnabpuD+YNEjSghPUTbbbPSWkFV1Cs2tDsfQzVwfZeYGSNpJdFVneXmMiOxEfrD/SiKwpnKGTakNjAUHUIgmK5Oszm9mcHoIAoKy81lNqY20hfuQ1d1POHRG+4lbgat4wKuEq0ynHkSJr8Ciwdlm7BXWPdT8K5/K83RfEfWaN8A7Jsq8qtf3EcmavG3v/428vUO24eTqGqQibIa3DTC+loRCOvbj8VTZTzXx7R1KrkW+x6Ywo4amLZOrdCitHShuY5mqCR6pImaEJAdiZIdihJN28TOOp0H5moBAN3padxCATUSxSsVqTzwDwinizk8jFuQDuqKqqJGo3iFwqWFuKKgJRII10XPZmWrsnQat1DAHF+LvWkTejqNEg5jDAygp1KBWVtAQMA1x/EdWk6LmdoMqqJiqAZ1p86Lyy+StJNEjSiQWl/yAAAgAElEQVSVboVnFp6hP9xP3IpT6VR4dvFZBqOD8vVOhUP5Q/SEejA1k2q3ymJ9kZARwvM92t6FBqeX4xXhngllSJhS8ORbeTalN5EJZXA8h4X6Arv6dpEJZeh6XVaaK+zs3UnaTp+75rrEOuJWHEu3iOgRDC34Tr2tKZ6Go9+Dyb+D3DEpqEMpaFXgQ/8FdvzyDWGAdmC2zK98YS+WrpGrd/j9n53gn9+3drWndVsSCOtAWAech+8Llk6VUVQFRVUoLTZ44aFpYlkbTdeo5lsXjXgrCkRSFpGEBQJ6xmJkhqJEU9a5qLdpByvqARfSOXMGv15HMU28Yony//yfqOEweiaDWyxSffBBtHgcxZKve8XiJcdSYzGE62IMDGCOr0VLJHHzeezNm7HWr0NLJuXYg4PomQyqaV7HdxoQEBBwZTieQ6FVAAU84VFoFThaPErGzqAoCkuNJSZzk4zGRtFUjYX6AgdzB1mbWIuiKCzWFzldOX3O2K7ULlHtVlFR8bnyiLuhGoSNMAoKLbfFxtRG4macptuk2C5y/+D9xK041U6VSrfCO4feScyM0fE6+EIa170S9Te14Pv2pqZVhhMPw4Evy6i270rDs8x6sKLwv/wV6Kv3b/zyQoWPfmEfQgi+8y/vZyQdXrW53M4EwjoQ1gFvAs/zKS40MCwN3xPkpqtM/nCOdH8EgOJindxMXbZQfN292wrrhOPyS7d3TZz0QIRI0iSWlgZrQdQ74I0Qvk93ZuacC7qzvEzl299Gz/agRiM4i0vUHn4YvbcXRVFw83m8UumS4ynhMPg+xvAw5sgIaiSCV6lgb9uGOTaKFovL1PRXhHgodL3eakBAQMBVRwhBx+tQaBWYr88TM2M4vsNMbYbjxeOsS66j63c5VTrF0eJRtma30vW6nKqcYqo8xXhynKbTZLGxSKlTwtbsN9VCLmNniBgR2l6brtc91wou38rT9bq8c/idxE0Z4ddVnbv67iJuxdEVnbSdJmQE38E3BO0qHHkADn4Fpp6Q+9a8E+75DQhnYeDOVTE+e3GmxC//12fZ2Bfjv//a3ew9XeJ924K66+vJdRfWiqKEgU8iW2v9hqIoG4BN55uQXU8CYR1wNfE9n3qpgxnWcTs+CydLHHl6kZ6RGG7XY/lMlZXpGqat0W17rzlXUcCKGKiqQs9ojERPCCsie3pnhiIy5TxpoemB+A64MoTr0l1YQFEUhOPSnZmm9uBDGCPDKLpO5/Rp6o8/gTk8jPA83OXlywtxS7YgMsfG0Af6US0Lr9EktGM75uAQaiyKFk9gDA+h9/Sgnj0+ICAg4FbF8z2K7SIrzRVs3abu1DlZOslsbZax+BgNp8FL+ZeYr8+zIbWBulPnWPEYxXaR/kg/9W6dldYKXa/7hteKGBFiZoyW28JQDO7suZOYGWOpsUTICPH2gbeTsBKU22WyoSzbe7efc5kPuEZU5mRN9v4vyfZeKLIO+yPfhFjfdZ/ODw4v85t/8zxrsxFO5Ro89K/eyeb++HWfx+3KagjrryLbbf2KEGLbWaG9Rwix46pf7AoIhHXA9UQIQbflolsanuMze6TEieeW6F+XoNN0mT9WYvFUhWRvmGalc4H4BulwnhqQQtuwNHRLY2A8IYV3yiKatNDNwPQq4M0jHAdneRnFNBGtFu1jx6g/+kPMDRvAdWkfOUzj2b1Y69YhWi2chQW8cvmS4ym2fJizNmzA6O8DVUO4juwh3tePGouiZ3sw+vtQ4/Gg7U9AQMBtTdttU+vWOFk+Sa6ZI2ElqHarPL/8PJVOhYHIANVulcmVSdpe+1waeq6Vu6ypnIKCrdusia8hZadYrC/SE+7h7v67SVkplppLrImvYVffLrKhLIZqBIZwbxbfg+MPwVN/LJ3GNQu2/TzUl+B9n4WejddtKn+7d5p/962XeNfGHr74q3cH99bryGoI6+eFEHcpivKiEGLn2X2TQojtV/1iV0AgrANuNF75u1MUheWpCmdeKtA/nqBR7jA1mWPxZIW+tXEa5Q7l5Raee+HN1I4YRFIWuqFiWBpDG1NEkhbhuEk0ZRFJWkFv74AfGdHt4uTzqOEwfq1Ga3KSxp5nsLdO4NfqNF94gdbkJPaGDXiVMt25eUTrEr1+DUOmmgtBaPt29GwW4fugKETf8Xa0TFampff3S9O2wKgtICAg4Bxdt0vNqVHpVphcmaTerRM2wpQ6JZ6cexKBIGbGKLfLHC0dRQiB4zuXHC9uxtmQ2kA2lOV0+TSb05u5Z+AesqEshVaBO3ruYG18bfAccTHyJ+HpP5GmZ74LWz4I7/49SAyBbl8Xw7P/9I/H+PMfnuRTP72J9070ETI1hlNB3fW1ZjWE9R7g3cDTQohdiqKsA/5OCHHPVb/YFRAI64CbmVpR9u1OZMPUSm2O710iP1enb22CRqnN4skK3bbLxf6UNUPFMDUMW6NvTZxIwkLRIJqyyQxFiSRMIkkrMF0LuGr4zSbO0hJaLIZbLNJ4di+tyQOE7rgTr1igsXcv3akzmKOjuMUi7vIy+BePwmjJJGgaiq4T2rUTPZPFb7fQolHCd98ta8ITCYy+PtRw8DAREBAQ8Hocz6HcKTOZm6ThNBAI8s08P5z94TlH9Hwzz0xt5qL90m3NpifcQ76ZZyIzwe7+3WTsDAv1Bd4x9A529u4kpN/GdeGVOXj6T+GFvwGvC+l1EM3Cx74L6rUt6xNC8K++eoDvTC6QChvcOZzkS7+6KlLrtmI1hPV7gP8TmAAeBu4D/rkQ4rGrfrErIBDWAbcyTsej3XAIRQ0alQ5Hn1mkVuyQHY7SqHQ5+fwyTscjFDOplzu4nQtTz1VNIZ4NEUma+K4gmrLoW5sgnDAJxwyi6RCRhBmknwdcddxyGWduTpqqFYvUHnscZ2Yaa/0G3GKBxp5n8Eol9FQKt1jEr9UuOo4SCqFnMgjHQY1ECO/ehZbO4JXLaJkMoa0TaIkEaiyGlkpJ9/TAMT0gICDgHE2nSaFdYLmxzJ6FPQB0vA6ztVn2L+9HUzQq3coFKekpK0XdqbOzdye7+naRttKUOiXePfpuNqY23h4R7/oKPP4f4fkvgKrLftj3/hY4LQinr9llm12XD/750+RqHb78629j69CN0Xv7VmZVXMEVRckA9wIK8KwQIn9NLnQFBMI6IOBVpg8XaFW7RFM2jXKHQ4/NATKK3ax0WJqqghAXjYDL1HKIJC0yw1HCcQvhC5J9IRK9YcJxk0jcwooEKegB14bOzAzu4hJqOIxXLFB9+Pt41Qrm4JCMkO/Zg3Ccc63L8C5cSHoF5WxauhaLYa5di5ZI4Obz6AP92Fu2oCUS+PUG+sAA5tAgajSGFouiRqMoth18xgMCAm47XN9lsbHIS7mXaLgNiu0ix4rH2L+8H0VRKLQKr4l8h/UwfeE+yp0y71/7fnb37yYbyhIzYqxNrEVTb7EF+/wJ+P6n4dj3INIL7TL80pdhw3uu2SWPL9f44J8/xa7RFH/9a/dwfLnOxGBgZnatWI2I9a6L7K4A00II96pf8A0IhHVAwJXTqnXxPB/d0GiUOxx4ZAbD1AknTBrlDkf3LEpnc02hWe3iORem8SoqRBIWoZiJ0/FIDYTJDEYJxQw0QyXZGyaasgnHTQzrFrupBtwwCCHoHD6MW6uhxWL4lQqV7zyAousYw8N4lQrVBx9EDYfR0in8SoXOyVOyNu4S6enn0HW0aBS/3UbPZDCGhlAjEZylJcyxUcw1a1DDEbxiAWNsDebQIEokgmrZaJk0WiSCGg6j6EEZRkBAwK2D4zmcqZ7hheUX6HgdFhoLTK5Mcrx0nK7/Wlf0wcggm9KbSJgJ2l6bf3Hnv2Bdct2tsWg59SR8919D/jhMfAj+yX+GUAqu0ULC156f5d984yA/ubmXx4/n+O7/cX/gFH6NWA1h/SywCziIjFhvA14GEsDHhRAPX/WLXoZAWAcEXBs81+P0gTy6qWLaOtV8i8lHZ0lkw5ghjVqhzfzxMqat4XS8i0bBFRXCcYt41saOGLhdn+xIlGRfmHDMlFHwpEUoZgQ9wAOuOX67jXBdFE2Twvvh76NFI2jpNF6lSuUbX0cfHMLo7cWrlKn+48OyxjsewytX6J48iWJZCMd5Y3EOoCiokQhaIoFimniVCsbQEHpfL4qm466sYK5fh9HXD5qGVy5jrV2L3pNFMUxQFfSeHrRYDDUclmI9SHEPCAi4AWk6Taar0+xf3s+zi89iqAanK6eZqkydi3LHjBhJK0nH7/CJHZ9ga2Yr/ZF+YmYMVbnJngHcrnQQf+Jzsud1tBe2/QL8+Keu+qWEEHzy65N864V5Pvr2MX7vZ7eiqbfAAsUNyGoI628C/5cQ4uWz2xPAZ4B/A3zzerfdCoR1QMDq4XRlKq6mq1RyTY49s0Qsa6NpKoWFOsf3LpPql8ZT1XybWrF98YEUzpmsJftCxNIhDFtD+ILsSJR4OkQoZhCKmYTiJqat3Rqr3gE3FX5XRmQUw8Arl2ns3YueSKDYNu7KCtWHv485OiLTzpdXqD3yCNb69WixKM5Kjtb+/RjDsge5Vy7jrqygGIYU6leKrqNGIiiaht9qYQwNoSUT4Au8Uglr8yb0VArhuHjlEtbEVvRUEuH5iE5bpsXH4yhnXdzVeAI1HEINhYIIe0BAwFWn5bY4XDjMqfIpjhWPsWdhDwuNhXO13JqiYagGH534KDt6dxAzYozGR8mEMqs88ytk5Qj8/Sdgfj8M7oRf+Q7YVz+a3Oi4fPDPn6LScvnBv/4xYrYRiOtrwGoI65eEENsutk9RlAOBsA4ICLgYnuNTK7Yxwzpu1yM3XeXEcytkR2L4nk9uts7skSLpgQhu16Ne6uBcxIwNQNUVrJCOEJAdjhJJWmiGiqIo9I7GzkXBQzGTUMxAN4KU9IAbC+F5+PU6SiiEomk4Kyu0Jg9iDg6ApuHMzNJ45hmsLVtQTYPO1BkazzxD6M47UBSV7swMrYMHsTdvBiFwlpZwZmfRe3sRnQ5eowHum6/OUuNx6cLu+/itFtbGjaiRMH6jiV+vE9q1CzUcwm808Fttwjt3oIZC+J0OANa6dTKybhgosRhaOByI9oCAgNfg+R4ztRkOFw7z3dPf5UT5BLlmDk/Ie76t2bx//P3s6NmBoijc1XcXw7HhVZ71ZfA92PP/wSP/N6TWwL0fh3AGtv2vV/UyLy9U+OCfP817Jvo4vlTjjz68nZ2jqat6jdud1RDWXwWKwFfO7vpFIAt8FHhKCHH3Vb/oZQiEdUDArUm77pCbrRHP2jgdj/ljZaYO5hnelMTpeCyerLA8VSU9FKHTcGmUO/j+xb/zTFtDP1vv3bcmTihuoioKmqnSNxbHjhmEogahqIkdNdD0mywlLSDgdfiNhmyNlk4jHIfumTO0Dx/G2rIFHJf20aO0Dx0kfM89iK5D++WXaR8+TPht9yDaHTrHjtGdnsaamEA0mzjz89KFPZHAb7UQ3e4bT+J8VBVUFb2nRwrxZhOEj7VpE2oojFsooCgKoe13ooRCePkCGAahrRMoZ49XwxHMkWHZL922ZS17INoDAm4Jmk6Tlwsv8+DUgxwvHedM9QyVTgWQQvs9Y+/hbQNvo9Kp8FNjP8VgdHCVZ3wRzjwN3/g1aKxAbAB++yBoV/f76f998Ciff/wUEwNx/v3PbWNXIKyvKqshrEPAbwH3n931NPAXQBsICyHqV/2ilyEQ1gEBASB7gudnaqQGI7TrDtMv5Zk/XmZ0Ik2r7jB/rERpqUmqP0yz5tCqXloYmLaGZqiomkrPSBQ7ZiKEwArpZIdjMhp+VoSHYgaGFaSmB9z6CCHOfc6dXA53eRm9pxfRatI6fARnfg57ywR+q0lz/37cxUVC23fI7ef34+Xz2Nu24bdatA8dwqvXMYeH8VstnPn5c/Xvb1a0K6b8+1QMA6O/HzUUwi0UUCNhrA0bUUMhnPl5tGQSa9NG1FAYZ2UZPZvFHBtDDYURrouWTqEnk6iRiEy3t6zg7zogYJUQQjBVmeLBqQc5VDjE4fxhSp0SABk7wwfXf5B3DL4Dx3W4d/Dec327V536ihTXZ56EXR+Dn/ksdOoQ7bkqw7e6Hj/9J0+gqQoP/vY7sYOMvKvKqrTbupEIhHVAQMBbobjUoLTQIDUQoV3vcnL/CqXlJkMbkrRqDtMvFWjWuiR6QrTrDo1y56IGbSBrzDVdQbc0MoMR7KiJ5/qEogbZkRihqIEVMQjHzXP/rQa1UQEBr0G4LoquI1yXzunT+LUaeiaD32rRfH4/fruFOTaGaLWoP/UUwvOx1o2f3X4aVBVzZAS/1aQ1OYmi6WjJJH6rhbu0dGWO8OejKKhnjeP8Wg0tncYYPusQPzOLMTyMNb4WJRzGmZ3DXDOGOTqKEgrL+ve+XvRsNhDqAQFXAV/4nCid4MGpB3lx5UUO5g/i+rLcZWfvTv7Zln/G3X13EzWjmNoqmzz6Hjz67+Gp/wzJMfC68FvPSOfwq8CTJ3J89Av7+K13rSMeMrh3PMOOkeRVGft2ZzUi1huAPwQmAPuV/UKI8at+sSsgENYBAQHXg+JinWbFIZ61adUcjj67SLvh0Dsap3VWmHuuTyxt06o71PKtSwpxFCnGTVsn2ReSrcvaHtGURWYoei4KHklZhGMyMh7UiQcEvHX8bhc8D8UwpFB/4QUUTZPCvdmk+tA/oiUSGEND+I0Gle/8PXpvL0b/AH6jTu2RR9Gz2bP9z+t0TpyQvdI978oj7KoqRXYohFetYgwMoPf1ofz/7N13mJxV2fjx73me6W1ne8nupiekkAohlBASCAFDD4IgKqIiKFgQfioqCL76KoggiFhQUZQmEAmJNAOBNAIhpFdSd5PN9jK702fO749ZeAOm7CazO1vuz3XlYmfmOfe5iY8Pe89pNiuxffuxDx+GrbQU2neMtw8fjrW4CGx20ElsxcWY2dmpYt/tRhmyZEX0X22xNpZULuH57c+zpWELjZFGLCo17frWk2/l0mGX4rK6Mpvkqj/Dwu+kpoV/9S1w56Ut9C3PrGH+mv34HBY+fXIZ3z9/VNpi92eZKKyXAncC9wMXAl8EDK31HWnvrAOksBZC9ERN1UHisQROj41Qa4yNS/ahFPgLXYRaY2xeVoXVbuDOshNqjdFQ1QZHeGQrQ2F3WfDlOXF6rISDMfwFLnKK3Tg8qbPHfbkOXO1njMvO6UJ0Ha01JJOp3dnDYUIbNmDY7RgOB/HGRlrfWIy1qBAjK4tEXT2BRYuwlpdj+nzE62oJvr0Sa0kJym4n0dBAdM8eDFdqSrpu3wjuaJTTmdrh3WYjEQhgHzoUS0Fqumm8rh7nuBOxFhaiUehgMLVjfG5uajd4jxfTnyWj6KJPSCQTrK5ZzdNbn2ZJ5RKC8SBOi5Mybxm5jlwePvvhzE0V37IwNTXcNwAuuB+aK2DiNccdtqEtytn3LWZAtpP5Xz9DZsGlSSYK6/e01pOVUuu11ice/F7aO+sAKayFEH1BS10IpRRWh0koEGXdG5U4PVbcfjvBQJQNb+7D47fjcFsJBqLUVbRimIpk4vDPebvLgifbgd1tIRqMk13sJrvIhc1lwTAUWflO3O2FuMNtkbPEhcigD9ewJwIBwtu2YXq9KMMgWllJ27Ll2IcORVlMIrt307Z0GfYTTkCZBrG9FYQ2bMBWWopOJIjX1ZFsaelYpxYLht2OjkaxDRqE6fej43ESLS24Jk/CzMmBRJJkNIJr4iTMnGyUw4Hp92PNzUW5XFKYix4lqZOsrl7Nwl0Lmb9jPtFElDxnHpcOuxSfzcepJacyMmdk9ya1dyU8eSXEwmBxwDffT8u08OdXV3LLM2u5Z+44zh5VgM1i4HX0kLXmvVQmCuvlpDYuexZ4HdgH/Fxr3c13aYoU1kKI/kYnNcFANLW222oQaAizeVkV3hwHdqdJc12Yzcv3k13oxmJLfV5X0YrFZhCPHn6NqdVh4s6yY3OYxCIJcgd48OU5sdgNFOAvcOHKsmN3W3C4rTjcsoO6ED2NTiZJBoOp9erhcOpotg0bsQ0sR0ejRLZtJ/j+apxjT0RHo4S3biG8eQuOkSM/uj5eXY2RlUUyEDjyunSrFWW1QiKBfeRITH8WyWAIHYngPuN0TF8WOhwCw8Q5cQJmlh/Dn4UlOxvDluF1sKLPiyaiLKlcwrwP5rFk3xKSOkmJu4Tvn/J9ziw9E601ptFNy6xqtsBjnwLDCl/+D/jLjjuk1ppLfrucA80hwrEEn55cxg8vGJ2GZPuvTBTWJwObAT/wE8AH3KO1Xpn2zjpACmshhDgyrTWRYLx9p3NFS02I7e/V4C9wYpgG9fta2f5uNXllHpShaKoOUlfRit1tIRZOHHFU3Go3sdpNkklNdpELd5Ydw1Qk4knyy724s+xYbKn15E6fDbvTgq39j0xdE6Jn08kk0b17iWzbjq10AImWFoLvv09k82ac48aRaG4htGZN6mi2YcNItLQQ3bOHZGv7ATFH+D3UcLtTI+SJOMq04Jw8CdPvJ9ESwHS5cE2ZgpmdDYaBtSAfa3ExSopxcYyqWqt4YssTvLjjRerD9ZS4SwjEAjxw1gNMKZ7STUmshccuBHduajq4aYPTbj6ukMt31HH1H1dy7uhC/t95IxlW4E1Tsv1TJgrrT2ut/3m097qLFNZCCJF+8WgCZSoMQ9FcE2LPxnpyB3jQSU31rhZ2rq2ldGQ2yYSmdm+AAzubyR3gIRZJ0NYUIRZJHLUPq93E3j4tPZnU5Axw43BZU+tXtSKvzI3dZcWwGNgcJm6//WOFucVqyDRUIXqg1P+HNcnWVsKbtxDdV4mtuJhEczOtS5cSP3AA+9ChJJqaaHt3FcnWVkyfj0RT0/8V5YdgeDzoZBLD5cI5bhyW3Fzi9fVYCvJxn3IKZm4uyjCwlpVhKSiQ54P4L7FkjEV7FvHI2kfY2byTHEcO14y6hhllMyhyF+Gxebo2gb0r4fFLwTCh9GS4+mk4zvXfX/jzO6ypaOKt/zeDLKdMBT8emSisV2utJx3tve4ihbUQQvQs4bYYLXUhvDl2ouEE1btaqNzaSPnoHGKRBPu2NbF/eyODx+UTDcep3tVC44Eg+WUeIqE4bc1RErGjH4ukDIXNkZrGp5Qiq8CJzWESjyVRhiJ3gAeb3SSZ0FjsBll5TqwOC1aHic1uweY0sdot2BypUXclI+hCZFyspoZ4TQ3KaiPR1ETrm4tJBlqxlhS3v34LHY9juN3EG+pJ1NYdOpDFgiUnh2QohCU/D+eJ4zDzcontr8I+dAiuyZOxFBRg+P1YcnKkCO9ntNa8c+Ad/rLhLyzbvwyLsuCz+3jpspe6fjfxnYvhH1dA4Rj4wotgP75iftP+FuY8tIQvnTGYSCzJmSPymTW6MD259jPdVlgrpc4HPgVcATx90Ec+YLTW+ojzKJRSDuAtwA5YgGe11nd+4pprgXtJrdsG+I3W+tEjxZXCWggher9kUn80Nby1MUKgIUReqZdIME7l1nrqKtooG5VDJBRjz/p6GquDlI/OIRpOULmlgWBzlIJBPqKhOI1VbcSiSWwOk2g4gU527L+FVruJ1WGikxrTapCV78RqtxCLxNuPRnNhc6QKdbvbgjvLkSrKHe3FucPE1l64m7IRnBDdItHWRry2FmIx4vX1tLzyKugkpi+LeH0drYvfTK0DNxSJuvpDH49msWAbMACzoIB4VRWOUaNwTp6EJT+fRHMzjhNPxDF8OIbD8d9tRa+3sX4jP1v5M9bVrqPAVcAN424g35nP9LLpXfeFy9aX4KmrYfhssHvhnB9D1oBjDvetp97npQ0HKM12ctmkUr4+Y1jaUu1PurOwHg9MBO4CDj5aKwC8obVuPEp7Bbi11q1KKSuwFPim1vrtg665FjhJa31TR/OSwloIIcTBwm0xYpEE3hwHWmv2b2si2BIhf6CPWDjB9veqiQRjDBiRTSycYOvKAyTiSYqH+omF4+xaVwca/EUuouEEjVVtQGpUPBE/+kg6gGEo7G4LVoeFRDSB3W3Fl+vA6rAQCcVx+2x4cx3YHBa01rh8qfPKPyzMbR8V67IWXYh0SSaTxCorSTQ2oiMR4lVVNC/8N4bTmdphveoAoXXrQCmIx/+rveH1oiNhbEOG4jjhBMycHOI1NbhPOw3nuBMxi4ow3W4Z/e6l3j3wLg+sfoB1tesAuH7c9dw88fjWQB/R8t/Aqz8AixPmPgqjLjjmUBUNQWbet5jLJpbyi8vHpTHJ/iUTU8EtWuv/ftp0LoaLVGF948GbnklhLYQQoqdpqQsB4Mtzkogn+eC9apRKTTWPhuJseLMSm9NK/kAvsXCC9W9W4vLayClxEw0n2LG6BqfHitNnIxpO0FIbQhmqwyPpygCbw5IqvO0mkVAcT7YDT44di80kGorjzXXg8dux2kwMi4HTa02tRW8v0G0Oi0x3F6KDtNYkW1pSR50tXQZWK0SjRPfspm3Zcgyvl2RbG/GamkPumm4tLcU+bBiGz0u8tg7vzBk4Ro3CkpeHWViI6XRm4N9KdITWmkV7F3H3irtpjDRy8dCLuWjoRYzIHoHf4U93Z/D89bD+n6m11iNmH1e4H8/fyN9W7ObVb0/HaTMpyXLIlzyd1J0j1uuBwwbUWh/16xGllAm8BwwDHtZaf/cTn18L/C9QC2wDvq21rjhSTCmshRBC9GRaa3RSf3ROeO3eQGoqud9ONBRn41v78eY68OU6CLfFWLuogpxiN758J6HWGJuW7CO72I3HbyfUGqNySyNuvx3TooiE4kTaOv5dt8VmgAan14bTa8W0GkRDcbIKXLh9NkyrQTyWxJfnxOm1YrWZ2JwmNqf1/wr0D9ekyy9sop9LRiKEt20j2dJCorGJ8ObNtC1dmtrdvLmZWEUFyba2/2pnKSrCPmQwhttDIhDAN2cOjhNOwFJYgJmTg2GxZODfRhwsGAvyh3V/4K8b/0qS1DGbvkQAACAASURBVDFdCy9diGGkeZlPNAh/ng2Nu+H8eyARgcnXHlOo+tYIZ97zBuNK/azcVc8/vjyVU4fmpjXdvq47C+uBR/pca72nE7H8wDzgZq31hoPezwVatdYRpdRXgSu11jMP0f564HqA8vLyyXv2dLhrIYQQotfSWqc2dlNgsZrEY6nN4TzZDmxOk9aGCFveriK/3IvDbaW5LsTWFVUUDfHjcFtorgux8/1aCgb6sNhMWhvDNOxvw+WzkUgkiYbi6I7NdsfmMDGtBsmkJivPicNjRSlFPJogt9SD02PDMBUoyMp34nCnRtE/2tndYX70ZYMQfVW8qYl4dQ3x2lpCa9fQtnwFlpxsYtU1RD/4gGQw+F9tbMOGYR88CEwLOhrFf+UVOEaMwCwowDC76dxlAcCOph3cvvR2NtVvYkbZDH409UckdIIid1H6OmnaC384C+IRyCqDG5aCeWxfrvzPgk38ZfluPj+1nBtnDKPAK/sCdEa3TwVv77QQOLn95Tta65pjiHEHENRa//Iwn5tAg9Y660hxZMRaCCGEODbJRJJwWxyb08RiNQkGIuzf3kxuiRvDVNRXtrJzbR2lI7MxLIravQF2ra2jfEwOhjKoqwxQtaOZgoE+kokkgYYwoUAMw6JIxo/+O4hpSY16e3Od2F0WdFITjyUpHOzD7rKSTKSq/LwyL3anBYvdwOG2YndasTstWJ2yUZzo3eKNjcSqq4lXVtK28h1Cq1dj5uYS27eP6O7dkDjo6EKLBZTCe/bZ2IcMRqMws3z4587F9HTxMVH9WFIn+fumv3P/6vtxmA5iiRjzLplHmbcsfZ3sWgJ/uxhGXwyf/ssxh9nXFOLMe97g2tMG8aMLRqcvv34iE2usryC1c/diQAHTgNu01s8epV0+ENNaNymlnMCrwC+01gsOuqZYa13V/vOlwHe11lOPFFcKayGEEKJniIbjBJuj+PIc6CTUVgSo2tFE0ZAsErEkVTua2b+9ifIxucSjCQ7sbKZmT4CS4amN4xr2t9HWHMXlsxENxYl36Ni11NR2u8uKTmqUgoKBPuwuC/FYEqvdJL/Mg91lxWIzcHhtOD1W7C4LFquM/omeSyeTRPfuJX7gANFduwgsfpPojh1gGMQqKz+2vtvMz0NZbRhuF/65c7EPH44lPx/bkCEytTxNNtdv5pbFt1DZWsmXxn6JmybehMVI49/t4l/A4p/B5X8Bix1OmHNMYb711Pu8tqmaP117Mmsrmvjq9KHpy7GPy0RhvRaY9eEodXvB/B+t9fijtBsH/BUwAQN4Rmt9t1LqbmCV1nq+Uup/gYuAONBAanOzLUeKK4W1EEII0XckYklMa2oUuvFAG40HguQOcBMNJdi7uYHG/W2UnpBNJBRn74Z6mutClAz3EwnGObCjmXAwhttnJxKMEQ0njtiXMsC0GHhznThcFqKRBFa7SUG596PC3Om1kl3oxu5KbSDn8Fixu6yyW7vIqGQ0SnjjRsIbN5EMBYnu2k3rkiUkm5s/fqSYxYJr4kTsw4eTDIVwjB5N1sUXYfp8mUu+FwvGgtzz7j08t/05Ti48mSRJ7jrtLgb6jrhitmMSMXj0HKjbDrE2+MobMGBSp8Ns3N/MnAeXctrQXDbub+HN287C77Idf379QCYK6/Va6xMPem0Aaw9+rztJYS2EEEKID+mk/mj389QIeARvroNIMM6utbWEWmPkl3oIB+PsWlNLLJogu8hNJBijelcLWoNpqiMX5Yr2qevgcFvIKfHg8FgJB6J4ch3kl6XWuJsWhSfHgctnk2JcdJt4QwORbdtpfuFfxKpr0MEgke3bP7aRmrW0FB2N4pwwHv+nr8AxehRmVhZKRrc75Lltz/GTt3+CUoqHZz7MaQNOS0/gms3w++lQPA6+9Frq6LdjcM2jK9l6IMDL35pGrseentz6gUwU1vcC44An29+6Elj3yR2+u4sU1kIIIYRIB601iXgSi9UkmUiyd3MjiWgCT46DSFuMTcurMAzIKnARbo2xY3UNptXA7rISaYvR2hg5fHD14fnm1o82ewu2RMkucpFX6vlo8zd/gRNPjgOnxyqbu4m00VoT3bmT8KbNxKqqCG/cQOviN9GRg+5ZpbAPG4Z39mwco0dhuN24Jk+WYvsw3q56m1sW34LVsPLgzAfxWD0M9adh2vWyB+G1H8Glv4dh54Art9MF9lvbavn8n9/hnsvHccVJZSSTWr7Y64BMbV52GXBG+8slWut5XdJRB0hhLYQQQoieINAQIpHQmKZBuDXGpmX7sbssuHw2goEYW5btx+W3Y3daCAVi1O9rRRkceid2BUop3Fk2sgpSu6oHW6IUlHvbR8gtmFYTf4ETV1bqDHMhOisRCBDetJnQ6tU0L1iADoWIVVWlzlgGzNxcPGecgf2EkaAUWRdfjCU7O8NZ9xw7m3dy06KbqGqrIp6M8+CMB5lRPuP4giYT8NgcOLAeUHD+z2HiNZ0KobXm/F8vIZ7U5LisnDkin5tmDj++vPqB7jxu62HgCa31srQFTQMprIUQQgjR22itiQTjqYEopQjUh9j2TjVOrw2rzaC5NsQH79XgybajlKK1MUKgIXzYeB+eUe4rcJKV58TushKPJCgc6iO7yI3La8Ptt+H02D6aKi/EoSTb2mh7dxXN8+eTbGkmvHkLifp6AJTdjnPCBGyDBoJhknfDV7EWFmY448xqDDfytUVfY1PdJu6dfi/nDjr3+IM27IRHTgd3HlwzD/KGdTrE86srueWZtUwblscF44u58uTy48+rj+vOwvqbwGeAYuAZUkX2mrR1cIyksBZCCCFEX/dhIa6BeCRBY1UbO96vJSvfgdZQv7+NvRvq8eU7ScRSR5/FDrFOXBmpUXCb00IskqBkuB9/gQurw8A0DQoG+/BmO3C4rVKAC6D93tu5i8BL/yZeV094wwbCmzaldiU3TZzjxmEtLcXweMj/1jexZB3xpNw+KRANcMNrN7CpYRM/n/ZzXBYX00qnHV/Q5b+BV38AVz8DI2Z3unk0nuTMe95gSL6bJ75yxEOWRLtMrLEeSKrA/gzgJLXW+kmt9ba0d9YBUlgLIYQQQnxcPJqg8UAQ02oQCcap2d3C7vV1ZBe5iIUT1FYGaNjXhtVhIRqK/1d7ZSiUAbklHrw5DgxTgYLy0Tn48py4/Xa82Y6PdnAX/UuirY3WRYuIfLCD4MqVhNatS00ft1hwjh+Pme3HWlJC4W23oazWTKfbLQLRAF997atsrN8IGhZetpBSb+mxB4xH4ZHTQCdg0DQYeX7qTyc8tGg79722jTe+M53mcJwJZf5jz6cfyMga64M6nwj8GRintc7I4h4prIUQQgghjl08lqB6dwv7tzWRVeAkFIixb1sjB3Y0kzvAQ7AlSnNNiET8vxeDOzxWvDkOlAFoGDIxH0+2A5vDgi/Pgb/AJcV3P5BobaP1rTeJbNpE28p3CK9fD4Dh8eA+/XQMjwfPmWfim52GadI9WEu0ha+8+hW2NmzlwZkPcmbpmccXcNur8MSnwVsEU74K027pVPOq5hCn//x1Thuax9IP6lj0nekMzfccX059WCZGrC3A+aRGrM8GFpMasX4h7Z11gBTWQgghhBBdKxqO01wTxGIzaW2MsHt9HbV7AmQXu2ltjFCzu4VwMAaH+NXT6bNhmgqLzaR8TA7enNRIty/XSeFgH3aXBXWMxwqJnikRCNC6+E2C76yk9c23iNfUAOAYMwbP9DM/2gjNVt731v1+WFzvat7FHafewaicUce3W/jfL4eKt+Hm98GT3+nm1/7lHTbtb+H755/Ap8YVY7fIRoeH051rrGcBVwGfAt4BngJe0Fq3HbFhF5PCWgghhBAi85JJTTyaSBXe6+poqg7izXXQ2hBmz8YGIsEYKEU88vG131aHiWka2N0Wykfl4M11orXGX+SieEjWR0eRid5Ja01o3TpaFy0iuOo9QmvWQDKJcjrxnX8+3rPPxszy4Zw0CWX0jdkNdaE6rlpwFbWhWsbkjuEfc/5x7MFqt8Ejp8KEz8LUG8G0QW7HC/WX1ldx4z9W85drT2bGCQXHnkc/0J2F9evAE8BzWuvGtAU+TlJYCyGEEEL0DlprIm1xdqyppbUhjN1lIVAfZueaWuLRJMmk/q813xargWEq3H47JSOy8eU5QEPBQC8Fg3zYHHLOcm+SaGqi6YX5hFatom3FCpKtrQA4TzqJ3C9ei2vqVAyns9cX2VsatnDNv69hcNZgHj//cRwWx7EHe/l2ePu3YHOn1lnPfbTDTaPxJKf+7yJOGpTNjJEF5HrszBrdv3dyP5yMrrHuCaSwFkIIIYToOyLBGDvX1hFujWKYBoH6MNveOYAyFIl4kkjbxwtvp9dKMqHJKXZTekI2WflOEglNyXA/WflOGe3uwZLRKIHXX6fpH08Q2baNRHMzyuEApSj5+f/iPecclNl7py4v2ruIb73xLc4bdB4zy2Yye/BsDHUMXxiEmuChSeAphC8sAHdup5r/z4JNPLZ8N4NyXYwuyeLBqyZ2Pod+QAprKayFEEIIIfqNcGuU7atqiMeSJBNJmqqD7Hi/FsNURILxj63ztthNfDkOIuE4xUOzGDDcjzfXgctnJ3eAG8Ps3aOifYmOxWhbsYL6xx4j+M67EI9jKSrCPnIEzokTyb/hhkyneEweXf8ov179awDum37fsZ9z/e6jsPA7cM3zMOzsTjXdXh1g1v1v8a1zhvPNs4fLl02HIYW1FNZCCCGEEAJIxJI0HGhjx+oaFIpoJE59ZStVHzSDgmTi/343NkyFv9CFJ9tONJxgyIR8iodm4S904XD3jyOieqpkKETrG2/Q9K9/0fbWEgBcp5yC//K5OE88EdugQZlNsBO01ty+9HYW7lzIH2b9gaklx3imdDwCD05MjVo7s+HM22DgqR1ufulvlxEIx3nt22dKYX0YUlhLYS2EEEIIIY5CJzVtzRGqd7ew/d1q7C4LwZYYtXsDtDVFPnatUpBb6iG/zJva1dxiMHRCHtklHgxDipLuFK2qounpZ2hZsIBYZSUArilTKLn3HqyFvWOtcDAW5MoFVxKKh3j03EdxWV0UuI5hI7GVf4CXboOscph1F4y9rMNNn3pnL997fj3P3Xgakwdmd77vfkAKaymshRBCCCHEcYiG47Q2hGmuC1OxqZ69Gxtweq0014UJtUQ/us60Grh8NtCaE04tJr/ciy/PSXahC8Mi08q7kk4maV28mJr7HyD6wQdgGLhPPw1LfgGF/+82zKysTKd4RBvrNnLNv6/BZtoYmzeWP83+U+eDxMLw6/GQNxyuXdCppq2ROFN++h8uHFfCLy4f1/m++4EjFdayRaIQQgghhBBHYXNYyCnxkFPiYfC4vI991lwXYu+GekyrQWNVG3s3NtBYHeTdhbs/dl1emYfcEg9Wu4kry8bIU4rw5jpk2m2aKMPAO3Mm3pkziVZU0PjEkzQ++SQ6HCa6Zzf5N92Mc/IkDGvPnMY/Jm8MX5vwNR58/0GmFE05tiBWB5z+DXjldtizHJQBZaekplgchcduYc6JxSxYt587LhyN2y6lYmfIiLUQQgghhBBdIBqK01DVxgfv1VC9uwWr3aRhf9vHppXbXRbsLgsOr40Tpw8gr9SLv9CJxdp7d7ruSRKtbTQ89hcan36aRG0dht+PY/Royv/0aI/8QiORTHDdK9extXErz130HNn2bFxWV+eCRIPw63HgLYID6+Ga52DYOR1quraiide31HDdGYPJcvbMLyAySaaCS2EthBBCCCF6iKbaINU7m4lFktRVtrJjdQ2Rthgf/VquUgX3kAn55Jd5sdhNykbl4PHbM5p3b5aMRGh6/nlqf3U/yUAA19SpFNx6K6bfj610QKbT+5h9rfu4fP7l+B1+IvEI8y6eR5a9k9PYlz4A/7kTpt0G024BWyeLc3FIUlhLYS2EEEIIIXqwZCJJU02IuooAG97aR7g1RigQI9wW++gaf6GL/DIPSa0ZPC6PoZMKZGS7k3Q0SuPTz1D329+SaGwEoPAHt5Pzuc9lOLOPe3HHi9y+9HYm5k/kt+f8Fo/N07kAkQA8cCKUToHPPtM1SfZDUlhLYS2EEEIIIXoZrTWB+jBbVlQRbIkSbIlSvbuFYHNqszTDVOQO8BCPJRg2uZDhJxXgL3ChZFfyo0q0tlL7m9/Q+Pd/oAyDvK/diP/Kz2DJ9mc6NSD1v/31r13PxvqNvHjJi+Q6czsf5K174fX/gVl3g2mHqb3znO+eRAprKayFEEIIIUQfUbO3hfp9rTQdCFK5tZGa3YGPPrM5TQzDYPjJBQw/qZCCgT5Mq+xGfjix6mqq//fnBF5+GWW34542jbLfPJTptADY2byTuS/MZWb5TJI6yR2n3kG2oxPHYIWa4FejwFMEDi98ZTEYci8cDymspbAWQgghhBB9VCKRpGF/K7V7W9m1tpaKTQ0k4qnf8Q1TYVoMRpxSxOBxeRQO8uLw2DKccc/T8p//UPX920kGAviv+gyFt96K4XZnOi1+tepX/GXjX/DZfDww4wFOLjq5cwHmfwPWPQ3f3gzunK5Jsh+RwloKayGEEEII0Y+EAlGqdjSzdeUBKjY3EI8m0cn2YtuiGDNtAAPH5FI0xIfdJbs/AyTb2qh98EEa/vY4lvw83NOmUXzXXShL5o6daou1cdG8i8h15vLknCcxjU6uqa9aB7+fBrN/BqfcACgZtT4OvaawVko5gLcAO6kztp/VWt95mGvnAs8CJ2utj1g1S2EthBBCCCH6s1gkQfWuZjYu3c/+bU2EgzGScQ0KrHaT8TPLKBuVTf5AH1Zb/94Qre3tt6m48WvocJiiO+/Af+WVGT2a6987/813l3yXO6bewUDfQCYXTu5cgf2nc6Flf+rnOffBiNldk2g/0JsKawW4tdatSikrsBT4ptb67U9c5wUWAjbgJimshRBCCCGE6LhYNMGBD5pZs2gvdZWthFqiaA1KgdNnY9K5Aykfk0NWgROjH45wxuvq2HfrbQTffhvv7Nn4L5+LZ9q0jOSitea6V65jc8Nm2mJt3HvmvZw3+LyOB1j3T3j+y1A2Fc65Ewae1nXJ9nG9prA+mFLKRaqwvlFrvfITnz0AvAbcBtwqhbUQQgghhBDHLhKMsW9bE++/uoeWujDBlv/bebxwkI9J5w1kwMjsfjWarZNJ6h/9E7X33w9aM+jZf+IcOzYjuWxv3M6nX/w0U4un8tDMh7CanZi+H4/Ar0ZD2RS46smuS7IfOFJhnbkFA4ehlDKB94BhwMOHKKonAWVa64VKqdsykaMQQgghhBB9id1lZciEfIZMyAegpS7EzjW1rF1UQc2eFhY+vA7TojAsBiOnFDFhVhlZ+a4MZ921lGGQd/1XsA0ezP7vfIfKb3yD8j/+EfvQod2ey/Ds4Vw49EJe2vUSTZEm8l35HW9sscPkL8DS+6Fmc+qM67IpXZdsP9WTR6z9wDzgZq31hvb3DOB14Fqt9W6l1GIOM2KtlLoeuB6gvLx88p49e7otdyGEEEIIIfqKeCzB/u1NbHunmg/eqyERSwKQVeDEajeZeslQykfnZHQdclcLbdxIxVdvQIdC2IYPo/x3v8P0d++Z1xWBCi6adxHTy6aTSCa4f8b9WIwOjpM2VcCvx0HeSAhUwa3bUgW36JReORUcQCl1BxDUWv+y/XUWsANobb+kCGgALjrSdHCZCi6EEEIIIUR6NNcG2bW2jk1L99N4IAiAL89BwUAf/gInk88fhKUPThmPVlay5+rPEq+tpfhnP8V/6aXdnsOdy+9k/o75FLuL+f2s31PmLet44yevhj3L4DNPpNZZ9+EvQrpKr5kKrpTKB2Ja6yallBOYBfziw8+11s1A3kHXL6YDa6yFEEIIIYQQ6ZGV72LCOeVMOKec1sYwezbUs3NNHTtW16A1bFxWxeDxeRQM9DFkfB5Ob984N9tWWsrgF/5FxVdvoOqOOzFzc3GMGIG1qKjbcrh+3PXM/2A+p5Wc1rmiGmDKl2HrQmiulKK6C/SoEWul1Djgr4AJGMAzWuu7lVJ3A6u01vM/cf1iZPMyIYQQQgghMi7SFmPLOwc48EEzuzfUE48kMEzFuBmljJhSRM4AN6bZ+3cYTwQC7PnCF4hs245htzPkxflYS0q6rf8fL/8x83fM54VLXiCejDM4a3DHGiaT8NBE8JXAwNNh8hcha0DXJtvH9Nqp4OkihbUQQgghhBDdJxZNsO71Cnavq6dmdwvJpMYwFGVjcph2xQiy8p2ZTvG4xOvr2f2ZzxCvrmHgk0/gHDOm2/re37qfOfPmUORKjZQvuHRBx8+1fv1/YMl9oIG5f4QTL++6RPsgKaylsBZCCCGEECIjwq0xtqyo4v3X9n50jFd+uRerw2TalSPIG+DJcIbHJlZVxe7PfhYdjlD624cx3W7sw4d3S993r7ib57c/z52n3snFwy7GUB2cCVC7FR6eAjN+CNPlgKXOksJaCmshhBBCCCEyLtAQZvu71Wx4ax+B+jCmRTF0cgFDJ+YzYGQ2dmcnzmfuASK7drHnms+RDASwFBYy9OWXUGbXb9xW1VrFp+Z9isuGXcaPTv1R5xr/bhoYJly/uCtS69N6zeZlQgghhBBCiL7Lm+Ng0uyBTJo9kP3bGtn+Xg3b3qlm28pqlIKplwxl9BklONy9o8C2Dx5M2e9/z+6rrurW47eKPcVcPPRiXtjxAvmufGaUzWBkzsiONR53Bbz6Q3j2OnDmwJxfdm2y/UTv3z1ACCGEEEII0euUjMhm+lUjufYXp3PyBYPx5jlZMW8Hf/3eMp68eyXvLtiV6RQ7xDl2DMU/vpPw+vXUPvgQ0b17u6Xfq0ddTSQR4Q/r/sAbFW90vOHYuYCCpr1g7d1r3XsSmQouhBBCCCGE6BFqKwKsX1zJ5uVVoGHACD8TZpWTX+bF7bdnOr0jqvrRj2j657NgGJT97hE8Z57Z5X1+6ZUvsbtlN6/MfQWL0YnJyI9dAC374ObVcvRWJxxpKriMWAshhBBCCCF6hPwyLzM/N4ov/XIap146hObaEAsfXsdj31vG0me3k4glM53iYRX+8IfYR49GWSxYCgq6pc+rT7iammANb1a8SVJ34u9m3BXQsBP2r4aWqq5LsB+REWshhBBCCCFEj5RIJNmweB+rXtpNuDWGJ9vOiFOKGHlKITnFPW838WjlPnbPnYulsJCBTz6B4XSijK4by4wn48x5fg4Oi4NoIspzFz2Hy+o6esNQE/xyOJSdAnuWwS2bwVvUZXn2FTJiLYQQQgghhOh1TNNg/NllXHfvGVx483g82XZWv7yHp37yLhve2kci3rNGsG2lAyj55b1Etm1j56fm0PjUU13an8WwcOUJV7KzeSflvnJaY60da+j0w/BzoWYTzLwDTFuX5tkfSGEthBBCCCGE6NGUUpSPyeWy2yYz60ujyS508eYTW3nizrf5z2ObCLdFM53iRzzTppH16U8Tr64m0dTU5f3NHT4Xh+mg2F1MgasTU9DHXQHBeigZD66crkuwn5DCWgghhBBCCNErKKUYcXIRn7ljChfcPB4Mxda3D/DcPe9Rvbsl0+l9pPC2W7EUFBB4+RV0tGuL/ix7FnOGzGHhzoXsaNpBRaCiYw2Hzwa7D9Y+DR8sgra6Ls2zr5PCWgghhBBCCNGrKKUYOCaXz941lZMvGEQklODZn6/iX79azdaVBzKdHqbPR9GP7ySybRv7vvd9ml98sUv7u+qEqwgnwly18CoeWv1QxxpZHXDCHNj6b/j7ZbBxXpfm2NdJYS2EEEIIIYTolQxDMeWCIVxz91QmnTeQfdubWPTXzWxZUUWmN2n2zpyJ97zzCLz0Eg1/e7xL8xmZM5KTCk/CaXFyw4QbOtHwfIi0wKyfwMTPdVl+/YEU1kIIIYQQQohezeawcOolQ7nyByeTV+ph0V838+KDa1nxrw8yekRX0Q9/gOH1pnYGT3ZtHleOvJKGcAO1wdqONxo6M7VxWWt1agRbHDMprIUQQgghhBB9Ql6pl8u/dxLTrhzO/u2NrH55L+8s3JWxfCx5eRT94HZCa9fS8MQTRPfu7bK+zio7C4/Vwz82/4PfvP+bjo2Q270waBpsfQne+SNsWdhl+fV1UlgLIYQQQggh+gzDUIybUcbVP55KwUAvq1/ewxt/30JLfTgj+fguugjXSSdR84t7qLjxRnQi0SX9OCwOZg2cxbJ9y3hsw2NUBio71nDk+dCwA1Y8DJsXdElu/YEU1kIIIYQQQog+x5fnZO7/m8yk8wayael+Hv/hct5/retGjA9HKUXBbbdCPI5j7FiUaXZZXxcOvZBoMsr3T/k+Zb6yjjUaMTv1z/FXwaWPdFlufZ0U1kIIIYQQQog+yTANTr1kKLOvH4tpGqxauIvd67r/WCnn+PGpjcxe+w/x2k6sge6kyYWTKXYX89re1zreyF8OhWNh15tdlld/IIW1EEIIIYQQok8bNqmAq398ClkFLv79yDpefXQDsWjXTMk+nIJvfwsdjVL5jW9Sfe+9XdKHoQzmDJnDiv0ruO7l6/jntn92rOHI82HvClj8C3juy12SW18nhbUQQgghhBCiz/PlObnklonkD/SyfVUNix7b1K392wYOJPuKKwitWUN40+YuW2t94ZALSeok9eF6TNXBaecjzgedhJZ9MOAkyPBRZb2RFNZCCCGEEEKIfsHmsHDZdyZTOiqbHatrWTHvg2497zrv61/DcDoxvd4uW2s9xD+E0bmjsZt2Lht+WccalUwET2HqTOupN4BSXZJbXyaFtRBCCCGEEKLfMK0GF948gTFnDmD1K3v52w9WEGqNdkvfltxccr50HYFXXyXw5ptEdu7skn4uHHIhmxs2s71xe8fOtTYMGH4ufLAI4t3zd9HXSGEthBBCCCGE6FcMQzH9qhGMOLmQ1oYwy5/f0W195157LWZeHvu+9W2qfvijhwiBlgAAIABJREFULunj/MHnYyqT7771Xa759zUdG5Uf+anUiPWeZV2SU1/XowprpZRDKfWOUmqtUmqjUuquQ1xzg1JqvVJqjVJqqVJqdCZyFUIIIYQQQvReSinOuW40o04vZsvyKtYvruyWaeGG203uF7+IDoXIufbaLukj15nLaSWnUReq4/px15PQHVjPPeQssDhg28tdklNf16MKayACzNRajwcmAOcppaZ+4pontNYnaq0nAPcAv+ruJIUQQgghhBC9n1KKs64eyaBxebz11Dbm3beaZLLri2v/lVdgeDwEXu66IvbCoRfSGGmk3FeOxbAcvYHNBYOnw9aXZPOyY9CjCmud0tr+0tr+R3/impaDXro/+bkQQgghhBBCdJRhGpz75TF4cuxU7Whm39bGLu/T9HjwX3kFLa+8QuV3bqXl5VfS3sf00unYDBuv7H6FV3a/QlInj95o5HkQC0JrTdrz6et6VGENoJQylVJrgBrgNa31ykNc83Wl1A5SI9bfOEyc65VSq5RSq2q78BB2IYQQQgghRO9mtZlccfvJZOU7eeWPG2iqCXZ5nzmf/zwoRXDFCmKVFWmP77K6OLXkVF7d/Sq3vnkra2vXHr3RhM/Cd7aBtzDt+fR1Pa6w1lon2qd5lwJTlFJjD3HNw1rrocB3gR8eJs4ftNYnaa1Pys/P79qkhRBCCCGEEL2a02PjwpsnoJOaf/58FTtWd+2orbWwkKwLLiAZCpE1d26X9DGjbAaNkUbuPu1uxuePP3oDiz21Q7jotB77t6a1bgLeAM47wmVPAZd0T0ZCCCGEEEKIviwr38n0q0YSDcbZtGx/l/eXc11qE7Omp54iWlGBjsfTGn962XQUigPBAxiqx5Z+fUKP+ttVSuUrpfztPzuBWcCWT1wz/KCXc4Dt3ZehEEIIIYQQoi8bcUoRo88oYe/GBio2NXRpX44RI3CfOY36vzzGjlnn0rp0aVrj5znzGJ8/nkV7FvG7tb9jfe36tMYX/6dHFdZAMfCGUmod8C6pNdYLlFJ3K6Uuar/mpvajuNYAtwBfyFSyQgghhBBCiL7njCuGk13s5pU/bWDBb9aSiHdg469jlHvdl0i2tOCdNQvH6PSfJDyjfAZbG7fyp/V/YlX1qrTHFyk9qrDWWq/TWk/UWo/TWo/VWt/d/v4dWuv57T9/U2s9Rms9QWs9Q2u9MbNZCyGEEEIIIfoSq81k9pfHEAsn2Le9iZa6UJf15TplCo4xY4hs344lLy/t8WeUzQDgaxO+xhfHfjHt8UVKjyqshRBCCCGEEKInyB3gYdoVw4lHElRu6bojuJRS5Hzh80R376bhb48TeP31tMYfnDWYwVmDWb5/eVrjio+TwloIIYQQQgghDmHMmQMoG5XN2y/sYPUre0gmumZKuPfcczG8Xur/+EfqfvNw2uPPKJvBqgOruGPZHTzw3gNpjy+ksBZCCCGEEEKIQ1JKMe3KEcQiSVbM28GeDfVd0o/hcOC7YA7JQIDS3z2S9vgzymYQ13EqAhVodNrjCymshRBCCCGEEOKwsovcTJhVBoDDY+uyfvxzL0dHowT+85+0xx6XP45cRy65zly+PfnbaY8vpLAWQgghhBBCiCM6+VOD8WTbeeuprbQ1RdA6/aO+jjGjsZ9wAo2P/509n/8C8cb0res2lMFZZWexpHIJ0USURDKRttgiRQprIYQQQgghhDgCq93k9MuHU1fRyuM/XM72d6vT3odSCv/cuUR37SJaUUGscl9a488sn0kwHuTal6/ltrduS2tsIYW1EEIIIYQQQhzV0En5lJ6QDYDb7+iSPrIuvABls+GZOQPniWPTGvuU4lNwWpwYymBiwcS0xhZSWAshhBBCCCHEUSmlOPMzI9Aatq6s6pI+TL8f7znn0LJgIYlQiGRbW9pi2007kwsn0xJt4XOjP5e2uCJFCmshhBBCCCGE6IDsIjdjpw9gy4oqFv9jM/Fo+tcq+y+fS7K5mR2zZlHzwK/TGntq8VR2Ne9iX2AfNcGatMbu76SwFkIIIYQQQogOmjR7IMpQbFxSxf4PmtIe3zV1KtYBAzBcbtynTk1r7KnFqXg3/OcGbntT1lmnkxTWQgghhBBCCNFB7iw7Y6cNQBmQle9Ke3xlGGRddimxvXuxjxiZ1tjDs4eT48ghz5kn08HTTAprIYQQQgghhOiESbMHYhgG7728m2g4nvb4WRdfAkDzC/8i+P77aYtrKINTik5hT8sezi4/O21xhRTWQgghhBBCCNEpbr+d0dNK2LK8ir/9YDnRUHqLa1vpABxjx9Lw+N+p/PpN6Hj64k8tmUptqJZ3D7zL2tq1aYvb30lhLYQQQgghhBCdNOnc1Fprd5adZFKnPb539rkkm5oo/sndYJppi/vhOuufrvwpP1j6g7TF7e+ksBZCCCGEEEKITvJk2xkzbQBNB4JpH7EG8J17LgDRigqUUmmLW+IpocxbRrYjm/um35e2uP2dFNZCCCGEEEIIcQwmzR4IBix79gP2bqxPa2zbwIHYR42ief6L1D74EDoaTVvsqcVT2dKwhaH+oWmL2d9JYS2EEEIIIYQQx8CTbWf06SXsXFPL0n9uR+v0Tgn3zT6XyKZN1D3yCOFNm9IWd2rxVNpibczbPo8FOxekLW5/JoW1EEIIIYQQQhyj8TPLABgyqSCtU7YBvOfOBiD/m9/AOWFC2uJOKZqCQvH01qe5b9V9af9CoD+SwloIIYQQQgghjpG/0EXZqGy2rqgimUimNbZ9yGDsw4fTunRpWuP6HX5OyDkBu2lnwaUL0v6FQH8khbUQQgghhBBCHIex00tpbYzwzM/e5cDO5rTG9s6eTei91ey98UYCixenLe7UkqlsatiEQorqdJDCWgghhBBCCCGOw6ATc3H77TTXhgi2pG+TMUits0ZrIhs2kqhP3wZpU4unEk/G+e3a3/LE5ifSFre/6lGFtVLKoZR6Rym1Vim1USl11yGuuUUptUkptU4ptUgpNTATuQohhBBCCCEEgGEajJ0+gHg0SXaRK62xbcOGYRsyBNuQIfjnzk1b3IkFE7EaVhZXLOalXS+lLW5/1aMKayACzNRajwcmAOcppaZ+4pr3gZO01uOAZ4F7ujlHIYQQQgghhPiY0aeXYFgU6xdX0lQdTFtcpRTe2ecSfPdd4vX16EQiLXGdFicTCibgMB08/qnH0xKzP+tRhbVOaW1/aW3/oz9xzRta6w/v1LeB0m5MUQghhBBCCCH+i8tnY9ikAjYu3c/TP32HSCietti+2bMhmWTXFVdS+8ADaYs7qWAS25u2E4yl74uA/qpHFdYASilTKbUGqAFe01qvPMLlXwJk3oIQQgghhBAi4048q5RkXDN0UgGmmb5NwewjR2IdMABlGNiGDE1b3AkFE0jqJHetuIs/rvtj2uL2R6qnnlmmlPID84CbtdYbDvH5NcBNwHStdeQQn18PXN/+cizwXzGE6CXygLpMJyHEcZB7WPR2cg+L3kzuX9Hb9aR7eKDWOv9QH/TYwhpAKXUHENRa//IT758DPESqqK7pQJxVWuuTuihNIbqU3L+it5N7WPR2cg+L3kzuX9Hb9ZZ7uEdNBVdK5bePVKOUcgKzgC2fuGYi8Hvgoo4U1UIIIYQQQgghRFeyZDqBTygG/qqUMkkV/c9orRcope4GVmmt5wP3Ah7gn0opgL1a64sylrEQQgghhBBCiH6tRxXWWut1wMRDvH/HQT+fcwyh/3A8eQmRYXL/it5O7mHR28k9LHozuX9Fb9cr7uEevcZaCCGEEEIIIYTo6XrUGmshhBBCCCGEEKK36dOFtVLqPKXUVqXUB0qp72U6HyE6Sym1Wym1Xim1Rim1KtP5CHE0Sqk/K6VqlFIbDnovRyn1mlJqe/s/szOZoxCHc5j798dKqX3tz+E1SqlPZTJHIY5EKVWmlHpDKbVJKbVRKfXN9vflOSx6vCPcv73iOdxnp4K3b4C2jdTO4pXAu8BVWutNGU1MiE5QSu0GTtJa95Sz+4Q4IqXUmUAr8Det9dj29+4BGrTWP2//kjNba/3dTOYpxKEc5v79MdD6yaM/heiJlFLFQLHWerVSygu8B1wCXIs8h0UPd4T79wp6wXO4L49YTwE+0Frv1FpHgaeAizOckxBC9Gla67eAhk+8fTHw1/af/0rqP5JC9DiHuX+F6DW01lVa69XtPweAzcAA5DkseoEj3L+9Ql8urAcAFQe9rqQX/Q8jRDsNvKqUek8pdX2mkxHiGBVqravafz4AFGYyGSGOwU1KqXXtU8VlCq3oFZRSg0idtrMSeQ6LXuYT9y/0gudwXy6shegLztBaTwLOB77ePk1RiF5Lp9Yf9c01SKKvegQYCkwAqoD7MpuOEEenlPIAzwHf0lq3HPyZPIdFT3eI+7dXPIf7cmG9Dyg76HVp+3tC9Bpa633t/6wB5pFa4iBEb1Pdvm7qw/VTNRnOR4gO01pXa60TWusk8EfkOSx6OKWUlVRR8g+t9fPtb8tzWPQKh7p/e8tzuC8X1u8Cw5VSg5VSNuAzwPwM5yREhyml3O0bN6CUcgPnAhuO3EqIHmk+8IX2n78AvJDBXITolA+LkXaXIs9h0YMppRTwJ2Cz1vpXB30kz2HR4x3u/u0tz+E+uys4QPtW7A8AJvBnrfVPM5ySEB2mlBpCapQawAI8Ifew6OmUUk8CZwF5QDVwJ/Av4BmgHNgDXKG1lg2iRI9zmPv3LFLTDzWwG/jqQWtVhehRlFJnAEuA9UCy/e3bSa1Tleew6NGOcP9eRS94DvfpwloIIYQQQgghhOhqfXkquBBCCCGEEEII0eWksBZCCCGEEEIIIY6DFNZCCCGEEEIIIcRxkMJaCCGEEEIIIYQ4DlJYCyGEEEIIIYQQx0EKayGEEOIQlFIJpdQapdRGpdRapdR3lFJG+2cnKaUePIaYi5VSJ6U/207lcL5SapVSapNS6n2l1H3d1O8NSqnPt/98rVKq5BhiPNt+FOGHrycopbRS6ryD3huklDrkGadKqV8qpWYeS/5CCCHEkVgynYAQQgjRQ4W01hMAlFIFwBOAD7hTa70KWNWdySilLFrr+HHGGAv8Bpijtd6ilDKB69OS4FForX930MtrgQ3A/o62V0qNAf4/e3ceX0dV/3/8dWbufm/2vWvapk330pYCBQplU7ACBeEniiLiFxREQb8oKPoVVMQdF1AQUQQFRZBNAYHaFoHSDUr3Jd3TNs2+3Ju7zpzfH3OT3LRJW7on/Twfj/uYuTPnzpJO0vues4yptd6UsfgTwJvp6SsHsJlfAw8D/znQ/QohhBAHQmqshRBCiP3QWtfiBNCblWOmUuqfAEqps9M128vSNcBZ6eW3K6VWpGu7f5ixuSuVUouUUuuVUjPSZcuVUv9VSr2bfp2eXj4zvfwFYHV62beVUuuUUm8qpZ5USt2WXj5CKfWKUmpp+jOjeziVrwP3aK3Xps/L0lr/Nv35i5VSC9Pn8LpSqiS9/C6l1ONKqQVKqQ1KqevTy0NKqTnp412hlLq0YydKqWuUUsvT5/54xnZuU0pdAZwM/CX9M5ullHou47MXKKWe7eHYrwaezyingCtxQvoFSilfRllTKfVwurXBq0opf/p8twIFSqnS3v6thRBCiIMhwVoIIYQ4AOmaUhMo3mPVbcAX07XbM4CoUuoi4FLgVK31JODHGeVdWutTgFuB76SX1QIXaK2nAB8HMpuZTwFu0VqPUkpNAz4GTAIuwgmoHX4HfElrPTV9TL/p4TTGA0t7OcU3gdO01pOBv+KE8A4TgXOB6cD/pZtxx4DL0sd8DvCz9E2HccC3gHPT535L5k601k/j1PZfnf6ZvQSMVkoVpYt8FvhDD8d3xh7HfjqwWWu9EZgHzMpYNxJ4QGs9DmjG+Zl1eDe9LSGEEOKwkabgQgghxKF5C/i5UuovwD+01tVKqfOBP2qt2wG01o0Z5f+Rni4FytPzbuB+pdRJgAWMyii/SGu9OT1/BvC81joGxJRSL4JTe4wTNP/uVOQC4P2A5zEI+JtSqgzwAJsz1j2vtY7i3DSYC5wC/Av4gVLqLMAGBgIlOAH871rr+h7OfS9aa52u1f6UUuqPOOH9mh6KlgF1Ge8/gXMDgPT0GuCZ9PvNWutl6fnMnzM4NzE+cP9uIYQQYl8kWAshhBAHID1oloUTzMZ0LNda/1Ap9S/gI8BbSqkP72dT8fTUouv/4a8Au3Fqog2c2uAOkQM4PANo7ugTvg+rgKnA+z2s+zXwc631C0qpmcBdGev0HmU1TtPsImCq1jqplNoC+Dg4fwRexDnvv/fSlzzasf103/CPAZcqpe4EFE4T76x02XjG5yzAn/Hel96WEEIIcdhIU3AhhBBiP9LNlB8E7tda6z3WjdBar9Ba/whYDIwGXgM+q5QKpMvk72cXOcAurbUNfBqnyXlP3gIuVkr50rXUHwXQWrcCm5VSV6b3p5RSk3r4/E+AbyqlRqXLGUqpL2Qcw470/Gf2+Nyl6X0WADPT55kD1KZD9TnA0HTZ/+D0Iy/Yx7m3AR0hGK31TpyBzL6FE7J7sgaoSM+fByzXWg/WWpdrrYfi1FZf1stnM43CGThNCCGEOGwkWAshhBA986cH11oFvA68CtzdQ7lblVIrlVLLgSTwstb6FeAFYIlSahlOn+d9+Q3wGaXU+zjBvMdaaq314vR2lwMvAyuAlvTqq4HPpbexCqeP956fX47Tt/tJpdQanIDZ8fiqu3Caki8F6vf46HJgLvAO8L10EP4LcLJSagVOM+yOAdFWAfcA89PH8vMeTuVR4MH0z7ejNvkvwHat9Zqezh2n6fnM9PwngD0HOHsmvbxXSik3Tjg/qiO6CyGE6P/UHjfehRBCCHEcU0qFtNbhdG34G8ANWut3j+D+7gLCWuufHql9pPdzP/Ce1vqRXtb7ccL9GVpr6yD3cRkwRWv97YM/UiGEEGJv0sdaCCGE6Ft+p5Qai9NX+E9HMlQfLela8gjwv72V0VpHlVLfwRkkbdtB7soF/OwgPyuEEEL0SmqshRBCCCGEEEKIQyB9rIUQQgghhBBCiEMgwVoIIYQQQgghhDgEEqyFEEIIIYQQQohDIMFaCCGEEEIIIYQ4BBKshRBCCCGEEEKIQyDBWgghhBBCCCGEOAQSrIUQQgghhBBCiEMgwVoIIYQQQgghhDgEEqyFEEIIIYQQQohDIMFaCCGEEEIIIYQ4BBKshRBCCCGEEEKIQyDBWgghhBBCCCGEOAQSrIUQQgghhBBCiEMgwVoIIYQQQgghhDgEEqyFEEIIIYQQQohDIMFaCCGEEEIIIYQ4BBKshRBCCCGEEEKIQyDBWgghhBBCCCGEOAQSrIUQQgghhBBCiEMgwVoIIYQQQgghhDgEEqyFEEIIIYQQQohDIMFaCCGEEEIIIYQ4BK5jfQBHQ25urq6oqDjWhyHEQYlEIgSDwWN9GEIcNLmGRV8n17Doy+T6FX3d8XQNL126tF5rXdTTun4drJVSFwMXDxgwgCVLlhzrwxHioMybN4+ZM2ce68MQ4qDJNSz6OrmGRV8m16/o646na1gptbW3df26KbjW+kWt9Q2hUOhYH4oQQgghhBBCiH6qXwdrpdTFSqnfhcPhY30oQgghhBBCCCH6qX4drKXGWgghhBBCCCHEkdavg7XUWAshhBBCCCGEONL6dbCWGmshhBBCCCGEEEdavw7WUmMthBBCCCGEEOJI69fBWmqshRBCCCGEEOLApJIW1euajvVh9En9+jnWQgghhBBCCCH2rbU+yqr/7mD1W7uIt6e45p7TCeV5j/Vh9Sn9OlgrpS4GLh4wYMCxPhQhhBBCCCGEOG5oW7N9bSMr5u1g64p6AIZNKmL8zIEEcz3H+Oj6nn4drLXWLwIvVlZWXn+sj0UIIYQQQgghjrV4e5K1C2pYMb+altoo/iw3Uz48lHFnDSQr33esD6/P6tfBWgghhBBCCCEEtDXGePeVrax9ZxephE3p8GymzRpGxZRiTHe/HnrrqOjXwVqaggshhBBCCCFOZNG2BEtf2crK+TvQaCpPKWXCzEEUDcnqsbzWGqXUUT7Kvq9fB2tpCi6EEEIIIYQ4EcXbkyx7fTvvz9lOKmExenoZJ88qJ7vA32N5Kxyh6cknaHv1Ncr/8meUR/pZfxD9OlgLIYQQQgghxIkkmbBYMbead/+9lXh7ioqpxZxy8TDySoM9lrfCYZr+/Bca//hHrJYWgjNmYLW04CoqOspH3rdJsBZCCCGEEEKIPs5K2ax+cydLXtpCe2uCoRMKOPXi4b02+bZjMRr/9BgNf/gDdksLobPPpvCLN+GfOPEoH3n/0K+DtfSxFkIIIYQQQvRntmWzbuFuFv9rM20NMQaMzOXCG8ZTVpHbY3mtNa0vvUTdz35OcudOQuecQ+EXv4h//LijfOT9S78O1tLHWgghhBBCCNEfaVuz8b06Fr24iaaadoqGZDHz6koGj8nvdfCx6IoV7P7BvUTfew/vmDEMufdegqeecpSPvH/q18FaCCGEEEIIIfqblrp25jy6hl0bW8grC3Lh58cz/KSiXgO1tizqH3qI+vsfwCzIp+ye75MzezbKNI/ykfdfEqyFEEIIIYQQog/QWrPm7V28+dQGlKE495rRVJ5WhmH0/nisZG0tO79+O+3vvEP2xRdT+p3/wwyFjuJRnxgkWAshhBBCCCHEcS7almDun9ey+f16Blbmct5nxpKV79vnZ8JvvsXOr38du72dsnvuIefyy/b5jGqtNTvCOxiUNehwH36/J8FaCCGEEEIIIY5TkZY4K+fvYMX8alJxmzOuqGDSuYNRvdRSa61pX7CAhkcfJfLGf/GOHMnAx/6Et6Jin/vZGd7JDxb+gMU1i3lh9guUBEuOxOn0WxKshRBCCCGEEOI407AjzLI521m/qAbb0gybWMiplwynYGDPzbh1IkHLv16i8dFHia9bh1lYSNEtXyb/2msx/P5e95O0kzy++nEefP9BAL5YeTUF/oIjck79Wb8O1vK4LSGEEEIIIURfYlk2C5/fxHuvbsPlNhh7xgAmnTuY3JJAr5+JLFpEzd3fJbFxI96RIym75x6yPzoLw+vt9TOxVIwFOxfwq/d+RVVzFecMOodvxAzKXv8ZjJgNeUOPxOn1W/06WMvjtoQQQgghhBB9Rbgpxqu/X8WujS2MnTGA6ZeOwBdy91o+1dhI7Y9/Qstzz+EeMIBBD9xP6Nxze+1H3RBtYH71fOZun8s7O98hZsUoDZbyy7N/zrnLnoVlf4FTb4ScwUfqFPutfh2shRBCCCGEEKIv2La6gdf+sJpU0uaCz41l1LTSfZZvefGf1Hz/+9iRCAXXX0/hTTfus8n3kpol3Pyfm4kkI5QFy5hdMZuZg2cyrXAinuduhDUvwsxvwNm3wz4GOBM9k2AthBBCCCGEEMeIbWsW/3MzS17eQn5ZkAtvGE9eabDX8lprGh76HXW/+AX+yZMp++7deEeO3Oc+3trxFrfOvZUBoQH8cMYPGZ0/2qnVTkTgr1fDprnw4XuZm3cFTzy+lN9ePQWXaRzuU+3XJFgLIYQQQgghxDEQaYnz2h9WsWNdM6NPL+Osq0bh9pi9lteWxe57fkDTE0+QffHFDLjn+yiPZ5/7mLNtDl+b/zVG5I7goQseIt+X76xo3AR/vxZqVtB+0a/49taTeOb5xVSWZFEXjlOW03vtt9ibBGshhBBCCCGEOMqq1zXx6iOrSEZTnHvNGMacXrbP8nY8zs6vfZ22V18l/7rrKL7tf1HGvmuV/7XpX9z55p2MKxzHb8//LdmebGfFqufghS+BUrx/5m+4YU4R9eEdfOncCm4+twKvq/dwL3rWJ4O1Umo2MAvIBh7RWr96jA9JCCGEEEIIIfarpS7KyvnVvD9nO7klAS695aReH6EFTtPv6NKl1P70Z0SXLaP49tsp+Oy1+93P0+uf5rsLvsvJpSfz63N/TdAdhGQMXr0TFv+ecNFJ/MD/NZ54TTG61MPvr5nGhEE5h/FMTyxHPVgrpf4AfBSo1VqPz1h+IfBLwAR+r7X+YW/b0Fo/BzynlMoDfgpIsBZCCCGEEEIcl1JJi83L6ln15k52rGtCKag8rZQZHx+Fx9dzJNO2TXjuXBoe/j3RZcsw8/IY8LOfkjNr1n739/jqx/nx4h8zY+AMfj7z5/jaG2HxH9FL/4RqWM+z/sv5+vbZ+H1ubj1/GDfNrMDjkj7Vh+JY1Fg/CtwPPNaxQCllAg8AFwDVwGKl1As4IfvePT5/nda6Nj3/rfTnhBBCCCGEEOK401QT4fn73iPSkiC70Meplwxn9PQyQnl7P2M6uWsX0WXLiC5bRviN/5LYvBn3wIGUfPtb5F5++T5H/QandvvhFQ/z6/d+zQWDz+VH2ZNx//kK2PImoFlrjOQnidvYHJrB/11azsemDiLg6ZONmI87R/2nqLV+QylVvsfiU4AqrfUmAKXUX4FLtdb34tRud6OcB7P9EHhZa/3ukT1iIYQQQgghhPjg2hpjvPDLZdi25uIvT2Lw6HyUsfejrNpef52a732f1O7dACivF//EiRTedBPZF12Icu0/tmmt+eW7v+SRlY9wcf5Evrv8P7iaH4X8EaypvIlbV42gJVDO9z41nvNGF2P0cBzi4Cmt9dHfqROs/9nRFFwpdQVwodb6f9LvPw2cqrW+uZfPfxn4DLAYWKa1frCHMjcANwAUFRVNfeqpp47AmQhx5IXDYUKh3vvdCHG8k2tY9HVyDYu+TK7fYycV12yeo0lFofxchT+v5yCr2toovOturNxcomeeSXL4MFKDBoF5YAOIWdpiRXQF81rnsTG+kdlRg7trttAeHMb6YdfwYO1YXt1mUZlncNNJPnK8fStQH0/X8DnnnLNUa31yT+v6ZL2/1vpXwK/2U+Z3wO8AKisr9cyZM4/CkQlx+M2bNw+5fkVfJtew6OvkGhZ9mVw6e4hHAAAgAElEQVS/x0YiluL5+97Dao9wyZcnMXBUXq9ld95+By2JBBUPPYi3oqLXcra2iaaixFIxYlaMWCrGG9Vv8OTaJ9kV2cVAM8A36hv5hMpFzX6Q2gGz+NGzq1i4rZHPnlHONz8yBncffDZ1X7mGj5dgvQMYnPF+UHrZIVFKXQxcPGDAgEPdlBBCCCGEEELsl5W0efnBFdRtD3PR58fvM1RH3llIy/PPU/CFz+8zVNe213LNy9ewI7x3RJpWOo3bs8Yzc8EjmFM+Q80Zd/PL+dU89dSbeF0G9318EpdNHnRYzk307ngJ1ouBkUqpYTiB+irgk8f2kIQQQgghhBDiwGlbM+dPq6le28S514xh2KSiXsvaiQQ1d92Fe8gQCr/whV7LWbbF7W/cTmOskVum3ELQHcRn+vC5fFTkVjByyyJ4/iYSo2fzY9fnefS+d7C15tOnDeXmcysoDO09SJo4/I7F47aeBGYChUqpauA7WutHlFI3A//GGQn8D1rrVYe6L631i8CLlZWV1x/qtoQQQgghhBBiX95+diMbltQy/bIRjDm9bJ9lG373MIktWxj8+99j+Hy9lnto+UMs2b2Ee868h0tGXNJ95dqX4IUvUV9yJpdUXcWuyBZmnzSQr14wisH5gcNxSuIAHYtRwT/Ry/KXgJcO576kKbgQQgghhBDiaHh/znaWvbaNCWcPZPKHhuyzbHzTZhoeeojsWbMInXlGr+UW7lrIg+8/yCUjLtk7VG+aj/77tWzxjmLW1usYUhrkwWsnMnFQ7uE4HfEB9b3e6x+A1vpFrfUNx8sockIIIYQQQoj+p2ppLW8+vYHhJxVx5sdH4TwduGd2LMaub34T5fNRcsftvZZriDZwx3/voDynnDtPvbNrRbQJ/c//RT92KZusQj7e9lVu+tBEXvzSmRKqj6HjpY+1EEIIIYQQQvQptq2pWrqb//xpLaXDcrjgurH7fD60TqXYcdttRN9/n4H33YerqOc+2La2+eab36Qt0caD5z9IwB0ArWH537BeuRMVbeRPqQ8xt+x6nrhyOhXFUpF4rPXrYC1NwYUQQgghhBCHm5W0Wbewhndf3UpLbZSCQSFm3TQRl6f3Z09rran57vcIvz6HkjvvJPvCD/da9rfv/5a3d77Nt0ddTeXGN+Gd36O3L0Ttep+VuoLv6tu4dNZFPHrq0H0GeXH09OtgLYOXCSGEEEIIIQ6n1W/tZOELm2hvSVA0JIsPXz+e4ZOL9htw6x/4Dc1PPUXBDTeQ/+lP9VrutY0v8eD7DzK7LcKV/74XgKQryEYG82jyf9g94kp+dfkkBub6D+t5iUPTr4O1EEIIIYQQQhwuK+dXM//J9ZRV5HD+tWMZNDpvn/2pAbRt0/Tkk9Tffz85l11G0Vdu7bXsunXPc+eCbzExHue24vN5rmg6j2zwsTKcxZD8IF+ZNZLZJw3c7z7F0devg7U0BRdCCCGEEEIcDusW1jD/r+spn1jIhZ8fj2n2Pg60tm2iy96n7d+v0PrvV0nV1BA8+yzKvnt3z6HYStI07x5u2fI3spTJZcVf5eQlQ0hampmVRfxxejlnj9p/rbg4dvp1sJam4EIIIYQQQohDtWlZHXP+tIaBo3L58PXjuoVqrTXx9RuIb0i/qqqIrVhBqrYW5XYTPPNMsr9yK1kXXYRyu/feuJUi+dRnuK1lMXV+P6e5vs5tC/M4f0wR35o1lvLC4FE8U3Gw+nWwFkIIIYQQQohDsX1NI//+/UqKh2bxkRsn4nJ3H6Cs/v4HqH/gAeeNaeIZOhT/1ClknXsuoZkzMbOyet22tm3++9xneLB1CSv8Poqin+FfW/K45byR3HLeSKmh7kP6dbCWpuBCCCGEEEKIgxWLJHn5wRXklQT46M2T8Pi6xyc7kaDpL38heMYZFH/963iGlWN4PN3KtCZaeXj5wwAMzxnOsJxhlGeXs3j3Yn731vdYm2yi2JeDq+EydjeP46FPn8SHx5UerVMUh0m/DtbSFFwIIYQQQghxsLaubCAZt5h59Wh8wb2bcYfnzMFqbib/2mvxVY7aa/3axrV8Ze5X2BXZhalMEnai2/qhySRXhQfxcM2XGFGUw4NfnMrIkt5ruMXxq18HayGEEEIIIYQ4WFtW1OPPclNSnt3j+uann8FVVkbw9Ol7rfvHhn9wzzv3kOvL5dELH2VC4QR2hneyqWUT7yz+GxOrnsPdVsEPsm7np1eOYfZJA3DtY0A0cXyTYC2EEEIIIYQQe7BSNttWNTJichGqh77OyR07iLz9NoU33ogyu/pdJ6wE33/n+zxb9Synlp3Kj2b8iAJ/AQCBujqKnvket7cvZqVRyfpZD/PqtJESqPuBfh2spY+1EEIIIYQQ4mDsrGomEU1RPrGwx/XNzz4HQM7ll3db/st3f8mzVc9yw8QbuGnSTZjKwGquZtPfv83w6mcxCfBmxVc55cqvM97nP+LnIY6Ofh2spY+1EEIIIYQQ4mBsWV6P6TIYPCZ/r3Xasmj+xzMEp0/HM2hg5/KFuxby2OrH+LiRz5cWPQ3zHsIO12JacYZqk1ezLmPcVd/jzEGDjuapiKOgXwfrnuze3Mr2NQ2MPXMggWzP/j8ghBBCCCGEOKFordmyvJ5Bo/Nwe8291kcWvENq5y5Kbrutc1lrvIVv/edWypMpvtq0k1TJBFYnSlmUmEi7O48x532KC08/DaXkEVr90QkXrBe+sJHta5pY+spWJpw9iMkfGoI/SwK2EEIIIYQQwtG4K0JrfYzJHxra4/rmZ57GzMkhdP75zoJoM/c+fQl1VhuP+SpYdP5P+OYrO9jZEuMTpwzhjgtHkxPYe1Rx0X+cUME6EU2xY30zI6eVoBS89/o2Vryxg4kznYDd0xD6QgghhBBCiBPLluX1AJRP2Lt/daqpifDrc8j9xFXOM6t3vc8r//gU/wzBZe7xfKP+Jlb9bSOVJVk8/YnJnFy+d1Ny0f+cUMF6+5pGbEszbsYABo7K4+SPlLP4X1t499WtrPrvDk7+SDkTzh6E6ZZR+YQQQgghhDhRbVleT9GQLEJ53r3Wtb7wAjqZJPdjV8CG16h5+lq+W5pHIFbMY5s/yagSzfdnj+fj0wbjltG+Txj9Olh3jAo+qLQUcH5BvAEXZSNyAMgrDfKhz41jyoeH8PYzVbz1dBUr5lVz2qUjGDG1GKOHYfWFEEIIIYQQ/Vd7a4Kaza1MmzVsr3U6maTpiSfxTZiAL/IOc1+/g7uKC2jDxdTg//KL60/jtOH50o/6BNSvg3XHqODjsrOvT7a2sXVVA0PGFWDsceeocFAWl9wymW2rG3j7mY28+sgqfH9bz9BxBQydUMCQsfl4pU+EEEIIIYQQ/Uq8qor4pk1kf+hDncu2rqwHDcN6eMxW0xNPkNi6lewbzuD2BXfxUkkBnlQpPznzHi4cecrRPHRxnOnXwbqDSiZZ/bV7iarzKZ9Y0Gu5IWMLGDQ6n83L6tj0fh1bVtazbmENylAUD82iuDybkvQ0tzjQ44PihRBCCCGEEMe/5I4dbP3MtVgNDVh3303ex/8fC3Yu4OV/ryDbW8KnFl4Bi5yyOd4cBiWz+Mx9C2ka5uELOW/RbAYZ472MRz7+TbJ8vmN7MuKYOyGCtZWfz/ZtKdRQzZCxvQdrAMNQjJhSzIgpxdi2ZvfmVrasqKdmYwtr3t7FirnVAHh8JkVDsykpz6a4PIviodmE8rzS7EMIIYQQQojjnB2JsP2mL6ITCQLTplFz991UeyN8pe1hPlH/HeLDd3Ny6VTQNjrZTkvjBk56eiVmXPOT8zRmKpdbJ/yMz55y+rE+FXGcOCGCtR0K0Vwxg5y6DUT/2YDv4//vgD5nGIqyETmdfbJtW9O0K0Lt1lZ2b2mjdksry17fhm1pALxBF4UDQxQMClEwMEThoBD5ZUFcnr2ffSeEEEIIIYQ4ctpbEzzz4yXkFAcYPb2U4ZOKcHlMtG2z4+u3E6+qYvBDDxGYfBLrr74K69s/ZsbHTsdlubm09WnK574NdhKAWLOLTcuLWVMxgjNH3s1nZ46jNEdqqUWXEyJYaxtakkHGZkeo+d4DeIYMJjh9+gfejmEoCgY6oXlM+uZUKmnRUO2E7YYdYeqrw6x+axepuAWAUpBTHHBC9oAgeaVB8koD5BT7cbklcAshhBBCCHEkrH5zJ631MWxL89ojq/H4TCqmFjOkeg6JOXMoufNOQmeewc7wTu64pI2v/s5k3KZzMLPrGXxyJc1M5LWNEd6vtZn+3joGBxo59+FH+Vjp3n2vhTghgnX6RhMT77iG5i/PZdtnr8M3aSJZ559P1nnn4x2+94h/B8rlNikZlk3JsOzOZdrWtDZEqa8O01AdpmGHE7yr3q0FnS6kILvAR15pkNzSAHklAfJKg+QU+Qlke6T/thBCCCGEEAfJtmxWvrGDwWPyuPhLJ7FjQzNrF+xi3Ts72RQu5oIrP0nep66mIdrA51+5jgajkeT0CUSiA5i49e/8c95AHmvNZktxOXeWtDJ896uU/N+3yZNQLXrR54K1UmoMcAtQCMzRWv92f5+xEpBT5Cd/WCE5f/oTzX9/mrbXX6fuZz+n7mc/xzN8OMHTTiUwbRqBk0/GVVR0aMdoKHKKAuQUBRgxubhzeTJh0VLbTlON82quidBY0071uiaspN1ZznQZZBf6yC70p19d88FcDx6/C1OeiSeEEEIIIUSPNr9fT6Q5ztmfGIUyFIMq88hrXEvod79k6YQvs374ZSyteo5fLP4x7Yk2flOXZIX6HL5cTXTZekZtmMf3AUwT5fHgGTmSvP93YN1JxYnpqAZrpdQfgI8CtVrr8RnLLwR+CZjA77XWP+xtG1rrNcAXlFIG8Biw32Btp6B8YiFKKVwFBRR+4fMUfuHzJHftou31OYTnz6fluedpeuJJADzl5QTPPJPQ2WcTOGUahnfvB8MfDLfHpHBQFoWDsrqfk61pa4zRtLudtvooLfUxWuujtNZH2VXVTCJm7bUtl8fA63fhCbjx+k08fjfegAuPz8RwGRimwjCcl8trOmV9Jh6/C5fHRBkKwwClFIbLwOUxcHtM3F4Tl9fE5TZkIDYhhBBCCNEnrZhXTVaBj6ETnBrm2Jo1VN/8JYoHDGDI6V7WLajllaanGRxs4E5dQFXeT4lujPNnI0bOVd/hrnMGM75lO+3vvktszRqKbrwR5epzdZLiKDraV8ejwP04gRgApZQJPABcAFQDi5VSL+CE7Hv3+Px1WutapdQlwI3A4weyU62hfMLeo4G7y8rI//SnyP/0p9CpFLHVq2lfvJjIwoU0P/00TX/+M8rvJ3jaaQTPOIPAyVPxjhyJMg9v32hlqM4a6b2PXRNvT9FaH6WlLkq0LUG8PUU8miIRTZFIz8fCCVrq2klEU9iWdl62M9W27mGv+zsocHlM3B7DCdsdoTs9dXsMXF4Tt8fsnLq9HcHcCenegKsz8HsDLtxeU8K6EEIIIYQ4IlriLczZNgej0c+O9V4qLsxmd3sNu6tWYN74LZI+xVPXlvBK65e5InArH6m6klkzyvlp+CMMWxJjZwC+ctUEPjZlEKahgGGEzjrrWJ+W6COOarDWWr+hlCrfY/EpQJXWehOAUuqvwKVa63txard72s4LwAtKqX8BT+xvv0pBWUXuvsu4XPgnTsQ/cSIFn/scdixG+6JFhOfNJzx/PuG5cwEwsrLwT5lMYMpUAidPxTdhAobHs79DOGhKKXxBN76gm+Kh2fv/QA9SSYtE1HKCeCxFKmGjbY2tndBtpzTJhEUqYZGM2+mp5SzrnNqd78PtSZLxjnU2qbiFfQDhXRkKj9/EG3Dj9bs6A7cz78YTcOELuPAEXHgzAnlHedMtzd+FEEIIIYRDWxZYFsrjYUvLFm7+z81sbd3KjE3/j0o1jTvrv4jn8Qjfe8wiOwp3fdqNiq7g6rYmLs//Ay/v+Da/eGsmlqsdt2Fy222nUDIgdKxPS/RRSuuDqM08lB06wfqfHU3BlVJXABdqrf8n/f7TwKla65t7+fxM4HLACyzXWj/QS7kbgBsABhaVT/3zU388+IPWGqOhEc/GKtxVVXg2VOGqqXFWuVwky4eSrKggUVFBcsQItH/vmuf+zrY02nKa3Xe8rCTYCaePu5UEK6Gxk+n3ib3X671bvHejTDBcYLqdabdX5jK3csq46Zp60p9NT/vS4HDhcJhQSP7Ii75LrmHR18k1LPqy/nb9mnV1eNasxbNmDZ5161DJJA1jhvJMeTXLR3q4suRz2P8ejie3nnz7dQa+s5Ksulb0LDeV/i2YKF7SZ/DN+DVMsnM5rdUNQEEllE6WSpzj0fF0DZ9zzjlLtdYn97Suz3UU0FrPA+YdQLnfAb8DGDWyUs+cOfOwHkeqqYnou+/SvmQp7UuXEnt9DsFX/g1K4a2sJDB1Kr6xY/BWVOAZMQLzOLkYjmcdNevx9qTT3L09RTyaJNGeIpZ+n4ylnNr0uEUiZnXOJyPp5bEDqz13e43OPucev1Nr7va50v3VnWUeX9c6T8dyX8c6E/Mo9UOfN28eh/v6FeJokmtY9HVyDYu+rL9cv4nt29nx1f8ltmIFAK7SUoIXXsjm2A6MNxby+eWAmWTn6HWsLapg0r8fIStcjctvUTq9GffgkTwW/R8eaphMxYgKfnbGMM4ZVcTLv1lO7bY2Zt9wGr6g+9iepOhRX7mGj4dgvQMYnPF+UHrZIVNKXQxcPGDAgMOxuW5ceXlknXceWeedB4Dd3k50+fJ00F5C8z/+gf5LtKt8aSmeQYMwCwtxFRTgKirEzMvHzMnGyMrCzM7GzMnBVVyM4TsxHzbvcpu43CaB7INvWq+1JpW0nWbv0VS3JvCd/dJjVsZ6Z12sPUVrQ4xEzFmWStj73ZdSOP3LM/qae9KDv7kz+p13e+/r6Lfu6uyL7vZ19V030wPJmS4ZPE7sm7Y1lmVjpTR2Kj21bGw73cXD1mibjHnnZbqd68t0GZju9A0mn6tPteLYHytld91067wBlyKVtNMDNzov1THIo+m8lKGwLZ3R1cVyus7orvEqtHae3OByd/0MTXf393uuM10GRj/6+QohxNFQX93Gvx5YTiDHS6EvjPnS4+SGGxj0jTsIzphBYmAR9717H39fv5QzPnwW33edj/XwXbwTOJmC5EZGX2DjHzsTNWwMTzWP5q4FFiGfi+99cjyzJpZ17mfWFyeSiFoSqsUhOx6C9WJgpFJqGE6gvgr45LE9pA/OCAScQc5OOw1w+nwkq6uJV1URr9pIvKqK5K6dxNeuJdLQgN3W1uu2zPx83GVluAeU4Sorw102oOt9aSmuwkKUIU1VeqKUcsKqxySYc/CjuVuWTTJq9R7I033VkzHny3fnl/i4UybSHO98n4pbpJL7D+p76vhibmubba++7QTu9Jd0V8YXdpfHqT13pcOS4XJCgtk5OryzzDRV14jxpsI00/PpZaapMNLLzIxyhpkOBSo9inx6PnOqlAIDDNVVrj/RWoN2plqTHiCwI8ymA63lBN3OwQMtJ/BmLrdSdmcI7nbdxJzgl3kdJeOW85mkvUeAtrFT+oBaZhwwBR5funVG57gH6ZYcXhNbg06HdtvW6D0GR3SlByv0BtJPJ/C7uq4pl0HLNs26d3aRStqkkjZW59QJrqmUjZXIWJZ0zlPb6Z955o2Cbu+7ltm287Pq+LkdbwxTdQvdbl/6SQ3pGxvu9NST/plnTj2+9E06t9m1jYxpf/t9E0KIcFOMf96/HLRG1+1mbauJPfxqAMojhbjjW/jRC9dTH63n2nHXckvR6ZhPXs3S4R+lvbGEMz93LsGp/8Nrq3dz/9wNrNzRyqwJZXz30nEUhLp/PzRMA19IvleLQ3e0H7f1JDATKFRKVQPf0Vo/opS6Gfg3zkjgf9Barzoc+9Navwi8WFlZef3h2N4HoUwTz9CheIYO7azVzmTH41hNTVitrdhtbVgtrVjNzaR215DcVUNy1y7imzcTeett7Pb27h92u3GXljphu6wM14Ay3KVO8HaXOeFbmp4fGtM0MEMGvtDhuXtp27prULiMwN0xSFzHeyulSSWtjOBhs31bNcVFuV3LUukB5sJJZz5dzlludwa9ozx8QjcqHa6VoVAKMBSGIv1eodKPelMZy5xAvo8Ndsx2W55ZpOcPd4Rh0uELTWfNoxPSusp0hLaOeTLWHSmGoZyWDN6Ml88kmOvtqlk2FYbbcK5LlxNWnXUdN0HSy82umtiOmyDKyFwGdkp3v47iFvGo09Wi4ykD8fYkrfVRp/tF3Oqsze2o3d1zPpWwnS4ckVSvgb/67TV7n7tLOTeEPM4j/roCo4npUiiX6rw+DCN9rfT0Pn19mZ49fo57vFxuszOEd94c6LhBkL4BYppGRksTo/PnqwwwDAOlnBrxzt+9VPr3L+P3s2NZt9/NjLIdP/eOm3WRlkTnzbtkLPWBr7duNeV7Tff82TrL9qpZ76yFTz+CcY913ct0Xy618UKIwykRS/HPB5aTaE9wuvUa5pxnCV00C9cNX2Pt2jpWvraL6JowwyaP45eX3MD4+m2EH/0sc1q/TnVkFEMnFfJmLMLnfjqPbY3tDMz188Anp3SrpRbiSDjao4J/opflLwEvHe79Hcmm4IfK8HoxSktxl5bus5zWGru1lWRNDcmdO0nu2kVq1y6SO3eRrKkhsngRqd21YHUf+csIBnGVlOAuLcHIycEIBjGDIYxgECPUMQ2ml2cuc6bK7ZZa8cPIMJRTG+X74L9y8+btZObMsR/4c05gSAftVGZtakftacZ6y8ZKl9ur9jWlu4KnrbuF0c6gmhFIO5Y5U6esnQ6pzlQ7NaAZ89jdw6um25uu2d4CR8aKbkU0neG+e5AHOkK+6qFMxk0B1a1mHkD1UKufUdtvZizPbCHgcoKxkQ7DHd0ATFf/+T3TWnevbU/Xri9atIjTpp+Ky2N01rpKIOuZ1ppUwiYRS5GMWZ3dUxIxa6/Anuqo3U/uvTzzfXs01dkaoHu5D96SpieGy2kp1PVYRqOze4zLnXGjwu08jtHlMbtuGrlU9+4JGTeMMpd3/N5kLpfrR4j+x4on+de982msgYnLf4MrXIXvKzfy3xkF/GfbnSxpW0LRxMFctuWLTF48m3D7SjZW/4m5bT/FMoKYp+Tzja27aNuaYurQPO64aDQfGluCy+w//9eK49fx0BT8iDmWNdaHi1IKMycHMycHX2Vlj2V0KkWqro5kOnCndu8mubuGVM1uZ35XDXY4jB2J7F37vS+miXK5nJCdnuJ2poY/0HlcZk4ORlYWyutx1nk8qI6X252eejACfoxQFmZWCCMrCyOUhREMSDPGI8TpR2qCdBkSR4lSPd9A8uUqcksCx+io+halVGcNOzlHdl8dfcetjJr2brXwKe2E8ZTusea98zOJrkcvdvRL7+gW096yx7q4ddhagChDdYXwbqFbZQTyDxbg3T6zW5cIX8h9SON+CCF6ZsfjJHfsIFldTaK6mmT1Dtq2bOT92sHUFE6nfMfTrDszzkOTh7Es+TAshuE5w7lu/HVcVnEZpZEY/33gXyxdORH4GsESL68ELZasr+acyiK+fN5IJg/JO9anKU4w/TpYnyiUy9XZLJwp+y6rbRu7vd0J2R1hOxzGikSwwxHnfSSCTiadV8qZkkqllzlTu70dq7WV+KaNWC0t2K1t6ERiH1WKvTAMjFAIMxTCyM7GzMrCyMnGzMrGzM7GyM7CzM7pGuQtJxczNwczNxczOxvlkktYCCEOhlJdwfRo6QzznU3mM+Y7xxDovrwjzHeMT5DZ3N7ac1nmTYH0Z5KxVFe5pL3H/pzWNvtjuGHH3Hfwh9zduxf00OXAG3DjD7nxpV/+kBtDasvECU4nk9T9+n7aFy8mWV1Nqq6u2/pwVhmrKz5KuPAkagNzefGaKrL9ueT78rml9GLOG3Iew3KGgW3D4ofhte9wbshD6cT7eH77QH5e10CR18eDn5rKh8eVSKWNOCb6dSo52KbgkWSEgKt/1qQqw8BMB1lKSg7rtrXWYFnoRMIJ4YlE57ydSKDb27HawtjhNqy2Nuy2MFZbK3bnsrDT7H3bdmJtbdgtLfutYTfSo6mbubnOq7f53K5AboRC/fLfVgghjnfHIszvj23rzkDe2fQ+miIWSRGLJGlvTbBh9SbyskLEIgli7SnCzfGMEeedZvq9UQoC2R6Cud7Olz/LQyDLjT/Lg79jGvLgDfSvEfqFALAjEapv/QqR//4X/8lTCc6YgXvQQDyDBtEYCvG3BesJVI8Aw2bs+fncdOl39/49aN0F7zwI7z8Ju5ZhV1zAMwO/xg/+20JLtIHPnjmMr1wwipC3X0cbcZzr11ffgTQFt2yLxbsXs7J+JasbVrO6YTU7wjvI8eYwqWgSk4snM6loEhOLJuI1D36U6ROBUgpcrsNai6yTSaxwGLulBau1tXOQN6u5GaulZa/5xJYtWM3N+xx1HdPsHro7asZDWc403UzdzM6YZmd3hnXpey5OBHYshtXUhB0OO8nAMEAplMvlPCowFDzWh3jUadt2xrNwueTmXD9iGAoj/TSJ3h63E/ZvYebM8b1uw7ZskgmndjzeniLaliAaThILO8E83Bwn0hynpS7Kzg3NxNtTPW5HGQp/yE0w10soz0so30dWno+sAh+5JX5yigJONwEh+ohUYyPbPv8FmjbVYt78Q+KjJxMLJ4m1p9i2qZrGDTGC1gg8E6J88pMXkJXndz7Y3gi1a6BmOax+AbYtADS6ZDxrT/khN68ezcaV9UwfXsC3PjqGcQOOcN8ZIQ5Avw7W+6qx1lozd/tcfvXur9jYshGAwVmDmVA4gctHXs6O8A6W1S7jjeo3AMjyZHFR+UXMrpjN+MLx8qXqKFFuN668PMj7YP1kdCrlBPHmZqzmvQN45nxy927sqipndPa2NqeZUa8HpJxnjnerCXdqw41gEKPbAE5iUIUAACAASURBVHEBp4l7x3u/H+X3Y/h80oRdHHPaskhs2UJ80yYSm7eQ2OK8UjU1pJqa0NHoPj9vBAK4iopwFRfjHTkS/+ST8J90Eu5Bg/rE30etNcnt20ls3Upyx05ncMidO7EaG7EiYadrTDiMHY12do0hlRGG3G5nDAm3GzMnB1d+PmZhAa78ApTH060rTeaLZBKdssA0UK70+BUul9MlJjvb6QqTnYOZl+v8fNMvIxhER6POjcbObjvdu/OQSjkDBqYfD6c87s6uNM4NxK555e4KkHY0itXU5Py7t7djx+LYsSg6FgfbSo+v4Ryr4fNh5uc755uXJ3/L0gzTwOs38PpdhA7gvyvLsomFk0TbkukQniDamp5vc4J4S12U6nVNJGPdBycN5njILvKTVeCE7lC+L2Pee1CDZApxuMWjKRb9bQXb5i2nLfdarGk+WAmsrHIGAvVZNOp6UiVhLv/kWUysqIQd78KLd8PuVRDJaCpeNAbO+Sar887hB4ts3nyjnmGFioevOZnzxxT3if9zxIlhv399lVJDDnBbzVrr1kM8nsOqtxrrJTVL+MW7v+D9uvcpzy7nJ2f9hNMHnk62J3uvbbTEW1hWu4xXtrzCCxtf4Kn1TzEiZwSzK2bz0REfpdBfeLROR3wAyuXClf7y90FordNN1tvSQTuM3dbaPZBnvJJ1tcQ3bHD6mbe3H3gfc7cbw+dzQnZH2Pb7MHx+DL8fI5AO4f4Aobo66tesQfWwzgg4y5TPhxEIOOv9/m5fmkX/ZGd0tSCVQluWM2ZBIOhcI4bh9GeNREjtTg9kuHMnsTVria1eTWzt2m7h2SwqxDu0nMC0k50a6bw8zLxczKwsIF1ba2vnplVjA6naWmfQxJrdtDz3HE1PPOFsp7CQwLSTyTrnHIIzZjg3xg7DuSa3bsU9ZAiG9xCeT9/aSmTBO0TefJPIW2+R3Lmza6XLhbukBFdhIWYoC3dpmfPkBH+gayBGtxtlGuiU1RWW43GslhZSjQ0kt24j+u57aMvqGvixp5dpOl1kUhF0KoVOJrDDEazWVnRv3V+U+uBjWOyD8vsxQkHstjA6Fjvo7Zg5OZgFBU7QLijAzM/DDIVQHi/K68XwelBeb/q9B8PrRfn8mNlZzsCX2emgb55YtbCmaRDM8RLM2f/17Dz+LkZLXZTm2nZaattpqYuyq6qFqqbavR5x5w24COX7yCn0k1PsJ6fIT25xgJxiP8EcrzQ1F0dca32UF378Nq0tNjkpi1FTcyidMoyiwVmECjz8ZvX9PLr6Uc4dfC4/OutH+Fw+qFkJj18Gbj+M/DAUj3YCdfFoVoazuO+19cx5uZb8oIf/++hYPnXaUDzHUZcSIQCU3s9/1EqpuThPsNnXX2INPKq1fuwwHtthU1lZqdetW4fWmh8s/AF/XfdXiv3F3HjSjcyumI3LOLC7u22JNl7d8irPVT3HsrplmMrkzIFnMrtiNmcPOhu3KWHmROYMDBfduyYpXcOkY1HsaMypCYrGsGMxZ1ks7kzbo9hR56Xb2535WAwrEkHt8Ti1/XK7nZDt8+0xOnsPX/J7Wp65zLOfsj0sx+Vymsx3NB/OaEqMMtKPsFLd12cGEZfrhPuibcfjpOrqserrSNXXO6+6elJ16fcN9ditbZ03fXQ8vs/tKZ8PlNqr5lkFAvjGjME3diy+MWPwjhyJZ1i5M+7CQdKWRXzDBqLLlhF97z0iby9wBqYxDAJTprB7yBAmfuYavKNGHXDNgk4mibyzkNaXX6bttdec7h2miXfEiPSxj8ZVVuYEuvwCXPl5YBidTz+wIxGSu3cTX7+e+PoNxNevJ7F1K9g2RjBIYPpphM44A++oUbgHDMBVXHxcXHM6kcBqa8NqbOz6t6+rwwqHu1rABPd4ZGLHYxJdro6HyDv/9okEVksrdmtGV5rWFuz0vB2JOINC5uXiystzxqAIBlFeH4bfh/L6UIZywn96AEundrvZubnS0Ng1bWgg1dSEVV/v/A1LJA78pJXCzMvDVVjo1NAXFnYeixEKYYTS59jx6jj/QPpvnM93xLvozJs3j5kzZx7RfRwM29a0t8Rpa4zT1hgl3BinrTFGW2OM1rooLfVR7FTX9zyX2yC7I2gXpYN3ej6UK6G7vzqa1++ORVW8/Mg6LEszpeUVJv7oq3iHDwcgYSX41pvf4uUtL3NV5VXcccodmIYJ9VXwxwudUQKvewXyhgJQ2xbjrhdW8dKKGnL8bm44azjXnl5OUPpRn3COp7/BSqmlWuuTe1y3v2DdH1RWVuq1a9dy76J7eXLtk1w95mpumXILfpf/oLe5uWUzz1c9z4sbX6Q2WkuON4dTSk/pfA3LGSZNU8RhMW/ePM4+44zO0G23t6NjsfR8FDvaju6Yj0W75qPpdT01RU0ksZOJbu/3LNdZG3qsZD7urZdXRy2exmn66jxsW6eb83c1ie1alrFd03QeH+dyahCVywUuM6N5rpm+QWCiE3HnBkg8jh2PoeMJ598gEUfH4uh0E9zMlybjeJRK19T5OoNAx+j6Ha8eayqVcprdFhbiKsjHyMnBzMrGyAphZmU5tYAuF8rtApcLLMv5t09vE8vCVVyEq7gEV0kx7tJSp6n2EQ4h2raJrVpF23/+Q3juPOJr1zo/+sJCgqdPJzj9dDxDh3Q1c/b5sMIRYqtXEVu5itjKlUQWLMBqasIIhcg67zwCp55KYutWYmtWE1u9Bqu+/sAORincgwfjHTUSX+VogtNPwz9pUp9t1dGeSPHetmY21YW5YGwppTm+Y31IPdK27fwNicex4/HOeR2PO+G8tTX9RIlWrOYWUg0NnTcRUnV12K1O8D9QKt1ax/D5UIF0i5495jtb+/j8e807LX+65ju77gQCKK+X+fPnHzdf6j4I29aEG53a7pbadprrorTUOvN7hm7TbThhu8gJ27nFXfMSuvu2oxFK7EiE5Q88z4IN+XhSYc6ZFmPYDVd1dhdZUrOE+969j+V1y7l1yq1cN/4653ty8zb4w0WQisFnX4aiUQC8VVXPLX9dRlssyefPHsH/zBhGtq9v/t0Wh67fBmul1B+BMPAusBhYpY/TdJ7Rx/r6W567hcdXP841Y6/htpNvO2yhN2WnWLBzAa9seYVFNYuoidQAUOgvZHT+aIbnDHdeuc40xyuDK4gP5lj+MdFaZzxqbe/Q3eOrI5B3BExbg7bBtp3tdbzXurN5Mdp2mtd27mvv7ZNKdb8BkEig0Si6auicGvD0QHrdlqvO33lt2WgrBcl0LZxloVNJ6Nh/KgVWynm0nGWBZTk18j6fE469XpTPi+H1dc539jPtqH3P3HdH+I/Hu1opRGMoj8dpvh8IOLWOOdldtXWFhbgKi3AV5PeLPqxvPPssEzVE3nrLCcyNjd3WG6GQE6LS/5W4BpQRmDyF7IsuJDhjRo/NvztDWGOjU7vb0OBsKxjs/Jm68vPxVlRgBPr2M7TX1bTx9NLtLNrSxKodLaTSTX89psHHpw3mCzNHMDB33zeKF2xs4M2qOs6oKOSU8nxcfeDxT52Phwzv3QLIDoe730iMxZwbiT3Od9yAdOY/cNN308T2ePBkZ3e7vrpNM+aV3+f8ffB5038zfBg+58aa8nqdwO/1dt5sU17vMbkRb9uacFNH6I52NjFvro3SWhftNtJ5t9CdDts5xU7Ndyjv2By/OHBH6ntEYssWwvPn0zT/bVbVlbB9wFnkGc3M+uqp5IwcDMDimsX89v3fsrhmMQW+Am4/5XYuGnaRs4G23U5NdaQBrv0nlE0kZdn8as4Gfj23ihFFIR745BQqS7MO+7GLvqXfBuv0Bv04T0yeBozVWt9waId4ZJVUlOjibxdz9ZiruX3yV1CJNgge/r7RWmuq26pZWLOQJbuXUNVUxZbWLcStriab+b58huUMY3jOcIZmDyXfl0+u13lOX64vl5A7RMAVkGblotPx9MdEiIOReQ1r2yaxcSPJmhpStXWdzZ3N3Fz8E8bjGzcOV6GMXQFQ0xLj56+t4+ml1bgMg0mDc5hWns+0YfkMyPHz6NtbeHrpdgCumDqYz55RzqiS7l9Am9sT/OClNTy1pLpzWV7AzQVjS/jIhDLOHlV0woUibdtdrX4yWwF1tADqnHfe25EI29avZ0BeXlcrk4wuB860l1YnB6ijdryzttzr3avFDm5Xt+43nYE+4AT67o+YPLTHS2pbOwOo1bbTXBvtrPFuqXPmrWRX6HZ5TfJLA+SVBskrc6b5ZUGyC33y/O7jxMF+j7ATCdoXLSY8fz6RN9/EamzsvCFtpZKolE1NySlUjbyMpCtEUXkEz6Wa2uRudkd2s7ZpLcvrllPoL+S68ddxxagrnNaiWsPKZ+CVb0AiAtc8B4NPYVNdmDv+sYJFmxu5cuog7r50HAFP37+5LA7d8fRd+IRvCu4f5td3Pnknd079GurPl8OOpXD5QzD20iO+b8u22BXZxaaWTWxu2cymlk1sat7EppZNtCZ6H+vNbbgJuAPkefMoChRR6C+k2F9Mni+PbG82WZ4ssj3Z5HpzGRgaSLYn+4T7cnSiOJ7+mAhxMOQa7tKeSLFwcyOb6yJsbYiwuaGd6sZ2CkIeKkuzqCzNZlRxiDc21PHIm5uxbbhm+lC+eE4FeUHPXturbmrnwfkbeWpxNQnLZnRpFpecNICLJw5g2fZm7n5xFU3tSW44azjXzxjOos0NvLyyhv+sqaUtnuJ7s8fz6dOGHoOfRN9yINdwxzgbOh5zwnk87kxjcXQ8Pa5GZ8uV9LJ4Yo8xNtJdexKJrm46e7YaSqUyugO17/tJFi5XZ+A2gsF9j6/hcWPm5OLKz0sPXpiPe+BAPIMGojyejPPUnaOWN+9up6kmQtOuCE017YSbuioSDJcitzhA4aAQxUOz/z975x0eR3X973e2arW76r13We694V7oYIrpzXQIhFBDaF/ySyCEACEQiKmmVxsMxnTce++SbUlW79qVVtvr/f0xtmzZkiV32eh9nnlG3r0zc3c9e+eee875HGJSjUQlG3vKhZ0CjnQM9jU0UPvsP7AtXYpwOJC0WoJHDEeTnAJKBesaNpNvcaENugx1IIVaQwnL0+fQaDhgAU8bTpw+jmlZ07g8+3JZoAzAvAe+fwiKF0LCILjoVUrVmby6sJBvNlURpFbyzCV9uWxw0nH+Fno4nelO84gT4bH+O9ALsAMvCSG2HVsXTyzRmdGirrAWxXf3waaPITIbTIUw8UkY97AcqnmSEUJg89pocjVhdplpcjXR7G7G7rXj8DlweB3YvXbMLjMNzgYaHA00OBvaeL8PRK/Wk2BIIFGfKO8NiSQa5L8jgiIwaozoVLoe4/s0pDsNJj30cDT83u/hFpeXhQX1/Li9hiW7G3Dt9fYZtCrSooJJCgum0eZmV60Vq3t/Sa9pAxN4+OxckiM6D2VvsLr5fms187ZUs7G8ufX1/kmhPHdZv0NqvLp9fm55fx1bKy0seGg8McbumavdXeiu97AQAuHxyGHylpZ2q1fs2wKOQzU32mwuF/6WFrlW+4EolaiTEtGkpaFJTJJ1G/bqIygjIw/wmuvwoaa50YO5xk5TrR1zjZ3Gcit2iyxmJ0kQkWggMSeMxOxwErLDCDL0ROidaI7k/vU1NlJ20wy81dWETrsYw/jx6EeORKHT0Wy28b8vPoFdYYS6otGFqBl1SSbxg4Kpc9Zh9ViJCY4hJjhmvyEd8MvGdN12qFwP696RRcomP0V19nW8vKCYrzdVoVZK3DAylTvHZxJlOPrqDz2cmXSnMfhwhvXRxlcECyGukCRJA7wC3H3UvTuBHFjHWrHqNdmoHv8ojHkQvrsPFj0DDTth2muyvP/J7RtGjRGjxkhKSNcqmgkhcPqcWD1WWjwtWD1WzC4zVbYqqm3VVNuqqbJXsbZ2LQ7foSFpKoWKEE1I67bP623UGNt4wfftD2xn0Bi6rJ5+wqjZCjWbwVIFLZXyXlJA8nBIGQmJQ0HbdWVjl9fPiqJGShrthASpCQ1WE6pTExsSRHqU/gR+kB566OFMp8nu4df8On7cXsOKIhMef4AYo5YrhyZzdu84esUbidRr2ix2CiGotrjYXWslLjSIvPhDS0B2RLRRy4yz0plxVjoVZgfzt9YQqlNz5dCkdvOptSolf5/Wl3P/s4xnvy/glasHHdImEBDYPL4ewaBujCRJrfnaqsjIYz6fCAQIWK2t2gXeqiq53n1JCZ6SUpybtxCwWA57DmVYGNroaJJiYkiLjkaTnoo/JQerLhGTVUXtnhZ2LKtm60LZuxmZqCc2I5S49BBi00MJjw3uEUo7RfhMJspmyEZ18ptvoB8+HIDqombW/7ST8u1mQsmGBAeTpuaRNTimNQIhTBcGtnrZgK6bJ9eirt8BDbtkYTKQ52x5F8O5z7GmUctdr63E4fFz06g07pqQ0bPA18Npz9FaSlpJkgYLITZK3dgFuq+OdZ/MpNv59WnocymM/4sscHTpmxCdCwv+BuZiOP9FSGp38aHbIEkSwepggtXBxOpjO2wnhMDitlBllw3uJldTG2N8397itlBpq6TFLf/bJ3wdnhNkr/i+xQCjer8RfuDW0WsGtUEuqbCX0kY768uaaHZ4sDi9NDu8BIRgfE4043KiCVIfECpWsQ6W/BOKftv3TYAhFkITweeGxf8EBEhKSBwMU/8GqaPb/QwWh5dfC+r4Nb+WpbsbcXrbL2M1PD2CuydkMuEk5B8KITDbPfiF6Hmo9NDDaURhnZXH527D4fETodcQqdcQrtewu87K6j1m/AFBYpiOG0elcl6/OAYlh6M4jMEgSRKJYbpOhcg6IzkimLsnZHbaLiPawF0TMnl1QSFXDk3mrKz9ue01Fic3v7eOnbVWYoxasmMNZEUbGJ4eyQX944+pfz10XySFQg4dDw2F9HQYMuSQNgGXSxYPrG/Abzbtr1CxV2jOZ9pfKtBdVITlm29ajw0LCSG+Xz9GT5iIK3sEdWYV1UXNFK2vJ3+ZXFdeo1MRmx5CbHoIcemhxKaHEKTvWdw50fhMJspnzMBbWUXym28SPGwYZdtNbPiplJoiC16Nk+2Jy5l89lCuGXF524MDAfj1KVj12v7XDLEQ0xuG3QaxfeS/o3NBrePL9RU8MXcNyRHBfP2HYT3OjB7OGI7WsP4ZmCRJ0nPAa501PtXoXHWQMAYumSkb1SDHI419CKJyYd4f4Z3JkDlJ9minjDy1HT5GJEkiLCiMsKAw+kT26dIx+7zhBxvfLZ4W2fD2WrF69m8tnhZqHbUUNhfS4mnB5rGxt8BQhxjUBoKUelxuDRa7ioBfh/AZwW8gSArF79Pz+XYNQYpgRqUnMT3WysjKT1CVLkWhC0c16UmUfS9DYUxCUh8QJuSyQOU6KF8DWz+H986TB/IpfwXtfiGfNXtM/OGTjZjsHuJCgpg+JImpvWPpnxSKze2j2eHF4vRSUNPCrOUl3PzeOnrFGbl7QiYX9k9AeZxW0C1OL+8u28PaUjM1Fhc1FheeveqrGdF6xmRFMSYrilGZkRhPoKfI5w+ws9aKze0jKVxHXEjQaaEU3EMP3YHf8uv40+eb0GlU9E8KxWT3UGqyY7J5iAsN4s5xGZzXN56+id1b/+IPEzL5dnMVT32znR/vH4tWpWRXrZUZ763F6vJx3+RsqpudFNbb+GpjFR+sKkMwiAv7J5zqrvdwilAEBaFJSkKT1LUcWL/NtreW/C5cO3fiWLMW+7PPABDRO4+UcePQntsbV2QqZpeBujIrtSUtbPihdF+hACIT9aT0iSSlTyTxmaEoVT3PquOJt66eittuw1NRSfIbM/Fn9mP2c+tpKLeiC1NRkLeYtaG/8I+JzzAldUrbg/0++O5PsPljGHwj9LsCYvqA/tAICn9A8PwPBby1dA9js6N47drBhOp6Fk16OHM42hzrfwGvAq8DZUKI+453x44nQ5K0YkNBGRjj2m/gtsH6d2HFq+BohLSxsoGdNuaU5F+fjgREALvX3sbwPtAQL21qZPmeCkqbGlGp3MSGCYK0Llq8TVjczZ0a5QejklQoFUo0Cg06tQ69Wo9epceg0hFlqSa6toBotYHoQTNIyb6A1bsU/OP7PaREBvPC9AEMTgk77GTX4wswb0s1bywppqjexsUDEnj5qoHHZFy7vH4+XFXK64uKsTi9DEoJIzFMR0KYjvjQIHx+wYriRtbsMeP0+tEoFTx8Tg5Z/nImTZx41Nc9kPWlZpbsbmB9aRObK5rbeOxVCon4sCByY43cMS6T4ekRx+WaPfTQnXKjDofN7UOlkNpGzByEEIL/LS7mxV920TchlLduHEJ86MlNJTreLN3dwI2z1vLg1BxGpEdw+4fr0aqVvH/zsDa52T5/gMtnrqTc7OCXB8YTbfz95EGeLvfw6YJ7Twm2RQuxLliIc9Om1lJ7klaLNjMTbU4OisxcbOEZmEUk1ZVuaoosBPwCtVZJSp8Ieo2MJ6VPRI/yeBfo6P4VHg/mjz+h8fXXEX4/yTP/RyB3EHNf2ojH6SP7/FCeMT2CzW/l1UmvMixuWNsT+Nzw1W1QMA8mPCbPnTuYW9VbXTw6ZyuLdjVw46hU/u/C3j2L+T10me40Bp8I8bK3ADeyt/pWIcSfj62LJ5be2Wkiv7C084YeB2x4D1a8ArY6SBkN4/8MGRPOOAPb5fWzqbyZNSUmKsxOMqL1ZMcYyIk1khwRfNy8swBbK5u56s3VKBUSN41O5dYxGUQcoG7rC/hodjdjcpqweW3YSpdhXf4i1foU/tsyhrCQYK4YmkCwVoEv4MMv/PgDfvzCj8fvwe61y5tPNuxNThP19jq8B4S2CyGhJZLBCbnE6aNRK9Stm1alxaA2oFfrMagNGDQGInWRRAVFEaYN5+2lZbz4y26uHZHCs5f0PSrv07ebq3j+x51UW1yMz4nmz+fmHiImtA+PL8DG8iZmLS/hl/w6BkQref+uSe0qAncVi9PLM/Pzmb2hEqVCIi/eyNDUCAanhhMRrKGyyUFlk5OKJgcri000WN2My4nmoak5DEgOO+rr9vD7xuQ0MX/PfH7a8RORkZEoJAUKSYFWqWV6zvRDJ2mnEJ8/wDn/WYrD4+df0/szNjv6kDbNDg9PfrOd+VtrmDYwgecv739YI/x04t5PN/JLfh0ASeE6Prh5eLuiaYV1Vi54dTmTesUw8/rB3dobfzzpTpO6M42Aw4G7uHivV3s37sJCXIW78Tc0trZRxcaiHj4Ka/pI6pWJlBU6cdq86EI05I6II3dEHJGJ+t/N/XiktHf/2pavoO7ZZ/GUlKAfN5bYxx7DF5HA3Bc34rR6yJuh5y8770clqXhj6hv0iujV9qQeO3xxvazufc5zMOoP7V5bCMG3m6t5et4OnF4/T13Yu6cSQQ9HTHcag0+EYZ0E9BJC/CZJ0j+FEH851k6eSHJzc8WuXbu6foDXCRs/guUvg7UakobJq3BZU05rA1sIwZwNlczeUMnmimY8vgCSBFEGLQ3W/Wrjeo2SP0zM4s5xGce8mlhucnDZzBUEqZV8dfdoYkM6ySEuXw0fXgLROXDTfBaVubj3k42E6NS8d/MwesV1TcxHCEGdpZbVb1+NWhQxL3k6IQkaSiwlWDwWvH4v3oC8uXyuDj3mEhLhQeFIvghqTQYGx2dzzeBBZIVlkRWW1aV6419tqOSh2VvonxTKX87txeisrtXoFULw4aoy/v7dDqJDgnj1mkEMSztyL/KS3Q385aut1LW4uHtCJndPyMKg7TgLxOnx89HqUmYuLqbJ4eXs3rH847J+x6zSKYSgpNHO2hIz68uaEAISw3Uk7fXa94o39iiBngF4A16WVi7lm6JvWF65HJ/wEaeOI9wYTkAE8As/ZpcZs8vMBRkX8NCQh4gOPtSIPdnM31rNvZ9uIsqgpdHm5oaRqTx2fi+CNSqa7B7eXV7C+ytLsXt8PHpuL+4cl3HoJN7VAmvekNNTMibKWg+azhW9uwN1LS7OfnkpmdF63r1p2GEX8mYuLub5n3by6jWDuHjA/pBwIQRrS8xoVAr6J4Ud1wXaU013mtT9XvA1NcnG9q5dODZtxLF2HX6TCQBVajqOSddRqc2hfLeNQEBgCNeS1Cuc5LwIknpFEBxy9IvRpyvC68Xy7bc0f/MNSmMI6oQE1AkJ7G5qoldyMt6KcjzlFXhKSnAXFqJOTSH2sccwTpiAo8XDN//eiLXJhfvcQj4yvUV0cDRvTn2TZGPy/ov4PLDlM3mO3FwGF70Kg29otz/1LS4en7ud3wrqGJwSxgtXDCAzuusisz30sI/uNAafCMO6N5AKbBNCVHbW/lRxgCr47VVVVUd+Ap9bVhJf/jJYKuR6e+P+DLnnnXYGttXl5bGvtzF/aw294oyMy4lmRHoEQ9MiCNWpsbl9FNZZKayz7RX3qmNAUigvXjGA7Fhj5xdoB5PNzfQ3VtHs8DDn7tGdD6Z1O+T8aH003PwTGOTJ9o5qC7e8vw672887Nw1lZEbXlE/fXFLMGz+uZWXY/6HTh8AdS9pVDd+XX2732rF5bbR4WjA5TTQ6G2Xvt7OeSmslW2qLcARMSJL8m1Er1OSE55AXmUdeRB5ZYVlkhmUSqt3vid5U3sRVb61mSEo4H946HPVRLFS8/+0C3tutoLLJyctXDWwzkT0cHl+Ap+dt57O1FWTFGHjpigFH5H22uX3MWl7C/xYXkRVj4PM7Rh3WIO+IyiYHL/68i+VFJhpt8gJOpF6DRqWgtsXVmkOnUSm4bkQKf5iQ9bsKMT2T2GHawRPLnqDYUkyULoqLMi5iWtY0KjZXtHkgunwu3tn2DrO2z0Kr1HLPwHu4utfVp6zygBCCi19bgc3t4/v7xvDvX3bz7ooSUiKCmZIXy+dry3F4/ZzfN54/Ts46dIEv4JefFQv/DvYGUGrA75H3KSPlnMPBN56Sz3YkWJxeDFpVpwaxzx9g+huruvE0QwAAIABJREFUKDXZ+eWBccQYg9hQ1sQ/fyxgXWkTABF6DeNzopmQG83EXjGnvbJ4d5rU/V4RQuApLsa+Zg3Wn37GsW6dXAps7BQsQy+mIRBN5c4m3A45Wi0m1Uj6gCjS+kef8d7sfQZ148w38FZVoc3OAkmBt6qKgN2+v6FajSYpCXVKMvrhIwi/4XoUGg1Om4evX9pAU4OdX3q/Q6k+n3PSzuHR4Y8SpdvrDPA6YeOHctpkSyXED4DJT0PW5DZ9sTi8LClsYEFBHQsK6vH6AzxyTi43n5V+Ri229XBy6U5j8IkwrGcDs4G+QKoQ4qZj6+KJ5Yg91gfj88iiWMtegqZSiOsHo/4oi50ZTr2npTO2V1m499ONlJsdPHR2LnePzzysMi3I3punvtmO3e3n/qnZ3DH2yLzXTo+fa95eTUFNC5/ePpIhqeGHP8BSCW9Plksx3PozhLUtQVZjcXLt22sQQvDbg+M77YvZ7mH8C4sYmhrOexM98MFF0P9quHRmlz/DwQQCgj99sY7vC7ZzwzgNoWH15JvyyTfnY/VYW9tF66LJCMsgQhPHr1u9aIjg+WkT6BWVSrQuuo06eldYvHgxQ0aexY2z1lLSaGfhQxPahNJ3xPM/7WTm4mLuGJfBg1NzjjpkdeHOOm7/cAOjMyN596ZhaLooGrMv/Oupb7YTEIKpvWMZnh7JiIwIMqLkSY7XH6DW4qKiycG3m6qZs7ESjVLBTaPTuHNcxjGFvwcCgmqLE6NWjTFI1ek938PR4w14eXvr27y19S0igyL5y4i/MDF5Yquh3NEDsayljOfWPMeK6hVEBEUwPmk8k1MmMzJhJFrlyVtcWVncyLVvr+Efl/bj2hHy2LN6j4mHZ2+hqtnJBf3iuW9yNjntLTKWLocf/wJ12yB5BJz7nKx+W7ZSDpEs+m1vWcf/waDrTtpnOtEU1ds4/9VljMyIRKdW8POOOqIMWv40JZuQIBWLdzWwZHcDZruH+NAgvv7D6NMuF93itlBiKaHCWsGybctQRippcDbg8XvkLeBBCEFMcAzx+ngSDAkkGBLIDc8lIzTjiMf6Ho4MT2kpzV99TfM3c/E3NBI8YgQxTz2FVR1N+Q4zpdsaqStpAcAYEUT2sBj6jEskJPL0ug87w75mLTWPP463qoqgfv2Ivvce9OPGIUkSQggCLS0sn/ct/caOQERH4JcEvoCPRmcjeyx7KCmtgh+TUTq0/JD3Fn36JHJXaB+y64vksqa2WrDWySmSAS+kjIKxD8sG9QGLFZvKm3j+p52sK23CHxBE6DVMzI3hnomZZPR4qXs4Rs50w/oOIcRbx9yzk8QxG9b78Ptg22xY+oJcogsguhekngVpZ8mTqpDEbuXN/nxtOf83bwcRwRpevWbQEQlSNdrcslLs9lquGZ7Mc5f179JxgYDgjo82sHBnHTOvH8I5fToQjTuQHx+F9bPgzqUQk9duk5931HLnRxt48YoBTB9yeDXSv87bwYerSvnp/nHyZHjRc3LJrkvfggFXdelztIfXH+C6t9dQZraz4tFJqJQKhBDU2Gsoai6iuLl4734POxvK8CusbY5XSSpi9bEkGhKJ18fLe0N8679j9bGoFW09O/sGk121Vi54dRmXDU7kX9MHHLafG8qauOKNlUwfktRp264we30Fj8zZyrSBCbx85cBOjVSLw8uT327nuy3VDE0N5+WrBrabr3kwJY12XvltN99uqcaoVfHp7SPpm9h+LnorPjeUr4LihXhNpdS4NBRbVeQ3QanbyM/+odgVRsKD1UTqtZzTN44Zo9O6tDjRQ+cUNxfz+PLHyTflc0HGBTw2/LE2URtw+AeiEIJlVcv4fs/3LK1cis1rQ6fS0TuyN0HKINRKNRqFhhBtCBOSJjA6YXSXUjCK6m2UmexMzuu4NOE+bpq1lh3VLSx/dGKbBSiX14/V5es4gqJkGXx4MYQkwdT/J5d0PHj89/vg40vlqgW3/gIJAzvtz4nA4/dg9VgJDwpHIR1dio8QgoAItBqMby0t5h8/7ESvUXLn+ExuHZOO/oCoFn9AsHqPiTs/2kBimI7Zd486Lp7rgAjI/ZCUh9QB3xd1ZHFbWqtatHjkze614wv48Aa8+AI+AiLQqq2hV+vRqXRUWCvY1bSLXeZd1DnqWs8tIRGnjyMmOKbNfSlJEnX2Oqrt1Zhd5tb2erWePpF96BfVj5jgmNZr+gI+JEnaX75SbSRUG0pKSAqRQZFntFf1RCF8PprnzKH+3y8TcDqJvOUWou66E4VOh93ipmy7iT2bGyjfLoeRp/WPov/EJBJzw0/779u5ZQtlN9+COiaGmL88imH8+EM+U6Ozkcu/uhyz33zI8clNvZhaOAOhDNDS/zuuYRe5VVtBBEBjkJ0chlhZ/NcQC9lny/Pdg1hW2MAdH24gLFjNZYMTmdQrloHJZ1Y6SA+nljPdsH4fCAFMQIEQ4t/H1MMTzHEzrPcR8EPVRihbLnsryleDxya/Z4yX62EnDpVzsxMGgubU1OfbVN7EZTNXMiYriv9cNZDIo8hfFULw7PcFvLO8hM/vGNmlMOwluxu4adZanrwgj9vGZnR+Ea8LXsqVVz+nzzpsXy54dTl2j48Fh/FalzTamfrvJVw5LJl/XNpPftHvkyfANVtk4z2y8xqvHfHLjlru+GgDb984lKm9D520CyF48MstzN1UxavX9qFvaoAaWw1Vtipq7Hv3thqqbdU0OBva5HcrJAUxwTEk6GXPR7w+HluVjQlDJpCgT+CjFU28u7Sa2XeN6jDf2unxc/6ry/D4Avx0/9jjVrLr9UVFvPDzLm4fm84TF/TusN2+Uj0NVjcPTM3hrvGZR/xw3VVr5Zb31+H2+fn67rNIiTzIKBdCXuTaNlv+DXod+CQVFYEo9LgIkewE4QXAp9CyM3IqS0MvYqUzjeXFJoLUCq4elsJtY9NJCu9aDmwgIKu2z99Sg8nuwesPtG5J4XLI8Pjc6KMKlz9dWVOzhj8u/CNByiCeGvUUU1Onttuuqw9Er9/Lutp1LChfQFFzEd6At9Uz2OhoxOq1YtQYmZIyhXPTz2VE3IgOvYJ3fLie3wrq+P6+seTFd6zNUFDTwnmvLOORc3K5Z2JW2zd9e7UnVO2MnfZGmHmWnF5yx+I2pf0OwdYAb40HhVJOSQk+4LcrhOzdbqkGnwv8bvm68QPkyhTIEQFNriYMagM6la5TY8DkNLGoYhE7TDuoaKmg3FpOrb0WgUCj0LR6VhMNiSQYEkgyJLWON03uJoqaiihqLqKwqZBaRy02j00WlvTa8Af8RARFEBMcQ7QuGpfLQGpEOGFBwWiUGjRKDU6fkyZXE2aXmWZ3M7XWZsrMLQRpBJEGFQHhJ1gdjEFtAKHFbJVDx8OCla0ClS6/C4fXgdPnxOlz4vK5ZMNUyAbxPlQKFWqFGqWkxOFztHnvYCSk1vYqhQqFpMDuteMNeFvbKCUl6aHp5EbkkhueS2ZYJknGJIo3FjN1Yvv39z6cPidV1iryzflsa9jGtsZt7DLvwneAkObhMGqMpIemkx6SzuDYwYxOGE2cvgsL0z0Ach3m+hdfwjJ3LuqEBCJuupGQCy5AFSWHMlvNLrYvqSJ/eTUuu5eoZAMTr+9FTGrXtFu6G+7CQsquvwFFSAipn3yMOibmkDZCCO5ZcA+rq1dz7+B7CVIGoVKoUElq/FtDqF8gERkZ4ALdoxh9eyBhsDwXy5wMiUNA2fnz7IdtNfzp801kRhv48NbhxBg70dLpoYej4Ew3rB8WQrwoSZIK6COE2HKsnTyRHHfD+mD8PqjdApUb5HrKleugqUR+T1JCbB/Z2I7rLxt0kVmyAX4CV0r9AcElr6+grsXFgofGH5Nx5fT4Ofs/S1ArFfxw39hOQ4of+GIzC3fWs/aJyWhVXQiF2zobvr4NbvxWVmA/DPuM2hem9+eKocnttrnzo/UsL2xk0SMT2g7wliqYORrSx8JVH3ferw7w+QOM/udC+iaGMmvGoarG87ZUc99nm3hgSg5/mpJ92HN5/B5q7bVU26vbNb5rHbWHThQDWpQihP7xyUTroog6YIvURTJ7rZn5m5t589qxTMpJPW55q0II/jpvBx+sKuOvF/Vmxlnph7Tx+gNMe20F9VY37940tPOcbpcFKtZBxWq57F18f9mgiMqlyORk+hurCNOp+eru0fsXhhxmufb8zvkQno49ZSL/KU3m07oUpo3I5dJBiQxKDkMV8EDjLtjwPmz9Ul78iuuHJaI/qxqCWFSjolZEMGHoAGacNxopqH3PeLnJwZwNFXy1sYqqZichQSoSw4PRqBRolBJKhcSuWitNDi8apYJRmZFcMiiBSwYmdskbYnV52VppocXpJUQnh60bg9REG7Un1EgXQlBpq6TWXkuTq0k2hNxmVJKK1JBU0kLTSDGmEKRqf5K0uGIxDy1+iJSQFN6c+iYxwYdO6lrbHocHotfvZVXNKn4u/ZkF5Quwe+2khaRxe//bOS/9vDaRHoGAYPAzv9Ls8DIiPYLP7xjZ4f/FA19s5pcdtaz8y2RCg9XQVAZFv0Lhb1CyVDaGr/xATv3ZfwH49Er5/dt+k+/bzqjcAO+dK5dzvG62fN7S5bDgb1Cxpk1Tk0LB+iAt25L6sy0kivzmQlx+FyAbfnq1nlBtKKkhqa3aDmkhaeww7eC3st/YWL+RgAgQpg0jJSSFFKO8hWhDqLPXUWmrpNpWTbWtmiZ3U7vdVUkq0kLTSDQkYtAY5IoJagMqhYpGZyP1jnrqHfU0OBtw+Vx4/J5WA1JCIlQbSnhQOOHacIwaIw0tPrZU2EgJNzIiPQqzy0ZBbT21Vgso3ICEXqMhMcxAaJCWIFUQOpWOYFUwwepgtEotKoUKpaRErVAjSRJ+4Zc90H4vfuFHp9IRqg0lRBNCiDZE3mtCWl/raFHC4/dg89qwe+3EBseiUR4azXK097Db78bhdcjGzN4NAVavFZvHhtVrpdnVTGlLKSWWEkosJRQ1F7V6v7PCshidMJqzEs9iSOyQk5oicbriWL+eun+9gGvrVlAq0Y8eTejFF2GcMgWFTofP66dwXR2rv92D0+pl0NQUhl2Yhuo0Uvj3VFZRdu21IASpn36CJrn9+dBnOz/jH2v+wfTw6Tx98dMA2JrcrPy6iMJ1daTH1TElcD+ahGy4fJYsHHsEfLGunMe+3saglHBmzRjWU5O6hxPGmW5YLwY+BpYKIXYfW/dOPCfcsG4PeyNUHWBoV20Ed8v+99XBEJEJkRl791nyFp0LumMvb/Tx6jKe/GY7r1w9kGkDE4/5fPvqnN43OZsHp3Y88NrdPoY+8xuXDk7c7y3ujPcvlMXh/rgJFIcPURRCcNFry2lx+ljw0PhDxMDWlpi58s1VPDQ1hz9Obseo/e5+2DYHHi2BLoSTdsRLv+zi9UVFLH90Eglh+/O1fP4AU19eilYlL0Ica16vL+Bj3sJ5JPdNpsZeQ4OjgY1V5SzYXUxarB+N1k6js7FNjvfBGNVGQrT7J5dGjZFgVTB6tZ5g9d793n/v+1ur0qJVatEoNQQpg9AoNfLEVtJw/+fbWbrbxFd3j6Z/Utt7dZ9a8BvXD+bcvvEdfCg3LH0Rdv0gC9Yh5Nx6pRZ8TrmNKgjiB1AZM57b1sShjcvlsztGEly1Er6+UxaImvJX1sVfzd2fbMbh8fHSFQM4r18H13RbZe/2ls/BvEc+/mA0BghJkDdjAiIkgUU1Kj4u8FMi4kjN7MP0YalMyYs9ZHHJ5w+woayJX/Pr+CW/jnKzgyl5Mfxr+oBDQs49vgA/bq9h9R4TG8ua2V1vpb1hWKWQGJUZyfn94jm7d+xRRZy06WPAx9aGrWyq38Tmhs1sbdjaJnS1I9JC0rg482Iuzb60VcTm+z3f88TyJ8iLyOONqW8cEvp9MMf7gej2u1lYvpB3tr3D7qbdJBoSubXfrVyQfgHB6uBWL/SI9AjWlJh5/drBXND/0HujssnB+BcWc/PoNJ48Jx0+vw6KF8hvhqVC9lQoWyUv0FzwbxiyV05k5X/hlyfh/Bdh+O1d7/j692D+/TBkBjSXyznYxgQY/wie5JEsNm1mXsUiltetxS8CaISglzdA/4QRpGWeg8PnxOqxYvVYaXY3txpinoCn9RJZYVlMTpnM1NSp5ITndLq4Y/faqbZVU2WrotpWTXhQOFlhWaSFpHUp5P5AfAEfHr8HjVLT7oLevqiXsdlRrCs14w8IbhiZxp3jM/hxWw2vLSqi0eZhSl4sj56be9TCmSeCkzmpE0JQ1FzEiqoVrKhewYa6DXgDXoKUQQyNG8qYxDGMiBtBamjqIalDPezHXVSE5bv5WL6bh6+6BmVoKGHXXkPEddehiorC7fCyYk4RBStrCIsNZtINvYjP6v7lJX0NDZRefz3+pmZSP/qIoNz252R7mvdw5fwrGRo3lKuUVzFm9Dg2/VLGpl/KCQQCDI1awFBeRxp5l5zK0l5kTgeUNtp5f2Up768sZXxONDOvH0yw5vcTrdXDyedMN6xjgYHAACBbCHEEM4uTzykxrA8mEICWKjAVyfnZpr2buVgWRAscECoWkiiL38Tkyd7umDyIygV118JrTDY3k15aQl68kc9u79hTc6Q88MVm5m+t5of7xnY44Zm7qZIHvthy2FDltp0thv8OhklPwbiHu9SP3/LruO3D9fxren+uPMBrHQgILv3fCupa3Cx6eAI6TTurzwXfyXUXZ/zQbp5QV6kwOxj3wiL+NDmb+6fsf6h9ub6CP8/Zyls3DOHsruSWd4H2BpPbP5S98r8+OI5oo5YGm42Spjoe+XoFKpWTh85Lxum3YvFYaHHL+YYWj4VmdzN2j1zz2+614/A68Av/kXdKKECoCdPp0Cq16FQ6lGgprPUQGWxkeFp8q6cpWBWMTqVDIPA7zPjz5+K31uAPS8ZvTMBviMVviEJICiS3FYXDhMJuQtFSjdZWh1YIrP4QvJoYBrp2olVHszvjPspFDl+uryYhXM3fpuUSH65uDR0+MITY6/fiCXhaX1dKSlRCoPLYUbmsrN9eiqm6jsmxSoYZvRhs9QRbapCstSg4IFpAocYfmYEtMgNbVA7WyHSsYYlYlSrZsBEgkHNQl+02M3eDGaPGyBPnDmZidhoaycAX6yt4a+keaiwuQoJUDEoJZ3BKOINSwojQq6m21lPZUkO1vYZicw07auuwuK1IChdRIRIxxmDijEYSQo2EaINJMCSQGZpJuDqZZrsKh8eHTq1Ep1ESpFKiVvsoaF7HoopFLKlcgsVtAWRjeUD0AAbEDCDFmEJ4UDgRQRGEakPx+r2UW8spbSmlzFLGutp1rKldg0pSMTFlIplhmby55U2GxA7htcmvoVd3nupyoh6IQgiWVC7hra1vsa1xGxISiYZEtCKB/DI9940fzOfrC3H67EwbHIVOreX+wfe3Gox/+y6fD1eVsvThsST8dDvs/gkmPgF9LpEXOiVJLqE152ZZhGzMA9DrQph1DuScK0e+HMn4KgR8ey9s/hh0ETD2QVoGXMXMHe8xr3geLZ4WYnQxXJh5IVNSptDLD+ofHpE1BDInw9WfHvIc8AV8VForKW0pJTUklfTQQyNJugtCCJ78ZjufrCnnogEJPHJ2bps0D7vbx3srSnhzyR4cXj/XDE/mgSk5x7yodDw4lZM6h9fB+rr1rYZ2WUsZIIfBp4WktUYt7NsnG5NPmcJ+d0QEAjjWrcf80YfYFixEUqsJnXYxETffgjYjnYp8M4s+3onV7CI+M5S8s+LJHByDJqj7fYeeigoq7rwLb00NKbPeJXjQoHbbef1ervvhOmrttXx18Ves+HI7zfkq7C1essK2M0r1X0JC/HDJTMg5p2vX9gX4Nb+OT9eWsaLIhFIhccWQJP42rW+XRU176OFoOdMN678BeYADeFEIse3YunjE19cDS4C/CiHmd9a+WxjWh8Pvlb0XpiKoz4f6AqjLl70k/r2eCEkhe7Zje+81uvduEelySOEBPDpnK19trOSHP41tX8X2KDHZ3Ez+9xKyog18eeeodr2xN85ay54GG8v+PLFrBv1vf5VLNzywA0I68DYexL7SOM1ODwsfmoBKIbG2xMz/FhezZHfD4cXNXBZ4Ph3G3A+T/69L1+uIG2etpbDOyvJHJ6FUSHh8ASa+uJhIg4Zv7znruC1otDeYVDU7mfLSEjz+AP7AgTnaMOfu0QxO6USFfS9CCDwBD3bvfkPb4XPg9rvx+D24/W5587nbvFZqamLBlgKyQt1khXlxSrCqSYXF4yYnXoNXuFrP1Z7xrpKUKPeGdSolJUqFEgmp1TAVQuATPjx+N/7D5EyeMISECGgJVeuJCtLg8Nqx+hzYu5gr2S5+HX53NBGaZMZn5BEXqqTWUUOtvZYau7w/MNdzH2qFBiXBeL0q+X3Jh6TwIklekPb/3we8IQi/QX5f8st7pR1J4UMhgolWDqJ36CjGJo9gaHIyqRHBXY6oKLWUMmf3HL4p/gaL28K4pHG8NP6lDsPED+ZEPxCFEKyvW8+Gug0UNRexrHQbDlELUmDv+wo0iiC8wsHrk19nbOJYvttaw6NztnJe31j+HfSOXC6rIw+03wc/PAwb3pNLaBni4K6loOva76wNPjfs/B6yprDCtI2nVz5Ng7OBc9LOYVrmNEbGj2ybNx4IwLp34MdHYPBNcPGrR/ktdQ+EEDTY3IfNwzTbPbzy224+XlNOsEbJHydlcX6/eLZVWthY3sSGsiYabR4ePie3y+UHj5XuNKmrsFawuX5zG8HMKtv+kqIahYb00HRywnPoFdGLvMg8ekX0wqjpPhEApwp3SQnmDz7AMvcbRCBA1B13EHXnHXgDCrYvqaJgZQ3NdQ7UWiXZQ2PoOyGJ6OTu8b05Nm6k8p57EYEASf99Ff3w4e039Lp4eeljzKr8jX+HTUZsGUxhdRIx6kLGGN8lPkULA6+D/le21Xs4CCEExQ02VhSZWFncyKpiEy0uH4lhOq4elsyVw5KJDenJp+7h5NCdxuATYVi/KIR4WJIkDfCKEOLuLh43C7gQqBdC9D3g9XOBVwAl8I4Q4p+dnOdvgA3IPyMM647w+2SPdn2+bGjX793MJbBP8EoVJIePx8ie7UIphevm2bhk7GAeP4zA1NEyZ0MlD8/ewjOX9OX6kalt3qtvcTHyuQXcMzGLh87O7cLn88LLfWSBjGs+O6J+LCio49YP1nPDyFS2VVnYXNFMpF7DrWPTuWtcJ+XEZp0r12O8c8kRXfNgftxWw92fbGTWjKFM6hXLR6vLeOqb7Xxwy3DG5xy/MmwdDSYLCupYvcdEqE4tb8EacmON5MadwEmApQrm3ikL9h1kBNpEEDWp08i+4H55AUgIcJgQjYV4d32PtPI1lLG9UVz50RGJx3kDXtw+N9urGzC5mglIdvySDU/ACpJArVC3iiZpFJpWtd59+wNfVyvUCARev7dVHdjpc9LsbuG/i7exobwavc6LO2BnXC8jUSEBnD4nwapgWcF372aQVITYTRgs1RhMJQTVbgdrNRKASocvrh+22N6YwtP4uDjAysoakqLtRIY30+iuwOQyoZAUROuiidfHE6+PJ84Q1/p3vD6e6OBojGpjm3Bcq8vL5opmNpY1s6nChKRqRmdoAHUdTqpwB+woUCGhAlQoAnqCfX2xtSRT1uimssnBvnWYYI2SXnFGrh6ewhVDkrq0EOT2u9lSv4VBsYOOKAT1ZIfRDn3mN8Zmh/N/l2SgV+t5+Isd/FxQSUjO3zgndRrVxeewaFcDA5JC+TjtJ4zr/wvjH4WJjx/uxLDqNVjxiuw5TpYntQvKFsg5zqFpXe6jzWPjxfUv8lXhV2SEZvDsmGfpG9X38Af99v9g+b/h4v+eFjWxjwdF9Vae/b6ARbv2p25oVAr6J4bi8vnZXtXChf3j+fu0vsdUmq8rdKdJXXs4vA72WPa0GtuFzYXsNu+mwbn/u0syJLUa2b0iepEXkUd0cPcvGXoi8JlM1P3zeVq++w5tdjbx/3gWXb9+cpWPYgsFK6op2lCPzxMgMTecgVOSSe0TiXSKVK4t382n5vHHUSckkPTGTLTpB0WmBPyyZsO2L1lW/CP3RARzZX0kaWW30+KPY2DEj4waq0EadK1cMvYwBAKCrzZW8vKvu6m2yNoOiWE6zsqK5Ly+8YzLie5R++7hpNOdxuATYVi/BswSQmyUJOkNIcRdXTxuHLJB/OE+w1qSJCWwG5gKVALrgGuQjeznDjrFLcjh55FAENB4RhvWHeFxyHVR6wv2Gt075L9tta1NRFAY0r4w8pi8VsP7WPO3hRBc/+4aNpc3890fx7SpTfjOsj08830Bvz04nqyYLtQsLJgPX1wH13wOuecdcT+mvb6CrZUWkiN03DE2gyuGJnetVvOSF2DRs/BIEeijjui6B+L1Bxj13EIGpYTx32sGMf6FRaREBPPlnaOOawmPbjOYVK6Hz6+V779htxKIyuHplV5+qjWQoaznbt1CxnuWIvndEJkNtnrYG3oMyCvk578Imq6pcJ9svP4A93++mbWlZt68YUiXvf6ttFTLIbtlq+SFh7rtgACFikD8QBSpo+T6nymjsKk0aFXak54f6fL6Kaq3kV/dQn5NC2tLzOTXtDAuJ5p/XtavjV7A8eRk3sOFdVamvryU5y/vx1XD5JrUNRYnk15cgiH1fZyijkDFozx0di43K35A8cvjMORmuPDlroV1C9HaLt+Uz1Xzr0Ilqbiq11Xc1f8uwoI6HmPdfjfzi+fz5tY3qXPUcVOfm7hn4D1dE6QK+OHjy+T769afIaH9ENAzkRVFjeyuszIwOYw+CaFoVAp8/gBvLt3Dy7/uJkKv4fnp/ZmY27GA3rHSbcbhI6TR2UiBqYCd5p0UmOV9hbWi9f3IoEh6RcpG9j5jO8mYdNQl2U43rIsXU/v0X/E1NBAxYwYxDz6ApJJDwF0BaC6CAAAgAElEQVR2L/nLq9m6qBJ7s5uw2GBGXZJJxqCTtxghvF4aZ86k8X8zCR42jMRXX0EVfsCzyeuENW/Km7Wa3cGh3BgbwYimc8krOpsgg4azb+3L7qrNXbp/d9a28NQ321lX2sTglDCuHJrM6MyoQytz9NDDSaY7jcEnwrDWAfcAvYHZQogfj+DYNGD+AYb1KOSQ7nP2/vsxACHEwUb1vuOfBfR7r+0ELhXi8LGiZ5xh3QFrdxTy0sff8tjQAAM11fsN7wNF00ISZQ/3PrG0iEzZexiWckhIeUfUWJyc/8oy4kN1fP2H0a3G7IX/XYZCkph375iudfiTK6F2K9y/vUslHQ6mwuxgV62VCbnRHZbeapeqDfD2JLjsHeh/xRFf90Ce/2knby3dwy1npfH2sq6XJDsSusVgsuULWYk7JF5eCNlba7y+xcV5ryzD5vbx0/3jSA92w6aPoHSFfE/tU8GPyobwtFP7GbqAEAJ/QBzZ/dQRzmaoWCsb2+Wr5PtuX2pHdC9IGQkpoyF1FIQmn9AqAR0RCAg+WVPGcz/uRCFJPHlBHlcNSz7utV1P5j28L3Jk8cMTSIvan//9+qIi/rN2FkFx3/HupK8YrvbAG2Mg70K44oMuj38H8szqZ/im6BsuzLiQuUVz0av13Nn/Ti7Pvhy9Wt/6PVrcFr7Y9QWfFnyKyWUiLyKPx0c8zsCYI6xpbTfJZbuQ5Iibw4Rx/l7YXmXhoS+3sKvOyj0TM3n47NwTUpu4W4zDxwmrx8ou8642xvae5j2tqu4GtYGc8Bx6R/Zu9W5nhGWcsUJpfquV+n+9QPPs2YRcfBEJ//wn0gFCqn5/gOIN9Wz8uRxTlY2h56cx/ML0E+69tq9aRe0zz+IpLib00kuJ/39/RdLsjcwI+OVqFwufgZZKyJhIY79LuLboEyIb0xiz5RpS+kQwZUZvdEbNYe9fIQSVTU4+Wl3Gu8tLCAlS8dh5eUwfknTMAqw99HC86E5j8IkwrO8VQry29+8wIUTzERybRlvDejpwrhDitr3/vgEYIYS4t5PzzOAwHmtJku4A7gCIjo4e8uWXX3a1i6ct3+/xMHu3l9cmBWPQ7B0MhUDrbkRvL0NvL0dvLyPYUUmwoxqV39F6bEBS4dTF4dQl4AhOwK5PxWZIxxGchGjnYbq53sd/NrqZnKLiht5aqmwBnlju5NpeGs5O6/zhq3U1MnL17ZSnXE5JxvXH7TvoEsLPWStuwhQ5lJ159x/TqeodAf68VFay7hOp4JFhx9/jZ7PZMBi6EAHQCeHmzWQVvYsi4MIVFIsrKBanLg5zxCBsxqz2DxIBMvZ8RErF1zSF9SW/96N4NW1rflbbAti9guzw06dUyalA4fdgtBYRasnfuxW0/gZd2kiawgdRFzue5rA+cpm+k0iDI8Cs7W4KzAH6RCq4pa+WSN3x81gd6T1scQscXkG84cj78L/NLnY3BXh5QtvSSgEh2Gap4x3Ls1wRcQV3la8iwryJ1SPfxqc+8vQJT8DDk5VP0je4LzdG3Ui1p5q5TXPZ6doJgAIFQYogdAodVr8Vj/CQF5TH5JDJ5AR1rtbdEcaWQgZt+gvNYX3Z1u8pRI9IFR6/4OMCD0srfYxKUHJrXy2q42wQHK9xuLviFV5qPDVUeirlzVtJlacKj5AXA1WoiNfEk6RJIkmTRLImmQR1AlrFqReWO17of/gRw7x5OMaNxXrNNYcsdgb8gpr1guYSMCZB4ggJpfr4G54KsxnjnK8I2rgRX1Qk1iuvxNNfLumn9DmIMG8gtewrDPYSrIZMijNnUB/ai1frXqXGW8MdJX9DmHXkXCyhUMr9O/D+FUJQ1hKgwBygqNlPUXMAi1u2BcYlqbgyR7N/DtlDD92E7jQGT5w4sUPD+mifyAcm1z4O/Pkoz3PUCCHe7+T9tyRJqgEuUqvVQ7rLKseJZHbVRpLCm7nw7ImdNxZCLjlkKgJTMQpTEXpTEXrzHqj+EfxuuZ1CLXvX4vrKeTmx8n5CcAR2fT5vLyvh8rH9qXJZUCr28MDlskp1pyz5FxAg9ZInSI04BSq2prOJK11O3Pjxx+wp/LZ6NSuKTPz9qpFHHj7cBY55lc7ZLJcG2vqR7D1OGIGuqQyatkLtb2SUfynnuGdNaXtcIADfPwAVX8OQmwk//wXOOoYSZT0AnL3/z4BfjigpW0VQ2QriixYQX/ubXH6p3+XQ70r5N3eSPNmXnyv4ZG05z/1QwNOrvTx+fh7XDD8+3usjvYf/9PkmlhU2svqxCUekNiuE4JEVCxjXK5KJEw8NlZ4oBD99/QENyj3ENKyEsQ8zZvJFXT7/gXxX/B3OCid3j7mbYXFyPftruZY1NWvYYdoh1yj2WLF6rehVeq7qdRU54UdWI7Z9JkCimojv/sT4gifg/BcgfdxxOO/pzdRJgtcXFfHiL7tRBOuYef0QQoKO33jVnbwlJwt/wE+ZtaxNKHm+OZ9VtlUAKCQFqSGp9I7sTe+I3vSO7E1eZF6XKgV0R8T48TTExsLbb5OUmUXMnx85ZPwTkwRbF1ayYk4hDav1nP+HfoREHp8FdU9lJeYPP6R59hwIBIi8749E3nA1CkcN7FkMu3+GspWyvklYKlz+LsY+l9FfgkeWPEK5p5wXhv2H4tUSAyYnc9bk/QvmCxYuQpvcj5931PJrfh1VzXLudEpEMJN6hzM4JYxRmZFkxXQPobYeejiY02UMPlrDWiFJ0lhgBXCssWhVwIGV7ZP2vnbMCCG+A77Lzc3t1uXAjhfbqiz0Szx8PdlWJAkMMfKWOrrte/tE02q3yVvddrne6pYDBMYMsTwWns7IUAM75syjRRXHHUkJRDuKQYqSS8kcLrx753w53/RUGNUAmZNg+1fyZ+tEyKMznrqwN5vKm0+IUX3M7PoR5j8g5zufdT9M+AuoD5gE2Brg40vl+r3XfA6ZexdlAgH44SHY8D6MeVBWUD8FocpnNAqlfO/F9YMRd8i567t/hK2zYfVMuVZydC/od4W8had2fs5j6Y5C4oaRqUzIiebRr7by+Nxt/LCthucu60dyxKH5dUIIlhY28umaMkKC1JzfL56zsqKOS9mVHdUtmO0eFu+qP6KydSWNdhqsbkZktP9YkiSJsxLPYt6u2Xg1BtSj7jnqPn5V+BUpxhSGxrZdtB4RP4IR8SOO+rxdYsgMMMTCj4/CBxdBn8vgnGflGuy/UyRJ4t5J2SSE6fjznK1c+cYq3p0xjMQTpBvwe0CpUJIRmkFGaAYXZFwAyL/7Wnttawh5gamAdTXr+H7P9wBISCQZk8gOyyY7PJuc8Byyw7NJMaa0VbvvhkiSRPSDDxBwODC/9x4KvZ7oe+85pM2AycmExwXz8zs7mPviRq77fyNRtVfes4s4t27FNOs9rL/8AhKE9g0naohAY30BXnpsf8PoPBh1j1zqL2kYKFU4vA7+vvrv/FL2Cw8PfZio8gyKAnvofVY8Qgg2ljfz7eYq5m5wYPWsRqNSMC47ij9NyWZCbvRh1fl76KGHI6dTw1qSpDwhRMFBLz8C3A3MAL45xj6sA7IlSUpHNqivBq49xnMCIEnSRcBFCQln/mTD4vBSbnZw9fDkzht3hlIl52FH50K/6ftftzVA3V5ju3E3CnMJ41XbmSzVgh+oB2buO4cGbpgLae3kW9vqoWYLTHry2Pt6tGROkvdFC47ZsO4VF0KvuJDOG55s9iyBz66Wowyu+ax9sSNDNNzwrTw5/+wauG62/H/2w8OwfpZct7fHqD45aIKh7+Xy5jDDjrl7c+j+Lm/JIyF7qrz4ET/wqHKCu0JyRDCf3DaCT9eW84/vC5j00mIGp4QzLieasdlR5MQambelmneXlbCrzkqUQYvb62f2hkqMQSqm5sVyy5h0+nZ1ke8g3D4/JY12AOZuqjoiw3pNiRmAEekd6xyM0afxBQE2DbiE4UeZo1xqKWVD3QbuH3z/Ccnn7RK550HGBFmlfPnLsjfr7L/D0Ft+17/XywYnEWMM4q6PN3D2v5dwz6Qsbh2TjlbVvY260wVJkog3xBNviGdSyqTW1xudjeSb8sk35bO7aTeFTYUsrlxMYK8EjlapJSM0o9XQ3md0R+mOXkD0RCBJErFPPE7A4aDxtdfQpCQTevHFh7RL6RPJeXf25dv/bCZ/RTX9Jx7d3Mv09jvUv/QSiiAVkb1dhGeYUcchV9YIHS7rb4Qmy1UIDlpc3WXexcNLHqaspYx7Bt7DZenX8OXHa9EmBPP25grmb62h3OxAq1IwIErJjMkDGJ8TjV7bkz7SQw8niq78ur6XJGkJ8LQQohxgr1jY60d6MUmSPgMmAFGSJFXuPee7kiTdC/yMrAQ+Swix40jP3R6/J4/19mpZfbnLHuujwRANhkn7jVLkG2jJ/2fvvMPbKs83fB8NS5a89x6JHTuxkzgbkpA9ISGEPcumrEJZhbZ00ALtr1CgrLJ32SvMkD2cvaeTOE7ivbe8bZ3fH59lx/GSHQ/Z+e7r0iUsnXP0OUjyec77vs9z8BSrtuzkjzN8MNYWQ0WBiIbZ92nbwjplrbg/s/W4L3ELEjngKatFpvVgZMMz4BoIt60GfQdXpc3e8Ktl8P4i+PhK8f8l6TuYcj/M/ss5fZLeb5i8YMKt4lacCge+gEPfNotso4do//WPE4aE7iHi5hkBPdCurygK100KZ/owXz7amsbG5Hye+eUoz/xyFK1GocGqEhvgyrNXjGbxaJE/v+l4AT8fyGH5oRx2phaz4Xd2jKS0QUpeBQ1WlWAPZ1Yn5VFaWYe7yb7faduJQnxcDAz1bb8VdeKRVehUlUSvYNpJge2Ur49/jVbRsiRqSTeP0EPonUUXyqir4McHxS11Myx+AQznbkvn1GgffrrvAv7+42H+tfwon+1I548XDmfuCP+zuhCyL72ElHwL8+ICcJHipAU+zj5MC5nGtJDmsYTq+mpSSlNILk5uuiVmJrIsZVnTNl5GL4Z5DmOM3xjG+I1htO9oTPr+daBWNBoCn/w7NSdSyHvmWVznzEFjar2mkFgvAqPc2f1LGnFTg9Hqu9CtU1tJfeJ75L/4Ei5B1QRdUIV29BIYcz2ETwFN+8dSVZXPjn7Gv3Y8g0HjwkjNo7z7oz8fF67mqgoDP9ZYOLK+kClRPtw3O5r5cf7s2rqJGSMDu/PPIZFIuoA9fxligV8D6xVF+Q54UlXV/E72aRNVVa9p5/GfgJ+6c8yOOJcq1gcyhbCOD+pFYd0O0+MjmB4f0fLBtC2iDdna0LqylrIaTD4QMLrP1tgmQ2fB9jegtgKcHGwmrL4WTm7oUt5zCzJ2wqmNMO/JjkW1DRdfuPF7eO8iIaon/wbmPCFFtSPgGQ7THhY3Sz6cXA8n1or3R9L3NGXag5jPnv0nIbR6oKId4mnisYWxPLYwlgJLDZuOF7AvvZQZMaJ6fbpImRXrz6xYf6L8XPjHz0corqjtVrbw0VyRYvDQvGE8+Pk+fjyQzbWTwjrdT1VVtp0sYlKkV/viKf8YpkPfMi5mLJvyd/Fgl1cnctWXHV/G9JDpjlNt84qE676CTc8Ll+DsfXDlB6LqdY4S5m3izV+NZ2NyPn/7/jB3fLiLyUO9eWR+DGO6OLaTWVLFa/uq2bp8EwCuhkNcMT6UGyeHE+7tYH87HAijzkicdxxx3nEtHi+qLmoW2yXJHC48zOv7X8eqWtEqWmK9YpkcNJlpIdMY6TOyX1rIFa0W/0cfJfXa6yh8911872l7bGTCRZF895+9JG3JJn5acMcHVVUoSBbJGXs+JH+jFbXBjP+D96KdczsY2+98q2uoY92p3SxP2ciu/M0U1idTbxlGcdaVNJi8mRLlQxTVaOqr+ef9kxga4Cor0xJJP9Dpp05V1VrgJUVR3gTuBbYrivIR8IyqqmUd792/nEsV6wOZpYR4OnfrRLZXiF0kZpjTt7Wc4bZaRfv10JkdXpHtE6Jmw5aX4VQiDJvfv2s5ndoK+PxXcHwVABOdg6BykagkR82xTzBtfE5UNcfdZP/ruvjBzT+LiKiYhVJUOyIuvmI8wzaiUV8L5VlQmgElabD9Tfj2LtjyKsz7W4vukrPFx8XAkoRgliR0fPJoawE/lFXG1OiuC88jOeU4aTUsHh3EK2uP8+2eTLuEdXpRFdml1e3OVwOw8VnQOzMl5lKeO/A6eZV5+Jm6ln28IX0DRdVFXDbssi7t1+toNHDBQxAyEb66VUQKXvgvGHPDOf1ZviDal5/uv4CPtqby0prjLH11M3OG+/HA3GHEdXIhuqKmnv+uS+HNjSewWq3cOzOKqdE+fLI9jQ+2nOLdzSeZGePHZWNDmD3cryl6sjvUN1gpq66npLKW8up6vF2cCHJ3HpRxR15Gr1ZeBOW15ezL38fu3N3szN3JOwff4c0Db+Jp8GRq8FRG+Y4ixDWEEJcQgl2C0feBkaZp7Fhc582j8O138LjiCvR+rb8rQmI9CRjixq7lpxg+ORDt6R4TqgplmeIc48R6YUBWngWKlhrf2ZScOIznNVfjtOihxs1V0ouqOJxdRk5pFbnlNZwqSedg1aeUsB80wnDMWh1EgOYqlg6/kplL/RkR6EZ1RR3vPbaJuAuCGRXugH4vEsk5gt2Xs1RVrQaeVRTlv8D9wC5FUV5XVfXZXludxG4OZHTBuKwviJoj5qyP/NhSWOfsh8qC/m0DtxE2GXTOQug7irCuLIKPr4LMnTDvKdDoqNr+OabdH4rq+qS7YOE/Oz5GXhIc/RGmP9b1dlCzD8Re2P31S/oWnZNo/7ZlhI+6Gg59DaufgA+XwtDZMPdvwtW/j4gLElWXg1ml3RLWx3LKGeJrRq/VcOnYEJ755SjpRZVtGqidztaThUAH89WFKaKl/vx7mBI5j+cOvM6mzE0sjV7apfV9lfwVfs5+TA6a3PnG/UHkBfDrjfD1bSJ7/vB3ojXcPaS/V9Zv6LUabp4SyRXjQ3l/8yleX5/CRS8mMneEPxMjvIjydyHaz4Ugd2eS8yxsTM5nY3IB204WUl1nZUlCENPci7lsfgwA5w3x5g8XDud/W1P5ZEc6a47k4WLQMW+EP4sTgpgU6YXJqePTq5LKWtYcyWPl4Vw2pxRSWlXXahsnnYYIbxMR3mbCvU0EeTgT7OFMUOPNw1k/aIS3q5MrU4OnMjVYjI+V1pSyOWszGzI2sDFzI9+f+L5pWwWFYJdgYr1iGeY1jFjPWEZ4j8Df7N/j6/J76EHK166l4KWXCfz731o9rygK4y+M5IeX93F0zSFGuG4QaQ/5R8WtprH+5OwlxneGTIdhC8h+7GlUwwl2Tb+UIyuOsi+jlAMZJRRXNr4PlHqM3hvQ+6xFUTSE6M5nrN8kLoyayviw0FaeAUe35mCtV4mbOvg7NCUSR8ZuYd2YPx0LxABhQDnwNOCwwvpcaQW3GZddNaEHjMt6CqMbRE4X7t/znmyumKSsFvc9WEnrNnojREwR7bRT7uv/E8+yLPjwUuHIfsX7MEIYphyojmXGlPPE/OSON4WDtNeQ9o+T+DzozTDp1320cInDoNGIavbwxaJ6veEZeG0qJFwHs/7YJ67RHiYnQjydOdg4ntJVjuaUMzFSVJ2XJATxzC9H+XZPJr+ZHd3hfttOFOFp0hPt107O5cGvRAXp/HuJdvHHz9mPTVldE9Y5FTlsytrErfG3onPk/GhXf2FKuOMtWPUXePV88T089lfndPXaxaDjnplRXH9eOG9vPMEnO9JZeTi36XmdRqHeKkYrhvqauXpCGJeMCSYh1IN169a1OJa/m5EH58Vw/5xhbD1RyLK9mfx8MIev92SiKBDhbWZ4oCvDA9zwMOkpr6nHUl2Ppaae43kWtp0sosGq4u9mYEFcAIEeRtyd9bg763E16imw1HCyoIKTBRWcKKhg/bF8auqtLdag1Sh4mZ3wNjvh42LA1ajDbNDh0ngzG3S4GHW4GLS4GPSYDVrMTuJxs0Er7p10aB1QnLsb3FkYuZCFkQtRVZWCqgLSy9NJL08nw5JBSkkKx4qPsTptNWrjOEy0ZzQzQmYwPXQ6I31GolHOvivOKTwcr2uvoejDj/C84XqMw86IzKurIqxhDX7mOnYtyyHG509oXbzAN5b6+CspdI7guDGe/XUhnCqs4uTOCrQf/sCf16zmw9j5fPLTKbQahWH+rswbEcCoUHcwJvPR8VfJsKQxL3wej0x4hABz+yaOqqpyODEL/0g3vIMdI+dXIjlXsccVfD8QDKQBR4AkYDXwMnCsV1d3lgz0VvA9acWAcJ127iDKoU+My7rD8EXw/f3i6q1/44yVzYXbpWvtl73G1AdFhfiNGXDlhxB+fv+so/gUvLcYqorh+q9a59LqjTDrT3Dwa1jzFFz+dvvHOfAlTLpTGGBJzk10Bph8LyRcCxv/LbodDn4lolom3NrrAjsuyI3DWV2fFCqrriOrtJphAaLTIsTTxMRIL77Zk8m9s6I6NJ7amVrEhAiv9it4ySsheCy4BqAAk4MnsyZtDQ3WBrtnOHfk7MCqWlkQuaCrv1rfo9GIi3DRc0Xl+vv7hH/ClR84nqdEH+PurOfBeTE8OC+G4opajudbSM61cKqwgihfF6ZG+xBkZ0yXVqMwJcqHKVE+/P2SeDYdL2B/RilJ2WUczCzjpwM5LbZ1NeoIcDNy5/QhzB0RwKhgd7uqzqqqUlRRS2ZJFVklYuyh0FJLgaWGAksthRU15JZVU1FTT3lNPRU19VjVTg8LgFGvwewkRLiviwE/NwN+rkb83YxE+piICXAjzMvUbwJcURR8Tb74mnwZ6z+2xXOVdZUcKz7Gvvx9rM9Y39RC7m305prYa7hhxA1nbYbmfeedlHzzLXnPPEvYm2+IC3RZe2DPR3DgS5SaUhLcFrKi4g5e9PqcXWZXTuZUkHW0ClUFqASO4eNiINLbmV8n/UiNmyczHr+PG0N8iPA2N40R7MzZyc2/PECYaxivzXmNKcFTOl1fTkopxTmVzLwh9qx+T4lEcvbYc8n9EuCkqqp2fkU7DraKtXdg5/N5jkZicgE3vLMNVQWNAhE+ZkYEunHNxDCmRLVsr7QZlzmcsB62EPgtJP0ghHV1mZi5nvyb/l5ZMxFT4PbVImrq/cViJnH8LX2/jk0vihb5m3+GoIS2t3ELhPPugsTnRIU9sA3zt80vgaIRokoiMXmJfOOJt8Pqv4kZ443/Fq6zIy+DEZeAs6e4oGPJFbfTW8u7SXyQO78cyqW8ug5Xo/2zkMdyygGIDWgeYbh0TDCPfX2AfRmlJIR6tLlfeXUdqYWVXDGuna6TyiLI2AHTH216aErwFL49/i0HCw8y2tc+I8W08jQ0ioYItwj7fiFHwCsSfvWdqF4vf1Rk1l/7mbj4IsHT7MQEsxcTIs7+QqRBp20y8bNhqamnsrYeN6Meg07TbVdyRVHwdjHg7WJgVEjbn4PTUVWVqroGLKdVyitqGqioqaeiVvx3ZeO9+Lme8up68strOJpTzsZjBZTX1Dcdz6jXMMzfldEhHswa7sf5Q7zPaqa8pzDpTST4JZDgl8CNcTdSWlNKYmYiP538iZf3vswnRz7hztF3ctmwy9BrujeXrfP0xOfOO8n717+wvPkY5rr1KHmHqdMY2GKYwjvWKayvieEGrRXDMYXK2DomRHgS6RNKhI+JIT4uRPiYcDXqKV+1ioy0YwQ88QQJ41t3ni1LWYZZb+aLxV/YfUFg76p0nJx1RI1zkIKFRHIOY4952Ym+WEhvYKtYu4dED6iKdV55Nb/9bC9DfV14eN4wkrLLScouY+uJQhKPF7D5sVkt5rcOZJYS7OFAxmU2XP1F9uKRH2DGo8LF2Fov5j4dCd8YuH2NMPz54QGR033Rc33bMpm2BcLOb19U25hyv8iXXvUE3PB1y+fKc2H3h5BwTZ+0/EoGEJ4RcPk7MOMPcPBL0dXwwwPw48PiQoz1tPlOnREufhlGXdHtl7MZmCVlN7d128ORRmEdc1ou/MKRgfz5u0N8szujXWF9tEmQt+Oqm7IGUEX1tpGJASJsa2/eXvuFdVkageZAnLQO9l3bGbbqtZMZlt0NX94ixk20DtzOPkiwtWX3NYqiYHLSYWqw4Gc5IP6uafViDMvOtImKmnpS8i0cySnnaE45R3LK+HJXBh9uTcVZr2VKlA/TY3yJDXAl2s8FD1P/fy7cDe5cNOQiLhpyEXvz9vL8rud5attTfHD4Ax4c9yCzw2bbf3HDaoXsPZC8Es+aXyg215P75pdUznfnY+ut/GQ9nwivQMYM92RJqDuBFSq7PkpmUZrK2OHexE8LRndGt2Hhm2/hFBGBx2WXtnq52oZaVqeuZnbYbLtFdX5aOSf25jNxcSRORvl5lkj6m3PiU1jbIK7enk1+ZV/RYFV54LO9lFfX8b/bJhET4MqCeJE9uONUEVe8toWvdmVww/kRTfsczCxlVIiDVattxC6ClX8SjsUpq8HJBUIndb5fX+PsAdd+Dst/D9tfh4TrIWRc37x2ZZFol49v/Ye2Fc4ewvl35Z/EhQpby3j+Ufj6diGQpgzSXG7J2eMTJXKPpz8qjAQPfycudrn4i/EMk7eYy/76NsjZJyLXuhF1ExfcaGCWWdolYX0stxxXg44g9+aIOHdnPXOH+/P9/mweXzQCvbb13GRStmg7Hx7UjrBOXiF+t6AxTQ95Gjwx681kV2Tbvb708nRCXR3Iy6KrjLkOaspF5fq7e2HJq/2fziDpebL2wNbXxAXbktTWz3sNgai5QmQHjgLXwDYvJJsNOkaFeLSokFfXNbD1RCFrjuSxOimPVUnNM+o+Lk4M8XXB3VmPUa/FWa/BWa/Fw+REgLsRfzcD/m5GQr1MuHWhk6W7JPgl8N6C99iYuZHndz3PA+seYFrINP4w6Q8Eu7STblBVLC7EJa8Ut8oCVBQyzXEkJoxi0qbD7M+dz3l338Pvon1bFTTCA93Y/v0JNn15nD0r0kkXOf0AACAASURBVBi7IJy4qUHonLRYKyupOngQ71tvRdG1Pv1OzEykvK6cBRH2j5ps/+EkBpOOUbMG8PeSRDKI6LKwVhRlcWMleMBgBU4VVhLp4/hzZa+uPc6m44X889KRxAS0dHQeH+7J6BB33k48yXWTwtFoFEqrRAvkleMd9Es19iIhAo/8KOKjIqcJJ2NHRKOFiXcIYV1w1H5hXXBcOH8Gj+1827ZI3ybuw+yc7554B2x7DVb9FW5dCdteF/9tcIGrPup+9rXk3EFRxChBW+MEEVNh+WNirCD3kKh0O3ctvsXP1Yifq6HJ/8FejuSUMyzAtdVF0AtHBvLjgWwOZJYyto0M4sPZ5bgZWwryJpoi/ma3uEigKAqB5kCyLfYL67TyNOaHO0iCQHc5707xfbX2KZEasPBf57Sh2aBBVeHURhG1eGItGNxErOW4GyFgtBDQNeXi73DyStj9vvhbB8Kx2j9OdG/VVoAlDyryoKIAfGOFIWLsInD2wKjXMiPGjxkxfjxxsUpGcRXH8ywcz7OQnFfOyYIKMoqrqK5roLqugcraBsqq6zhzmDDc20R8sDsjg90ZFeLO+HAvnHQ9f5FHURSmhUxjctBk/pf0P17Z+wpLly3lrtF3cf2I60V7eF218KDY85H4e6w2iO+8qDnk+U/j/p1ebMlRuOWSSGZ7vcfYn78n8qEbMZpbi/PAoe4s+e0YspKL2fbdSRI/T2bHDyeJnRzIUPdCaGjAeeyYNlYKy08ux8PgwXlB59n1u+WeKuPU/gImXTwEg/M5USeTSBye7nwSnwIGhLC2zVg7BUSxP6PE4YX11hOFPL/qGEsSgtp0+FYUhdsuGMJvPtnDqqRc5sUFcMhR56tteA8F3+FCCJakweT7+ntFHeMZDhodFCR3vF1DnbhYsPNtUTnW6OG3B8QcdFdJ2yL2D7ZTyOuNMOP3ouL038mQfwSGLYDFL4r2e4nkbNDq4aJ/Q8Ao+PEheHO2GJVw7nyu83Tig905lGm/gZmqqhzLLWdhfOvP0LjGXNa9aSVtCusjOWUMD3Rruyspe4/wLzitDdxGoDnQ7op1aU0ppTWlhLkNPM+OVkx7BKpLYcvLonI5bF5/r0jSHeprIGMnpG6Coz+JSrXZD+b8VXiFGM84L3DxE3+TJ/0a6qrE9rmHRJt47iERR2dwA7MvuAWDf7z4+7TsHjE6EjVX+HxEXgCIc5JQLxOhXiZmxrY/31vXYCW/vIacsmpyS6s5UVDBwcxS9qWX8ON+8flzNeqYEePH3BH+zIjx7fGKtk6j48a4G5kXPo+ntz3Nc7ue44OD7xGJjpCSLIKrLUQY/bhgym8wxVyEGjSWr/fm8OdlB9HrNLz1q9HMGeFP/dTfc2LTJrIf/xMRn36Com27oyco2pNLHvQg+3gJB9ZlcmBNBvusKl6j7sHTZxhnBmFW1lWyLmMdi4YssnsWfPv3JzGYdYyade5G6UkkjkZ3hPWAubRtm7E2Bkbfvj+jlCUJ7bT+OACllXXc/+keIrzNPLV0ZLtt6wvjAwj2cOatxJPMiwtgv6MLaxDu4BueEf/tCPnVHaHVg2ckFHYgrPd/ASv+KIye3MNg6gOQ+IIwB5r9p66/ZuoWUe3W2+dCC8Doa2DLK+JixeIXz/kYHUkvMO5G0TL6wcWiI2LxC13aPT7IjfXH8qmua7Br+7zyGkoq61oYl9kIcDcS4GZkb3pJq+esVpWjOeXtd+0krwSUNr0dglyC2F+w3671pZWlARDmOgiEtaLA7L/ArvdF5r0U1o5NQz2UpkHhCSg6ISIZcw4KQ76GGrFNwEhY9DyMvlZcfO0MvTOETxa3jlBVyNwtKroHv4IPl8IN3zSJa3vQazVN2dtnUlxRy45TRaxKymV1Uh7f78tCr1VYkhDMndOHEtVefF43CXQJ5MVRv2FtUR4r8naRqdOw0dlMgbMOqMU592cS6io59cMhjqX6MjHCm/9ck0Cgu1i7ztOTgMf/SOaDD1H0wYd433xTu6+lKApB0Z4ERXtSUVrDlt+9xkn3Iaz6LJXr4gJbnOetz1hPVX0VCyMX2vV75JwoJe1QIecvHSpnqyUSB6I7n8YB5w7upIX9Ga1PyByJHw5kkVtWwzd3j+vQ6ESn1XDzlAie/DGJ/RkljmtcdjqxFwlh7TVEONQ6Oj7DRHt3e6z6q2idu/glcaFAoxUV7p3vwLSHuyaQbVWD8+/u2hq1Orj5J7A2gItv1/aVSOwl8gI4725R2Rx1Zecn4acxIsidBqvaZEjWGbbthvm3FtYACaEebQrr1KJKKmsbGB7Y9n4iZmscmL1bPRVgDqC0ppTKuspOzYLSyhuF9WCoWIMYyYmaBcd+EeJJXphzHGwu9unbIH27ELZ1Fc3P683gOwwm3CaSLcLO7714RUURY1Eh42D67+Cd+fDZdWIMyTfmrA/vaXZiXlwA8+ICaLCq7Ekr5rt9WXy+M52vdmewIC6Au2dEMbInfGSy98PGf6McXsYsnZFZY2+ASXeieg2htLqCn5N38tquz9mcvRbFtJywUQHcN+2vTaLahuvChbh8/wP5//kPrnNm4xTa+SieyVVP6J6PcZ1+AzvzzWQllxA8rLn75ueTP+Pn7MdYP/tGyrZ/fwJnVz3x0x23YCSRnIucE5e5DFqFg5llNFjVfsth7Iw1SXmEejm363p7OldNCOWFVcm8tfEkBzNLHbtaDRCYAH4jIObC/l6JffhEwfGVQrSeadxUVQxlGcLUadhps5bn3S3cz/d9CuNvtv+1MncJw7Ew+wVLEzKnWtIXzPyDyD/+7j64M9G+ahgQf5qBmT2Nim1FbZ3OmDAPlh/KodBSg7dLc1RUk3FZYBvGZRWF4jM24/dtHjPILNzzsyuyGerRsTdBWnkaCgohroOo7XLYAji8TBjZtTVvL+l9rA1inCd9e7OYLmy8sKtoRSV6zHViNMN7KHgNFS3d/XEhxGby+dYc+OhyuG1Vj44faTUK4yO8GB/hxf2zo3l30yne33KKnw/mcNeMoTy6oJs5zTkHYM2TcGy5aHWf+gCf6xbxz41FVG1Jprr+SNMMuJd5KfdO/w1+Acl8cPgd7lv7G16Y+QLTQqY1HU5RFAL+8mdOXLSInL8+Qdjbb3W6hNoTJ7CWlTF0YjD7N+s4nJjVJKzLastIzEzk6tir0dphFpmVXEx6UjGTL4uS1WqJxMEY1J/I03Osq+oaOJ5naWUI5ghU1TaQeLyAayaG2eVc7mrUc/WEUN7dfIoGq+q4xmU2FAXu2tzfq7Af72hoqBVuql5n5EzmJYl7/7iWj4dPFiemW/8L426y/6QndYu4D3NAp3SJBERE06IX4KNLRQ72rMft2i3YwxkPk55DWaWEdHYNaN3/oT9uxM81rt3uG9tFx73pJcwe3nwyfyS7DI3STqU7ZTUiZqvtEZQgFyGssyxZnQrr9LJ0/M3+GLSDKP85ai6giKq1FNZ9Q1UJZO6E9EYRnblLmMmBcK4PmQgJ14moyqAx4vPnSHiGixz09y6CT66Cm37slTV6uxh4eH4Mv54+hL9+d5j/rkth8lBvLojuQodW0QlY+7SIFzS6wczHYeLt1Dm58cw/1+DrYmDaMB+c9VoMei1eZicWjw5q7Boczuzw6dyx8g7uX3s/z057ltnhzeMk+oAAvG+7lfz/vEhdbh56/44zpCt37wbAdXwCMfW1HN6UzQVX1WE061mdupo6ax0LI1q2gddW15O8I5ejW3MoL66mrqaBuuoGrA0qzm5OslotkTgg3RHWuZ1v4hjYZqyHRMfcbgX2ZZQ4pLDecqKAmnors4d3/MV8OjdNieDdzaeA5sxYh2YgtRn6DBP3BcdbC+vcQ+L+TGGtKKJq/c2vhQNxOyfyrUjbLKr5XXRdlkj6lKjZYq4/8XmIW9r6/d8GiqIQH+TOwcwy5nckrMuyYd0/uBIjewPfbHezkSHuaDVKK2F9OLucIb4uGPVtVHqSV4LJBwLbduENMAcA2GVgllaeRrhreKfbDShcfEWb/LHlos1X0rNYraL6nLG9sa17h6hOo4r8eL8RwnE7ZKIQ0l5DBsbfyuCxIi3g02vhq9tEGkU3YvnswdWo56ml8exNL+aRL/bzy2+n4W7qxNyrski43u96TxiDTn0AptzX9Hd21YFs8str+L/LRjIrtv2Ku7vBnTfnvcldq+7iofUP8c9p/2wRheUycyb5/3mRik2b8Lh0aYdLqtq9B62XF04REQzXWTiwPpNj23MYNTOUn0/+TIhLCPE+8QAUZlo4tCGTo9tyqK1uwCvITMgwT/QGLXqjDr1BS+RoH/ROvfNvLpFIuk+XhbWqqq2tVR0cvQacDDoOZJT2S3W3oqae5QdziPAxMS689Rnm6qQ8zE7aLuW9hniaWBgfwA/7sx2/FXyg4RMt7guOtTb1yT0ERg+R+3kmcZfCyr/A1lfsE9YN9aL9b9RVZ79miaS3mf+0EKrf/UbMV9pxIh0X7Ma7iaeoj+ugffzID4CKVq3n3opXQF3UprgwOemI8XdtNWedlF3GmLA2RmisDSJaKHpeu1nNvs6+6BSdfcK6LK1FxWrQMGwBrH1SRCy52H9xV9IGNeWiAp2+o1FMb4fqxver0QNCJkD8pUJEB48TcWcDlZiFIqrtp4dhxZ9gwdO99lJGvZYXrhrD0lc38adlB3nxmrYvlKGqwmBt+WNCXI+7SVwwcg1osdlH21IJ9nBm+rDO3+9uTm68MfcN7l51N49ueBStomVuuDgNNsTEoPXxoSIxsXNhvWcPzmPGoCgKvqGu+IW7cjgxi6BJzmzL2cat8beiKArHtuew8p3DaHUaosb5ETctmIAh7SQeSCQSh2NQt4KfTnywe58amKmqyu60Ej7fkc73+7OorG3Az9XAxkdnYtBpW2y35kgeF0T7tnjcHv6yOI4lCcF4ObJx2UDE5CXMydpyBs89JCJI2vojp3OCibeJWa68JPAb3vHr5B6EWkuXDKEkkn7D5AUL/w++uhXW/5+Yve6E+CB3ahusZFqs7W90eBm1nlE8nTeFJ8reh/2fweir29w0IcyD7/dmYbWqaDQKpVV1ZJZUce2kNgzFsvZAVVGbMVs2tBot/mZ/sixZHf4eZbVlFNcUDw5H8DMZNl8I6+SVYpZX0iaKtUF0MZVni1Eha72IXawuaRbTeYdAbXyv+8bCiIubq9He0e1e4BmwTLwdClPExWTvIcJMrZcYGeLO/bOj+ffKY8wZ4c/Fo4NablCcKuIBj6+EoLFw/dciu/sMTuRb2HS8kIfnDbPbc8esN/PfOf/lxuU38sqeV5qEtaIouEyZjGX9BtSGhnajt+oLC6lNTcXjisubHhsxNYh1/zvK8m3rsapWFkYupDDTwtoPjxAY5c7CO0fi7CLP7SSSgUanwlpRlOGqqib1xWJ6k1Gh7rybeIraeitOut7941bfYOXaN7ex/VQRJicti0YFMszflSd/TGLZniyuPC2jOim7nOzSah6Y2/VKga+rgbkjZG5xr+AT3doZ3GoVgjnhmvb3G3cLbHgWtr4qXMM7Is02X33e2a1VIukr4i+DlDVCWPvHC+FwOlarSAAoTYf5TzWNqaSWtSOsKwogdRNpMb/mw+wp/C74IOblj8HQWW1WTxNCPfh4WxonCixE+blypNG4bERbxmXHV4l226GzOvyV7MmyTi9PBwZJ1NaZBIwE1yDRDi6FdTPFqXD4WyGa849xQUEybKhve1snVwgZL/LBQyYKB+1zZbxn/lNilvmn34FnRK9Gat41Yyhrjubx+DcHmBjhRYB7YyfMgS9FJw0KLPg/Ifjb6aj5eFsaOo3S4jzMHkx6E5dGX8rT254mpSSlyZPBPHUqpcu+o/rwYZxHjmxz36q9ewFwHtvs+B093p/EL5JJ21FG8NBgwoyRfPHcDpxMOubfHi9FtUQyQLGnYv2joijrgb+oqprW2wvqLUYFe1DbYOVoTnnPxDZ0wP7MUrafKuKemUO5a0YULgYdqqryzZ5MXtuQwuXjQtA0XildnSRG1mfGyBY8h8InujH/9jRK06C2vOP5UrO3qLbt/UScbPnFgu9wEUtiPOPkP3WzyMF2H0Quw5LBjaLARc9B/lH45k7hUmz7PDTUwbJ7Yf+n4ufUTYRf/j4uBl37wvrID6Ba2WqciqooaC95Gd6eDj//Dq54r9XmYxoNzPaklQhh3egk3qYjeP5RcaLfiXt+kEsQ23O2d7hNepkQ1qFuDm4U2R0URVStD3wB9bWi88aRqK0QvhV6k/3eFSCiDAuSxUWeknRx7+wJ593VvtlWWbYQ0we/Eg7dAJ6R4BtLhnE4YWNng3so6Ayg1Yv5Xb1JxEj20oyxw6PRwuVvwzsL4Yub4dYVnXdrdROdVsNzVyZw4X828uhX+3n/5gniQvbaJyF8Cix9HTza/4xW1zXw5e4M5scF4OdqX7rB6cwOm80/tv2Dlakrm4X1ZNFxVrFpU7vCunL3bhS9HmNc87mDk7OOqPH+VG2tYsL4Sax+7zDlhdUseXAMZvdBZJAokZxj2FO6jQV2A+sVRfmPoigDJjRXUZTFiqK8YbFYGNUopvf1QTv4lpRCAG6ZEtmUSa0oCr+ePpQT+RWsSmr2f1t9JI/RoR74usovUofCOxosuVBd2vxY7mFx79eJcdMFDwk3153viKvob8+Bf4aKNrWGOrGNqkLaVgg/v3fWL5H0FnqjMCsyuMInV4tIqxoLfHyVENWzHoebf4baSjTvzOUu963tC+vDy8Azks2WAMK9TBiDRoiZyEPfQNIPrTYf6uuCq0HHnsY566TsMjxNevzd2vj+tOSBS+cdPYHmQPIq86iz1rW7jS3DOtR1EAprEHPWtRZI3dTfKxFUlcDej+GTa+FfQ+DzG4QDdc4B+/Y/sQ5eGAWvXyAMtpY/CjvegjV/h1fPa33RtDhVfFe/EC/mc+uqYfZf4P59cP9euPZTTgy9EcZcD0Omiy6j4HGi1dgn6twV1TYMrnDtp+Iiw/+uFJ+9XiLSx8xD84ax6Vg2uR/dJkT1qKvghm86FNUAPx3IpqSyjuvaGh2xAz+TH2P8xrAytfn9o/P2xjhiBJbExHb3q9q9B2NcHBpDy+8pjwQVvdVA6MYpnNxXwOTLogiK6jxyVSKROC6dCmtVVWtVVX0JGA6kA9sVRfm7oihtlAgcC1VVv1dV9Q4XFxdCPJ3xNOn7ZM560/EChge6tchaBbgwPoBQL2deW5+Cqqrkl9ewL6OEObGyWu1wNBmYndYObnME9+skS9MjDG79Bf6QCfftgas/gfG3iBO7D5cKIVJ0AiryIEwKa8kAxC0Qrv4flOfA57+C9xcJMXPxS6IdNnwy3LkRQidyT9lz3FH5Og31Z7TRVhbByQ0wYglHci3NcVlTfgv+I+GLG+GLm+BUIraQWY1GYXSoB3vTmoV1bEA7xj4V9plxBZoDsapW8irbFwOpZan4mfxw1jnb868z8IicBjqjiN3qadJ3wLEV9m9fXwtvzIBv74LsvTD2Rrj2C+F7sexeYfrYHtYGWPsP+OASUZ2+/F24fS08kgJ/zBEXfHTO8L/LxXsrczd8/1t4aSzs+1R8T9+zA+5KhAseFB0PEvtwD4FrPoGKfHExo66q117q+gQPPnF+Fv+UL1GnPyoq1brOixMfbU1liI+Z84d6d/u154bP5VjxMU6Vnmp6zDx1KlV799FgsbTa3lpbS/XBgy3awG0cdzpIkXM2ddk6osb7MWqW7F6TSAY6dg8bq6pararqs0A8UAXsUhTl4V5bWQ+jKAqjQjzYn1Ha6jlVValrsFJZW09pZR2lle1XLjqjuq6BnanFTG7ji1un1XD7BUPYnVbCztRi1h3NQ1VhVhditiR9hC1y63QDs9yD4kTLXidXjVbEp8ReCIueh6VvCJfYN2eIajZIYS0ZuISMh8X/gdREyDsCV38MY3/V/LyLH9zwLUeibuNKzVpKVvxfy/2P/gzWemqGLeZUQQWxtnZurR6u/xIm3Qkpa0Ve7qvniegcVSUh1IOjueVYauo5mlvedhs4iI4Tsx3C2kU4/Gdb2p+zTi9PH5zz1TacTEJcH1vedBGjRyjNFCL2y1ugttK+ffZ/CsUn4dK34IFDcOG/RDrDhc8Iob3l5bb3K8+FD5bA+n+KaLg71goH7uCxYPYRLe/hk+HORJFnfOQneHMm7PlIuEfft1e8hu+wHvv1zzmCx8Jlb0LGTvj2buG50NPU12L8/BrGcpiHau9kfdBtdkWUHc4qY3daCddOCjsrh+054WIcYVXaqqbHzFOnQH09lVu3ttq++uAh1Lo6TGNbO5nvztvFkaiNRI72Yeb1sdL5WyIZBNgtrBVFiVAUZQFwGxAGlAO9l6/QC4wOcSc5z0JVbUPTY59sTyP2T8uJ/uPPjPjzL4z+2wpG/20Fr69P6dZr7E4rprbe2qawBrhiXCieJj2vr09hzZE8AtyMbRvvSPoXzwjQ6MSMno28w523gXfE6KtExaS+VpwcOnuJ2WuJZKCScC1c9rbo0IhZ0Pp5jZaGmX9iWcNkPHf8G9K2NT+X9B24h3FUMxSrCsMDTrtg5RogTJEeTIIlr4Cihe/vh5I0xoR50GBV+WFfFtV1VoYHtnGhq75GjHHY0QoeZBbuwh0ZmKWVpRHmNoiFNYg56+KTIne5J7Ba4ds7RQRVbTkc+9mOfRpEVnrgaJHvfLrQGLEEYhfBun+0NpZMXgmvTRWCbsmrsPS/7c9R65xg+iNw9xYRIXffHrjo3+Ae3P3fVdLM8MUw9wk49DWs64VTxJ8fgfStqEvfYKvbfJ5beQzVjotBH29PxUmn4fJxZ1cVDjAHMMp3FCtONXdhmBIS0JhMbbaDV+3ZA4BzQkKLx1VVZWfuToLiXbnwrlE4Gc+ZkB6JZFDTqbBWFGW/oiiFwDfAjYA7sBr4FeDSu8vrWUaGiBOyQ1miav3BllP8/usDjA3z5OF5w/j9wlj+vGgE04f58uyKoyQ1Os52hc3HC9FqlHYzqZ2dtNw4OYJVSXmsOZLHrOF+8iqlI6LVC3FdcEz8XFclTjg7Mi6zh5BxcMc6UR0afbVdV9olEodm5OVCCLVDlL8rf66/hTInf/jqNjE/W10m3MVHXMyRHNE+2Wbl2ckk5lpt0V5VxSQ0Gph9sj2t/f1sM54unVuCBJhFxm17kVsVdRUUVhcO3vlqG9Hzxf2x5T1zvC0viVb/Rc+BWzDs/7zzfQ5/K8ZkLnio9XejoggBrDWIeWirVVTBf3xYVMXNPnD7Gvudzb2Hwvn3dDqXK+kGk++DMTeIhIC9n/TccXe8LTpXpj6IbtRl3D87mv0Zpaw8nNvhboWWGr7alcniUUF4mM7enG9e+DySipKa0gIUJydM551HReKmViK/cs9u9OFh6Hx8WjyeackkrzKPcf7jzno9EonEcbCnYn0J4KOq6hhVVa9RVfVvqqp+oarqQVVVa3t7gT3J6EYDs/0Zpby18QR/XnaIuSP8ee+WCdw7K5pfTx/KLVMjeeGqBNydnXjo833UNXStlWlzSgGjQtxxNerb3ebG8yNw1mupqbcyW85XOy7e0c3Vm/yjIp/Uf8TZH9ctEG78Hhb84+yPJZE4OAadFlezmZc8H4PyLFF5PrZcZAEPv5iknDKc9VrCvEwdHKSxKl1TjreLgVAvZ/ZllKLVKET7t3F9t8ImrDuvWBt1RryMXu1WrAd11NbpeISCW4j9BmEdkbUXVv9dVC/H3iguvhxfJeLV2kNVYePzYgwndnHb29g6GdI2w8o/wRvTYcebcN49Ypa6J76fJWePLT0gcpq4CJLWukW6y5zaJNICoucJg0Tg0rHBRHibeG7lMazW9qvWbyWepLq+gbtmDD37dXBaO3hqy3bwuowM6lJTmx6zVlZStXsPpjGt56t35e4CkMJaIhlk2COs64FQRVHCOrk5fD+zn5uRADcjr29I4ckfk7hwZACvXjcWg66lo6en2YmnlsZzOLuMV9ba3xZXXl3HvoxSpgz16XA7T7MT100Kw82oY3In20r6EZ9oKEwR7Yk24zL/+P5dk0QyAAl10/BjUQjM/KOoSq54HFwDIWQCSdllxAS4NkUQtoktqq5GdBGNCRUZwUN9za2+v4HmirUdM9Yg2sHbE9apZeJEOdwt3K5jDWi8h4iK8dlQWyk6E8y+sPhFIbJGXQ3Wejj4dfv7Ja+E3AMw9QHQdHBqMuZ6iJwuxmlqyuGGb2HB08KtXuI46Jzgyg/E53zF42d3rJJ0YZLoGQGXvdXkwq7TavjtnGEcySnnp4Ntf35LKmv5YPMpLhwZSJRfzzRZBrsEE+cd18Id3GXKFAAsicJZv+bECU5ddRUNxcW4zp/X6hi7cnfh5uTWFNslkUgGB/YI6/ftuL2HqGz3OoqizFAUZaOiKK8pijKjq/uPDHEnt6yGi0cH8eLVY9Br2/4nmB8XwCUJQby85nhT63hn7DhVRINVbXe++nQeWxjLmodn4Ox0jsd0ODI+0dBQAyVpYr5aZxRmZBKJpEuEuWrJKaumeMzdQhRZcmH4xaiKwpGc8rbnpE/H0Cisq4WwtrWDt29cZqtY2yesA10C220Ft1WsB30rOIjvt7MV1iseF50+S19rzhD3HyGc3vd/1vY+qgobnxUZ0SOv6Pj4iiJcoGc9DndthqEzz269kt7D2RMm3ysywTN2du8Yqgpf3iw6XK7+BIzuLZ5ePDqIaD8Xnl95rM0Ow3c2naKitoHfzIrq3uu3w5zwORwoOND0veEUHo4+NJSKxERKf/yRU5dfQX1BIaFvvYnrzNbv0d15uxnrPxaNYrfVkUQiGQDYE7c1047bLFVVP+jsWIqivKMoSp6iKAfPeHyBoihHFUU5rijKY50tCbAARiCjs9c8k7tnDOXRBbE8f1UCunZEtY2/XhyHp1m0hNfWd94Svul4IU46DWPDPTvdVqfV4OMiKBcWKwAAIABJREFUs6sdGu/GyK3C48IR3DdW5pVKJN0g1FV81yblWODSNyBqLoy/mdyyGkoq69oXyDZsJ9ONFeuEsE6Eta0V3Nz5jDWIyK2cipw2TZDSytLwcfbBpO+gVX2w4DUUKgvFHHx3qC4VM7DjbxF5z6cz6krI3Cm6gM4kdTOkb4Mp9wt/i85wCxSxbqa2vUwkDkTCteLC2Nb/dm//46uFMJ//VJuO7VqNwu8WxJKSX8FjXx1o8Rkuq67j3U0nmTfCn9iAnm2qnBs+F2jdDm7ZsIGshx7GEBND5DdfN1WyTye/Mp/UslTG+4/v0TVJJJL+p68vlb0HtLCOVRRFC7wCLARGANcoijJCUZSRiqL8cMbND9ioqupC4FHgia4uYEyYJ3fNGIq2o7bDRjxMTvxj6UiO5JTz8prkTrffnFLI+HBPjHopvgYFtsitgmTIPXz2xmUSyTlKWKOwPpxdJuZkr/8S/IaTlCOEcqcnvU0z1mL70SEePDxvGJeObcfJ2ZInxLid7cFBLkFUN1RTXFPc6rm08rTBP19tw9aR092qdcpaUBvarjqPvBxQ2jYx2/hvcRFkzPXde12J42JwFUZmh7+Fsra7QjoksdH8btTV7W4yd4Q/98+O5qvdGfx7xbGmxz/YfIry6nrumx3dnZV3SLhbODGeMaxIbXYHd5s3D6xWvG66ifAP3kcfENDmvrvy5Hy1RDJY6VNhrarqBqDojIcnAsdVVT3RaIb2KbBEVdUDqqouOuOWp6qqrXRcDPR6yXfOCH8uHRvMK+tSOJjZfkt4oaWGpOwyu9rAJQMEs7doZUvdJCpgUlhLJN3CzaDg62ogKbu8xeO25IWYgE5awXUG4Qbd2Aqu1SjcOysaP9d2hLMlz+75amh2Bm8ryzq9LP3caAMH4ZQN3RfWySvFBY2QCa2fcwsSZlb7P2vOyrZaYd0/IWW1cOjWO3fvdSWOzcTbhVfJjre6tl/aNvH39/x7xcx2B/x2TjRXTwjl5bXH+XBrKpaaet5KPMmsWD/ig9073Le7TAmewqGCQ9Rb6wEwn38+w3buwP+xR1H07Xde7MrZhbPOmViv2F5Zl0Qi6T8cITgvGEg/7ecMYFJ7GyuKcikwH/AAXu5guzuAOwB8fX1Zt25dtxc421NljR7ufHcTf5nsjL6Navf2HPHFaixLY926zG6/lsSxGKP3w+XYCrTAvuw6is/ifdRdLBbLWb1/JZL+xmKx4G/QsSM5i3XrmqvCG/ZV421U2LNtU6fHmKwxUnDyKMfs+CwkZB4DDOy183OTVSsqaSu3ryTflN/0eI21hryqPBoKG86Jz6CmoYZpwMldq0kt7KKxpmrl/MM/Uuo+ksMbW+f5AgQ4jSa2eD27v3uDCnMYsUf+g2/BFnL8Z3G0Nh7Vgf+N5ffw2RHnMxGPLW+whUlYtfbVROIPPIm7zpUtlUOw2vFvP9dTJclXy5+/PciXm5IoqWxgikdZr/1/qy6vpl6t59vV3+Kjt//zsiFrA+G6cBI3tP056Q3k+1cy0Bko72FHENZdQlXVr4EOrEWbtntDUZRsYLFerx83Y8aMs3pdU2geN7+3g711gTwyv/VVxpXfHMDFkMVNi2d2OrstGUCUjIe9RwEYPe86u3Jxe5p169Zxtu9fiaQ/WbduHVPi/Hk38RRTLpjWZBr59J71jIk0MWNGGxXOM9nvQ5CXmSB7PgsHaiFgpN2fm5LqEv712b/wCvdiRlzzPkeLjkI6TB89nRkR9h1rwLMvhEg3K5Fd/c7J3gfri/Gbcj1+Ce3sWz0Wnn2DsdWJkHUCCg/DvKcIOP8eAs7MrXYw5PfwWRKuhfcXMc0jB8bd2Pn2uYdh3Q6Y8XumzVjQ+faNnD+1nmvf3Mbe9BIuiPbh1kvardOcNaZsEx+v+JiQ+BDOCzzPrn1Ka0rJ+jSLS+MuZcboGb22tjOR71/JQGegvIcdQQFmAqf32YU0PnbWqKr6vaqqd7i4nH3EwsxYP64YF8Jr60+wL721scvmlEImRXpJUT3Y8GmczTL79ouolkgGCyMC3ahtsJKSbwGguq6BlPwK+02FjG5NM9adYsmzK8PahrvBHWedc6vIrXMmw/p0vCK71wqe3DhrGjW7/W2MbhBzISR9JyKUrv1CuEY7uKiW9AARU4Uz/Nb/No8CdMSmF0Bvhol3dOllTE463rlpApeNDeHxi3o319w2IpJRbr+P7p68PYCcr5ZIBiuOoAJ3ANGKokQqiuIEXA181xMHVhRlsaIob1gslp44HI8vGoGfq4GHv9hHdV0DIE4O1x7N42RBBefL+erBh80ZXM5XSyRnhc3B2zZXfTzPQoNVJbazqC0bBjeRW9wZdVVCgNvpCA6gKEqbWdZp5WnAORK1ZcN7KBS14dzdGckrIWhM5xFnU+4X4vr21RA9p3trlAw8FAXOuxPyk+Dk+o63LU6FA1/CuJu65fzuZXbi31eO7ty74SzxM/mh0+i6JKx35e5Cr9Ez0ndkL65MIpH0F30qrBVF+QTYAsQoipKhKMqtqqrWA/cCvwBJwOeqqh7qidfryYo1gLuznn9eNorkPAt3frSLa97YyugnVnDzuztwMeiYO8L+ColkgGCrWPtJYS2RnA1DfMw46TRNBmZHcsS93RVrg2uTeVmHNGVYd+37OMAloEWWtVW1sip1FcEuwbg69e4JukPhNaT9yK0jP8GLY6E8t+XjlUUiEil6XufHD0qAaz5p/m6VnDvEXw4mH9j2esfbbX4JFI0wtHNgtBotwS7BTZ0t9rAvfx9x3nEY7Jwzl0gkA4s+nbFWVfWadh7/Cfipp19PUZTFwOKgoKAeO+b0Yb5cNymMj7enERfkxg3nhXPeEG8mRHjhbrIjf1MysPAaCnGXQvyl/b0SiWRAo9NqGObv0lSxPpJdhkGnIcLbznxoo7t9reAVjeZjnVVOzyDIHMShguZruj+f/JkDBQd4csqTXTrOgOf0yK3gsS2fO/KDqGavfgIuebX58ZQ1oFrtE9aScxe9EWIWwLEV7W9TVQJ7PoTRV4F7O3F6DkSISwgZFvsr1nmVeST4JfTiiiQSSX8y4MzLuoKqqt8D38fExNzek8f9+5J4/njRcExOg/qfTwKg1cEV7/b3KiSSQUFsgBvrjgrhm5RTRkyAq/2+FAY3OyvWjdXULrSCg8iyLqkpobKuEkVReGH3Cwz3Gs7ioYu7dJwBj9dpkVtnCuv0baDRwd7/iTbd0Ini8eQVYPIWreASSUe4h4n4yvoaEaN3JgXHoL4ahl/c92vrBiGuIRwoOGD39kXVRXgaPHtxRRKJpD9xhBnrXqOnZ6xtaDSKFNUSiUTSRYYHulFgqSG/vIak7HJiuzIDaXSD2nKRh9sR3W0Fb8yyzqnI4YNDH5BTkcPvJvwOjTKo/0y2xjNC3J9pYFZZBIXHxYy0ayD89Ij4f2FtgOOrIGoOaLR9vlzJAMNWhS5rx6O2tLGt2n1g+BqEuoZSVltGaU1pp9tW1VdRVV+Ft7P045FIBiuD+oyhp2esJRKJRNJ9hjcalW04lk9RRa3989UgZqwBaju5UGoT1l2tWJvFyNC+/H28ffBt5oTNYXzA+C4dY1DgZAK34NbCOmOHuB86C+Y9Cdl7YfcHkLVHzGTLNnCJPbiHiPvS9oR1RsvtHJwQF7FOe9rBi6uLAfAydt2QTSKRDAwGtbCWSCQSieMwotEZ/Js94qTabkdwEK3g0Hk7eEUeOHuCzqlLawtyEcL6uV3PUW+t58FxD3Zp/0GF1xAoPMMZPH07KFrR7h1/GYRPgdV/g/2fCaOpobP6Z62SgYWbTVi3I0RLM8DgLjpUBgAhro3C2g5n8KLqIkAKa4lkMDOohXVvtYJLJBKJpOt4mJwIdDeyKaUAgOFdqVjbTrQ7MzCz5IK5a8ZlAD7OPmgVLSU1JVw3/DpC3QZGK2qv4DWkjYr1dgiIByeziE5a+C+oLoHtb0DIhG7FIknOQdwazWTLOhDWA6RaDd0T1p5GOWMtkQxWBrWwlq3gEolE4lgMD3RDVSHAzYinuQtVZXsr1pb8LjuCA+g0OvxN/ngaPLlj1B1d3n9Q4TUEKgugunFutKEeMnZByMTmbQLiYUKjL2j03L5fo2Rg4mQSRnfttoKnDyhhbdab8TJ62RW5JSvWEsngRzpwSSQSiaTPGB7oypojeV1rAwcRtwVQU97xdpbc1m7WdvLIhEdwc3I7t3Kr28L7NGfwoDGQdxjqKppdwG3M/AM01EDCdX2/RsnAxS2441bw0El9u56zxN7ILZuw9jZK8zKJZLAyqIV1b+RYSyQSiaT7DG+cs+6ScRk0m5d11gpekd9lR3Abc8LndGu/QYcty7owRQjrjO3i5zOFtbMHLP5P365NMvBxD4HiU60fr7FAVfGAqlgDBLsGsz9/f6fbFVUVYdAacNY598GqJBJJfyBbwSUSiUTSZySEeqDXKkyI6OKcYVMreAexNrUVwjW8i47gkjPwjBT3RSfFffoOMbfuEd5/a5IMHtxD2q5YNzmCDyx/g1DXUHIqcqiz1nW4XVF1EV5GLxRF6aOVSSSSvmZQV6wlEolE4liEeJrY/oc5eJj0XdvRHvOybmZYS87AyQSuQVDU6Ayevk1Uq6UgkPQEbsHic1xd1tL9e4BFbdkIcQmhQW0gx5LToelhUU2RnK+WSAY5g7piLZFIJBLHw9Ps1PWqjd4k4p46Mi9rEtZdNy+TnIH3UDFjbcmH4pPC+Vsi6QlswrnsDAOz0vSWzw8QbM7g6ZaODcyKqqSwlkgGO1JYSyQSicTxURRR3erIvKxCCusewytSzFhn7BA/nzlfLZF0F/d2sqxLM8TFM5eAvl/TWRDqKqrUnUVuFVUXyagtiWSQM6iFtcyxlkgkkkGEwbWTVvBccd+NHGvJGXgNFZFbx1eBRidMzCSSnsAtWNy3JazdgkA7sKYU/Ux+6DX6DoW1qqoUVRdJR3CJZJAzqIW1NC+TSCSSQYTBvZNW8HxAAbNPny1p0GJzBj/0NQSMAr10Mpb0EK6BoGjaaAXPGHBt4AAaRUOwS3CHkVsVdRXUWetkK7hEMsgZ1MJaIpFIJIMIo1vnFWuTF2i7aIwmaY1NWFcVyzZwSc+i1Qlx3apinT4ghTWIOeuOKta2DGsvZymsJZLBjBTWEolEIhkYGNw6rlifRYa15Ay8Ipv/WxqXSXoat+CWwtraAGVZA1dYu4SQXp6OqqptPm8T1p4GOWMtkQxmpLCWSCQSycDAnoq1zLDuGZzMoqoIsmIt6XncQ1q2glvywFo3YIV1qGsoljoLpTWlbT5fWF0IyIq1RDLYkcJaIpFIJAODTs3L8mTFuifxGiocmt3bz+aVSLqFezCUZoKtwtuUYT0w32u2yK325qyLq4sBpHmZRDLIGVjWi11EUZTFwOKgoKD+XopEIpFIzhZbK7iqivit01HVRmEtHcF7jNl/FvFmXc0cl0g6wz0UGmqgogBcfKE0rfHxgVmxbhLW5RnE+8S3er6pFVzGbUkkg5pBXbGWruASiUQyiDC6gdoAdZWtn6u1QH2VFNY9SdgkiJ7T36uQDEZskVtljRXegV6xdhHCOr08vc3ni6qLMOvNGLSGvlyWRCLpYwa1sJZIJBLJIMLgJu5ryls/Z8kT9zLDWiJxfNzPyLIuzRBxeka3/lvTWWDSm/A2erfbCl5UVSSjtiSScwAprCUSiUQyMDC6i/u2nMFtwlpWrCUSx8dWmS5tNDAboBnWp9NR5FZRjRTWEsm5gBTWEolEIhkYGFzFfVsGZpZccS+FtUTi+Ji8QWc8rRV84GZY2+hQWFdLYS2RnAtIYS2RSCSSgYGtFby6jUibinxxL13BJRLHR1HALahlK/gAF9ahrqHkVOZQ11DX6jnZCi6RnBtIYS2RSCSSgYFt/rK9irWiEZUwiUTi+LiHiFbwGgtUFQ94YR3iEoJVtZJpyWzxuFW1UlJTIoW1RHIOMOCEtaIoGkVRnlIU5SVFUW7s7/VIJBKJpI/ozLzM5AMabd+uSSKRdA+3ECjLFDcYsI7gNiLcIwA4UXqixeNlNWU0qA1SWEsk5wB9KqwVRXlHUZQ8RVEOnvH4AkVRjiqKclxRlMc6OcwSIASoA9oeZpFIJBLJ4MNWsW7PvEzOV0skAwf3ECjPhuJTzT8PYKI9ogE4VnysxeO2DGsprCWSwY+uj1/vPeBl4APbA4qiaIFXgLkIobxDUZTvAC3wjzP2vwWIATarqvq6oihfAqv7YN0SiUQi6W+cXMR9W63gFVJYSyQDCvdgUK2QsaPx54EtrE16E6Guoa2EdWF1IQCeRs/+WJZEIulD+lRYq6q6QVGUiDMenggcV1X1BICiKJ8CS1T1/9u79yC96vKA498nm7AJJptsSLgmEgpJVBxApGAVdMVSRGRSarWktKBlTJ2RjnZ0qmO14HSs1grTKXiLI4gOYlFRgiLet6jjJRBCQhKIMYmQCMS4SWQxCSZ5+sc5r75sdjfJ3t73vPl+Zphzzu/cnrP55YRnf5eTHwRe2/caEbEJeKbc3DvQvSJiEbAIYObMmXR3dw83fKkhent7rb+qtJGsw+e2TeKJdatZF8++3ku2bmT7tNN42L8rGgW+h0fe9N/0cBqwbcU9TGMc9y5bS477RaPDGpbOPZ08uPnBZ9WVB55+AID1D61n99rdDYnL+quqq0odHusW6/6cADxWt70JOGeQ4+8AboiI84B7BzooMxcDiwHmz5+fXV1dw49UaoDu7m6sv6qyEa3Dy6Yza2YHs+qv9/td0N3Dsc9/Ccf6d0WjwPfwKNhyLKx8P52966DjeF5x/qsaHdGwrV6+mk+u+CTnnHsOk8ZPAuCJh5+ArXDheRcyY9KMhsRl/VXVVaUON0NifUgy83fAVQdzbERcAlxy/PHHj25QkqSx0d6xf1fw7Y8CCZ0nNSQkSUMw9YRiuWdn5buB18ztnMu+3Mf67es5dcapwB/HWE9rn9bI0CSNgWaYFXwzUD8V5KyybNgy867MXDR58uSRuJwkqdHap+w/eVlt8qPOOWMdjaShap8C7VOL9RZJrOd1zgOePYFZz64eprZPZfy4yrVlSTpEzZBYLwXmRsRJEXEEcBmwZCQuHBGXRMTi3t7ekbicJKnRJvbTYr1tQ7E0sZaqpZZQT6v2p7ZqZk2exaTxk/ZLrJ0RXDo8jPXntm4DfgzMj4hNEXFVZu4Brga+CawBbs/MVSNxP1usJanFtHf032I94UhnBZeqptYdvEVarNvGtXHKtFNMrKXD1FjPCr5wgPK7gbtH+n6OsZakFjOxA3Y/9eyyng1Fa3VEQ0KSNES1hHpqa7RYQ9Ed/LuPfpfMJCLo2dXDKdNOaXRYksZAM3QFHzW2WEtSi+lv8rJtG524TKqijtZqsYZiArPtu7ezdedWwBZr6XDS0om1Y6wlqcW0d8CeXbDnmWI7s0ys5zQyKklDMfcCmHshHNU6Lbr1E5jt2beHHbt3mFhLh4mWTqxtsZakFjOxo1jWWq17nyw+1zPdFmupco47HS6/Hca3NzqSEVOfWG/fvR3AxFo6TLR0Yi1JajHtZWK9a0ex9FNbkprI1PapHH3k0azdtpbf7PwNYGItHS5aOrG2K7gktZg/tFiXE5j11D61ZYu1pOYwr3Mea7etpWdXDwCdEzsbHJGksdDSibVdwSWpxbT36Qq+bSMQLfMdXEnVN69zHut3rOfXO38NwFETj2pwRJLGQksn1pKkFtM+pVjWvmW9bUMxo3ALjdGUVG3zOuexZ98elj25DLAruHS4aOnE2q7gktRi+k5e5ozgkppMbQKznzz+E9qijY5aTxtJLa2lE2u7gktSi2mfWixrLdY9G6DzxMbFI0l9zJk6h/HjxrO5dzPT2qcxLlr6f7cllfybLkmqjvrJy555Gp7e4sRlkprKhHETOHnqyQBMn2Q3cOlwYWItSaqOtgkwfhLs3gHbflmU2RVcUpOZ2zkXcHy1dDgxsZYkVUv7lKIr+LbyU1vTbbGW1Fxq46xNrKXDR0sn1k5eJkktaGJHMXnZto3Ftl3BJTUZE2vp8NPSibWTl0lSC2rvKMZY92woJjOb1NnoiCTpWWqJ9YxJMxociaSxMr7RAUiSdEgmdpRdwTcWM4JHNDoiSXqWmUfO5Ibzb+D0mac3OhRJY8TEWpJULe0d8NQTsLMHjjm10dFIUr+6Znc1OgRJY6ilu4JLklpQewfs3A7bH3VGcEmS1BRssZYkVcvEDuh9olh34jJJktQEWrrF2lnBJakFtXf8cd0Wa0mS1ARaOrF2VnBJakETTawlSVJzaenEWpLUgtqnFMtog6mzGxuLJEkSJtaSpKqpdQWfNhvanCpEkiQ1nom1JKlaal3BnbhMkiQ1CRNrSVK1tE8tlo6vliRJTaJyfegi4jzgcorYX5CZL21wSJKksVRrsZ5ui7UkSWoOY9piHRE3RcSWiHioT/mrI+KRiFgXEe8e7BqZ+YPMfAvwNeCW0YxXktSEOufAaZfB/IsbHYkkSRIw9i3WnwFuBD5bK4iINuCjwAXAJmBpRCwB2oAP9jn/HzJzS7n+t8BVox2wJKnJtE2Av/pko6OQJEn6gzFNrDPz3oiY06f4bGBdZq4HiIgvAAsy84PAa/u7TkQ8F9iRmU+NYriSJEmSJB1QM4yxPgF4rG57E3DOAc65Crh5sAMiYhGwCGDmzJl0d3cPI0SpcXp7e62/qjTrsKrOOqwqs/6q6qpSh5shsT5kmXnNQRyzGFgMMH/+/Ozq6hrtsKRR0d3djfVXVWYdVtVZh1Vl1l9VXVXqcDN8bmszMLtue1ZZNmwRcUlELO7t7R2Jy0mSJEmStJ9mSKyXAnMj4qSIOAK4DFgyEhfOzLsyc9HkyZNH4nKSJEmSJO1nrD+3dRvwY2B+RGyKiKsycw9wNfBNYA1we2auGqH72WItSZIkSRpVYz0r+MIByu8G7h6F+90F3DV//vw3j/S1JUmSJEmC5ugKPmpssZYkSZIkjbbIzEbHMOoi4ingkUbHIQ3RDGBro4OQhsE6rKqzDqvKrL+qumaqwydm5sz+dlTyc1tD8EhmntXoIKShiIj7rL+qMuuwqs46rCqz/qrqqlKHW7oruCRJkiRJo83EWpIkSZKkYThcEuvFjQ5AGgbrr6rOOqyqsw6ryqy/qrpK1OHDYvIySZIkSZJGy+HSYi1JkiRJ0qho6cQ6Il4dEY9ExLqIeHej45EOVURsjIiVEbE8Iu5rdDzSgUTETRGxJSIeqiubHhHfjoifl8vORsYoDWSA+nttRGwu38PLI+I1jYxRGkxEzI6I70fE6ohYFRFvK8t9D6vpDVJ/K/Eebtmu4BHRBqwFLgA2AUuBhZm5uqGBSYcgIjYCZ2Vms3y7TxpURLwc6AU+m5kvLMs+DPRk5ofKX3J2Zua7Ghmn1J8B6u+1QG9mfqSRsUkHIyKOA47LzGURMQW4H/hL4I34HlaTG6T+voEKvIdbucX6bGBdZq7PzGeALwALGhyTJLW0zLwX6OlTvAC4pVy/heIfSanpDFB/pcrIzMczc1m5/hSwBjgB38OqgEHqbyW0cmJ9AvBY3fYmKvQHI5US+FZE3B8RixodjDREx2Tm4+X6E8AxjQxGGoKrI2JF2VXcLrSqhIiYA7wI+Cm+h1UxfeovVOA93MqJtdQKzs3MM4GLgLeW3RSlyspi/FFrjkFSq/o4cDJwBvA4cF1jw5EOLCImA18G3p6Zv63f53tYza6f+luJ93ArJ9abgdl127PKMqkyMnNzudwCfIViiINUNU+W46Zq46e2NDge6aBl5pOZuTcz9wGfwvewmlxETKBISm7NzDvKYt/DqoT+6m9V3sOtnFgvBeZGxEkRcQRwGbCkwTFJBy0inlNO3EBEPAf4C+Chwc+SmtIS4Mpy/UrgzgbGIh2SWjJSuhTfw2piERHAp4E1mXl93S7fw2p6A9XfqryHW3ZWcIByKvb/BtqAmzLzAw0OSTpoEfEnFK3UAOOBz1uH1ewi4jagC5gBPAlcA3wVuB14LvBL4A2Z6QRRajoD1N8uiu6HCWwE/rFurKrUVCLiXOAHwEpgX1n8Hopxqr6H1dQGqb8LqcB7uKUTa0mSJEmSRlsrdwWXJEmSJGnUmVhLkiRJkjQMJtaSJEmSJA2DibUkSZIkScNgYi1JkiRJ0jCYWEuS1I+I2BsRyyNiVUQ8GBHviIhx5b6zIuJ/hnDN7og4a+SjPaQYLoqI+yJidUQ8EBHXjdF93xIRV5Trb4yI44dwjS+VnyKsbZ8RERkRr64rmxMR/X7jNCI+EhHnDyV+SZIGM77RAUiS1KR2ZuYZABFxNPB5oAO4JjPvA+4by2AiYnxm7hnmNV4I3AhcnJkPR0QbsGhEAjyAzPxE3eYbgYeAXx3s+RFxKtCWmevrihcCPyyX9xzEZW4APgV872DvK0nSwbDFWpKkA8jMLRQJ6NVR6IqIrwFExCvKlu3lZQvwlLL8XRGxsmzt/lDd5V4fET+LiLURcV557JyI+EFELCv/e2lZ3lWWLwFWl2Xvi4hHIuKHEXFbRLyzLD85Iu6JiPvLc57Xz6P8C/CBzHy4fK69mfnx8vxLIuKn5TN8JyKOKcuvjYjPRcSPI+LnEfHmsnxyRHy3jHdlRCyo3SQiroiIFeWzf67uOu+MiL8GzgJuLX9mF0fEV+vOvSAivtJP7JcDd9YdF8DrKZL0CyJiYt2xbRHxqbK3wbciYlL5vL8EjoqIYwf6s5YkaShMrCVJOghlS2kbcHSfXe8E3lq2bp8H7IyIi4AFwDmZeTrw4brjx2fm2cDbgWvKsi3ABZl5JvA3QH038zOBt2XmvIj4U+B1wOnARRQJas1i4J8y88VlTB/r5zFeCNw/wCP+EHhJZr4I+AJFEl5zGnA+8GfAv5XduHcBl5YxvxK4rvylw6nAe4Hzy2d/W/1NMvNLFK39l5c/s7uB50XEzPJ6DtqnAAADlUlEQVSQNwE39RPfy/rE/lJgQ2b+AugGLq7bNxf4aGaeCmyn+JnVLCuvJUnSiLEruCRJw/Mj4PqIuBW4IzM3RcSfAzdn5u8AMrOn7vg7yuX9wJxyfQJwY0ScAewF5tUd/7PM3FCuvwy4MzN3Absi4i4oWo8pEs0vFg25ALQf4nPMAv43Io4DjgA21O27MzN3UvzS4PvA2cDXgf+IiJcD+4ATgGMoEvAvZubWfp59P5mZZav230XEzRTJ+xX9HHoc8Ou67YUUvwCgXF4BfLnc3pCZy8v1+p8zFL/EOOTx3ZIkDcbEWpKkg1BOmrWXIjF7fq08Mz8UEV8HXgP8KCIuPMCldpfLvfzx3+F/Bp6kaIkeR9EaXPP0QYQ3DtheGxM+iFXAi4EH+9l3A3B9Zi6JiC7g2rp92efYpOiaPRN4cWb+PiI2AhMZmpuBuyie+4sDjCXfWbt+OTb8dcCCiPhXICi6eE8pj91dd95eYFLd9sTyWpIkjRi7gkuSdABlN+VPADdmZvbZd3JmrszM/wSWAs8Dvg28KSKOLI+ZfoBbTAUez8x9wN9TdDnvz4+ASyJiYtlK/VqAzPwtsCEiXl/eLyLi9H7O/y/gPRExrzxuXES8pS6GzeX6lX3OW1De8yigq3zOqcCWMql+JXBieez3KMaRHzXIsz8F1JJgMvNXFBOZvZciye7PGuCUcv1VwIrMnJ2ZczLzRIrW6ksHOLfePIqJ0yRJGjEm1pIk9W9SObnWKuA7wLeA9/dz3Nsj4qGIWAH8HvhGZt4DLAHui4jlFGOeB/Mx4MqIeJAiMe+3lTozl5bXXQF8A1gJ7Ch3Xw5cVV5jFcUY777nr6AY231bRKyhSDBrn6+6lqIr+f3A1j6nrgC+D/wE+PcyEb4VOCsiVlJ0w65NiLYK+ADwf2Us1/fzKJ8BPlH+fGutybcCj2Xmmv6enaLreVe5vhDoO8HZl8vyAUXEBIrkfExndJcktb7o84t3SZLUxCJicmb2lq3h9wKLMnPZKN7vWqA3Mz8yWvco73Mj8EBmfnqA/ZMokvuXZebeId7jUuDMzHzf0COVJGl/jrGWJKlaFkfECyjGCt8ymkn1WClbyZ8G3jHQMZm5MyKuoZgk7dEh3mo8cN0Qz5UkaUC2WEuSJEmSNAyOsZYkSZIkaRhMrCVJkiRJGgYTa0mSJEmShsHEWpIkSZKkYTCxliRJkiRpGEysJUmSJEkahv8HwrwYqFGqRE4AAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ "<Figure size 1080x576 with 2 Axes>" ] @@ -208,7 +222,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/compare-ecker-data.ipynb b/examples/notebooks/compare-ecker-data.ipynb index 8754c0d9a4..1bcd6bd985 100644 --- a/examples/notebooks/compare-ecker-data.ipynb +++ b/examples/notebooks/compare-ecker-data.ipynb @@ -20,7 +20,15 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", "import pybamm\n", @@ -92,11 +100,11 @@ "source": [ "var = pybamm.standard_spatial_vars\n", "var_pts = {\n", - " var.x_n: int(parameter_values.evaluate(pybamm.geometric_parameters.L_n / 1e-6)),\n", - " var.x_s: int(parameter_values.evaluate(pybamm.geometric_parameters.L_s / 1e-6)),\n", - " var.x_p: int(parameter_values.evaluate(pybamm.geometric_parameters.L_p / 1e-6)),\n", - " var.r_n: int(parameter_values.evaluate(pybamm.geometric_parameters.R_n / 1e-7)),\n", - " var.r_p: int(parameter_values.evaluate(pybamm.geometric_parameters.R_p / 1e-7)),\n", + " var.x_n: int(parameter_values.evaluate(model.param.L_n / 1e-6)),\n", + " var.x_s: int(parameter_values.evaluate(model.param.L_s / 1e-6)),\n", + " var.x_p: int(parameter_values.evaluate(model.param.L_p / 1e-6)),\n", + " var.r_n: int(parameter_values.evaluate(model.param.R_n / 1e-7)),\n", + " var.r_p: int(parameter_values.evaluate(model.param.R_p / 1e-7)),\n", "}" ] }, @@ -160,7 +168,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 936x288 with 2 Axes>" ] @@ -238,7 +246,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/compare-particle-diffusion-models.ipynb b/examples/notebooks/compare-particle-diffusion-models.ipynb new file mode 100644 index 0000000000..353dbd7e63 --- /dev/null +++ b/examples/notebooks/compare-particle-diffusion-models.ipynb @@ -0,0 +1,327 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Compare particle diffusion models\n", + "In this notebook we compare the different models for mass transport within the electrode particles. For a full list of all the particle models, see the [documentation](https://pybamm.readthedocs.io/en/latest/source/models/submodels/particle/index.html).\n", + "\n", + "With the \"Fickian diffusion\" option a diffusion equation is solved within the particle domain, with the boundary flux prescribed at the surface related to the local current density. Alternatively, one can assume a particular (polynomial) concentration profile within the particle (at present, this can be uniform, quadratic, or quartic). The \"uniform profile\" model assumes that the concentration inside the particle is uniform in space (and therefore equal to the surface concentration through the entire particle - in effect ignoring transport resistance within the particle), and solves an ODE for the average particle concentration. The \"quadratic profile\" model additionally solves an algebraic equation for the surface concentration, taking into account the effect of diffusion within the particle. Finally, the \"quartic profile\" model also solves for the average concentration gradient (the integral of $\\partial c/ \\partial r$) in the particle, giving a higher-order approximation to the concentration profile within the particle.\n", + "\n", + "As the exchange current density is a function of surface concentration, we can see the effect the choice of particle model has on the voltage profile arising from different overpotentials." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we import the packages we're going to use" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "# install PyBaMM if it is not installed\n", + "%pip install pybamm -q\n", + "import pybamm\n", + "import os\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "os.chdir(pybamm.__path__[0]+'/..')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then create a list of models with the different particle diffusion submodels using the options functionality" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "particle_options = [\"Fickian diffusion\", \"uniform profile\", \"quadratic profile\", \"quartic profile\"]\n", + "models = [pybamm.lithium_ion.DFN(options={'particle': opt}, name=opt) for opt in particle_options]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we set up simulations for each model with the current set as an input function. We will change this later to observe the effect on the different models." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "simulations = []\n", + "for model in models:\n", + " param = model.default_parameter_values\n", + " param[\"Current function [A]\"] = \"[input]\"\n", + " simulations.append(pybamm.Simulation(model, parameter_values=param))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "t_eval = np.linspace(0, 3600, 72)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we run the simulations for each model with a current of 0.68A - this corresponds to a C-rate of about 1 with the standard cell size configured in the default parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Particle model: Fickian diffusion\n", + "Solve time: 0.8725338309996005s\n", + "Particle model: uniform profile\n", + "Solve time: 0.37457597799948417s\n", + "Particle model: quadratic profile\n", + "Solve time: 0.4738742350018583s\n", + "Particle model: quartic profile\n", + "Solve time: 0.3757634289977432s\n" + ] + } + ], + "source": [ + "solutions_1C = []\n", + "for sim in simulations:\n", + " sim.solve(t_eval, inputs={\"Current function [A]\": 0.68})\n", + " solutions_1C.append(sim.solution)\n", + " print(\"Particle model: {}\".format(sim.model.name))\n", + " print(\"Solve time: {}s\".format(sim.solution.solve_time))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "By not solving the diffusion problem in the particles explicitly, and instead assuming a polynomial profile, we can speed up the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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oKAggoIclqgrEFrBExERERGRfFOmTJnUv99//30aNWqEn58fo0ePTneezWajX79+vPbaa0D6lbbOnTvTpEkTGjZsyPTp09P1/eqrr+Ln50e7du04duxYhuufOnWKDh060LBhQ/r370/apP1XxtapUyfOnz9PkyZNeP/99xk5ciRff/01/v7+XLp0Kd09LFmyhH79+gGwePFifH198fPzo23btoC94HrHjh0BOH36NJ07d6Zx48a0aNGCn3/+GYCxY8fy9NNPExwczG233cbEiRPz9uM6oBU8EREREZEbzEsvvZRhJe1a+fv7M2HChCzPuXTpEv7+/gB4e3vz1VdfpR7773//y9dff83mzZvx9PTk9OnTqceSkpLo27cvvr6+vPrqqxn6nTVrFpUqVeLSpUs0bdqUrl27UrlyZS5cuECLFi14++23eemll5gxY0ZqgHjFm2++SevWrXnjjTf49ttvmTlzZob+ly9fTpkyZVJ/s+rVq7Nt2zY++eSTLO933LhxfPfdd9x8880OHycdM2YMAQEBLFu2jB9++IEnnngi9Rp79uxh7dq1xMXFUa9ePZ5//vlc1bvLjAI8ERERERG5Lhw9onnFmjVreOqpp/D09ASgUqVKqceee+45evTo4TC4A5g4cWJqsPj777+zf/9+KleuTMmSJVNXy/z9/YmIiMjQdt26dSxduhSAhx56iIoVK+b9Bq/SqlUr+vXrR48ePXj00UczHI+IiODLL78EoF27dpw6dYpz586ljqVUqVKUKlWKatWqcezYMWrVqnXNY1KAJyIiIiJyg8lupa2oadmyJWvXrmXYsGG4u7unOxYeHs6aNWvYuHEjnp6eBAcHEx8fD0CJEiVSSwm4urqSlJSUL+NLW67gyrUBpk2bxubNm/n2229p0qQJkZGROe6zVKlSqX9fz7FrD56IiIiIiOS79u3bM3v2bC5evAiQ7hHNZ555hgcffJAePXpkCHTOnj1LxYoV8fT0ZM+ePWzatClX123bti0LFiwA7I+J/v3337kee/Xq1dm9ezc2my3dY6cHDhygefPmjBs3jqpVq/L777+na9emTRvmz58P2APVKlWqUK5cuVxfPzcU4ImIiIiISL67//776dSpE0FBQfj7+xMaGpru+NChQwkICODxxx/HZrOla5eUlISPjw+jR4+mRYsWubrumDFjWLduHQ0bNmTp0qXceuutuR77e++9R8eOHWnZsiU1atRI/X7EiBE0atQIX19fWrZsiZ+fX7p2Y8eOJTIyksaNGzN69Gjmzp2b62vnlkmbRcYZBAUFWY7qZBS28PBwgoODC3sYkg3NU9GnOXIOmifnoHlyDpqnos9Z5mj37t34+PgU9jAKTVxcHGXLli3sYVx3jubVGBNpWZbDWgxawRMREREREblBKMATERERERG5QSjAExERERERuUEowBMREREREblBKMATERERERG5QSjAExERERERuUEowBMRERERkUKxbds2XnjhBQASEhK499578ff3JywsrJBHlrXFixfj4+PD3Xffne4e5syZw6BBgwp1bG6FenURERERESk8sbHQqxeEhcFNNxX45YOCgggKspdzi4qKAiA6OjrH7ZOTk3F1dc2XsWXV98yZM5kxYwatW7cGSL2HokAreCIiIiIixVVICEREwLhx19zV4cOH8fX1Tf0cGhrK2LFjAQgODmbUqFE0a9aMunXrsn79esBeRL5jx44cP36cxx57jK1bt+Lv78+BAwf4/vvvCQgIoFGjRjz99NMkJCQA4OXlxahRowgMDGTx4sV4eXnx8ssv06pVK4KCgti+fTv33Xcft99+O9OmTXM4zvr169O3b198fHzo1q0bFy9edNj3woULadSoEb6+vowaNQqAcePGERERwTPPPMOIESNS7+FqJ06coGvXrjRt2pSmTZvy008/XfNvnBMK8EREREREihsPDzAGpk4Fm83+boz9+3ySlJTEli1bmDBhAm+++Wa6Y9WqVeM///kPbdq0ITo6mptvvpl+/foRFhbGzp07SUpKYurUqannV65cme3bt9OrVy8Abr31Vn766SfatGlDv379WLJkCZs2bWLMmDEOx7J3714GDhzI7t27KVeuHFOmTMnQd9u2bRk1ahQ//PAD0dHRbN26lWXLlvHGG28QFBTE/PnzGT9+fKb3++KLLzJkyBC2bt3Kl19+Sf/+/a/l58sxBXgiIiIiIsXNwYPQpw94eto/e3pC375w6FC+XfLRRx8FoEmTJhw+fDjLc/fu3Yu3tzd169YF4Mknn2TdunWpx3v27Jnu/E6dOgHQqFEjmjdvTtmyZalatSqlSpXizJkzGfq/5ZZbaNWqFQCPPfYYERERGfreunUrwcHBVK1aFTc3N/r27ZtuDNlZs2YNgwYNwt/fn06dOnHu3DnOnz+f4/Z5pT14IiIiIiLFTY0aUK4cxMeDu7v9vVy5a9qH5+bmhs1mS/0cHx+f7nipUqUAcHV1JSkpKc/XAShdurTDvl1cXFL/vvLZ0bWMMZl+vrrvvLLZbGzatAl3d/fr0l9OaQVPRERERKQ4OnYMBgyATZvs70ePXlN31atX5/jx45w6dYqEhARWrFiR577q1avH4cOH+fXXXwH47LPPuOuuu65pfGkdOXKEjRs3ArBgwYLUZClpNWvWjB9//JGTJ0+SnJzMwoULczWGDh06MGnSpNTPuUkecy20giciIiIiUhwtXfrP35MnX3N3JUqU4I033qBZs2bcfPPN1K9fP899ubu7M3v2bLp3705SUhJNmzZlwIAB1zzGK+rVq8fkyZN5+umnadCgAc8//3yGc2rUqMF7773H3XffjWVZPPTQQzzyyCM5vsbEiRP597//TePGjUlKSqJt27YOk75cb8ayrHy/yPUUFBRkbdu2rbCHkUF4eDjBwcGFPQzJhuap6NMcOQfNk3PQPDkHzVPR5yxztHv3bnx8fAp7GIUmLi6OsmXLZnve4cOH6dixIzExMQUwqmvnaF6NMZGWZTmszaBHNK+H2Fj8X3zxmpe1RUREREREroUCvOshJITyO3del/ohIiIiIiKSf7y8vJxm9S4vFOBdizT1Q4xlFUj9EBERERERkcwowLsWKfVD4l1dAbA8PPK9foiIiIiIiEhmFOBdi5T6IaVsNvaW57rUDxEREREREckrBXjX6tgxFr14D/VfgvF3lMVSohURERERESkkCvCu1dKl3PdOGCUowSjfc6wdNKiwRyQiIiIickPp168fS5YsyVWbZcuWsWvXrtTPb7zxBmvWrLneQ8vUxIkT8fHxoW/fvixfvpz33nsPgLFjxxIaGppv11WAdx1U8qjEwzUfhkbw7tR3C3s4IiIiIiI5EhsLd93lvNW+kpOTMz12dYA3btw47r333gK7/pQpU1i9ejXz58+nU6dOjB49+rpeOzMK8K6Tnrf2xMW4sOb8Gg4cOFDYwxERERERyVZICERE2N+vh7fffpu6devSunVrevfunbpSFRwczLZt2wA4efIkXl5egL3oeJs2bQgMDCQwMJANGzYAYFkWgwYNol69etx7770cP3489RpeXl6MGjWKwMBAFi9ezIwZM2jatCkt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\n", + "text/plain": [ + "<Figure size 1080x1080 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(15, 15))\n", + "style = ['k', 'r*', 'b^', 'g--']\n", + "for i in range(len(models)):\n", + " plt.plot(solutions_1C[i]['Time [s]'].entries,\n", + " solutions_1C[i]['Terminal voltage [V]'].entries, style[i], label=particle_options[i])\n", + "plt.legend()\n", + "plt.title('Model Comparison 1C')\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('Voltage [V]')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can see that the Fickian, quadratic and quartic profiles agree very well and that the uniform profile over-predicts the cell voltage and capacity by ignoring this transport resistance. The only significant difference between the Fickian and quadratic models is on the first datapoint when transient effects after the initial state may differ. Observe what happens next when we increase the current." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "t_eval = np.linspace(0, 1800, 72)\n", + "solutions_2C = []\n", + "for sim in simulations:\n", + " sim.solve(t_eval, inputs={\"Current function [A]\": 2*0.68})\n", + " solutions_2C.append(sim.solution)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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zMeAFTgen1xirU3DkdDdiGOl8D3gHmvtliLE3gOIAO4zxhzL83MFOOYXaIfj7/WzMeYv4DMgAUg5y5giIuJBxvG+toiIiBSWMSYO+Le19kNPxyIiIgJawRMRERERESk1lOCJiIiIiIiUEnpEU0REREREpJTQCp6IiIiIiEgpUcbTARRWtWrVbHBwsKfDyOf48eOUL1/e02HIeWieSj7NkXfQPHkHzZN30DyVfJoj73AxzVNiYuJBa231go55XYIXHBxMQsLZKnJ7TlxcHFFRUZ4OQ85D81TyaY68g+bJO2ievIPmqeTTHHmHi2mejDF7znZMj2iKiIiIiIiUEkrwRERERERESgkleCIiIiIiIqWE172DJyIiIiIi+aWnp7Nv3z5SU1M9HYpHVKpUic2bN3s6DKfy9/enTp06+Pn5XfA1SvBEREREREqBffv2UbFiRYKDgzHGeDoct0tJSaFixYqeDsNprLUcOnSIffv2Ua9evQu+To9oioiIiIiUAqmpqVStWvWiTO5KI2MMVatWLfSKrBI8EREREZFSQsld6VKU+VSCJyIiIiIiUkoowRMREREREafw9fUlLCws92f37t20b9/+nNdERUWRkJCQb/9NN93EkSNHnB5jcHAwBw8eBDgttuHDh9OkSROGDx/OH3/8QZs2bWjRogXLli0r1PgJCQk8+uijTo25MFRkRUREREREnCIgIICkpKTT9i1fvrxIY3311VfOCOmc8sY2adIkDh8+jK+vL7Nnz6ZZs2Z8+OGHhR4zPDyc8PBwZ4ZZKFrBExERERERl6lQoULu76+99hrNmjUjNDSUkSNHnnZeVlYWAwYM4LnnngNOX2m77bbbaNWqFU2aNGHSpEmnjf3ss88SGhpKly5d2L9/f777Hzp0iOuuu44mTZowcOBArLX5YouOjubYsWO0atWK1157jaeffprPP/+csLAwTp48edp3+PTTTxkwYAAAc+fOpWnTpoSGhtKpUycA4uLi6N69OwCHDx/mtttuo3nz5rRt25affvoJgNGjR3P//fcTFRXFlVdeyfjx44v2xy2AVvBEREREREqZxx57LN9KWnGFhYXx1ltvnfOckydPEhYWBkC9evWYP39+7rH//Oc/fP7556xatYrAwEAOHz6ceywjI4N+/frRtGlTnn322XzjTp06lSpVqnDy5EkiIiLo2bMnVatW5fjx47Rt25aXX36Zxx57jMmTJ+cmiDlefPFFOnbsyAsvvMCXX37JlClT8o2/cOFCKlSokPs3q1mzJgkJCbz77rvn/L5jxozhm2++oXbt2gU+Tjpq1ChatGjBggUL+OGHH7jnnnty77FlyxaWLFlCSkoKDRs25JFHHilUv7uzUYInIiIiIiJOUdAjmjkWL17MfffdR2BgIABVqlTJPfbwww9z1113FZjcAYwfPz43Wdy7dy/btm2jatWqlC1bNne1LCwsjPj4+HzXLl26lHnz5gFw8803U7ly5aJ/wTN06NCBAQMGcNddd3H77bfnOx4fH89nn30GQJcuXTh06BBHjx7NjaVcuXKUK1eOGjVqsH//furUqVPsmJTgiYiIiIiUMudbaStp2rdvz5IlS3jyySfx9/c/7VhcXByLFy9mxYoVBAYGEhUVldsbzs/PL7eVgK+vLxkZGS6JL2+7grx96d5//31WrVrFl19+SatWrUhMTLzgMcuVK5f7uzNj1zt4IiIiIiLict26dSM2NpYTJ04AnPaI5gMPPMBNN93EXXfdlS/R+euvv6hcuTKBgYFs2bKFlStXFuq+nTp1YtasWYDjMdE///yz0LHXrFmTzZs3k5WVddpjpzt27KBNmzaMGTOG6tWrs3fv3tOui4yMZObMmYAjUa1WrRpBQUGFvn9hKMETERERERGXu+GGG4iOjiY8PJywsDDGjh172vEnnniCFi1a0L9/f7Kysk67LiMjg5CQEEaOHEnbtm0Ldd9Ro0axdOlSmjRpwrx587jiiisKHfurr75K9+7dad++PbVq1crdP3z4cJo1a0bTpk1p3749oaGhp103evRoEhMTad68OSNHjmT69OmFvndhmbxVZLxBeHi4LahPhqfFxcURFRXl6TDkPDRPJZ/myDtonryD5sk7aJ5KPm+Zo82bNxMSEuLpMDwmJSWFihUrejoMpytoXo0xidbaAnsxaAVPRERERESklFCCJyIiIiIiUkoowRMRERERESkllOCJiIiIiIiUEkrwRERERERESgkleCIiIiIiIqWEEjwREREREfGIhIQEHn30UQBOnTpF165dCQsLY86cOR6O7Nzmzp1LSEgI11xzzWnfYdq0aQwZMsSjsZXx6N1FRERERMRzkpOhd2+YMwcuvdTttw8PDyc83NHObd26dQAkJSVd8PWZmZn4+vq6JLZzjT1lyhQmT55Mx44dAXK/Q0mgFTwRERERkYtVTAzEx8OYMcUeavfu3TRt2jR3e+zYsYwePRqAqKgoRowYQevWrWnQoAHLli0DHE3ku3fvzoEDB7j77rtZs2YNYWFh7Nixg++//54WLVrQrFkz7r//fk6dOgVAcHAwI0aMoGXLlsydO5fg4GCeeeYZOnToQHh4OGvXruX666/nqquu4v333y8wzkaNGtGvXz9CQkK44447OHHiRIFjf/zxxzRr1oymTZsyYsQIAMaMGUN8fDwPPPAAw4cPz/0OZ/rjjz/o2bMnERERRERE8OOPPxb7b3whlOCJiIiIiFxsAgLAGJg4EbKyHJ/GOPa7SEZGBqtXr+att97ixRdfPO1YjRo1+PDDD4mMjCQpKYnatWszYMAA5syZw4YNG8jIyGDixIm551etWpW1a9fSu3dvAK644gp+/PFHIiMjGTBgAJ9++ikrV65k1KhRBcbyyy+/MHjwYDZv3kxQUBDvvfdevrE7derEiBEj+OGHH0hKSmLNmjUsWLCAF154gfDwcGbOnMkbb7xx1u87bNgwHn/8cdasWcNnn33GwIEDi/Pnu2BK8ERERERELjY7d0LfvhAY6NgODIR+/WDXLpfd8vbbbwegVatW7N69+5zn/vLLL9SrV48GDRoAcO+997J06dLc47169Trt/OjoaACaNWtGmzZtqFixItWrV6dcuXIcOXIk3/iXX345HTp0AODuu+8mPj4+39hr1qwhKiqK6tWrU6ZMGfr163daDOezePFihgwZQlhYGNHR0Rw9epRjx45d8PVFpXfwREREREQuNrVqQVAQpKaCv7/jMyioWO/hlSlThqysrNzt1NTU046XK1cOAF9fXzIyMop8H4Dy5csXOLaPj0/u7znbBd3LGHPW7TPHLqqsrCxWrlyJv7+/U8a7UFrBExERERG5GO3fD4MGwcqVjs/ffy/WcDVr1uTAgQMcOnSIU6dOsWjRoiKP1bBhQ3bv3s327dsBmDFjBp07dy5WfHn9+uuvrFixAoBZs2blFkvJq3Xr1vz3v//l4MGDZGZm8vHHHxcqhuuuu4533nknd7swxWOKQyt4IiIiIiIXo3nz/v59woRiD+fn58cLL7xA69atqV27No0aNSryWP7+/sTGxnLnnXeSkZFBREQEgwYNKnaMORo2bMiECRO4//77ady4MY888ki+c2rVqsWrr77KNddcg7WWm2++mVtvvfWC7zF+/Hj+8Y9/0Lx5czIyMujUqVOBRV+czVhrXX4TZwoPD7cJCQmeDiOfuLg4oqKiPB2GnIfmqeTTHHkHzZN30Dx5B81Tyectc7R582ZCQkI8HYbHpKSkULFixfOet3v3brp3787GjRvdEFXxFTSvxphEa22BvRn0iKYzJCcTNmxYsZe1RUREREREikMJnjPExFBpwwan9A8RERERERHXCQ4O9prVu6JQglccefqHGGvd0j9ERERERETkbJTgFUd2/5BTvr4AWDf0DxERERERETkbJXjFkd0/pGxWFicBTp4sdv8QERERERGRolKCV1z793PinntoC6xt3VqFVkRERERExGOU4BXXvHn4T53C4dZ1eNLf//R+IiIiIiIiUmwDBgzg008/LdQ1CxYsYNOmTbnbL7zwAosXL3Z2aGc1fvx4QkJC6NevHwsXLuTVV18FYPTo0YwdO9Zl91WjcycYt3Ic+27aR/L4ZI4ePUpQUJCnQxIREREROa/kZOjdG+bM8c63jDIzM/HNrodxpgULFtC9e3caN24MwBgXVLw/1/3fe+89Fi9eTJ06dQCIjo52+v0LohU8J7ilwS0AZNbPZMmSJR6ORkRERETkwsTEQHy849MZXn75ZRo0aEDHjh3p06dP7kpVVFQUCQkJABw8eJDg4GDA0XQ8MjKSli1b0rJlS5YvXw6AtZYhQ4bQsGFDunbtyoEDB3LvERwczIgRI2jZsiVz585l8uTJRERE0L59e3r27MmJEydYvnw5CxcuZPjw4YSFhbFjx47TVgHXrFlD+/btCQ0NpXXr1qSkpJz2PeLi4ujUqRM333wzDRs2ZNCgQWRlZQFQoUIFnnzySUJDQ1mxYgVvvvkmTZs2pWnTprz11lsADBo0iJ07d3LjjTcybtw4pk2bxpAhQ/L9vXbs2MENN9xAq1atiIyMZMuWLcWeAyV4TtCwWkPqBtTFt6kvX3/9tafDERERERE5r+RkiI2FrCzHZ3FLSSQmJjJ79mySkpL46quvWLNmzXmvqVGjBt999x1r165lzpw5PProowDMnz+fX375hU2bNvHRRx/lJn45qlatytq1a+nduze33347a9asYfny5YSEhDBlyhTat29PdHQ0b7zxBklJSVx11VW516alpdGrVy/efvtt1q9fz+LFiwkooM3Z6tWreeedd9i0aRM7duxgXvarWMePH6dNmzasX7+egIAAYmNjWbVqFStXrmTy5MmsW7eO999/n8suu4wlS5bw+OOPn/X7P/TQQ7zzzjskJiYyduxYBg8efEF/63PRI5pO0ql6J2acmMGXs7/EWosxxtMhiYiIiIicVUyMI7kDyMx0bE+YUPTxli1bRo8ePQgMDAQu7JHE9PR0hgwZQlJSEr6+vmzduhWApUuX0qdPH3x9fbnsssvo0qXLadf16tUr9/eNGzfy3HPPcfjwYU6cOMH1119/znv+8ssv1KpVi4iICICzvl7VunVrrrzySgD69OlDfHw8d9xxB76+vvTs2ROA+Ph4evToQfny5QG4/fbbWbZsGS1atDjvdz927BjLly/nzjvvzN136tSp8153PkrwnCSyWiQzfp3B3sC9bN26lYYNG3o6JBERERGRAuWs3qWlObbT0hzbzz/vmnfxypQpk/uIY2pqau7+cePGUbNmTdavX09WVhb+/v4XNF5OQgWOAiwLFizgyiuv5LPPPiMuLs4pMZ+5YJOz7e/vf9b37gojKyuLSy65hKSkpGKPlZce0XSS+hXqM7PbTFgP33zzjafDERERERE5q7yrdzlyVvGKqlOnTixYsICTJ0+SkpLCF198kXssODiYxMREgNOqYf7111/UqlULHx8fZsyYQWZmZu5Yc+bMITMzk+Tk5HPWuUhJSaFWrVqkp6czc+bM3P0VK1bM924dQMOGDUlOTs59hDQlJYWMjIx8561evZpdu3aRlZXFnDlz6NixY75zIiMjWbBgASdOnOD48ePMnz+fyMjI8/2pAMfKYb169Zg7dy7geO9w/fr1F3TtuSjBcxJjDH3b96VB/QZ6D09ERERESrQVK/5evcuRlgZnvOpWKC1btqRXr16EhoZy44035j4CCfDUU08xceJEWrRowcGDB3P3Dx48mOnTpxMaGsqWLVtyV+Z69OjB1VdfTePGjbnnnnto167dWe8bExNDmzZt6NatG40aNcrd37t3b9544w1atGjBjh07cveXLVuWOXPmMHToUEJDQ+nWrdtpq4o5IiIiGDJkCCEhIdSrV48ePXoU+J0HDBhA69atadOmDQMHDrygxzNzzJw5kylTphAaGkqTJk34/PPPL/jaszHW2mIP4k7h4eE2pwJPSRIXF0dE+wg6v9CZDYs2cGTNkQJf1hTPiouLIyoqytNhyDlojryD5sk7aJ68g+ap5POWOdq8eTMhISGeDiPX6NGjqVChAk899ZRb7peSkkLFihWdMlZcXBxjx45l0aJFThmvOAqaV2NMorU2vKDztYLnRAF+AewM2kla4zSWLVvm6XBEREREROQiowTPiXyMDz0b94SrYdE3ns/2RUREREQ8ZfTo0W5bvXO2qKioErF6VxRK8JysV/NeUBYW/LTA06GIiIiIiMhFRgmek3Wu25kAAthbYS+//vqrp8MREREREZGLiBI8J/Pz9eO2q26DdLVLEBERERER91KC5wIz+82kzvo6SvBERERERMStlOC5gDGGG264gW+WfUN6erqnwxERERER8WpHjhzhvffey93+7bffuOOOO9x2/z/++IM2bdrQokULli1bxk033cSRI0cAqFChgtviuBBK8FwkOTSZY/ccY/nKYnSLFBERERG5yGVkZORL8C677DI+/fRTp9/nbL7//nuaNWvGunXriIyM5KuvvuKSSy5x6v2dRQmei/SI6AEVIPbbWE+HIiIiIiLiFi+//DINGjSgY8eO9OnTh7FjxwKOtgMJCQkAHDx4kODgYAB2795NZGQkLVu2pGXLlixf7lgciYuLIzIykujoaBo3bszIkSPZsWMHYWFhDB8+nN27d9O0aVMAMjMzeeqpp2jTpg3NmzfnnXfeyRdXVFQUw4YNIywsjKZNm7J69WrA0cqhf//+dOjQgf79+7N79266dOlC8+bNufbaa/n1119JSkri6aef5vPPPycsLIyTJ08SHBzMwYMH893njTfeICIigubNmzNq1Cin/30vRBmP3LWUSU6GYcPC+OYbuPRSx747w+7kwa8e5Os9X+c/uXdvmDPn75NFRERERJwsalpUvn13NbmLwRGDOZF+gptm3pTv+ICwAQwIG8DBEwe545PTH4GMGxB3zvslJiYye/ZskpKSyMjIoGXLlrRq1eqc19SoUYPvvvsOf39/tm3bRp8+fXITwbVr17Jx40bq1avH7t272bhxI0lJSYAjMcwxadIkdu/ezY8//kjlypU5fPhwgfc6ceIESUlJLF26lPvvv5+NGzcCsGnTJuLj4wkICOCWW27h3nvv5d5772Xq1Kk8+uijLFiwgDFjxpCQkMC777571u/y7bffsm3bNlavXo21lujoaJYuXUqn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\n", + "text/plain": [ + "<Figure size 1080x1080 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(15, 15))\n", + "for i in range(len(models)):\n", + " plt.plot(solutions_2C[i]['Time [s]'].entries,\n", + " solutions_2C[i]['Terminal voltage [V]'].entries, style[i], label=particle_options[i])\n", + "plt.legend()\n", + "plt.title('Model Comparison 2C')\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('Voltage [V]')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The quadratic model is still much better at approximating Fickian diffusion and the relative error in the uniform model has increased. However, the initial error in the quadratic model has grown slightly. Increasing current even more will highlight the problem further. The quartic model is still providing an excellent match to the Fickian diffusion profile." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "t_eval = np.linspace(0, 360, 72)\n", + "solutions_6C = []\n", + "for sim in simulations:\n", + " sim.solve(t_eval, inputs={\"Current function [A]\": 6*0.68})\n", + " solutions_6C.append(sim.solution)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA34AAANsCAYAAAAEN3qEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd3TUVf7/8edNKEkMAQSBCEIATaElgQBKDboE26KCgIIFXXBRWSusukWRfHfX/cmuhY24VJVFATEU21KUCBEiRYKyAiJFQENogqGEtPv7YyYxQOgz+cwMr8c5OZ/51PueuZyjr3M/n/sx1lpEREREREQkcAU5XYCIiIiIiIh4l4KfiIiIiIhIgFPwExERERERCXAKfiIiIiIiIgFOwU9ERERERCTAKfiJiIiIiIgEOAU/ERHxWcaYKGOMNcZUOYtjBxtjMiujrspmjHndGPNnp+sQERH/peAnIiIeYYzZZowpMMbUPWH7Gnd4i3KmsrI6qhljRhljNhljDrvrnex0XWfDWjvMWptamW0aY4KNMf9njPnRGJPn7sda5fZHG2PeNcbsNcYcNMZ8ZYx5whgTXJl1iojI2VHwExERT9oK3Fm6YoxpDYQ5V85xZgG9gYFATSAeWA1c52RRZ+JgkHoe6ARcA0QAdwP57pqaA18AO4DW1tqaQD8gCajhSLUiInJaCn4iIuJJU4F7yq3fC7xV/gBjTE1jzFvGmD3GmO+NMX8yxgS59wUbY8a4R5G2ADdVcO4kY0yOMeYH94jUGYORMeZXQE/gFmvtSmttkbX2oLU2zVo7yX3M5caYecaY/caY74wxQ8udP8o9uvUf9+jX1+4Rr2eMMbuNMTuMMSnljs8wxvzNGLPCGPOzMWauMebScvvfNcbsco+ULTHGtCy37w1jzDhjzEfGmMNAD/e2/3Pvr2uM+cAYc8Bd69Jyv1+cu+0Dxpj/GWN6n3DdNGPMh+7v8IU7wFX0e9UGHgOGWmu/ty7rrLX57kOeB5ZZa5+w1uYAWGs3WmsHWmsPnKk/RESk8in4iYiIJ2UBEe4AEgzcAfznhGPG4hpxawZ0xxUU73PvGwrcDCTiGj26/YRz3wCKgCvdx6QAQ86irl8BK6y1O05zzHRgJ3C5u92/GmOuLbf/17iCbW1gDTAf139HGwKjgX+fcL17gPuBSHfNr5bb9zFwFVAP+BKYdsK5A4G/4Bo9O/G5xSfddV4G1Af+AFhjTFXgfWCB+7q/A6YZY2LKnXsHrtBWG/jO3UZFWrtrvt0dUL81xjxcbv+vcI2gioiIn1DwExERTysd9esJrAd+KN1RLgw+Y63Ns9ZuA/6B6zZCgP7Ay9baHdba/cDfyp1bH7gReMxae9hauxt4yX29M6kD5JxqpzHmCqAz8JS1Nt9amw1M5PjRy6XW2vnW2iLgXVzB6wVrbSGu0BhV/hk4YKp7lOww8Gegf+nopLV2svv7HwNGAfHGmJrlzp1rrf3cWltSbpStVCGuMNnEWltorV1qrbXA1UC4u6YCa+2nwAeUu/UWmG2tXeH+DtOAhFP8JI1whfNooCmuIDzKGNPzbH5PERHxPQp+IiLiaVNxjVgN5oTbPIG6QFXg+3Lbvsc1agau0bYdJ+wr1cR9bo77VsYDuEbZ6p1FTftwhaVTuRzYb63NO0VdALnlPh8F9lpri8utgyt4lTrxe1QF6rpvZ33BGLPZGPMzsM19TN1TnHuiF3GN1i0wxmwxxjxd7jvssNaWnOY77Cr3+cgJ9ZZX+n1GW2uPWmu/whVub3RvP9PvKSIiPkbBT0REPMpa+z2uSV5uBNJP2L0X14hVk3LbGvPLqGAOcMUJ+0rtAI4Bda21tdx/EdbalpzZIqCDMabRKfb/CFxqjCk/MUn5us7Hid+jENf3Hwjcgut2yZpAlPsYU+54e6qLukcKn7TWNsM1Wc0Txpjr3N/hitLn/S7wO3xVQR3lPy8C+p7HdUVExCEKfiIi4g2/Aa513+ZYxj1CNhP4izGmhjGmCfAEvzwHOBN4xBjTyD3ByNPlzs3B9fzaP4wxEcaYIGNMc2NM9zMVY61dBCwEZhtj2hljqrjbH2aMud/97N8y4G/GmBBjTBv3dzjx+cRzcZcxpoUxJgzXM4Cz3N+/Bq4Auw/XjKd/PZeLGmNuNsZcaYwxwEGgGCjBNcvmEeD3xpiqxphkXM8lTj/Xwq21m4GlwB+NMdWNMXG4bqn9wH3Ic0AnY8yLxpgG7rqudE9+U6viq4qIiJMU/ERExOOstZuttatOsft3wGFgC66JS94GJrv3TcA1acpaXJOenDhieA9QDfgG+AnXBCNne8vh7cBHwAxcgWkdrglkFrn334lr9O1HYDbwnDswnq+puCaj2QWEAI+4t7+F6xbMH9zfI+scr3uVu+ZDwHLgNWvtYmttAa6gdwOukcXXgHustRvOs/47cY3M7gM+BP5srf0EyoLhNbh+r/8ZYw4C7wGrgLwKryYiIo4yrufBRURExFOMMRnAf6y1E52uRUREBDTiJyIiIiIiEvAU/ERERERERAKcbvUUEREREREJcBrxExERERERCXBVnC7AU+rWrWujoqKcLuMkhw8f5pJLLnG6DDkD9ZN/UD/5B/WT71Mf+Qf1k39QP/m+i6mPVq9evddae1lF+wIm+EVFRbFq1almDndORkYGycnJTpchZ6B+8g/qJ/+gfvJ96iP/oH7yD+on33cx9ZEx5vtT7dOtniIiIiIiIgFOwU9ERERERCTAKfiJiIiIiIgEuIB5xk9ERERERE5WWFjIzp07yc/Pd7oUR9SsWZP169c7XYZHhYSE0KhRI6pWrXrW5yj4iYiIiIgEsJ07d1KjRg2ioqIwxjhdTqXLy8ujRo0aTpfhMdZa9u3bx86dO2natOlZn6dbPUVEREREAlh+fj516tS5KENfIDLGUKdOnXMewVXwExEREREJcAp9geV8+lPBT0REREREJMAp+ImIiIiIiFcFBweTkJBQ9rdt2zY6dep02nOSk5NZtWrVSdtvvPFGDhw44PEao6Ki2Lt3L8BxtY0cOZKWLVsycuRI9uzZQ8eOHUlMTGTp0qXndP1Vq1bxyCOPeLTmc6HJXURERERExKtCQ0PJzs4+btuyZcvO61offfSRJ0o6rfK1jR8/nv379xMcHMz06dNp3bo1EydOPOdrJiUlkZSU5Mkyz4lG/EREREREpNKFh4eXff773/9O69atiY+P5+mnnz7uuJKSEgYPHsyf/vQn4PiRuVtvvZV27drRsmVLxo8ff9y1//jHPxIfH8+1115Lbm7uSe3v27ePlJQUWrZsyZAhQ7DWnlRb7969OXToEO3atePvf/87v//975k7dy4JCQkcPXr0uO8wa9YsBg8eDMC7775Lq1atiI+Pp1u3bgBkZGRw8803A7B//35uvfVW2rRpw9VXX81XX30FwKhRo7j//vtJTk6mWbNmvPrqq+f341ZAI34iIiIiIheJxx577KSRtwuVkJDAyy+/fNpjjh49SkJCAgBNmzZl9uzZZfs+/vhj5s6dyxdffEFYWBj79+8v21dUVMSgQYNo1aoVf/zjH0+67uTJk7n00ks5evQo7du3p2/fvtSpU4fDhw9z9dVX85e//IXHHnuMCRMmlAXHUs8//zxdunTh2Wef5cMPP2TSpEknXX/evHmEh4eX/Wb169dn1apV/Otf/zrt9x09ejTz58+nYcOGFd6W+txzz5GYmMicOXP49NNPueeee8ra2LBhA4sXLyYvL4+YmBgefPDBc3pf36ko+ImIiIiIiFdVdKtnqUWLFnHfffcRFhYGwKWXXlq277e//S39+/evMPQBvPrqq2UhcseOHWzatIk6depQrVq1stG1hIQEMjMzTzp3yZIlpKenA3DTTTdRu3bt8/+CJ+jcuTODBw+mf//+9OnT56T9mZmZvPfeewBce+217Nu3j59//rmslurVq1O9enXq1atHbm4ujRo1uuCaFPxERERERC4SZxqZ8zWdOnVi8eLFPPnkk4SEhBy3LyMjg0WLFrF8+XLCwsJITk4ue7dd1apVy155EBwcTFFRkVfqK/9ahfLv1Xv99df54osv+PDDD2nXrh2rV68+62tWr1697LMna9czfiIiIiIi4piePXsyZcoUjhw5AnDcrZ6/+c1vuPHGG+nfv/9JAejgwYPUrl2bsLAwNmzYQFZW1jm1261bN95++23AdbvpTz/9dM61169fn/Xr11NSUnLc7aubN2+mY8eOjB49mssuu4wdO3Ycd17Xrl2ZNm0a4AqwdevWJSIi4pzbPxcKfiIiIiIi4pjrr7+e3r17k5SUREJCAmPGjDlu/xNPPEFiYiJ33303JSUlx51XVFREXFwcTz/9NFdfffU5tfvcc8+xZMkSWrZsSXp6Oo0bNz7n2l944QVuvvlmOnXqRGRkZNn2kSNH0rp1a1q1akWnTp2Ij48/7rxRo0axevVq2rRpw9NPP82bb755zm2fK1N+9hp/lpSUZCt6z4fTMjIySE5OdroMOQP1k39QP/kH9ZPvUx/5B/WTf/CHflq/fj1xcXFOl+GYvLw8atSo4XQZHldRvxpjVltrK3xnhEb8REREREREApyCn4iIiIiISIBT8BMREREREQlwCn4iIiIiIiIBTsFPREREREQkwCn4iYiIiIiIBDgFPxERERER8SmrVq3ikUceAeDYsWP86le/IiEhgRkzZjhc2em9++67xMXF0aNHj+O+wxtvvMHw4cMdra2Ko62LiIiIiIjvycmBO+6AGTOgQYNKbz4pKYmk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si/sojk50L077NrlmSJFRERERMTvKPj5kOrVq5OcnMz8+fP5dcyv+fSeT2lZr+WFXTQ1FTIzYfRozxQpIiIiIiJ+R8HPx/Tq1YvvvvuOAzkH6NG0B9WCq53fhUJDwRgYNw5KSlxLY1zbRURERETkoqLg52NSUlIA12sdNu/fzFMLn2L/0f3nfqEtW2DgQAgLc62HhcGgQbB1qwerFRERERERf6Dg52Oio6Np0qQJCxYsIPdwLv9v2f9j4ebzeK1DZCREREB+PoSEuJYREdCggeeLFhERERERn6bg52OMMaSkpPDJJ5/Qtl5bLg29lI++++j8LpabC8OGQVaWa6kJXkRERERELkpVnC5ATpaSksKECRNYvWo1vZr34r/f/ZcSW0KQOcecnp7+y+e0NM8WKSIiIiIifkMjfj7ouuuuIygoiPnz53PjVTey+/Buvsz50umyRERERETETyn4+aDatWvToUMHFixYQK/mvagdUputP2lSFhEREREROT8Kfj6qV69erFy5kuBjwewZuYd+Lfs5XZKIiIiIiPgpBT8flZKSQklJCZ988gnBQcEAWGsdrkpERERERPyRgp+P6tChAzVr1mT+/Pn88PMPxKXF8c66d5wuS0RERERE/JCCn4+qUqUK1113HQsWLKBBeAP2HdnHR5vO87UOIiIiIiJyUVPw82G9evVix44dfLvxW66/8nr++91/KS4pdrosERERERHxMwp+PiwlJQWABQsWcMOVN7Dv6D5W/bjK4apERERERMTfKPj5sKioKKKjo5k/fz4pzVMIMkG63VNERERERM6Zgp+PS0lJISMjg/DgcP7Y9Y9c3ehqp0sSERERERE/o+Dn43r16sXRo0fJzMxkdI/R3HDVDU6XJCIiIiIifkbBz8clJydTtWpVFixYAMCmfZtYv2e9w1WJiIiIiIg/UfDzceHh4XTu3Jn58+djraXbG914/rPnnS5LRERERET8iIKfH0hJSWHt2rXk5uZyw5U3MH/zfIpKipwuS0RERERE/ISCnx8ofa3DwoULueHKGziQf4CsnVmebSQnB7p3h127PHtdERERERFxnIKfH0hMTKRu3bosWLCAns17EmyCPf9ah9RUyMyE0aM9e10REREREXGcgp8fCAoKomfPnixYsICIahF0bdKVDzd96JmLh4aCMTBuHJSUuJbGuLaLiIiIiEhAUPDzE7169WL37t189dVXvHbja3x6z6eeufCWLTBwIISFudbDwmDQINi61TPXFxERERERxyn4+YmePXsCMH/+fOIui6NOWB3PXDgyEiIiID8fQkJcy4gIaNDAM9cXERERERHHKfj5icsvv5zWrVuXvc8vfX06Q+cN9czFc3Nh2DDIynItNcGLiIiIiEhAqeJ0AXL2UlJSGDt2LIcPH2brT1uZuGYiz3R9hma1m13YhdPTf/mclnZh1xIREREREZ+jET8/0qtXLwoKCvjss8/o26IvAO99857DVYmIiIiIiK9T8PMjXbp0ISQkhPnz5xNVK4p2ke14b72Cn4iIiIiInJ6Cnx8JDQ2le/fuZc/59Y3ryxc/fMGOgzscrkxERERERHyZgp+fSUlJYcOGDWzfvp2+LfrSpXEX9h7Z63RZIiIiIiLiwxT8/EyvXr0AWLBgAdF1oll631ISIxMdrkpERERERHyZgp+fadGiBQ0bNuSjjz4q2/bT0Z/IO5bnYFUiIiIiIuLLFPz8jDGGW2+9lY8//phDhw6x/eB26o2px9SvpjpdmoiIiIiI+CgFPy/KyYFHH03w+PvQ+/fvT35+Pu+//z6Nazbmykuv1OyeIiIiIiJySgp+XpSaCl9/XZPUVM9et0uXLkRGRjJz5kzANbtnxrYM9hze49mGREREREQkICj4eUlODkyZAtYapkzBo6N+QUFB9OvXj48//piff/6Z21vcToktYe7GuZ5rREREREREAoaCn5ekpkJJietzcTEeH/UbMGAAx44dY968ecTXj6dZ7Wa63VNERERERCqk4OcFpaN9BQWu9YICPD7qd/XVV9OoUSNmzJiBMYaJv57IK9e/4rkGREREREQkYCj4eUH50b5Snh71CwoKon///syfP58DBw7Qo2kPoutEe66B08nJge7dPZtkRURERETEaxT8vGD58l9G+0oVFMCyZZ5tp3///hQWFjJ3ruvZvo83fcyLn7/o2UYqkpoKmZkwerT32xIRERERkQum4OcFa9aAta6/xYszyj6vWePZdjp06ECTJk2YMWMGAPM3z+fPi//svZe5h4aCMTBunGtIc9w413poqHfaExERERERj1Dw82PGGPr378/ChQvZv38/t7e4nWPFx/hw04feaXDLFhg4EMLCXOthYTBoEGzd6p32RERERETEIxT8/Fz//v0pKipi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\n", + "text/plain": [ + "<Figure size 1080x1080 with 1 Axes>" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(15, 15))\n", + "for i in range(len(models)):\n", + " plt.plot(solutions_6C[i]['Time [s]'].entries,\n", + " solutions_6C[i]['Terminal voltage [V]'].entries, style[i], label=particle_options[i])\n", + "plt.legend()\n", + "plt.title('Model Comparison 6C')\n", + "plt.xlabel('Time [s]')\n", + "plt.ylabel('Voltage [V]')\n", + "plt.grid()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now the quadratic profile assumption begins to breakdown and that initial error propagates much further into the discharge. Happily the quartic model is higher-order and the match to the Fickian profile is still very good.\n", + "\n", + "Finally we can take a look at some of the internal states using PyBaMM's `dynamic_plot`" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d7df52e4953e46c0a0f766e235f24b2a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=360.0, step=3.6), Output()), _dom_classes=('…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pybamm.dynamic_plot(solutions_6C);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/models/DFN.ipynb b/examples/notebooks/models/DFN.ipynb index 54e2ff3328..7dcf280071 100644 --- a/examples/notebooks/models/DFN.ipynb +++ b/examples/notebooks/models/DFN.ipynb @@ -99,28 +99,35 @@ "source": [ "Below we show how to solve the DFN model, using the default geometry, mesh, parameters, discretisation and solver provided with PyBaMM. For a more detailed example, see the notebook on the [SPM](https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/models/SPM.ipynb).\n", "\n", - "First we need to import pybamm, and then change our working directory to the root of the pybamm folder." + "In order to show off all the different points at which the process of setting up and solving a model in PyBaMM can be customised we explicitly handle the stages of choosing a geometry, setting parameters, discretising the model and solving the model. However, it is often simpler in practice to use the `Simulation` class, which handles many of the stages automatically, as shown [here](../simulation-class.ipynb).\n", + "\n", + "First we need to import pybamm, along with numpy which we will use in this notebook." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", "import pybamm\n", - "import numpy as np\n", - "import os\n", - "import matplotlib.pyplot as plt\n", - "os.chdir(pybamm.__path__[0]+'/..')" + "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We then get the DFN model equations, and process the model using default settings for the geometry and parameters." + "We then load the DFN model and default geometry, and process them both using the default parameters." ] }, { @@ -166,7 +173,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "The model is now ready to be solved. We select the default DAE solver for the DFN. Note that in order to successfully solve the system of DAEs we are required to give consistent initial conditions. This is handled automatically by PyBaMM during the solve operation.\n" + "The model is now ready to be solved. We select the default DAE solver for the DFN. Note that in order to successfully solve the system of DAEs we are required to give consistent initial conditions. This is handled automatically by PyBaMM during the solve operation." ] }, { @@ -178,7 +185,7 @@ "# solve model\n", "solver = model.default_solver\n", "t_eval = np.linspace(0, 3600, 300) # time in seconds\n", - "solution = solver.solve(model, t_eval)\n" + "solution = solver.solve(model, t_eval)" ] }, { @@ -196,12 +203,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "c0cb0a7f6d134873aeff4ef5b3a4730a", + "model_id": "b72126bb294743c38f4aa5069787b9b6", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=3599.9999999999995, step=35.99999999999999),…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" ] }, "metadata": {}, @@ -247,20 +254,6 @@ "## References\n", "[1] M. Doyle, T.F. Fuller, and J. Newman. Modeling of galvanostatic charge and discharge of thelithium/polymer/insertion cell.Journal of the Electrochemical society, 140(6):1526–1533, 1993" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -279,7 +272,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/models/SPM.ipynb b/examples/notebooks/models/SPM.ipynb index 923d027b1b..3ac578ad45 100644 --- a/examples/notebooks/models/SPM.ipynb +++ b/examples/notebooks/models/SPM.ipynb @@ -48,7 +48,7 @@ "source": [ "## Example solving SPM using PyBaMM\n", "\n", - "Below we show how to solve the Single Particle Model, using the default geometry, mesh, parameters, discretisation and solver provided with PyBaMM.\n", + "Below we show how to solve the Single Particle Model, using the default geometry, mesh, parameters, discretisation and solver provided with PyBaMM. In this notebook we explicitly handle all the stages of setting up, processing and solving the model in order to explain them in detail. However, it is often simpler in practice to use the `Simulation` class, which handles many of the stages automatically, as shown [here](../simulation-class.ipynb).\n", "\n", "First we need to import `pybamm`, and then change our working directory to the root of the pybamm folder. " ] @@ -1093,7 +1093,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/models/SPMe.ipynb b/examples/notebooks/models/SPMe.ipynb index af139e597b..b9059f081b 100644 --- a/examples/notebooks/models/SPMe.ipynb +++ b/examples/notebooks/models/SPMe.ipynb @@ -97,30 +97,34 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Below we show how to solve the SPMe model, using the default geometry, mesh, parameters, discretisation and solver provided with PyBaMM. For a more detailed example, see the notebook on the [SPM](https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/models/SPM.ipynb).\n", + "Below we show how to solve the SPMe model using the `Simulation` class with all the default settings. For a more detailed example, see the notebook on the [SPM](https://github.com/pybamm-team/PyBaMM/blob/master/examples/notebooks/models/SPM.ipynb). \n", "\n", - "First we need to import `pybamm`, and then change our working directory to the root of the pybamm folder." + "First we need to import `pybamm`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", - "import pybamm\n", - "import numpy as np\n", - "import os\n", - "import matplotlib.pyplot as plt\n", - "os.chdir(pybamm.__path__[0]+'/..')" + "import pybamm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We then get the SPMe model equations, and process the model using default settings for the geometry and parameters." + "We then load the SPMe model and create a simulation" ] }, { @@ -132,76 +136,59 @@ "# load model\n", "model = pybamm.lithium_ion.SPMe()\n", "\n", - "# create geometry\n", - "geometry = model.default_geometry\n", - "\n", - "# load parameter values and process model and geometry\n", - "param = model.default_parameter_values\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)" + "# create simulation\n", + "simulation = pybamm.Simulation(model)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The next step is to set the mesh and discretise the model. Again, we choose the default settings." + "The simulation is now ready to be solved" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "<pybamm.solvers.solution.Solution at 0x7f69f08dd2e8>" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model);" + "# solve simulation\n", + "simulation.solve([0, 3600]) # time interval in seconds" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "The model is now ready to be solved. We select the default ODE solver for the SPMe.\n" + "To get a quick overview of the model outputs we can use the built-in `plot` method of the simulation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [], - "source": [ - "# solve model\n", - "solver = model.default_solver\n", - "t_eval = np.linspace(0, 3600, 250) # time in seconds\n", - "solution = solver.solve(model, t_eval)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To get a quick overview of the model outputs we can use the QuickPlot class, which plots a common set of useful outputs. The method `Quickplot.dynamic_plot` makes a slider widget." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "d6a69c4f69354cdcbb72dd4b9328e0c7", + "model_id": "47ee8d1901bd4bdd87fba1d347da16ec", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=3599.9999999999995, step=35.99999999999999),…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" ] }, "metadata": {}, @@ -209,8 +196,7 @@ } ], "source": [ - "quick_plot = pybamm.QuickPlot(solution)\n", - "quick_plot.dynamic_plot();" + "simulation.plot()" ] }, { @@ -270,7 +256,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/models/pouch-cell-model.ipynb b/examples/notebooks/models/pouch-cell-model.ipynb index 2df81d2ae3..fd3d054500 100644 --- a/examples/notebooks/models/pouch-cell-model.ipynb +++ b/examples/notebooks/models/pouch-cell-model.ipynb @@ -91,7 +91,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/vsulzer/Documents/Energy_storage/PyBaMM/pybamm/models/full_battery_models/base_battery_model.py:344: UserWarning: 1+1D Thermal models are only valid if both tabs are placed at the top of the cell.\n", + "/home/user/Documents/PyBaMM/pybamm/models/full_battery_models/base_battery_model.py:361: UserWarning: 1+1D Thermal models are only valid if both tabs are placed at the top of the cell.\n", " \"1+1D Thermal models are only valid if both tabs are \"\n" ] } @@ -138,7 +138,7 @@ "I_1C = param[\"Cell capacity [A.h]\"] # 1C current is cell capacity multipled by 1 hour\n", "param.update(\n", " {\n", - " \"Current function [A]\": I_1C * 3,\n", + " \"Current function [A]\": I_1C * 3, \n", " \"Negative electrode diffusivity [m2.s-1]\": 3.9 * 10 ** (-14),\n", " \"Positive electrode diffusivity [m2.s-1]\": 10 ** (-13),\n", " \"Negative current collector surface heat transfer coefficient [W.m-2.K-1]\": 10,\n", @@ -251,12 +251,12 @@ "outputs": [], "source": [ "# set up times\n", - "tau = param.evaluate(pybamm.standard_parameters_lithium_ion.tau_discharge)\n", + "tau = param.evaluate(dfn.param.tau_discharge)\n", "comsol_t = comsol_variables[\"time\"]\n", "pybamm_t = comsol_t / tau\n", "# set up space\n", "mesh = simulations[\"1+1D DFN\"].mesh\n", - "L_z = param.evaluate(pybamm.standard_parameters_lithium_ion.L_z)\n", + "L_z = param.evaluate(dfn.param.L_z)\n", "pybamm_z = mesh[\"current collector\"].nodes\n", "z_interp = pybamm_z * L_z\n", "\n", @@ -318,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -344,7 +344,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -372,7 +372,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -393,7 +393,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -546,7 +546,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -564,12 +564,12 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { - "image/png": "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9+zZkztkyJAKv50RI0YcvvPOO79677331rz55pvtAKB3796H/+///s9je/HixS0GDBjQaDZBaAwsX7581apVq1Y8/vjjG88+++x99pqJmgiXFStWNM3JyUFRUZHsvlmLpNLPBQUF1RdccMGeBx54wJm2GfbvAgAMGjQo8G9DOkjoTTiW+RDA0zDf45IHc/3VPcz8PBGNAjATwCEA/2TmX/oLW4tvfwtgCIAqmAvsBwG4BeZuQj0BXMbMZXEdYuYNRLQA5jS2Oek3TRAEwaVnz55H5s2b18qOvADAvHnzWvXs2TPt3TwnTpx44Pbbb6cZM2YU3HTTTbsA4OOPP24+cODAIw899FDnV155Jf/8888/cPDgQbruuuuKf/zjHweezt59991bmjdv7nlYVF5envjXv/7VcsKECQdsm126dKkEgBtvvHH7bbfd1nXEiBFrOnXqVL1gwYLmL7zwQoeFCxeu8ttu7GQiQtJQ+PLLL3OnTJlSctVVV32VSGT1uXutsmjRotX292bNmrF6nJ+fb6jHHTp0qFaPO3fuXKUepxN1Saeff/GLX+woLS0dUF1dTUD4vwt79+7NmTJlyu6HH3640/PPP9/m0ksvLQeAN954o1VBQUFVKuteRLwIxyxWdOWnRLQIwFXMPFY5PR7AXcz8uvJ2bD8TARjMfApgbrtspTdh5rFENA7AZAC6rZcrACwhokeZ+XafX6frKiOitwGMArAoXgsFQRBMbrrppm3XXnttdwAbxowZc3DevHmtrr322u6333771nRtJhIJzJkz54upU6d2mzlzZqdmzZpx165dKx577LHNL7300tpp06YVT58+vYlhGLj44ot333rrrYG1hJdcckngSbxhGHjggQcKp02bVpKXl2e0aNHCePrpp9cDwGWXXVa+ZcuWpqNGjRpARNyyZUtj9uzZ60tKSpxdSS+44II+ubm5DADDhg07+MYbb6xLt42CnokTJ/ZYuHBh/t69e3MLCwuH3HLLLV/ecMMNuzJpp6KiItG/f/+BVVVVlJOTw5MmTdp95513ylTqDFPTfu7cuXPVuHHj9j799NOFQPS/C61ateJXX3117U9+8pNuP//5z7vl5ubygAEDDs+aNWtTKj5T9mbHCEL9gIjuANCBma9X0joB+G+Yi/f/wsyva8r9HMAXzPx3Je10ABOZ+adENBjAT5n5qtpugyAIxx7Lli3bMHTo0NgDxieeeKL9jBkzOq9bty6vZ8+eR2666aZt2VrvIgiCEMWyZcsKhg4d2l13TiIvgmAujl/gSytn5mnWxhFLALwOAETUlZm3WHlWwlyf8nfrnB15UZ8IUK15LQiCkALXXHPNHhErgiA0dES8CMc8zHyZJvkaIroQ5u/IHwGAiHIBPAfgFCvPPwCMJaL5AI7CXPMiCIIgCIIg1BIiXgRBAzM/AuARX/IwmLuB2XkYwFRfng+sD6yF+lfWlo+CIAiCIAjHGiJeBCEmzLwIslheEIT6g2EYBiUSCVm8KghCo8EwDAJghJ1vvPvNCYIgCELjpmznzp1trD/0giAIDR7DMGjnzp1tAIS+ZkIiL4IgCILQAKmqqvrh9u3bn9q+fftgyMNIQRAaBwaAsqqqqh+GZZCtkgVBEARBEARBaBDIkxpBEARBEARBEBoEIl4EQRAEQRAEQWgQiHgRBEEQBEEQBKFBIOJFEARBEARBEIQGgYgXQRAEQRAEQRAaBI1OvBDRiURURUTfTrEcEdGjRLSWiJYT0TDf+dZEtIWIftuQfSKi8yxbnxDRYiIaLT7Vb3+sMpdZtj4logVENDQVnywbt1o+rSaic3zncojoP0Q0t4H71J+IPiKiCiK6KVV/asmn04mo3LqfPiGiOzLlExFtsPr/EyJanKpdQRAEQWhoNKr3vBBRDoD7AcxLo/g4AH2sz0gAs6yfNncD+LAR+PQugDnMzEQ0BMDfAPQXn+q1PwCwHsBpzLyXiMYBeNJnMxIiGgjgUgCDAHQB8A4R9WXmaivL9QBWAmjdwH3aA+AnAM5PoUxt+wQA/2LmCbXk0xnMvCsd24IgCILQ0GhskZcfA3gRwFdqIhH9jIj+bT0lviuk7HkAnmWThQDaElFnq/xwAIVIT4DUK5+Y+SC7L/dpCcB50Y/4VD/9sXxawMx7rcOFALoqPn2PiBZZT9+fsASzzqfnmbmCmdcDWAtghFW+K4DxAJ5qBD59xcz/BnDUfy5bPkVRU58EQRAE4Vij0YgXIioCcAHMp9xq+hiYT8BHADgBwHAiOlVjogjAZuV4C4AiIkoAeBBAylNQ6qNPVv0XENEqAK8BmCw+1X9/fPwAwBuWTwMATALwTWY+AUA1gMvi+mR9fwTAzTDfatuYfHKoBz6dRETLiOgNIhqUQZ8YwDwiWkJEV6fhlyAIgiA0KBrTtLFHAPycmQ0iUtPHWJ//WMetYA5A407bmQrgdWbe4rPbUH0CM78M4GVr4H03gLPFp/rtjw0RnQFTKNjrcM4CMBzAvy2bzeGL8iWxNwHAV8y8hIhObyw+acimT0sBlDDzQSL6FoBXYN43NfLJYjQzbyWi4wC8TUSrmDnl6a2CIAiC0FBo0OKFiK4DMMU6bAPgeWsQUADgW0RUBYAA/IaZn4go+y0AWwF0U7J0tdJOAnAKEU2FOVhtSkQHmfmWBurTt5j5SwBg5g+JqCcRFRzrPtU3f0LsFsCcsjSOmXfb2QD8iZlv9ZW9AMCd1uEPI3w6F8C51qA6D0BrIvp/zPy9huqTfe382eqDT8z8OhE9rtxPNfEJzGz//IqIXoYZFRTxIgiCIDRemLnRfQD8EcC3re9jAHwMoJV1XATgOE2Z8TCnvRCAUQAWafJcCeC3DdknAL0BkPV9GMxBEIlP9dcfK38xzLUOJ/vSBwL43PYDQHuYT/n95QcBWAagGYAeANYByPHlOR3A3Ibsk1LulwBuqg8+Aeik3E8jAGyy7o0a+QRzPVa+laclgAUAxqbaV/KRj3zkIx/5NKRPg468xIGZ51lzyz+yIiAHAXwPwekZr8N8krwWwCEAVzVSny4CcDkRHQVwGMAkZrbnzYtP9dMfALgDQAcAj1t1VzFzKTOvIKL/tnxLwFyofh2AjWphZv6MiP4GYAWAKgDXsbtbVaPxiYg6AVgMczcwg4imAxiY5X76NoBrrajrYQCXWvdTjXwiokKYUxsBM4r+V2Z+s4a+CoIgCEK9xn4aKAiCIAiCIAiCUK9p9JEXQRAEQWiMLFmy5Ljc3NynAAxGI9o9VBCEYxoDQFlVVdUPhw8frt3ERsSLIAiCIDRAcnNzn+rUqdOAjh077k0kEjKNQhCEBo9hGLRz586B27dvfwrmZjkB5EmNIAiCIDRMBnfs2HG/CBdBEBoLiUSCO3bsWA4zoqzPU4f+CIIgCIKQORIiXARBaGxY/66FahQRL4IgCIIgpMzatWubjBw5sm+vXr0G9e7de9Ddd999nH1ux44dOSeffHKfkpKSwSeffHKfnTt35gCAYRi48soruxUXFw/u27fvwPnz57fIXguEOOzatStn7NixPXv06DGoZ8+eg955552WgFzjxsTFF1/cvX379kP79OkzSE1P5xo/9thjHUpKSgaXlJQMfuyxxzrUhr/HtHghoquz7YOf+uZTffMHEJ/iIj4lp775A9RPnwRBR5MmTfDggw9u+eKLLz7797//vfLpp58+bsmSJXkAcOedd3Y+/fTTD2zcuLHs9NNPP3DHHXd0AoD//d//bbNu3bq8DRs2lM2aNWvj1KlTi7PbCiEZV199dbcxY8bsX79+/WcrVqxYccIJJxwB5Bo3JiZPnrxrzpw5n/vTU73GO3bsyLn//vu7LFq0aOXixYtX3n///V1swZNJjmnxAqA+DhLqm0/1zR9AfIqL+JSc+uYPUD99EoQAJSUlR0ePHn0IANq1a2f06tXr8KZNm5oCwJtvvtn2mmuu2Q0A11xzze433nijHQC8+uqrbS+77LLdiUQCZ5111tf79+/P3bhxYxPV7v79+xOnn3567379+g3s06fPoD/84Q/t6rptgsnu3btzPv744/zp06fvAoC8vDwuKCioBuQaNybGjRt3sGPHjlX+9FSv8SuvvNLm1FNP3V9YWFjdsWPH6lNPPXX/Sy+91MZvd+rUqUW9evUa1Ldv34FXX31111T9ld3GBEEQBEGoEatXr266YsWKFqeddtpBANi9e3duSUnJUQDo1q3b0d27d+cCwLZt25p079690i7XuXPnyo0bNzax8wLASy+91LpTp05HP/jgg7WWrYw/uRXisXr16qbt27evuvjii7uvWLGixZAhQ77+wx/+sLl169aGXOPGT6rXeOvWrU26du3qpBcVFVVu3brVI1y3b9+e8/rrr7dbt25dWSKRwK5du1K+9seUeKEWxzGMSgBkJuS2AOW1dxc7EvlL6I+T5nOTyZeLlO/qSftrTtN8NGtV6PgUqErnVWQe9iToPKXAF/ewWfNWaN32OFYTQ1qr9cM163UgzEaUfbtcy5b5KOhYGFikGtYObZLPWW2dyXxRLmLr1q3RuXNnj0/+axzH11T9COtzAGjXrjVKunVmfX9474uo+iOva1hfU3ANMQHoWJCPPj0LOfI+IMW/lPzh6PY4B26XdC5siUH9Ctit1zwfXZ+TXVOfrl81l4B0l4VBBHTr0gzDjm/NnrLk9Svs+tkJS5Z//RYzjw1UITRaJk+e0q2srCyjawsGDx58aPbsP2xOlq+8vDxx4YUX9rrvvvs2t2/f3vCfTyQSoKh/rHwMGzbs8C9+8Ytu1157bdF5551XPnbs2IMput4oefe2Z7vtXrM1o9e4Q9+iQ2fde3noNa6qqqKVK1e2mDlz5qYzzzzz66uuuqrb7bff3mnmzJlfqvnkGmcGY+GPuvG+FRm9xtR24KHEqN8n/T1ORqrXOIwOHTpUN2vWzJg0aVL3CRMm7Js0aVJ5qjaOKfGC6kqg2+kAJcyPM4KyjongzKRz8iTc0YtzrJwDzPO2PWVUSgTkEpBjDTRyCcghIAdAgswPACTAzrGbBhCZ6QQ3naw8ZA10ADh5SClvH5M1SPLkVfI77jv5/eU1eZOUdwSaJy+FlkegvC+vzyaIQuonTxtcGxT0yU7z2PCWV/M4/qs2FQMBu/7+oHB/g33I+n7VXRtfmqce6x7R5+UQm7r0GGnkr09pg3XOvYfZkw5N3U55T35fXuUcfPnsvAm4x2H5gj4o5TVpbjt96cRIaNLcegzFrpJOhi+vgYRT3nDSzHRDSTec3wenAQnz36REp4UFEIQ6oKKigsaPH9/r4osv3nPFFVfss9M7dOhQZT9t37hxY5P27dtXAUDnzp2Pbtiwoamdb9u2bU3VJ/IAMGTIkIqlS5euePHFF9vcfvvtRe+8887+GTNmbKu7Vgk23bt3rywsLKw888wzvwaASZMm7b3vvvs6AXKNjwVSvcZFRUVH//nPf+bb6Vu3bm162mmnHVBtNmnSBJ988snKOXPmtP773//ebtasWcctXLhwTSp+HVviRRAEQRAaIXEiJJnGMAxceumlJX379j3yy1/+cod67pxzztn3xBNPdLj33nu3P/HEEx3Gjh27DwDOPffcfY8//vhxU6ZM2fP++++3zM/Pr/YPbDds2NDkuOOOq5o6deqedu3aVT/99NMixgFERUhqi+Li4qpOnTpVLlu2rNnQoUMr5s2b17pfv35HALnGtUEmIiSZJNVrfP7555f/6le/KrIX6f/zn/9s/fDDD29RbZaXlycOHjyYmDRpUvnZZ599sFevXsen6peIF0EQBEEQUubtt99u9corr3To06fP4f79+w8EgLvuumvrpEmTyu+6665tF1xwQa+SkpKCoqKiypdffvkLALjkkkvKX3vttTYlJSWDmzdvbjz11FMb/HaXLFnS/NZbb+2aSCSQm5vLjz/++MY6bpqg8Nhjj2267LLLelZWVlJxcXHFc889twEA5Bo3HiZOnNhj4cKF+Xv37s0tLCwccsstt3x5ww037Er1GhcWFlb/7Gc/+3L48OEDAODmm2/+srCwsFqta9++fTkTJkzoXVFRQQBw9913pyzYiPnYeb8VNWvLMm3MOx3Jcd/J7y+vyZukvG7alEwbC/c32IcybUymjdV42tgSZi6F0KhZtmzZhqFDh+7Kth+CIAiZZtmyZQVDhw7trjt3rG+VLAiCIAiCIAhCA0HEiyAIgiAIgiAIDQIRL4IgCIIgCIIgNAhEvAiCIAiCIAiC0CAQ8SIIgiAIgiAIQoNAxIsgCIIgCIIgCA0CES+CIAiCIKRNVVUVBgwYMPCMM87obaetWrWq6ZAhQ/oXFxcPHj9+fM8jR44QABw+fJjGjx/fs7i4ePCQIUP6r169umm4ZaE+cNdddx3Xu3fvQX369Bk0ceLEHocOHSJArrGQPUS8CIIgCIKQNvfcc09h7969D6tpN954Y9dp06bt2LRpU1mbNm2qZs6cWQAAM2fOLGjTpk3Vpk2byqZNm7bjxhtv7Jodr4U4rF+/vsmTTz5Z+Mknn6z4/PPPP6uurqannnqqPSDXWMgeIl4EQRAEQUiLL774oslbb73VZsqUKc7LMg3DwEcffZR/1VVX7QWAyZMn7/7HP/7RFgDmzp3bdvLkybsB4Kqrrtq7YMGCfMMwPDY3btzYpLS0tF///v0H9unTZ9Cbb77Zqg6bJPiorq6mr7/+OnH06FEcPnw40bVr16NyjYVsIuJFEARBEIS0uO6667r9z//8z5ZEwh1O7NixIzc/P7+6SZMmAIDu3btX7tixo6l1rmmPHj0qAaBJkyZo1apV9Y4dO3JVm7Nnz25/1llnla9atWrFypUrPxs5cuShumuRoNKjR4+j11133fYePXoMOe6444bm5+dXX3jhhfvlGgvZJDd5FkEQBEEQ6jMP/OjZbutXfNkikzZ7DOxy6Ge/v3xz2PnnnnuuTUFBQdUpp5xyaO7cufmZqnfUqFFfX3PNNd2PHj2a+Pa3v7335JNPPpy8VONn52/v7Va5aV1Gr3HT4p6HOk67LfQa79y5M+e1115ru3bt2k87dOhQPX78+J6PP/54+wsuuGB/TeqVayzUhGNLvFSWv4UvXi2oq+oYwFHrIwiCUIfsSp5FEGrG/PnzW7399ttti4qK2lRUVCS+/vrrxHnnndfj5ZdfXn/gwIGco0ePokmTJtiwYUPTwsLCSgAoLCysXL9+fdNevXodPXr0KA4ePJhTWFhYpdodN27cwQ8//HD1iy++2Gby5Mk9pk2btmPatGm7s9PKY5t//OMfrYuLiyu6dOlSBQDnn3/+vgULFrT60Y9+tEeusZAtjinxwsxjs+2DIAiCIGSaqAhJbfG73/1u6+9+97utADB37tz8Bx98sPDVV19dDwCjRo068Mwzz7S7+uqr986ePbvDhAkT9gHA+PHj982ePbvD2Wef/fUzzzzT7qSTTjqgTjkDgDVr1jTt2bNn5U9/+tNdFRUVtHTp0hYAjvmBbVSEpLbo3r175dKlS1sdOHAg0bIXJacAACAASURBVLJlS+O9997LHz58+KFEIiHXWMgax5R4EQRBEASh9nnwwQe3TJo0qdc999xTNGjQoEPXX3/9LgC4/vrrd1100UU9iouLB7dp06b6hRde+MJf9q233sp/9NFHO+Xm5nKLFi2q//KXv6yv+xYIAHDmmWd+PXHixL1DhgwZkJubi0GDBh268cYbdwJyjYXsQcycbR8EQRAEQUiRZcuWbRg6dKhMERQEodGxbNmygqFDh3bXnZPdxgRBEARBEARBaBCIeBEEQRAEQRAEoUEg4kUQBEEQBEEQhAaBiBdBEARBaJgYhmFQtp0QBEHIJNa/a0bYeREvgiAIgtAwKdu5c2cbETCCIDQWDMOgnTt3tgFQFpZHtkoWBEEQhAZIVVXVD7dv3/7U9u3bB0MeRgqC0DgwAJRVVVX9MCyDbJUsCIIgCIIgCEKDQJ7UCIIgCIIgCILQIBDxIgiCIAiCIAhCg0DEiyAIgiAIgiAIDQIRL4IgCIIgCIIgNAhEvAiCIAiCIAiC0CAQ8SIIgiAIgiAIQoNAxIsgCIIgCIIgCA2COhcvRDSbiL4iojIl7QEiWkVEy4noZSJqq5y7lYjWEtFqIjpHSR9rpa0lolvquh2CIAiCIAiCINQt2Yi8/BHAWF/a2wAGM/MQAGsA3AoARDQQwKUABlllHieiHCLKAfA7AOMADATwHSuvIAiCIAiCIAiNlDoXL8z8IYA9vrR5zFxlHS4E0NX6fh6A55m5gpnXA1gLYIT1WcvM65i5EsDzVl5BEARBEARBEBopudl2QMNkAC9Y34tgihmbLVYaAGz2pY/UGSOiqwFcbR7kDEeTVvG8oLjuxs4YMy+lZjKuzdjm4uaNl49iNocAJGJWTYjnJoFjN4ec/2nS1eMUujJue+LmAwEU4kC6fprXJ1Znxr8+ZNcfXSBBrMnDTn3evNrkoM2wxzGa8okEJ7FmkhMzHxHHskkAEglD517ggMCghBHdbjLr/KTswC5m7hjLWaFRUFBQwN27d8+2G4IgCBlnyZIloX/T6pV4IaJfAKgC8JdM2WTmJwE8CQDUrC2j62npeBZxKhFzHE9mXt0oyk8i7mXJsWwmqzoHSOTEsEcA5cI3egrJmkBOIsc5rctG1qepr9kE/fe8HLYGqRzZPTkE5Gqao9ozjxl5TYJ5dOTmqAPfYP32cSIBNM0l7bkom2H9AzBycyjQnrDBbNMm4WpQbX+zpkBCvTdCyiQSQJNc9R5yM/qFZ7NmQA7leHNq7CZygCY5wXuIYIV6leMWzZVsEb8aubmMHE0fuULJpEnOUeTlKed9BlXbTZtUIZGwBIIvg3rd8vIq0TSHXb+JnWvnFCEAMJDXzAwgJ8CeC2IKFlfYtGx+CE2auAKGSBEo5Ipuoio0a1Zpmkq4dQLm7wol2EnL7/mvjRCOKbp3747Fixdn2w1BEISMQ0Shf9PqjXghoisBTABwFjPbf6G3AuimZOtqpSEiPZNeZdAWA+wOgBD1gJbjPel1DCV7zJ6KOSBes9mbTfcMPZlJe9jlFzHJHQg2yN+til5KgeiO8oujTJDUJoV8D0lmWLdDyo5qBBkDTOG3V7Jr7rdMcHuYfO1K516ybbBVIDTKF2JQ7Sa2/VBtKpUxmd6b/UJgcoWLm5UcIcPWd1J+59kwv9gihtmyaZ9X7Jj1s0ec2aaI2Dk2f/1jxc4EQRAEoVFQL8QLEY0FcDOA05j5kHJqDoC/EtFDALoA6ANgEcy/4X2IqAdM0XIpgO9m3rOwwWwNhgoZNWmNylSboaO3FM2qZGBkxMoA0jcuBABUK1WHRT3C3NPZNOAOLPVxBR3uWdbUxJbhZP7p0sOugPPcPCLqEJWu2nYG4poODpRXrwUD8E3hYuULa8rpjikki+2PWoM9EDfYnBLmv+7s6w9dX9p2LV0BZsBQbIX+WihGPW1zgxgeVWNUG0CON78qepzIDbn96Z53HSKrtGEA5h2qiBDPFEd22uUKGVXE2J3DIKvdDO80NEEQBEHIJvOnj8UJfRcjr81hHClvjk/WlGL0I29mxHY2tkp+DsBHAPoR0RYi+gGA3wLIB/A2EX1CRL8HAGb+DMDfAKwA8CaA65i52lrcPw3AWwBWAviblbe2vUe8oXQUvvyZepxf52EBAwbUIVjNzBPcg6A99nySDeTVMSg0x8mJLpG6vWgI7lP0sPOpYhjWoFYnROOqL00WrU37HJL3iyePIjr8NlO6ne0IhFWQjaA9rUhh7xlPMIhhLyVxoi0wrPSAA6Z8sc/puteJhlmG2VGs5K47Ylv9mBaciJLjg2vQjTKp8UtBEARByD7zp4/F8AGLsHjLuTgyZiMWbzkXwwcswvzp/s2G06POIy/M/B1N8tMR+X8N4Nea9NcBvJ5B12KgG5qlov80A4zYUY6aDE7SeZ6fmk1dNMVzHBUFUI1oozPqc+70cYZ55FrUt8ILhXxn5afOZlTvhvWTOuj2T61KF2bFR2VAHO2Rz4b9P+fpv1LK3+CIyxRokpJgWOVyNK6ETV3ziIVAhCJY3nNfOf/jYBN8oRq28jj9wAgsN2O7oE8F2VERXUSKyIqkEKzpYHYt/tiR1wAHhHwm5bQgCIIgpM8JfRfj4zVnoGf+P7HsL4/j9Htn44PbgNK+czJiPxvveTmGqckAI8lzbY742HN/Ah/2fVKrUueCPxLjn7qjfgLlOVil16b1pDqJH8me2oc96U/VTjKbrCmsjd2FVOL0RRrCJax/7clF6dyJ2qhWzL60owWeSILfsIXBbuRIzaIx6RXHqnjy2YyKGNl3lKNllA85YRNN2w3zo/OJiAEyrI++Vtsv10eypoQpUophrmkJRFpU6awNBwmCIAhCVshrcxgj+r6PLr23I2f9uwCA0hv+B3ltDmfEvoiXOqemT0hDBi/R6gVwJnkZMcuwMndG99E/u1fHj+q4zjMFJ4VWqmXiDOa1g3YEe4NhDpKr2fxpTtsKxmFiaT7rBFuD7mpDtZncF20j1KfsEQPv2ChTjWx7hsdmdAVqZII0J5iVwXySixDadnbvE2vcbvajxhetaLHr0ShkT3SG1dQQb1RfrLz+ep3F9OrNbosWRVDoBKu95bX5w/SByPy4U8r8BV2HyPrPdULUiyAIgpBdKg8fwua7egAAcppW4f8+vwKjZv4TALD44ZtxpLx5VPHYiHhJi6j4QZxyqZ2KtpdqdZExiRr4oq8+br7QaAyCw0s2wkWA/7tukKwrw8ww/wuXf1H489hTgqLwj7kDiRqbaWELDOj9TFZUFS6BvtOIEfV74NrqIi/+sopBe2yvdTMkXGZrbtVvnU3A8PjlETu+KJEdm7F3FAtcO6tzDOse0ph07Dp+WZWYu4VRUF2DwMww2LXqlLeNs+VTKi8gEgRBEIQMs/Kt11D+aF906fMVjMocGJUEPnoEB3fuwge3TcbIklfwyZrSjNQl4iVlajJI0AzBaiQUIuyF2owxJI8zSPYN7Mh7KlB9WOwmWfNJKeHKi0i30oJDnl7X1eUJRAZSECpJNWqErVhrSZTEsGsdKUZCDQbvIXtgToAb9PO1QdccgmZgr1ZJ8Kx7saQA2L7DfEb94scT4LBFB+BESzwXzReRA3vLu+9wIbf/yRIxRCB7upkbzlEiVnbd5NlGWaSLIAiCkC2WTD8RvbdPQtsu+7Bk0QlIfG83lqw8CaVd5yBvXglKu87BkpUjMrbbWL3YKrlhUAvDgxqbtCVATcqrjlD4qRik4olfNauDVq8DyfJ5z0WJqFDB4Mlrp7I2b+QDbt85XfTFf8V0kQWPkNE57kO1qbmSKaCv0ONvEp8IwStnz8ZLKHkcgaLYScVnO0KTCBNFEcbs+tXrY18HR1yovwoJXXl/R7BrWBUxlqIipVeC38hzXi/9vUfsaXsySS8IgiAImefQ3r3YcO9pGHriF4BB+HDN93DmI78HAI9QaQVgdAbrFfGSlEyLlhjziWKjPK+ONEkIbI1UI3vwTsGBPrtOLOikgVeweJZPR1euseGP6EQJFk+6MhBM5rv/8oV6qosAaE5H+pnGrZL+03j/ldCc8rc9ZiUBWxF24pi0hY8tYjyCQ3d9klwH9cAWB+quZ6wIDPUFlf4GOP8nOAKHAOfdLKS8T8cVT8q0MI9lO039fXTjL/b6IkroJKMgCIIg1B4f/PLHGNb+efT7xiFsXV2Igyc/ijO/P6FO6hbxkpSwQUG6AoRqxWQ2UKtNFgOKEi3uGm/9TmLRz6HD69GNZaO7Si9c1LMJja4LFUSRdak1IlIvRgkZXd+wquDC8pKv/oj6WM0Y0Xhtf2t8VgUHQ/mpnk/Wz2oZVcSoNjTuevwlt7zfL0DZ0IABc8tjq5y1tbElZYLXh5R8nnNsvkVTESL24nx74b7ZJv8cNluc2HX5Wim6RRAEQahD/jl9IkaXvgcAWPjxSfjmzHfqtH4RLylTU6Vgz03JhC+KSSDCZhqjm6Q2DRjI0UYNUvXAeW5MppBJZyGWZ5zpeBhMi4YUW3qPDSOtGXWR7VcFR6q3RdhkI8MAKKEM0BGSMcqmpqFRGxHo2qjb7lgdetvrQigRLjjtY499ddzuExxORMIn0Ah+I15h5vilzgADwIZhvqAycLOz5zuxN1ndeM2xTQwwg609lp3dxpyO8No1F/K7LTBsAUO21GdwjbeiEwRBEITkrFv0EfjVyzF6xJeoKG+GjzdMwBkzn61zP0S8pEy6AwXSjX602YKjw4hn8nHm7WizRJSLNYJWB/pJogYhEQNdREQdpHqLcSBvGGp5htdm9BP91K5tPJvJcfqCFd9rYlDB84JKnx2vyfgVOC+o1BVJwU9P5ES5aFrxGmLXuW+U8s57IpW2B+p0SkdPQbRT2IqSOPVpFCGbi1zcyItthQAm385mUIUdgRI6ic3eJM81NDevCERpBEEQBKEWeP/OaRjd649IDGJ88WkxCqe/izMKu2TFFxEvDYJ0nvWr6MrpbFrD6Mi5ROqBd9hvF1MHn/6lxGFP1gHziTkndINHs0QqIiOsp+zBvH/6lzsdR+9vlN1omzF802R0BEKG9gN03kHKQCKhqzJ5fIq9Y3NP1MR01voRcnn861occalUbb9IM6Dhk4gXXf22r36x5brHVjH76vtCMHYZjfixX06pXp9AFIwY6tuOvFPC7KiJWQc7U8zYK7a0QtH9bdNOMxMEQRCEDFF19CgW3XQORg9bBBCwYmlvHD9jWVZ9kq2SGxSqRADSFzNRNn2EBovCpYTOIvk+qXhkH9uv14wqr9qPnKrF1pvcA5nS71PbphqRiVVOl2jrSAbSmRUUeslI42d4icDZUPFmT9dKcoFCr7/votsv/DTUuX86O7qbSlOJLWLs6IkdmXGiI6pw8dn0rMRS/HCiOwxna2VTdDFAhifRNefvSXval/lxhYy9bTKUd7ionaS8b0bdM1kQBEEQMsQnL76Aiqc6YeTIj3FgVz5WtZqddeECZCHyQkSzAUwA8BUzD7bS2gN4AUB3ABsAXMLMe8n8qz0TwLcAHAJwJTMvtcpcAeC/LbP3MPOf6rIdmREO6ZpMYTTrzjOJbzPFpoU9IDcA5GhqiRuRUJ9RkyY9qmxYmg6DbT+DlnXxqWQCyolyhJ3XlFenUIXZTIsIR+PaVIfbft/9/aNrOymZ2UoIdUsTvjPCbs3Q8Jp7jnxptohxIyMae+xeC7fNwbCSHdlRbXqmh7FOU7ATVfK+WNKKpChlmMnqT3V6mLKtsiJqRLsIgiAINWX+9LE4oe9i5LU5jMqDzTCgSRVyWldjxxcFaHdDGY5vlZ9tFwFkJ/LyRwBjfWm3AHiXmfsAeNc6BoBxAPpYn6sBzAIcsXMngJEARgC4k4ja1brnAOLFDnSkE92I40umbSJpMMa2739IrT7FJnjn4+siKQiUDVTh2HRfUFk7U2TsCUR+TwIpUQNvP5qMUW1VHEmZSDEQdetReEadr7rjqP4IiA1NRMTzcdSAFbiwRYE9Fcxn3x+HdISBpu6gn8pdqvPLMp6wy1uCI0HmFMGEXcx21LpDDSXCY3erR7AoddnRlQSR8yFnupkZymJmd0MHR+EqL6qs0S+7IAiCIJjCZfiARVi0/hxsKCtC05YVyGlajbXLi9Hl9o1oXk+EC5AF8cLMHwLY40s+D4AdOfkTgPOV9GfZZCGAtkTUGcA5AN5m5j3MvBfA2wgKogyT4QFC1Kg9NiFzaTJhM2UbtmCJfiBuPxTX5iP/ueCAOs7Y3m8/vh5w64vTjqTWfBGDqC712GR/QjRauzUQw6GiheCdHhXDIsOMUKiRkEB5RxiE2GbvsVb8+gqpb7T3pCtt8VThn1JGcNUJ+ev3OasahzvJzJyaR0HBovhopwRlPgXyO1MICeZaG3IzyLoXQRAEoSac0HcxPl55Mkb0eBM9jt+K/TtaY/7SMehasjPbrgWoLwv2C5l5m/V9O4BC63sRgM1Kvi1WWlh65oizWhgwRxGxB4rk+1lTdPNjwvLFhQKmo/LZgiXCUugxw/fWdeVMqj0U5m4yH/Rng/0VdTeE2ozoQ489jrCZ9DpoZ1rVSMOqrU/4b1n/IFxTie5uU5vhWbiv3m5RtzJpDlUlrGYh36mQjrCnaAWEriJYCJb4UtJ1E+PIk279blgX1gBAbO8o5r+72ffTLs/OtDK2BJHzLhgGmK0HBTlWmr6JgiAIghCLvDaHcdKQfyHRpArbv+iIDj9dgdKvDyFvXkm2XQtQ7xbss7t6NSMQ0dVEtJiIFsOoTLU0Mic0VNj7dD3FJ+1hJtMrH/V4OnlJW76wx07Qpm64BriTY7xVh9kKdyyOcElOdCe6A8iaE3y+HlGp7rsvmaB4H/e2DeRhzymPTQ1xbzf/lfP4af30b2ccmB6mBAT9IsheZ6PuhBbHUY9P5I0QgeFZv8NkxTasivybFNvxOkcsWV9UYcoGgQ03MuPfjMHbbnJ2ILMjSGpkyLbCBiybtfHv1LELEbUnoreJ6HPrp3ZaMhFdYeX53FqHaacPJ6JPiWgtET1qrd8MtUtE/YnoIyKqIKKb6qaVgiAIwBfzP8ShWe1BBFRXJrDkwB0oun0D8lq0wOKHb8aR8ubZdjFAfREvO6zpYLB+fmWlbwXQTcnX1UoLSw/AzE8ycykzlyLRNEW3MqEq/ISMLGtLJwEIWRkQXmGcZrORUq/4NZoBbxXVlms6m36Pw57sh9WRTAp5JZb5sQenfnv27lfxbYb7F+gHaxDvn+6U5GoFLpW9U5daMOAf+fvSW4PjozWAdxbNJ2m07qWY9iDd3t2N2Ztma3kPpBEU/r5jd9c0Z3cydn0NvY0Vm552si0GvMdGtWG+qBLs+Q+ObetuIdeWbZjZFCzM7s1tGPZLKs1MzpoW750GIgMEgvo4R+07NYJjBLfNE2pG2DpMhyRrL2cBmAJ3zaY9rTnM7h4APwEwo1ZaIwiCoOGDn30XRavORdP8ChzelwciA0e2rMbBnbvwwW2TMbLkFXyypjTbbgaoL+JlDgD7qdUVAF5V0i8nk1EAyq3pZW8BGENE7aw/FmOstFogmapIddDgy1+roiVG/WHE8EsdfAfPJBd9YYP9aHvJp5QFBvNJPUlmIZ0c8XHa73sSX1PUJ/uO2dDrmvxa+W2mbsWbxx6vqyLJ76Y/yqL1y7oY6uZhkVEN+8AprNiy61Xskf1/K0wY7EIr8miV8btqi0XPDgTKWUfwOQLHEtCWj052pT1mmXi/Z0JahK3DVNGuvbQewLVm5oXWTIJn4V3HGbDLzF8x878BHK2V1giCICiseucNHPxdAU75xquorszBR1umodXU3Viy8iSUdp2DvHklKO06B0tWjsDoR97MtrsBsrFV8nMATgdQQERbYD65ug/A34joBwA2ArjEyv46zG2S18LcKvkqAGDmPUR0N4B/W/l+xcz+TQBScUqXmLa5JJV5D/3jjtBqY/roHwFq83FIevpttodQCY8dvdDQeUOeL/5mEIKp6fuoRge8sQY9FPJdZ9OTN6I7I+WwPWgOOpkWqoBRoy7xPXKFhnN9FAUS9yWVgLdPyFet+rLPVLzzaYHASy/VeoN3vi1N2JPuWeeixqjIjazoXyBKyv8BkAF1RYrrG5nrVsiMzti/AObsIn0HqveDuvMeeVomZIiwdZgqUWsyt2jS49oVBEGoNT64/VqMKHoeTdtW4sCOVjAu/BinlHQHAI9QaQVgdHZcTEqdixdm/k7IqbM0eRnAdSF2ZgOYnVLlziPQhkiY4KhJkYgMaVQXLEbOwC1KADhlWRk0KvkM59heDRNPaIT6qAxonQE9goPGVJrOSsNjD7TtsiEF0rwEkWVUEZKq3bBeV9ejRBnViyYEGurs/EWuTUWPqFn1dWo7Ofyc1hapaea94X8u4L4vRiOGKRgOClbNSnTIFjJmTvW9k0FB4/5OufU11H/XsgcRvQOgk+bUL9QDZmaiKEmeHunaJaKrYb46AMXFxZl2SxCERsq6RQvR9sMLMLr/fhz9uin+VXYhzvjNn7PtVlrUl93GjiH8w7B0yqdArKo0I7uk5aKf3dvPhf0vqUwF26uEPy3FJ/Oh9pWIRI5jxe1fbRAL+ivoPLHn6CsUy6bPeCASkw7k+aGJcoTfl5FRIp/NsItuR9bs65dUxJAyIUqdLpXMMc+UME025ZqDgbCxI6m+wCtu/YLFnu5nbl9sBPzSuWm+38XpOUWoKFEizzw3tXFKfMeO2GhbIUTBzGeHnSOiHUTUmZm3+dZhqmyFOYvApiuAD6z0rr50e01mHLvJ/H4SwJMAUFpaKiE3QRCS8uH//DdObPM7NO1SiX1bW+PIOa/jjKu/kW230qa+rHlpYJDySadshMlM4X0sG7OQMn8+xlR6QnhPhDUnLF9U8/2uZHJdiFuHvsFxL0sqLoX1V9I60m23YtxvwrWZXLjEvj6+Mh4bFLQZuAfY/dhpsdtO8EzhUwUG+WyClGhKwFGvHfMLOaIj0BdkKjN1DZi2rYo4MSMs3o8fZobBruNqNMrWLuQ1KmSGsHWYKtq1l9a0sP1ENMraZexyeNdxJrMrCIKQEXZtWI+1t/XFyV0eQSLXwOJFJ6DDz7ahaEjDFS6ARF5SIGxwUMNBQ6bHHJmyl8yONvoRPsJUnx37B5bRA2R9JCQZqXeD+xQ8snwKhsOmOiXNm+J8MW22ZKEiO1uEltYlptqvyhKPcFei7LL+UCv+yFuXru+95ciyyVYUxk1Vdb92upsjYNSNvq03srAlhRlIEJm/F8q6IHJNBDCterfBUMUbg5DwtRPMol0yj3YdJhGVAvgRM/8wydrLqQD+CKA5gDesT5TdTgAWA2gNwCCi6QAGMvP+2m2mIAiNlY8efxDfaPortBtchd2b2uHAN/+MkT84I9tuZQQRL3VOzMURsW0pRuKOACNRRpmRNpPbjxt5cX4qo/d0B8m6p/rJfNLnCFn/orlskd2uGUgHynGIzZjXQL0L1J+p9aG3Mp1NPxRyMhDdsfKoL4V3owZumaiXVPrTGGawg5SGRok4uz3+aW6eOnXKWvHfa9Y3P82aZ2ZLX7LXsABg8q7VCt7dpNgLttjOb/aXKozccJLMHcoszLwb+nWYiwH8UDnWrr208g1Owe52eKeaCYIgpMXBPbux8q6xKB2+CmwA68u6otevV+G4RvSUS8RLUjJ8sWvj5qmN+zFp6EGdOkP+8Z6Cd6gWJii8Y0bd83H1WD+9S2czdfTDQIb18DyFUWJEwMMhqZ+pNqJGmjikZEhynPb5TahTqjznU3BajVx41sQkNP7YwjCOMLIuhisOVL/Jsz4m2HbfneuoInaEkQEy7yFb6Dhrbtz3xniteNfYuBWbNtmw2hyxQ5kgCILQuJk/fSxO6LsYeW0Oo2J/MzRrcRTDRhrYu6Uttvd/BIPvvTjbLmYcES9J0T8NTd9c1ByedG2mYidmJaHNTj41zC9W1C++59VOmiNeSFNWQ7Kn/o7YCPMn2nJgshrBnMyTo7ERGZnw+eXHiThEiA5/H4baAdwNA3yqKFBUuR5RNgHfepOIxodGath33ckceCfIG3Hx1OsTG7o1NYFtkA2AE958UdEY//bJbAcyrGthqDcTGYFfCTWO4rTLOuPoHCanPQRWfv0ZgBHcbQyuOLfeye4INEc8sRLDYdTKGjBBEASh/jN/+lgMH7AIC9dPQJODmzHyxMWgXAP7d7RCq2mfY3CLFtl2sVYQ8ZISuuFQKs+fNdRJFC/N0U1U9IUNGNa2UmG7PkQ+5YZ3fO0O/moSNQmS4vIRTUlfKtfEZkhN7NrVvePE71Wceg0DzntIAlGNNBx3RARr7Cm+JcPfd2xYB4ngvaGrP5lRVmyGvtuFdYWD511RZDhLWygQ3bHFLiPBrvCwzaj3t3mPW5EW5SEGkbtWRnWEGUio9TGBiZU1OLaEEvUiCIJwLHJC38VYWjYYJw2dgyYtjuLAjnyUbRyCE/ouRV4jFS6AiJc0qGkkRveYOZnJFOuJdDFq6B0xtyY8d3BAqvw/bEDqmQUD75N5dTjmFTKprYXRPa33RzhImztF+yE2U/FVFQdAuOBI546zhZF/UyrdIDzUhv0/ZYztlEottOW99uTatI8j3v0YmuwEM5REXV/qp3tx8JqRV9awHVNR9YXHkPVOI+eFk66sATGYNFPAbJ+YALJfUOk5E2is93fMQNQmGYIgCELj5fDBr5HX5jBOHL4UiSaMHesKUPDTz3DCwSPIm1eSbfdqFdkquUbU1cChBk9X1Tk4cW2y7xNlOtSiPn4SGVXR1OUVMlbpFMWVxx6b04H8U200m986NpKNzW2bgfQIe6od3YJwOxqTyTAUsxmRsf3wnU1eXpOL1b60B+0hpjwvXoQrVFWjdl8a3g23QrvAjWjAO7L32VSvt78d9n3lt+P4S8FyzFaEx2fXMWEvpifD1yFuLq9fBGbz42mdIsDI80tpKNYk+iIIgnAs8f4NF4KeLwIR9axpfQAAIABJREFUUHGgORbvvxNd/nsjmjZvhcUP34wj5c2z7WKtIuKlzqnJQCM47Ko5Ef5EDpzDhvvRg/ZUUcej9lgxrp2wXlajHAZHC644V8sZiLMbQXCiChqfYt0BakQijdslUDW5g/Fgu1Xvou3p7AK+wXzUjcEhNVnn1JdDGnBFof+u14qWkDQ7SXldinValVBRyllvUHnHpKlTnPrZmwh/nepPWFPIzA8RWwKG3LVQmhuJnP+AQEhNEARBaJTs2bQZn944FKcMfwu5zY9i+xcFyG16FEc2r8LBnbvwwW2TMbLkFXyypjTbrtYqIl7SpibDcU25lMzFFECeEV5cm5xy0/yRCe/UluRPzaOq00Z3YjY9DF30QLGe1FZ0xMkrYuL6x+qJqEhMOmgiB0Gb4VdBHW5rIy8RxzrLSa+3JnLi9yV44JZ3gh5qXX57DJjTrpT3tGhEkDdS5AoGf3TJtmmQG47xCBrbLtmRGVgvprR+2kLE4yeB2d6JjD3lVSfJFjqCIAhCo2Xhj09G8zePx8DStdixvgBLvr4bRbdvxJKVo1DadQ7y5pWgtOscLFk5AqMfeTPb7tYq9WrNCxHdAHMPfQbwKYCrAHQG8DyADgCWAPg+M1cSUTMAzwIYDmA3gEnMvKEOvExynAzNo+m0Bx4hBWs6kIkT3iDfoMxT2JvGyk+/WlYHxuFVxh+1p9t0s8lej7W2KIU6QjRqZNZkii9uVWpCxPUkCs+kjd4kqzfsvJJRrSlw3VUBofSF+5JGfdM88QydUxQsByi7dkX8Siag9JMjGFg5Vu9wsiIpVhk7my2E1PapztqL9gGAvPPR1Gl53g3KVb9FvQiCIDRG1n30ETD3+ygdtQ0wCPOXjcdp9/8NRdZ5Vai0AjA6K17WLfUm8kJERQB+AqCUmQfD3JX2UgD3A3iYmXsD2AvgB1aRHwDYa6U/bOWrLe+A4DCrBrZ8ZjNFRuzFN+COqYKToULGj+6UqqQ1xZ5gFVqnXzwlR3nCHStXfH/C2qv66LGZQtN17Q6ri0Izkecud8bq1qDffsGkP6oBXxm/WQbA5NVkCX8+cgf32t80f5RDSXJefKkRBqQx5iT5OsiOQjnnwhrkqcCfprEJMqd9UWg2X2pQvZJPyDBg7iSndJgs3BcEQWhcVFVV4bObBqHLZ2NRPHAbtq7phLWdXsBp9/8t265lnXojXixyATQnolwALQBsA3AmgL9b5/8E4Hzr+3nWMazzZ5Fucnh9JGOiRT/lJUiqQ+04RfwvqfT+ZzcybAoRQ7+GxS0ZtJWs49RhX9iT/WgL0WdStWkYmkRNOe30IuVcMvyC0L8oPkpouGm+ipxBsSIONOm6unQuhwkn0jhGuo/Gntp2/0nPveAXMlZhdecwWwTZ9gylvCm+VPXhr5V861K8SswAnHUsps9qXrs2NdpCVt8o+X0vA2KDwc7CJRbpIgiC0IhY+sJfUf5wN/QftgEA4eOt16Hkri/Q/7/GZ9u1ekG9mTbGzFuJaAaATQAOA5gHc5rYPmausrJtAZxIWRGAzVbZKiIqhzm1bFcteIcMqQ3TFiPcXtJqQobNARfVgwRi61TPSDU+YbOd/INyfz576FbT3tXVkboyTz4ETOdN8DWrMblBtS9Tqlznja+B/uulMxtVle6cYzNE9UXNnAurS1fGSQv59VWrtzf58myrrK7fIVbskZXfjdLZ0w4J5ChO590tqlhiQiJhvZDSmV5mixQ16kfOO3WiXtzq2gy2TxAEQWhYlO/ciS33nYnBx28EdTKwdU0h8r73Jr7Zu2+2XatX1Js/eUTUDmY0pQeALgBaAhibAbtXE9FiIlqM6soaWEp9GlOIRwgMQfyPwrUnQkZ6oS6qviYJAQTqjAEbjlW1R3Q9xAj2ni5P4Il5yEfrTsQnypbXppvCIK0tdavheDaT++f0ixJp8EQiYrbdOWbTT79NfySDPOWtNjOgbH7lDODtXb+MOI33+2bZsbeoVj/2lsja6In1Ue8LT59ZNlW7um2ww6Izpl12bIEBNswPDDfNqDYAw+khXY87IoXtxjg+EdiwG2P1ocEwrBuJyJMZrpw3QGSArGtilzUX8cMTybFtCoIgCA2XDx+8B01f6YP+w9fh673NUUYPoPiX63CcCJcA9SbyAuBsAOuZeScAENFLAL4JoC0R5VrRl64Atlr5twLoBmCLNc2sDcyF+x6Y+UkATwIA5bXN0F94/3C9hnED1Rz5T6Rp22MzFRup1WlHTfTP672ExIwC5/yiI8pmFH6h5D4hj1Mqnu2aRoxsG/aDfEaKlysJnhdURue0vUgaSQl9kWZaDloCxao+TKSF1WUnq9PrHO0O16adRJ5M4Ta996Y1qc4SCMGIETkd44/yOF+d7ZMVP211CXvhPQFsvg7Ticwkgr9bZN8s9k9BEAShQTF/+lic0Hcx8tocxpHyZvh6Xwuc3G0fjGrC5lWd0OmWT/GNFi2y7Wa9pd5EXmBOFxtFRC2stStnAVgB4H0A37byXAHgVev7HOsY1vn3mP3PXGuTGJEQLam66H/SGzMKo2ZNmiEFmyHmvc+izWfUHpRm68o4T799Rdy1B+4KmLg9GBb9sKMHaiQirh2dTXvFQiDKEdc3f1f5owfp3mrKZQ2820WJ6ig1R5rTbousRHgcm1FmyPMjMJi3IylxL7Kna3T1s7c/g3GT4MoqJ+rj8Y890UH/CyrhHJJjEyAwGebHLu+5AK6AsWM6oPBtj93fGztapK51EREjCILQEJg/fSyGD1iExVvOxfuLz0defgUKuu/Fwd0tsbnH39H9V18gT4RLJPUm8sLMHxPR3wEsBVAF4D8wIyavAXieiO6x0p62ijwN4M9EtBbAHpg7k9Wlx9bPVEeV6T6u1j0/TmIrqYs1iB+EjLC8FpUtZdOrxbHpRmLImmoTr1zoOV9EwvVN7efUfPbb5BABoxNAukw1ie6ElQmPxHhjXFF1BvyyxEHYGhanhjBBp4k82gImEWIzSvyF5ve3XddQza8WKXsee6J4dvCDfMXUBf26KIxrAQBbAsZeB2OeU0W1Wz8HLLjCLd3fLkEQBKEuOaHvYnxcdiJK2vwL3Uq/hFGZwJdrO6KgcD96nXZOtt1rENQb8QIAzHwngDt9yesAjNDkPQLg4rrwS08tDBa0JnWJKTxlJed/EWhGjzEIG+TqIithVmPKMI+9JjHyxm2FPZjP8dSCwBH50iIH9wGbvvNRNjWG044nahz1CI6QzDG0gFNCPe+8wV7zrwoBnve2RPoMODFhw+tatGix8/rabQsVUm5MUyME4oNuGcVX05xb2LlnVXtWnUyGx2bY74crTqw+txf5K6LFXt/ij1F6hDb50wRBEIT6yv6du9CizWGMHjUfALD+s2K0nfwyCiYUIG9eSZa9azjUp2ljDYQkj5eTEjInJi2TUY+507WZWu26j3reRtdqVbik4q7hjuNCfUoVb3yIQo5SI0qwhQqETM/+8XV8cNqUP3OIXwhvj9+eunZcbStrGh56/9hCyErjuHtOEDzRNE91Pr+cpJCb1xOVs4+JrI+/EezGUuygi7+ttjBxwyWOLduuF7MTDGZHHGk3c4gz91EQBEHIKu9MvwSJFwaACDAqc7Bg+Xj0uXclOvbuj8UP34wj5c2z7WKDQcRLbMKGsakOGnx2ko6OoxYAZHD0XgPc6kxfvbsyeTOpD9+Tu8ohn0DF0YIgJew2hJRPxWjIQD2sVp8LKVUTsBvDT2fgrliJLEbwvJMmtmiNEC2OXf/HPq+IGOUwECsMrDPyDfTV16T4pal/jZHWt0Bf2MJDHxVxd1Ijxz+/bVIr8XxjqO998di0tmBzxQ55+kfIDETUnojeJqLPrZ/tQvJdYeX5nIiuUNKHE9GnRLSWiB6130EWZpeILiOi5VaZBUQ0tG5aKghCbbPoT0/j0O/b44wRryG3WSXWlXVDdWUCRk4rHNy5Cx/cNhkjS17BJ2tKs+1qg0HESywyOTRQ5sKnZDb6mbljs84gZaBlC5bgIDYs2hI2pcwaTmrtReG3R8p3f/3RNvVnPU/gY9o0krxDVB2ga20yYr+k0m8z7sct5ywZd9P8QkJpiGNDIyB1LnuujWLQmSKlGNBt7azthrBpaH6fQhrvFyw6ZU2A8w4Y9aZyxbm14N/qKPfOdf02FGPeF156RblnfZgSiVF/Gxyb5psvnZtEXlOZcW4B8C4z9wHwrnXsgYjaw5zmPBLm1OY7FZEzC8AUAH2sj73tf5jd9QBOY+bjAdwNa4dMQRAaLmvmf4hl04fiG5iOJq0qUL6tNXaPfB997l2FJStHobTrHOTNK0Fp1zlYsnIERj/yZrZdbjDEWvNi/SOdDIOZ99XQn3pGLaiBGk3v8Je155LEzV8buBJG513C//TY991rRX8URD9Q89eReuujB4CUPIvWn2R5IvP5lV0SGNYi9xQgv3FVUCAoUPTlk9lXhA0DlPBmUG3o7iWdD+7aEOs4sK1whEFo+t4WNXYZtQ7Le/seUDdjcDUPOQLX6VVLfdovkzT9tNMsm3Yepz7yLOInX+d4bVpCR9duoSacB+B06/ufAHwA4Oe+POcAeJuZ9wAAEb0NYCwRfQCgNTMvtNKfBXA+gDfC7DLzAsXuQpivBRAEoQFSVVWFRdefjhEn/Qc0Ati5sQN29b0Hg396uZNHFSqtAIzOgp8NmbgL9r+0PlF/I3MAFNfYo3pFWNygJiYjRlLxEjU2w4rYdaXyVDbEvxglwh6EA14P/DWE1Zhqb4fVEX/8755l5f9qWiIkSpKKb4F05Sl/cs/C7dh5DEW9OeXI80Pjm2JBCQ76Y32BHdTiCCr2+UgAG6599adaj8e84oQzScsvMAzAIP1dH+azp21qpMvKYzDAhuHsvqCedr+z2y4rkyNslIaQdcJcv+NOC2NLhdi7jamL910ho4o1VzaRNeVNIi8Zp5CZt1nftwMo1OQpArBZOd5ipRVZ3/3pce3+AKbQEQShgfHur27B0Gb/DyO/uRfVlQksXz4IpQ8tRKdsO9bIiCteVjLzN6IyENF/MuBPAyTVwT5FHtaY1LVHmvUYMKwRnXfuoTL1xVdEd+wRGOQdHOpspuxmRP3hvkXXFyXS0oKDA3GVdOoxDDMSYT/Nr8Ed6knL5AsqyR7I20IrSYQnFN8FsW2q9jy/Fp78+vuV/CqFTWWhXxtPlrD17voViADa9ZG9PbIdnbFPqZ1r5kkkfH57RCnBfROSkCpE9A6gHVP8Qj1gZqa4+7OngM4uEZ0BU7yEPogloqsBXA0AxcWN7HmhIDRQ1i5YgPYLvo3TepXDqCJ8snQIBt7xBkqvbJtt1xolccXLSRnK08CJOxRO02TAbIxJ/clshmatuf/BaTPm/9WoRVgtaln1Cb+a7o7VdJbj+2fj2FQG814/klv2D07VRL/NVCIpScVBOpdLCaTY72EJj8REV+BEFJyn/0opXWem4qMS5QCAHJ2AC3HPIw6sGybgoybS4m03B5vgC9Uw3N3EnMiKzye2C6p9a69H0WzLbF8TtsqQpyEhjXVysMfvmgj8YxVmPjvsHBHtIKLOzLyNiDoD+EqTbSvcKWCAOdXrAyu9qy99q/U91C4RDQHwFIBxzLw7wu8nYa2JKS0tlQsvCFmkfOdOlN15EUqHLUdul6M4Up6H1S1/heEzrsu2a42aWAv2rXeqgIguJqJ86/vtRPQSEQ1T8xw7+CfU1FVdnufD8YpG2kyzDRQs6bXmGVYmSVUMxLBZ06f+gTfYh/hESOKvz17gfSwhUZTAIFaTz7EZ5lwSdEXsN9ine9fq7pi4fQkgZMevoFGD7QXp0f4Eohp+5evzMex9Oa449tmxBYWzcN41y2xGeHRbOJtFGCADgOGEcTiQy+uX+V4X9a5zf8lc4em/CnX571D9g4huI6K/EtFzRPTXDJqeA+AK6/sVAF7V5HkLwBgiamct1B8D4C1rWth+Ihpl7TJ2uVJea5eIigG8BOD7zLwmg+0QBCFDzJ8+FgcfL0DVX1ri4OMF+PSGwWjxek+MGr0EFYea4t/bf4yW1+7GsMtFuNQ2qb6k8nZm/l8iGg3gLAAPwNxVZWTGPWu01HCaWeYnLaVpM3yRsL+FUZGIZDX+f/bePN6OqszXf959TshAZhIgJCEBEgghGoYDhEFQgxoQQdp2QlsUhLZxovvaTrTaKt2Ntt1o90W7uYjD/XnFvmhDfrQyyKCCzZBACBCGRCEkISGBQMgcztnv/aOGvapqVe3a5+xz9tkn78Nnc3ZVrfWud1XVTq1vvWvwRWLKKO74LXmRTa1FYrKlNRZny7eZpDdBsWZ11Yrb5V4fa/eA7w7NvQvdKEcUmcm5QHUXqXQjGlJboDKaYct7H5W8qTJBjbig/G5XkjgRkozMScqmApVItLhhKb/fEnYNE6kZcM9lPA2z1NImZXxkvJn/DrQloqrn94PdK4H/EJGLgNXAewBEpAv4mKp+VFU3i8jXgQfDPF+LBu8DlwI/BEYSjF/5VZFd4MvAfsB3w1nmulXV5k01jEHCPZct4rgjH+D+1e9kWMexzN5yJUd2PQNVWP3EQRz85cdZMGyfVru519CoeOkJ/74duEZV/0tErmiyT21AXxoMBf1fGiqnhAjKNMrr0aiwylr3vvHP2V8kavLyRl2gyvpTyqaCav4q5b6Ge719efMy1LVZkKdevbMZkoWltUPSnni+lbi2UVctZzsvAJUWTLn3SsbRHHmd91NyEvtFS7Rdzf2JpNdliWIzwXdNXPC4XgpVNJXHbzf4HgmYUIq4ffE06BSmqlS1WpuyOv2j0TAS2fwhGe3CYSLybmA7gKr+shlGw25bCz37lwAfdbavA67LSTevAbsfde0ahjG4OPrwJfx+5VuZNfK3TB39M9gXNj67H2MnbufQr69stXt7HY2u87JORP4deC/wSxEZ3gsbbYyvSdKEN5+5Jup1CcntB9MHt8o3giTzcbu0JH1Xsu+4XTfzXc63medPr5Bsbq896dsVz23URl962QvI52dMyl7iTGZa940U0sAvIpUwiiVk7yHic5xY50Zrf3yeRg37WAB6nMqOffGtbhMm15qJ2LbUNlwxUVuosuZk3B3MiUgl1puBxFoutUUvBZEqcZezyAON4zMEIkoSkwfsxZMl/wYYBUwGJrXYF8MwhiCbnlvDiHE7OXn2rUw7cj09uzu4d+X7GHvJQ4wYu5eNmBgkNBp5eQ/BYlvfUtVXwgGHf918twYbzWwY9KYPUMkOTE1xs3Ej0WDmQiup7j/1G7x9e5Psa7sX1yxZXpHAaKQ7Wb10EhrM+NhAIb5z6YtQ1PNVfGcqlbdu1y8P0ZieiptNkt+LTPruFw3/V8lRg0U/r1jgpAzG92Ylddz3eib3BolkWWhTojFamkyGu8/Jk4jhpZRbJpdk1d3ex8pojRQRWdBqZwzDGDp0d3dz96f+hNMX3Il0Bi+P7lv1Pk7+0rWcLsLdX7yQrmkjGd1qR/dCGoqaqOoOVf2Fqq4Mt9er6m3NckZExovIDSLypIg8ISInichEEbldRFaGfyeEaUVE/kVEVonI8mjigObT7DeaUtyyaohkH/yBRRLf0/+5sRg3udssi8Zk15pubpebrK38uEXNpluGL1euBU/kJV1bn90im2W6t+XVzHnJXxe33m6eeDsdRfD6nw4LEAuMRGM/vH1zy8LfjE40xyPbbuRAsvsT0xJL1l4khosmSkj4KSQuc2LGtOhvOL10VZP1UVdtSXpVlZphcbcdEVQbiB/d5a7fUZQleSWjqIykHQ9DO1rVcMKAvXqVl/Oc7+e0zAvDMIYUd378TLZ++2DedOodaE+Fl9aMR6jy2i5l+4svcfcXL+TEGTey7GkbmtYKSokXEXmoGWlK8B3gFlWdA8wHngA+D9yhqrOBO8JtgDOB2eHnEoKJA/qBXvbjKbLn6wnlLaJ8wz2bv0768oZK58rtzkOi2ZVJV2u2Zf0tewbyyvDldxu0cQM5epVfUEY0tqHQputLiVPpiruEP1kdETfW69U7WqQyLQISn1S+Wv+m5AmIb083YJj6ZPa5/klmV2wv23XNOZ6y6QqNzPWRmq30ucj9WaTOAUK0lEtMVWvTN0eCJbhNgpwZ+ymhJSqISi29Eq6iWfNSVWNhU7On4bHIXi19TSK5F8lzY+w9HCAih4nIocBBrXbGMIz25q5vfJ1Xv7M/p5/yW0ZN2sqyh4+h509Ws//n1rH0iQV0TVvMiNtm0DVtMUufOIFTv31Lq13eKynbbexIEVlecFyAcX1xRETGAacBHwZQ1T3AHhE5l9pc+j8imEf/c8C5wI81WJ76vjBqM8VZvbjJ9KK/TFmaZTLR1cj1t0q8RHizCBepTDcm06Ih3hc1qJ19kvobvfVO2/Q1Vku7GaYtN0OZ29L2d9WJphpu9JIVtS1jceBp6Gd9zLfrHosWqSy7QGUs21LRiLS4qGp5m5AUA+nzFtdbiS9Qqv0fkxRatY3o3ora99UgKJG/tkvqBo1jFk50SqPv4Q7tqYYziXkccw1H90Zoskq2Piph1ER7AKdLWTxdW7KWgjiTSUg8IUBwrwS/nIYnchha/A0QzUv6ty30wzCMNubXX/pL5nT+J284bBNahVeeH8vmY7/PcR8+K07jCpXRFKwka/Q7ZcXLnBJpeuonKeQQYBPwAxGZDywFPg0c4AiSDcAB4fepwBon/9pwXz+Jl4h0c7HRpqwnbV4LtC+CKWGzHwSXr5jU3sSZ8TR48wSK+xY9bdOboY5vQtkzWb4V6IuA9Ja4nlHjt4mXy526udiseL7lpKrjZ0Puh8LFjex49UGdstzJtpwgWmBenP3U6uBKovS9mCxOajZVsyImPhmamF45TiYQDMB384kjOsJpkUPxWDu3mvzdRNGi+Jg3trRXoarPEbzMMgzDaJgnfn0X1V9+gjce9ywAq5+cRudZ32XGhxayX2tdMwooJV5UdXV/O0Lgy7HAJ1X1fhH5DrUuYpEfKtLYnKAicglBtzLoHNkkV2OP6N07+N6+t8979dsXiiRFYzlrXkZrhWQvVV6URgENowXp45HNxN4Sp9F3OO9MSvz/4tsrz2bUSC6MGOXtT+1w36RLX+byc6MPTsSoUvElqX9CVXEXkE9ETcR3YX3uOA37+ItTtDvWpIyIk/SGkJkqOb1OTs29KN4UXf1a2CnRYysUC5GoUIgnAsver7U7KehqlpxjTxJhHY2jRDX5pLHYSuRLRJLCEx9H64augBGRfVV1u4iMVtVtddJeCPxRVe8eGO8Mw2hXVtxxO2N/9+ccevCLdHb1sGXDGFZsfyenfv3fWu2aUYJGZxvrT9YCa1X1/nD7BgLx8kLUHSyc3WxjeHwdMN3JPy3cl0BVrwGuAZAR4wfBU7434iPzmrcPttKkYxIlxVVBy9IVMW6TrrfeupEYEDo8jTWf1/W6akV+JUmJpAbIRDlKVthbUtTQTjW8y1KUvBr2Z0pGObIxrqLIWGJfuqtWnuAqiv6kjKpjM71IZdqfMvrbjRhlxYEmE6aOu/dxpntfyqZEO91ZEhJmXbUW3NlBPcPfiRCOgamJzHg65dSgfqHWnazp7zQGDxNE5CPAKqBe5/KbgWP63yXDMNqFey5bxNGHL2HEuJ3s2jKSh588Bn2thxOPX0rn4d1sf2kUj+3+OMf91d9aN7A2YtCs0aKqG4A1InJEuGshsAJYDFwQ7rsAuCn8vhj4UDjr2AJgS/+Nd/HRD1EQ7yv5onf9ZW2W8bPxLii+1OJ86nXVcmuXlybbfQxvH/90w7bslUnWWjN78vIUHldnoHfdMlM2c5yP1w1phIIISNyYzzmXPqHgE4du9sjHvPui1C3mKtVQtLjnMuFb0c+D5L3o7osjRqRWeXF0a6Q9alLDWVsllV4IooYoqFRroR/1uxhFlYKPs9YLKcGmEp5PxV3zJbYZT6HWuLhtIxYSjIM8VET2Tx8UkWHh38OAPap668C6ZxjGYOWeyxZx3JEPsGTtOWw+9XE2bxjDguN/zylvuJ89O4ax7KF5jPnERo77i79ttatGgwymyAvAJ4GfiMg+wB+BjxAIrP8QkYuA1QRrzQD8EjiL4I3cjjDtAFDiNW8hnhhB2dfRjdDrxkz5jK7y9eXKi2HkvUHPs6G+NDlu9iW6UzbqUloYeV6IFwm5uOhmXm7PLZTYJQUJ67jinq1S1zQnIuJNo6lrXdMDmSiQK64iYeArKLs77N6Y0xM1GoYSnadIMFTS94ejjpRAgMRdCJ3IWXy+nYpF41cqCafdCEswIxkQTMBQKzCsq+ZUeMjwAHAhMF1VN3qO/72IfBu4gmDc5QcH0jnDMAYvRx++hPueeQe7d1fo/I+TmDrnVao9wp7tnYy8ZB3H7TO81S4avaSueGmkz3FfUdVlgG/S7IWetEptlpkBoFkNBPF+LaakiGmKi+Vbz8moSK1BVyZ33tv9bAn19tQXBI3VqHyqujadguulTfjoVWuedEV+lKhw1lb+Ou1xA74R7R2WkRYOkvrrFxZJI5rcjPPXohApnxoQt270Ke7+5TiZ7gaojuhIeqS4M4BFEZtKJduFLOmjUFvo1a1dSlJHQig1xij9+xtKqOoT4de82S7HEsw8+Q+YcDEMI6S7u5sR43Zy8qwb6RzVTffuDlYsm8WY9/8701YspNOES1tTptvYBBH5BHv1rHDNfLPp9F/pbd7c7WZQ1jFxGk2abEg65EVd3B5E6UashN15XJvphmpeeaT256Xx+VaU2ld23Vx1Lk9cB83md4+l9/uK8TXoy3yK6uCuCZN2ILaRakTXmtxZH+PsTmGJQfTh/rx1aYqNJn1MnI/QRrryCdHi+O6uMSPRdqK8dP+3sOuX1H4NcZkVqCLBOJao3ITDmvo4ViX6hUmyDIVqPCd00K1saEqXLCKyj4i4M6/cDUxQ1eXAytZ4ZRjGYGHHtm3c+rE/YesLG/OtAAAgAElEQVS3D0YEOkZ2s/LRGex62yO87puP8Oz/vYZdW5o9eZMx0JQRL4V9joc2RU3f3prMa4mVypy/23uoyb4XFJ4nNVwRAdk36G5v/rTN3E+dlpo7bKKe5/6c+ekbOaNlGpR17aUVRk6SxPlt0FFJG3dOc3xGUqIlr/wi/2JxkLYZNfTdOpSwFQsfrdlrREQm/BJHtEQ2nYiPijgiJpLX6SIk9isWHI4w1aqgVWfePE0KKHXsEAmeqJ6R2NLary32UYX8mNnQQUQ+TTAV/ioReUJEPqGqP1XVvwNQ1f/VWg8Nw2gVO7du59eXLGLYz6dwxmm3MmrCdp5fOZnXtnWyQRbQMWwMd3/xQk6ccSPLnvZ18DHaiTJjXur1OR7CFPTfaYZJl76Ij1w3oyZ8I4tUNt5tzP2bccHjYoSbp+pk9DWOE7Zy9ItrLyoz2bWtHpmSMrYSYzFycvn25112nzgo45nPS7dRHO2I8xXYr43WkHhHWgxFNjPjeEqc2Dgv2XNS1fANSsquOhvudU1c3yiIGSZQDRewJ3svJFx1FHWcJl2AcwKqPdXg5yPew7GYiKMq6k58XHNIwhNbrUJNskeLTKoj4DSuV7BIJbH9oN61iynhSagO4ZUqw2nzHyJY9+tIVd0oIpOBr4rI11T1y6310DCMVvHy+vU89bXzmHvEM7zpjduodgtrnz6Q/T99H9MnTOaeyxbRdfhiRtz2M7qmjWTpEyckFps02pO64qVEn+O9hLxGffnGvjd9YdZGbefRD29ltYqGkxYnw3fFkYu8fW5jMCs4PDZLnMa0kKkXHfDnLLbbrKsTNVCVZBQiXUbZO6IarpkT2WvEz6LrhPp97DUaChUl0wUtUX4J9RZHKJyl7dMRHXHSJzKnysyuFSOxUMiuvRNEYSqajsc4dt2CRZ2IS7BApcTKKDoRYZpK8txHPwyJdwxd0eJwF8EaYJOA34vIqwTPo0eBj4nIVar6cisdNAxjYNmycTNLv3Q+p5zw3xz/hm72bB/GQ8sXMP9vbmDG6AlxOleojGavHv8wpGhotjERmamqz/aTL21AM5qtqXy5r4fTCdLN/Bwf6tqrd7B8vRJv5+Ntcbb9DStfY1whsVaIK2LSln0vmXMjMZpN4zbmk6JJvYaKznjsp3giPAWnsih6k1nbpazWzSkkfW7dt/iSTpxD1K6uvf3P2optFrWnCyoeTYnsW6SxyFwqYJF7Lt1oTLre0b0V3w+JOjk5hVr3rZSI0SijKxalijsixS1XVWvrugjhrGexhCV9M3oXqoxtDl0Ro6o3AjeGU+L/JUHXsdcD84GJwJ0iMlZVD2uhm4ZhDADPLX+MnuvPY/LUlzn99J3s2T6M1U8exORP/47j9zuw1e4ZA0SjUyX/guANWIyILFDV+5rnUruQbQYNSgpf1fehDpI1nZV2yQZY3VI8viZthlYLW8f18S382DcZ5++qVdam5hTUlzvMW47bfavBaEyUL9NtyrkUhdGRovOSMppeoLLApCMS6tvM8zGjU5y/EmfSzP2t1fB4Jbk/+BIpnOL73/VLnRshFjJKOHA/3a8tEi4exTZ0+TjwH8AygqjLkcCjqvrGcHp9wzCGAOmFJZc93cXsT13DU9/4EF3HLGf4vN107+pg6YqFHPul6zl0+KhWu2wMMKUWqRSR94jIlcAYETlSJPHO8Zr+cW2o0mjDO/0+vz+6irg2y9quM60uyfZjnt5opM1VDT9l8mTfW2fLjBaTzGteKuXPts+mL18pm6lL3qsFKuuZzthUzzevO3GadD20muyylbChtU8u7vFQHMfXxxETsT+JDcexcJ+k8iQcj4vxX420r9GQeLfseAYzxVlDUkHCdVp85UfJpDYjmUjtbIpEY18yoTGSd2roUTxv8tBXL6q6EjgRuAEYQdB17Lzw2J5mliUiE0XkdhFZGf6dkJPugjDNShG5wNl/nIg8KiKrRORfJJw6Ls+uiJwrIstFZJmILBER691i7JW4C0vueutq7l95Bicccw8TfzeXU05/kGq1wvJlc9H3ruOEKxbTacJlr6SUeAHuJVjtfgLwzwSzvTwkIjcDO/vLucGLr9XUSN4Ck6Wp05rNtPKaYLOgKLfI9P56IkKoTVVbhnoN+Xp20tlr4sBvOO+lfj2bRZSxmSmj0cvjaZdnBIfHpu8apr8X2kzlSdwHdaJd8WVwAwoaiqIySI5I8thMRFN8N6+kd8eSIeu7BCqrmpLCWdGStAfBFMjxfGHRvRhFyVSpam3RyvRil0IkhIa+eIFApKjqf6nq36vqv/bjWJfPA3eo6mzgjnA7gYhMBL5CIKhOAL7iiJzvARcDs8PPojp27wDmq+rRBBPkXNsflTKMwc7Rhy/h/tXvZOJp5/Pol87h5Dm30TFMkU7lgafOZtTHXuCYbz7IiH3HtNpVo4WU6jamquuAH4vIH1T1XgAR2Q+YCTzZf+4NNnwNhD42Gupmb7Dz0AC2YVI9bEj2wU8StcdctVzO1fIt9r5Uvfa2O78OjRaSabiWzdiMS+6LRviKaOSkSblfgLdoyaaJgyQ5dn2XPu/UxNGQaMNjMysmJLSpYfcsT7o4OpItKNjlqqpg4L2qK2AkiO5UHHvR15RYimOZUhMrkQ11phzLvJNQ+tyV0shwLvDG8PuPCNaT+VwqzduA21V1M4CI3A4sEpG7gbFRd2oR+THwTuBXeXZTC0DvS/PD64bRFowYt5PDNtzNlJd+hpwG217cl2XrFnL8Eb/kpK/+rNXuGYOEspEXACLhEn5/SVWXqur25rs1GGmWKki/Au5FvsS+wUDSt7xOaEIjHvete1z6jX89S8Xvy2tHokOlbCa6HeX7Gb9lT9sseQp8kY76DXffdnL5RFcQxPtL+JS5SyWpnxJ2xZ+n0NHIDXVslPwtuZGWzPVxlZFjMz0mKTgUnQgnofh/odWwku79mLaY7YRZs5tegjLqThf3s0tNCmA0hQNUdX34fQNwgCfNVGCNs7023Dc1/J7eX2hXRM4TkSeB/yKIvhjGXkFPTw93/flCXrjiYAAOmvMC3bs6WfrISYz95Avs7h5jC0saCRodsL8X0g+hjF538cjJ15IeI268RQpUcK27S5poeIQ/GlNUKX9DLdWULNVgL2s7tqXlbXoCHl6bhX42em0lWX9fmfn7JLHTGzVJRzQk8afIraSNlJ16kyf4bEkkFqKoiXj8JbkvI85InWupCaOK46MicXRDfXVOCBT3IkQLSjrHI1EUR3tq4sMnc8S1p1qzWSWYSjkxoN8oi4j8GvBNT3S5u6GqKv0Q2krbVdX/BP5TRE4Dvg6c4csnIpcAlwAcfPDBzXbLMAaMl5/fyINfuYiu2Us57fQtqMKWDePYd+x27nvmXXR95pv85vKLOHHGjcH6LK122Bg0DDrxIiIdwBJgnaqeLSKHANcD+wFLgT9T1T0iMhz4MXAc8BLw3v6ZxrleE7RRPK9nnUN1dvhpsJtRMb0zkn77n/6eHhPhpukpKLVRb9zAgNNTp4S97NttX4oOj40yvudd8ngcSFoU+OwUnIzonCZWm/dU3GfC61so0tKBlowILfDbtZW+/oTiQKmJkMS9khY3Hn/dxRujcSJulCQ+JxSfQ9deJISE2tTNgYHaaBZnIjAIo1UJP8JCA7ErtWscnYjoO9XUApUaHk4KfnUqGOiUeNLw8jNYGBlU1SsOAETkBRGZoqrrRWQK4FugeR21LmAA0wi6ga0Lv7v714Xf69pV1d+KyKEiMklVX/Qcv4Zwopyuri5TrUbb8djtv2Hsby/kwMM2svBNVbp3dvLskwfRveAKjvjAe21hSaMug068EKyi/AQwNtz+BnCVql4vIv8GXEQwGPIi4GVVnSUi7wvTvbd/XMprmkfHGmk9eNI3q/GRK2KqBM3uskZKOKRVqnR4owYR9d78u3njxl9qf18pr+t819VjTxuxWRKt2W1kjZMiokUqezMlclH6qvbeR9+dFc1Oll4zpWwRceQlzKTi2PQImaKfsriJccRDtRoPbfEtUBlkUSqaUybOPR3OLKahyqlNiZztYxhEf4TkykmhWAorXJupzGgyi4ELgCvDvzd50twK/L0zSP+twBdUdbOIvBquS3M/8CHgX4vsisgs4A9hNOZYYDjBSznDGDL86pMf4pB9HmT2Uc/TeWQ31W7hoUcXcMxXbuSwEbUB+LawpFGPhsa89DciMg14O+FMK+H0km8mmBoTggGO7wy/nxtuEx5fGE1H2b+o8+kNOa9+vSbzyhHnU8fF2mvfAht17OXgvilPv1nX8D9f+nRe92/0PRqynI6H5C186SPrU/hm3vnUBmNnTlop+8U2yxNlz50WuTd3ttTOZXJK6NpxcTdK+pnwMW200XqHFXenmPberTl2E6c+rSojP1OCoq5PTtowBpKIzvhnfZPgPnBuhtoAfFCp1hx0/VEJPlElxa0RmeiZK/KV5MB+o6lcCbxFRFYSdN+6EkBEukTkWoBwoP7XgQfDz9eiwfvApQTPsVXAHwgG6+faBd4FPCYiy4CrCXoS2MU12p7du3Zz88cv5MUrp/KWBT9n9nHP8fLGcSx/5RN0/tlWjv+HO+gcYTOHGY0x2CIv3wY+C0R38n7AK6raHW67Ax/jwZKq2i0iW8L0mTB7/9Fo1KUv5UBztWZe/KB8fdK1T1pMy5P61t1V4NM5o+ZgsFHume4rS50GshtBkJL+Ftl0x0g04pdvkcp48cImXnKNehl5xVX9e1mVaAH5hI9xxKjO5fGNa9EovRNtqIYHKiXqLpkvxJcw8jUdicnqreiO1aQdRyy4+WKbUZ0c35M+hdLRyZ+IoqjbPUxSXchSNtNhoVrHsYYEvVEOVX0JWOjZvwT4qLN9HXBdTrp5Ddj9BkHvAcNoS9ILSz604nUcNHodUw5+iTNP2UW1W9i6cTQrOy7ihM//vXewmWGUZdCIFxE5G9ioqktF5I1NtBsPbqSzXWerSDesmymYemlT8hep9DWDG4/r1PJFNmPRUTJvvQBGNdMwjFLUcpY5O25jXl17BYGxejYzDeJeRHJ8+6IgU8LPhGfi9c8nUiO/omgMkfjMu0CRNvAqwNQxqV2feGyMr24pW3n2Yx/xdXvzN/5rIswjbFMiruLuc7ty1YIvjqhX56+Gor0mZFQlEYSpDchPyvl4dri9ZI0XwzAGJ9HCkvevfifVnuOY+fy3OXnBA0gFqj3Co48fw6xP/JgJUw7lhFY7awwJBo14AU4BzhGRswhWTx4LfAcYLyKdYfTFHfi4DpgOrBWRTmAcnj7C7uBGGTG+ia8o+6HBkDFZJA8asVnGV/eNbmN1q9fIzbOWly/tVdpmmc4U9c5cwqamjxZTHHHqnX+xzTzB05s7N6fLlN9P8XxLbudFndIN+bI9yXznIBH8cAWcePL4IlYkIzmJgIUjtCTcmWcvuhbJujsRmlQZkc2qVAvXMnIH40e9XGvjkpJ2gy5lGo5zifI54tqd4czWeTEMo0UcffgSHn74CObP+hVjJv4M2Q92bhlBR2c3nX/2PEeP2LfVLhpDjEEz5kVVv6Cq01R1JvA+4E5V/QBwF/CnYbILqA2cjAY+Eh6/c2D6CKdjCI2KGI+LuWGJ9NvWkggFNpuHW0Ttu8YfZ06k3NEkQhl3iyzk+9Q4ydxev6S8/cLoR17aPlxy7w6PvcSuRMEl7KaOeWIS+b+OVOWV7PV3u2GJ1trkUTettJfpcnMFYOq6hVKgdpdKJnlcdhxViaMhEguOWDjE0RYJxu5EAimKSEV1S/UtjIfphWIm+ITdzcJZAuJxNglVF4ypkcQ+wzCMgeO2f/gHNlxxMCPG7eTE05Yz5oBX2bNtOEvXfgje9STDRnUzzISL0Q8MpshLHp8DrheRK4CHge+H+78P/G8RWQVsJhA8/UQzGwbp17tlKNm1a4DbL27jM92s9DVq3XwVyrjbWCs+L2JQJpaUHjtQlL5sR7vcrk4O6fOU0RIlrqmv3oUCyeNfXprEfiER1aiXJyojHQXJnJN6gtAjvqL88duXtE85BvPa+okuZR5Hs+LQiYCkbMbXNOybV3GVkGs244wrK2v245cAzqFKKrxj414MwxgInn/6GZZ/45PMm/oEbzrsBSrDFK3CM09O58CPLWb01MM5Abj7ixfSNW0ko1vtsDEkGZTiRVXvJpgvH1X9I2S7SarqLuDdA+pYU9D8llWZvJn3x6kW04CRHPNSPALGTVfb6xMx4k2dLtnfUIv2FnfbKSJfcuX7mG8zPQFBrj0tsFlCefnqnedX2X2Z20qK92ejGgXlJCIPtTzSwK0cRTVUPOdYUsI6x2B0fVy94kakov2aqnu2i1YUAUkpzvDCVgFRQSpRJNJ3tqqp2mkclVH31xUtlBkOCAomdEjP62cYhtFcfn3V95i48hped9JK3rJQqXZXWPvMFDYOO4nXNr7AcUc+yP1XX0nXX36TJVd91haWNPqVQSleBh9l3t03Yq7AXmExBQczb+oHVs3kBQrSUYDMuAsaP7u+hpqvjMb7RNZvAjaiO+tFJEqZKlJNqd3xuc0LvdQlq7bS16u0+Ck45vOz6B5xNxKnIxI+ORo+3p1zshOiJcrv2nR8cWeEEw2nRXZkSFCEpMSSILUBNmg1+FKJRExitrF0vaUmrtyyE980nChBSs3MZhiG0Qhrn/wjL179J8w+ci2nT9pF5QBlz/ZhrHvuQA7+zN0cMu5ADgnT2sKSxkBi4qU0eb36G6UR0dKLcuIWkNsUamSRypJlahUNF6l024a+hqdvnIt6/uJtpJV0J2dfFN0pZ7d2VJ3/u1Sr6ZTlfC2SRbGAk8bFgWs7vgYa+FnpcPYXRDXUPaIpW+FG3JhP+1gmKuQIgfR9Ua2Gs4l57Lr1EsdGnF8TyQFq400kmz7jtzgxi1BjuNMdRz5Ve6pQwTttddzdMLzR1PE1OF4LA0VTMVerimo1Ga2JTpSzL7gfpDZ+RkBVanmcBSyrVbemhmEY9UlPb7zs6S5O+qf/4taPn8/B+6zgsLnrmHLSblTh2aen0XHSFzjk/A8zy2PLFpY0BhITLw2R1/TrpZipm60XtvssgsqX6UZN/O/ri73wCQB1/tbair1rmGnqb/lalU/VjPhWfP402X2qr7jRgzxh5KSOvCgWUJqKnPSVsOtXrYGfU349ze90vUtM2yHJe8tNXzci4/ikSDx3c1bERIk0MyaoFoTRpJMEwi2aPSxa6wUN5hYLpkzWQDQlynLWgXGnZDYMw2gAd3rjrnd/k//++qW8Yf6t7P5fk3nbabsBeGXDWB5/4VSO+Ph3mfWBaS322DBqmHhpiGZFXzzmcs0Wddzx+NCQi32rgy+6End5if/vJEi9/Xfz+NqS0SiACu6ImvL9+9O1S0c4kmcy32rRGS+0WXB6i6IXmbVdenuZnHyZhTS9kZh84RoFBjKLVIYqM9G1qegCpcvN8zHtSj3xEm2kRVpKEGo6fXxvacKnpEAL7tDITmJNG9d/x6P4HEk1UWqtXqFNDQRMFOmrzTaWX9c4KhiGZMTZaxiGUYajD1/CvavezvYt3ehPj+T0o3fTMaIHHd7NK+vHsmbcX3D0X32Z/VrtqGF4MPHSa5r57r3RckuWWddFX4KStnOSpUVM2Rm84sw5eqwW4XEad3VORV5zrmxEoqF4lWMzuwhisc1cP3vhR1E5UBMI2Xq78jDfz0hoJnK4XbWK6p53rlMG47VitDb7V3rygyLxV3SS60ahPILRXVslIbid7lyZbBL1Lyy6/0ObYWVjYYSzSGWi/HQs0S1voP8dMgyjHdnx6nbuvexPeNPCnSyYcQsjJ+5AFXZvHc5jL53H6w+6gf3+x3oTLcagxoZ5Dnp8LcIGuou4r9lz6U33k3yb6chKUepGggtKOHNTibRlm3KqQW8g8ZxnxX9m6p2pqtZWh8+UV8+mkLnk8TofTSA2nbGZ38jO0yTpeqgSrMfi+VdFoH4vJ/fkhIVWSZ7LhC91fhqJe0v9dZecez+xxgyhaHbvEkdcENWbMNIitZnDPJcz2B+v6RJ9ov1OlEidAhzhUrMpsRIz6WIYRh67du5i8SUf5OFLj6XnukN58xn3BP/OdPTw6FML2Hz0rez7sc28+nIHu7aMbLW7hlEXi7z0ir40FXLepze79dEre77OW+WK8eVw39L7rLp567y0T3pZpyHfm6rX2txJ6dUfjcK8cxUXmxfValTAeNRj+u7LCpi8eExBNKfApqTSpQMEudc9EhdONKYUQn6EJmUz7gqWSUg2muJEQcQ1FqfXuIuahhEjX13T6isatC+uEnIcVlWqYeUrlURWx6ZJF8MwkvT09PDLr36TA1/4BfOOW8VZp+9BBLZvHsXTKw5j165O5sx+lldem8Gs/edw9xcvtOmNjbbBxEtp6sUOemmnbvYGOw/1uR3TuIFajoIGv2RrUr+k8iqlUBA0RB3R0oDR9AxaRVkTsqEZl7xO3riIVGu4MJtQapHKeoIlSuMWnVtuKoqS29FRUvtzzr1PminJgfYZ33z+xSLGXZ8lWpFF42hZJRrD4jggNROOH9F9J6HNbCQs6E4nmXFLqJp+MQyDnp4ebvvm1cx44d+ZdfRznHl4FZkDu7fuw0trJrDlyL/h8PM/xtgwvU1vbLQrJl4GnMzr38byBZmdfXVa8P2I9w20s6fiOVpPZOTZrEeeMCpqWPvxvQEvbmgXNrzTjWpfPs2xWVLEuHeB+7cRQSeewqIGsiQTJlN5br+8LnFpUQBOZMX57vNRUzsVR0gV5MO1T/JcZRYRde05+9NlB2ZTUcpo8cjwqERjWKhJGonTeGvoFVbukchGLboT9W2zRSoNY2/BN73xlslnMH/P1YwZv5O3TNuGzFCqPcK6Px5A5xv/noPe8F5GiXBAypZNb2y0KyZeCukHNdCnV6Q5eZsRJogp222s1kxOtSFTlpKRDNe6O34lr+GW72O+R2WtlLWbsNdIK7HOqcwTWN5EZSmKYtQtIqkCfF2qGhFE6eO1+ELyZ5D+SXi7GHq6omW6lFWy/sbC0CNwMvdsuEOjfM65VAQkvShlOrNbVrjtDJxRDbuJRSImLEgc4eNYIZZC6fpE6cO+jiLJiTEMwxiauNMbb1tzIEfxH5x4zL1I5XdIB1RfE/6w6lBGnPwpDn7rhczwLU5lGEMAEy+FlIkbNGoyp0Vb9Nq4rs28LO775v4nt0tPyoP0Gchr4zd6tvPK8Pnjx33b7f9WyYuSNOBbRNzhKGw050dF6hcUX+lw3EXGZlFUI2dHdOckjvei8onZ3cI8Ws3emYl7IuVv+tq6dmMRU4WqJNOloy0Jo5KyGwUyUqJIq9X4X0r3HnfjKHG9wkS16I5bEedEOF3DErON4Qj+0Gitnpq0GXZ3i6+5YRhDlpc3beaYOfezdtUBHDX+10yY8RJSgZ49HWh3B4+/9EGO/tS/ckSl7ILUhtG+mHjpM2UjFRFSuNlnGnWn1+VUqRL8I5n3bqeeIHHffLuNv2a6X3b4SPJ4cVOwrM3SaLYh3leqVZBoxfcGozFF162qxVNBN4KEIgYhs/BjQxopdUFimx4hk0if2nCPJ0SfEitNkfQ1kthKRZNdv9IRyWhwPqLxlMjB/rBjWeImCNIkBulrEP2piVKvvDQMY4jwwC9+yfqbfsQREx/nkHlr6BjTzaHHrOG1ncN4cd0E1m0/iiM+/kNG/HoWx1z23Va7axgDxqCJKYrIdBG5S0RWiMjjIvLpcP9EEbldRFaGfyeE+0VE/kVEVonIchE5tv+91NSnv03mlZPp8JJvMxfJ+ZQnypEuKuqFn+6JXxSRUc/35LDl4I20NNC/P92QjG061Y0ao5pIVY74NIvfZlnf3O3caZF7IxhCf5RAdGQiKAlRU1yAG1GIfNT06XJviLIuRj5qbYppryc57rniNz0Gxncus66J83+nCuE1DWMgyXsz5zYJzlHtRpDwBKtoZrHKyL/gr4Td0urcOAkxpmjmF2I0i7znjifdBWGalSJygbP/OBF5NHw+/YuE08nVsysix4tIt4j8af/W0BiMdL/2Gjdf8R3u+vAbeeWfpnDszndz9ttuZvbxz7BndyfVbuGhRxcw/MLNHPi5tRz3tVtZ8p3LbXpjY69j0IgXoBv4H6o6F1gAfFxE5gKfB+5Q1dnAHeE2wJnA7PBzCfC9gXd5oBoOUWspLTBKtGhzXeyjAJNs7qRFvxgqlEg5DcK0zb5GJ3yN2jyTZc54nuCoO8tWlN+TLrbZuKaMy/HZzIiY2tG6Nn2auKFz6QimhHhNGa1qEDmq51JCcqeNOnnTPqbNRqu3pO3EWkJq+WIRo2GEx3fdIZxhrApUSQ7mT4aJXN9UJewS5nycYEwtxuN/XWA0lbznToyITAS+ApwInAB8xREj3wMupvaMWlTProh0AN8AbuuPChmt5Z7LFrHtu5Po/sm+bPvuJO65LLgl1jzxDDdcdAmr/voI9P9MZNGML3LaWx9k1KSt7N46nOVPnUz1rMcZc+lLPPDwqcyb+TC/ufyjbNv0Yjy98bKnu1pcO8MYWAaNeFHV9ar6UPh9K/AEMBU4F/hRmOxHwDvD7+cCP9aA+4DxIjJlgN3uBb1pZKRjHM1sqPTWpuQ2UnsRKyoopWYzaiuWtZNXIzfKETXma+/fk9bLnhk3IpEvEBoPiiWiHH0krl2uvWTzOp03nVKdA4nGfMGNIUX1cI9LaoFKx2biKvluLM++6PokT36d31SiklmDkr45o1RRlMUVQvFXN8aTLigYvB91KYvFnmcNmNqSmdSP2Bi9Ie+54/I24HZV3ayqLwO3A4vC59BYVb1PVRX4McnnVp7dTwI/BzY2tSZGy4kG2i9Zew47zniGe5edRNe837Pr2vHsf+8xnLfwJxxyzFoQZf3q/Vkz+gqGfXAz+35sM8d89XaGjZ8JBLODLX3iBLqmLWbEbTPomrbYpjc29lO4VN8AACAASURBVEoG5ZgXEZkJHAPcDxygquvDQxsgnu1vKrDGybY23Lfe2YeIXEIQmYHOZoZWe9tYqNP/pXQZJVqzkvlSh961kBuMBWXS1qtlppnXSNXL2AwFRyWn/r6Ge719jS6kGecvcLzXi1SKdzNlTzzfktt50ZwompLnY+K8SB17JAVMZFOrQEcqT95PyckfJ8lUHqCa+xNxp212hUfwXbMXPNRBVanW8nhulNhuLEo0ufClkyeIxChVrcbjjCRz8qKIkUVemkzec8cl7xk0Nfye3p9rV0SmAucBbwKOb0YFjMHD0Ycv4cEH5jJn5h3Iz47izSfvorJPFdUedm0ZwVMvnMJhH/gq+87sYnodWza9sWEMQvEiIqMJ3j5dpqqvivNGUVVVpLGntKpeA1wDICPG9/EJ72stNSpifC2aorRFCRoRQs0nK1ryT2/0bjkd6nPbYv6zq6ltfyM/r0FcNFg93RCOxijUE3GlpaCn7Lq+1LvkZX1KKz5JbsZJJCeRz67Hp7zrlmfI51ae72kR4/MybSNXAEo2X+3uyq68klm0MlVAfF8m7heN/2iUx+32laqsxM5q7f4DyIyPCURMIk3ofU1kDdCPfgghIr8GDvQcutzd6M1zpwwpu98GPqeqVakTRXNfyB188MHNdstoAo/8+j5W/eQaTppxJ+MmbWPEhJ2csvBhAKrdwprV09m1/1s4fPT3GX3pS7y+xf4aRrsxqMSLiAwjEC4/UdVfhLtfEJEpqro+DMdHIfV1kHhJMS3c1x+eNd9WQyZLtmib4mbjRnxrTOTJPLexWdjgLhkFKiNMypy9MutkJF7a17GXPl7Pz4zNnEJ8EsO3XUZmJ23lNH9Tt6tPUNQjGtNTcbNJ8nuRyYR4wLkzFDqcyibOd4F/PoGjjhaJZz6L0vg61+ae4Jpi0VDBuGu7+LO6d4F7glOiKHU0UETZNEY5VPWMvGMikvfccVkHvNHZngbcHe6fltofPZvy7HYB14fCZRJwloh0q+qNHr/jF3JdXV124QcBD9x4B2t/8QNOmPl7Jk17mTkVZd5bXgOCqHH1tQrP/vFg9j3jixz0hvdzqFS4+4sXcvC0kYxuse+G0Y4MmjEv4Wws3weeUNV/dg4tBi4Iv18A3OTs/1A469gCYIsTjm+mZ4PIZPo5Va19HfAXr7UCg4lek/9FTei0x24zLTtEQp2c/v+i1EVv/NOioUx0QOukSje6fWVkbJboOha1a/Nspt/3esshJQrdiEHKP9++YL+nILeujgGR4rKKxsy442Rw8zsGJPWB7LmMyna7ESaGsqTr69gmZVNwhFWldm+69VFXbYlnHr1EWCV1ksAZiO+L84QD+1OKVSRlz82nisaDq8rPwGeUJu+543Ir8FYRmRAO1H8rcGv4HHpVRBaEz7UPkXxuZeyq6iGqOlNVZwI3AJf6hIsxsPgG2ff09PDbHy/mxj97L89dfhh7rhvL/JfO49xF/8mUOS/QOWoPGzdOYMW6RWw75iY6PrCVB5adwvSp61l5yx1sf3GzDbQ3jD4ymCIvpwB/BjwqIsvCfV8ErgT+Q0QuAlYD7wmP/RI4C1gF7AA+0j9u9bIfT5G9dAsuIrOrgTIzr+R766+/+1CZXL5S041kX7qqkzr3hXYvfEm/QC+fM7/8PKHiLaPEqXQb3HXFWJ1bJn4HH41DSTue444rHtMhC019yUQ0CvzOKy++B3JOZvTzaORe8A5p8aX3CBuoRYeiUyA4kwVAQrBI2B8w2uNen6DrYbRfUmNYNMhLbTvOKuLYq0Vu3LExPtkT9CZr1r9NhoP3uSMiXcDHVPWjqrpZRL4OPBjm+Zqqbg6/Xwr8EBgJ/Cr85No1Bh/RIPv7nj2HnTtOYdLKazjhpHup/mQcC6pCx5nBk6vaI2xcsx+vjDyF2e/7a/Y58GimiyS6hZz67Vu457JFdB2+mBG3/YyuaSNtoL1h9AHRZkxj1CbIiPHKtDeWTV1uv1Tyk2bIaU6n88cr5NYz3EFmdb+MzbCJVhlW0sXOEuWGSTuG5QqE2ot0ZZ+OWgJPezr+u2+nG3nJpou3RelMLSLs87iCMnxYthwfHZXgU0vk/11UgOHDpNC/iM6Cy1PLpwzrEDo6ao1mf7rgS2dn/lTR7u59hkFHpVKzmSdeBIZ1VpI70unCjZHDQaQj6afH50oFOjv8Trq+VARGjiA7GD31HaCzQ+koWDg6Sr9Px2uMGEEiIuT66W4P7+xGKv7uXOLkGTF8V3AfVdJ1CMWG1ETMiOHdsfhI2JNQlAhAlX1HbWfYMDdvGD+T2j6AjkqVfYbvrt3D0bGoPhJJf2XsrN8tVVV7lbsX0dXVpUuWLGm1G0OGnu5ubv+Xa9n+8N28/Q23sPXF0YyfugUFOoYFvzVV2Pjcfrwy9gxmv/czdO53pBMlNQyjWYhI7jNtMEVe2oR0o7bRSEXeq2bf4T5EfRI2++8f1qh7Dbheavx/VwskGqd4GotO7vRA7N706W/8SpUvI/eS9YK4nu5A74K0jaCOzfp5PcLFl6KEn+UdrEU9VAMh4xWidQSb271O4/8Ff6K8iV9TogKauReT26EcqUZiJZUgnplBEdXEsZpYqqZ2RN3WgqhKPHg/cW41KQ4TIk/DSu89L58Mowz/50//gjnbn2LciN1s2TWcJ/c9gvNvyC4Dt3vnLu76/g2Mefhqxo3axr4jX2PiAa9wxoFbkTODNBNGvUy1p8JLG8bz6sR3cOCbL2Lf+07joC88x0EDXC/DMGqYeOkVfWm19aZbltvsaiBv3aR9a32mc9dqJuF39SYWJ320rQQDG91IRVIgpHKVOI2+w8VnUqjXGPTZjN595zW869pI7YjHYjR4uYsKikRMRbIisiyqJGZQi9dNqaRs5pxCbwQoOuXhjmrY9q+UdC4TIRIyM4UlzifZ4e/RveXOIJbt2qaxqAiETPb6uPGWoK6KuuPSwBE3QcWDrmHilKe5orD2C0j+BiRVK8PYW/k/f/oXnLz/PYw79lXGjNrM1h0TmfjQJv6/8y5hwiknsevh2zn58N8zYtQeOjqqvHnidjoWhhGVqrDt5VFs3TSa9ZunMnPqMyx57h2c9nc/ZgowBbj7ixfSZYPsDaPlmHjpFX15797b1qjbeM/GOrzUDdz0oR45Lays4Kg16Xpb82QkRrzrsfi0TFFzLn1qannT0qoBP1NRjrKRCW9JUSM5b6xJHfKSxwteSjqakYxxFRWXua20Nj6j8EIXibuU0WrUi0pqgiEdHfFv+Mt3I0bZKI5HZCcEXu0+dte1iXSIazMWEk73ruhPTdao8zcSMI6kCkNRlaibmjPmxfU1caqt24phsGDyvUw4ZiMP/3Ehr6zexRFTnmLWSX/kPT3PIvJTKm+PhAq8+tIYnlszk92vjWDY69/F7PMuY3zHCAAmEIx5Of7ImwPB8pffZMlVn+XEGTcGY1VaWEfDMEy89IF+aCzUeyUf00DD2n3dXUjvumX5LPsiKz5yG6OpMiqp7d7ayrOfzFT/PNRt3GtScOWVKal9RZeqV0PTchxIRE48lNACsfmMPcX7r4r4MhQZrdQ2XT8LRYtrwxFKktoXBz80FeXwRI9qwkniA5JKL4RRQwGVat3IViRsJXHBa+IoEi3BIpVBpMWJzTgRIo9PhtGG3HPZIo4+fAkjxu1k15aRLHu6q3Aw+/o/rGXJDbey8/EHOGLMfUw5aDM7t45k+oL1IMqpR92EzAvSahWks8ozz8ymuv/xTDrxHCa+fhETK8OYWOCTDbI3jMGLiZeG6WszIacF5zVbr5lccKzXbpbP6L75rStiUg3KdJqiF/beRnKBT71BM+qhCd1wcpwpOle96lVYhOd289+B2b19EjG+PDlCKvfWp9Y+d6dDzrvn4v054iGz4n0kTHIuSKKcaFsiGZOupNb2OhGjhMmM49HkC+oM+NXM32hSlXhuELd+kRIyjDYlmtXr/tXvpOvdYYTjyBv53Sffyo4jP8qOe3/GEZOfZNvWkUyauI0DZrzI5PE7WXSgUJle+x1We4LfyLaNo9nz2jBemXQuh779o9x0xQ2ce+K3mf2lZQVe+LHV7A1jcGLipTRl4gcN2imVtahrl6el24J2TLox53UhaoRSa7DWdzX5RjkhJ0qcRrc5WO60lBcsZWymx16UtlcmQlEvSYm8yYa7ZLJlhIJ4BICnqMw1S4lWTxs+313PJUn/ItwGvU/A5Psa3rmROHBsJHyTZBlBWvfuqgkNV8AFExBI0CXMc78mz717rycFTMImUEESY8PKLLBqGM2m0WiJS7VaZe3KNay85yEWHH4/f1xxEDteWMfyvz6Hw2eup2OfbhYcfy/acx8db++J82kVXtvVyWs79mHNhun0jDuSEdPmMfm4t7PvwfN5+d8PZvOjB7Bs1DksuugvufErV3H0jl/x6tbxhVEWwzDaCxMvpWj2q/Ci1lq9vNDQK/1+I/kGOi+akG5Wpd8vp9/MlxJCdY75Gso+su3w/KhLUUM7r4yq5s+SlcinOTaLdGstayKJeL6X8VU8V8Q7Q1lajHka5b6mtCtaM5EDkkKqtN8Jo8nEeeUlsmutjvH5lqwvmrGfjo7UIiiRBKmEF1UlkCWixNMyq/dMee45kTi9xD4Fw/W1qsG9VVFsiUqjLH0RHGk73mjJp9/KxHd/g6f/61fs3LCJzl0vMbljNXNmr2brK6Po7KwyftJWxkx5lck7hnHgPj1UxnUz58RnmcOzsf1qTyDQVz83k106np7OCcw+/wuMnHYsnR37AHC4x6/xZ15FR+cned29/z8vXHwbrxu7m8mnrGPMW/61l2fMMIzBiImXQvpBDfSpi0dO5KUvr9/7jK/ZGxC8JU69PU599+UrE6coI0rqRka8OYvTN/uM1rVZQolloiUNOpqJuTiCAig1hqO+/aSYTY81ydQhZcOn4xJdytwISZqCsT+Je1HIdFOLz4U40REVVHz3tcRiKRYcztTJWg2FTSRiNLSZPt9OREhSPgUipjY+JuiiZstUGvXJExz3XLaIU799C6rKtle2suGPz7Ph6Wd4ZfVadm/bxa5NG9hv+xJe696Hbh3OCNnCwrfez/pVkxn1wmM8//enccIRG+jZ3cGCY/+bnsffzJzX7YHXJcvfnzBysrszmNlr+whefXE/ph30LJvW78eOaedx6NveT8eko/jdlz9J17TFzPqb5Q3VsTLzPYx5C4w+6Jvw6qMw9gjkqH+lMtPWAjWMoYSJl0JKvPrui0kXr/mSZea6GbXaqkDBCn8ZY72ra1FcKP2OOWo4KtkS60U2VOp38IpslhUyOSUlvsXjGerk8u3P8ze2WxB1KNrv2o4b0s6OdIQk/9o4V0Frad1OUUBiquS6jqX8SQjX8DxG0an0PaB1/a3ZjSbjUoWqJK+9101HTSWui1tZR5VUe6rBz0e8h5FI1Ej2HlEnDBTJ/GoVgt+kI0JwJw+odWMTJDvVc3xyFNGoO1lySmbDSHP04Uu4f/U7kfWr0J/O5XVj92HH5lGccPS97PnhWLp3DkP2dDBtWDeHjt9NdUoFKkplrv9fr+nzNjB93gYguAe7d3UinVVeenksI3fsZtOrByAHncCYGUdSHb4fBxyzkI7RU+gMF2GeHH4iUbXqqS0cdNahLPnyJ/s0q1dl5nvAxIphDGlMvJQmr1HfaGM/lb7Zr0y97vTDe1mtUg0FUXIR+fwuX0Vv7d3GX1Zw1O8WUz9W08hZKC6vTue9hhFqjfm8CEGjVMM1c6JITCM2CqMrmuxW1Rdc0RFv5/hQWJ6bX4K3u24UxUkSRk6cneK/X8XJEEVbSEVCXG8VqKg/Ipi8rgqizgKVQSRFEsonODEahC4TWWMRmhI6/fIbN4YUI8btpOvd32Tb949l1KTtjKxup+e1DirDqlS7K1RF2f7acF7buS9jq1t5detotusUemQkw/c8z87OaYyds4AREyYxetXf8tiaEzn+r/8n7DMBhu/HPZdfRNe0xUz9/GqA0mNMbFYvwzAaxcRLQzQjEpPKl24nZyInvgN1yi7tZmEztS7u2+fadvR+Odmtpihv/IZfSXShCdtunpKgjBrJi6Pkn8nGRFKiDewIhPTfMr5loiaQ6VrVMO651JSIyUQ2iguI2tWxTSc6k6lw/dOY8RHiBezpaKCuCZGbiVA46SQZjUnWW7NVSIVqotEs8XlQEoPm4+LToanUQpWJ+ye8JhrmEXF/DenYEYnzHI58aUjgG3s3u7aMZMlVn+X0rz4OlWFQGR4LjtGXvsg+kFh8cWyBrXsW38JxRz7Ab678h2ANlK9d1Kdoic3qZRhGI1TqJxm8iMgiEXlKRFaJyOcHtvR0h5qBosEWbaGLfahDustNxloyduLuyfXa44ridrAJcudFKMriRndc3/pCvPijuy8nipIRVTmFp7uUNYIvi2ogEHp71ZVsXl+9ve5GEQvxnIOU0aoGkaN6a9sk7LgbHkd9ftYEnNQ2JflxpyLO1L0K6d5acVZRkGr4SRSXKFwTPkrYJSyhUoIxLbEmSlcuUlIYRiHLnu7ixBk38puvfJrtm7fxm8sDwbHs6a6GbZ367VtY+sQJdE1bzIjbZtA1bbFFSwzDGDDaNvIiIh3A1cBbgLXAgyKyWFVXtNazejTazaxM/KCvuDbL+pc/SDj93riRCERRmiJ7PjFSr4Ge9xa+N7iRk6JuVaWCYungnKdbVW+Im8Va8yXZ/UhS33Jdqp07N8oR7fQNr3Lb1wU3jisgEtE4J08qKJJ1LEc0Jh0P/id5Y0VcX4jSuqGclM0oTChBtzC3UF91JZoAQGoGEgPzoz51GZVX8yY05PffMFI0u3uWRUsMw2gVbStegBOAVar6RwARuR44FxgA8dLbd/YFcYfE7rIBscI4RonWYpq+NdzzGrwKheuDFEVkfI193xv5vkRRokZy2fr72sfpfWWiBt78Bc7Xs5nNkCysr+cyL5qTbqTnCbS0qMsVoY7fUdtefXNOeFVBMn/8x2MzETZJ35tO3tq9Gc4glrpP4nopVMOuXHn3c6L+4UYcVXH74oVGVZWqVmtTOqd+bJI++YZRgAkOwzCGAu0sXqYCa5zttcCJ/VtkP7QQmm2yz/bKG8iKlvzWtftyupGS3IZimbZ7r6sfK4fmdQWsF73wUio0U8JuRjX4i2noxX1ORKOonnmiTJxjGbMJgZFNkBsZkmxZrn7PiitnfJYmz4U4ziUG6TsFBF/dyE0tpFVzPYywVFI+4kRXgg3H19qifHGhqmH3Qqmds5zJBgzDMAxjKNPO4qUUInIJcEm4uY0/3PRUK/3JYRLwYqudaJTu5GZuHXYNgC9NoC2vQQqrQ+tppf8zWlSu0SKWLl36ooisTu1ut9+Q+du/mL/9S7v5C+3jc+4zrZ3FyzpgurM9LdyXQFWvAa4ZKKd6g4gsUdXGR00OItq9Du3uP1gdBgPt7r/RXqjq5PS+drsHzd/+xfztX9rNX2hPn9O082xjDwKzReQQEdkHeB+wuMU+GYZhGIZhGIbRT7Rt5EVVu0XkE8CtBEN5r1PVx1vslmEYhmEYhmEY/UTbihcAVf0l8MtW+9EEBnW3tpK0ex3a3X+wOgwG2t1/o/1pt3vQ/O1fzN/+pd38hfb0OYFow/OvGoZhGIZhGIZhDDztPObFMAzDMAzDMIy9CBMvA4yITBeRu0RkhYg8LiKfDvdPFJHbRWRl+HdCq30tQkQ6RORhEbk53D5ERO4XkVUi8rNwEoVBi4iMF5EbRORJEXlCRE5qp2sgIn8Z3j+PichPRWTEYL8GInKdiGwUkcecfd5zLgH/EtZluYgc2zrPa+TU4R/D+2i5iPyniIx3jn0hrMNTIvK21nht7A2IyKLwPlslIp9vtT9p2vXZ127PunZ7tg32Z1m7Pbf2lmeUiZeBpxv4H6o6F1gAfFxE5gKfB+5Q1dnAHeH2YObTwBPO9jeAq1R1FvAycFFLvCrPd4BbVHUOMJ+gLm1xDURkKvApoEtV5xFMWPE+Bv81+CGwKLUv75yfCcwOP5cA3xsgH+vxQ7J1uB2Yp6qvB54GvgAQ/q7fBxwV5vmuiHQMnKvG3kJ4X11N8LuZC7w/vP8GE+367Gu3Z13bPNva5Fn2Q9rrufVD9oJnlImXAUZV16vqQ+H3rQT/sEwFzgV+FCb7EfDO1nhYHxGZBrwduDbcFuDNwA1hksHu/zjgNOD7AKq6R1VfoY2uAcFkGyNFpBMYBaxnkF8DVf0tsDm1O++cnwv8WAPuA8aLyJSB8TQfXx1U9TZVjdZsvY9gzSkI6nC9qu5W1WeAVcAJA+assTdxArBKVf+oqnuA6wnuv0FDOz772u1Z16bPtkH9LGu359be8owy8dJCRGQmcAxwP3CAqq4PD20ADmiRW2X4NvBZoBpu7we84vw41hI8lAYrhwCbgB+E3QGuFZF9aZNroKrrgG8BzxH8Q78FWEp7XYOIvHM+FVjjpGuX+lwI/Cr83q51MNqPtrrX2ujZ127PurZ6trXxs6ydn1tD4hll4qVFiMho4OfAZar6qntMgyngBuU0cCJyNrBRVZe22pc+0AkcC3xPVY8BtpMKow/yazCB4I3JIcBBwL5kw8Rtx2A+52UQkcsJusb8pNW+GMZgpV2efW36rGurZ9tQeJYNpvNZj6H0jDLx0gJEZBjBP94/UdVfhLtfiMKL4d+NrfKvDqcA54jIswRdE95M0Md2fBj2hSAkua417pViLbBWVe8Pt28g+Ae/Xa7BGcAzqrpJVV8DfkFwXdrpGkTknfN1wHQn3aCuj4h8GDgb+IDW5p9vqzoYbU1b3Gtt9uxrx2dduz3b2vVZ1nbPraH2jDLxMsCEfWa/Dzyhqv/sHFoMXBB+vwC4aaB9K4OqfkFVp6nqTIKBXneq6geAu4A/DZMNWv8BVHUDsEZEjgh3LQRW0CbXgCDEvkBERoX3U+R/21wDh7xzvhj4UDh7ywJgixOmH1SIyCKCriXnqOoO59Bi4H0iMlxEDiEYxPlAK3w0hjwPArPDWZr2Ifi3eXGLfUrQbs++dnzWteGzrV2fZW313BqSzyhVtc8AfoBTCUKMy4Fl4ecsgr60dwArgV8DE1vta4m6vBG4Ofx+KMFNvwr4v8DwVvtXx/ejgSXhdbgRmNBO1wD4KvAk8Bjwv4Hhg/0aAD8l6Nf8GsEbwovyzjkgBLMn/QF4lGA2msFah1UE/Yaj3/O/OekvD+vwFHBmq/23z9D9hM+Rp8P77fJW++Pxr22ffe30rGu3Z9tgf5a123Nrb3lGSei8YRiGYRiGYRjGoMa6jRmGYRiGYRiG0RaYeDEMwzAMwzAMoy0w8WIYhmEYhmEYRltg4sUwDMMwDMMwjLbAxIthGIZhGIZhGG2BiRfDMAzDMAzDMNoCEy+GYRiGYRiGYbQFJl4Mow4iMldEPiwi00VkTKv9MQzDMIzeYs80o90x8WIY9RkGfBI4D9iWPigiM0Vkp4gsa3bBIjJSRJaJyB4RmdRs+4ZhGMZehz3TjLbGxIth1Gc68ANgFZD3luoPqnp0swtW1Z2h3eebbdswDMPYK7FnmtHWmHgxjBARuTN8I7RMRHaJyHsAVPVm4AZV/aWqvlrCzkwReVJEfigiT4vIT0TkDBG5V0RWisgJjaQzDMMwjEaxZ5oxVDHxYhghqvrm8I3QvwOLgZ87xzY0aG4W8E/AnPBzPnAq8Bngi71IZxiGYRilsWeaMVTpbLUDhjGYEJEPAWcC71LVnj6YekZVHw1tPg7coaoqIo8CM3uRzjAMwzAawp5pxlDExIthhIjIu4EPAOeq6mt9NLfb+V51tqskf3dl0xmGYRhGaeyZZgxV7EYyDEBEzgYuBc5W1V2t9scwDMMweos904yhjI15MYyAHwHTgHvDwY0XtdohwzAMw+gl9kwzhiyiqq32wTDaGhGZCdysqvP6sYxngS5VfbG/yjAMwzAMe6YZgx2LvBhG3+kBxvXngl4Ei4pVm23fMAzDMFLYM80Y1FjkxTAMwzAMwzCMtsAiL4ZhGIZhGIZhtAUmXgzDMAzDMAzDaAtMvBiGYRiGYRiG0RaYeDEMwzAMwzAMoy0w8WIYhmEYhmEYRltg4sUwDMMwDMMwjLbAxIthGIZhGIZhGG2BiRfDMAzDMAzDMNoCEy+GYRiGYRiGYbQFJl4MwzAMwzAMw2gLTLwYhmEYhmEYhtEWmHgxDMMwDMMwDKMtMPFiGIZhGIZhGEZbYOLFMAzDMAzDMIy2wMSLYRiGYRiGYRhtgYkXwzAMwzAMwzDaAhMvhmEYhmEYhmG0BSZeDMMwDMMwDMNoC0y8GIZhGIZhGIbRFph4MQzDMAzDMAyjLTDxYhiGYRiGYRhGW2DixTAMwzAMwzCMtsDEi2EYhmEYhmEYbYGJF8MwDMMwDMMw2gITL4ZhGIZhGIZhtAUmXgzDMAzDMAzDaAtMvBiGYRiGYRiG0RaYeDEMwzAMwzAMoy0w8WIYhmEYhmEYRltg4sUwDMMwDMMwjLbAxIthGIZhGIZhGG1BZ6sKFpGRwC3Am1W1x3P8W8AvVfXOAXfOMJrM0qVL9+/s7LwWmIe9NDCaSxV4rLu7+6PHHXfcxlY7s7eS90wTkR8CN6vqDSJyPfAlVV3ZIjcNoynYM83oR+o+01omXoALgV/4hEvIvwL/CzDxYrQ9nZ2d1x544IFHTp48+eVKpaKt9scYOlSrVdm0adPcDRs2XAuc02p/9mLqPdMAvgd8Frh4YFwyjP7BnmlGf1HmmdZKtfwB4CYAEfmciDwqIo+IyJUAqroa2E9EDmyhj4bRLOZNnjz5VftH3mg2lUpFJ0+evIXgDajROj4A3CQB/1NEnhKRXwP7O2l+B5whIq18cWgYzcCeaUa/UOaZ1hLxIiL7AIeq6rMiciZwLnCiqs4HvukkfQg4pRU+GkaTqdg/8kZ/Ed5b1nWjRbjPNOA84AhgLvAh4OQoTrYRpwAAIABJREFUnapWgVXA/Ba4aRjNxJ5pRr9R75nWqofdJOCV8PsZwA9UdQeAqm520m0EDhpg3wzDMAyjEdxn2mnAT1W1R1WfJ9v12Z5rhmEYfaBV4mUnMKJEuhFhWsMwDMMYrJR9poE91wzDMPpES8SLqr4MdIjICOB24CMiMgpARCY6SQ8HHmuBi4YxJHn3u989c+LEifNnz559VH/Z6ejoOG7OnDlzZ82addQRRxwx9ytf+coBPT1FY5jbi6L63XzzzWPGjBlz9Jw5c+bOmTNn7sknn3w4wF/91V8dNHLkyGPWrVsXj3UYNWrUMdH35557rvPss88+dPr06fOOOuqoI08//fRZy5cvHw6wfPny4aeffvqsGTNmzJs7d+6RZ5111qFr1qyxMRODiNQz7bfAe0WkQ0SmAG9KJbfnmmE0CXum9Z12fKa1so/0bcCpqnoLsBhYIiLLgM8AiMgwYBawpHUuGsbQ4sILL3xx8eLFdadpvfnmm8e8613vmtkbO8OHD68++eSTK1atWvX4nXfe+fTtt98+7jOf+cyQ6SZTr35dXV3bnnzyyRVPPvnkit///vdPR/vHjx/ffcUVVxyQtletVjnnnHNmnXbaaVvXrFnz2OOPP/7ElVdeue75558ftmPHDnnHO94x+8///M83rV69+rEVK1Y8cemll27asGGDiZfBx23AqcB/AiuBFcCPgf+OEojIAcBOVd3QEg8NY4hhz7S+047PtFaKl6uBCwBU9UpVnauqR6vqF8PjZwM3qGp3yzw0jCHGmWeeuW3y5Ml9/k2VtTN16tTua6+99tkf/OAH+1er1b4WO+hopH7vf//7X1q8ePHEF154ocPdf/PNN4/p7OzUz372s5uifSeddNLORYsWbbvmmmsmHnvssdvOP//8LdGxs88+e+vxxx+/q+mVMfrK1cAFGvAJVT1CVd+iqmep6g1hmvOBf2+hj4YxpLBnWnNpl2day97eqepDInKXiHTkzIvfCfzTQPtlGP3NhRdeOP2xxx4b1Uyb8+bN23HdddetaabNZjF37tw9PT09rFu3rnP69OlNfRlxwgknHPHBD37wxU996lMv7d69W97whjcc/uEPf3jTpZdeunnr1q2VhQsXzr744os3XnzxxS+/9NJLHWeeeeasj3/84y9ccMEFr6xfv77z3HPPPeyyyy7bcP7552957rnnOg8++OCG/XPrB7BkyZLRc+bMmQtw7rnnbv7GN76xAWD06NE973//+1+88sorD7jqqquej/IvX7585Pz583f4bD/22GMjjz32WO8xY3BR4pkGwaD+/z2QfhlGf2PPtOZhz7RytLTrgapeV3Ds/w6kL4ZhwOtf//o5e/bsqezYsaOyZcuWzugfrL/7u79b+653vevVVvvXDnR1dW276667VvmOff7zn984f/78uV/+8pet29AQpOiZFh7/wUD5YhiGPdOawWB8plm/acMYYAbr2ySA5cuXPwlB2PcHP/jBfj//+c+f7avNFStW7NPR0cHUqVOb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MabSq9ItL5VRREQEjz32mHu/ZcuWLFmyhA4dOgDwySefMHbsWFasWMEll1yCw+Fwt9oYY4ypflR1VDHvK3BPUWU8ZcWKFcyYMYOZM2fSrFmz4g8wxphKxpIXLwsJCeHyyy93748aNYro6Gh69eoFwNSpU1m6dCnff/89tWrV8lGUxhhjaoKMjAwOHTrEmTNnfB2KMcaUid3yr2CBgYFcc801OCdIg5iYGDp27OhOXObMmcPPP//syxCNMcZUU1dccQXr16/n/PPP93UoxhhTJpa8+Njtt9/Ov//9bwAyMzOZMmUK77zzjvt9W1jTGGOMMcYYJ0teKpFatWqxa9cupk+fDsD27dtp1KgRH374oY8jM8YYU1387W9/Y8SIEb4OwxhjysSSl0omLCyM6OhoAMLDw/nrX//KZZddBsCyZcu49957OXXqlC9DNMYYU4WFhoYSFhbm6zCMMaZMbMB+JdawYUN3KwzAb7/9xn/+8x+ee+45ANauXUtERAStW7f2VYjGGGOqmEmTJvk6BGOMKTNrealCxo8fz549ewgKCgJg4sSJeZr+t23bRmZmpq/CM8YYU4VYfWGMqYosealiAgMD3c/fffddZs6cCYDD4aBv377uxTLBuSCmMcYYk9/NN9/MwIEDfR2GMcaUms+7jYlItxIUy1TV37weTBUTGxtLbGws4ExeXnvtNRo0aADAyZMnadSoEa+++ip33nknzjXQcE/RbIwxpuSqW13Vp08fTp8+7eswjDGm1HyevADLgDVAUb+q44DYCommigoICGDw4MHufYfDweTJk+nZsycAa9asYeTIkcyfP5/u3bv7KkxjjKmqqlVdlbuV3hhjqpLKkLysUdUriyogIv+tqGCqi6ioKKZNm+beFxE6duxIixYtAPj444+ZN28ec+bMoW7dur4K0xhjqopqV1dlZ2ezfv16u6FljKlSfD7mpbjKoKRlTNEuuugivvjiC+rVqwdAYmIi+/fvJyIiAoD58+fzwQcfuLuXGWOM+UN1rKueffZZevTowf79+30dijHGlJjPkxcR2SwiU0Skpa9jqUluv/121qxZg5+f85/A7NmzmTlzpntMTGJioi/DM8aYSqU61lU33XQT8+bNo3Hjxr4OxRhjSqwydBsbBYwEvhWRk8A84ENVPezbsGqWb775hhMnTgBw5swZYmNjmTx5Mo888oiP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\n", + "image/png": "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vXt37pAhQyr9dkaMGHHozjvv/Oq9995b/eabb7YHgD59+hz6v//7P4/tRYsWtRowYECT2QShKbBs2bKVK1euXP74449vOOuss/baayZqI1yWL1/ePCcnB0VFRbL7Zh2SSj8XFBTUXHDBBbsfeOABZ9pm2L8LADBo0KDAvw3pIKE34WjmQwBPw3yPSx7M9Vf3MPPzRDQKwAwABwH8k5l/6S9sLb79LYAhAKphLrAfBOAWmLsJ9QJwGTOXx3WImdcT0XyY09hmp980QRAEl169eh2eO3duazvyAgBz585t3atXr7R385wwYcL+22+/naZPn15w00037QSAjz/+uOXAgQMPP/TQQ11eeeWV/PPPP3//gQMH6Lrrriv+8Y9/HHg6e/fdd29u2bKl52FRRUVF4l//+tcx48eP32/b7Nq1axUA3Hjjjdtuu+22biNGjFjduXPnmvnz57d84YUXOi5YsGCl33ZTJxMRksbCl19+mTt58uSSq6666qtEIqvP3euUhQsXrrK/t2jRgtXj/Px8Qz3u2LFjjXrcpUuXavU4nahLOv38i1/8YntZWdmAmpoaAsL/XdizZ0/O5MmTdz388MOdn3/++baXXnppBQC88cYbrQsKCqpTWfci4kU4arGiKz8looUArmLmscrpcwDcxcyvK2/H9jMBgMHMJwPmtstWejNmHktE4wBMAqDberkSwGIiepSZb/f5dZquMiJ6G8AoAAvjtVAQBMHkpptu2nrttdf2ALB+zJgxB+bOndv62muv7XH77bdvSddmIpHA7Nmzv5gyZUr3GTNmdG7RogV369at8rHHHtv00ksvrZk6dWrxtGnTmhmGgYsvvnjXrbfeGlhLeMkllwSexBuGgQceeKBw6tSpJXl5eUarVq2Mp59+eh0AXHbZZRWbN29uPmrUqAFExMccc4wxa9asdSUlJc6upBdccEFpbm4uA8CwYcMOvPHGG2vTbaOgZ8KECT0XLFiQv2fPntzCwsIht9xyy5c33HDDzkzaqaysTPTv339gdXU15eTk8MSJE3fdeeedMpU6w9S2n7t06VI9bty4PU8//XQhEP3vQuvWrfnVV19d85Of/KT7z3/+8+65ubk8YMCAQzNnztyYis+UvdkxgtAwIKI7AHRk5uuVtM4A/hvm4v2/MPPrmnI/B/AFM/9dSTsNwARm/ikRDQbwU2a+qq7b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\n", "text/plain": [ "<Figure size 936x504 with 5 Axes>" ] @@ -609,12 +609,12 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { "data": { - "image/png": "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QJ8YNFMkkhTTJGoqimmxCnYtgJ3B92cAz7j7XgB3316k3hagbQ23TUREJBxFY9rJwIvunu/uGzi467PimohINcQqedkHpFSiXkqwroiISG1V2ZgGimsiItUSk+TF3XcAiWaWAswCRplZKoCZHVKk6uHAshg0UaROuuiiizofcsghfbp163ZktM6TmJh4TI8ePXoedthhR3bv3r3nvffe2yo/v7wxzPGlvM83c+bM9PT09KN79OjRs0ePHj2PP/74wwFuvfXWto0aNeq7fv360FiH1NTUvoXv16xZkzRkyJBDO3To0OvII4884pRTTjlsyZIlDQGWLFnS8JRTTjmsU6dOvXr27HnEWWeddejatWs1ZqIWKRHT5gKXmFmimbUBTitRXXFNJEIU06ovHmNaLPtIvwec6O7vANOBBWa2GBgHYGYNgMOABbFrokjdctVVV/0wffr0CqdpnTlzZvqwYcM6V+U8DRs2LFi5cuWKb775Zvns2bP/O2vWrCbjxo2rM91kKvp8/fv3371y5coVK1euXDF//vz/Fm5v2rRp3vjx41uVPF9BQQHnnnvuYSeffHL22rVrly1fvvzLBx98cP2GDRsa7N27184555xu11577dbvv/9+2YoVK74cM2bM1k2bNil5qX3eA04E3gC+BlYAzwMfF1Yws1bAPnffFJMWitQximnVF48xLZbJy+PACAB3f9Dde7r70e5+R3D/EOBVd8+LWQtF6pjBgwfvzszMrPb/qcqep127dnlPPfXUd88880zLgoKC6l621gnn8w0fPnzb9OnTD9m8eXNi0e0zZ85MT0pK8ttuu21r4bZBgwbt++lPf7p7ypQph/Tr12/3ZZddtqtw35AhQ7IHDBiQE/EPI9X1ODDCA2509+7ufqa7n+XurwbrXAZMjmEbReoUxbTIipeYFrO7d+6+yMw+MLPEMubFTwIerul2iUTbVVdd1WHZsmWpkTxnr1699k6dOnVtJM8ZKT179szNz89n/fr1SR06dIjozYiBAwd2v+KKK3646aabtu3fv99OOumkw0eOHLl1zJgx27OzsxNOP/30bqNHj94yevToHdu2bUscPHjwYTfccMPmESNG7Ny4cWPS0KFDu95yyy2bLrvssl1r1qxJ6tixY9jtK/r5ABYsWJDWo0ePngBDhw7d/oc//GETQFpaWv7w4cN/ePDBB1v9+c9/3lB4/JIlSxr16dNnb2nnXrZsWaN+/fqVuk9ql0rENAgM6n+hJtslEm2KaZGjmFY5Me164O5Ty9n3j5psi4jAUUcd1SM3Nzdh7969Cbt27Uoq/MJ64IEH1g0bNiwr1u2LB/3799/9wQcffFPavttvv31Lnz59et5zzz3qNlQHlRfTgvufqam2iIhiWiTUxpimftMiNay23k0CWLJkyUoIPPZ95plnmr/22mvfVfecK1asSE5MTKRdu3YR7wL66aefflX4vmHDhl60nJ6eXlC03Lx58/yi5TZt2uQVLVflDhUU/3xffPFFuXVbtGiRf/7552//05/+FFq4sHfv3vvefPPNZqXVP/LII3Pmzp2bVpV2iYjUBMW0yFFMqxwtaiYiUbNhw4ak0aNHdxo1atSWhIS693VTlc935513bn7uuecy8/PzDeCcc87Jzs3NtYceeqhFYZ1PPvmk0TvvvJM2evTobQsXLkx76aWXmhTu++c//5n22WefVXZaXhERiRDFtIPFIqbVvT95ESnTOeec0+XEE0/ssXr16oatWrU66s9//nOLio8K7zz79+9PKJx28bTTTjv89NNPz3rooYc2lHe+eFLdz9emTZu8wYMH78jNzTWAhIQEpk+fvmr27NkZHTp06HXYYYcd+etf/7pdu3btDqSlpflbb731zeOPP96yU6dOvbp27Xrk448/3rJ169aayERE6j3FtOqLx5hm7h7u5xSRMH3xxRff9enT54dYt0Pqri+++KJFnz59Ose6HSJS9ymmSbSVF9P05EVEREREROKCkhcREREREYkLSl5ERERERCQuKHkRqRkFBQUFFutGSN0U/LdV95Z7FpHaSjFNoqaimKbkRaRmLNu6dWsTfdlLpBUUFNjWrVubAMti3RYRqTcU0yQqKhPTtEilSA3Iy8v7+aZNm57atGlTL3TTQCKrAFiWl5f381g3RETqB8U0iaIKY1q9myrZzKYCQ4At7t4rAufrCDwFdAAcOMvdv6vueUVERCqimCYi9U19zJafBX4awfM9D/zJ3Y8ABgJbInhuERGR8jyLYpqI1CP1Lnlx97nA9qLbzKyrmb1jZgvNbJ6Z9ajMucysJ5Dk7rOC597t7nsj32oREZGDKaaJSH1T75KXMkwBxrr7McA44K+VPO5wYKeZvW5mn5vZn8wsMWqtFBERqZhimojUWfV+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FiFt27bl2muvpWHDhgBcddVVvP/++zRv3hyAefPmMXny5FDC8stf/pKuXbuGjn/99df561//Gipv3769Vs6MVNNWr17N2LFj2bNnDwAPP/wwr776ami620GDBnHYYYeF6qelpdGoUaNQ+bzzzmPgwIEANG3alF27dnHttdeGzj1jxgw2bdoEwNdff82QIUP44osvauSzSXTccMMNXHFF2fds5s6dGxq7VhuE223sZmAA8L27nwb0BSrqOnY7sBVYClwLvO3ud4bbUBERkSjYaWZpBG7M/c3MJgB7yqmvmBYlzZs350c/+lGoPH78eDZt2hT6pfvUU09lxIgRof2vvPIKTzzxRKg8atQoBg0aFCrfeuutxfrwP//887z00kuh8ieffMLSpUtD5aysLHJyciL7oWpQ4dihDRs28NRTT4W6evXr14/evXtX+byNGjUiIyMDgCOOOIItW7aEBnZv3ryZb7/9luTkZABmzpxJnz59+Pbbb4HATHQa01T7Pf744/zhD38oc//EiRO57777as3fZbjJS4675wCYWcPgQl3dKzhmrLs/6e4XufuF7v6kmd1cpdaKiIhE1lBgL/AL4B0CYzvLm4hGMa0GFe3OdP7553PPPfeEyi+++GKxsRyjR4/m9ttvD5VLLqz3+OOPhyYLALj++uu5887/5Z3HH398sbvPRx11FD//+c9D5VNPPbVY/fPOO49HHnkkVB45cmSxNW5uvfVW3nrrrVD5gQce4MMPPwyVN2/eHJFfBvPy8hg6dCj33nsvACeccALr1q3jtNNOq/a5S2Nmob+XE088kRUrVnDEEUcAgUka2rVrF+p2NmHCBDp37kx2djYAubm5UWmTVM/RRx/NCSecUOb+v/zlLyxdurTWLFYZbvKyzsyaEphZZZaZvQV8X8ExI0rZNjLM64qIiEScu+9x9wJ3zwO2ufujwW5kZVFMqyXMjNTU1FB5yJAhDB8+PFR++OGHeeyxx0Ll+fPn8/rrr4fKU6dO5YEHHgiVx40bV+zJzvDhw4s9CerZsycdOnQodv2iv8x9+eWXbNy4MVR++eWXWbx4MRB4KnLXXXeFkpecnBxat24dun5BQQGvvvoqP/xQ7nJ1IXl5eSxcuBCApKQkWrZsSbNmzUL7C7ve1bQzzjiDt99+m5SUwLDonj17ct5554VmoLvhhhtCXdIATc5QCyxf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\n", + "image/png": "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M9x9TxmOk2ZmK8zseTNbaWYvm1kfM/vMzP5rZt3DqSciIhIuxTSpqZS8iAS5+8+DV4SeBqYBb+Z7bUuYhzse+AvQIfgYBvQEbgJuK0c9ERGRMlNMk5oqIdoNEKlOzOxyoB8wxN1zKnCoNe6+NHjM5cBH7u5mthRIK0c9ERGRsCimSU2k5EUkyMyGAsOBwe5+qIKHO5jveW6+ci4F/+7KWk9ERKTMFNOkptJ/JBHAzAYCVwMD3T0z2u0REREpL8U0qck05kUk4AWgJfBZcHDjldFukIiISDkppkmNZe4e7TaIxDQzSwOmu3vnSjzHWiDd3X+srHOIiIgopkl1pzsvIhWXAzSqzAW9CCwqlhvp44uIiBSimCbVmu68iIiIiIhITNCdFxERERERiQlKXkREREREJCYoeRERERERkZig5EVERERERGKCkhcREREREYkJSl5ERERERCQmKHkREREREZGYoORFRERERERigpIXERERERGJCUpeREREREQkJih5ERERERGRmKDkRUREREREYoKSFxERERERiQlKXkREREREJCYoeRERERERkZig5EVERERERGKCkhcREREREYkJSl5ERERERCQmKHkREREREZGYoORFRERERERigpIXERERERGJCUpeREREREQkJih5ERERERGRmKDkRUREREREYoKSFxERERERiQlKXkREREREJCYoeRERERERkZig5EVERERERGKCkhcREREREYkJSl5ERERERCQmKHkREREREZGYkBCtE5tZMvA+8HN3zyni9YeBGe7+cZU3TiTCFi5ceGRCQsIzQGd00UAiKxdYlp2dfdWpp566NdqNqa2Ki2lm9jww3d3fMLNXgDvc/b9RaqZIRCimSSUqNaZFLXkBRgFTi0pcgp4A/g4oeZGYl5CQ8MzRRx/9s9TU1J1xcXEe7fZIzZGbm2vbtm3ruGXLlmeAQdFuTy1WWkwD+BtwCzC6apokUjkU06SylCWmRTNbHg68DWBmvzezpWb2lZk9CODu64CmZnZ0FNsoEimdU1NT9+hDXiItLi7OU1NTdxO4AirRMxx42wKeNLNvzexfwJH56nwK9DGzaF44FIkExTSpFGWJaVFJXsysDnCcu681s37AYOA0d+8C/Dlf1UXAmdFoo0iExelDXipL8P+Wum5ESf6YBlwAtAc6ApcDPfLquXsusAroEoVmikSSYppUmtJiWrSCXTNgV/B5H+A5d98P4O478tXbChxTxW0TEREJR/6Y1guY4u457r6Jw7s+K66JiFRAtJKXA0DdMtSrG6wrIiJSXZU1poHimohIhUQleXH3nUC8mdUFPgSuMLN6AGbWJF/VE4BlUWiiSI00dOjQtCZNmnRp165dp8o6Tnx8/KkdOnToePzxx3dq3759xzvvvPOonJySxjDHlpLe3/Tp01NSUlJO7tChQ8cOHTp07NGjxwkAN9544zHJycmnbNy4MTTWoV69eqfkPV+/fn3CwIEDj2vVqlXnTp06/ezss88+fsmSJUkAS5YsSTr77LOPb9OmTeeOHTv+rH///sd9//33GjNRjRSKaXOAi80s3syaA+cUqq64JhIhimkVF4sxLZp9pGcCPd39fWAasMDMFgM3AZhZInA8sCB6TRSpWUaNGvXjtGnTSp2mdfr06SlDhgxJK89xkpKSclesWPH1qlWrln/88ccrP/zww0Y33XRTjekmU9r7S09Pz1ixYsXXK1as+Hru3Lkr87Y3btw4+9577z2q8PFyc3MZNGjQ8b169dr7/fffL1u+fPk3Dz744MZNmzYl7t+/384///x2v/nNb7atW7du2ddff/3N1VdfvW3Lli1KXqqfmUBP4C3gv8DXwIvA53kVzOwo4IC7b4lKC0VqGMW0iovFmBbN5OUpYASAuz/o7h3d/WR3vy34+kDgDXfPjloLRWqYfv36ZaSmplb4b6qsx2nRokX2M888s/a55547Mjc3t6KnrXbCeX+XXnrp9mnTpjX54Ycf4vNvnz59ekpCQoLfcsst2/K2nXHGGQf69u2bMWnSpCZdu3bNGDZs2O681wYOHLi3W7dumRF/M1JRTwEjPOBad2/v7ue5e393fyNYZxjwdBTbKFKjKKZFVqzEtKhdvXP3RWY2y8zii5kXPwH4S1W3S6SyjRo1qtWyZcvqRfKYnTt33j958uTvI3nMSOnYsWNWTk4OGzduTGjVqlVEL0Z07969/a9//esfr7/++u0HDx60s84664SRI0duu/rqq3fs3bs37txzz203evToraNHj965ffv2+H79+h1/zTXX/DBixIhdmzdvThg8eHDbcePGbRk2bNju9evXJ7Ru3Trs9uV/fwALFixo0KFDh44AgwcP3jFhwoQtAA0aNMi59NJLf3zwwQePevTR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Qt3MbrvtNr766ivq1asHwDfffMNnn31GXFzgq8pNN91EWlpaaP9nnnmGCRMmhMpr165l06ZNVfcGqqnly5dz2WWXsW/fPgAmTpzIBx98EHq9c+fOpKamFrmvmdGrVy86dOgAwFFHHcX27du54oorgECis2rVqlBXv4ULF3L66aezZMkSIDCuSb34Y89ll13GL3/5y2JfnzBhAnfccUcVtqhk4XYbuwHoBqxz93OAU4DSuo7dCmwDlgK/AWa4++3hNlRERKQS7DKzBgQuzL1sZo8B+0qor5hWSZKSkkJ3YQDuuuuu0JdigIsuuog777wzVJ49ezbvvPNT3jhmzBguvPDCUPnXv/41V155Zaj86KOPMnny5FD5vffe44svvgiV169fX2AygczMTHJyciLwziqfu5OdnQ3A7t27effdd1m6dCkQSFZatGhR7mObGXXq1Akd65tvvqF3794AHDhwgDp16tC0aVMAXn75ZVq2bMn3338PQEZGRqhdUn09+OCDJSYnK1asYOXKlVXYolK4e5kfwPzgz8VAUvD58lL2uaEs26riceqpp7qISE0ELPAofK7G+gOoT+BCXgIwArgeaFpCfcW0aiQ3Nzf0fNasWf7++++HyrfffrvffffdofKZZ57pF110UajcoUMH/9WvfhUqt23b1ocPHx4qt2zZ0q+44opQuX379n7LLbeEyqeddppPmDAhVO7bt69PmjQpVB42bJi/9tpr7u6ek5Pj119/vc+cOTPU7uXLl3tWVlb53ng+mZmZ3rNnT7/jjjtC2/bt21fh45bHrFmzfOTIkZ6dne3u7n/84x/9iCOO8AMHDri7+86dOz0nJycqbZPyy/93VlVKimnhLlK5wcwaE5hZ5UMz2wmsK2WfEcBjhbaNLGKbiIhIlXL3vLssuWa23QPrmZVEMa0ayT9Nc97dgDz33ntvgfK///3vAuUZM2YUWDl8woQJobEeALfccgvHHXdcqDx48OACY3batWtXoPtVVlZW6E6Nu7NgwQK6d+8OwKFDh3j++edp3bo15513Hnv27KFTp05MmDCBW265haysLJ5//nkGDBhQprsk+/btY8GCBZx99tkkJSVxyimnFGhrXte7qta7d+8C/w7nnHMO9erVo27dwDDpMWPGsHLlytDUuz/++CNNmzatlgsh1hb//e9/2blzJ+np6aEumoXl/fu4e7X4t7JAclOOHc3OBhoB77v7YfMcmtmlwDCgJ/BpvpdSgFx3P7dcJ66A9PR0X7BgQVWfVkSk0pnZQncvaayGlMLMFrl712JeU0yTCsv78nfgwAGmTp1K165d+dnPfsa8efM4/fTTeeONNxgyZAhr167lmWeeYfTo0bRp04Yff/yRpUuX0qtXL+Lj4/nd737HU089xcaNG0NdtmLB1KlT2bFjB1dddRUAXbp04bjjjuOtt96KcstqrxtvvJGJEyeSkZFRbPICgSm133333QLTbFemkmJauHde8mvv7pNKeH0usBloBvwl3/a9wJIi96imPvvsM+rUqUO3bt0AyM7OJiGhIr86ERGphkq6pFhjYppET95V6+Tk5AILAnbv3p3//ve/oVnAli5dyoMPPsjFF18MwMyZMxk+fDjLly+nY8eOjB07lgsvvJAmTZpU/ZuogPxjktwD0zAfffTRQGBBxG7dunHbbbdxySWXRKuJtc5vf/tbBg4cWGLiApCWlsapp55KVlZWaAxUtFTkzkuxV6iqq/JeperZsyd16tTh448/BuCMM86gWbNmoYGC1113Ha1bt+bmm28GAtM7HnPMMZx11lkA/PDDDzRq1Ch021REJNJ056XizKy7u/8n2u0oK915qdkOHDhAUlIScXFxbNmyha+//pr09PTQujk1zaZNmxgzZgzjxo2jT58+bN26lU8//ZRBgwZpeuxaqKSYFu5sYwWOW8aT7zWzPcFHppnlmNmeCpy3yk2ePJknnngiVB4xYgS/+tWvQuUNGzbwww8/hMo333wzzz77bKjctWtXrr322gL7v/TSS6Hy5s2bKW8SKSIi5Wdm9czsDjP7u7v/x8zamdnAEuqHHdPMbLKZbTWzZcW8bmb2uJmtMrMlZhZTFwalciQnJ4euhh999NH8/Oc/r7GJC8AxxxzD9OnT6dOnDwBTpkzhoosuql6zXNUwGRkZTJkyhS1btpR5n3DqVpaKJC/nl6WSu6e4e0N3bwgkA0OA/6vAeavcCSecQKdOnULlsWPHctlll4XKb731Fg8//HCovGDBggJzz9933338+teBNc9ycnJYvnw5mzdvBgID/Fq1asXdd98NBLqk3XnnnXz55ZeV+p5ERASA54CDwBnB8kYCC1cWqZwx7Xmgbwmv9wPaBR9jgL+VqeUiNdi1117L3LlzQ9+/7rjjDu666y5d7I2gr776imHDhlHWO7gPPfQQrVu3Zs+e6N6DCGvghpkdBdwPHOPu/cysI3CGuz9byq4ABKc++6eZ3UlgrvwaKf9sJQAjR44MPY+Pjy/wnyQnJ4cnnngiNJ5m48aN3HvvvbRp04ZTTjmF9evXc9pppzFx4kQGDx7M7t27mTNnDmeeeWbM9XUVEamG2rr7xcEB+bj7fivjdDpljWnuPsfM0ko41GDgxeDxvjCzxmbW3N03l/ldiNQw8fHxnHFG4JqCu7Nu3TqSkpJC44Zyc3NLHachJevWrRtLliyhTZs2Zar/i1/8gsTExKgnkOGOOn+ewFWqvAW5VgKvAsUmL2Z2Yb5iHIGVizPDPG+NlZyczP/+7/+Gym3atGH//v3k5uYCgT/Yfv360apVKwC+/PJLBg0axMyZMznvvPOYN28ev/3tb5k4cSInnXQSGzduZOHChfTu3btG314WEYmQLDNLBhzAzNoSuBNTpEqKaS2A7/OVNwS3KXkRITDRwYsvvhj6brRq1Sr69evHiy++GEpwJHx16tThxBNPLHP9k046iZNOOqkSW1Q24aaszdz9NSAXwN2zgdKWnz0/3+MXBGZmGRzmeWuVpKQkkpOTgUAyM3nyZLp2DXSB7t69O59//jmnnXYaELhzk5ycTIMGDQD45JNPGDx4cKhb2ptvvkmnTp3YsGEDAMuWLeMf//gH+/fvr+q3JSJSHd0JvA+0MrOXgY+AW0qoH9WYZmZjzGyBmS3Ytm1bVZ1WpFrIu9OSkZHBMcccQ1paGkDU7wTEqpdeeolPPvkkrH0yMzP54IMPQolkNISbvOwzs6b8dIXqdGB3STu4+xX5HqPd/T5331rO9tZ69erV4/TTTw/dVenRowcfffRRaHGq888/n3nz5nHssccC0KhRI9q3b88RRxwBwDvvvMPll18e+k/38MMP07JlS/btC6zTtnjxYj788MOo/qcUEakq7v4hcCGBhSanAOnu/kkJ9Ssjpm0EWuUrtwxuK+r8k9w93d3T8y+QKFKbnHzyycyePZvmzZsDMHz4cO67774otyr2/P73v+eFF0pbl7egqVOn0rdvX+bPn19JrSpduN3GbgSmAW3N7DMgFbioqIpm9gTBJKco7n59mOeWMmjYsGFoRV+APn36hGbuABg3bhxDhgwJ3anp0KEDF1xwAfXr1wdg4sSJvPbaa2zfvh2Av/71r6xatYonn3wSgJ07d9KwYcMCqxKLiMQqM7sA+Njd3w2WG5vZL939n4XqVWZMmwZca2avAKcBuzXeRaRsDh06RHx8vL6XlMO3334bdk+c/v37M2PGDLp06VJJrSpd2Ou8mFkC0J7AVMnfuvuhYuqNKOk47h5eqhcBmhO/dNu2bWP9+vWceuqpQCArX758OdOnTwdg4MCBbNmyJTTpwGuvvUajRo34xS9+EbU2i4jWeSkvM1vs7icX2valu59SaFu5Y5qZTQF6E1jg8gcCXdUSg/tNDE4Q8CSBGcn2A1e4e6nBSjFN5CfujpkxZ84cnn32WR5//HEaNWoU7WZJOZUU08KdbSwe6A+kBff9HzPD3R8pXLfwB7mZNQhuzwjnnFK1UlNTyd8VIf+UzwCjRo0qkKXffffdtGvXLpS8XHDBBXTt2pU77rgDCEz9nJAQ7g0+EZEqU1T36cM+tCoS09z90lJed+Ca0o4jIsXLm4Vs6dKlfPHFF/ruUYpZs2axYMECbrjhBurUqRPWvtu2bWPKlCkMHTo01HWvKoU75uUdAv2CmwIp+R7FMrPOZvYlsBz42swWmlmnkvaR6uvCCy8MrVkDMH/+fCZOnBgqN2jQgHr16gGBaQxbtGjB/fffH3p9/fr1GlgnItXJAjN7xMzaBh+PAAuLq6yYJlK9XXPNNSxZsoT69euTk5PDrbfeysaNRQ4hq9VmzpzJ+PHjSUxMDHvfH374gRtuuCHswf6REla3MTNb4u5hzZFmZnOB2919VrDcG7jf3XuEc5xI0C32qrV//37uvvtuevfuTb9+/diyZQvNmzfn8ccf57rrruPAgQPMmzeP7t27hxIeESkfdRsrHzOrD9wB5A0O/BC41933FVNfMU0kRixatIiePXvy7LPPcumlJd4ArZX27t1LSkqJ9yCK5O6sXbs2NDlUZYhYtzHgPTP7H3efGcY+9fM+5AHc/ZNgsJAarl69egW6ndWtW5e//e1vnHPOOQAsWLCAc845h3feeYeBAwfy/fff8/HHHzNo0KDQ7GgiIpUpmKSEs2iyYppIjOjatSurVq0KdW364IMPaN26NT/72c+i3LLqoTyJCwS66FVm4lKacLuNfQG8ZWYHzGyPme01sz2l7POdmd1hZmnBxx+B78rXXIlljRs3ZuzYsbRv3x4ITHU4Y8YMzjrrLAA+/PBDRo4cSd7aBZ999hkPPPAAe/aU9l9MRKR8zCzVzB4ysxlm9nHeo4RdFNNEYsgxxxyDmZGbm8sNN9xQYGHw2mrTpk2MHTuW5cuXl/sYP/74I9dccw1z5syJYMvKJtzk5RHgDKCeuzd09xR3L20Z91EEplSeGnw0C26TWi4lJYV+/fqFZgMZOXIky5cvp127dgDMnTuXe++9NzSQbPr06UyaNEljZkQkkl4GVgDHAncDa4GSFjBQTBOJQXFxcaGZyCCw0OXcuXOj3KroWLNmDa+++iq7d5e4VGOJGjRowOuvv84333wTwZaVTbhjXuYAvd29XCsYBmcrq+/uUbmUrv7BsWf37t2h5Gb48OEsWrQo9Ify8ssv07hxYwYMGBDNJopUCxrzUj7B39up+cd0mtl8d+9Whn0V00Ri1F133cX48eNZvXo1aWlp0W5OlXN33J24uHDvY/wkJyen0tbXKSmmhdvi74BPzOwPZnZj3qOUk/8/M2sY7BO8lMDsLDeHeV6ppfLP0f7SSy/x6aefhsp//vOf+fvf/x4q//3vf0eBXETClLdW2WYzG2BmpwBNiqusmCZSM9x0001MmTIllLh8+umnHDx4MLqNqkJmVqHEBQglLlXdIybcVq8BPgLqUMapkoGOwatSvwTeI3Br/rIwzyuCmdGsWbNQecGCBTz99NMAZGZmcsMNN/D6668DgT+kJ598kjVr1kSlrSISM+41s0bA74CbgGeA35ZQXzFNpAZo0KABv/rVrwDYvHkz5513HrfffnuUW1U1Lr/8cl588cUKH+fQoUP07duXBx54IAKtKruwZhtz97vLcY5EM0sk8EH/pLsfMjMNWpAKS0xM5KijjgICM5lt3ryZrKwsAL799luuu+466tWrx7HHHsuePXt49913GTBgAA0bljZMS0RqC3efHny6GzinDLsoponUMM2bN+ef//wnJ554IgDr1q1j+/btdO3aNcoti7zs7GxWrlwZeq8Vkfc9LH8vmapQpuTFzJ5092vN7B3gsA9pdx9Uwu5PExgA+RUwx8zaAJo+SiIu/x9Phw4dWL9+fShRmTlzJsOGDWPOnDmcddZZbN26lYMHD9KqVatoNVdEqgEzOw54jMBkNLnA58Bv3b24GcQU00RqoL59+4aej6Asm+8AABgOSURBVB8/nldeeYWNGzdW+RfzypaQkMAXX3wRseO98MILETtWWZVpwL6Z7XH3hmZ2dlGvu/vssE5qluDu2eHsEwka3Fh75eTkMG/ePE477TTi4+MZP348d955J1u3bqVZs2ZkZGRQv359zCzaTRUpFw3YLx8z+wJ4CpgS3HQJcJ27nxbGMRTTRGqQ3bt385///IfzzjsPgGeffZZBgwaRmpoa5ZZVT+7O5s2bOeaYYyJ2zEgM2F8dbNzsoh6lnLypmT1uZovMbKGZPQaUmMaa2WQz22pmy4p53YLHXGVmS8ys5t3Xk4iKj4+nR48eocFlw4YN47nnnguNobn66qvp1q2bpmEWqX3qufs/3D07+HgJqFtc5fLENBGJLY0aNQolLmvXruU3v/lNaIxtrLviiiu48cYS59oK26hRo+jRo0eVfYcq65iX1JJmFXP3R0rY9xVgDjAkWB4OvAr0KWGf54EngeJGE/UD2gUfpwF/C/4UKZO2bdvStm3bULl///6ceuqpoTsv/fr14/TTT+fOO++MVhNFpGq8Z2a3EohVDlwMzDCzJgDuvqNQ/fLENBGJUWlpaSxbtoyWLVsC8Pnnn7NkyRKuvPJKEhLCGjpeLaSkpFC/fv2IHnP48OGcffbZ5OTkVMnvpKxniAcaAOXpU9Pc3cfnK99rZheXtIO7zzGztBKqDAZe9ECK94WZNTaz5u6+uRztE+GSSy4JPc/JyeGYY46hadOmQGBw26WXXsrYsWM599xzo9VEEakcvwr+HBP8mRfnLiGQzBxXqH7YMU1EYluHDh1Cz19++WXeeustLrvssphMXh5//PGIH7NPn6q9dlPW3/pmd7+nnOeYaWaXAK8FyxcBH5TzWHlaAN/nK28IblPyIhUWHx8fWoEXYMOGDSxevJgdOwIXYDdv3szf/vY3rrrqKlq3bh2tZopIBZhZN+B7dz82WB5B4G7KWuCuIu645KmMmCYiMeKJJ57g97//PfXq1SM3N5drr72WUaNGkZ5e/Ycc5ubmVnhtl+Ls37+fqVOnMnToUJKSkirlHHnK+g7CvuNiZnvNbA8wGvh/QFbw8Qo/XeGqdGY2xswWmNmCbdu2VdVppQZJS0tj5cqVDBkS6CWycOFC7rvvPnbu3AnA4sWLeeSRR9i9e3c0myki4XmaQEzCzHoBDwAvEJgyeVLhytUlpolIdJlZaKbSNWvW8Oabb/L1119HuVVlM2rUKM4+u8i5tyrs3//+N5dddhnvvfdepRw/v7LeeQm7r4y7l7Z4ZUVsBPLPcdsyuK2odkwiGIjS09M1GlvKxcxC42EGDhzI9u3bQ9Mwf/jhh9x2222MHj0agH/96198//33XH755aEJAkSk2onPd3flYmCSu78JvGlmiwtXruSYJiIxqG3btqxatYp69eoBMGXKFObPn899991HcnJylFt3uB49enDCCSdUyrH79OnDnDlz6NmzZ6UcP78yJS8l3D4vEzM7gsDg+tAMLu4+pwKHnAZca2avEBiov1vjXaQqNW7cOPT85ptvZsSIEaSkBL7bvPTSS3zyySeMHDkSgDfffJO6desyYMCAaDRVRIoWn2+K43MpePekxNhYCTFNRGJUXuwHWLFiBZ999hl16tSJYouKN2ZM5d0kjouL46yzzqq04xc4V2WfwMyuIjAzywfA3cGfd5WyzxQCC4W1N7MNZnalmY01s7HBKjOA74BVwN+Bqyup+SJlcuSRR4aeP/fcc8ydOzd0p+bBBx/kscceC73+wgsvMH/+/Cpvo4gUMAWYbWZvAweATwHM7HgCXceKVJ6YJiK1w913382nn35KfHw8+/fv58orr2Tt2rXRbhYAq1evJisrq1LP4e7cf//9PProo5V6nqqYJuEGoBvwhbufY2YdgPtL2sHdLy3ldQeuiVwTRSLHzAos1PTZZ5+RN94qOzub66+/nhEjRoTWlXnwwQfp168fJ598crSaLFLruPt9ZvYR0ByY6T8tUBAHXFfCrmHHNBGpPfLuuixevJg333yT4cOHk5aWFtU2uTuDBg0iLS2Nd999t9LOY2Z8+eWXlT4LW1UkL5nunhkcM5Dk7ivMrH0VnFekWqhTpw4tWrQAICEhgfXr13PgwAEAtmzZwu23307Dhg05+eST2bVrFyNHjuTmm2/mzDPPjGazRWo8d/+iiG0rS9mtXDHNzPoCjxFYeuAZd3+w0OsjgYf4afzmk+7+TFneh4hUPz169GDdunU0ahRYw/b999/njDPOCJWr2kMPPVTps4BBYCrpyu42VxXJywYzawz8E/jQzHYC66rgvCLVUqNGjUIfXs2bN2fPnj2hVWk3btzIihUr2L9/PwALFizgoosuYsqUKZxxxhns27ePrKwsjjjiiKi1X6SWCzummVk88BRwHoGp/eeb2TR3LzxF0avufm1lNFpEql5erN+5cydDhw5l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\n", "text/plain": [ "<Figure size 936x504 with 5 Axes>" ] @@ -673,12 +673,12 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "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Lkx1u9384IMPHjDKzj333BMbN25s0r9//2NXX331UQBITU1Vp0+fvnPq1KnZht0555xz7Pvvv0+pqqqisrIypaioKCk/P78CAI4cOaJ4vV7KysryAkBycjL36dOnCgAmT57c5i9/+cvu7OxsLwCcd955Fddee23plClTWp/MsQixMXz48GOZmZknfS079dOuXTvvzJkzi+bMmdPayAwK8SeWdr7++utLFyxYkF5SUuIyl4f7Xhg2bNixN954I71v377HbrjhhjJj24gRI8rPPvtsx6O3ThWh8yqAW5j5IDOfy8xnMvOtzNzDNKHzBgAz6i9EoRFzJbRV/eIGEZ0HLSP5HjOvAfAztGvY4HwA65i53FT2CjOXMPMeAN8CWMHM3zNzJbTO0VkAwMz/ZOYMZr5A/3s3nrELgnDSGL9pXzHz+cx8GTN30zPGRm/hJgCv1VeAM2bMSH/qqafavfjiizsrKirWvvjiizufeuqpdicjdtavX5/cp0+fCmv5hg0bmvTt2zeoPD8/v6qiokI5dOiQAgBEhPPPP//ovHnzmv/rX/9qMWzYMP88p6ysLN/FF198JCcnp/fIkSM7Tp8+Pd0YSrN169bkX/7yl0G+zz777IqNGzcm1/Q4hFODnj17Vvt8PpiHSwnxx9rOq1evbmYMXXvooYfaGHbNmjXzXX/99Qefe+65oKxOuO8FACgoKEi2fjfEyilx8pl5LRF9SUSuCA8M/YiZt9jsLgg1hogyAQwCcE+cXd8CYDEzH9Tf/0sve0l/7x+2ZqLE9PqEzftmEAShwRPtN02ngJk/r9PATEyePDl7+vTpRSNHjiwHAP3fokmTJuXccccdh+ojphtvvPHQ3/72t6zy8nLX3/72t11PPvmkP+Pz7rvv7li5cuX+RYsWpb788sttPvvss+YffPBBUX3E2VAZO3Zsh4KCgrjOR+rVq1fF7Nmzd52sn969e3evrq5WKioqlLKyMnf37t17AsAzzzyz+5prrjl68pE2TgYMGNDtt7/97cG77767tKqqin71q1+dMWbMmAMTJkw4VF5erlx00UVdx40bt3/cuHGHS0tLXcOHD+9y1113ldxyyy1H9u3b577iiis633vvvcU33HBD2c6dO905OTknnXXr37//sS+//HKr3baHH354f58+fXr+8Y9/LD7ZepxySggdAGDm2RG2VQP4Rx2GI5w+jASwm5nXxsuh/lT0a6GN0zc+7EkAWhBRH2ZeB03oXB2vOgVBaFhE+k3Tt79ZV7HYsW3btiZDhw49Zi4bOnTosW3btjUJt080zjzzzBMfffRRyAOWe/bsWfntt98G3agpLCxMbNq0qZqenu4fD3PhhRdW3HnnncnJyclq7969Q+ZKDhgw4MSAAQNOjB8//lCXLl3OBFDUpUuXE999913Tyy+/3J8dX716ddMePXo0qkUeTnXWr1+/CdCGMc2ZMycjHiK1sLAw0eVyoV27dvU2/PN0wNzO69ati2jbqlUr31VXXXXohRde8A8dDfe9AAD5+fmV33zzzUndxD1lhI4g1BM3AvhaX/55BLSlYE/27tWV0J6Ifia059wYvAfgZiKaBiCJmTeeZD2CIAg1olOnTpWLFy9uZmR0AGDx4sXNOnXqVOOVTUeOHFn++OOP0+TJk1vdf//9BwFgxYoVyT179qx88cUXsz/66KPUK6+8svzYsWN011135fz+978Puev71FNP7U5OTg5aqa6srEz59ttvU0aMGFFu+Gzbtm01AEyaNKn40UcfbT9gwIAtbdq08S1btiz53XffzVi+fPkmq+/GTjwyL6cKe/fudY8bNy731ltv3a8op8osjdhZuXKlf8GhpKQkNr9PTU1Vze8zMjJ85vfZ2dle8/uaZHNq0s6PPfZYSf/+/Xv4fD4Cwn8vHD582DVu3LjSl156qc0777yTdt1115UBwKJFi5q1atXK63SejggdQbCBiIYDuAvAEADl0J7X9GwcRA6gDVGbw8w7LXVOA/AytAnJ1mFrgiAIdcb999+/73e/+10egKKhQ4ceW7x4cbPf/e53eY8//viemvpUFAULFiz4ecKECR2mTp3aJikpidu3b1/1yiuv7Jo3b97WiRMn5tx7770Jqqpi1KhRpY888sh+q49rr702ZBiTqqp44YUXsiZOnJjbpEkTtWnTpuqsWbO2A8CNN95Ytnv37sSBAwf2ICJOSUlRZ8+evT03N9e/QutVV13V1e12MwD07dv32KJFi7bV9BgFe0aOHNlx+fLlqYcPH3ZnZWX1fvjhh/fed999B6Pv6dxPVVWV0r17955er5dcLhePHj269IknniiJ5lOIjZNt5+zsbO/w4cMPz5o1KwuI/L3QrFkznj9//ta77767w0MPPdTB7XZzjx49TkyfPn1n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zQhfnPptImKUcmES0CIyY1Ulwn+bRyY4pgOkWv5LtVyXgnktlfNYSuWttMtT7q5bkt6AUwh3cc4ApkVuZxEe9/sJ8D3wMVAn0bEGfD2nA6MiPx9B+B/IQuD/gKxEx1dE7McCkyPvxbtA7VR6H4B7gHnALOBlICvZ3wNgOOGx2PsIn328sqDfOWCEZ5FaBMwkPDNPMsa/kPAY55x/z0/l2v/2SPzzgR6Jjl+39L5FcsmCyGfu9kTHk098KZv/UiXXpVpeS4U8lmp5qzzkKYsELiIiIiIikjY0dE1ERERERNKOCh0REREREUk7KnRERERERCTtqNAREREREZG0o0JHRERERETSjgodERERERFJOyp0REREREQk7ajQEYkxM2tjZpebWWMzq5HoeEREREpKOU1SmQodkdirCFwP9AS2533QzJqa2S4zmxbrJzazKmY2zcz2mlm9WLcvIiLljnKapCwVOiKx1xh4HlgIFHT2a5G7HxvrJ3b3XZF2V8W6bRERKZeU0yRlqdARKSEzGx850zTNzHab2SUA7j4KeMvdR7v71gDtNDWzeWb2gpktMLNXzewMM/ufmX1vZicUZz8REZHiUk6TdKRCR6SE3P1XkTNNTwMjgbdzPbammM01Bx4CWkdufYBTgEHAX0qwn4iISGDKaZKOMhMdgEgqM7PLgB7ARe6eXYqmlrj7zEibs4FP3N3NbCbQtAT7iYiIFItymqQbFToiJWRmvwH6Aue7+75SNrcn18+hXNshDvx3GnQ/ERGRwJTTJB3pQyRSAmZ2DjAQOMfddyc6HhERkZJSTpN0pWt0RErmReAw4H+RCzevTHRAIiIiJaScJmnJ3D3RMYiUK2bWFBjl7u3i+BxLgY7u/mO8nkNEREQ5TZKZenREyl42UCuei6sRXuAtFOv2RURE8lBOk6SlHh0REREREUk76tEREREREZG0o0JHRERERETSjgodERERERFJOyp0REREREQk7ajQERERERGRtKNCR0RERERE0o4KHRERERERSTsqdEREREREJO2o0BERERERkbSjQkdERERERNKOCh0REREREUk7KnRERERERCTtqNAREREREZG0o0JHRERERETSjgodERERERFJOyp0REREREQk7ajQERERERGRtKNCR0RERERE0o4KHRERERERSTsqdEREREREJO2o0BERERERkbSjQkdERERERNKOCh0REREREUk7KnRERERERCTtqNAREREREZG0o0JHRERERETSjgodERERERFJOyp0REREREQk7ajQERERERGRtKNCR0RERERE0o4KHRERERERSTuZiQ4gCDOrAowBfuXu2fk8/iAw2t3Hl3lwInEwZcqUBpmZmc8C7dAJCYmtEDBr//79V3Xo0GFdooMpjwrKaWb2AjDK3d8ys9eBO939+wSFKRIzymkSR4XmtJQodIArgHfyK3IihgLDABU6khYyMzOfPfjgg4+qX7/+poyMDE90PJI+QqGQrV+/vs2aNWueBc5LdDzlVFE5DeA/wC3A1WUTkkj8KKdJvBSV01Klqu4LvAdgZrea2Uwzm25mQwDcfRlQ18wOTmSQIjHUrn79+luVECTWMjIyvH79+lsIn1mVxOgLvGdhj5vZfDP7GGiQa58vgDPMLFVOSIoURjlN4qKonJb0hY6ZVQKOcPelZtYDOB/o5O7tgQdy7ToVODkRMYrEQYYSgsRL5LOV9H//01HunAb0BFoBbYDLgJNy9nP3ELAQaJ+AMEViTTlN4qawnJYKia4esDny8xnA8+6+E8DdN+babx1waBnHJiIiUhy5c9qpwHB3z3b3Vfx8+LXymohIKaRCobMLqBxgv8qRfUVERJJV0JwGymsiIqWS9IWOu28CKphZZWAc0N/MqgKYWZ1cu7YEZiUgRJG09Zvf/KZpnTp12rdo0aJtvNqpUKFCh9atW7dp3rx521atWrW5++67G2ZnF3aNdmop7PWNGjWqRo0aNY5t3bp1m9atW7c56aSTWgLceOONh1apUuW4lStXRq/PqFq16nE5Py9fvjzznHPOOaJx48bt2rZte9Rpp53WfMaMGVkAM2bMyDrttNOaN2nSpF2bNm2OOuuss4744YcfdJ1HksiT0z4HfmtmFczsEKBLnt2V10RiSDmt9FItpyV9oRMxFjjF3ccAI4HJZjYNGARgZhWB5sDkxIUokn6uuOKKH0eOHFnk9LajRo2qcdFFFzUtSTtZWVmhefPmzVm4cOHs8ePHLxg3blytQYMGpc1wnaJeX8eOHbfPmzdvzrx58+Z89dVXC3LuP+igg/bfe++9DfO2FwqFOO+885qfeuqp23744YdZs2fPnjtkyJCVq1atqrhz504799xzWwwYMGD9smXLZs2ZM2fuwIED169Zs0aFTnIZC5wCjAC+B+YALwFf5+xgZg2BXe6+JiERiqQh5bTSS7WcliqFzhNAPwB3H+Lubdz9WHf/S+Txc4C33H1/wiIUSUM9evTYXr9+/VL/uwraTqNGjfY/++yzS59//vkGoVCotE+bdIrz+nr37r1h5MiRddauXVsh9/2jRo2qkZmZ6bfccsv6nPs6d+68q3v37tufeeaZOscff/z2Pn36bMl57Jxzztn2i1/8YnfMX4yUxhNAPw/7g7u3cvdu7n6Wu78V2acP8HQCYxRJO8ppsZUKOS0lzvK5+1Qzm2BmFQpYdyATeKis4xIpC1dccUXjWbNmVY1lm+3atdv53HPP/RDLNmOlTZs2e7Ozs1m5cmVm48aNY3ry4oQTTmh16aWX/vjHP/5xw549e+yXv/xly8svv3z9wIEDN27bti2ja9euLa6++up1V1999aYNGzZU6NGjR/Prrrtubb9+/TavXr068/zzzz/yT3/605o+ffpsWb58eebhhx9e7Phyvz6AyZMnV2/dunUbgPPPP3/j/fffvwagevXq2b179/5xyJAhDR955JFVOcfPmDGjSvv27Xfm1/asWbOqHH/88fk+JskjQE6D8IQFL5dlXCJlQTktdpTTipYShQ6Auz9XyGP/V5axiEjYMccc03rv3r0ZO3fuzNiyZUtmzh+3++67b8VFF120NdHxpYKOHTtunzBhwsL8Hhs8ePC69u3bt7nrrrs0fCnNFJbTIo8/X1axiEiYclrpJVtOS5lCR6S8StazVAAzZsyYB+Gu5+eff77u22+/vbS0bc6ZM6dShQoVaNSoUcyHon777bfzc37Oysry3Ns1atQI5d6uW7dudu7tQw45ZH/u7ZKc+YIDX9/06dML3bdevXrZPXv23Pivf/0rupDk0Ucfvevdd9+tnd/+bdu23f35559XL0lcIiJlQTktdpTTipYq1+iISDmwatWqzKuvvrpJ//7912VkpN+fp5K8vttvv33tiy++WD87O9sAzj333G179+61Bx98sF7OPhMnTqwyZsyY6ldfffWGKVOmVH/99ddr5Tz24YcfVp80aVLQ6YxFRCRGlNN+rqxzWvr91kUkZs4999xmp5xySuslS5ZkNWzY8JhHHnmkXtFHFa+dPXv2ZORMVdmlS5eWXbt23frggw+uKqy9VFLa13fIIYfs79Gjx6a9e/caQEZGBiNHjlw0fvz4mo0bN27XvHnztrfeemujRo0a7atevbq/9957C5944okGTZo0aXfkkUe2feKJJxocfPDBmqhFRMo95bTSS7WcZu5ektcpInE0ffr0pe3bt/8x0XFI+po+fXq99u3bN010HCKS/pTTJN4Kymnq0RERERERkbSjQkdERERERNKOCh0REREREUk7KnREklMoFApZooOQ9BT5bKXfMt0ikqyU0yRuCstpKnREktOs9evX11JikFgLhUK2fv36WsCsRMciIuWGcprERVE5TQuGiiSh/fv3X7VmzZpn16xZ0w6dkJDYCgGz9u/ff1WiAxGR8kE5TeKo0Jym6aVFRERERCTtqKoWEREREZG0o0JHRERERETSjgodERERERFJOyp0REREREQk7ajQERERERGRtKNCR0RERERE0o4KHRERERERSTsqdEREREREJO2o0BERERERkbSjQkdERERERNJOZqIDSGb16tXzpk2bJjoMEZGYmzJlyo/uXj/RcUjZUU4TkXRVUE5ToZMPMzsXOLd58+ZMnjw50eGIiMScmS1LdAxSNpTTRCTdFZTTNHQtH+7+vrtfU6tWrUSHIiIiUirKaSJSXqnQERERSWNmdq6ZPbNly5ZEhyIiUqZU6IiIpJg9e/bw9ddfs2rVqkSHIilAPToiEi8zZszg5ZdfZvv27YkOJV8qdEREktyOHTsYPHgwH3/8MQDr16/npJNO4t13301wZJIK1KMjIrE0fvx4duzYAcDkyZO57LLL2LZtGwATJ07knXfeYf/+/YkMMUqFTj6UFESkrC1YsIB58+YBEAqFOOaYY7j77rsBqFy5Mk899RRTp04FoFGjRrz//vtcdNFFCYtXUod6dEQkVmbPns0ZZ5zBCy+8AECvXr1YsGABDRo0AODpp59m4MCB7NmzJ4FR/kSzruXD3d8H3u/YsePViY5FRNLT008/jZlxzTXXANC9e3d+8Ytf8MYbb5CRkcFpp51Gq1atAKhQoQIbNmygQoUKAJgZ55xzTsJiFxGR8qlt27a88sorXHDBBQBUrVqVFi1aRB9/5plnWLZsGdWqVcPd+f3vf8/ll19O586dExKvenREROIkpysf4JZbbuHiiy+Obr/99tuMGDEiuj1s2DDuuuuu6PbQoUPp06dPdDunyBEpLo1SEJHSevTRR6OjDvr06UPVqlXz3S8zM5Mj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hr766qsaFxfn7dBKDEp2i05PIASIAFbhGFq6dy7rW07zsoSEBH333Xe1Xr16Cmjfvn117969BdpXXFycxsbGakpKSr62S05O1rVr1+pLL72kHTp00ODg4Ey9CfKa6tevrw899JB++umnbv+umzJligK6c+fOfG2XmpqqzZo105YtWxa4tezSpUsaHBysTzzxRPqymTNnKqCrVq3KtO7AgQM1MDBQd+3aVaBj5eTMmTP6ySef6O7du3NdLyUlRatUqaJDhgxx6/FLOny4RSfPUddKsqJ6uJopGklJSWzatCm9xScqKoojR44AjitNrVu3ztTqY8MTu19KSgoLFixg4sSJbN26lauuuopRo0YxZMgQG2K8iNmoayWHv426lpukpCQmT57MxIkTSUxMpGvXrnTp0oUHHngg10coJCQk8N577zFjxgx2794NOFr7w8PDCQ8PR1VJTEwkMTGR5ORkQkJCuOKKK6hQoQIBAQFER0ezZcuW9MFyrr/+etq1a0dYWBhBQUEkJyeTkpJCqVKlKFu2LJUrV6ZatWrpU9WqVT06cMqhQ4cIDQ3llVdeYfTo0S5v98MPP9ChQwc++OADHn744QIfv3379iQlJbF27VpUleuuuw4RYfPmzZnu2zl+/Dj169enU6dOLFq0qMDHyyguLo7WrVuzd+9egoKC+PLLL3O8/2bv3r00atSImTNnMnToULcc3zhGz73++uvZtGmTN2PINqflWOiIyBRVHSkii/nfzZfpVLW3iwe+DmjnnI1U1a2uh+0+ItIEeBKohmO47Ol5bWOFTvGmqhw4cICoqCh+/vlnoqKi2Lx5c3qyuvPOOxk0aBB9+vTx+VFFfN3Fixf56KOPePXVV4mOjqZx48aMHj2aBx980G0PuzP5U5ILHRGpB7yFY6CdVOBn4ClV/d2FbX0ipxVEccppsbGxTJ48malTp5KQkEBAQABlypShefPmtGzZkpYtW9KsWTNSUlJYunQp77//PseOHaNt27b06NGDSpUq8ccff/Dbb7/xxx9/EBAQQLly5QgODiYgIIC4uDhOnz5NQkICSUlJ6cNdd+jQgU6dOnn9hvrsNG3alPr167N48WKXt7nvvvtYuXIlMTExhbrY9Le//Y23336bs2fPEhUVRadOnZg1axZDhgy5bN2JEycyZswYIiMjadeuXTZ7y59nn32WN954g3nz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\n", + "image/png": "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ezVr1izaN2CMMabYSk9PZ8eOHYgIACVKlKBp06be1zt37kznzp0BUFVuueUWSpcuzfz584MSL1ihY4wxAbNhwwa2bt3KDTfcAEC3bt04dOgQCQkJAMTFxVGiRAnv+vPmzaNy5cre5XvuuadoAzYRKfP00sYY4ytV5cyZM5QqVYrPP/+cqChnA8JGjBiBqgLuUQrbt2+nfv36gQz1LJIRgF8bFankYDWXqh7x+879KD4+Xu2eA8YYp+bPn8/333/PyJEjARg8eDBTpkzh8OHDiAjffvstKSkp3HTTTUGOFERkmarGBzuOcGA5zRhTnA0dOpSEhATmzJlDqVKlCtTG5MmTGTRoEL/++itt2rTxc4S557RA9ejs8Twkj3WigToB2r8xxgREWloaUVFRREVF8e233zJixAh+/PFHypYty7Jly3j//fcZNmwYFStW5IknnmDo0KHebTN6dkzYsZxmjCm2LrvsMmJiYihZsmSB27j++ut59tlnad26NQCnT58ucNHki0BNRrBeVRuoav3cHkBSgPZtjDF+oaps27aNEydOAO4ZZcqVK0diYiIAsbGxlCpVyjsz2v3338/hw4epWLEiAA0aNKBRo0be8cwmbFlOM8YUK6rK5s2bAbjlllsYPXp0oXJZ9erVee6554iKiuLo0aM0a9aM9957z1/h5ipQhc5lflonKGzWNWOKJ1Vl69at7Nu3D4ClS5fSoEED70xoTZo0YciQIZQtWxaA6667jp9++ol69eoB7mtunI5dNmHFcpoxplh54403uOiii9i6davf21ZVOnTowMUXX+z3trMLSEZW1TP+WCdYCjMV55kzZ2jfvj1TpkwB4MSJE/Tp08d7oHTs2DGGDh3K4sWLvctvvvkm69atA9z3ypg2bRo7duwA3F17y5YtIyNBuVwu0tLSCv0ejTF/nbHauHEjAIcPH6Zhw4Z89NFHALRu3Zp33nmHSy65BIB69erxxhtv0KBBg6DFbIpecc5pSUlJLFmyJABRGWNC2W233cbw4cMDku8qVqzIxIkTvYXOCy+8wKOPPorL5fL7vvxe6IhIJxEZLyKtPcuD/L2PUJaenk7JkiWJjo4GICUlhVWrVmW56d/48eNZv349AAcOHOCxxx4j4wLRXbt2ceutt7Jo0SIANm/eTHx8PP/9738BWL58ObGxscyaNcu73Lx5c3799VcA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jioiWrRoUe3fv7/+/vvv3g7LZIKC3aKzxzn94Zz2pF92le08ltO8Mfl7i06apKQk7dKliwLaunVrt28tXrlypeu7G9BixYrp3Xff7Wp1Dg4O1uuvv17Lly+vlStX1tatW+s///lPffLJJ/X2229XEdHChQvr448/rlu3bs3lT5k1bdq00Xr16rnmo6OjXd1Fp6amarVq1fSee+65Yrv77rtP69Sp45EYqlat6jq/U6dOveb6b7zxxiWtOqmpqfrYY49pQECALl26VNetW6dBQUHao0ePK7YdPny4BgQE6NmzZ7MU46RJkxTnmD9xcXGuVijj/zLLaVdLBBsyey8rE45OBJ4F/gHcnIP9XF7oBDoTVFX+7oygroditkLHXFVSUpIuXLhQH330UVcvbjVq1NDXXnutwP1x//PPP2vLli0V0NDQUB0yZIgeOnTI22GZayiIhQ5wC1A+3XwPHB3svA+UcnMfHslp3pjyS6Gj6vijePz48RocHKwBAQHaoUMHjYuLy7Qb6s8++0yDgoK0WrVqunz5ct28ebN26tRJa9asqX369NFx48bpc889p927d9c+ffpo165dNSoqSgsXLqzh4eF6++236/DhwzO9lcrbXnrpJQ0MDNSLFy/q2bNnNTAwUIcMGeJ6P62756NHj7qWpaSkaFhYmMeeUXnllVdcnfocOXLkmuufPn1aS5cu7RrI86OPPrrieaIBAwZkuL/27dvrDTfckOUYf/zxRwV0wYIF+u9//1sBG9Ign8hOoeOJZ3QeBko4X78CxAENsrGfGc4WpiRgP9DLufw+YCeO3teG5jTey6f8lBRM7jl16pR+8skneuedd7qe54mNjdVJkybpiRMnvB1erlq0aJEWLVpUy5cvr2PGjLmk207j2wpoobMhraDB0ZvnAaAj8C/gSze290hO89aUH3PaoUOHdODAga6WhBIlSmirVq101KhRunHjRt21a5cOGDBAAW3WrJnbXRGn8ZeW+smTJyugf/zxh65Zs+aK3sVWr16tgH7xxReuZTt27FBAJ0+e7JEYEhISdMCAAZcc41rGjRunOAf4BrRFixaanJzsen/9+vUK6CeffHLJdpGRkdqpU6csx3jo0CEF9L333tOhQ4dqQEDAJccz/is7hY5bV7euNuF8SBOIxTEo2/240bONtydr0THZ9eeff+qoUaO0du3ainPgt8cee8ytq1v+Zt68eVqkSBGNiorKl58vvyughc4v6V5/ALyabn6TG9v7ZU5Lm/JjoZMmKSlJFy1apE899ZTWq1fvkg4ARET79++fr7uy//777xXQpUuX6tSpU5XLxsVJTk7W0NBQ7du3r2vZf/7zHwW8Oj5Ramqqjh07Vlu3bq1jxozRc+fOXfF+5cqVtV27dq5lJ0+eVEBHjRqV5eOlpKRokSJFdODAgdqzZ0+tWLFijj+D8Q2Z5bRMnxTTzB/GzIq0hzbvB/5/VV2A4zYzn6aq81W1b2hoqLdDMX6mSpUqDB48mF9//ZW1a9fSt29fZs+eTYMGDVi5cqW3w/OY2bNn8+CDDxIVFcXSpUspU6aMt0Myxh2FRCStE56WwNJ0712tc540fpnTROQBEZl06tQpb4eSawIDA2nVqhUffvghW7Zs4cCBA0ybNo3JkyezdetWPvjgA4oU8fl/qmyLjIwE4M8//2THjh0EBgZSvXp11/uFChXi1ltvZc2aNa5l27dvR0S48cYb8zpcFxHhhRdeYOHChbz44osEBwdf8X67du1YvHgxiYmJAGzevBkgWx3cBAQEUKlSJfbv38/BgwepUKFCzj+E8WmZd4nhGfEiMhHojKNHm6A8OKYxXicixMTE8P7777Nq1SqCgoJo1qwZ7777btqVYb/1+eef06lTJ2699Va+++47SpUq5e2QjHHXDGCZiMwFzgM/AohIDcCdKsAvc1pBvHhXoUIFunbtyhNPPEGdOnW8HU6uq1y5MiLC3r17+eOPP7j++uuv6EHulltuYcuWLZw/fx6Abdu2cf311xMSEuKNkN12zz33cP78eVatWgXAhg0bAGjYsGG29pdW6Bw7dswu0hUAuf0F/QjwLXC3qp4ESgH/l8vHzLGCcPXL5J0GDRqwfv167r//fp5//nk6derE6dOnvR1Wtnz88cd07dqVO+64g2+//ZaC9IeT8X+qOhL4JzAFiNW/rzoE4Ohc4Fr8MqeZ/K9IkSKULl2aw4cPEx8fT0RExBXr3HTTTaSkpLBr1y7A0aLjD0Vgs2bNKFSoEEuXOhpgN2zYQPny5Slfvny29hcREUF8fDynTp2yHFYA5Hahk4qjV7S3RGQ2jqtgy3P5mDlWEK9+mdxVsmRJvvrqK0aPHk1cXJzrypo/mTBhAr169eKuu+5iwYIFFC9e3NshGZNlqrpaVb9S1bPplu1U1Q1ubO6XOc0UDOXKlePw4cMcOHAgw0Kndu3agKPASUlJYceOHa5lvuy6664jJiaGJUuWAI5CJ7utOQClSpXi+PHjnDx50gqdAiC3C52pQG3g/wP+DdQBpuXyMY3xSSLCwIEDWbJkCadPn6ZRo0ZMm+Yf/x3effdd+vXrR5s2bZg3b57P3+pgTC7xqZwmIsVEZJ2ItPFWDMZ3lC1b1lXoVKxY8Yr3a9WqhYiwfft29uzZQ2Jiol+06AC0bNmSNWvWcOTIEbZt25bjQufkyZOcPHmSkiVLejBK44tyu9Cpp6q9VfW/zqkPUDeXj5ljduuayU3NmjVjw4YN3HrrrXTv3p2nnnqKCxcueDusTL355ps8//zzPPjgg8yePZuiRYt6OyRjvMUjOU1EPhaRIyKy9bLlrUXkNxHZLSIvubGrQcCsrB7f5E/lypXjt99+4/z58xkWOsHBwVStWpXt27ezceNGAG6++ea8DjNbWrRoQXJyMmPGjCE1NZXo6Ohs7yssLAxV5eLFi9aiUwDkdqGzQUQap82ISCNgXS4fM8fs1jWT2ypUqMD333/PoEGDmDhxIrGxsezZs8fbYV1CVXn11VcZPHgwjz76KDNnzszXvRYZ4wZP5bQpQOv0C0SkEI4ur+/F0VL0qIjUEZGbROTry6ayInI3sA04kt0PY/KXsmXLcuzYMQCqVq2a4Tq1a9dm1qxZTJkyhcKFC1O3rs9fewagSZMmhIeH8/bbbxMSEsJdd92V7X2FhYW5XluLTv6XK4WOiGwRkc1ANLBSRPaKyF5gFRCTG8c0xt8EBgby5ptvMnfuXHbv3k3Dhg35+uuvvR0W4ChyhgwZwmuvvcbjjz/OtGnTCAx0p/ddY/IfT+c0VV0OXD6Ew63AblX9Q1UvAl8A7VR1i6q2uWw6AjQHGgOPAX1ExOd7fzO5q0aNGq7XNWvWzHCdtC6ZFy1axDPPPENQUFCexJZTRYsWZfTo0QQGBvLyyy/n6BnR9IWOXdDO/3LrLxe/vl9YRB4AHkj/pWFMbmnbti3r16/noYce4oEHHmDw4MG8/vrrXissVJXnn3+e9957jyeffJLx48cTEGB/Q5kCLS9yWgTwV7r5/UCjzFZW1aEAIvI48D9VTc1oPRHpC/QFxzhfJv+KjY11vU4/hk56AwcOpHnz5jRo0IDw8PC8Cs0jnnjiCbp06ZLj4swKnYIlV/6SUtU/016LSBhQE0h/Y/+fV2zkQ1R1PjA/Jiamj7djMQVD9erVWblyJQMGDOCNN95g9erVk1SkcwAADRhJREFUzJgxg3LlyuVpHKmpqTz99NNMmDCBAQMGMG7cOEQkT2Mwxtf4ck5T1SnXeH8SMAkgJibGvwfxMldVv359HnzwQUqXLn3FwJtpQkNDufvuu/M4Ms/xRAuU3bpWsOTqJWMR6Q0MACoBm3A0s68CWuTmcY3xR8HBwUyaNIkmTZrw1FNP0aBBA2bOnMkdd9yRJ8dPSUmhT58+fPLJJwwcOJA333zTihxj0snlnBYPVE43X8m5LMfsLoWCoVChQsyePdvbYfg8a9EpWHL7fpQBwC3An6p6J9AAOJnLxzTGr/Xo0YOff/6ZYsWKceeddzJ27Fj+HtcwdyQnJ9O9e3c++eQThg8fbkWOMRnLzZy2FqgpIlVFpAiOMXrmeWjfxhgna9EpWHK70LmgqhcARCRIVXcAN+TyMY3xe/Xr12fdunW0a9eOF198kY4dO5Jb3Z1fvHiRzp078/nnnzNq1CheffVVK3KMyZhHcpqIzMDREnSDiOwXkV6qmgw8A3wLbAdmqeqvngjaehI15m8hISGuHkTt/0T+l9uFzn4RKQnMAb4Tkbn4+PM5YOPoGN8QGhrKl19+ydixY5k3bx4xMTGsXLnSo2PuXLhwgY4dOzJ79mzeeecdBg8e7LF9G5MPeSSnqeqjqlpBVQuraiVVnexc/o2q1lLV6qo60lNBW04z5m8iQlhYGCKSo97bjH+Q3L4lxnUgkWZAKLDI2XWmz4uJidF163x+2B9TAKxYsYJOnTpx4MABAEqXLk1ERASVKlVy/Uz/OiIigtDQ0Ku2zJw7d44OHTqwePFixo8fT79+/fLq4xgfICLrVdW6+88my2nG+K/atWtz6NAhTpw44e1QjIdkltPyrP9aVV2WV8cyJr+JjY3ll19+YcGCBezfv5/9+/cTHx/P/v37WbduHUeOXDlmYLFixa4ohtJ+VqhQgUGDBrFs2TImT57ME0884YVPZYz/8qecZp0RGHOpsLAwzp8/7+0wTB6wEQCN8RPh4eH06NEjw/cSExM5ePDgFUVQ2s9ly5Zx4MABkpOTXdsEBAQwbdo0unTpklcfwRjjBTZkgjGXqlChAikpKd4Ow+QBK3SMyQeCgoKIjIwkMjIy03VSU1M5cuSIqwCqXLkyDRs2zLsgjTFeYS06xlzq3Xff9ejzrsZ3WaFjTAEREBBA+fLlKV++PDEx9miGMQWFtegYc6nKlStfeyWTL+R2r2t+yXqoMcYYk19YTjPGFFRW6GTAxhwwxhiTX1hOM8YUVFboGGOMMcYYY/KdPBtHxx+JyFEuHQwuHPifl8LJLn+L2eLNXRZv7vOXmK9X1TLeDsLknQxymrv85Xc6Ixa79/hz/Ba7d+Qk9gxzmhU6WSAi6/xtgD1/i9nizV0Wb+7zx5iNuRp//p222L3Hn+O32L0jN2K3W9eMMcYYY4wx+Y4VOsYYY4wxxph8xwqdrJnk7QCywd9itnhzl8Wb+/wxZmOuxp9/py127/Hn+C127/B47PaMjjHGGGOMMSbfsRYdY4wxxhhjTL5jhY6bRKS1iPwmIrtF5CVvx3M5EaksIv8VkW0i8quIDHAuLyUi34nILufPMG/Hmp6IFBKRjSLytXO+qoj87DzPM0WkiLdjTCMiJUXkSxHZISLbReQ2Pzi/zzt/H7aKyAwRKepL51hEPhaRIyKyNd2yDM+pOLzvjHuziDT0kXjHOH8nNovIVyJSMt17g53x/iYirfI6XmNyIr/lPV/4DrmcuzlQRIKc87ud70d6M25nTG7nRF8791nJjb5w7j2VK0Wkh3P9XSLSw4uxZzlvZvf7yAodN4hIIeAD4F6gDvCoiNTxblRXSAb+qap1gMbA084YXwKWqGpNYIlz3pcMALanmx8NjFPVGsAJoJdXosrYe8AiVb0RiMIRt8+eXxGJAJ4FYlS1HlAI6IxvneMpQOvLlmV2Tu8FajqnvsCHeRRjelO4Mt7vgHqqWh/YCQwGcP7/6wzUdW4z3vldYozPy6d5zxe+Qy7nbg7sBZxwLh/nXM/bspITfebcZyM3+sK5n0IOc6WIlAKGA42AW4HhkjcXZ6eQw7yZk+8jK3TccyuwW1X/UNWLwBdAOy/HdAlVPaiqG5yvE3B84UTgiPNT52qfAu29E+GVRKQScD/wkXNegBbAl85VfCZeEQkFmgKTAVT1oqqexIfPr1MgECwigUAIcBAfOsequhw4ftnizM5pO2CqOqwGSopIhbyJ1CGjeFV1saomO2dXA5Wcr9sBX6hqoqruAXbj+C4xxh/kx7zn9e+Q9LKYA9N/pi+Bls71vSIbOdGnzj1Zy41eP/ceypWtgO9U9biqnsBRbFxegORJ7NnIm9n+PrJCxz0RwF/p5vc7l/kkZ7NqA+BnoJyqHnS+dQgo56WwMvIuMBBIdc6XBk6m++X3pfNcFTgKfOK8zeAjESmGD59fVY0H3gb24fgSPwWsx3fPcZrMzqk//D98AljofO0P8RqTGb/6/XUz7/naZ8pKDnTF7nz/lHN9b8lqTvSZc5+N3Ohr5z5NVs+1z/wbXMadvJnt2K3QyWdEpDgwG3hOVU+nf08dXez5RDd7ItIGOKKq670di5sCgYbAh6raADjLZbep+dL5BXA2SbfDkZAqAsXIg6s3nuRr5/RqRGQojltppns7FmMKEn/Je+n5YQ68nN/lxDT5ITdezlfP9bXkRd60Qsc98UDldPOVnMt8iogUxvFlP11V45yLD6c1Dzt/HvFWfJdpArQVkb04miBb4Ljft6SzKRl86zzvB/ar6s/O+S9xfMn76vkFuAvYo6pHVTUJiMNx3n31HKfJ7Jz67P9DEXkcaAN00b/77PfZeI1xg1/8/mYx7/nSZ8pqDnTF7nw/FDiWlwFfJqs50ZfOfVZzo6+d+zRZPde+9G+Q1byZ7dit0HHPWqCms0eOIjgelJrn5Zgu4bxfdDKwXVXfSffWPCCtZ40ewNy8ji0jqjpYVSupaiSO87lUVbsA/wUecq7mS/EeAv4SkRuci1oC2/DR8+u0D2gsIiHO34+0mH3yHKeT2TmdB3R39ijTGDiVrtnea0SkNY7bT9qq6rl0b80DOoujx56qOB4MXeONGI3JhvyY93zmOyQbOTD9Z3rIub7XruBnIyf6zLkn67nRp859Olk9198C94hImLNV6x7nsjyXjbyZ/e8jVbXJjQm4D0fPEL8DQ70dTwbxxeJottwMbHJO9+G4j3QJsAv4Hijl7VgziL058LXzdTXnL/Vu4D9AkLfjSxfnzcA65zmeA4T5+vkFXgN2AFuBaUCQL51jYAaOe6STcFwh7JXZOQUER68rvwNbcPSY4wvx7sZx73Da/7sJ6dYf6oz3N+Beb/8+2GRTVqb8lvd84Tskk89xzRwIFHXO73a+X80H4nY7J/rauc9KbvSFc++pXInjeZjdzqmnF2PPct7M7veRODc2xhhjjDHGmHzDbl0zxhhjjDHG5DtW6BhjjDHGGGPyHSt0jDHGGGOMMfmOFTrGGGOMMcaYfMcKHWOMMcYYY0y+Y4WOMcYYY4wxJt+xQscYY4wxxhiT71ihY4yHiUgdEXlcRCqLSAlvx2OMMcZ4muU64w+s0DHG8woD/wA6AGcuf1NEIkXkvIhs8vSBRSRYRDaJyEURCff0/o0xxhQ8IlJJRDpdtjjHuc5ylsltVugY43mVgU+A3UBmV7l+V9WbPX1gVT3v3O8BT+/bGGNMgdUSaHjZshznOstZJrdZoWNMNonIUueVqE0ickFEHgFQ1a+BL1X1G1U97cZ+IkVkh4hMEZGdIjJdRO4SkZ9EZJeI3JqV9YwxxhhPEZFY4B3gIWe+qwbZynXFRGSBiPwiIlszaCEyxuOs0DEmm1S1hfNK1ERgHjA73XuHsri7GsBY4Ebn9BgQC7wIDMnGesYYY0yOqeoKYC3QTlVvVtU/0r2XlVzXGjigqlGqWg9Y5OFQjbmCFTrG5ICIdAfuBbqoakoOdrVHVbeoairwK7BEVRXYAkRmYz1jjDHGU24AduRwH1uAu0VktIjcoaqnPBCXMVdlhY4x2SQiDwNdgEdUNSmHu0tM9zo13XwqEJiN9Ywxxpgcc3YScEpVk3OyH1XdieM5ny3ACBEZ5on4jLka+8PImGwQkTZAf6CNql7wdjzGGGNMLonEA50FiEhF4LiqfiYiJ4HeOd2nMddiLTrGZM+nQCXgJ+fDmb28HZAxxhiTC3YA4c4OBG7PwX5uAtY4u5seDozwSHTGXIU4bu83xuQVEYkEvnY+jJlbx9gLxKjq/3LrGMYYY0xmspLrLGeZ3GItOsbkvRQgNDcHDMUxkFuqp/dvjDHGuOmauc5ylslt1qJjjDHGGGOMyXesRccYY4wxxhiT71ihY4wxxhhjjMl3rNAxxhhjjDHG5DtW6BhjjDHGGGPyHSt0jDHGGGOMMfmOFTrGGGOMMcaYfMcKHWOMMcYYY0y+Y4WOMcYYY4wxJt+xQscYY4wxxhiT7/w/MpQNXVjQNtkAAAAASUVORK5CYII=\n", "text/plain": [ "<Figure size 936x504 with 5 Axes>" ] @@ -725,12 +725,14 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": {}, + "execution_count": 18, + "metadata": { + "scrolled": true + }, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAy8AAAHbCAYAAADCsaUWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeXwcdf348dd7dtM7PdIjLW2T9D5pgFYoiNxCEcoplEMFqoCUIooIKF9ABPwWuSx8oYKliP4UUEQo5SoIiooFWqTYE0rv0vtu06bZ7Pv3x8ymk80m2U1ms7vJ+8lj6c5nPvOezxxJPu85RVUxxhhjjDHGmGznZLoBxhhjjDHGGJMMS16MMcYYY4wxOcGSF2OMMcYYY0xOsOTFGGOMMcYYkxMseTHGGGOMMcbkBEtejDHGGGOMMTkhnOkGGGOMMSZ18+bN6xEOh6cDI7GDkcaY5iEKLIhEIt8ZPXr0pkQVMpa8iEhb4HXgJFWtTDC+FfCWNz7S1O0zzZ+IdAE6AScAL6nq9uY8X2NM+vj+pv0M+IGqnpmgzlvABUH9zIfD4ek9e/Yc1r179+2O49hL24wxOS8ajcrmzZuHb9iwYTpwVqI6mTxSMxF4IVHiAqCqB4C/AhOatFWmWRGRl0Vkj/d5O270aOA6YDzw9eYwX2NMxkwEXgAS/k3z/A6YFOA8R3bv3n2XJS7GmObCcRzt3r37TtwzyonrNGF74l0KvCQiHUTkryLykYj8V0TO9tV50atnTIOo6nhV7eB9Tsq1+YqIisheEbknyfpvi8h+EflnQ+dpjGmQS4GXvO8dReQVEVkqIr8Skdjf2pnAxQHO07HExRjT3Hi/12rNUTKSvHiXhPVX1ZXAfuBcVT0COBF4QETEq7oA+FIm2mhym4hc5jvzsV9EKn3DO0SkNTAPeAR4GXg+i+dbqqq3evFXisgpvvldJCLbReR4AC9R+m4Qy2KMSU7c3zSAI3HPrg4HBgDnAXiXi7UWka6ZaKcxxjQHmTrz0g3Y4X0X4Oci8gnuPS69gUIA75KyAyKSn5FWmpylqk/HznwAPwdm+c6EdFbVclXdrqorVfU3QV2D3pTzFZHLgEeBM1T170G03xjTIP6/aQAfqOpy72/YM8CxvnGbgEOasnHGGNOcZCp52Qe08b5fCnQHRqvqYcBG3ziA1rhnZ4xpqMOA+c1pviJyNfAAcJqqvpeOeRhjkub/mwYQfymXf7iNV79ZWL16dfjMM8/s37dv35EjRowYdvzxxw/85JNPWs+dO7fN2LFjB5eUlIwsLi4e+aMf/ahXNBoF4OGHH+4qIqNffPHFqgOTv/vd7zqLyOinnnqqC8AzzzzTadiwYcOHDBkyfMCAASPuu+++brG6999/f7d+/fqN6Nev34hDDz102BtvvNEhNu7II48c8u6777ZrwlXQIl1wwQUlBQUFpYMGDRqRrjihUGj00KFDhw8cOHDEkCFDht9xxx2FlZV13VJmGqKu9Txr1qz8/Pz8w4YOHTp86NChw4855pjBADfccMMhbdu2PXzdunVVD/5q167d4bHvtf1eAPjkk09aH3/88QOLi4tHDh8+fNjXvva1/mvWrEnpAWIZSV68o80hEWmD+9SlTapaISInAsWxet6p9S2qWpGJdppm4zDg42Y032twn2h0sqrOTUN8Y0wK4v6mARwpIv28e10mAP8E8C6J7gmszEhDAxaNRjnrrLMGHnfccbvXrFmzYOHChYunTJmy7osvvsg799xzB950000bVq5cuWDBggWL3n///Q733ntv99i0gwYN2vfMM88UxIafffbZgiFDhuwDKC8vl+uvv7541qxZny1dunTRggULFp166qm7wU1qnnrqqe7vvffe0hUrViycNm3aqssvv7zf6tWr7dUPTWjixIlbZs6c+Vl99WbNmpV//vnnlzQkTuvWraNLlixZtGzZsoVvv/32p2+++WanG2+80c5aBqy+9TxmzJg9S5YsWbRkyZJF77333qex8s6dO0fuvvvuwvh4df1eKCsrk/Hjxw+6+uqrN69atWrBokWLFk+aNGnzhg0bsj958czGPZX+e2CMiPwX+BawxFfnROCVDLTNNBMi0hEooYmTlzTP96vAHOC/aYhtjGmY2N80gA+B/wMWAyuAv3jlo4E5mXr8/+OPP14waNCgEaFQaPSgQYNGPP744wX1T1W7WbNm5YfDYb3ppps2x8qOPvrofYsXL24zZsyYPeedd94ugPz8/Oi0adNWT506tVes3lFHHbXnP//5T/vy8nLZuXOns3LlytYjRowoA9ixY4cTiUSksLAwAtC2bVstLS0tB7j//vt7/u///u/aXr16RQCOPfbYsgsvvHDrAw880KMxy2JSc/rpp+/p3r17o/fjZOP07t07Mn369JVPPfVUj9gZPBO8VNbzxRdfvHXmzJkFGzduDPnLa/u9MG7cuD1PPPFEwRFHHLHnkksu2Rkbd+aZZ+7+0pe+lNIVVplMXh4FLlPVLap6tKoeqqpXqOow302PlwCPZ66JphkoBXbjdiBSJiJ/8574lehT1xO9GjXfelwDDAam+x5uYYzJrNjftL+p6nGqeoaqDlHV76pqrBfwTeCxTDTu8ccfL7jrrrt6P/jgg6vLyso+evDBB1ffddddvRuTwHzyySdtS0tLy+LLFy5c2OaII46oVj5ixIjysrIyZ9u2bQ6AiHDcccfteuGFFzr+4Q9/6Dxu3Liqe4YKCwsrv/rVr+4oKioaNX78+H7Tpk0riF3GsmzZsrZf/vKXq8X+0pe+VLZ48eK2DV0OkxuGDx9+oLKyEv+lSiZ48et57ty5HWKXjd188809Y/U6dOhQefHFF2+ZMmVKtbMvtf1eAFiwYEHb+N8NDZGxHUBVPxKRd0QkVMdLKl9U1U8TTG5Msg4DPlHVBj1OVFVPCHK+InIvcAzuZSMTG3hJ5EbgZODvuB2haxrYRmNMQOr7m+ZZoKp/bdKGee6///5e06ZNWzl+/PjdAN6/K2+44Yaiq6++elsm2nTppZdu++Uvf1m4e/fu0C9/+cs1d955Z9WZmeeee27VBx98sOm1117Lf/jhh3u+9dZbHf/85z+vzEQ7s9XEiRP7LliwIND7e0aOHFk2Y8aMNY2NM2rUqKEHDhxwysrKnJ07d4aHDh06HOCee+5Ze/755+9qfEubpyOPPHLIN77xjS3f+973tpaXl8tXvvKVwZdffvnmSZMmbdu9e7dz8sknD7ryyis3XXnlldu3bt0aOv300wdee+21Gy+77LId69evD5999tkDvv/972+45JJLdq5evTpcVFTU6LNjY8aM2fPOO+8sSzTulltu2VRaWjr89ttv39DY+aQik2deUNUZdb2kUlV/29RtMs1O1tzvIiKlQG9V/Qru5ZENfkGlqn6Bm8CME5GHGtNQY0ww6vqb5o3/dVO2x2/58uVtTj311D3+slNPPXXP8uXL29Q2TX0OPfTQffPnz6/ReR4+fPj+jz76qFr5okWLWrVr1y5aUFBQdS3KiSeeWLZkyZK227ZtC48aNao8Ps6RRx6574477tj09ttvf/r66693ARg4cOC+f/3rX9Viz507t92wYcOazUMQmoNPPvlkyZIlSxY99thjq0455ZQdsXsmGpO4LFq0qFUoFKJ3794ZueyypUhlPXfr1q3y3HPP3XbfffdVXbZZ2+8FgBEjRtT43dAQdurNNHelwLQsme8xuNfFA7wOXIH7GNUGUdXVInIS8K6I7FfVHzc0ljGmeevfv//+2bNnd4ideQGYPXt2h/79+zf4aZ7jx4/ffdttt8n999/f7cYbb9wC8P7777cdPnz4/gcffLDXiy++mH/OOefs3rNnj1x77bVF1113XY2js3fdddfatm3bVjtDvXPnTucf//hH+zPPPHN3LOYhhxxyAOCGG27Y8JOf/KTPkUce+WnPnj0r33vvvbbPPfdc1zlz5iyJj93cBXGGJFd88cUX4SuvvLL4iiuu2OQ4GT3unlYffPDB0tj31q1bq384Pz8/6h/u2rVrpX+4V69eEf9wQ866NGQ933rrrRvHjBkzrLKyUqD23wvbt28PXXnllVsfeuihns8++2yniy66aCfAa6+91qFbt26RVO57seTFNGuqOiaL5tsFWO993wkkc615OTBPRB5W1dtUtSRuPiuAvrFhEXkTGAt80JB2G2OapxtvvHH9NddcUwKsPPXUU/fMnj27wzXXXFNy2223rWtoTMdxmDlz5ueTJk3qO3Xq1J6tW7fWPn36lD/yyCNrXnjhhWWTJ08u+v73v58XjUa54IILtv74xz/eFB/jwgsvrHEkPhqNct999xVOnjy5uE2bNtF27dpFn3zyyRUAl1566c61a9e2Gjt27DAR0fbt20dnzJixori4uOoS3HPPPXdQOBxWgCOOOGLPa6+9tryhy2gSGz9+fL85c+bkb9++PVxYWDjqlltu+eIHP/jBliDjlJeXO0OHDh0eiUQkFArphAkTtt5xxx0bg1+alq2x67lXr16R008/ffuTTz5ZCHX/XujQoYO+9NJLy773ve/1vfnmm/uGw2EdNmzYvmnTpq1Opc3SwFsBjDEpEpFJwB5V/a2IjAauUNXJmW6XMSY3zZ8/f2VpaWnSHcbHH3+84P777++1fPnyNv37999/4403rs/U/S7GGFOX+fPndystLS1JNM7OvBjTdN4DbgB+C5wG/CuzzTHGtCRXX331NktWjDG5rvleOGhMllHVj4GNIvIPYATw5ww3yRhjjDEmp9iZF2OakKr+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xb7XLA8h4uB408TqOuK447z5ON50DrF/D07veP8JIW/uDo46VfVidR11a4lXu3qZHCyLDYv4l9RXRtVOGPvuAI7467ldplh9cFfdwXJ809dfjjeuqrxaTK2atlq519E9GFOrphWv8+y2++D0/nIRrRrvLpdXt85yjWuXHpx/1fDBGMTmU2N6X5n3rzuv6uWxujXq+YYT1RVHcSRavcwrr2qrRKvK/HHd4WhVXf+08eUkqusoONGDMX3Dse+11cVJXIbjzcOb58G4Cg5V83c3VtWG5+CPrBz8xAodAcfxPrGN6FR91HHACSUojy8LoVUxQ+5wrLyqrvc9YVnY+x4+WC5hr9wtUycMcWUiYXDy3H8ljPjKRcI4Ej74O0fCON58w/KNbhjTBMrLy+WMM84YcMEFF2y77LLLdsTKu3btGokdbV+1alVeQUFBBKBXr14VK1eubBWrt379+lb+I/IAo0aNKv/oo48W/fnPf+5022239X7rrbd23X///eubbqlMTElJyYHCwsIDJ5100l6ACRMmbJ8yZUpPsG3cEqS6jXv37l3x97//PT9Wvm7dulbHH3/8bn/MvLw8Pv7448UzZ87s+Pzzz3eZNm1ajzlz5nyaSrtaWPJijDHGND/JnCEJWjQa5aKLLioePHjw/p/+9Kcb/eNOO+20HY8//njXn//85xsef/zxruPGjdsBcNZZZ+147LHHelx55ZXb3nnnnfb5+fmV8R3blStX5vXo0SMyadKkbV26dKl88sknLRkH6jpDki5FRUWRnj17Hpg/f37r0tLS8tmzZ3ccMmTIfrBtnA5BnCEJUqrb+Jxzztn5s5/9rHfsJv2///3vHR966KG1/pg7d+509uzZ40yYMGHnKaecsmfAgAGHptouS16MMcYYk7I333yzw4svvth10KBB+4YOHToc4M4771w3YcKEnXfeeef6c889d0BxcXG33r17H/jLX/7yOcCFF16485VXXulUXFw8sm3bttHp06evjI87b968tj/+8Y/7OI5DOBzWxx57bFUTL5rxeeSRR1Zfeuml/Q8cOCBFRUXlzzzzzEoA28bNx/jx4/vNmTMnf/v27eHCwsJRt9xyyxc/+MEPtqS6jQsLCyt/9KMffTF69OhhADfddNMXhYWFlf557dixI3TmmWcOLC8vF4C77ror5YRNVFvO+61ERO2yMbtszC4b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zgy8Xi+pqSfgcrlYuXIlMTHRnHHGEFwuF99//wN2u50//el8nE4ns2d/QXS0i7/85RJcLhfvvPMejRs35uqrR+F0Onnhhcm0bNmSm24ag8vlYsKER+jUqRO3334bLpeLsWPvoF+/ftx33z24XC4uv/wqBg06hXvuuQuACy64kLPPPpPbbx8LwLBhwxkx4k/cfPPfATjnnPMYOXIEY8ZcX6v33oUX/rla773LL7+KBx74J+ecczabN2/muuvG8PDDDzFkyOmsW7eOG2+8mf/8598MGjSIVatWceutt/PkkxMZOHAgy5cv54477ubZZ59iwIABLF68mHvvHceLLz5Hnz59+Omnn/jnP//Fq6++RPfu3fn22+946KGHeeON/9KpUye+/vobHn30P7zzzpukpKQwd+6XTJz4BNOnv0erVq347LPZPPXUM8ycOYOkpCQ+/vh/PP/8i3z66cc0btyYGTM+4OWXX+WLLz4jNjaWd999jylT3mDevLk4nU7efPMt3nzzbRYu/AaA//53CjNmfMjXX38JwEsvvcxnn33OnDmzAXjuuef55psFzJr1PwAmTXqan3/+hY8++gCAiROfYPnyFUyf/h4A//73Y6xbt453330bgAcfnEBaWhpTp74OwP33j2fv3r289torANxzz30UFBQwefILANxxh/898eyzTwNwyy23ERMTw6RJTwT5U9PAkhcAT+2G7pVXjcbxMbXFrdLwtELMEJRRghzThCBmQ6YnwqsI5gC6AmcAbYHvRKSvMSYbaG+MSReRTsB8EfndGLOpYgARuQG4AaBdu3Y1LsD//vcJaWlpzJo1my1btlJQUMCmTZt4++13+P77H8jPz2fNmjU8++zzTJs2g4MHD7JixUoeeOBBnnhiEgUFBWzcuImbbrqFsWPvpKCggH379nHxxZcCUFxcjMfj4dtvvyv3uD/99HO5+Wuvvb7c/Nixd5SbHz/+wXLzjz8+qdz8q6/+F5fLhc1mw+1289VXXxMdHY3H4+HAgQNs3ryF2NgY8vPz8fl8iAhxcXEUFRWzf3823bp1JT4+noyMnaxbt4Fhw4YSHx/H5s2bWblyFVdeeTmxsbGsWvUHS5cu49Zb/050dDS//rqYX35ZxIMPPoDT6WTBgoX89NPPPPnk4zidTj77bDY//fQzL7/8Ik6nk/ffn86iRYt4662pOJ1OXn31NZYsWcbMmTOw2+08/viTIWlAPvTQvwBIT08nJiaGv//9JgAWLfqVZs2acdFFFwLw8cf/IyUlhVNPPRWAJk2a0KJFC7p06QJAdHQMsbGxxMfHAxzz0COlgqlBnbDf3NnSjEw8/IT9ao4Qq5FwxDyWVzLYMcP1XEaq6j4fVW5XX16gWsaUykLU0QeoJj1j1VLyONWIWel+V+G/WXrCfjiJyCn4e1LOC8zfD2CM+X9ltnkFWGSMmRqY/wYYZ4xZXCHWm8BsY8zMIz3msZywP3z4SD7//IvS+aqG8FQ2BKiq9RXPIyg/Xfm5BodPOypdV9WtpMdCKVU/6Qn7AT4DRdUeN3Z01RmVVNM2jw+D7Sj3qmlMg0GCnAIcFjPYl04KQsxKX59axwzCflslpkVfH1uQn8vDShopMRvOcSerWAx0FZGOQDpwOXBlhW0+Aa4ApopIEv5hZJtFpAmQb4wpCiw/FQj+WAtgxoz3AX/S4nA49Ei6UspyLJ28VOeylGX5jCHf46ViS+HYDhxXXFLzmIdvb8o0aUqW1Cze4dsbfIAtqDFLml6m3PrqxqzO9pEas3S/g1XfGwvEPPJbPaJiHst+V7Zp6TJD4PNzKGatcwZT8hj+mMGKp8LLGOMRkVuBL/HXSW8YY/4QkUeAJcaYWYF1/yciq/GfgnmvMWaviAwCXhWRkq/riWWvUhZMcXFxoQirlFJ1xrLJS3UuS1mRz8ABT/mul5rU+4cP4ai8R6M2MQ87clzDmJVfkan65ayYoFRcdmj54TGrKmNlZapp4nQsMavqcaqrmLV5LkMR81ie/2NRWRkre0z/cKyq9/tYklBjTK1iVnZP/xUAgxuzsrFoR3t96ur1U8fOGPMF8EWFZQ+WmTbAXYFb2W1+AvrWRRmVUsrqLJu8UL3LUpbjxstucgNzlTZTSqel0lSl/D3LN2SPFq/iNpU3of3Dxiq7rN/hTeuSxzZVxCr7SIeXsmzfzOExDzWBjxaz8gFplccsG7k8OWpTsOw9y/eDVL21qeR5r6ok1euL8WKwI0GNWbG3rfKYNWmulvS2BftEjZoPWDzq63PE6y/XfL+9GOzmSJfFrHlMA0Evpw+wBfU669r9opRSqmGwcvJSnctSluOmkHQ2VVLNH56k2A5beviwMGN8iNiqaDaYw6bKxzy84SKA1/iwVzNmSRP6SDEBfD6D3SZBjWmMwSbBjSmHBv1UGa+yCKaSmMKho/BHK2PJPcoOqjO1fH1qFhPsVQ4fOraYJedOBTNmVfeu/PU59IpX+foEkv/68/pUloJW8fnBF3j08iWorH+3fDmrSni0L0YppVTDYOXkpVrKXlYSOJBVsGhdOMtThSRgT7gLUUtW3werlx90HyJBOMvfPkyPq8Jk6dKle0RkW4XFVvsMaXlDS8sbWlYrL1inzFXWaVZOXtKBlDLzbQPLyjHGvAa8VleFOhYissTqlzi1+j5Yvfyg+xAJrF5+ZS3GmOYVl1ntPajlDS0tb2hZrbxgzTJXdKTB4ZGu9LKUIuLCf1nKWWEuk1JKKaWUUipELNvzUtVlKcNcLKWUUkoppVSIWDZ5gcovS2lRET2srZqsvg9WLz/oPkQCq5dfWZ/V3oNa3tDS8oaW1coL1ixzOeK/7LxSSimllFJKRTYrn/OilFJKKaWUakA0ealjIpIiIgtEZLWI/CEitweWNxWReSKyIfC/SbjLeiQiYheR30RkdmC+o4gsEpGNIjIjcBGFiCUiiSIyU0TWisgaETnFSq+BiNwZeP+sEpFpIhId6a+BiLwhIrtFZFWZZZU+5+L3fGBfVorI8eEr+SFV7MOTgffRShH5n4gklll3f2Af1onIeeEptWoIRGRo4H22UUTGhbs8FVm17rNaXWe1ui3S6zKr1VsNpY7S5KXueYC7jTG9gJOBW0SkFzAO+MYY0xX4JjAfyW4H1pSZfxx4xhjTBdgPjA5LqarvOWCuMaYH0B//vljiNRCRNsBYINUY0wf/BSsuJ/JfgzeBoRWWVfWcDwO6Bm43AC/XURmP5k0O34d5QB9jTD9gPXA/QOBzfTnQO3Cfl0TEXndFVQ1F4H01Gf/nphdwReD9F0msWvdZra6zTN1mkbrsTaxVb71JA6ijNHmpY8aYDGPMssB0Hv4vljbASOCtwGZvAX8OTwmPTkTaAn8CpgTmBTgLmBnYJNLL3xg4HXgdwBhTbIzJxkKvAf6LbcSIiAOIBTKI8NfAGPMdsK/C4qqe85HA28bvFyBRRJLrpqRVq2wfjDFfGWM8gdlf8P/mFPj3YboxpsgYswXYCJxYZ4VVDcmJwEZjzGZjTDEwHf/7L2JYse6zWl1n0botousyq9VbDaWO0uQljESkA3AcsAhoaYzJCKzKBFqGqVjV8SxwH+ALzDcDsst8OHbgr5QiVUcgC5gaGA4wRUTisMhrYIxJByYB2/F/0ecAS7HWa1Cique8DZBWZjur7M91wJzAtFX3QVmPpd5rFqr7rFbXWapus3BdZuV6q17UUZq8hImIxAMfAXcYY3LLrjP+S8BF5GXgRGQ4sNsYszTcZakFB3A88LIx5jjgIBW60SP8NWiC/4hJR6A1EMfh3cSWE8nPeXWIyHj8Q2PeC3dZlIpUVqn7LFrXWapuqw91WSQ9n0dTn+ooTV7CQESc+L+83zPGfBxYvKukezHwf3e4yncUpwIXiMhW/EMTzsI/xjYx0O0L/i7J9PAUr1p2ADuMMYsC8zPxf+Fb5TU4B9hijMkyxriBj/G/LlZ6DUpU9ZynAylltovo/RGRa4DhwFXm0PXnLbUPytIs8V6zWN1nxbrOanWbVesyy9Vb9a2O0uSljgXGzL4OrDHGPF1m1Szg6sD01cCndV226jDG3G+MaWuM6YD/RK/5xpirgAXAJYHNIrb8AMaYTCBNRLoHFp0NrMYirwH+LvaTRSQ28H4qKb9lXoMyqnrOZwF/C1y95WQgp0w3fUQRkaH4h5ZcYIzJL7NqFnC5iESJSEf8J3H+Go4yqnpvMdA1cJUmF/7v5llhLlM5Vqv7rFjXWbBus2pdZql6q17WUcYYvdXhDRiMv4txJbA8cDsf/1jab4ANwNdA03CXtRr7cgYwOzDdCf+bfiPwIRAV7vIdpewDgCWB1+EToImVXgPgYWAtsAp4B4iK9NcAmIZ/XLMb/xHC0VU954Dgv3rSJuB3/FejidR92Ih/3HDJ5/mVMtuPD+zDOmBYuMuvt/p7C9Qj6wPvt/HhLk8l5bNs3Welus5qdVuk12VWq7caSh0lgcIrpZRSSimlVETTYWNKKaWUUkopS9DkRSmllFJKKWUJmrwopZRSSimlLEGTF6WUUkoppZQlaPKilFJKKaWUsgRNXpRSSimllFKWoMmLUkoppZRSyhI0eVHqKESkl4hcIyIpIpIQ7vIopZRSx0rrNGV1mrwodXRO4DbgQuBAxZUi0kFECkRkebAfWERiRGS5iBSLSFKw4yullGpwtE5TlqbJi1JHlwJMBTYCVR2l2mSMGRDsBzbGFATi7gx2bKWUUg2S1mnK0jR5USpAROYHjggtF5FCEbkUwBgzG5hpjPnCGJNbjTgdRGStiLwpIutF5D0ROUdEfhSRDSJyYk22U0oppWpK6zRVX2nyolSAMeaswBGhV4FZwEdl1mXWMFwX4CmgR+B2JTAYuAf45zFsp5RSSlWb1mmqvnKEuwBKRRIR+RswDLjYGOOtRagtxpjfAzH/AL4xxhgR+R3ocAzbKaWUUjWidZqqjzR5USpARP4CXAWMNMa4axmuqMy0r8y8j/Kfu+pup5RSSlWb1mmqvtI3klKAiAwHbgaGG2MKw10epZRS6lhpnabqMz3nRSm/t4C2wI+BkxtHh7tASiml1DHSOk3VW2KMCXcZlLI0EekAzDbG9AnhY2wFUo0xe0L1GEoppZTWaSrSac+LUrXnBRqH8ge98P+omC/Y8ZVSSqkKtE5TEU17XpRSSimllFKWoD0vSimllFJKKUvQ5EUppZRSSillCZq8KKWUUkoppSxBkxellFJKKaWUJWjyopRSSimllLIETV6UUkoppZRSlqDJi1JKKaWUUsoSNHlRSimllFJKWYImL0oppZRSSilL0ORFKaWUUkopZQmavCillFJKKaUsQZMXpZRSSimllCVo8qKUUkoppZSyBE1elFJKKaWUUpagyYtSSimllFLKEjR5UUoppZRSSlmCJi9KKaWUUkopS9DkRSmllFJKKWUJmrwopZRSSimlLEGTF6WUUkoppZQlaPKilFJKKaWUsgRNXpRSSimllFKWoMmLUkoppZRSyhI0eVFKKaWUUkpZgiYvSimllFJKKUvQ5EUppZRSSillCZq8KKWUUkoppSxBkxellFJKKaWUJWjyopRSSimllLIETV6UUkoppZRSlqDJi1JKKaWUUsoSHOF6YBGJAeYCZxljvJWsnwR8YYyZX+eFUyrIli5d2sLhcEwB+qAHDVRw+YBVHo/n+hNOOGF3uAvTUFVVp4nIm8BsY8xMEZkO/MsYsyFMxVQqKLROUyF01DotbMkLcB3wcWWJS8ALwH8BTV6U5TkcjimtWrXq2bx58/02m82Euzyq/vD5fJKVldUrMzNzCnBBuMvTgB2tTgN4GbgPGFM3RVIqNLROU6FSnTotnNnyVcCnACLyDxH5XURWiMhEAGPMNqCZiLQKYxmVCpY+zZs3z9UveRVsNpvNNG/ePAf/EVAVPlcBn4rfiyKyTkS+BlqU2eZ74BwRCeeBQ6WCQes0FRLVqdPCkryIiAvoZIzZKiLDgJHAScaY/sATZTZdBpwajjIqFWQ2/ZJXoRJ4b+nQjTApW6cBFwLdgV7A34BBJdsZY3zARqB/GIqpVDBpnaZC5mh1WrgquyQgOzB9DjDVGJMPYIzZV2a73UDrOi6bUkopVRNl67TTgWnGGK8xZieHD33Wek0ppWohXMlLARBdje2iA9sqpZRSkaq6dRpovaaUUrUSluTFGLMfsItINDAPuFZEYgFEpGmZTbsBq8JQRKXqpb/85S8dmjZt2r9r1669QxXHbref0KNHj15dunTp3b17914PPfRQS6/3SOcwW8uR9m/27NkJCQkJA3r06NGrR48evQYNGtQN4K677modExNzXHp6eum5DrGxsceVTG/fvt0xfPjwTikpKX169+7dc8iQIV1WrlwZBbBy5cqoIUOGdGnfvn2fXr169Tz//PM7paWl6TkTEaRCnfYdcJmI2EUkGTizwuZarykVJFqn1Z4V67RwjpH+ChhsjJkLzAKWiMhy4B4AEXECXYAl4SuiUvXLddddt2fWrFlHvUzr7NmzEy6++OIOxxInKirKt3bt2tUbN278Y/78+evnzZvX+J577qk3w2SOtn+pqakH1q5du3rt2rWrf/rpp/UlyxMTEz2PPvpoy4rxfD4fF1xwQZfTTz89Ly0tbdUff/yxZuLEiek7d+505ufny4gRI7reeOONWdu2bVu1evXqNTfffHNWZmamJi+R5ytgMPA/YAOwGngb+LlkAxFpCRQYYzLDUkKl6hmt02rPiuxYvPgAACAASURBVHVaOJOXycDVAMaYicaYXsaYAcaYfwbWDwdmGmM8YSuhUvXMsGHDDjRv3rzWn6nqxmnTpo1nypQpW6dOndrC5/PV9mEjTk3274orrtg7a9asprt27bKXXT579uwEh8Nh7rvvvqySZaecckrB0KFDD7z22mtNjz/++ANXXnllTsm64cOH5w0cOLAw6DujamsycLXxu9UY090Yc64x5nxjzMzANlcCr4axjErVK1qnBZdV6rSwHb0zxiwTkQUiYq/iuvgO4Km6LpdSoXbdddelrFq1KjaYMfv06ZP/xhtvpAUzZrD06tWr2Ov1kp6e7khJSQnqwYgTTzyx+1//+tc9Y8eO3VtUVCSnnXZat2uuuSbr5ptv3peXl2c7++yzu44ZM2b3mDFj9u/du9c+bNiwLrfccsuuq6++OjsjI8MxcuTIznfccUfmlVdembN9+3ZHu3bt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O0s7n8tXrijonJaamsrrr79OSkoKoaGhrFixggULFiAipKWlefy65cuXp1q1agQHB7Nt2zZ69uzJ1VdfzYULFxg3bhzvvPMOAwcOJDo6mjFjxvDCCy/QtGlTTp06xYEDB2jatCnBwcEF9j6N8Uepqans37+fChUqULVqVfbv38+9997LkCFDEBE+++wz5s2bR1paGiLCNddcw3333cff/vY3ypUr5+3w3ZZbTvNkqOSNwDlV/VZEyopIOVU9l027CsAGck8Gxz04vjHFnqryxRdf0LhxY+rXr0/v3r1JSkqifPny3g7NGH8yGugALAdQ1U0iUjebdiU+X6kq8+bNY+zYsVy4cAGAunXr0qtXL5o0aUJkZCTh4eFUrlyZkJAQgoKCKFWqFAEBASQnJ5OQkEBiYiKJiYkkJCRw5swZYmNjL1pOnjxJSkoKP/74I198kTGlDn//+9/5+9//TuXKlYmPjycxMZErrriCkydP8vbbb7N06VJuvPFGvvvuO/71r38xbdo0IiIiOHz4ML///jutW7emVKlS3vrojCkw586dIykpiSpVqpCQkMCwYcPo0aMHffr04Y8//qBBgwYMHDiQqKgotmzZwtq1a/nhhx8AKFu2LD179uTWW2+lV69eVK9e3cvvpvC4deVFRAYBDwOVVbWeiDQApqjqjYUVYEGyKy/GX5w4cYJatWoxePBg3njjDW+HY/yAXXm5lIj8rKqdROSX9KsmIrJFVVt6O7asRKQP0BMoD0xT1aV57VMQOS0pKYlhw4axdetWVq1aRePGjfn73//OrbfeSu3atfP12rm5cOECR44c4fDhw8TExHDgwAGio6MzlkOHDl10tads2bJUr16d06dPM2jQIFq1asW6det48803OXHiBFWqVOGjjz5i7ty5fPzxx4SEhLB//37Onz9P8+bNL7rN1hhvSh9sB2DChAnUrl2bfv36oaqEhoby4IMPMnDgQLZv386wYcOIiIggOTmZvXv3kv43u4hQp04drrjiCq699lquueYaWrduTVBQYU7fWLRyy2nuFi+bcJzFWpMpEWxVVb+4gc6KF+PL5syZw08//cTEiRMBWLdunZ1RNC6z4uVSIjIN+A4YDvwVeBwopaqDC/g404FewDFVbZ5p+03AW0Ag8F9VfcWF16oE/EtVH8yrbUHktLlz53LnnXcSHBzMpEmTuP/++wkMDMzXaxaEpKQkDh48yP79+9m7dy+7d+9m165d7Nq1iwMHDlxU2NSoUYPGjRtnTND7zjvv0LhxYyZOnMjUqVM5f/48IsKkSZPYsGEDM2bMAGDPnj0EBARQr149L71LU9z9/vvvnDx5MqOfSY8ePQgPD+eDDz4gLi6OFi1aULNmTTp27Mj27dtZs2YNsbGxGfuXKlWKBg0a0KRJE5o2bUqTJk1o0qQJDRs2pGzZst56W0WiIG8bS1TVpPSKUUSCcAwjaYzxQHx8PMHBwYgIe/bs4aeffiI+Pp6QkBDat2/v7fCM8XdDgZFAIjAHWAK8WAjHmQH8B5iVvkFEAoHJQDcgBlgnIgtxFDIvZ9n/AVU95nz8f879Cl1cXByjRo2iYsWKrFy50qc68pYuXZr69etTv359unXrdtFzCQkJ7Nu3L6OY2blzZ8bj06dP07NnTwDKlClDREQEAwcOpGnTpmzdupWYmBhSU1MJDAxkxIgRbN26lV27dgEwduxYEhISePllxz/Pzp07qVChAjVq1CjaN2/81hdffMGePXt44oknALjvvvs4deoUq1atYsuWLQQFBbFnzx6aN2/Or7/+SlpaGvv372fdunU0btyYHj160KxZs4xCJSoqyk5gZsPd4mWFiDwPhIhIN2AIsCinxuKociJU9VA+YjSmWFq/fj09evRg/vz5XHfddQwfPpxRo0bZ7Q3GFBBVvYCjeBmZV9v85CtVXSkidbJs7gDsVdVo5+vPBW5V1ZdxXKXJ7vivAF8VxaSYiYmJPPLII+zdu5dly5b5VOGSl+DgYJo1a0azZs0u2q6qHD9+PKOg+fXXX9mxYwcrVqzgww8/zGgXGhpKo0aNuOyyy+jUqROfffYZTZs2JSYmhoSEPweju/feeylfvjzffPMNAE8++SR16tRh2DDHyNu//vorl112GZUqVSqCd218QVpaGjExMdSq5ZglZPLkycydOzej38nixYtZtGgRDz74IKtWraJq1arExMRQrlw5kpOTAahatSrt27fn9ttvp3Xr1jRr1oyoqCifuOLpL9wtXoYDDwJbgUeAL4H/5tRYVVVEvgT851vRmEJ09uxZjhw5QqNGjWjWrBndu3enYsWKgONMozGm4IjIIi69O+AMsB54N/OwyYWQr2oCmQuhGKBjLu2HAl2BCiJSX1WnZNdIRB7G0fc04w8oT0ydOpXZs2fTu3dvOnfu7PHr+BIRoVq1alSrVu2SyXrPnj2bUcxkXpYuXcqsWY4LZqVKlaJhw4b069ePpk2b0qNHD+rUqUNiYiJlypRh165dF81p07VrV7p37877778PwP3330+3bt246667AIiOjiYyMtLOnPuxffv28dVXXzFo0CDKlCnDK6+8wsiRIzl37hxhYWGEhYVRrVo1Tp8+zYYNGyhXrhyRkZFUrlyZlJQUSpUqRadOnbjlllto37497du3p1atWnaSMp/cKl5UNQ2Y6lxctVFE2qvqOrciM6YY6tatG2lpaaxdu5aQkBBmz57t7ZCMKc6igao4bhkDuAM4BzTEkcfuydLea/lKVScCE11o9x7wHjj6vHh6vJiYGABeffVVT1/Cr5QvX56OHTvSsePF9WNcXBw7d+68qKD55ZdfmDdvXkbn6IceeoiGDRvSsmVLwsPD+eKLL2jVqhVvv/02l112GeAYxnbjxo00btwYcFzZatiwISNGjODFF18kJSWFf/7zn/Tt25d27axrmq9ITU3lt99+o1q1aoSFhbFhwwaef/553nnnHaKioli3bh1Dhw7l+uuvp0WLFvTq1YuqVauSmJjIxo0bOXDgACdOnKB69eokJSURGBhI+/bteeaZZ7jhhhu46qqrin3fFG9wq3gRka3kfBZrnKqezGa3jsAAEfkNiMMxFKX64mgvxhS0s2fPMnPmTIYMGUJgYCDjx4+nQoUKdtbFmKJxlapm7jy2SETWqWp7EdmeTfuCzFeHgchM6xHObV6nqnz88cd0794944/tkio0NJS2bdvStm3bi7bHx8eze/fujIJm69atrFmzho8//jijTeXKlWnVqlXGMmPGDJo2bQo4PuPp06dn3I53+PBhJkyYQIMGDWjXrh2HDx/m1ltvZcKECXTp0uWiEaj8zbfffku5cuUyCsMXX3yRunXrcvfddwMwdOhQWrVqxUMPPQTAY489RocOHRg4cCAAw4cPp2PHjtx2220A/Otf/6J9+/Zcf/31AMycOZNWrVrRunVrVJWlS5fSsGFD6tatS1paGtu2bePyyy8nPDyctLQ0Tp48SWhoKGXLliU+Pp6VK1fSpEkTatWqxaFDh3j++ed59NFH6dSpEz///DPXXHMNX375JT169AAco32md5rv2bMnhw8fJjw8nJ9++olly5axbNkyhg0bRnx8PCJCmzZtePzxx+nSpQvXXnutX86p4ndU1eUFeA1HR8MWzmU88G/gOWBRDvvUzm5x57gFtbRt21aNKUrz589XQL/77jtvh2KKOWC9euF71ZcX4FegVqb1WsCvzse/ZNPe43wF1AG2ZVoPwnHlpy5QGtgMNCvI9+dpTlu4cKECOnHiRI/2L8lOnz6tP/zwg/7nP//RQYMGaYcOHTQkJERxnNjVoKAgbdOmjT766KP64Ycf6t69ezUtLU1VVZOSkjQ+Pl5VVbdv36433HCDrl27VlVVV65cqY0bN9bNmzd77b3lZOPGjbp8+fKM9a5du+qdd96Zsd60aVO9/fbbM9ZbtGihjzzySMb6VVddpSNGjMhYv+KKK3TUqFEZ6xERERc9X6pUqYz11NRUBXT06NGqqpqYmKiAjh8/XlVVz549q4BOmDBBVVVPnDihgE6ePFlVVWNiYhTQd999V1VVDx06pLVr19b//e9/qur495w2bZoeOnTooveckpKi69at09dee0179OihYWFhGf/GLVu21GHDhumCBQv01KlT7n6cxkW55TR3h0reqKptstuW25DJItIKSL8B9QdV3ezyQQuQDZVsCltKSgovvfQStWvX5t577yUtLY2tW7fSqlUrb4dmijkbKvlSInIzMAXYh+MqSl0cA80sBwap6pvZ7ON2vhKROUBnIBw4CoxW1WnO47+JY4Sx6ao6Pr/vKTNPc1qvXr344osv2LJli1911PdVqamp7Nu3j82bN/PLL7+wZs0a1q5dy/nz5wGoVq0aV111Fd26deOmm24iKirqktdYvXo148aN46OPPqJixYp8/vnnrF69mtGjRxf5bUeLFy9m165dPP300wDcdNNNHD9+Hnjp1gAAIABJREFUnA0bNgCOuUlCQkJ47LHHAMfABaGhofnqg5VZYmIiIkLp0qVRVX777TfKly9P5cqVSU1NZe3atURERBAZGUlSUhKLFi2iefPmNGrUiAsXLjB9+nSuvfZaWrVqRXJyMuvWraNBgwZUrVo1x2OmpKSwadMmVq5cyYoVK1ixYgVnzpwBoEmTJnTp0oUuXbpw/fXX5/o6puAU5Dwvm3F84a91rrfHMXZ9q8yTgGXZZxgwCPjMuek24D1VneTm+8g3K15MYUkfelNVue6662jRogVvv/22t8MyJYgVL9kTkTJA+r1RuzRTJ/1s2vpMvnKFpzlt8ODBfPDBB5w7d+6iDuim4KSmprJt2zZ+/vlnfvrpJ1asWMGBAwcAqF+/Pr169WLAgAG0bds229vFRo8ezZw5c9i1axciwoYNG4iKiiqUkc0WLlzI/PnzmTFjBiLC0KFD+fzzz/ntt98QEXbs2EFISAh169Yt8GN7S2xsLL/88gs///wzK1euZNWqVRnFZv369TOKlc6dO9tQ2V5SkMVLe2A6EIbjLNZZ4CFgO9BTVT/JZp8twJWqGudcDwV+Ui/0ebHixRSGOXPmMGrUKDZt2kRYWBgJCQkEBwd7OyxTwljxkj0RaQ40BTL+U6rqrBza+ky+coWnOe36668nNTWVH3/8sRCiMtlRVfbs2cOSJUv4+uuv+fbbb0lKSqJRo0Y8+OCDPPzww1SoUOGifZKSkjKuPjRo0ICoqCiWLl160XPuHB8cI7J9++23vPjiiyxatIjy5cszefJkJk2axM8//0zFihWJi4sjJCTEpcL2xIkTbNu2jd27d3P48GFiYmL4/fffOXPmDOfOnePcuXPEx8dfsl9ISAihoaEZS9myZTOurlSpUiVjCQ8Pv2i9fPnyLvcNSktL49ixY+zbt4/o6Gj27dvH1q1bMzrap2vevDnXXXcd1113Hddeey2XX365ax+qKVQFNkmlOkZgaSEiFZzrZzI9fUnhkn58IDXTeqpzmzF+KzY2loCAACpUqEBUVBQtW7bk7NmzhIWFWeFijI8QkdE4budqimNo/x7Aj2SaTDLrLpSAfLVt27ZLRt0yhUtEaNiwIQ0bNmTo0KHExsYyb948Zs2axbPPPsu4ceN46qmnePbZZwkJCQH+HD5fRPj0009JSkoCHCOkRURE8MYbb3D//fcTFxfHt99+S7t27ahZsyaxsbEsWrSILl26EBkZyQ8//EDfvn358ssvad++PQEBASQkJPDHH39Qvnx5hgwZwqOPPpoRa2hoaI7vY/fu3SxZsoTly5ezevVq/vjjj4veY40aNahRowYVK1akevXqlCtXjrJly15UcKgq8fHxxMXFZSx//PEHu3fv5uTJk5w+fZqcTqwHBAQQFhZGuXLlMoYqLlWqFKpKWloaqampnDt3jlOnThEbG0taWtpF8dWrV48OHTrwyCOP0KZNG9q2bUuVKlU8+Bc13uTuPC+ISE+gGRCc/suoqi/kssv7wBoR+Z9zvQ8wzd3jGuMrTp8+TVRUFEOGDGH8+PF07NiRzz77LO8djTFF7XagFY7O+feLSHXgw1zaF/t8dfr0aU6dOpXt2XBTdCpVqsSgQYMYNGgQGzZs4KWXXmLMmDG8//77vPfee3Tv3v2i9ldc8edd+fHx8dx///3UqVMHgEOHDtGnTx/mzJlD//79iYmJ4d577+Xjjz8mMjKSWrVq0adPn4yi5IYbbmDNmjUZr5fXlYxTp04xffp0Zs+ezaZNmwCoW7cu3bt3p1WrVjRv3pzGjRtz+eWXExTk9p+Vl0hNTSU2NpaTJ09essTGxnL+/HnOnz+fcWUnJSWFgICAjKVhw4ZUrlyZypUrc9lllxEVFUVUVBR16tShTJky+Y7PeJ+7QyVPAcoCXXBMTnk7sDaX9gHAzzg6R17j3Hy/qv7i4vECcQzDfFhVs5uRuB8wBscIEJtV9S5X34sx7jhz5gyrV6+mR48eVKxYkTFjxtClSxdvh2WMyV28qqaJSIqIlAeOcfHwxRnym6/8RWJiIgA333yzlyMx6dq2bcv8+fNZsWIFQ4YM4aabbmLUqFGMGTMm28IiPDycN954I2O9Tp06bNiwgdq1awPQoEEDdu/endGBvnbt2kyd6s70fA6nT59m3LhxTJkyhbi4ODp16sSbb75Jnz59Mo5VGAIDAwkPDyc8PLzQjmH8m7sl8lWq2lJEtqjqWBF5Hfgqp8bOpDHZ2ZF/owfxDcMx1GX5rE+ISANgBHC1qsaKSDUPXt8Yl/zf//0fU6dO5fDhw1SpUoVhw4Z5OyRjTN7Wi0hFHBNSbgDOAz9l17AA8pVfOHzYMdVM/fr1vRyJyer6669n3bp1PProo7zwwgucOHGCSZMm5dn3JDg4mDZt2ly03qBBA4/jUFVmz57NU089xcmTJ7nrrrt49tlnbWQ64zPcHWYkfZSWCyJyOZAM5DUMw3ci8ldxc/YlEYkAeuK4wpOdQcBkVY0FUNVj7ry+MbmJi4vjtddeY/fu3QA899xzrF692u6NNcZPOHPOy6p6WlWnAN2Ae1X1/lx28yhf+ZPo6GgAu23MR5UtW5bp06fzzDPP8PbbbzNy5MgiPX58fDwPPPAA99xzD/Xq1WP9+vV88MEHVrgYn+LulZdFzrNYE3CcmVIcZ7Ry8wjwFJAiIgn8OWPxJVdTsngTeBbIaarShgAisgrHGPpjVPVrl96FMXk4f/48Y8eORUR45plniIiIICIiwtthGWNcpKoqIl/imFAZVT3gwm6e5iu/kX7lJXNHa+NbRIRXX32VM2fO8Morr9CxY0f69OlT6MeNi4ujd+/eLFu2jNGjRzNq1CgCAwML/bjGuMvl4sV5P/B3qnoamC8ii4HgLCOOZbfPTaq6yp2gRKQXcExVN4hI5xyaBQENcIwkEwGsFJEWzvgyv9bDwMNAgU2gZIqnadOmsXbtWt59912qV6/Orl27rGAxxr9tFJH2zpEyc+VpvvI3zZs3B7CJc32ciDBp0iTWrl3LI488wnXXXUflypUL7XgpKSn06dOH5cuXM2vWLO6+++5CO5Yx+eXybWOqmgZMzrSemFvhkmmf/3gQ19VAbxE5AMwFbhCRrCPExAALVTVZVfcDu3EUM1ljeE9V26lqO5sV1WSVnJyc8fj3339nz549JCQ47o60wsUYv9cR+ElE9onIFhHZ6pzL5RL5yFd+Jf2OOHfmCDHeUbp0ad5//32OHz/Oq6++mmvbTZs20b9/f8LDwwkMDCQqKoonn3yS33//3aVjjRw5km+//ZapU6da4WJ8nrt9Xjy5H9jtfVR1hKpGqGodoD/wvapm/d+0AMdVF0QkHMdtZNFuxGVKuK1bt1K/fn1WrFgBwPPPP8/3339v87QYU3z8BagH3ADcAvRy/sxJse/zkn7b2PHjx70ciXFF69atGTBgAJMmTeLo0aPZtnn33Xdp3749S5Ys4dZbb2X48OG0bNmSyZMn07hxYz7//PNcj7Fs2TJee+01Bg8ezAMPPFAYb8OYAuVu8fII8CmQJCJnReSciJwthH2yJSIviEhv5+oS4KSI7ACWAc+o6klPXteUHCkpKRw6dAhwjLZzxRVXZBQrdm+vMcWLqv6GY2jkG5yPL5B73iuwfOWrYmJiACte/Mnzzz9PfHw8s2ZdOrfq/PnzGTx4MN27dyc6Oppp06Yxfvx4FixYwK+//kqTJk3o27dvjgVMSkoKjz32GHXr1r1o+GVjfJnkNItpcdSuXTtdv369t8MwXvSXv/yFEydOsH79+jwn5jLGn4jIBlVt5+04fImIjAbaAY1UtaFzlMxPVfVqL4dWIDzJaV999RU333wzq1at4qqrriqkyExBu/rqqzl16hQ7duzIyF2xsbE0aNCA+vXrs3z58mzvGoiLi6Nz587s2rWLzZs3U7du3Yuenzt3LnfeeSfz5s3jr3/9a5G8F2NckVtOc+vKizjcLSKjnOuRItKhoPcxpqCkpaXx+eefk5qaCsDjjz/OmDFjvBuUMaao3Ab0BuIAVPV3ch7BskTlK7vS7F/uu+8+du7cyZYtf3bZevXVVzl16hRTpkzJ8Xbn0NBQ5s2bR2pqKiNGjLjoOVXl9ddfp0GDBtx2222FGr8xBcnd28beBq4E0meyP0+mTvwFuI8xBeLrr7+mT58+LFiwAICePXtyyy232FUXY0qGJHXcXqAAIhKaR/tin68OHjwIwIkTJ7wciXHHLbc4ump99ZVjXvDU1FRmzJhBnz59aN26da771q5dm3/84x98/PHHbNq0KWP7jh07WL9+PUOHDs1zIkxjfIm7v60dVfVRnJNVOieIzGvIEk/2McYjqsrSpUszipWbbrqJzz//vEjGyDfG+JxPRORdoKKIDAK+Jfe5yYp9vkrv8xIbG+vlSIw7LrvsMpo3b87KlSsBRyf7o0ePMmDAAJf2f/LJJwkJCWHKlCkZ2xYuXAhA3759Cz5gYwqRu8VLsogE8udZrKpAWiHsY4zHXnjhBSZMmABAQEAAvXv3tlskjCmBVPVfwDxgPtAI+KeqTspll2Kfr9q3bw9A06ZNvRyJcVfHjh1Zs2YNqsr8+fMpV64cPXv2dGnfihUr0qdPH+bPn09KSgrgKF7atm1LzZo1CzNsYwqcu8XLROB/QDURGQ/8CLxUCPsY47Jt27bRr18/zp07h4gwZ84cvv/+e2+HZYzxMhF5Ctihqs+o6j9U9Zs8din2+SotzVGL2W1C/qddu3acOnWKQ4cOsXr1aq666iq3hva/9dZbMwasOXv2LGvWrHG5+DHGlwS501hVZ4vIBuBGQIA+qvprQe9jjCtUFRHhwoULLFu2jG3btnHllVcSGRnp7dCMMb6hHLBURE4BH+MYaSz7yTIoGflq//79AJw6dcrLkRh3NWrUCHBMSLlt2za3b4fu3LkzAD/++CMJCQmoKldeeWVBh2lMoXOreBGRicBcVXWrA6Oq7gR2urOPMTlJTU3lnnvuoW7duowfP54OHTpw8OBBQkJCvB2aMcaHqOpYYKyItATuAFaISIyqds1ln2Kdr9JnXD97tlhNX1MiNGzYEHB02k9LS6NZs2Zu7V+9enWioqJYs2ZNxqA1bdu2LfA4jSls7l433gD8n4jsE5F/iYjNKWCKzJkzZwDHEJ+hoaGULVs24zkrXIwxuTgG/AGcBKp5ORav6tDBMfJz+h/Cxn9cfvnlBAcH8803jrsf69Wr5/ZrNGvWjJ07d7Jnzx6qVKlC1apVCzpMYwqdW8WLqs5U1ZuB9sAu4FUR2VMokRmTyUcffURERASHDh0CYOrUqYwcOdLLURljfJmIDBGR5cB3QBVgkKq29G5U3pXe58WGi/c/IkK1atXYt28fAFFRUW6/RuPGjdm9ezd79+69ZMJKY/yFpz326gONgdq4cHldRGqLSFfn4xARyXGSMGPSHTt2LOMWh2uuuYaBAwdSunSxGrXUGFO4IoEnVLWZqo5R1R157eDNfCUioSKyXkR6FdYx0v/wPX36dGEdwhSiKlWqAI7JJytVquT2/g0bNiQpKYkffvjBihfjt9wqXkTkNeeVlheAbUA7Vb0lj30G4Riq8l3npghggQexmhIkMTGRFi1a8OyzzwJQq1YtJk+eTPXq1b0cmTHGX6jqCFXdJCLVRKRW+pJTe0/zlYhMF5FjIrIty/abRGSXiOwVkeEuhPwc8IkL7Tx25MgRAC5cuFCYhzGFJDw8HIAKFSp4tH96Dk1KSqJ27doFFpcxRcndKy/7gCtV9SZVfV9VXTl18yhwNXAWQFX3UMLvOTbZO336NLNnzwagTJkyvPXWW4waNcrLURlj/JWI3OI84bYfWAEcAL7KZRdP89UM4KYsxw4EJgM9gKbAnSLSVERaiMjiLEs1EekG7MDRP6fQdOzYEYA6deoU5mFMIUm/8lK+fHmP9k8vfrI+NsafuDtU8rsiUklEOgDBmbavzGW3RFVNSr+/VkSCcE4AZkxm77zzDiNHjqRTp07Uq1eP/v37ezskY4x/Gwd0Ar5V1StEpAtwdy7tPcpXqrpSROpk2dwB2Kuq0c7XmgvcqqovA5fcFiYinYFQHIVOvIh8qaqXTJApIg8DD4PjirS7rM+Lf0svODwtXjJ30PfktjNjfIG7t409BKwElgBjnT/H5LHbChF5Hghxnln6FFjkfqimuElISOC1117jxx9/BODRRx9l48aNHo2gYowx2UhW1ZNAgIgEqOoyILdRMgsyX9UEDmVaj3Fuy5aqjlTVJ4CPgKnZFS7Odu+pajtVbefJSFG7d+8GbKhkf5VevHg6wmbm35nKlSsXSEzGFDV3bxsbhmOksd9UtQtwBZDXrWPDgePAVuAR4EtVtWGiDKrKW2+9xRdffAE4ziS1bt3ay1EZY4qR0yIShuOk22wReQuIy6W91/OVqs5Q1cWF9frHjjnuSktMTCysQ5hCdPnllwMQF5fbr3HOMl+xsSsvxl+5W7wkqGoCgIiUcU7m1SiPfYaq6lRV/Zuq3q6qU0VkmEfRGr83Z84cbrnlFlSVkJAQNm/ezMsvv+ztsIwxxdOtwAXgSeBrHP02cxtkpiDz1WEco52li3Bu86r0Pi/pfwQb/xIREQF4fuUs8+2CduXF+Ct3i5cYEamIY/SVb0Tkc+C3PPa5N5tt97l5XOPHkpOTSU1NBRwjnJw+fZqTJ08C1mHQGFN4VDVOVdNUNQU4qaoTnbeR5aQg89U6oIGI1BWR0kB/YKGHr1Vg0vu8BAR4OlOC8ab8Fi+Z2ZUX46/cnaTyNlU9rapjgFHANKBPdm1F5E4RWQTUFZGFmZZlwKn8Bm78w6FDh2jUqBEfffQRAPfccw8rV660osUYU9ReyOmJ/OYrEZkD/AQ0EpEYEXnQWTA9hqNv6K/AJ6q6vWDeiud27nRMzXb+/HkvR2I8UbOmo9tUcnKyx68xevRo4OL+L8b4E7dGG8uikaq+l8vzq4EjQDjweqbt54At+Tiu8XGpqans37+f+vXrU7NmTa699tqMs0V2ts8Y4yW5Da+Vr3ylqnfmsP1L4Es3Yix06Ve98/PHr/GeSpUq8Y9//IM77rjD49cYPXo0zz33nMed/o3xtvwUL4OBHIsXVf0Nxy1lV+bjGMYPPfTQQyxdupS9e/cSEhLCzJkzvR2SMcY8ktMTJSlfdejQgZkzZ1Ktmk235o9EhAkTJuT7NaxwMf4sP6fBXRokXkTOichZ55IgIqkiYmM0FiOpqal88sknGffgPvzww/z73/+mTJkyXo7MGFOSiUhZERklIlNVda2INBCRS+ZYydS+2Ocr6/NijPF3+fn2ym3ElgyqWk5Vy6tqeSAE+Cvwdj6Oa3zMli1buOOOO/jggw8AuPLKK+nXr58lR2OMt70PJPLnFZXDOCauzFZJyFc7duwAID4+3suRGGOMZ9ydpLK6iEwTka9UNUZEmorIg67urw4LgL+4HanxKXPmzGHixIkAXHHFFSxbtozBgwd7OSpjjLlIPVV9DUgGUNULuHjXQHHNV7GxscCfV2CMMcbfuNvnZQaOM1npk3btBj7GMepYtkSkb6bVAByzGye4eVzjA1Q1Y4z4RYsW8dtvvzF06FBEhM6dO3s3OGOMuVSSiIQACiAi9XBciclWSchXHTp0YO7cuVSsWNHboRhjjEfcLV7CVfUTERkBoKopIpKaxz6Zby9LAQ7gmDjM+JHVq1czaNAgvv76ayIjI5kyZQphYWEXTXhljDE+ZjSOySkjRWQ2cDW5z9tS7POV9Xkxxvg7d4uXOBGpwp9nsToBZ3LbQVXv9zA242VJSUmcO3eOKlWqEBERQYUKFTh58iSRkZGUL1/e2+EZY0yuVPUbEdkIdMJxu9gwVT2RS/tin6+2bdsGOL7fjTHGH7lbvDyFY4bgeiKyCqgK3J5dQxGZhLPIyY6qPu7msU0RSk1NpU2bNrRu3ZoPP/yQWrVqsXr1am+HZYwxLhOR24DvVfUL53pFEenj7MuSuV2JyVfnzp3zdgjGGJMvbhUvqrpRRK4HGuE4i7VLVXOa6Wp9foMzRSsxMZGlS5dyyy23EBgYyNChQ6ldu7a3wzLGGE+NVtX/pa+o6mkRGQ0syNKuxOSrdu3aMX/+fEJDQ70dijHGeMSt4kVEAoGbgTrOfbuLCKr6Rta2qjozy75hzu3n3TzeeuCwqmY7Nr+I/BWYB7RX1RKTgArD5MmTefrpp9m2bRvNmjXjkUdynNPNGGP8QXYdOy7JewWRr/yF9Xkxxvg7d7+9FuHo7FgFKJdpyZGINBeRX4DtwA4R2SAizVw83jDg11xeu5yzzRoXX89kkpyczJQpU1i1ahUADz30EN988w1Nmzb1cmTGGFMg1ovIGyJSz7m8AWzIqXE+85Vf2LJlC+AYPdIYY/yRu31eIlS1pZv7vAc8parLAESkMzAVuCq3nUQkAugJjMfR1yY7LwKvAs+4GZMBUlJSePHFF/nrX//K1VdfTfny5enatau3wzLGmIIyFBiFY0h/gG+AR3Np71G+8icXLlwAsJEijTF+y90rL1+JSHc39wlNTwQAqroccOVm2zeBZ4FsZ9ISkTZAZHpHTOOaL774gjvuuANVJSQkhLVr1/LWW295OyxjjClwqhqnqsNVtZ1zGaGqcbns4mm+8htt27YFoFSpUl6OxBhjPOPulZefgf+JSACOGYsFx0TEuY2bGy0io4APnOt3A9G5HUREegHHVHWD88xX1ucDgDfIfbz+9LYPAw8D1KpVK6/mxZKqoqoEBARw8uRJduzYwR9//EGNGjWoWbOmt8MzxphCISJVcZwEawYEp29X1Rty2MXtfOVv0vu82JUXY4y/cvfKyxvAlUBZVS2vquXyKFwAHsAxpPJnziXcuS03VwO9ReQAMBe4QUQ+zPR8OaA5sNzZphOwUETaZX0hVX0v/axb1apV83yDxc2xY8fo0KEDs2fPBmDAgAFs3ryZGjVqeDkyY4wpdLOBnUBdYCyOSSfX5dLek3zlVzZv3uztEIwxJl/cvfJyCNimbvT0U9VY4HHIGD0sVFXP5rHPCGCEc5/OwD9U9e5Mz5/BkVRwtlnubGOjjTkdP36cqlWrEh4eTmRkZMawmIGBgV6OzBhjikwVVZ0mIsNUdQWwQkRyLF48yVf+JiEhwdshGGNMvrh75SUax9WOESLyVPqS2w4i8pGIlBeRUGArjhFcPOpgLyIviEhvT/YtSZ599llat25NfHw8AQEBfPbZZ/Tt29fbYRljTFFLn4fsiIj0FJErgMo5NS7IfOWr2rRpY/1djDF+zd0rL/udS2nn4oqmqnpWRAYAXwHDcQxVOcGVnZ0dJpc7H/8zhzadXYyl2Nq0aRP16tWjXLly9O7dm8suu8zuaTbGlHTjRKQC8DQwCSgPPJlL+3zlK3+QlpZmc7wYY/yaW8WLqo714BilRKQU0Af4j6omi4gNMF+A9u3bR5s2bXjppZcYPnw411xzDddcc423wzLGGK9S1cXOh2eALi7sUuzz1aZNm0hOTs67oTHG+CiXTr+IyH+cPxeJyMKsSx67v4ujk2QosFJEagPF6h5ib4iOjubTTz8FoF69esyaNYvBgwd7OSpjjPEdIhLlzFsnROSYiHwuIlG57FLs85UVLsYYfyeu9L0XkbOqWl5Ers/ueWdHSNcPKhKkqinu7FMQ2rVrp+vXF48+/QMGDGDp0qUcOnSI4ODgvHcwxhRrIrJBVS8ZcbEkE5GfgcnAHOem/sBQVe3oxmsUSb5yTgHwIo5b29ar6sy89vEkpz399NO89957nDt3zrNAjTGmCOSW01y98XUfOIqU7JY8Dl5FRCaKyEYR2SAibwEV3HsLJjU1lalTp3L48GEAXnvtNTZt2mSFizHG5Kysqn6gqinO5UMyzfeSlaf5SkSmO6/sbMuy/SYR2SUie0VkeB4vcysQgWOQgZi835pnrM+LMcbfudrnpWpuo4qp6hu57DsXWAn81bk+APgY6OrisQ0QExPD0KFDOXbsGCNHjrTJJY0xJm9fOYuGuYACdwBfikhlAFU9laW9p/lqBvAfYFb6BudQy5OBbjiKkXXO26wDgZez7P8A0AhYrarvisg84DvX36brfvnlFy5cuFAYL22MMUXC1eIlEAgDPBm+qoaqvphpfZyI3OHB65Q4e/bsYcmSJTz22GPUrl2bDRs20LRpU2+HZYwx/qKf8+fDzp/pOaw/jmIma/8Xj/KVqq4UkTpZNncA9qpqNICIzAVuVdWXgV5ZX0NEYoAk52pqXsf0lKraSJTGGL/mavFyRFVf8PAYS0WkP/CJc/12YImHr1WiTJ8+nbfffpv+/fsTHh5Os2bNvB2SMcb4PBFpDxxS1brO9XtxXE05AIzJ5opLuoLMVzVxTOycLgbIra/NZ8AkEbkWx9WfbInIwziLsVq1arkdVIsWLdi+fbvb+xljjK9wtXhx+zSNiJzDcWZLgCeAD51PBQDngX+4+5rFXUpKClOnTqVjx460adOG559/nmHDhhEeHl5kMagqqamppKSk5LgkJyfn+nxKSgqpqal5Lq60S0tLy/iZvuS2nlfbtLQ0VDXbx7k9l91jVb1kyWl7bm3SP/fcfrraJqvMZ1iznm3Naz0gIAARQUTy/TggIIDAwEACAwPdepx1W1BQEEFBQZQqVYpSpUp5/DgoKIgyZcoQHByc8TPrEhgY6OL/GuOD3sV5q5eIXIfjNq2hQGvgPRxFSQZfyFeqegF40IV27+F4D7Rr187tYZytz4sxxt+5Wrzc6O4Lq2o5d/cpKVSV5ORkEhISLlqOHz/OyJEj6dq1Kw899BDx8fGXtMm8JCYmkpSURHJyMklJSRc9zm5bbs+nFySpqYV2t0K+pP8BnPkP4ZzWs3tORDJ+pm/P/DjretbH6a+Z3R/nuW1ztQ2Q509X26TLrvBxZz1roeXp46yFZHJy8kWFqSuP039mLaALc9jXoKBCdVwFAAAOmUlEQVSgjEImpwInfSlbtixhYWEZS7ly5fJcDw0NJSjI3XmCjYsCM11duQN4T1XnA/NFZFPWxoWUrw4DkZnWI5zbvGrjxo2cOXPG22EYY4zHXMqcuVxid4mIVAIakGmUF1XN8bK4L0lISODMmTOcP3+euLg4zp8/f9Hi7ra4uDgSEhJyPVv+6aefZszhkpPSpUtftJQqVSrHx2FhYdk+n/Vn+lltV5f0M9iZl8DAwIyfuS2utElfMv+Bb0xmma8UZi7CXXmcmJhIYmJiticFcjtpkLnN6dOniY+PJz4+nnPnznH+/HkSEhJcjj84OPiS4qZXr148//zzhfiplQiBmYY4vpE/+7xAHnmvAPPVOqCBiNTFUbT0B+7y4HUKVPpJGWOM8VeFftpPRB4ChuE467QJ6AT8BNxQ2McuCOPGjWP8+PEutQ0LCyM0NPSiM6wVK1YkIiIiY3vZsmUJCQnJOGO7bt06FixYwPjx46lTp85FZ3Mzt8u8lClTxpKPMTiuOKUXzr4ybHhKSgpxcXEZxUzmxZVt9n+7QMwBVojICSAe+AFAROoDOV528DRficgcoDMQ7ux4P1pVp4nIYzj6zAQC01XV651NmjVrxm+//ebtMIwxxmNFcc/CMKA98LOqdhGRxsBLRXDcAtGrVy8uv/zyiwqSrAVKWFgYISEhLv3RkZKSwpQpU6hbty49e/YkJSWFU6dOUa1atSJ4N8aYwhYUFESFChWoUMGms/IWVR0vIt8BNYCl+uel7gAcfV9y4lG+UtU7c9j+JfClW8EXMuvzYozxd0VRvCSoaoLz1p8yqrpTRBoVwXELRKdOnejUqVOBvua7775Lx44d6dmzJ0FBQVa4GGNMAVPVn7PZtjuP3fw6X7li48aNnDhxwtthGGOMx4qieIkRkYrAAuAbEYkFStQ16zNnzvD6668zcuRIypQpw/Lly6lcubK3wzLGGHOxYp+vSpUqZSPpGWP8WqEXL6p6m/PhGBFZBlQAvi7s4/qSn376iZdeeolrrrmG7t27U6VKFW+HZIwxJouSkK8aN25sV16MMX6tSMfpVNUVRXk8bzp58iS//PILXbt25aabbmLPnj3UrVvX22EZY4xxQXHNV9bnxRjj7+wbrJAMHTqUfv36cf78eQArXIwxxnjdxo0bOXLkiLfDMMYYj1nxUoCOHj1KbGwsAC+//DLLly8nLCzMy1EZY4wxDsHBwZQuXdrbYRhjjMdseucCcv78eVq3bs3NN9/MtGnTqF27trdDMsYYYy7SoEED4uPjvR2GMcZ4zIqXfIqLi8uY92X8+PFceeWV3g7JGGOMyVZaWhoi4u0wjDHGY3bbWD6sXLmS2rVrs379egAeeOABmjRp4uWojDHGmOxt3LiRQ4cOeTsMY4zxmBUvHkifrLlly5bceOONVKpUycsRGWOMMXkLDQ0lODjY22EYY4zHrHhx0/Tp0+nTpw+qSsWKFfn444+pV6+et8Myxhhj8hQVFUXNmjW9HYYxxnjMihc3paSkEB8fz9mzZ70dijHGGOMW6/NijPF3VrzkITU1lTfeeIPFixcDMGjQIJYsWUKFChW8HJkxxhjjnk2bNhEdHe3tMIwxxmNWvOQhNTWVGTNmsHDhQgBExM5aGWOM8UthYWGEhoZ6OwxjjPGYDZWch9KlS7N8+XLrlG+MMcbvTZw4kYSEBG+HYYwxHrPixQWVK1f2dgjGGGNMvnXt2tXbIRhjTL7YbWPGGGOMMcYYv2DFizHGGGOMMcYvWPFijDHGGGOM8QuSPlt8SSAix4HfsmwOB054IRxPWbyFy+ItfP4Ws7/EW1tVq3o7CFN0cshprvCX3+ns+HPs4N/xW+ze4c+xg+fx55jTSlTxkh0RWa+q7bwdh6ss3sJl8RY+f4vZ3+I1Ji/+/Dvtz7GDf8dvsXuHP8cOhRO/3TZmjDHGGGOM8QtWvBhjjDHGGGP8ghUv8J63A3CTxVu4LN7C528x+1u8xuTFn3+n/Tl28O/4LXbv8OfYoRDiL/F9XowxxhhjjDH+wa68GGOMMcYYY/xCiS1eROQmEdklIntFZLi348lKRCJFZJmI7BCR7SIyzLm9soh8IyJ7nD8reTvWzEQkUER+EZHFzvW6IrLG+Tl/LCKlvR1jZiJSUUTmichOEflVRK705c9YRJ50/j5sE5E5IhLsS5+xiEwXkWMisi3Ttmw/T3GY6Ix7i4i08ZF4Jzh/H7aIyP9EpGKm50Y4490lIn8p6niNya/ilvt84XskK1fzoIiUca7vdT5fx8txu5wPfe1zdyc3+sLnXlC5UkTudbbfIyL3ejF2t/Nmfr6LSmTxIiKBwGSgB9AUuFNEmno3qkukAE+ralOgE/CoM8bhwHeq2gD4zrnuS4YBv2ZafxX4t6rWB2KBB70SVc7eAr5W1cZAKxyx++RnLCI1gceBdqraHAgE+uNbn/EM4KYs23L6PHsADZzLw8A7RRRjZjO4NN5vgOaq2hLYDYwAcP7/6w80c+7ztvO7xBi/UExzny98j2Tlah58EIh1bv+3s503uZMPfeZz9yA3+sLnPoN85koRqQyMBjoCHYDRUjQnW2eQz7yZ3++iElm84PhH3quq0aqaBMwFbvVyTBdR1SOqutH5+ByOL5GaOOKc6Ww2E+jjnQgvJSIRQE/gv851AW4A5jmb+Fq8FYDrgGkAqpqkqqfx4c8YCAJCRCQIKAscwYc+Y1VdCZzKsjmnz/NWYJY6/AxUFJEaRROpQ3bxqupSVU1xrv4MRDgf3wrMVdVEVd0P7MXxXWKMvyiOuc/r3yOZuZkHM7+necCNzvZFzoN86FOfO+7lRq9/7gWUK/8CfKOqp1Q1FkcBkbWoKJLYPcib+fouKqnFS03gUKb1GOc2n+S8pHkFsAaorqpHnE/9AVT3UljZeRN4FkhzrlcBTmf6hfa1z7kucBx433mJ/78iEoqPfsaqehj4F3AQxxfzGWADvv0ZQ86fpz/8P3wA+Mr52B/iNSY3fvU77GLu87X35E4ezIjd+fwZZ3tvcDcf+szn7kFu9KXPPTN3P2uf+TfIwpW8ma/YS2rx4jdEJAyYDzyhqmczP6eOoeJ8Yrg4EekFHFPVDd6OxQ1BQBvgHVW9Aogjyy1iPvYZV8JxZqIucDkQShGcZSlIvvR55kVERuK4hWW2t2MxpqTxl9yXmZ/mwXR+lQ8zKw65MStf/azzUlR5s6QWL4eByEzrEc5tPkVESuH48p6tqp85Nx9NvzTr/HnMW/FlcTXQW0QO4Lj8dwOO+2crOi/jgu99zjHw/+3dT4hd5RnH8e8PtGqLiOKqRJgGxVIqDUUkSASpVlRCSyG1xYBNsSvBXTcaUAQ3LnStC7GligttqUMsLVTd6KLaRXTUpjoxhRYRbMWI+C+ap4vzRm+nmUzuv9xznO8HDsy95/De5z5z5zzznPecc/lXVf2lPX6cbufd1xxfDRyqqrer6gjwO7q89znHsH4+e/t3mGQPsBPYXV/cT7638UonaRCf4TFrX5/e07h18PPY2/pzgP+cyoBHjFsP+5T3cWtjn/I+atxc9+l3MG7dnCr2zdq8vABc1O5E8RW6i4mWFxzT/2jnXz4I/K2q7htZtQwcu6PEz4AnTnVsx1NVt1XVlqpaosvn01W1G3gG2NU26028AFX1FvDPJBe3p64CXqWnOaabEt+e5Kvt83Es3t7muFkvn8vATe1OKtuBwyNT5guT5Fq60z5+UFUfjKxaBn6a7k4136C7ePL5RcQoTejLWPt6sx+ZoA6OvqddbfuFHG2foB72Ju+MXxt7k/c1xs31n4BrkpzbZp+uac+dchPUzen2RVW1KRfgero7IhwE9i46nuPEt4NuyvAlYH9brqc7L/Mp4HXgz8B5i471OLFfCexrP29tH9RV4DHgjEXHtybWbcBfW55/D5zb5xwDdwEHgJeB3wBn9CnHwKN05xwfoTuSd/N6+QRCd7eRg8AK3Z1i+hDvKt25uMf+7u4f2X5vi/fvwHWL/jy4uIy7fNlqXx/2I+u8jw3rIHBme7za1m9dcMwnXQ/7lvdxamMf8j6rWkl3fclqW36+wNjHrpvT7IvSBpAkSZKkXtusp41JkiRJGhibF0mSJEmDYPMiSZIkaRBsXiRJkiQNgs2LJEmSpEGweZEkSZI0CDYvkiRJkgbB5kXaQJJvJdmT5IIkZy86HkmS5sF6pyGweZE2djpwK/Aj4P21K5MsJfkwyf5Zv3CSs5LsT/JJkvNnPb4kaXNKsiXJT9Y8PXW9s25p3mxepI1dADwErALrHYk6WFXbZv3CVfVhG/fNWY8tSdrUrgK+u+a5qeuddUvzZvMiNUmebkeL9if5KMkNAFW1D3i8qv5QVe+dxDhLSQ4k+VWS15I8kuTqJM8leT3JZeNsJ0nSLCXZAdwH7Go1bytMVO++luTJJC8mefk4MznSzNm8SE1Vfa8dLXoAWAZ+O7LurTGHuxC4F/hmW24EdgC/BG6fYDtJkmaiqp4FXgB+WFXbquqNkXXj1LtrgTer6jtV9W3gjzMOVfo/Ni/SiCQ3AdcBu6vqsymGOlRVK1V1FHgFeKqqClgBlibYTpKkWboYODDlGCvA95Pck+SKqjo8g7ikE7J5kZokPwZ2AzdU1ZEph/t45OejI4+PAqdNsJ0kSTPRLqQ/XFWfTjNOVb1Gd93MCnB3kjtmEZ90Iv5zJAFJdgK3ADur6qNFxyNJ0hwtMYML6pN8HXinqh5O8i7wi2nHlDbizIvU+TWwBXiuXbx486IDkiRpTg4A57eL7C+fYpxLgOfbrZPvBO6eSXTSCaQ7vV7SpJIsAfvaxYrzeo1/AJdW1b/n9RqSJJ3IOPXOuqV5ceZFmt5nwDnz/JJKui8OOzrr8SVJGsOG9c66pXlz5kWSJEnSIDjzIkmSJGkQbF4kSZIkDYLNiyRJkqRBsHmRJEmSNAg2L5IkSZIGweZFkiRJ0iDYvEiSJEkaBJsXSZIkSYNg8yJJkiRpEP4LKRfhd9qasb4AAAAASUVORK5CYII=\n", + "image/png": "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atWqPm/ePHcP/nfNzBcuXOju7i+88IIDvmzZMnd3f+aZZxzwNWvWuLv7yJEjHfCNGze6u/uIESMciPyvDx8+3AHfu3evu7s/8MADDviBAwfc3X3o0KGekpISObe33367p6enR8o333yz16lTJ1K+7rrrvGHDhpHyVVdd5U2aNImUr7jiCm/RokWk3KdPH2/VqlWkfNFFF3m7du0i5Z49e3rHjh0j5bPPPttPO+20SPm0007zs88+O1Lu2LGj9+jRI1Ju166dX3TRRZFyq1atvE+fPpFyixYtvH///pFy48aN/aqrroqUGzZs6L///e8j5Tp16vjNN98cKaenp/vtt98eKaekpPjQoUPdPfjMB/yBBx5wd/e9e/c64MOHD3d39+3btzvgI0aMcHf3jRs3OuAjR450d/c1a9Y44M8884y7uy9fvtwBf+GFF9zdfeHChQ74q6++6u7uc+fOdcDffvttd3efOXOm16hRwydMmODuwd9e/fr1/ZNPPnF3988++8ybNGniX331lbu7f/LJJ96yZcvI39qUKVO8Xbt2vnjxYnd3nzRpkp9yyim+cuVKd3efOHGin3XWWb5u3Tp3D/52e/bsGckzb775pnft2tV37Njh7kFOrF+/vu/bt8/dg781M4v87U2bNs3feOONmHPlxIkT3cy8d+/enpWV5e7BZ0NOTk5Mr1dUTov7B/6hXFR5Eak4vvnmG+/UqVOkAjBt2jTv1KmTL1q0KM6RFe/AgQM+Z86cyAf8o48+6mamyksSLwVUXroAH+Up3wXcVZbHPBQ5LRQK+ejRo/29996LrKtbt67fdNNNkXKtWrX81ltvjZTT0tIiXyBDoZA3bdrUH3vsMXd3z8zM9A4dOvjo0aPdPfhCec455/gbb7zh7u47d+70Pn36+Icffuju7lu3bvWrr77ap02b5u7umzZt8muuuca/+OILdw8qN9dee23kc2Dt2rV+3XXX+dy5c93dfdWqVX799df7/Pnz3T34AnrjjTf6kiVL3D2o/Nx6662+YsUKd3dfvHix33777b569Wp3D76g3nXXXb5+/Xp3DypH99xzj//444/uHnwO3X///b5161Z3D77APvjgg5EvjHPmzPG//e1vvmfPHnd3nzVrlv/jH//wjIwMdw++4D722GORz4Kvv/7aH3/88cgXvhkzZvioUaMi53bGjBn+3HPP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\n", "text/plain": [ "<Figure size 936x504 with 5 Axes>" ] @@ -742,7 +744,7 @@ } ], "source": [ - "T_ref = param.evaluate(pybamm.standard_parameters_lithium_ion.T_ref)\n", + "T_ref = param.evaluate(dfn.param.T_ref)\n", "var = \"X-averaged cell temperature [K]\"\n", "comsol_var = comsol_solution[var]\n", "\n", @@ -811,7 +813,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.7" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/models/thermal-models.ipynb b/examples/notebooks/models/thermal-models.ipynb new file mode 100644 index 0000000000..6d6b72c4ac --- /dev/null +++ b/examples/notebooks/models/thermal-models.ipynb @@ -0,0 +1,480 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Thermal models\n", + "\n", + "There are a number of thermal submodels available in PyBaMM. In this notebook we give details of each of the models, and highlight any relevant parameters. At present PyBaMM includes a lumped thermal model, a 1D thermal model which accounts for the through-cell variation in temperature, and a 2D pouch cell model which assumed the temperature is uniform through the thickness of the pouch, but accounts for variations in temperature in the remaining two dimensions. Here we give the governing equations for each model. \n", + "\n", + "A more comprehensive review of the pouch cell models can be found in [[1]](#ref), [[2]](#ref2).\n", + "\n", + "### References\n", + "<a name=\"ref\">[1]</a> R Timms, SG Marquis, V Sulzer, CP Please and SJ Chapman. Asymptotic\n", + " Reduction of a Lithium-ion Pouch Cell Model, submitted to SIAM Journal on Applied Mathematics, 2020. Preprint: arXiv:2005.05127\n", + "\n", + "<a name=\"ref2\">[2]</a> SG Marquis, R Timms, V Sulzer, CP Please and SJ Chapman. A Suite of Reduced-Order Models of a Single-Layer Lithium-ion Pouch Cell, submitted to Journal of the Electrochemical Society, 2020. Preprint: arXiv:2008.03691" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install pybamm -q # install PyBaMM if it is not installed\n", + "import pybamm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Lumped models\n", + "\n", + "The lumped thermal model solves the following ordinary differential equation for the average temperature, given here in dimensional terms,\n", + "\n", + "$$\\rho_{eff} \\frac{\\partial T}{\\partial t} = \\bar{Q} - \\frac{hA}{V}(T-T_{\\infty}),$$\n", + "\n", + "where $\\rho_{eff}$ is effective volumetric heat capacity, $T$ is the temperature, $t$ is time, $\\bar{Q}$ is the averaged heat source term, $h$ is the heat transfer coefficient, $A$ is the surface area (available for cooling), $V$ is the cell volume, and $T_{\\infty}$ is the ambient temperature. An initial temperature $T_0$ must be prescribed.\n", + "\n", + "\n", + "The effective volumetric heat capacity is computed as \n", + "\n", + "$$ \\rho_{eff} = \\frac{\\sum_k \\rho_k c_{p,k} L_k}{\\sum_k L_k},$$\n", + "\n", + "where $\\rho_k$ is the density, $c_{p,k}$ is the specific heat, and $L_k$ is the thickness of each component. The subscript $k \\in \\{cn, n, s, p, cp\\}$ is used to refer to the components negative current collector, negative electrode, separator, positive electrode, and positive current collector.\n", + "\n", + "The heat source term accounts for Ohmic heating $Q_{Ohm,k}$ due to resistance in the solid and electrolyte, irreverisble heating due to electrochemical reactions $Q_{rxn,k}$, and reversible heating due to entropic changes in the the electrode $Q_{rev,k}$:\n", + "\n", + "$$ Q = Q_{Ohm,k}+Q_{rxn,k}+Q_{rev,k}, $$\n", + "\n", + "with \n", + "$$ Q_{Ohm,k} = -i_k \\nabla \\phi_k, \\quad Q_{rxn,k} = a_k j_k \\eta_k, \\quad Q_{rev,k} = a_k j_k T_k \\frac{\\partial U}{\\partial T} \\bigg|_{T=T_{\\infty}}.$$\n", + "Here $i_k$ is the current, $\\phi_k$ the potential, $a_k$ the surface area per unit volume, $j_k$ the interfacial current density, $\\eta_k$ the overpotential, and $U$ the open circuit potential. The averaged heat source term $\\bar{Q}$ is computed by taking the volume-average of $Q$." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are two lumped thermal options in PyBaMM: \"lumped\" and \"x-lumped\". Both models solve the same equation, but the term corresponding to heat loss is computed differently." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### \"x-lumped\" option\n", + "The \"x-lumped\" model assumes a pouch cell geometry in order to compute the overall heat transfer coefficient $h$, surface area $A$, and volume $V$. This model allows the user to select a different heat transfer coefficient on different surfaces of the cell. PyBaMM then automatically computes the overall heat transfer coefficient (see [[1]](#ref), [[2]](#ref2) for details). The parameters used to set the heat transfer coefficients are:\n", + "\n", + "\"Negative current collector surface heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Positive current collector surface heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Negative tab heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Positive tab heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Edge heat transfer coefficient [W.m-2.K-1]\" \n", + "\n", + "and correspond to heat transfer at the large surface of the pouch on the side of the negative current collector, heat transfer at the large surface of the pouch on the side of the positive current collector, heat transfer at the negative tab, heat transfer at the positive tab, and heat transfer at the remaining surfaces.\n", + "\n", + "The \"x-lumped\" option can be selected as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "options = {\"thermal\": \"x-lumped\"}\n", + "model = pybamm.lithium_ion.DFN(options)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### \"lumped\" option\n", + "The behaviour of the \"lumped\" option changes depending on the \"cell geometry\" option. By default the \"lumped\" option sets the \"cell geometry\" option \"arbitrary\". This option allows a 1D electrochmical model to be solved, coupled to a lumped thermal model that can be used to model any aribitrary geometry. The user may specify the total heat transfer coefficient $h$, surface area for cooling $A$, and cell volume $V$. The relevant parameters are: \n", + "\n", + "\"Total heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Cell cooling surface area [m2]\" \n", + "\"Cell volume [m3]\"\n", + "\n", + "which correspond directly to the parameters $h$, $A$ and $V$ in the governing equation.\n", + "\n", + "However, if the \"cell geometry\" is set to \"pouch\" the heat transfer coefficient, cell cooling surface are and cell volume are automatically computed to correspond to a pouch. In this instance the \"lumped\" is equivalent to the \"x-lumped\" option.\n", + "\n", + "The lumped thermal option with an arbitrary geometry can be selected as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# lumped with no geometry option defaults to an arbitrary geometry\n", + "options = {\"thermal\": \"lumped\"}\n", + "model = pybamm.lithium_ion.DFN(options)\n", + "\n", + "# OR \n", + "\n", + "# lumped with arbitrary geometry specified \n", + "options = {\"cell geometry\": \"arbitrary\", \"thermal\": \"lumped\"}\n", + "model = pybamm.lithium_ion.DFN(options)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The lumped thermal option with a pouch cell geometry can be selected as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# lumped with pouch cell geometry (equivalent to choosing \"x-lumped\" thermal option)\n", + "options = {\"cell geometry\": \"pouch\", \"thermal\": \"lumped\"}\n", + "model = pybamm.lithium_ion.DFN(options)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1D (through-cell) model\n", + "\n", + "The 1D model solves for $T(x,t)$, capturing variations through the thickness of the cell, but ignoring variations in the other dimensions. The temperature is found as the solution of a partial differential equation, given here in dimensional terms\n", + "\n", + "$$\\rho_k c_{p,k} \\frac{\\partial T}{\\partial t} = \\lambda \\nabla^2 T + Q(x,t)$$\n", + "\n", + "with boundary conditions \n", + "\n", + "$$ -\\lambda_{cn} \\frac{\\partial T}{\\partial x}\\bigg|_{x=0} = h_{cn}(T_{\\infty} - T) \\quad -\\lambda_{cp} \\frac{\\partial T}{\\partial x}\\bigg|_{x=1} = h_{cp}(T-T_{\\infty}),$$\n", + "\n", + "and initial condition\n", + "\n", + "$$ \\frac{\\partial T}{\\partial t}\\bigg|_{t=0} = T_0.$$\n", + "\n", + "Here $\\lambda_k$ is the thermal conductivity of component $k$, and the heat transfer coefficients $h_{cn}$ and $h_{cp}$ correspond to heat transfer at the large surface of the pouch on the side of the negative current collector, heat transfer at the large surface of the pouch on the side of the positive current collector, respectively. The heat source term $Q$ is as described in the section on lumped models. Note: the 1D model neglects any cooling from the tabs or edges of the cell -- it assumes a pouch cell geometry and _only_ accounts for cooling from the two large surfaces of the pouch. \n", + "\n", + "The 1D model is termed \"x-full\" (since it fully accounts for variation in the x direction) and can be selected as follows" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "options = {\"thermal\": \"x-full\"}\n", + "model = pybamm.lithium_ion.DFN(options)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pouch cell models\n", + "\n", + "The pouch cell thermal models ignore any variation in temperature through the thickness of the cell (x direction), and solve for $T(y,z,t)$. The temperature is found as the solution of a partial differential equation, given here in dimensional terms,\n", + "\n", + "$$\\rho_{eff} \\frac{\\partial T}{\\partial t} = \\lambda_{eff} \\nabla_\\perp^2T + \\bar{Q} - \\frac{(h_{cn}+h_{cp})A}{V}(T-T_{\\infty}),$$\n", + "\n", + "along with boundary conditions\n", + "\n", + "$$ -\\lambda_{eff} \\nabla_\\perp T \\cdot \\boldsymbol{n} = h_{cn}(T-T_\\infty),$$\n", + "at the negative tab,\n", + "$$ -\\lambda_{eff} \\nabla_\\perp T \\cdot \\boldsymbol{n} = h_{cp}(T-T_\\infty),$$ \n", + "at the positive tab, and\n", + "$$ -\\lambda_{eff} \\nabla_\\perp T \\cdot \\boldsymbol{n} = h_{edge}(T-T_\\infty),$$ \n", + "elsewhere.\n", + "\n", + "Here the heat source term is averaged in the x direction so that $\\bar{Q}=\\bar{Q}(y,z)$. The parameter $\\lambda_{eff}$ is the effective thermal conductivity, computed as \n", + "\n", + "$$ \\rho_{eff} = \\frac{\\sum_k \\rho_k c_{p,k} L_k}{\\sum_k L_k}.$$\n", + "\n", + "The heat transfer coefficients $h_{cn}$, $h_{cp}$ and $h_{egde}$ correspond to heat transfer at the large surface of the pouch on the side of the negative current collector, heat transfer at the large surface of the pouch on the side of the positive current collector, and heat transfer at the remaining, respectively.\n", + "\n", + "As with the \"x-lumped\" option, the relevant heat transfer parameters are: \n", + "\"Negative current collector surface heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Positive current collector surface heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Negative tab heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Positive tab heat transfer coefficient [W.m-2.K-1]\" \n", + "\"Edge heat transfer coefficient [W.m-2.K-1]\" " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Model comparison" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we compare the \"lumped\" thermal model for a pouch cell geometry and an arbitrary geometry. We first set up our models, passing the relevant options" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "pouch_model = pybamm.lithium_ion.DFN(\n", + " options={\"cell geometry\": \"pouch\", \"thermal\": \"lumped\"}\n", + ")\n", + "arbitrary_model = pybamm.lithium_ion.DFN(\n", + " options={\"cell geometry\": \"arbitrary\", \"thermal\": \"lumped\"}\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then pick our parameter set" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "parameter_values = pybamm.ParameterValues(chemistry=pybamm.parameter_sets.Marquis2019)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and look at the various parameters related to heat transfer" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]: 0.0\n", + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]: 0.0\n", + "Negative tab heat transfer coefficient [W.m-2.K-1]: 10.0\n", + "Positive tab heat transfer coefficient [W.m-2.K-1]: 10.0\n", + "Edge heat transfer coefficient [W.m-2.K-1]: 0.3\n", + "Total heat transfer coefficient [W.m-2.K-1]: 10.0\n" + ] + } + ], + "source": [ + "params = [\n", + " \"Negative current collector surface heat transfer coefficient [W.m-2.K-1]\", \n", + " \"Positive current collector surface heat transfer coefficient [W.m-2.K-1]\", \n", + " \"Negative tab heat transfer coefficient [W.m-2.K-1]\", \n", + " \"Positive tab heat transfer coefficient [W.m-2.K-1]\", \n", + " \"Edge heat transfer coefficient [W.m-2.K-1]\",\n", + " \"Total heat transfer coefficient [W.m-2.K-1]\",\n", + "]\n", + "\n", + "for param in params:\n", + " print(param + \": {}\".format(parameter_values[param]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the default parameters used for the pouch cell geometry assume that the large surfaces of the pouch are insulated (no heat transfer) and that most of the cooling is via the tabs.\n", + "\n", + "We can also look at the parameters related to the geometry of the pouch" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Surface area [m2]: 0.05690719999999999\n", + "Volume [m3]: 7.798724999999999e-06\n" + ] + } + ], + "source": [ + "L_cn = parameter_values[\"Negative current collector thickness [m]\"]\n", + "L_n = parameter_values[\"Negative electrode thickness [m]\"]\n", + "L_s = parameter_values[\"Separator thickness [m]\"]\n", + "L_p = parameter_values[\"Positive electrode thickness [m]\"]\n", + "L_cp = parameter_values[\"Positive current collector thickness [m]\"]\n", + "L_y = parameter_values[\"Electrode width [m]\"]\n", + "L_z = parameter_values[\"Electrode height [m]\"]\n", + "\n", + "# total thickness\n", + "L = L_cn + L_n + L_s + L_p + L_cp\n", + "\n", + "# compute surface area\n", + "A = 2 * (L_y * L_z + L * L_y + L * L_z)\n", + "print(\"Surface area [m2]: {}\".format(A))\n", + "\n", + "# compute volume \n", + "V = L * L_y *L_z\n", + "print(\"Volume [m3]: {}\".format(V))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the parameters related to the surface are for cooling and cell volume for the arbitrary geometry " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cell cooling surface area [m2]: 0.0569\n", + "Cell volume [m3]: 7.8e-06\n" + ] + } + ], + "source": [ + "params = [\"Cell cooling surface area [m2]\", \"Cell volume [m3]\"]\n", + "\n", + "for param in params:\n", + " print(param + \": {}\".format(parameter_values[param]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that both models assume the same cell volume, and the arbitrary model assumes that cooling occurs uniformly from all surfaces of the pouch.\n", + "\n", + "Let's run simulations with both options and compare the results. For demonstration purposes we'll increase the current to amplify the thermal effects" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5029a982f07843c6ac1d0a884f114e80", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=1000.0, step=10.0), Output()), _dom_classes=…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "<pybamm.plotting.quick_plot.QuickPlot at 0x7f5b90231358>" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# update current to correspond to a C-rate of 3 (i.e. 3 times the nominal cell capacity)\n", + "parameter_values[\"Current function [A]\"] = 3 * parameter_values[\"Cell capacity [A.h]\"]\n", + "\n", + "# pick solver \n", + "solver = pybamm.CasadiSolver(mode=\"fast\", atol=1e-3)\n", + "\n", + "# create simulations in a list\n", + "sims = [\n", + " pybamm.Simulation(pouch_model, parameter_values=parameter_values, solver=solver),\n", + " pybamm.Simulation(arbitrary_model, parameter_values=parameter_values, solver=solver)\n", + "]\n", + "\n", + "# loop over the list to solve\n", + "for sim in sims:\n", + " sim.solve([0, 1000])\n", + " \n", + "# plot the results\n", + "pybamm.dynamic_plot(\n", + " sims, \n", + " [\n", + " \"Volume-averaged cell temperature [K]\", \n", + " \"Volume-averaged total heating [W.m-3]\", \n", + " \"Current [A]\", \n", + " \"Terminal voltage [V]\"\n", + " ],\n", + " labels=[\"pouch\", \"arbitrary\"],\n", + ") " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We see that the lumped model with an arbitrary geometry is cooled much more (it is cooled uniformly from all surfaces, compared to the pouch that is only cooled via the tabs and outside edges), which results in the temperature barely changing throughout the simulation. In comparison, the model with the pouch cell geometry is only cooled from a small portion of the overall cell surface, leading to an increase in temperature of around 20 degrees." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/simulation-class.ipynb b/examples/notebooks/simulation-class.ipynb new file mode 100644 index 0000000000..d39e8217e5 --- /dev/null +++ b/examples/notebooks/simulation-class.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A step-by-step look at the Simulation class\n", + "The simplest way to solve a model is to use the `Simulation` class. This automatically processes the model (setting of parameters, setting up the mesh and discretisation, etc.) for you, and provides built-in functionality for solving and plotting. Changing things such as parameters in handled by passing options to the `Simulation`, as shown in the [Getting Started](./Getting%20Started/) guides, [example notebooks](./) and [documentation](https://pybamm.readthedocs.io/en/latest/source/simulation.html?highlight=simulation).\n", + "\n", + "In this notebook we show how to solve a model using a `Simulation` and compare this to manually handling the different stages of the process, such as setting parameters, ourselves step-by-step." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install pybamm -q # install PyBaMM if it is not installed\n", + "import pybamm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Simulation\n", + "The easiest way to get started is to pick a model and create a simulation using that model. For simplicity, we'll use the SPM with all the default options here. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "model = pybamm.lithium_ion.SPM()\n", + "simulation = pybamm.Simulation(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The simulation can then be solved, passing a time interval (in seconds) to integrate over" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<pybamm.solvers.solution.Solution at 0x7fb05101f9b0>" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "simulation.solve([0, 3600])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and the results plotted" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "5ecb3f4ca8544174ad345fa1683a0ae5", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "simulation.plot()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Simple!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Processing the model step-by-step\n", + "One way of gaining more control over the simulation processing is by passing options, as outlined in the [documentation](https://pybamm.readthedocs.io/en/latest/source/simulation.html?highlight=simulation). However, you can also process the model step-by-step yourself. A detailed example of this can be found in the [SPM notebook](./models/SPM.ipynb), but here we outline the basic steps.\n", + "\n", + "First we pick a model" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "model = pybamm.lithium_ion.SPM()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we must set up the geometry. We'll use the default geometry for the SPM. In all of the following steps we will also use the default settings provided by the model. For a look at changing these options, see the [change settings](./change-settings.ipynb) notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "geometry = model.default_geometry" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Both the model and geometry depend on parameters (such as the electrode thickness, or diffusivity). We'll use the default model parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "param = model.default_parameter_values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have picked our parameters we can \"process\" the model and geometry. This just means we look through the model and geometry for any parameter symbols and replace them with the numeric values (or functions, in the case of parameters that have functional dependence) defined by our parameter values." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "param.process_model(model)\n", + "param.process_geometry(geometry)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we must create a mesh on which to solve the discretised equations. This not only depends on the geometry, but also on the type of submesh (e.g. uniformly space) and number of mesh points to use. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have defined a mesh we can discretise our model. In order to do so we must choose a spatial method. The default for the SPM is the Finite Volume Method. We first define a discretisation, which depends on the mesh and spatial method, and then use this to process our model. This turns the variables in the models into a `StateVector`, and replaces spatial operators with matrix-vector multiplications, ready to be passed to a time stepping algorithm." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<pybamm.models.full_battery_models.lithium_ion.spm.SPM at 0x7fb04ca22438>" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", + "disc.process_model(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we pick a solver to step the problem forward in time. We'll use the default ODE solver for the SPM" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "solver = model.default_solver" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We then integrate in time using the `solve` command, as with the simulation. Note that we now have to pass the model object to the `solve` command, and that we return the solution object so that we can interact with it later." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "solution = solver.solve(model, [0, 3600])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can create the default slider plot by passing the solution object to the `dynamic_plot` method" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e55469a3a69047d999d19dc57519585f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "<pybamm.plotting.quick_plot.QuickPlot at 0x7fb04cbe6a58>" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pybamm.dynamic_plot(solution)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/examples/notebooks/solution-data-and-processed-variables.ipynb b/examples/notebooks/solution-data-and-processed-variables.ipynb index 658580ddae..58d236563f 100644 --- a/examples/notebooks/solution-data-and-processed-variables.ipynb +++ b/examples/notebooks/solution-data-and-processed-variables.ipynb @@ -16,13 +16,20 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 1, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + }, { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "ee4c61b432a84b71ba3002176fdcb445", + "model_id": "8a37cdae11054d50829ec2d08eadca66", "version_major": 2, "version_minor": 0 }, @@ -45,26 +52,11 @@ "# load model\n", "model = pybamm.lithium_ion.SPMe()\n", "\n", - "# create geometry\n", - "geometry = model.default_geometry\n", - "\n", - "# load parameter values and process model and geometry\n", - "param = model.default_parameter_values\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)\n", - "\n", - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model)\n", - "\n", - "# solve model\n", - "solver = model.default_solver\n", + "# set up and solve simulation\n", + "simulation = pybamm.Simulation(model)\n", "dt = 90\n", "t_eval = np.arange(0, 3600, dt) # time in seconds\n", - "solution = solver.solve(model, t_eval)\n", + "solution = simulation.solve(t_eval)\n", "\n", "quick_plot = pybamm.QuickPlot(solution)\n", "quick_plot.dynamic_plot();" @@ -79,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -88,7 +80,7 @@ "dict_keys(['Negative particle surface concentration [mol.m-3]', 'Electrolyte concentration [mol.m-3]', 'Positive particle surface concentration [mol.m-3]', 'Current [A]', 'Negative electrode potential [V]', 'Electrolyte potential [V]', 'Positive electrode potential [V]', 'Terminal voltage [V]'])" ] }, - "execution_count": 22, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -99,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -108,7 +100,7 @@ "(20, 40)" ] }, - "execution_count": 23, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -119,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -128,7 +120,7 @@ "(40,)" ] }, - "execution_count": 24, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -146,14 +138,14 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "['Active material volume fraction', 'Ambient temperature', 'Ambient temperature [K]', 'Battery voltage [V]', 'C-rate', 'Cell temperature', 'Cell temperature [K]', 'Current [A]', 'Current collector current density', 'Current collector current density [A.m-2]', 'Discharge capacity [A.h]', 'Electrode current density', 'Electrode tortuosity', 'Electrolyte concentration', 'Electrolyte concentration [Molar]', 'Electrolyte concentration [mol.m-3]', 'Electrolyte current density', 'Electrolyte current density [A.m-2]', 'Electrolyte flux', 'Electrolyte flux [mol.m-2.s-1]', 'Electrolyte potential', 'Electrolyte potential [V]', 'Electrolyte tortuosity', 'Exchange current density', 'Exchange current density [A.m-2]', 'Exchange current density per volume [A.m-3]', 'Gradient of electrolyte potential', 'Gradient of negative electrode potential', 'Gradient of negative electrolyte potential', 'Gradient of positive electrode potential', 'Gradient of positive electrolyte potential', 'Gradient of separator electrolyte potential', 'Inner negative electrode sei concentration [mol.m-3]', 'Inner negative electrode sei interfacial current density', 'Inner negative electrode sei interfacial current density [A.m-2]', 'Inner negative electrode sei thickness', 'Inner negative electrode sei thickness [m]', 'Inner positive electrode sei concentration [mol.m-3]', 'Inner positive electrode sei interfacial current density', 'Inner positive electrode sei interfacial current density [A.m-2]', 'Inner positive electrode sei thickness', 'Inner positive electrode sei thickness [m]', 'Interfacial current density', 'Interfacial current density [A.m-2]', 'Interfacial current density per volume [A.m-3]', 'Irreversible electrochemical heating', 'Irreversible electrochemical heating [W.m-3]', 'Leading-order active material volume fraction', 'Leading-order current collector current density', 'Leading-order electrode tortuosity', 'Leading-order electrolyte tortuosity', 'Leading-order negative electrode active material volume fraction', 'Leading-order negative electrode porosity', 'Leading-order negative electrode tortuosity', 'Leading-order negative electrolyte tortuosity', 'Leading-order porosity', 'Leading-order positive electrode active material volume fraction', 'Leading-order positive electrode porosity', 'Leading-order positive electrode tortuosity', 'Leading-order positive electrolyte tortuosity', 'Leading-order separator active material volume fraction', 'Leading-order separator porosity', 'Leading-order separator tortuosity', 'Leading-order x-averaged negative electrode active material volume fraction', 'Leading-order x-averaged negative electrode porosity', 'Leading-order x-averaged negative electrode porosity change', 'Leading-order x-averaged negative electrode tortuosity', 'Leading-order x-averaged negative electrolyte tortuosity', 'Leading-order x-averaged positive electrode active material volume fraction', 'Leading-order x-averaged positive electrode porosity', 'Leading-order x-averaged positive electrode porosity change', 'Leading-order x-averaged positive electrode tortuosity', 'Leading-order x-averaged positive electrolyte tortuosity', 'Leading-order x-averaged separator active material volume fraction', 'Leading-order x-averaged separator porosity', 'Leading-order x-averaged separator porosity change', 'Leading-order x-averaged separator tortuosity', 'Local voltage', 'Local voltage [V]', 'Loss of lithium to negative electrode sei [mol]', 'Loss of lithium to positive electrode sei [mol]', 'Measured battery open circuit voltage [V]', 'Measured open circuit voltage', 'Measured open circuit voltage [V]', 'Negative current collector potential', 'Negative current collector potential [V]', 'Negative current collector temperature', 'Negative current collector temperature [K]', 'Negative electrode active material volume fraction', 'Negative electrode active volume fraction', 'Negative electrode average extent of lithiation', 'Negative electrode current density', 'Negative electrode current density [A.m-2]', 'Negative electrode entropic change', 'Negative electrode exchange current density', 'Negative electrode exchange current density [A.m-2]', 'Negative electrode exchange current density per volume [A.m-3]', 'Negative electrode interfacial current density', 'Negative electrode interfacial current density [A.m-2]', 'Negative electrode interfacial current density per volume [A.m-3]', 'Negative electrode ohmic losses', 'Negative electrode ohmic losses [V]', 'Negative electrode open circuit potential', 'Negative electrode open circuit potential [V]', 'Negative electrode oxygen exchange current density', 'Negative electrode oxygen exchange current density [A.m-2]', 'Negative electrode oxygen exchange current density per volume [A.m-3]', 'Negative electrode oxygen interfacial current density', 'Negative electrode oxygen interfacial current density [A.m-2]', 'Negative electrode oxygen interfacial current density per volume [A.m-3]', 'Negative electrode oxygen open circuit potential', 'Negative electrode oxygen open circuit potential [V]', 'Negative electrode oxygen reaction overpotential', 'Negative electrode oxygen reaction overpotential [V]', 'Negative electrode porosity', 'Negative electrode porosity change', 'Negative electrode potential', 'Negative electrode potential [V]', 'Negative electrode pressure', 'Negative electrode reaction overpotential', 'Negative electrode reaction overpotential [V]', 'Negative electrode sei film overpotential', 'Negative electrode sei film overpotential [V]', 'Negative electrode sei interfacial current density', 'Negative electrode sei interfacial current density [A.m-2]', 'Negative electrode surface potential difference', 'Negative electrode surface potential difference [V]', 'Negative electrode temperature', 'Negative electrode temperature [K]', 'Negative electrode tortuosity', 'Negative electrode transverse volume-averaged acceleration', 'Negative electrode transverse volume-averaged acceleration [m.s-2]', 'Negative electrode transverse volume-averaged velocity', 'Negative electrode transverse volume-averaged velocity [m.s-2]', 'Negative electrode volume-averaged acceleration', 'Negative electrode volume-averaged acceleration [m.s-1]', 'Negative electrode volume-averaged concentration', 'Negative electrode volume-averaged concentration [mol.m-3]', 'Negative electrode volume-averaged velocity', 'Negative electrode volume-averaged velocity [m.s-1]', 'Negative electrolyte concentration', 'Negative electrolyte concentration [Molar]', 'Negative electrolyte concentration [mol.m-3]', 'Negative electrolyte current density', 'Negative electrolyte current density [A.m-2]', 'Negative electrolyte potential', 'Negative electrolyte potential [V]', 'Negative electrolyte tortuosity', 'Negative particle concentration', 'Negative particle concentration [mol.m-3]', 'Negative particle flux', 'Negative particle surface concentration', 'Negative particle surface concentration [mol.m-3]', 'Negative sei concentration [mol.m-3]', 'Ohmic heating', 'Ohmic heating [W.m-3]', 'Outer negative electrode sei concentration [mol.m-3]', 'Outer negative electrode sei interfacial current density', 'Outer negative electrode sei interfacial current density [A.m-2]', 'Outer negative electrode sei thickness', 'Outer negative electrode sei thickness [m]', 'Outer positive electrode sei concentration [mol.m-3]', 'Outer positive electrode sei interfacial current density', 'Outer positive electrode sei interfacial current density [A.m-2]', 'Outer positive electrode sei thickness', 'Outer positive electrode sei thickness [m]', 'Oxygen exchange current density', 'Oxygen exchange current density [A.m-2]', 'Oxygen exchange current density per volume [A.m-3]', 'Oxygen interfacial current density', 'Oxygen interfacial current density [A.m-2]', 'Oxygen interfacial current density per volume [A.m-3]', 'Porosity', 'Porosity change', 'Positive current collector potential', 'Positive current collector potential [V]', 'Positive current collector temperature', 'Positive current collector temperature [K]', 'Positive electrode active material volume fraction', 'Positive electrode active volume fraction', 'Positive electrode average extent of lithiation', 'Positive electrode current density', 'Positive electrode current density [A.m-2]', 'Positive electrode entropic change', 'Positive electrode exchange current density', 'Positive electrode exchange current density [A.m-2]', 'Positive electrode exchange current density per volume [A.m-3]', 'Positive electrode interfacial current density', 'Positive electrode interfacial current density [A.m-2]', 'Positive electrode interfacial current density per volume [A.m-3]', 'Positive electrode ohmic losses', 'Positive electrode ohmic losses [V]', 'Positive electrode open circuit potential', 'Positive electrode open circuit potential [V]', 'Positive electrode oxygen exchange current density', 'Positive electrode oxygen exchange current density [A.m-2]', 'Positive electrode oxygen exchange current density per volume [A.m-3]', 'Positive electrode oxygen interfacial current density', 'Positive electrode oxygen interfacial current density [A.m-2]', 'Positive electrode oxygen interfacial current density per volume [A.m-3]', 'Positive electrode oxygen open circuit potential', 'Positive electrode oxygen open circuit potential [V]', 'Positive electrode oxygen reaction overpotential', 'Positive electrode oxygen reaction overpotential [V]', 'Positive electrode porosity', 'Positive electrode porosity change', 'Positive electrode potential', 'Positive electrode potential [V]', 'Positive electrode pressure', 'Positive electrode reaction overpotential', 'Positive electrode reaction overpotential [V]', 'Positive electrode sei film overpotential', 'Positive electrode sei film overpotential [V]', 'Positive electrode sei interfacial current density', 'Positive electrode sei interfacial current density [A.m-2]', 'Positive electrode surface potential difference', 'Positive electrode surface potential difference [V]', 'Positive electrode temperature', 'Positive electrode temperature [K]', 'Positive electrode tortuosity', 'Positive electrode transverse volume-averaged acceleration', 'Positive electrode transverse volume-averaged acceleration [m.s-2]', 'Positive electrode transverse volume-averaged velocity', 'Positive electrode transverse volume-averaged velocity [m.s-2]', 'Positive electrode volume-averaged acceleration', 'Positive electrode volume-averaged acceleration [m.s-1]', 'Positive electrode volume-averaged concentration', 'Positive electrode volume-averaged concentration [mol.m-3]', 'Positive electrode volume-averaged velocity', 'Positive electrode volume-averaged velocity [m.s-1]', 'Positive electrolyte concentration', 'Positive electrolyte concentration [Molar]', 'Positive electrolyte concentration [mol.m-3]', 'Positive electrolyte current density', 'Positive electrolyte current density [A.m-2]', 'Positive electrolyte potential', 'Positive electrolyte potential [V]', 'Positive electrolyte tortuosity', 'Positive particle concentration', 'Positive particle concentration [mol.m-3]', 'Positive particle flux', 'Positive particle surface concentration', 'Positive particle surface concentration [mol.m-3]', 'Positive sei concentration [mol.m-3]', 'Pressure', 'Reversible heating', 'Reversible heating [W.m-3]', 'Sei interfacial current density', 'Sei interfacial current density [A.m-2]', 'Sei interfacial current density per volume [A.m-3]', 'Separator active material volume fraction', 'Separator electrolyte concentration', 'Separator electrolyte concentration [Molar]', 'Separator electrolyte concentration [mol.m-3]', 'Separator electrolyte potential', 'Separator electrolyte potential [V]', 'Separator porosity', 'Separator porosity change', 'Separator pressure', 'Separator temperature', 'Separator temperature [K]', 'Separator tortuosity', 'Separator transverse volume-averaged acceleration', 'Separator transverse volume-averaged acceleration [m.s-2]', 'Separator transverse volume-averaged velocity', 'Separator transverse volume-averaged velocity [m.s-2]', 'Separator volume-averaged acceleration', 'Separator volume-averaged acceleration [m.s-1]', 'Separator volume-averaged velocity', 'Separator volume-averaged velocity [m.s-1]', 'Sum of electrolyte reaction source terms', 'Sum of interfacial current densities', 'Sum of negative electrode electrolyte reaction source terms', 'Sum of negative electrode interfacial current densities', 'Sum of positive electrode electrolyte reaction source terms', 'Sum of positive electrode interfacial current densities', 'Sum of x-averaged negative electrode electrolyte reaction source terms', 'Sum of x-averaged negative electrode interfacial current densities', 'Sum of x-averaged positive electrode electrolyte reaction source terms', 'Sum of x-averaged positive electrode interfacial current densities', 'Terminal power [W]', 'Terminal voltage', 'Terminal voltage [V]', 'Time', 'Time [h]', 'Time [min]', 'Time [s]', 'Total current density', 'Total current density [A.m-2]', 'Total heating', 'Total heating [W.m-3]', 'Total negative electrode sei thickness', 'Total negative electrode sei thickness [m]', 'Total positive electrode sei thickness', 'Total positive electrode sei thickness [m]', 'Transverse volume-averaged acceleration', 'Transverse volume-averaged acceleration [m.s-2]', 'Transverse volume-averaged velocity', 'Transverse volume-averaged velocity [m.s-2]', 'Volume-averaged acceleration', 'Volume-averaged acceleration [m.s-1]', 'Volume-averaged cell temperature', 'Volume-averaged cell temperature [K]', 'Volume-averaged total heating', 'Volume-averaged total heating [W.m-3]', 'Volume-averaged velocity', 'Volume-averaged velocity [m.s-1]', 'X-averaged battery concentration overpotential [V]', 'X-averaged battery electrolyte ohmic losses [V]', 'X-averaged battery open circuit voltage [V]', 'X-averaged battery reaction overpotential [V]', 'X-averaged battery solid phase ohmic losses [V]', 'X-averaged cell temperature', 'X-averaged cell temperature [K]', 'X-averaged concentration overpotential', 'X-averaged concentration overpotential [V]', 'X-averaged electrolyte concentration', 'X-averaged electrolyte concentration [Molar]', 'X-averaged electrolyte concentration [mol.m-3]', 'X-averaged electrolyte ohmic losses', 'X-averaged electrolyte ohmic losses [V]', 'X-averaged electrolyte overpotential', 'X-averaged electrolyte overpotential [V]', 'X-averaged electrolyte potential', 'X-averaged electrolyte potential [V]', 'X-averaged inner negative electrode sei concentration [mol.m-3]', 'X-averaged inner negative electrode sei interfacial current density', 'X-averaged inner negative electrode sei interfacial current density [A.m-2]', 'X-averaged inner negative electrode sei thickness', 'X-averaged inner negative electrode sei thickness [m]', 'X-averaged inner positive electrode sei concentration [mol.m-3]', 'X-averaged inner positive electrode sei interfacial current density', 'X-averaged inner positive electrode sei interfacial current density [A.m-2]', 'X-averaged inner positive electrode sei thickness', 'X-averaged inner positive electrode sei thickness [m]', 'X-averaged negative electrode active material volume fraction', 'X-averaged negative electrode entropic change', 'X-averaged negative electrode exchange current density', 'X-averaged negative electrode exchange current density [A.m-2]', 'X-averaged negative electrode exchange current density per volume [A.m-3]', 'X-averaged negative electrode interfacial current density', 'X-averaged negative electrode interfacial current density [A.m-2]', 'X-averaged negative electrode interfacial current density per volume [A.m-3]', 'X-averaged negative electrode ohmic losses', 'X-averaged negative electrode ohmic losses [V]', 'X-averaged negative electrode open circuit potential', 'X-averaged negative electrode open circuit potential [V]', 'X-averaged negative electrode oxygen exchange current density', 'X-averaged negative electrode oxygen exchange current density [A.m-2]', 'X-averaged negative electrode oxygen exchange current density per volume [A.m-3]', 'X-averaged negative electrode oxygen interfacial current density', 'X-averaged negative electrode oxygen interfacial current density [A.m-2]', 'X-averaged negative electrode oxygen interfacial current density per volume [A.m-3]', 'X-averaged negative electrode oxygen open circuit potential', 'X-averaged negative electrode oxygen open circuit potential [V]', 'X-averaged negative electrode oxygen reaction overpotential', 'X-averaged negative electrode oxygen reaction overpotential [V]', 'X-averaged negative electrode porosity', 'X-averaged negative electrode porosity change', 'X-averaged negative electrode potential', 'X-averaged negative electrode potential [V]', 'X-averaged negative electrode pressure', 'X-averaged negative electrode reaction overpotential', 'X-averaged negative electrode reaction overpotential [V]', 'X-averaged negative electrode sei concentration [mol.m-3]', 'X-averaged negative electrode sei film overpotential', 'X-averaged negative electrode sei film overpotential [V]', 'X-averaged negative electrode sei interfacial current density', 'X-averaged negative electrode sei interfacial current density [A.m-2]', 'X-averaged negative electrode surface potential difference', 'X-averaged negative electrode surface potential difference [V]', 'X-averaged negative electrode temperature', 'X-averaged negative electrode temperature [K]', 'X-averaged negative electrode tortuosity', 'X-averaged negative electrode total interfacial current density', 'X-averaged negative electrode total interfacial current density [A.m-2]', 'X-averaged negative electrode total interfacial current density per volume [A.m-3]', 'X-averaged negative electrode transverse volume-averaged acceleration', 'X-averaged negative electrode transverse volume-averaged acceleration [m.s-2]', 'X-averaged negative electrode transverse volume-averaged velocity', 'X-averaged negative electrode transverse volume-averaged velocity [m.s-2]', 'X-averaged negative electrode volume-averaged acceleration', 'X-averaged negative electrode volume-averaged acceleration [m.s-1]', 'X-averaged negative electrolyte concentration', 'X-averaged negative electrolyte concentration [mol.m-3]', 'X-averaged negative electrolyte potential', 'X-averaged negative electrolyte potential [V]', 'X-averaged negative electrolyte tortuosity', 'X-averaged negative particle concentration', 'X-averaged negative particle concentration [mol.m-3]', 'X-averaged negative particle flux', 'X-averaged negative particle surface concentration', 'X-averaged negative particle surface concentration [mol.m-3]', 'X-averaged open circuit voltage', 'X-averaged open circuit voltage [V]', 'X-averaged outer negative electrode sei concentration [mol.m-3]', 'X-averaged outer negative electrode sei interfacial current density', 'X-averaged outer negative electrode sei interfacial current density [A.m-2]', 'X-averaged outer negative electrode sei thickness', 'X-averaged outer negative electrode sei thickness [m]', 'X-averaged outer positive electrode sei concentration [mol.m-3]', 'X-averaged outer positive electrode sei interfacial current density', 'X-averaged outer positive electrode sei interfacial current density [A.m-2]', 'X-averaged outer positive electrode sei thickness', 'X-averaged outer positive electrode sei thickness [m]', 'X-averaged positive electrode active material volume fraction', 'X-averaged positive electrode entropic change', 'X-averaged positive electrode exchange current density', 'X-averaged positive electrode exchange current density [A.m-2]', 'X-averaged positive electrode exchange current density per volume [A.m-3]', 'X-averaged positive electrode interfacial current density', 'X-averaged positive electrode interfacial current density [A.m-2]', 'X-averaged positive electrode interfacial current density per volume [A.m-3]', 'X-averaged positive electrode ohmic losses', 'X-averaged positive electrode ohmic losses [V]', 'X-averaged positive electrode open circuit potential', 'X-averaged positive electrode open circuit potential [V]', 'X-averaged positive electrode oxygen exchange current density', 'X-averaged positive electrode oxygen exchange current density [A.m-2]', 'X-averaged positive electrode oxygen exchange current density per volume [A.m-3]', 'X-averaged positive electrode oxygen interfacial current density', 'X-averaged positive electrode oxygen interfacial current density [A.m-2]', 'X-averaged positive electrode oxygen interfacial current density per volume [A.m-3]', 'X-averaged positive electrode oxygen open circuit potential', 'X-averaged positive electrode oxygen open circuit potential [V]', 'X-averaged positive electrode oxygen reaction overpotential', 'X-averaged positive electrode oxygen reaction overpotential [V]', 'X-averaged positive electrode porosity', 'X-averaged positive electrode porosity change', 'X-averaged positive electrode potential', 'X-averaged positive electrode potential [V]', 'X-averaged positive electrode pressure', 'X-averaged positive electrode reaction overpotential', 'X-averaged positive electrode reaction overpotential [V]', 'X-averaged positive electrode sei concentration [mol.m-3]', 'X-averaged positive electrode sei film overpotential', 'X-averaged positive electrode sei film overpotential [V]', 'X-averaged positive electrode sei interfacial current density', 'X-averaged positive electrode sei interfacial current density [A.m-2]', 'X-averaged positive electrode surface potential difference', 'X-averaged positive electrode surface potential difference [V]', 'X-averaged positive electrode temperature', 'X-averaged positive electrode temperature [K]', 'X-averaged positive electrode tortuosity', 'X-averaged positive electrode total interfacial current density', 'X-averaged positive electrode total interfacial current density [A.m-2]', 'X-averaged positive electrode total interfacial current density per volume [A.m-3]', 'X-averaged positive electrode transverse volume-averaged acceleration', 'X-averaged positive electrode transverse volume-averaged acceleration [m.s-2]', 'X-averaged positive electrode transverse volume-averaged velocity', 'X-averaged positive electrode transverse volume-averaged velocity [m.s-2]', 'X-averaged positive electrode volume-averaged acceleration', 'X-averaged positive electrode volume-averaged acceleration [m.s-1]', 'X-averaged positive electrolyte concentration', 'X-averaged positive electrolyte concentration [mol.m-3]', 'X-averaged positive electrolyte potential', 'X-averaged positive electrolyte potential [V]', 'X-averaged positive electrolyte tortuosity', 'X-averaged positive particle concentration', 'X-averaged positive particle concentration [mol.m-3]', 'X-averaged positive particle flux', 'X-averaged positive particle surface concentration', 'X-averaged positive particle surface concentration [mol.m-3]', 'X-averaged reaction overpotential', 'X-averaged reaction overpotential [V]', 'X-averaged sei film overpotential', 'X-averaged sei film overpotential [V]', 'X-averaged separator active material volume fraction', 'X-averaged separator electrolyte concentration', 'X-averaged separator electrolyte concentration [mol.m-3]', 'X-averaged separator electrolyte potential', 'X-averaged separator electrolyte potential [V]', 'X-averaged separator porosity', 'X-averaged separator porosity change', 'X-averaged separator pressure', 'X-averaged separator temperature', 'X-averaged separator temperature [K]', 'X-averaged separator tortuosity', 'X-averaged separator transverse volume-averaged acceleration', 'X-averaged separator transverse volume-averaged acceleration [m.s-2]', 'X-averaged separator transverse volume-averaged velocity', 'X-averaged separator transverse volume-averaged velocity [m.s-2]', 'X-averaged separator volume-averaged acceleration', 'X-averaged separator volume-averaged acceleration [m.s-1]', 'X-averaged solid phase ohmic losses', 'X-averaged solid phase ohmic losses [V]', 'X-averaged total heating', 'X-averaged total heating [W.m-3]', 'X-averaged total negative electrode sei thickness', 'X-averaged total negative electrode sei thickness [m]', 'X-averaged total positive electrode sei thickness', 'X-averaged total positive electrode sei thickness [m]', 'X-averaged volume-averaged acceleration', 'X-averaged volume-averaged acceleration [m.s-1]', 'r_n', 'r_n [m]', 'r_p', 'r_p [m]', 'x', 'x [m]', 'x_n', 'x_n [m]', 'x_p', 'x_p [m]', 'x_s', 'x_s [m]']\n" + "['Active material volume fraction', 'Ambient temperature', 'Ambient temperature [K]', 'Battery voltage [V]', 'C-rate', 'Cell temperature', 'Cell temperature [K]', 'Current [A]', 'Current collector current density', 'Current collector current density [A.m-2]', 'Discharge capacity [A.h]', 'Electrode current density', 'Electrode tortuosity', 'Electrolyte concentration', 'Electrolyte concentration [Molar]', 'Electrolyte concentration [mol.m-3]', 'Electrolyte current density', 'Electrolyte current density [A.m-2]', 'Electrolyte flux', 'Electrolyte flux [mol.m-2.s-1]', 'Electrolyte potential', 'Electrolyte potential [V]', 'Electrolyte tortuosity', 'Exchange current density', 'Exchange current density [A.m-2]', 'Exchange current density per volume [A.m-3]', 'Gradient of electrolyte potential', 'Gradient of negative electrode potential', 'Gradient of negative electrolyte potential', 'Gradient of positive electrode potential', 'Gradient of positive electrolyte potential', 'Gradient of separator electrolyte potential', 'Inner negative electrode sei concentration [mol.m-3]', 'Inner negative electrode sei interfacial current density', 'Inner negative electrode sei interfacial current density [A.m-2]', 'Inner negative electrode sei thickness', 'Inner negative electrode sei thickness [m]', 'Inner positive electrode sei concentration [mol.m-3]', 'Inner positive electrode sei interfacial current density', 'Inner positive electrode sei interfacial current density [A.m-2]', 'Inner positive electrode sei thickness', 'Inner positive electrode sei thickness [m]', 'Interfacial current density', 'Interfacial current density [A.m-2]', 'Interfacial current density per volume [A.m-3]', 'Irreversible electrochemical heating', 'Irreversible electrochemical heating [W.m-3]', 'Leading-order active material volume fraction', 'Leading-order current collector current density', 'Leading-order electrode tortuosity', 'Leading-order electrolyte tortuosity', 'Leading-order negative electrode active material volume fraction', 'Leading-order negative electrode porosity', 'Leading-order negative electrode tortuosity', 'Leading-order negative electrolyte tortuosity', 'Leading-order porosity', 'Leading-order positive electrode active material volume fraction', 'Leading-order positive electrode porosity', 'Leading-order positive electrode tortuosity', 'Leading-order positive electrolyte tortuosity', 'Leading-order separator active material volume fraction', 'Leading-order separator porosity', 'Leading-order separator tortuosity', 'Leading-order x-averaged negative electrode active material volume fraction', 'Leading-order x-averaged negative electrode porosity', 'Leading-order x-averaged negative electrode porosity change', 'Leading-order x-averaged negative electrode tortuosity', 'Leading-order x-averaged negative electrolyte tortuosity', 'Leading-order x-averaged positive electrode active material volume fraction', 'Leading-order x-averaged positive electrode porosity', 'Leading-order x-averaged positive electrode porosity change', 'Leading-order x-averaged positive electrode tortuosity', 'Leading-order x-averaged positive electrolyte tortuosity', 'Leading-order x-averaged separator active material volume fraction', 'Leading-order x-averaged separator porosity', 'Leading-order x-averaged separator porosity change', 'Leading-order x-averaged separator tortuosity', 'Local voltage', 'Local voltage [V]', 'Loss of lithium to negative electrode sei [mol]', 'Loss of lithium to positive electrode sei [mol]', 'Measured battery open circuit voltage [V]', 'Measured open circuit voltage', 'Measured open circuit voltage [V]', 'Negative current collector potential', 'Negative current collector potential [V]', 'Negative current collector temperature', 'Negative current collector temperature [K]', 'Negative electrode active material volume fraction', 'Negative electrode active volume fraction', 'Negative electrode average extent of lithiation', 'Negative electrode current density', 'Negative electrode current density [A.m-2]', 'Negative electrode entropic change', 'Negative electrode exchange current density', 'Negative electrode exchange current density [A.m-2]', 'Negative electrode exchange current density per volume [A.m-3]', 'Negative electrode interfacial current density', 'Negative electrode interfacial current density [A.m-2]', 'Negative electrode interfacial current density per volume [A.m-3]', 'Negative electrode ohmic losses', 'Negative electrode ohmic losses [V]', 'Negative electrode open circuit potential', 'Negative electrode open circuit potential [V]', 'Negative electrode oxygen exchange current density', 'Negative electrode oxygen exchange current density [A.m-2]', 'Negative electrode oxygen exchange current density per volume [A.m-3]', 'Negative electrode oxygen interfacial current density', 'Negative electrode oxygen interfacial current density [A.m-2]', 'Negative electrode oxygen interfacial current density per volume [A.m-3]', 'Negative electrode oxygen open circuit potential', 'Negative electrode oxygen open circuit potential [V]', 'Negative electrode oxygen reaction overpotential', 'Negative electrode oxygen reaction overpotential [V]', 'Negative electrode porosity', 'Negative electrode porosity change', 'Negative electrode potential', 'Negative electrode potential [V]', 'Negative electrode pressure', 'Negative electrode reaction overpotential', 'Negative electrode reaction overpotential [V]', 'Negative electrode sei film overpotential', 'Negative electrode sei film overpotential [V]', 'Negative electrode sei interfacial current density', 'Negative electrode sei interfacial current density [A.m-2]', 'Negative electrode surface potential difference', 'Negative electrode surface potential difference [V]', 'Negative electrode temperature', 'Negative electrode temperature [K]', 'Negative electrode tortuosity', 'Negative electrode transverse volume-averaged acceleration', 'Negative electrode transverse volume-averaged acceleration [m.s-2]', 'Negative electrode transverse volume-averaged velocity', 'Negative electrode transverse volume-averaged velocity [m.s-2]', 'Negative electrode volume-averaged acceleration', 'Negative electrode volume-averaged acceleration [m.s-1]', 'Negative electrode volume-averaged concentration', 'Negative electrode volume-averaged concentration [mol.m-3]', 'Negative electrode volume-averaged velocity', 'Negative electrode volume-averaged velocity [m.s-1]', 'Negative electrolyte concentration', 'Negative electrolyte concentration [Molar]', 'Negative electrolyte concentration [mol.m-3]', 'Negative electrolyte current density', 'Negative electrolyte current density [A.m-2]', 'Negative electrolyte potential', 'Negative electrolyte potential [V]', 'Negative electrolyte tortuosity', 'Negative particle concentration', 'Negative particle concentration [mol.m-3]', 'Negative particle flux', 'Negative particle surface concentration', 'Negative particle surface concentration [mol.m-3]', 'Negative sei concentration [mol.m-3]', 'Negative surface area per unit volume distribution in x', 'Ohmic heating', 'Ohmic heating [W.m-3]', 'Outer negative electrode sei concentration [mol.m-3]', 'Outer negative electrode sei interfacial current density', 'Outer negative electrode sei interfacial current density [A.m-2]', 'Outer negative electrode sei thickness', 'Outer negative electrode sei thickness [m]', 'Outer positive electrode sei concentration [mol.m-3]', 'Outer positive electrode sei interfacial current density', 'Outer positive electrode sei interfacial current density [A.m-2]', 'Outer positive electrode sei thickness', 'Outer positive electrode sei thickness [m]', 'Oxygen exchange current density', 'Oxygen exchange current density [A.m-2]', 'Oxygen exchange current density per volume [A.m-3]', 'Oxygen interfacial current density', 'Oxygen interfacial current density [A.m-2]', 'Oxygen interfacial current density per volume [A.m-3]', 'Porosity', 'Porosity change', 'Positive current collector potential', 'Positive current collector potential [V]', 'Positive current collector temperature', 'Positive current collector temperature [K]', 'Positive electrode active material volume fraction', 'Positive electrode active volume fraction', 'Positive electrode average extent of lithiation', 'Positive electrode current density', 'Positive electrode current density [A.m-2]', 'Positive electrode entropic change', 'Positive electrode exchange current density', 'Positive electrode exchange current density [A.m-2]', 'Positive electrode exchange current density per volume [A.m-3]', 'Positive electrode interfacial current density', 'Positive electrode interfacial current density [A.m-2]', 'Positive electrode interfacial current density per volume [A.m-3]', 'Positive electrode ohmic losses', 'Positive electrode ohmic losses [V]', 'Positive electrode open circuit potential', 'Positive electrode open circuit potential [V]', 'Positive electrode oxygen exchange current density', 'Positive electrode oxygen exchange current density [A.m-2]', 'Positive electrode oxygen exchange current density per volume [A.m-3]', 'Positive electrode oxygen interfacial current density', 'Positive electrode oxygen interfacial current density [A.m-2]', 'Positive electrode oxygen interfacial current density per volume [A.m-3]', 'Positive electrode oxygen open circuit potential', 'Positive electrode oxygen open circuit potential [V]', 'Positive electrode oxygen reaction overpotential', 'Positive electrode oxygen reaction overpotential [V]', 'Positive electrode porosity', 'Positive electrode porosity change', 'Positive electrode potential', 'Positive electrode potential [V]', 'Positive electrode pressure', 'Positive electrode reaction overpotential', 'Positive electrode reaction overpotential [V]', 'Positive electrode sei film overpotential', 'Positive electrode sei film overpotential [V]', 'Positive electrode sei interfacial current density', 'Positive electrode sei interfacial current density [A.m-2]', 'Positive electrode surface potential difference', 'Positive electrode surface potential difference [V]', 'Positive electrode temperature', 'Positive electrode temperature [K]', 'Positive electrode tortuosity', 'Positive electrode transverse volume-averaged acceleration', 'Positive electrode transverse volume-averaged acceleration [m.s-2]', 'Positive electrode transverse volume-averaged velocity', 'Positive electrode transverse volume-averaged velocity [m.s-2]', 'Positive electrode volume-averaged acceleration', 'Positive electrode volume-averaged acceleration [m.s-1]', 'Positive electrode volume-averaged concentration', 'Positive electrode volume-averaged concentration [mol.m-3]', 'Positive electrode volume-averaged velocity', 'Positive electrode volume-averaged velocity [m.s-1]', 'Positive electrolyte concentration', 'Positive electrolyte concentration [Molar]', 'Positive electrolyte concentration [mol.m-3]', 'Positive electrolyte current density', 'Positive electrolyte current density [A.m-2]', 'Positive electrolyte potential', 'Positive electrolyte potential [V]', 'Positive electrolyte tortuosity', 'Positive particle concentration', 'Positive particle concentration [mol.m-3]', 'Positive particle flux', 'Positive particle surface concentration', 'Positive particle surface concentration [mol.m-3]', 'Positive sei concentration [mol.m-3]', 'Positive surface area per unit volume distribution in x', 'Pressure', 'R-averaged negative particle concentration', 'R-averaged negative particle concentration [mol.m-3]', 'R-averaged positive particle concentration', 'R-averaged positive particle concentration [mol.m-3]', 'Reversible heating', 'Reversible heating [W.m-3]', 'Sei interfacial current density', 'Sei interfacial current density [A.m-2]', 'Sei interfacial current density per volume [A.m-3]', 'Separator active material volume fraction', 'Separator electrolyte concentration', 'Separator electrolyte concentration [Molar]', 'Separator electrolyte concentration [mol.m-3]', 'Separator electrolyte potential', 'Separator electrolyte potential [V]', 'Separator porosity', 'Separator porosity change', 'Separator pressure', 'Separator temperature', 'Separator temperature [K]', 'Separator tortuosity', 'Separator transverse volume-averaged acceleration', 'Separator transverse volume-averaged acceleration [m.s-2]', 'Separator transverse volume-averaged velocity', 'Separator transverse volume-averaged velocity [m.s-2]', 'Separator volume-averaged acceleration', 'Separator volume-averaged acceleration [m.s-1]', 'Separator volume-averaged velocity', 'Separator volume-averaged velocity [m.s-1]', 'Sum of electrolyte reaction source terms', 'Sum of interfacial current densities', 'Sum of negative electrode electrolyte reaction source terms', 'Sum of negative electrode interfacial current densities', 'Sum of positive electrode electrolyte reaction source terms', 'Sum of positive electrode interfacial current densities', 'Sum of x-averaged negative electrode electrolyte reaction source terms', 'Sum of x-averaged negative electrode interfacial current densities', 'Sum of x-averaged positive electrode electrolyte reaction source terms', 'Sum of x-averaged positive electrode interfacial current densities', 'Terminal power [W]', 'Terminal voltage', 'Terminal voltage [V]', 'Time', 'Time [h]', 'Time [min]', 'Time [s]', 'Total current density', 'Total current density [A.m-2]', 'Total heating', 'Total heating [W.m-3]', 'Total negative electrode sei thickness', 'Total negative electrode sei thickness [m]', 'Total positive electrode sei thickness', 'Total positive electrode sei thickness [m]', 'Transverse volume-averaged acceleration', 'Transverse volume-averaged acceleration [m.s-2]', 'Transverse volume-averaged velocity', 'Transverse volume-averaged velocity [m.s-2]', 'Volume-averaged Ohmic heating', 'Volume-averaged Ohmic heating [W.m-3]', 'Volume-averaged acceleration', 'Volume-averaged acceleration [m.s-1]', 'Volume-averaged cell temperature', 'Volume-averaged cell temperature [K]', 'Volume-averaged irreversible electrochemical heating', 'Volume-averaged irreversible electrochemical heating[W.m-3]', 'Volume-averaged reversible heating', 'Volume-averaged reversible heating [W.m-3]', 'Volume-averaged total heating', 'Volume-averaged total heating [W.m-3]', 'Volume-averaged velocity', 'Volume-averaged velocity [m.s-1]', 'X-averaged Ohmic heating', 'X-averaged Ohmic heating [W.m-3]', 'X-averaged battery concentration overpotential [V]', 'X-averaged battery electrolyte ohmic losses [V]', 'X-averaged battery open circuit voltage [V]', 'X-averaged battery reaction overpotential [V]', 'X-averaged battery solid phase ohmic losses [V]', 'X-averaged cell temperature', 'X-averaged cell temperature [K]', 'X-averaged concentration overpotential', 'X-averaged concentration overpotential [V]', 'X-averaged electrolyte concentration', 'X-averaged electrolyte concentration [Molar]', 'X-averaged electrolyte concentration [mol.m-3]', 'X-averaged electrolyte ohmic losses', 'X-averaged electrolyte ohmic losses [V]', 'X-averaged electrolyte overpotential', 'X-averaged electrolyte overpotential [V]', 'X-averaged electrolyte potential', 'X-averaged electrolyte potential [V]', 'X-averaged inner negative electrode sei concentration [mol.m-3]', 'X-averaged inner negative electrode sei interfacial current density', 'X-averaged inner negative electrode sei interfacial current density [A.m-2]', 'X-averaged inner negative electrode sei thickness', 'X-averaged inner negative electrode sei thickness [m]', 'X-averaged inner positive electrode sei concentration [mol.m-3]', 'X-averaged inner positive electrode sei interfacial current density', 'X-averaged inner positive electrode sei interfacial current density [A.m-2]', 'X-averaged inner positive electrode sei thickness', 'X-averaged inner positive electrode sei thickness [m]', 'X-averaged irreversible electrochemical heating', 'X-averaged irreversible electrochemical heating [W.m-3]', 'X-averaged negative electrode active material volume fraction', 'X-averaged negative electrode entropic change', 'X-averaged negative electrode exchange current density', 'X-averaged negative electrode exchange current density [A.m-2]', 'X-averaged negative electrode exchange current density per volume [A.m-3]', 'X-averaged negative electrode interfacial current density', 'X-averaged negative electrode interfacial current density [A.m-2]', 'X-averaged negative electrode interfacial current density per volume [A.m-3]', 'X-averaged negative electrode ohmic losses', 'X-averaged negative electrode ohmic losses [V]', 'X-averaged negative electrode open circuit potential', 'X-averaged negative electrode open circuit potential [V]', 'X-averaged negative electrode oxygen exchange current density', 'X-averaged negative electrode oxygen exchange current density [A.m-2]', 'X-averaged negative electrode oxygen exchange current density per volume [A.m-3]', 'X-averaged negative electrode oxygen interfacial current density', 'X-averaged negative electrode oxygen interfacial current density [A.m-2]', 'X-averaged negative electrode oxygen interfacial current density per volume [A.m-3]', 'X-averaged negative electrode oxygen open circuit potential', 'X-averaged negative electrode oxygen open circuit potential [V]', 'X-averaged negative electrode oxygen reaction overpotential', 'X-averaged negative electrode oxygen reaction overpotential [V]', 'X-averaged negative electrode porosity', 'X-averaged negative electrode porosity change', 'X-averaged negative electrode potential', 'X-averaged negative electrode potential [V]', 'X-averaged negative electrode pressure', 'X-averaged negative electrode reaction overpotential', 'X-averaged negative electrode reaction overpotential [V]', 'X-averaged negative electrode resistance [Ohm.m2]', 'X-averaged negative electrode sei concentration [mol.m-3]', 'X-averaged negative electrode sei film overpotential', 'X-averaged negative electrode sei film overpotential [V]', 'X-averaged negative electrode sei interfacial current density', 'X-averaged negative electrode sei interfacial current density [A.m-2]', 'X-averaged negative electrode surface potential difference', 'X-averaged negative electrode surface potential difference [V]', 'X-averaged negative electrode temperature', 'X-averaged negative electrode temperature [K]', 'X-averaged negative electrode tortuosity', 'X-averaged negative electrode total interfacial current density', 'X-averaged negative electrode total interfacial current density [A.m-2]', 'X-averaged negative electrode total interfacial current density per volume [A.m-3]', 'X-averaged negative electrode transverse volume-averaged acceleration', 'X-averaged negative electrode transverse volume-averaged acceleration [m.s-2]', 'X-averaged negative electrode transverse volume-averaged velocity', 'X-averaged negative electrode transverse volume-averaged velocity [m.s-2]', 'X-averaged negative electrode volume-averaged acceleration', 'X-averaged negative electrode volume-averaged acceleration [m.s-1]', 'X-averaged negative electrolyte concentration', 'X-averaged negative electrolyte concentration [mol.m-3]', 'X-averaged negative electrolyte potential', 'X-averaged negative electrolyte potential [V]', 'X-averaged negative electrolyte tortuosity', 'X-averaged negative particle concentration', 'X-averaged negative particle concentration [mol.m-3]', 'X-averaged negative particle flux', 'X-averaged negative particle surface concentration', 'X-averaged negative particle surface concentration [mol.m-3]', 'X-averaged open circuit voltage', 'X-averaged open circuit voltage [V]', 'X-averaged outer negative electrode sei concentration [mol.m-3]', 'X-averaged outer negative electrode sei interfacial current density', 'X-averaged outer negative electrode sei interfacial current density [A.m-2]', 'X-averaged outer negative electrode sei thickness', 'X-averaged outer negative electrode sei thickness [m]', 'X-averaged outer positive electrode sei concentration [mol.m-3]', 'X-averaged outer positive electrode sei interfacial current density', 'X-averaged outer positive electrode sei interfacial current density [A.m-2]', 'X-averaged outer positive electrode sei thickness', 'X-averaged outer positive electrode sei thickness [m]', 'X-averaged positive electrode active material volume fraction', 'X-averaged positive electrode entropic change', 'X-averaged positive electrode exchange current density', 'X-averaged positive electrode exchange current density [A.m-2]', 'X-averaged positive electrode exchange current density per volume [A.m-3]', 'X-averaged positive electrode interfacial current density', 'X-averaged positive electrode interfacial current density [A.m-2]', 'X-averaged positive electrode interfacial current density per volume [A.m-3]', 'X-averaged positive electrode ohmic losses', 'X-averaged positive electrode ohmic losses [V]', 'X-averaged positive electrode open circuit potential', 'X-averaged positive electrode open circuit potential [V]', 'X-averaged positive electrode oxygen exchange current density', 'X-averaged positive electrode oxygen exchange current density [A.m-2]', 'X-averaged positive electrode oxygen exchange current density per volume [A.m-3]', 'X-averaged positive electrode oxygen interfacial current density', 'X-averaged positive electrode oxygen interfacial current density [A.m-2]', 'X-averaged positive electrode oxygen interfacial current density per volume [A.m-3]', 'X-averaged positive electrode oxygen open circuit potential', 'X-averaged positive electrode oxygen open circuit potential [V]', 'X-averaged positive electrode oxygen reaction overpotential', 'X-averaged positive electrode oxygen reaction overpotential [V]', 'X-averaged positive electrode porosity', 'X-averaged positive electrode porosity change', 'X-averaged positive electrode potential', 'X-averaged positive electrode potential [V]', 'X-averaged positive electrode pressure', 'X-averaged positive electrode reaction overpotential', 'X-averaged positive electrode reaction overpotential [V]', 'X-averaged positive electrode resistance [Ohm.m2]', 'X-averaged positive electrode sei concentration [mol.m-3]', 'X-averaged positive electrode sei film overpotential', 'X-averaged positive electrode sei film overpotential [V]', 'X-averaged positive electrode sei interfacial current density', 'X-averaged positive electrode sei interfacial current density [A.m-2]', 'X-averaged positive electrode surface potential difference', 'X-averaged positive electrode surface potential difference [V]', 'X-averaged positive electrode temperature', 'X-averaged positive electrode temperature [K]', 'X-averaged positive electrode tortuosity', 'X-averaged positive electrode total interfacial current density', 'X-averaged positive electrode total interfacial current density [A.m-2]', 'X-averaged positive electrode total interfacial current density per volume [A.m-3]', 'X-averaged positive electrode transverse volume-averaged acceleration', 'X-averaged positive electrode transverse volume-averaged acceleration [m.s-2]', 'X-averaged positive electrode transverse volume-averaged velocity', 'X-averaged positive electrode transverse volume-averaged velocity [m.s-2]', 'X-averaged positive electrode volume-averaged acceleration', 'X-averaged positive electrode volume-averaged acceleration [m.s-1]', 'X-averaged positive electrolyte concentration', 'X-averaged positive electrolyte concentration [mol.m-3]', 'X-averaged positive electrolyte potential', 'X-averaged positive electrolyte potential [V]', 'X-averaged positive electrolyte tortuosity', 'X-averaged positive particle concentration', 'X-averaged positive particle concentration [mol.m-3]', 'X-averaged positive particle flux', 'X-averaged positive particle surface concentration', 'X-averaged positive particle surface concentration [mol.m-3]', 'X-averaged reaction overpotential', 'X-averaged reaction overpotential [V]', 'X-averaged reversible heating', 'X-averaged reversible heating [W.m-3]', 'X-averaged sei film overpotential', 'X-averaged sei film overpotential [V]', 'X-averaged separator active material volume fraction', 'X-averaged separator electrolyte concentration', 'X-averaged separator electrolyte concentration [mol.m-3]', 'X-averaged separator electrolyte potential', 'X-averaged separator electrolyte potential [V]', 'X-averaged separator porosity', 'X-averaged separator porosity change', 'X-averaged separator pressure', 'X-averaged separator temperature', 'X-averaged separator temperature [K]', 'X-averaged separator tortuosity', 'X-averaged separator transverse volume-averaged acceleration', 'X-averaged separator transverse volume-averaged acceleration [m.s-2]', 'X-averaged separator transverse volume-averaged velocity', 'X-averaged separator transverse volume-averaged velocity [m.s-2]', 'X-averaged separator volume-averaged acceleration', 'X-averaged separator volume-averaged acceleration [m.s-1]', 'X-averaged solid phase ohmic losses', 'X-averaged solid phase ohmic losses [V]', 'X-averaged total heating', 'X-averaged total heating [W.m-3]', 'X-averaged total negative electrode sei thickness', 'X-averaged total negative electrode sei thickness [m]', 'X-averaged total positive electrode sei thickness', 'X-averaged total positive electrode sei thickness [m]', 'X-averaged volume-averaged acceleration', 'X-averaged volume-averaged acceleration [m.s-1]', 'r_n', 'r_n [m]', 'r_p', 'r_p [m]', 'x', 'x [m]', 'x_n', 'x_n [m]', 'x_p', 'x_p [m]', 'x_s', 'x_s [m]']\n" ] } ], @@ -172,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -199,16 +191,16 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<pybamm.solvers.processed_variable.ProcessedVariable at 0x7f9c6faf3780>" + "<pybamm.solvers.processed_variable.ProcessedVariable at 0x7fc8687367b8>" ] }, - "execution_count": 27, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -226,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -235,7 +227,7 @@ "dict_keys(['Negative particle surface concentration [mol.m-3]', 'Electrolyte concentration [mol.m-3]', 'Positive particle surface concentration [mol.m-3]', 'Current [A]', 'Negative electrode potential [V]', 'Electrolyte potential [V]', 'Positive electrode potential [V]', 'Terminal voltage [V]', 'Time [h]'])" ] }, - "execution_count": 28, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -253,7 +245,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -266,7 +258,7 @@ " 0.9 , 0.925, 0.95 , 0.975])" ] }, - "execution_count": 29, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -284,7 +276,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -293,7 +285,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -302,7 +294,7 @@ "array([0. , 0.16666667, 0.25 , 0.47222222, 0.83333333])" ] }, - "execution_count": 33, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -320,7 +312,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -329,7 +321,7 @@ "array([298.15, 298.15, 298.15, 298.15, 298.15])" ] }, - "execution_count": 34, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -357,7 +349,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -383,12 +375,12 @@ "source": [ "## Stepping the solver\n", "\n", - "This solution was created in one go with the solver's solve method but it is also possible to step the solution and look at the results as we go. In doing so, the results are automatically updated at each step." + "The previous solution was created in one go with the solve method, but it is also possible to step the solution and look at the results as we go. In doing so, the results are automatically updated at each step." ] }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -396,30 +388,30 @@ "output_type": "stream", "text": [ "Time 0\n", - "[3.77057107 3.71259241]\n", + "[3.77047806 3.71250683]\n", "Time 360\n", - "[3.77057107 3.71259241 3.68218316]\n", + "[3.77047806 3.71250683 3.68215217]\n", "Time 720\n", - "[3.77057107 3.71259241 3.68218316 3.66126923]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574]\n", "Time 1080\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 ]\n", "Time 1440\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555 3.61158633]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 3.61166857]\n", "Time 1800\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555 3.61158633\n", - " 3.59708298]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 3.61166857\n", + " 3.59709451]\n", "Time 2160\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555 3.61158633\n", - " 3.59708298 3.58820658]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 3.61166857\n", + " 3.59709451 3.58821334]\n", "Time 2520\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555 3.61158633\n", - " 3.59708298 3.58820658 3.58048923]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 3.61166857\n", + " 3.59709451 3.58821334 3.58056055]\n", "Time 2880\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555 3.61158633\n", - " 3.59708298 3.58820658 3.58048923 3.55051681]\n", + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 3.61166857\n", + " 3.59709451 3.58821334 3.58056055 3.55158694]\n", "Time 3240\n", - "[3.77057107 3.71259241 3.68218316 3.66126923 3.64327555 3.61158633\n", - " 3.59708298 3.58820658 3.58048923 3.55051681 3.14247468]\n" + "[3.77047806 3.71250683 3.68215217 3.66125574 3.6433094 3.61166857\n", + " 3.59709451 3.58821334 3.58056055 3.55158694 3.16842636]\n" ] } ], @@ -427,10 +419,9 @@ "dt = 360\n", "time = 0\n", "end_time = solution[\"Time [s]\"].entries[-1]\n", - "step_solver = model.default_solver\n", - "step_solution = None\n", + "step_simulation = pybamm.Simulation(model)\n", "while time < end_time:\n", - " step_solution = step_solver.step(step_solution, model, dt=dt, npts=2)\n", + " step_solution = step_simulation.step(dt)\n", " print('Time', time)\n", " print(step_solution[\"Terminal voltage [V]\"].entries)\n", " time += dt" @@ -445,22 +436,22 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "<matplotlib.legend.Legend at 0x7f9c6f764278>" + "<matplotlib.legend.Legend at 0x7fc81b225da0>" ] }, - "execution_count": 37, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -506,7 +497,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, diff --git a/examples/notebooks/spatial_methods/finite-volumes.ipynb b/examples/notebooks/spatial_methods/finite-volumes.ipynb index 58454beffd..128d98f74a 100644 --- a/examples/notebooks/spatial_methods/finite-volumes.ipynb +++ b/examples/notebooks/spatial_methods/finite-volumes.ipynb @@ -47,8 +47,18 @@ { "cell_type": "code", "execution_count": 1, - "metadata": {}, - "outputs": [], + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", "import pybamm\n", @@ -156,7 +166,9 @@ { "cell_type": "code", "execution_count": 5, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -168,7 +180,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 936x288 with 2 Axes>" ] @@ -267,9 +279,7 @@ "cell_type": "code", "execution_count": 8, "metadata": { - "tags": [ - "raises-exception" - ] + "tags": [] }, "outputs": [ { @@ -298,7 +308,9 @@ { "cell_type": "code", "execution_count": 9, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -339,7 +351,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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Q0mZ0DmwbOj8WDZ03iwbOqcGgXI3Bdc5l2tmo4Av8HWymuycW2xm44Ak59w0YBK+y+Ur8TWfGOZd4uDh57F7HKgOvFvQt2mdc26QZ6GDhJ/HTkrg5/H7AuhnZkuAPOBO51yln7ng57G7HXjJzG7F1zzhSr3o5mNmb+P7Ay224H6eB4BwAOfcC/ju7zkLWAnsBUZ4k1TKms6BZUPnx7Kh82bZ0Dk1OJiOp4iIiIiIiARCeZyCKyIiIiIiIuWQClAREREREREJCBWgIiIiIiIiEhAqQEVERERERCQgVICKiIiIiIhIQKgAFRERERERkYBQASoiIiIiUsB89DeySBnRL5dIBWVm3c0s2cwizayamS02sw5e5xIREQk2ZtbMzJab2RRgEdDY60wiFZU557zOICJlxMweBCKBKCDVOfewx5FERESCjpk1A1YDvZxzcz2OI1KhqQAVqcDMrAowH8jEd1LN8ziSiIhI0CkoQL9xzjX3OotIRacpuCIVWwxQHaiB70qoiIiIFG+P1wFEKgMVoCIV24vA34E3gUc9ziIiIiIilVyY1wFEpGyY2RVAjnPuLTMLBWab2WnOua+9ziYiIiIilZPuARUREREREZGA0BRcERERERERCQgVoCIiIiIiIhIQKkBFREREREQkIFSAioiIiIiISECoABUREREREZGAUAEqIiIiIiIiAaECVERERERERALi/wFLJhCJmaU8agAAAABJRU5ErkJggg==\n", "text/plain": [ "<Figure size 936x288 with 2 Axes>" ] @@ -370,7 +382,9 @@ { "cell_type": "code", "execution_count": 11, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -403,7 +417,9 @@ { "cell_type": "code", "execution_count": 12, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -431,7 +447,9 @@ { "cell_type": "code", "execution_count": 13, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -470,7 +488,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nO3deXhV1dXH8e9KCAljmCICQaEWJ8IchgooKigOgAMCiqJWRFHAgm21yqso9q1FCxX1dUCoEw60WgXHOiuKkqCCEgcQVAKIDBJIyJz9/nGT9Ca5SS7kJnf6fZ6Hx+Sck3vXSeJis87ae5tzDhERCX8xwQ5AREQCQwldRCRCKKGLiEQIJXQRkQihhC4iEiEaBeuN27Vr57p06RKstxcRCUtr1qzZ5ZxL8nUuaAm9S5cupKenB+vtRUTCkpn9UN25WksuZrbEzH42sy+rOW9mttDMNprZOjPrW5dgRUTk0PhTQ38UGFnD+TOAbqV/pgAP1D0sERE5WLUmdOfc+8CeGi4ZAzzuPD4GWplZh0AFKCIi/glEDb0TsMXr88zSY9srX2hmU/CM4jniiCOqvFBhYSGZmZnk5eUFICyR+peQkEBycjJxcXHBDkWkYR+KOuceBh4GSE1NrbKITGZmJi1atKBLly6YWUOGJnLQnHPs3r2bzMxMunbtGuxwRALSh74V6Oz1eXLpsYOWl5dH27ZtlcwlLJgZbdu21b8oJWQEIqEvByaVdrsMArKcc1XKLf5SMpdwot9XCSX+tC0+DawCjjGzTDO7wsyuNrOrSy95BdgEbAQWAdfUW7QiImGspMTx55cz2LLnQL28fq01dOfchbWcd8C1AYsoRGVnZzNs2DD27NnDypUr6dixY/m5iRMnkp6eTlxcHAMGDOChhx7SQzIRqeKetzaw6IPN/CqpORcOqNoYUlday8UPRUVFjBs3jksuuYS77rqLMWPGsG/fvvLzEydO5Ouvv+aLL74gNzeXRx55JIjRikgoejNjB/e8tYHz+yYzoX/n2r/gEARt6n8oSktL44orrmD16tUUFxczYMAAnn32WRYsWMAZZ5zB9OnTAYiNjWXChAm8+OKLxMXFceaZZ5a/xoABA8jMzAzWLYhIKFm3DN66HZeVyfGuLde2vZTp546st2cvFqwt6FJTU13ltVy++uorjjvuOABuW7GejG37fH3pITu+Y0tuHdW9xmtmz55NXl4eubm5JCcn86c//cnv1y8sLGTgwIHcc889DB06tK7hSpjw/r0VKbduGayYAYW55YdKGjUhZvRC6DnukF/WzNY451J9ndMIvZJbbrmF/v37k5CQwMKFCw/qa6+55hpOPPFEJXMRgbdur5DMAWKKcj3H65DQaxKyCb22kXR92b17N9nZ2RQWFpKXl0ezZs38+rrbbruNnTt38tBDD9VzhCISFrKqKb1WdzwA9FC0kquuuoq5c+cyceJEbrjhBr++5pFHHuH111/n6aefJiZG31IRgbym1SxplZhcb++p7OPl8ccfJy4ujosuuogbb7yRtLQ03n777Vq/7uqrr2bHjh385je/oXfv3tx+++0NEK2IhKotew5w24Gx5BFf8URcEzj1lnp735AtuQTDpEmTmDRpEuDpZPnkk0/8+rqioqL6DEtEwkheYTFXP7mGHxnCrBFHk7D6r54yS2KyJ5nXU/0clNBFRALGOcdN//6C9dv2seSyVJKObQ+DL2mw91fJRUQkQB5f9QPPf7qV3w3vxinHtm/w91dCFxEJgNWb9zD3pQyGH3cYM07pFpQYVHIRETlUXjNBk2nLZS0mMX3cTcTEBGcVTo3QRUQORdlM0KwtGI6O7OKm4gdI3PDvoIWkhC4icihqmgkaJEro9axLly7s2rULgNzcXE466SSKi4tr/JoJEyawYcOGeo1rzpw53H333Yf0td9//z1PPfWUX9du376ds88++5DepzZl6xDNmTOn/HNfx3744Qf69u1L79696d69Ow8++GCF17nzzjtZunQpDz74ID169KB3794MGTKEjIwMAL744gsuu+yyerkHCWNBmAlam/CuoZfWrxqqx7NMUVERjRod/LduyZIlnHfeecTGxtZ43dSpU5k3bx6LFi061BDrVVlCv+iii2q9dv78+Vx55ZX1Esff//53WrZsSU5ODjfffDMnnXQS69evr3Js2LBhrFq1ivj4eLKzs0lJSWH06NHla9q//vrrLFu2jPj4eK6+2rNvy/Lly5k1axavvfYaPXr0IDMzkx9//NHn5uYSnXKbdqDJgW1VT9TjTNDahO8I3at+Bc7z3xUzPMfraO7cuRxzzDEMGTKECy+8kLvvvpthw4bxu9/9jtTUVO655x5WrFjBwIED6dOnD8OHD2fHjh2A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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAqHElEQVR4nO3deXhV1dXH8e9KCAljmCICQaEWJ8IchgooKigOgAMCiqJWRFHAgm21yqso9q1FCxX1dUCoEw60WgXHOiuKkqCCEgcQVAKIDBJIyJz9/nGT9Ca5SS7kJnf6fZ6Hx+Sck3vXSeJis87ae5tzDhERCX8xwQ5AREQCQwldRCRCKKGLiEQIJXQRkQihhC4iEiEaBeuN27Vr57p06RKstxcRCUtr1qzZ5ZxL8nUuaAm9S5cupKenB+vtRUTCkpn9UN25WksuZrbEzH42sy+rOW9mttDMNprZOjPrW5dgRUTk0PhTQ38UGFnD+TOAbqV/pgAP1D0sERE5WLUmdOfc+8CeGi4ZAzzuPD4GWplZh0AFKCIi/glEDb0TsMXr88zSY9srX2hmU/CM4jniiCOqvFBhYSGZmZnk5eUFICyR+peQkEBycjJxcXHBDkWkYR+KOuceBh4GSE1NrbKITGZmJi1atKBLly6YWUOGJnLQnHPs3r2bzMxMunbtGuxwRALSh74V6Oz1eXLpsYOWl5dH27ZtlcwlLJgZbdu21b8oJWQEIqEvByaVdrsMArKcc1XKLf5SMpdwot9XCSX+tC0+DawCjjGzTDO7wsyuNrOrSy95BdgEbAQWAdfUW7QiImGspMTx55cz2LLnQL28fq01dOfchbWcd8C1AYsoRGVnZzNs2DD27NnDypUr6dixY/m5iRMnkp6eTlxcHAMGDOChhx7SQzIRqeKetzaw6IPN/CqpORcOqNoYUlday8UPRUVFjBs3jksuuYS77rqLMWPGsG/fvvLzEydO5Ouvv+aLL74gNzeXRx55JIjRikgoejNjB/e8tYHz+yYzoX/n2r/gEARt6n8oSktL44orrmD16tUUFxczYMAAnn32WRYsWMAZZ5zB9OnTAYiNjWXChAm8+OKLxMXFceaZZ5a/xoABA8jMzAzWLYhIKFm3DN66HZeVyfGuLde2vZTp546st2cvFqwt6FJTU13ltVy++uorjjvuOABuW7GejG37fH3pITu+Y0tuHdW9xmtmz55NXl4eubm5JCcn86c//cnv1y8sLGTgwIHcc889DB06tK7hSpjw/r0VKbduGayYAYW55YdKGjUhZvRC6DnukF/WzNY451J9ndMIvZJbbrmF/v37k5CQwMKFCw/qa6+55hpOPPFEJXMRgbdur5DMAWKKcj3H65DQaxKyCb22kXR92b17N9nZ2RQWFpKXl0ezZs38+rrbbruNnTt38tBDD9VzhCISFrKqKb1WdzwA9FC0kquuuoq5c+cyceJEbrjhBr++5pFHHuH111/n6aefJiZG31IRgbym1SxplZhcb++p7OPl8ccfJy4ujosuuogbb7yRtLQ03n777Vq/7uqrr2bHjh385je/oXfv3tx+++0NEK2IhKotew5w24Gx5BFf8URcEzj1lnp735AtuQTDpEmTmDRpEuDpZPnkk0/8+rqioqL6DEtEwkheYTFXP7mGHxnCrBFHk7D6r54yS2KyJ5nXU/0clNBFRALGOcdN//6C9dv2seSyVJKObQ+DL2mw91fJRUQkQB5f9QPPf7qV3w3vxinHtm/w91dCFxEJgNWb9zD3pQyGH3cYM07pFpQYVHIRETlUXjNBk2nLZS0mMX3cTcTEBGcVTo3QRUQORdlM0KwtGI6O7OKm4gdI3PDvoIWkhC4icihqmgkaJEro9axLly7s2rULgNzcXE466SSKi4tr/JoJEyawYcOGeo1rzpw53H333Yf0td9//z1PPfWUX9du376ds88++5DepzZl6xDNmTOn/HNfx3744Qf69u1L79696d69Ow8++GCF17nzzjtZunQpDz74ID169KB3794MGTKEjIwMAL744gsuu+yyerkHCWNBmAlam/CuoZfWrxqqx7NMUVERjRod/LduyZIlnHfeecTGxtZ43dSpU5k3bx6LFi061BDrVVlCv+iii2q9dv78+Vx55ZX1Esff//53WrZsSU5ODjfffDMnnXQS69evr3Js2LBhrFq1ivj4eLKzs0lJSWH06NHla9q//vrrLFu2jPj4eK6+2rNvy/Lly5k1axavvfYaPXr0IDMzkx9//NHn5uYSnXKbdqDJgW1VT9TjTNDahO8I3at+Bc7z3xUzPMfraO7cuRxzzDEMGTKECy+8kLvvvpthw4bxu9/9jtTUVO655x5WrFjBwIED6dOnD8OHD2fHjh2AZy2Y0047je7duzN58mS8V7NcunQpY8aMAeDdd9+tMHKdNm0ajz76KABDhw7lzTff9Dlh6bvvvmPkyJH069ePoUOH8vXXX5OVlcWRRx5JSUkJADk5OXTu3JnCwkIWLVpE//796dWrF+effz4HDlTdKWXYsGGUrXy5a9cuunTpAngS99ChQ+nbty99+/blo48+AuDGG2/kgw8+oHfv3ixYsIDi4mL+8Ic/0L9/f3r27FlhPZvnnnuOkSNHAnDiiSfy+eefl58bMmQIa9eurfXnkZaWRs+ePcnLyyMnJ4fu3bvz5ZdfMnPmTHbu3MnChQsZOXIkp512ms9jjRs3Jj7eM2MvPz+//PsEsG/fPgoKCkhKSqJly5blx3NycioscTpq1CieeeaZWmOV6LBhx35uzTm/wWeC1iZ8E7qP+hWFda9fpaWl8dxzz7F27VpeffVVvJf4LSgoID09neuvv54hQ4bw8ccf89lnnzFhwgTmzZsHeBbpGjJkCOvXr+fcc8/lxx9/LP/aTZs2lSfLmsTExPDrX//aZ7KbMmUK9957L2vWrOHuu+/mmmuuITExkd69e/Pee+8B8NJLL3H66acTFxfHeeedR1paGmvXruW4445j8eLFfn8vDjvsMN544w0+/fRTnn32WWbMmAF4ShRDhw7l888/Z+bMmSxevJjExETS0tJIS0tj0aJFbN68mc2bN9O6devyZHrFFVeU/6X17bffkpeXR69evXjnnXfo3bt3lT8nnHACAP3792f06NHMnj2bP/7xj1x88cWkpKRwzz33kJSUxIwZM3jttdd44403fB4D2LJlCz179qRz587ccMMN5aPzN998k1NPPbX8nu+//36OOuoo/vjHP1ZYbTM1NZUPPvjA7++dRK69BwqY/Hg6b8cNI3fkfEjsDJjnv6PqtjRuXYVvyaWe6lcffvghY8aMISEhgYSEBEaNGlV+bvz48eUfZ2ZmMn78eLZv305BQQFdu3YF4P333+f5558H4KyzzqJ169aAZ+TbqlUrv+M47LDD2LZtG/369Ss/lp2dzUcffcQFF1xQfiw/P788tmeffZaTTz6ZZ555hmuu8Wzt+uWXXzJ79mz27t1LdnY2p59+ut8xFBYWMm3aND7//HNiY2P59ttvfV73n//8h3Xr1vGvf/0LgKysLDZs2EDz5s1JSkoqv+6CCy5g7ty53HXXXSxZsqS8Ln3yySdXGLn74mtZ4xkzZmBmzJkzhzlz5uCcY/jw4VWOAXTu3Jl169axbds2zjnnHMaOHUv79u157bXXuPzyy8vf59prr+Xaa6/lqaee4o477uCxxx4D/vvzkOhWVFzCtKc+Y/vePJ6eMojWR7aGQRcHO6xy4ZvQE5NLyy0+jtcT76V0p0+fzqxZsxg9ejTvvvtu+UO46jRp0oS8vLzyzxs1alThn/7e58o+b9KkSYVjJSUltGrVymfyGz16NDfddBN79uxhzZo1nHLKKQBcdtllvPDCC/Tq1YtHH32Ud999t8rXesfiHceCBQto3749a9eupaSkhISEBJ/35pzj3nvvrfKXxWeffVbh9Zo2bcqIESN48cUXWbZsGWvWrAHgnXfeYebMmVVet2nTpuVlHl/LGpeVRMq+994lEl/HADp27EhKSgoffPABY8eOZfXq1TzwwANV3nvChAlMnTq1/HNfPw+JPn9+5StWbtzFvLE96Xdk62CHU0X4llxOvcVTr/IWgPrV4MGDWbFiBXl5eWRnZ/PSSy/5vC4rK4tOnToBlI/iwFMnLusAefXVV/nll18AaN26NcXFxeUJ7sgjjyQjI4P8/Hz27t3LW2+9VeH1v/32W1JSUioca9myJV27duWf//wn4EmkZWWZ5s2b079/f6677jrOPvvs8gev+/fvp0OHDhQWFrJ06VKf99KlS5fy5Fo2yi67xw4dOhATE8MTTzxR3p3TokUL9u/fX37d6aefzgMPPEBhYWF57Dk5ORx99NF8//33Fd5r8uTJzJgxg/79+5f/66VshF75T1kyh0Nb1rhMZmYmubme8twvv/zCypUrOeaYY1i/fj3HHnts+ffKu7Po5Zdfplu3/8728/XzkCiwbhksSIE5rcj567HsXvUklw/uwrjU+tkTtK7CN6H3HOepVwW4flVWr+3ZsydnnHEGPXr0IDExscp1c+bM4YILLqBfv360a9eu/Pitt97K+++/T/fu3Xn++ecrdEWcdtpprFy5EvCUAMaNG0dKSgrjxo2jT58+5dft2LGDJk2acPjhhwOeJFhWy1+6dCmLFy+mV69edO/enRdffLH868aPH8+TTz5ZoTQ0d+5cBg4cyODBgzn22GN93vPvf/97HnjgAfr06VPeYgmeHZgee+wxevXqxddff13+L5SePXsSGxtLr169WLBgAZMnT+b444+nb9++pKSk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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -522,7 +540,9 @@ { "cell_type": "code", "execution_count": 16, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -550,7 +570,7 @@ }, { "data": { - "image/png": "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5syZOmDAgLS4T506paqqzZs3102bNqVtB3T69OlXXd82bdpodHR02nrVqlX1+PHj1/13cPd7CkRrOnnVnqW+BXnz+PFax5o0qFScP8/cRPsJKxkbGUarP5R2OjTjpPRGcHk4smv16tV07tyZwMBAAgMD6dixY9q+Hj16pC3HxsbSo0cPDh8+zMWLF6lcuTIAUVFRzJo1C0gtr1CsWOpzkcePH6do0d+fKH/ggQd45plnuHDhAt999x3NmzdPK6R2uYrmtRYuXMjChQupW7cuAGfOnCEmJobHH3+cY8eOcejQIeLi4ihWrBghISEkJSXx17/+laioKPz8/Dh48CBHjx7ljjvcjQe53rJly3j77bc5d+4cJ06coGbNmlddD4Dt27ezZcsW7rvvPiC1e6Rs2bJA6tPGpUqlzoUhIjz22GN89tln9O/fnzVr1jB16lSAtLvw9CxdujStrb+/P0WKFGHVqlV06dIlrSjdww8/zMqVK2nXrh0vvPACL730Eh06dCAiIuK6WC4fp2vXrled5/J1v1zWOrOqmVrCvw0P1ipLjbKFeerzDfSfvI6nW97J8/fdTR5/G8fjk9IZ2UWR60sYZ5YrK14OHTqU559/nk6dOrF8+XJGjBhxw88GBQWRmJiYth4YGEjLli1ZsGAB06dPp2fPnmn70quiqar85S9/4YknnrhuX/fu3Zk5cyZHjhxJ+4fp888/Jy4ujvXr1xMQEEClSpWuigGur+p5eX9iYiJPP/000dHRhISEMGLEiOs+ezmmmjVrsmbNmpv+zP3796djx44EBgbSvXv3tDpCPXr0YPv27dd9/vnnn6dPnz7Xbb+Ru+++mw0bNjB//nxeeeUVWrduzauvvur2+l/7Xcq11z2zqplahrpNlUoW4Kun76FngxA+WL6L3v/+gWOnr/8lND7AzcguAoJSt3ugadOmzJ07l8TERM6cOcM337ivTJKQkED58uUBmDJlStr25s2b88UXXwDw7bffpo30KFasGMnJyVclnR49ejBp0qS0O9PLduzYQWho6HXnbNu2LZ9++ilnzpwB4ODBgxw7diztWNOmTWPmzJl07949LcbSpUsTEBDAsmXL2Ldv33XHrFixItu2bePChQucOnWKJUuWAL8n/pIlS3LmzJmrpnUsVKgQp0+nPtNZrVo14uLi0hJ+UlISW7duBaB69ers3Lkz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\n", + "image/png": "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txy55SGMD3JoZNeVp2lv12effcYjjzyCv79/um1q1apFbGwsBw4cuNPwslxGE358fDzr1q2jefPm2RDVzW3bto3k5GSqVKlyw77k5GSefvrptMJ3QKZWM/U04Y8CHhCRGKCNax0RqS8ik640EpFVwH+A1iISKyJtPTxv1qodCc9vhZGn4fmt1Gw7kPnDI6hauiBPf76RN+Zt49Jlq7FvXDbPTB3JlQUju9566y2qVatGs2bNePTRRxkzZgwtW7bkueeeo379+kyYMIF58+bRqFEj6tatS5s2bTh2LPV7qPj4eB588EFq1qzJwIEDr3mi/PPPP6dz585A6h3l/Pnz0/b1798/rexyx44dmT59utvYRo8eTYMGDahduzavv/46ACNGjOCDDz5IazNy5EjGjBnD2bNnad26NfXq1aNWrVrMmXPjveGKFSvo0KFD2vrQoUOZMmUKAG+++SYNGjQgNDSUwYMHo6rMmjWL6OhoevfuTVhYGBcuXGDDhg20aNGC8PBw2rZty5EjqTdo//3vf2nXrh0Ay5Yto0uXLmnnWbx4MV27ds3Qf49jx47RtWtX6tSpQ506dfj+++8BePfddwkNDSU0NJTx48cDcO7cOdq3b0+dOnUIDQ1lxowZN1x7SP0L58UXX6ROnTqsXbuWiIgIlixZkvaPeadOnfjyyy8zFN8tqapXvsLDw9XbXExK1pFzt2rFl7/Rzu+v1thT550OyWSR7du3Z7zxuzVVXy984+vdmh7F8OOPP2qdOnX0woUL+ttvv2nVqlV19OjR2qJFC3366afT2p08eVJTUlJUVfXTTz/VF154QVVVhw0bpm+88Yaqqn7zzTcKaFxcnF68eFHLlCmT9vnZs2dr3759VVX14sWLGhwcrOfPp/5ur169Wjt06HBDbAsXLtRBgwZpSkqKJicna/v27XXlypW6ceNGbd68eVq76tWr64EDBzQpKUkTEhJUVTUuLk7vvvvutJgLFCigqqrLly/X9u3bp312yJAhOnnyZFVVjY+PT9vep08fnTt3rqqqtmjRQtevX6+qqpcuXdImTZro8ePHVVV1+vTpOmDAAFVV7du3b9pnUlJStFq1amntHn300bR9kZGRWqdOnRteU6dOTds/btw4VVW9fPmynj59WqOjozU0NFTPnj2rZ86c0Ro1aujGjRt11qxZOnDgwLS4T58+raqq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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] @@ -603,7 +623,9 @@ { "cell_type": "code", "execution_count": 17, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -645,7 +667,9 @@ { "cell_type": "code", "execution_count": 18, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -684,7 +708,9 @@ { "cell_type": "code", "execution_count": 19, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -758,7 +784,9 @@ { "cell_type": "code", "execution_count": 21, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -792,7 +820,9 @@ { "cell_type": "code", "execution_count": 22, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -828,7 +858,9 @@ { "cell_type": "code", "execution_count": 23, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -852,7 +884,9 @@ { "cell_type": "code", "execution_count": 24, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -893,7 +927,7 @@ { "data": { "text/plain": [ - "0.43073239500000016" + "0.3629279220000008" ] }, "execution_count": 25, @@ -914,7 +948,7 @@ { "data": { "text/plain": [ - "0.31223533000000003" + "0.29041175300000077" ] }, "execution_count": 26, @@ -943,14 +977,16 @@ { "cell_type": "code", "execution_count": 27, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "int(u) = [[0.08330729]] is approximately equal to 1/12, 0.08333333333333333\n", - "int(v/r) = [[33.23378862]] is approximately equal to 4 * pi**2 * sin(1), 33.21994294019605\n" + "int(v/r^2) = [[10.57864347]] is approximately equal to 4 * pi * sin(1), 10.574236256325824\n" ] } ], @@ -960,10 +996,10 @@ "print(\"int(u) = {} is approximately equal to 1/12, {}\".format(int_u_disc.evaluate(y=y), 1/12))\n", "\n", "# We divide v by r to evaluate the integral more easily\n", - "int_v_over_r = pybamm.Integral(v/r_var, r_var)\n", - "int_v_over_r_disc = disc.process_symbol(int_v_over_r)\n", - "print(\"int(v/r) = {} is approximately equal to 4 * pi**2 * sin(1), {}\".format(\n", - " int_v_over_r_disc.evaluate(y=y), 4 * np.pi**2 * np.sin(1))\n", + "int_v_over_r2 = pybamm.Integral(v/r_var**2, r_var)\n", + "int_v_over_r2_disc = disc.process_symbol(int_v_over_r2)\n", + "print(\"int(v/r^2) = {} is approximately equal to 4 * pi * sin(1), {}\".format(\n", + " int_v_over_r2_disc.evaluate(y=y), 4 * np.pi * np.sin(1))\n", ")" ] }, @@ -977,7 +1013,9 @@ { "cell_type": "code", "execution_count": 28, - "metadata": {}, + "metadata": { + "tags": [] + }, "outputs": [ { "name": "stdout", @@ -1005,7 +1043,7 @@ "print(\"int(u):\\n\")\n", "int_u_disc.render()\n", "print(\"\\nint(v):\\n\")\n", - "int_v_over_r_disc.render()" + "int_v_over_r2_disc.render()" ] }, { @@ -1038,8 +1076,8 @@ { "data": { "text/plain": [ - "matrix([[39.4784176, 39.4784176, 39.4784176, 39.4784176, 39.4784176,\n", - " 39.4784176, 39.4784176, 39.4784176, 39.4784176, 39.4784176]])" + "matrix([[12.56637061, 12.56637061, 12.56637061, 12.56637061, 12.56637061,\n", + " 12.56637061, 12.56637061, 12.56637061, 12.56637061, 12.56637061]])" ] }, "execution_count": 30, @@ -1048,7 +1086,7 @@ } ], "source": [ - "int_v_over_r_disc.children[0].evaluate() / micro_mesh.d_edges" + "int_v_over_r2_disc.children[0].evaluate() / micro_mesh.d_edges" ] }, { @@ -1106,7 +1144,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 936x288 with 3 Axes>" ] @@ -1153,7 +1191,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "<Figure size 936x288 with 3 Axes>" ] @@ -1170,11 +1208,10 @@ "rhs = model.concatenated_rhs.evaluate(0, y0)\n", "\n", "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(13,4))\n", - "# ax1.plot(x_fine, -10*np.sin(10*x_fine) - 5, x, rhs_c_e, \"o\")\n", - "ax1.plot(x, rhs_c_e, \"o\")\n", + "ax1.plot(x_fine, -10*np.sin(10*x_fine) - 5, x, rhs_c_e, \"o\")\n", "ax1.set_xlabel(\"x\")\n", "ax1.set_ylabel(\"rhs_c_e\")\n", - "# ax1.legend([\"1+0.1*sin(10*x)\", \"c_e_0\"], loc=\"best\")\n", + "ax1.legend([\"1+0.1*sin(10*x)\", \"c_e_0\"], loc=\"best\")\n", "\n", "ax2.plot(r, rhs_c_s, \"o\")\n", "ax2.set_xlabel(\"r\")\n", @@ -1195,6 +1232,134 @@ "The function `model.concatenated_rhs` is then passed to the solver to solve the model, with initial conditions `model.concatenated_initial_conditions`." ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upwinding and downwinding" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If a system is advection-dominated (Peclet number greater than around 40), then it is important to use upwinding (if velocity is positive) or downwinding (if velocity is negative) to obtain accurate results. To see this, consider the following model (without upwinding)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "54833e6b4121478fa4c3745f432796d4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', step=1.0), Output()), _dom_classes=('widget-inte…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model = pybamm.BaseModel()\n", + "model.length_scales = {\n", + " \"negative electrode\": pybamm.Scalar(1), \n", + " \"separator\": pybamm.Scalar(1), \n", + " \"positive electrode\": pybamm.Scalar(1)\n", + "}\n", + "\n", + "# Define concentration and velocity\n", + "c = pybamm.Variable(\"c\", domain=[\"negative electrode\", \"separator\", \"positive electrode\"])\n", + "v = pybamm.PrimaryBroadcastToEdges(1, [\"negative electrode\", \"separator\", \"positive electrode\"])\n", + "model.rhs = {c: -pybamm.div(c * v) + 1}\n", + "model.initial_conditions = {c: 0}\n", + "model.boundary_conditions = {c: {\"left\": (0, \"Dirichlet\")}}\n", + "model.variables = {\"c\": c}\n", + "\n", + "def solve_and_plot(model):\n", + " model_disc = disc.process_model(model, inplace=False)\n", + "\n", + " t_eval = [0,100]\n", + " solution = pybamm.CasadiSolver().solve(model_disc, t_eval)\n", + "\n", + " # plot\n", + " plot = pybamm.QuickPlot(solution,[\"c\"],spatial_unit=\"m\")\n", + " plot.dynamic_plot()\n", + " \n", + "solve_and_plot(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The concentration grows indefinitely, which is clearly an incorrect solution. Instead, we can use upwinding:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4640dbca7c8b41c48cd9005874725852", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', step=1.0), Output()), _dom_classes=('widget-inte…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model.rhs = {c: -pybamm.div(pybamm.upwind(c) * v) + 1} \n", + "solve_and_plot(model)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This gives the expected linear steady state from 0 to 1. Similarly, if the velocity is negative, downwinding gives accurate results" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f7b2befd8334499e95063fa7bcf8910b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "interactive(children=(FloatSlider(value=0.0, description='t', step=1.0), Output()), _dom_classes=('widget-inte…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "model.rhs = {c: -pybamm.div(pybamm.downwind(c) * (-v)) + 1} \n", + "model.boundary_conditions = {c: {\"right\": (0, \"Dirichlet\")}}\n", + "solve_and_plot(model)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1238,7 +1403,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.8.5" } }, "nbformat": 4, diff --git a/examples/notebooks/unsteady_heat_equation.ipynb b/examples/notebooks/unsteady-heat-equation.ipynb similarity index 100% rename from examples/notebooks/unsteady_heat_equation.ipynb rename to examples/notebooks/unsteady-heat-equation.ipynb diff --git a/examples/notebooks/using-model-options_thermal-example.ipynb b/examples/notebooks/using-model-options_thermal-example.ipynb index 09c52dc6f8..1eb8eced78 100644 --- a/examples/notebooks/using-model-options_thermal-example.ipynb +++ b/examples/notebooks/using-model-options_thermal-example.ipynb @@ -20,7 +20,15 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", "import pybamm\n", @@ -34,7 +42,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We then choose out model options, which a set as a dictionary. We choose to model the behaviour in the particle using Fickian diffusion (this is the default behaviour, but we pass the option explicitly here just to demonstrate the functionality of options). We also choose a lumped thermal model (note that this is fully-coupled, i.e. parameters can depend on temperature)." + "We then choose out model options, which a set as a dictionary. We choose to model the behaviour in the particle by assuming the concentration profile is quadratic within the particle. We also choose a lumped thermal model (note that this is fully-coupled, i.e. parameters can depend on temperature). For an in-depth look at the thermal models see the [thermal models notebook](models/thermal-models.ipynb)" ] }, { @@ -43,7 +51,7 @@ "metadata": {}, "outputs": [], "source": [ - "options = {\"particle\": \"Fickian diffusion\", \"thermal\": \"lumped\"}" + "options = {\"particle\": \"quadratic profile\", \"thermal\": \"lumped\"}" ] }, { @@ -66,7 +74,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We choose to use the parameters from [1]. We then update the heat transfer coefficients (see the [Parameter Values notebook](./parameter-values.ipynb) for more details)" + "We choose to use the parameters from [1]. We then update the heat transfer coefficient and increase the current to approximately 3C (see the [Parameter Values notebook](./parameter-values.ipynb) for more details)" ] }, { @@ -78,13 +86,8 @@ "param = pybamm.ParameterValues(chemistry=pybamm.parameter_sets.Marquis2019)\n", "param.update(\n", " {\n", - " \"Negative current collector\"\n", - " + \" surface heat transfer coefficient [W.m-2.K-1]\": 5,\n", - " \"Positive current collector\"\n", - " + \" surface heat transfer coefficient [W.m-2.K-1]\": 5,\n", - " \"Negative tab heat transfer coefficient [W.m-2.K-1]\": 0,\n", - " \"Positive tab heat transfer coefficient [W.m-2.K-1]\": 0,\n", - " \"Edge heat transfer coefficient [W.m-2.K-1]\": 0,\n", + " \"Total heat transfer coefficient [W.m-2.K-1]\": 1.0,\n", + " \"Current function [A]\": 3*0.68\n", " }\n", ")" ] @@ -93,70 +96,51 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We then use the default geometry, mesh and discretisation (see the [SPM notebook](./models/SPM.ipynb) for more details)" + "We then create and solve a simulation, making sure we pass in our updated parameter values" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "<pybamm.solvers.solution.Solution at 0x7f122f133630>" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# create geometry\n", - "geometry = model.default_geometry\n", - "\n", - "# process model and geometry\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)\n", - "\n", - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model);" + "simulation = pybamm.Simulation(model, parameter_values=param)\n", + "simulation.solve([0, 3600])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "We then solve using the default ODE solver for the SPMe" + "Finally we plot the terminal voltage and the cell temperature " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [ - "# solve model\n", - "solver = model.default_solver\n", - "t_eval = np.linspace(0, 3600, 250)\n", - "solution = solver.solve(model, t_eval)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally we plot the terminal voltage and the cell temperature using PyBaMM's `QuickPlot` functionality. " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "490c295be48344b7941b3548a8c1f186", + "model_id": "91facdda343442188b6b1ef786b530e3", "version_major": 2, "version_minor": 0 }, "text/plain": [ - "interactive(children=(FloatSlider(value=0.0, description='t', max=3599.9999999999995, step=35.99999999999999),…" + "interactive(children=(FloatSlider(value=0.0, description='t', max=1163.6363636363637, step=11.636363636363637)…" ] }, "metadata": {}, @@ -164,14 +148,11 @@ } ], "source": [ - "# plot\n", - "output_variables = [\n", + "simulation.plot([\n", " \"Terminal voltage [V]\",\n", " \"X-averaged cell temperature [K]\",\n", " \"Cell temperature [K]\",\n", - "]\n", - "quick_plot = pybamm.QuickPlot(solution, output_variables)\n", - "quick_plot.dynamic_plot();" + "])" ] }, { @@ -213,9 +194,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 2 -} \ No newline at end of file +} diff --git a/examples/notebooks/using-submodels.ipynb b/examples/notebooks/using-submodels.ipynb index 3c71bec1fa..c63e32f87e 100644 --- a/examples/notebooks/using-submodels.ipynb +++ b/examples/notebooks/using-submodels.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Using submodels in PyBaMM\n", - "In this notebook we show how to modify existing models by swapping out submodels, and how to build your own model from scratch using exisitng submodels. To see all of the models and submodels available in PyBaMM, please take a look at the documentation [here](https://pybamm.readthedocs.io/en/latest/source/models/index.html)." + "In this notebook we show how to modify existing models by swapping out submodels, and how to build your own model from scratch using existing submodels. To see all of the models and submodels available in PyBaMM, please take a look at the documentation [here](https://pybamm.readthedocs.io/en/latest/source/models/index.html)." ] }, { @@ -13,21 +13,27 @@ "metadata": {}, "source": [ "## Changing a submodel in an exisiting battery model\n", - "PyBaMM is designed to be a flexible modelling package that allows users to easily compare different models and numerical techniques within a common framework. Battery models within PyBaMM are built up using a number of submodels that describe different physics included within the model, such as mass conservation in the electrolyte or charge conservation in the solid. For ease of use, a number of popular battery models are pre-configured in PyBaMM. As an example, we look at the Single Particle Model (for more information see [here](./models/SPM.ipynb)). First we import PyBaMM and any other packages we need" + "PyBaMM is designed to be a flexible modelling package that allows users to easily compare different models and numerical techniques within a common framework. Battery models within PyBaMM are built up using a number of submodels that describe different physics included within the model, such as mass conservation in the electrolyte or charge conservation in the solid. For ease of use, a number of popular battery models are pre-configured in PyBaMM. As an example, we look at the Single Particle Model (for more information see [here](./models/SPM.ipynb)). \n", + "\n", + "First we import pybamm" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], "source": [ "%pip install pybamm -q # install PyBaMM if it is not installed\n", - "import pybamm\n", - "import os\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "os.chdir(pybamm.__path__[0]+'/..')" + "import pybamm" ] }, { @@ -62,28 +68,28 @@ "name": "stdout", "output_type": "stream", "text": [ - "external circuit <pybamm.models.submodels.external_circuit.current_control_external_circuit.CurrentControl object at 0x132b3c390>\n", - "porosity <pybamm.models.submodels.porosity.constant_porosity.Constant object at 0x132be6290>\n", - "electrolyte tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x132be6410>\n", - "electrode tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x132b38cd0>\n", - "through-cell convection <pybamm.models.submodels.convection.through_cell.no_convection.NoConvection object at 0x132be6510>\n", - "transverse convection <pybamm.models.submodels.convection.transverse.no_convection.NoConvection object at 0x132be65d0>\n", - "negative interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x132be66d0>\n", - "positive interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x132be6750>\n", - "negative interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x132be6850>\n", - "positive interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x132bce110>\n", - "negative oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x132be69d0>\n", - "positive oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x105da7490>\n", - "negative particle <pybamm.models.submodels.particle.fickian_single_particle.FickianSingleParticle object at 0x105da79d0>\n", - "positive particle <pybamm.models.submodels.particle.fickian_single_particle.FickianSingleParticle object at 0x105da0250>\n", - "negative electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x105d91590>\n", - "leading-order electrolyte conductivity <pybamm.models.submodels.electrolyte_conductivity.leading_order_conductivity.LeadingOrder object at 0x132be6150>\n", - "electrolyte diffusion <pybamm.models.submodels.electrolyte_diffusion.constant_concentration.ConstantConcentration object at 0x132be6a10>\n", - "positive electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x132be6b10>\n", - "thermal <pybamm.models.submodels.thermal.isothermal.Isothermal object at 0x132be6c10>\n", - "current collector <pybamm.models.submodels.current_collector.homogeneous_current_collector.Uniform object at 0x132be6d10>\n", - "negative sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x132be6e10>\n", - "positive sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x132be6f90>\n" + "external circuit <pybamm.models.submodels.external_circuit.current_control_external_circuit.CurrentControl object at 0x7f23674cf358>\n", + "porosity <pybamm.models.submodels.porosity.constant_porosity.Constant object at 0x7f23674cf470>\n", + "electrolyte tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x7f23674cf518>\n", + "electrode tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x7f23674cf5c0>\n", + "through-cell convection <pybamm.models.submodels.convection.through_cell.no_convection.NoConvection object at 0x7f23674cf668>\n", + "transverse convection <pybamm.models.submodels.convection.transverse.no_convection.NoConvection object at 0x7f23674c7080>\n", + "negative interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x7f23674c7160>\n", + "positive interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x7f23674cf780>\n", + "negative interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x7f23674cf828>\n", + "positive interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x7f23674cf8d0>\n", + "negative oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x7f23674cf978>\n", + "positive oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x7f23674cfa20>\n", + "negative particle <pybamm.models.submodels.particle.fickian_single_particle.FickianSingleParticle object at 0x7f23674cfac8>\n", + "positive particle <pybamm.models.submodels.particle.fickian_single_particle.FickianSingleParticle object at 0x7f23674cfb70>\n", + "negative electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x7f23674cfc18>\n", + "leading-order electrolyte conductivity <pybamm.models.submodels.electrolyte_conductivity.leading_order_conductivity.LeadingOrder object at 0x7f23674cfcc0>\n", + "electrolyte diffusion <pybamm.models.submodels.electrolyte_diffusion.constant_concentration.ConstantConcentration object at 0x7f23674cfd68>\n", + "positive electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x7f23674cfe10>\n", + "thermal <pybamm.models.submodels.thermal.isothermal.Isothermal object at 0x7f23674cfeb8>\n", + "current collector <pybamm.models.submodels.current_collector.homogeneous_current_collector.Uniform object at 0x7f23674cff60>\n", + "negative sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x7f2367460048>\n", + "positive sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x7f23674600f0>\n" ] } ], @@ -96,7 +102,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "When you load a model in PyBaMM it builds by default. Building the model sets all of the model variables and sets up any variables which are coupled between different submodels: this is the process which couples the submodels together and allows one submodel to access variables from another. If you would like to swap out a submodel in an exisitng battery model you need to load it without building it by passing the keyword `build=False`" + "When you load a model in PyBaMM it builds by default. Building the model sets all of the model variables and sets up any variables which are coupled between different submodels: this is the process which couples the submodels together and allows one submodel to access variables from another. If you would like to swap out a submodel in an existing battery model you need to load it without building it by passing the keyword `build=False`" ] }, { @@ -112,7 +118,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This collects all of the submodels which make up the SPM, but doesn't build the model. Now you are free to swap out one submodel for another. For instance, you may want to assume that diffusion within the negative particles is infinitely fast, so that the PDE describing diffusion is replaced with an ODE for the uniform particle concentration. To change a submodel you simply update the dictionary entry" + "This collects all of the submodels which make up the SPM, but doesn't build the model. Now you are free to swap out one submodel for another. For instance, you may want to assume that diffusion within the negative particles is infinitely fast, so that the PDE describing diffusion is replaced with an ODE for the uniform particle concentration. To change a submodel you simply update the dictionary entry, in this case to the `PolynomialSingleParticle` submodel" ] }, { @@ -121,7 +127,14 @@ "metadata": {}, "outputs": [], "source": [ - "model.submodels[\"negative particle\"] = pybamm.particle.FastSingleParticle(model.param, \"Negative\")" + "model.submodels[\"negative particle\"] = pybamm.particle.PolynomialSingleParticle(model.param, \"Negative\",\"uniform profile\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where we pass in the model parameters, the electrode (negative or positive) the submodel corresponds to, and the name of the polynomial we want to use. In the example we assume uniform concentration within the particle, corresponding to a zero-order polynomial." ] }, { @@ -140,28 +153,28 @@ "name": "stdout", "output_type": "stream", "text": [ - "external circuit <pybamm.models.submodels.external_circuit.current_control_external_circuit.CurrentControl object at 0x13313a510>\n", - "porosity <pybamm.models.submodels.porosity.constant_porosity.Constant object at 0x13313a890>\n", - "electrolyte tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x13313aad0>\n", - "electrode tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x13313aa10>\n", - "through-cell convection <pybamm.models.submodels.convection.through_cell.no_convection.NoConvection object at 0x13313a990>\n", - "transverse convection <pybamm.models.submodels.convection.transverse.no_convection.NoConvection object at 0x13313ab90>\n", - "negative interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x13314e110>\n", - "positive interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x13314e210>\n", - "negative interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x13314e310>\n", - "positive interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x13314e410>\n", - "negative oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x13314e510>\n", - "positive oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x13314e5d0>\n", - "negative particle <pybamm.models.submodels.particle.fast_single_particle.FastSingleParticle object at 0x105da7450>\n", - "positive particle <pybamm.models.submodels.particle.fickian_single_particle.FickianSingleParticle object at 0x13314e7d0>\n", - "negative electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x13314e8d0>\n", - "leading-order electrolyte conductivity <pybamm.models.submodels.electrolyte_conductivity.leading_order_conductivity.LeadingOrder object at 0x13313a310>\n", - "electrolyte diffusion <pybamm.models.submodels.electrolyte_diffusion.constant_concentration.ConstantConcentration object at 0x105da0290>\n", - "positive electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x105dab4d0>\n", - "thermal <pybamm.models.submodels.thermal.isothermal.Isothermal object at 0x105dab150>\n", - "current collector <pybamm.models.submodels.current_collector.homogeneous_current_collector.Uniform object at 0x105dab190>\n", - "negative sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x105d91510>\n", - "positive sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x10447e210>\n" + "external circuit <pybamm.models.submodels.external_circuit.current_control_external_circuit.CurrentControl object at 0x7f2366f79f60>\n", + "porosity <pybamm.models.submodels.porosity.constant_porosity.Constant object at 0x7f2366f810b8>\n", + "electrolyte tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x7f2366f81160>\n", + "electrode tortuosity <pybamm.models.submodels.tortuosity.bruggeman_tortuosity.Bruggeman object at 0x7f2366f81208>\n", + "through-cell convection <pybamm.models.submodels.convection.through_cell.no_convection.NoConvection object at 0x7f2366f812b0>\n", + "transverse convection <pybamm.models.submodels.convection.transverse.no_convection.NoConvection object at 0x7f2366f81358>\n", + "negative interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x7f2366f81400>\n", + "positive interface <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.InverseButlerVolmer object at 0x7f2366f814a8>\n", + "negative interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x7f2366f81550>\n", + "positive interface current <pybamm.models.submodels.interface.inverse_kinetics.inverse_butler_volmer.CurrentForInverseButlerVolmer object at 0x7f2366f815f8>\n", + "negative oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x7f2366f816a0>\n", + "positive oxygen interface <pybamm.models.submodels.interface.kinetics.no_reaction.NoReaction object at 0x7f2366f81748>\n", + "negative particle <pybamm.models.submodels.particle.polynomial_single_particle.PolynomialSingleParticle object at 0x7f236703dc18>\n", + "positive particle <pybamm.models.submodels.particle.fickian_single_particle.FickianSingleParticle object at 0x7f2366f81898>\n", + "negative electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x7f2366f81940>\n", + "leading-order electrolyte conductivity <pybamm.models.submodels.electrolyte_conductivity.leading_order_conductivity.LeadingOrder object at 0x7f2366f819e8>\n", + "electrolyte diffusion <pybamm.models.submodels.electrolyte_diffusion.constant_concentration.ConstantConcentration object at 0x7f2366f81a90>\n", + "positive electrode <pybamm.models.submodels.electrode.ohm.leading_ohm.LeadingOrder object at 0x7f2366f81b38>\n", + "thermal <pybamm.models.submodels.thermal.isothermal.Isothermal object at 0x7f2366f81be0>\n", + "current collector <pybamm.models.submodels.current_collector.homogeneous_current_collector.Uniform object at 0x7f2366f81c88>\n", + "negative sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x7f2366f81d30>\n", + "positive sei <pybamm.models.submodels.interface.sei.no_sei.NoSEI object at 0x7f2366f81dd8>\n" ] } ], @@ -228,9 +241,9 @@ { "data": { "text/plain": [ - "{Variable(-0x11f3d69832329702, Discharge capacity [A.h], children=[], domain=[], auxiliary_domains={}): Division(0xfe6b63457a1bf12, /, children=['Current function [A] * 96485.33212 * Maximum concentration in negative electrode [mol.m-3] * Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m] / function (absolute)', '3600.0'], domain=[], auxiliary_domains={}),\n", - " Variable(-0x65211aba4b095186, X-averaged negative particle surface concentration, children=[], domain=['current collector'], auxiliary_domains={}): Division(-0x726fd5195c623d17, /, children=[\"-3.0 * integral dx_n ['negative electrode'](broadcast(broadcast(Current function [A] / Typical current [A] * function (sign)) / Negative electrode thickness [m] / Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m]) - broadcast(0.0) + broadcast(0.0)) / Negative electrode thickness [m] / Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m]\", 'Negative electrode surface area to volume ratio [m-1] * Negative particle radius [m]'], domain=['current collector'], auxiliary_domains={}),\n", - " Variable(-0x1b6aca38edc602de, X-averaged positive particle concentration, children=[], domain=['positive particle'], auxiliary_domains={'secondary': \"['current collector']\"}): Multiplication(0x367b8f3b91a616af, *, children=['-1.0 / Positive particle radius [m] ** 2.0 / Positive electrode diffusivity [m2.s-1] / 96485.33212 * Maximum concentration in negative electrode [mol.m-3] * Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m] / function (absolute)', 'div(-Positive electrode diffusivity [m2.s-1] / Positive electrode diffusivity [m2.s-1] * grad(X-averaged positive particle concentration))'], domain=['positive particle'], auxiliary_domains={'secondary': \"['current collector']\"})}" + "{Variable(-0x3a598270a8eb6e0d, Discharge capacity [A.h], children=[], domain=[], auxiliary_domains={}): Division(-0x67bf165961891da0, /, children=['Current function [A] * 96485.33212 * Maximum concentration in negative electrode [mol.m-3] * Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m] / function (absolute)', '3600.0'], domain=[], auxiliary_domains={}),\n", + " Variable(-0x26eb1beb51f287ce, R-X-averaged negative particle concentration, children=[], domain=['current collector'], auxiliary_domains={}): Division(-0x13cd5de5ba47373f, /, children=[\"-3.0 * integral dx_n ['negative electrode'](broadcast(broadcast(Current function [A] / Typical current [A] * function (sign)) / Negative electrode thickness [m] / Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m]) - broadcast(0.0) + broadcast(0.0)) / Negative electrode thickness [m] / Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m]\", '3.0 * Negative electrode active material volume fraction / Negative particle radius [m] * Negative particle radius [m]'], domain=['current collector'], auxiliary_domains={}),\n", + " Variable(0x174cc116f4516de8, X-averaged positive particle concentration, children=[], domain=['positive particle'], auxiliary_domains={'secondary': \"['current collector']\"}): Multiplication(-0x617f4041866fdbc6, *, children=['-1.0 / Positive particle radius [m] ** 2.0 / Positive electrode diffusivity [m2.s-1] / 96485.33212 * Maximum concentration in negative electrode [mol.m-3] * Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m] / function (absolute)', 'div(-Positive electrode diffusivity [m2.s-1] / Positive electrode diffusivity [m2.s-1] * grad(X-averaged positive particle concentration))'], domain=['positive particle'], auxiliary_domains={'secondary': \"['current collector']\"})}" ] }, "execution_count": 9, @@ -246,7 +259,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now the model can be processed and solved in the usual way, and we still have access to model defaults such as the default geometry and default spatial methods" + "Now the model can be used in a simulation and solved in the usual way, and we still have access to model defaults such as the default geometry and default spatial methods which are used in the simulation" ] }, { @@ -256,64 +269,23 @@ "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "df45b8c8b48b415d83703b37df5d1099", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "<pybamm.models.full_battery_models.lithium_ion.spm.SPM at 0x133145290>" + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" ] }, - "execution_count": 10, "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# create geometry\n", - "geometry = model.default_geometry\n", - "\n", - "# load parameter values and process model and geometry\n", - "param = model.default_parameter_values\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)\n", - "\n", - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEJCAYAAACZjSCSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nO3deXRdZ3nv8e+jeZ6PZMmSPMiOHdtxbMcZCSFkhkIIEMbLVGhDW6C0QAvctpCE1dUbaOG2q1xKSoFAmUIgYFISyOAQArETx7Njx/E8S7JlyZJsSZb03D/OlqMIDce29hl0fp+1zjr77P2evZ/sSH70jtvcHRERSV8ZiQ5AREQSS4lARCTNKRGIiKQ5JQIRkTSnRCAikuaUCERE0lxWWCc2szzgKSA3uM4D7v75EWUagfuAMiAT+Iy7/3K881ZVVfnMmTNDiVlEZKp6/vnnj7p7ZLRjoSUCoBe4zt27zCwbeNrMHnb3VcPK/D1wv7t/zcwWAL8EZo530pkzZ7JmzZrQghYRmYrMbO9Yx0JLBB6dqdYVfMwOXiNnrzlQEmyXAofCikdEREYXah+BmWWa2XqgBXjU3VePKHIn8B4zO0C0NvCxMOMREZE/FGoicPcBd18C1AOXmdmiEUXeBXzb3euB1wPfNbM/iMnM7jCzNWa2prW1NcyQRUTSTlxGDbl7O7ASuGXEoQ8B9wdlngHygKpRvn+vuy939+WRyKh9HSIico5CSwRmFjGzsmA7H7gR2Dai2D7g+qDMhUQTgf7kFxGJozBHDdUC95lZJtGEc7+7P2RmdwNr3H0F8EngP83sr4l2HH/AtRyqiEhchTlqaCOwdJT9nxu2/QLwqrBiEBGRiaXNzOI9R7u555FtDA6qwiEiMlzaJIJfv3CErz25k8+v2IJan0REXhZmH0FS+dNXz+ZYVx9ff2oXedkZ/O/XX4iZJTosEZGES5tEYGZ85nXz6e0f5D9/u5ucrAw+ddM8JQMRSXtpkwggmgw+94YF9PYP8NWVO1m9q407b13IoumliQ5NRCRh0qaPYEhGhvGPt13EF29fzO6j3dz670/zdw9uorWzN9GhiYgkhKVax+ny5ct9slYf7Th1mq88up3vrtpLTmYG779qJh++ZjblhTmTcn4RkWRhZs+7+/JRj6VzIhiy+2g3//rYdn6+4RCFOVm878oZfPDqWVQV5U7qdUREEkWJIEbbmzv518df4pebDpOblcE7L23kT6+ZzfSy/FCuJyISL0oEZ2lnaxdfe3InP1t3EAfeuLiWO65pYkFdyYTfFRFJRkoE5+hg+ym++fRufvjsPrr7Brh6ThUfevUsXjM3QkaGhp2KSOpQIjhPHSdP89+r9/KdZ/bQfKKXpkghf/yqWbxl2XQKctJqBK6IpCglgknS1z/ILzcd5htP72LzwROU5GXxzssaee8VM2ioKEhITCIisVAimGTuzvN7j/Ot3+/hkc1HGHTnunnVvPfKGVyjZiMRSULjJQK1a5wDM2P5zAqWz6zgcMcpfrB6H99/dj+Pf+s5GisKePfljbztknoqNfxURFKAagSTpK9/kEe2HOF7q/ayencbOZkZ3LxoGu+6tIErZleqliAiCaWmoTh7qbmT763ex0/XHuBETz8zKgt4x6UNvHVZPTUleYkOT0TSkBJBgvScHuDhzYf5wbP7eXZ3GxkG186r5m2X1HPdhdXkZmUmOkQRSRPqI0iQvOxM3ry0njcvrWf30W5+vGY/P1l7gCe2tVBWkM0bF9fxlmXTWdJQpuWwRSRhVCOIs/6BQZ7ecZSfrD3Ir7ccobd/kFlVhdy2ZDq3La1jRmVhokMUkSlITUNJ6kTPaR7ZdIQH1x1k1e5juMPF9aW88eI63rC4jmml6k8QkcmhRJACDnec4hcbDrFiwyE2HzwBwKUzy3n9RbW8blGtkoKInBclghSzq7WLhzYe5pebDrPtSCcAyxrLeN2iWm5eOI3GSs1iFpGzo0SQwna0dPHwpsM8suUIWw5FawrzpxVz04IablwwjUXTS9TRLCITSkgiMLM84Ckgl+jopAfc/fMjynwFeG3wsQCodvey8c6bbolguP1tJ/nVliP8+oVm1uxpY9ChpiSX6+bXcP38aq6aU6lF8ERkVIlKBAYUunuXmWUDTwMfd/dVY5T/GLDU3T843nnTOREM19bdxxPbWnhiWzNPbT9KV28/OVkZXD6rgmvnVfOaCyI0RQpVWxARIEHzCDyaYbqCj9nBa7ys8y7g8+Mcl2EqCnO4/ZJ6br+knr7+QZ7d3caTL7aw8sUWvvDQC3wBmF6Wz6vnVnH13CquaqqiQs9iFpFRhNpHYGaZwPPAHOCr7v7pMcrNAFYB9e4+MN45VSOY2P62kzz1Uiu/3X6U3+08SmdPPwAL60q4qqmSK5squXRmBcV52QmOVETiJeGdxWZWBjwIfMzdN49y/NNEk8DHxvj+HcAdAI2NjZfs3bs3zHCnlP6BQTYe7OD3O47y25eOsm5fO30Dg2QYXDS9lMtmVXD5rGhiKC1QYhCZqhKeCIIgPgecdPd/HuXYOuAj7v77ic6jGsH56Tk9wNq9x3lm1zFW72pj/f5oYgCYV1PM8pnlLJ9ZziWNFTRU5KuPQWSKSEgfgZlFgNPu3m5m+cCNwD2jlJsPlAPPhBWLvCwvO5Or5lRx1ZwqIJoY1u9vZ82eNp7bc5wV6w/xvdX7AKgqymFpYzlLGspY2lDG4oYyinI1Kklkqgnzt7oWuC/oJ8gA7nf3h8zsbmCNu68Iyr0T+KGn2oSGKSIvO5MrZldyxexKAAYGne3Nnazdd5zn9xxn3f52Hn2hGQAzaIoUcXF9GRc3lLKwrpQFtSXk52gVVZFUpgllMqHj3X2sP9DOhv3tbDzQwcYD7Rzt6gMgM8OYEyliYV0JC+pKWDS9lAtrSyjNV3+DSDJJij6CyaJEkHjuzuGOHjYd7GBz8Npy6AQtnb1nykwvy+fC2hLmTytmfm0x86cVM7OykKzMjARGLpK+9DwCmVRmRl1ZPnVl+dy8cNqZ/a2dvWw51MHWw51sPXyCrYdPsPLFFgYGo39s5GRmMDtSyAU1xVxQU8TcmmIuqCmmoTxfCUIkgZQIZNJEinO5dl41186rPrOvt3+AHS1dvHikkxebO9l+pJPn9x5nxYZDZ8rkZGYwq6qQOdVFNFUX0RQppClSxOxIoZbMEIkD/ZZJqHKzMllYF+1YHq6rt58dLV1sb+5kZ0sXO1q62Hyog4c3H2ZwWGtlbWkesyOFzK6KJobZkSJmVxVSV5ZPZoaGtopMBiUCSYii3CyWNJSxpOGVawz29g+w99hJdrR0sau1i12t3exs7eJn6w7S2dt/plxOVgazKguD5FDIrKpoTWJ2pEgd1SJnSYlAkkpuVmbQh1D8iv3uztGuPna1drH7aDe7jnazq7WbF5s7efSFZvqHVSMixbk0RQqZW13M3Joi5lQXMa+mmMqi3Hj/54ikBCUCSQlmRqQ4l0hxLpcHcx6GnB4YZH/bSXa2drOrNdrMtGOUWkSkOJf504pZUFfCwrpSFtWVMLOykAw1MUmaUyKQlJedmRHtO4gUATVn9rs7LZ29vHikk+3NnWw70sm2Iyf41tN7ziyrUZKXxcXBzOnlMyu4ZEY5hZo9LWlGP/EyZZkZNSV51JTkcc0FkTP7+/oHo53TBztYt7+d9fvb+feVOxj06AS5RdNLuXpOJdfMjbBsRjnZGtoqU5wmlIkA3b39rN13nGd3t/HMzmOs29/OwKBTlJvFNRdUcfPCaVw7r1od0ZKyNKFMZAKFuVm8em6EV8+N1hxO9Jzm9zuO8ZvtrTy+tZlfbjpCVobxqjlV3HpxHTctrNHzHGTKUI1AZAKDg86GA+08suUI/7PxMAeOnyInK4MbLqzmrcvqueaCiJqPJOlprSGRSeLurN3Xzi82HGLFhkO0dfdRVZTDbUum87blDcybVjzxSUQSQIlAJAR9/YM8+WILP1l7gMe3ttA/6FxcX8rbljfwxsV1euKbJBUlApGQHevq5WfrD/HjNfvZdqSTnKwMblpQw1svqefVc6q0qJ4knBKBSJy4O1sOneCB5w/ws/UHaT95msrCHN6wuJZbl9SxtKFcE9gkIZQIRBKgt3+A37zYys/XH+Kxrc309g9SXZzLzQuncfPCaVw6q5zcLD3dTeJDiUAkwTp7TvPEthYe3nSEJ7e30HN6kIKcTK5qquSaCyJcObuSOdVFmKm2IOHQPAKRBCvOy+ZNS6bzpiXTOdU3wO92HOU321t5cnsLj21tAaCyMIdLZ1awtLGMixvKuGh6qZa7kLjQT5lInOXnZHLDghpuWFCDu7Ov7SSrd7Wxavcx1uw5ziNbjgBgBrMqC7mwtoQLa6Mrss6pLqKxokCdzzKplAhEEsjMmFFZyIzKQt5+aQMQHYG08UAH6/e3s/XwCTYebOd/Nh0+852czAwaKwuYWVnIrKoCZlQW0lhRQENFAXVleep3kLOmRCCSZCqLcnnt/GpeO//lR3529pxmZ2s3LzV3sqO1iz1Hu9l9tJunXmqlr3/wTDkzqC7Opb68gOnBc6Wnl+VRW5rPtNI86sryKS/IVl+EvIISgUgKKM7LHvWJboOD0aW297WdZO+xbg62n+LA8VMcPH4quizG5iNnltwekpuVwbTSPKaV5EXfh7ZL8qgO9kWKcsnJUvNTulAiEElhGRl25h/zy2ZV/MHxwUHnaFcvhzp6ONx+ikMdPTSf6OFwRw9HOk6xdt9xmjt6/yBZQLTzurokj5qSXGqKo++Rkjyqi3OjrxIljKkitERgZnnAU0BucJ0H3P3zo5R7O3An4MAGd393WDGJpJuMDKM6+Et/ZG1iiLtz/ORpjnT00NzZQ3NHD0dO9NDS2UvLiej2C4dOcLSrl8FRRpuXF2QTKc6lujjvzFPkIkXR96qiXKqKc6gqyqW8IIdMTaZLSmHWCHqB69y9y8yygafN7GF3XzVUwMzmAp8FXuXux82seqyTiUg4zIyKwhwqCnNYQMmY5foHBjnW3UfLiV5aOqOJorUz2D7RS2tXL3v2dNPS2fuKfoshGQYVhdGkUFkUvBdGtysLc6gsyg2OR7cLczLVlxEnoSUCj85U6wo+ZgevkX9P/CnwVXc/HnynJax4ROT8ZGVmnHniG5SOWc7d6eztp7Wzl6OdvRzt6uNoV++wV/Tzun3tHOvqpbtvYNTz5GZlvCJBDCWPqjPvuWdqIBUFOVq64zzEnAjMrMDdT57Nyc0sE3gemEP0H/zVI4pcEJT7HZAJ3Onuj5zNNUQkuZgZJXnZlORl0xQpmrD8qb4BjnX30tbdx7GuPo5199HW3Xtm+1hXL8e6+3ipuZOj3X2j1jayMuxMv8X0snxqgxFSjRUFNFYW0FhRQF62htWOZcJEYGZXAd8AioBGM7sY+LC7/8VE33X3AWCJmZUBD5rZInffPOL6c4FrgXrgKTO7yN3bR8RwB3AHQGNjY0z/YSKSGvJzMqnPKaC+vGDCsu5O11BtI6hZtAT9Gc0nejly4hRbD5/g8W3N9Jx+ZcKoL89nTnURc6uLWFBXwkXTS5lVVaR+C2KrEXwFuBlYAeDuG8zsmrO5iLu3m9lK4BZgeCI4AKx299PAbjPbTjQxPDfi+/cC90J0raGzubaITB1mRnFeNsV52cyOjF3O3TnW3cf+tpPsazvJnqMn2dnaxY6WLp7ZeYzeoFZRkJPJssZyLp9VweWzK1naWJaWT5uLqWnI3feP6LQZvVFvGDOLAKeDJJAP3AjcM6LYz4B3Ad8ysyqiTUW7YolJRGQsZnamH2FpY/krjvUPDLKztZtNBzvYeKCdZ3e38S+PbgegND+b6+dXc9PCGq6dV502zUmxJIL9QfOQB6N/Pg5sjeF7tcB9QT9BBnC/uz9kZncDa9x9BfAr4CYze4Focvkbdz92Tv8lIiIxyMrMYN60YuZNK+b2S+oBON7dx+rdx3j0hRYe39bMT9cdpKwgm9uX1fPuyxuZHUNfRyqbcBnq4C/1fwVuAAz4NfDxRP2DrWWoRSRM/QODrNrVxg+e28evNh+hf9C54cJqPnXzPOZPG3t4bbLT8whERM5BS2cPP1i9n288vYuu3n5uWzKdT950QUwd28nmvBKBmf3bKLs7iDbv/HwS4jsrSgQiEm/tJ/v42m928u3f7SE7M4O7bl3IW5ZNT6kJb+Mlgli6x/OAJcBLwWsx0aGeHzKz/ztpUYqIJKmyghw++7oLeewTr2FBbQmf/PEGPvr9dbSf7Et0aJMils7ixUSXgBgAMLOvAb8FrgY2hRibiEhSaago4Ad3XMHXn9rJl3+9nc2HOvjvD11OQ0XqNRUNF0uNoJzoZLIhhUBFkBh6Q4lKRCRJZWYYf3HtHH704Ss53t3H27/+DDtauib+YhKLJRF8EVhvZt8ys28D64AvmVkh8FiYwYmIJKtLZpTzow9fyekB5x1ff4bNBzsSHdI5i2nUkJnVApcFH59z90OhRjUOdRaLSDLZfbSb93xjNT2nB/jFx66mriw/0SGN6nw7iwF6gMPAcWDO2S4xISIyVc2qKuS+D15Gb/8gf/69tfT2T7jwQtKZMBGY2Z8QfcDMr4C7gvc7ww1LRCR1zKku4p/ftpgN+9u56xcvJDqcsxZLjeDjwKXAXnd/LbAUaB//KyIi6eWWRbX82Wua+P7qfdy/Zn+iwzkrsSSCHnfvATCzXHffBswLNywRkdTzqZsu4KqmSu5csYXmEz2JDidmsSSCA8HzBH4GPGpmPwf2hhuWiEjqycrM4P+8ZTH9A849j2xLdDgxmzARuPub3b3d3e8E/gH4L+BNYQcmIpKKGisL+ODVs/jp2oOs358areixdBZ/d2jb3X8TLB/9zVCjEhFJYR+9bg5VRbnc/YstpMLCnrE0DS0c/iF4vsAl4YQjIpL6inKz+Nub57F2XzsrNiRs2lXMxkwEZvZZM+sEFpvZieDVCbQAcV91VEQkldx+ST2Lppdwz8PbOD0wOPEXEmjMRODu/+TuxcCX3L0keBW7e6W7fzaOMYqIpJyMDOOvb7iAQx09/HpLc6LDGdeYq4+a2bJg88fDts9w97WhRSUiMgVcO6+a+vJ8vrtqD3+0uDbR4YxpvGWo/2WcYw5cN8mxiIhMKZkZxv+6fAb3PLKN7c2dXFBTnOiQRjVmIghmEYuIyHl4x6UNfOWx7Xz3mb184bZFiQ5nVLEMH802s780sweC10fNLDsewYmIpLqKwhzesLiWn649QFdvf6LDGVUsw0e/RnS46P8LXpcE+0REJAbvvWIG3X0DPLj2QKJDGVUsj6q81N0vHvb5CTPbEFZAIiJTzZKGMi6aXsp3ntnLe66YkXQPvY+lRjBgZk1DH8xsNpB6C26LiCSImfHOyxp4qaWLF5s7Ex3OH4glEfwNsNLMnjSz3wBPAJ+c6Etmlmdmz5rZBjPbYmZ3jVLmA2bWambrg9efnP1/gohI8rvxwhoAHt/akuBI/tCETUPu/riZzeXlpadfdPdYHlrfC1zn7l1B5/LTZvawu68aUe5H7v7RswtbRCS1VJfksbi+lMe2NvOR185JdDivEMuooY3AJ4Bud98YYxLAo7qCj9nBK/lXXxIRCcn182tYv7+do10x/TMaN7E0Db2RaJ/A/Wb2nJl9yswaYzm5mWWa2Xqi6xM96u6rRyn2VjPbGAxNbRjjPHeY2RozW9Pa2hrLpUVEks71F1bjDk9sS67moVieR7DX3b/o7pcA7wYWA7tjObm7D7j7EqAeuMzMRs6m+AUw090XA48C941xnnvdfbm7L49EIrFcWkQk6SysK6G2NI8nkqyfIJYaAWY2w8z+FvghMB/427O5iLu3AyuBW0bsPzasqekbaHlrEZnCzIzr5lfz25da6e1PnsGXsfQRrAYeDMq+zd0vc/fx1iEa+l4keMQlZpYP3AhsG1Fm+CpMtwJbzyJ2EZGUc8OFNXT3DbBqV1uiQzkjlgll73P3F8/h3LXAfcGDbDKA+939ITO7G1gTPOnsL83sVqAfaAM+cA7XERFJGVc2VZKXncHjW5t5zQXJ0dQdy/DRc0kCuPtGYOko+z83bPuzgJ5tICJpIy87k6vnRHh8awt33epJMcs4pj4CERGZPNfNr+Zg+yl2He1OdCiAEoGISNwtn1kOwPp97QmOJGq8J5S9ZbwvuvtPJz8cEZGprylSRFFuFuv3t/PWS+oTHc64fQRvHOeYA0oEIiLnIDPDWFxfyrr9xxMdCjD+E8r+OJ6BiIikkyUNZdz71C56Tg+Ql52Z0FhiGT6Kmf0RsBDIG9rn7neHFZSIyFS3pKGM/kFn88EOls+sSGgssUwo+w/gHcDHAAPeBswIOS4RkSltSWMZAOv3J77DOJZRQ1e5+/uA4+5+F3AlcEG4YYmITG3VxXlML8tnXYokglPB+0kzqwNOE501LCIi52FJY1lSDCGNJRE8FKwZ9CVgLbAH+EGYQYmIpIOlDWUcbD9FS2dPQuOIZRnqL7h7u7v/hGjfwHx3/4fwQxMRmdqWNAT9BAmuFcQ6augqYOZQeTPD3b8TYlwiIlPeoumlZGUY6/e3c9PCaQmLY8JEYGbfBZqA9USfVAbRCWVKBCIi5yEvO5P5tcUJHzkUS41gObDA3fW8YRGRSba0oZwH1x1kYNDJzEjMSqSxdBZvBhJXZxERmcKWNJTR1dvPrtauhMUQS42gCnjBzJ4Fhh4ribvfGlpUIiJpYt60YgB2tHQxt6Y4ITHEkgjuDDsIEZF0NauqEICdyVwjcPffxCMQEZF0VJibRW1pHrtaE/eQmvGeR/C0u19tZp1ERwmdOQS4u5eEHp2ISBpoihQltEYwZmexu18dvBe7e8mwV7GSgIjI5GmKFLKztZtEDc6MdUJZOdAwvLy7rw0rKBGRdDI7UkRXbz+tnb1Ul+RN/IVJFsuEsi8AHwB2AYPBbgeuCy8sEZH00RQpAmBHa1dyJgLg7UCTu/eFHYyISDpqqo6OHNrV2s1VTVVxv36sE8rKwg5ERCRdTSvJoyAnM2EdxrHUCP4JWGdmmzmLCWVmlgc8BeQG13nA3T8/Rtm3Ag8Al7r7mhhjFxGZEsyM2ZHChA0hjSUR3AfcA2zi5T6CWPQC17l7l5llA0+b2cPuvmp4ITMrBj4OrD6Lc4uITCmzq4pYu+94Qq4dSyI46e7/drYnDhapG6rnZAev0cZGfYFoovmbs72GiMhU0RQp4hcbD9FzeoC87My4XjuWPoLfmtk/mdmVZrZs6BXLyc0s08zWAy3Ao+6+esTxZUCDu//PBOe5w8zWmNma1tbWWC4tIpJSmqoLcYfdR+PfPBRLjWBp8H7FsH0xDR919wFgSfCoywfNbJG7bwYwswzgy0SHpk50nnuBewGWL1+u5bBFZMqZXRUdQrqztYsLa+M7Z3fcRGBmmcAKd//K+VzE3dvNbCVwC9FRSADFwCLgSTOD6FLXK8zsVnUYi0i6mVVViBkJ6TAet2ko+Iv+XedyYjOLBDUBzCwfuBHYNuzcHe5e5e4z3X0msApQEhCRtJSfk8n0svyEDCGNpWnod2b278CPgDOpKoYlJmqB+4JaRQZwv7s/ZGZ3A2vcfcW5Bi0iMhXNTtDic7EkgiXB+93D9k3YR+DuG3m5f2H4/s+NUf7aGGIREZmymiKFrNnThrsTNJnHRSzPI3htPAIREUl3TZEiTvYNcORED7Wl+XG77oTDR82sxsz+y8weDj4vMLMPhR+aiEh6mR08rWx3nDuMY5lH8G3gV0Bd8Hk78FdhBSQikq6ml0drAYc6euJ63TETgZkNNRtVufv9BMtLuHs/MBCH2ERE0kpNsAT14fZTcb3ueDWCZ4P3bjOrJFgewsyuADrCDkxEJN3kZWdSWZjD4RPxrRGM11k81GX9CWAF0GRmvwMiwO1hByYiko5qy/LiXiMYLxFEzOwTwfaDwC+JJode4AZgY8ixiYiknWkl+Rw4fjKu1xyvaSgTKCK6FEQh0aSRCRQE+0REZJLVleVxOM6dxePVCA67+93jHBcRkUk2rTSPjlOnOdnXT0FOLHN+z994NYL4TWsTEREA6oKJZPGsFYyXCK6PWxQiIgJEawQAh9uTIBG4e1vcohAREWB4jSB+I4dimVksIiJxUlOaCyRP05CIiMRZblYmVUU5SgQiIumstjRfTUMiIulsWmkeR1QjEBFJX3WleRyK4zITSgQiIklmWmk+J3r66e7tj8v1lAhERJJMXVkwlyBOzUNKBCIiSWba0HMJ4tRhrEQgIpJk6sriu8yEEoGISJKpLgkmlcVpmQklAhGRJBOdVJarpiERkXRWWxq/5xKElgjMLM/MnjWzDWa2xczuGqXMn5nZJjNbb2ZPm9mCsOIREUkl0USQ+jWCXuA6d78YWALcEjz4frjvu/tF7r4E+CLw5RDjERFJGXVl+alfI/CoruBjdvDyEWVODPtYOPK4iEi6mlaaR2dPP11xmFQWah+BmWWa2XqgBXjU3VePUuYjZraTaI3gL8c4zx1mtsbM1rS2toYZsohIUqgNHlBzJA7NQ6EmAncfCJp96oHLzGzRKGW+6u5NwKeBvx/jPPe6+3J3Xx6JRMIMWUQkKdQGD6g5FIchpHEZNeTu7cBK4JZxiv0QuC0e8YiIJLuaYC5BS2dv6NcKc9RQxMzKgu184EZg24gyc4d9/CPgpbDiERFJJRWFOQAc7+4L/VpZIZ67FrjPzDKJJpz73f0hM7sbWOPuK4CPmtkNwGngOPD+EOMREUkZRblZZGcax1I5Ebj7RmDpKPs/N2z742FdX0QklZkZFYU5tHWncNOQiIicn4rCXNriUCNQIhARSVKVhTlxaRpSIhARSVIVhTlx6SxWIhARSVIVqhGIiKS3isIcOnv66esfDPU6SgQiIknqzFyCk+HWCpQIRESSVGWQCI51KRGIiKSlctUIRETS25kaQcgdxkoEIiJJaqiPoK0r3NnFSgQiIkmqrCAHM0KfXaxEICKSpDIzjPKC8OcSKBGIiCSx8oJsdRaLiKSzysJcDR8VEUln0aWolQhERNJWRZESgYhIWqsoyOH4yT4GBz20aygRiIgksYrCHAYdOk6dDu0aSgQiIkmsslf7ScUAAAeaSURBVCj82cVKBCIiSezM7GIlAhGR9PRyIghvmQklAhGRJPZyIlAfgYhIWlKNQEQkzeVmZVKUm5WancVmlmdmz5rZBjPbYmZ3jVLmE2b2gpltNLPHzWxGWPGIiKSqsGcXh1kj6AWuc/eLgSXALWZ2xYgy64Dl7r4YeAD4YojxiIikpPJUTQQe1RV8zA5ePqLMSnc/GXxcBdSHFY+ISKqqTNVEAGBmmWa2HmgBHnX31eMU/xDw8BjnucPM1pjZmtbW1jBCFRFJWqncNIS7D7j7EqJ/6V9mZotGK2dm7wGWA18a4zz3uvtyd18eiUTCC1hEJAlVFkYfTuMeznpDcRk15O7twErglpHHzOwG4O+AW9093AdzioikoIrCHPr6B+nuGwjl/GGOGoqYWVmwnQ/cCGwbUWYp8HWiSaAlrFhERFJZ+ZmH2IfTPBRmjaAWWGlmG4HniPYRPGRmd5vZrUGZLwFFwI/NbL2ZrQgxHhGRlFQ5lAhCemRlVihnBdx9I7B0lP2fG7Z9Q1jXFxGZKsKeXayZxSIiSa6yMBcgtGcXKxGIiCS5yqIcbl5YQ01JXijnD61pSEREJkdhbhZff+/y0M6vGoGISJpTIhARSXNKBCIiaU6JQEQkzSkRiIikOSUCEZE0p0QgIpLmlAhERNKchbW+dVjMrBXYe45frwKOTmI4YUqVWBXn5EqVOCF1YlWcUTPcfdQHuqRcIjgfZrbG3cObnjeJUiVWxTm5UiVOSJ1YFefE1DQkIpLmlAhERNJcuiWCexMdwFlIlVgV5+RKlTghdWJVnBNIqz4CERH5Q+lWIxARkRHSJhGY2S1m9qKZ7TCzzyRBPHvMbFPwrOY1wb4KM3vUzF4K3suD/WZm/xbEvtHMloUY1zfNrMXMNg/bd9Zxmdn7g/Ivmdn74xjrnWZ2MLiv683s9cOOfTaI9UUzu3nY/lB/NsyswcxWmtkLZrbFzD4e7E+q+zpOnEl1T80sz8yeNbMNQZx3Bftnmdnq4Jo/MrOcYH9u8HlHcHzmRPGHHOe3zWz3sPu5JNifuN8nd5/yLyAT2AnMBnKADcCCBMe0B6gase+LwGeC7c8A9wTbrwceBgy4AlgdYlzXAMuAzecaF1AB7Arey4Pt8jjFeifwqVHKLgj+v+cCs4Kfh8x4/GwAtcCyYLsY2B7Ek1T3dZw4k+qeBvelKNjOBlYH9+l+4J3B/v8A/jzY/gvgP4LtdwI/Gi/+OMT5beD2Ucon7PcpXWoElwE73H2Xu/cBPwTelOCYRvMm4L5g+z7gtmH7v+NRq4AyM6sNIwB3fwpoO8+4bgYedfc2dz8OPArcEqdYx/Im4Ifu3uvuu4EdRH8uQv/ZcPfD7r422O4EtgLTSbL7Ok6cY0nIPQ3uS1fwMTt4OXAd8ECwf+T9HLrPDwDXm5mNE3/YcY4lYb9P6ZIIpgP7h30+wPg/4PHgwK/N7HkzuyPYV+Puh4PtI0BNsJ3o+M82rkTH+9Ggav3NoeaWcWKKa6xBs8RSon8dJu19HREnJNk9NbNMM1sPtBD9h3En0O7u/aNc80w8wfEOoDIRcbr70P38x+B+fsXMckfGOSKe0ONMl0SQjK5292XA64CPmNk1ww96tE6YdEO6kjWuYb4GNAFLgMPAvyQ2nJeZWRHwE+Cv3P3E8GPJdF9HiTPp7qm7D7j7EqCe6F/x8xMc0qhGxmlmi4DPEo33UqLNPZ9OYIhA+iSCg0DDsM/1wb6EcfeDwXsL8CDRH+bmoSaf4L0lKJ7o+M82roTF6+7NwS/fIPCfvFzVT2isZpZN9B/X77n7T4PdSXdfR4szWe9pEFs7sBK4kmhTStYo1zwTT3C8FDiWoDhvCZrg3N17gW+RBPczXRLBc8DcYFRBDtEOoxWJCsbMCs2seGgbuAnYHMQ0NCLg/cDPg+0VwPuCUQVXAB3DmhTi4Wzj+hVwk5mVB80INwX7Qjei7+TNRO/rUKzvDEaQzALmAs8Sh5+NoD36v4Ct7v7lYYeS6r6OFWey3VMzi5hZWbCdD9xItD9jJXB7UGzk/Ry6z7cDTwQ1sLHiDzPObcOSvxHtxxh+PxPz+zSZPc/J/CLaI7+daFvi3yU4ltlERytsALYMxUO03fJx4CXgMaDCXx598NUg9k3A8hBj+wHR6v9pom2RHzqXuIAPEu182wH8cRxj/W4Qy0aiv1i1w8r/XRDri8Dr4vWzAVxNtNlnI7A+eL0+2e7rOHEm1T0FFgPrgng2A58b9nv1bHBvfgzkBvvzgs87guOzJ4o/5DifCO7nZuC/eXlkUcJ+nzSzWEQkzaVL05CIiIxBiUBEJM0pEYiIpDklAhGRNKdEICKS5pQIRETSnBKBiEiaUyIQmQRmVm9m70h0HCLnQolAZHJcT/TZCCIpRzOLRc6TmV1NdF2bdqATeIu770psVCKxUyIQmQRm9gjRp3htnrCwSJJR05DI5JgHbEt0ECLnQolA5DyZWRXRJYP7JywskoSUCETO30zgUKKDEDlXSgQi528bUGVmm83sqkQHI3K21FksIpLmVCMQEUlzSgQiImlOiUBEJM0pEYiIpDklAhGRNKdEICKS5pQIRETSnBKBiEia+/+obs+/KaL66QAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, "output_type": "display_data" } ], "source": [ - "# solve model\n", - "t_eval = np.linspace(0, 3600, 100)\n", - "solution = model.default_solver.solve(model, t_eval)\n", - "\n", - "# extract time in seconds and terminal voltage\n", - "time = solution[\"Time [s]\"].entries\n", - "voltage = solution['Terminal voltage [V]'].entries\n", - "\n", - "# plot\n", - "plt.plot(time, voltage)\n", - "plt.xlabel(r'$t$')\n", - "plt.ylabel('Terminal voltage')\n", - "plt.show()" + "simulation = pybamm.Simulation(model)\n", + "simulation.solve([0, 3600])\n", + "simulation.plot()" ] }, { @@ -321,14 +293,14 @@ "metadata": {}, "source": [ "## Building a custom model from submodels\n", - "Instead of editing a pre-exisitng model, you may wish to build your own model from scratch by combining exisitng submodels of you choice. In this section, we build a Single Particle Model in which the diffusion is assumed infinitely fast in both particles. \n", + "Instead of editing a pre-existing model, you may wish to build your own model from scratch by combining existing submodels of you choice. In this section, we build a Single Particle Model in which the diffusion is assumed infinitely fast in both particles. \n", "\n", - "To begin, we load a base lithium-ion model. This sets up the basic model structure behind the scenes, and also sets the default paramaters to be those corresponding to a lithium-ion battery. Note that the base model does not select any default submodels, so there is no need to pass `build=False`." + "To begin, we load a base lithium-ion model. This sets up the basic model structure behind the scenes, and also sets the default parameters to be those corresponding to a lithium-ion battery. Note that the base model does not select any default submodels, so there is no need to pass `build=False`." ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -346,7 +318,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -357,17 +329,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We want to build a 1D model, so select the `Uniform` current collector model (if the current collectors are behaving uniformly, then a 1D model is appropriate). We also want the model to be isothermal, so slect the thermal model accordingly. " + "We want to build a 1D model, so select the `Uniform` current collector model (if the current collectors are behaving uniformly, then a 1D model is appropriate). We also want the model to be isothermal, so select the thermal model accordingly. Further, we assume that the porosity is constant in time." ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "model.submodels[\"current collector\"] = pybamm.current_collector.Uniform(model.param)\n", - "model.submodels[\"thermal\"] = pybamm.thermal.isothermal.Isothermal(model.param)" + "model.submodels[\"thermal\"] = pybamm.thermal.isothermal.Isothermal(model.param)\n", + "model.submodels[\"porosity\"] = pybamm.porosity.Constant(model.param)" ] }, { @@ -379,7 +352,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -395,20 +368,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We assume that diffusion is infinitely fast in both the negative and positive particles " + "We assume uniform concentration in both the negative and positive particles " ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ - "model.submodels[\"negative particle\"] = pybamm.particle.FastSingleParticle(\n", - " model.param, \"Negative\"\n", + "model.submodels[\"negative particle\"] = pybamm.particle.PolynomialSingleParticle(\n", + " model.param, \"Negative\", \"uniform profile\"\n", ")\n", - "model.submodels[\"positive particle\"] = pybamm.particle.FastSingleParticle(\n", - " model.param, \"Positive\"\n", + "model.submodels[\"positive particle\"] = pybamm.particle.PolynomialSingleParticle(\n", + " model.param, \"Positive\", \"uniform profile\"\n", ")" ] }, @@ -421,7 +394,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -452,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -469,7 +442,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -490,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -501,88 +474,33 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "We use the standard battery geometry with particles (default) and a current collector dimension of 0 (default)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "geometry = pybamm.battery_geometry(include_particles=True, current_collector_dimension=0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The base model does come with defaults for the parameters, spatial methods and submeshes, so we can now proceed to solve the model in the usual way " + "We can then use the model in a simulation in the usual way" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 20, "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "b72a4d3d547e416cac2871daf105072a", + "version_major": 2, + "version_minor": 0 + }, "text/plain": [ - "<pybamm.models.full_battery_models.lithium_ion.base_lithium_ion_model.BaseModel at 0x132f76890>" + "interactive(children=(FloatSlider(value=0.0, description='t', max=1.0, step=0.01), Output()), _dom_classes=('w…" ] }, - "execution_count": 22, "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# process model and geometry\n", - "param = model.default_parameter_values\n", - "param.process_model(model)\n", - "param.process_geometry(geometry)\n", - "\n", - "# set mesh\n", - "mesh = pybamm.Mesh(geometry, model.default_submesh_types, model.default_var_pts)\n", - "\n", - "# discretise model\n", - "disc = pybamm.Discretisation(mesh, model.default_spatial_methods)\n", - "disc.process_model(model)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, "output_type": "display_data" } ], "source": [ - "# solve model\n", - "t_eval = np.linspace(0, 3600, 100)\n", - "solver = pybamm.ScipySolver()\n", - "solution = solver.solve(model, t_eval)\n", - "\n", - "# extract time in seconds and terminal voltage\n", - "time = solution[\"Time [s]\"].entries\n", - "voltage = solution['Terminal voltage [V]'].entries\n", - "\n", - "# plot\n", - "plt.plot(time, voltage)\n", - "plt.xlabel(r'$t$')\n", - "plt.ylabel('Terminal voltage')\n", - "plt.show()" + "simulation = pybamm.Simulation(model)\n", + "simulation.solve([0, 3600])\n", + "simulation.plot()" ] }, { @@ -619,9 +537,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 2 -} \ No newline at end of file +} diff --git a/examples/scripts/DFN_half_cell.py b/examples/scripts/DFN_half_cell.py new file mode 100644 index 0000000000..a27c4af046 --- /dev/null +++ b/examples/scripts/DFN_half_cell.py @@ -0,0 +1,65 @@ +# +# Example showing how to load and solve the DFN for the half cell +# + +import pybamm +import numpy as np + +pybamm.set_logging_level("INFO") + +# load model +options = {"working electrode": "positive"} +model = pybamm.lithium_ion.BasicDFNHalfCell(options=options) + +# create geometry +geometry = model.default_geometry + +# load parameter values +chemistry = pybamm.parameter_sets.Chen2020 +param = pybamm.ParameterValues(chemistry=chemistry) + +# add lithium counter electrode parameter values +param.update( + { + "Lithium counter electrode exchange-current density [A.m-2]": 12.6, + "Lithium counter electrode conductivity [S.m-1]": 1.0776e7, + "Lithium counter electrode thickness [m]": 250e-6, + }, + check_already_exists=False, +) + +# process model and geometry +param.process_model(model) +param.process_geometry(geometry) + +# set mesh +var = pybamm.standard_spatial_vars +var_pts = {var.x_n: 30, var.x_s: 30, var.x_p: 30, var.r_n: 10, var.r_p: 10} +mesh = pybamm.Mesh(geometry, model.default_submesh_types, var_pts) + +# discretise model +disc = pybamm.Discretisation(mesh, model.default_spatial_methods) +disc.process_model(model) + +# solve model +t_eval = np.linspace(0, 3800, 1000) +solver = pybamm.CasadiSolver(mode="fast", atol=1e-6, rtol=1e-3) +solution = solver.solve(model, t_eval) + +# plot +plot = pybamm.QuickPlot( + solution, + [ + "Negative particle surface concentration [mol.m-3]", + "Electrolyte concentration [mol.m-3]", + "Positive particle surface concentration [mol.m-3]", + "Current [A]", + "Negative electrode potential [V]", + "Electrolyte potential [V]", + "Positive electrode potential [V]", + "Terminal voltage [V]", + ], + time_unit="seconds", + spatial_unit="um", +) +plot.dynamic_plot() diff --git a/examples/scripts/SPMe_SOC.py b/examples/scripts/SPMe_SOC.py index 8e99c37007..d58d782550 100644 --- a/examples/scripts/SPMe_SOC.py +++ b/examples/scripts/SPMe_SOC.py @@ -12,9 +12,6 @@ import numpy as np import matplotlib.pyplot as plt -plt.close("all") -pybamm.set_logging_level(30) - factor = 6.38 capacities = [] specific_capacities = [] @@ -56,8 +53,6 @@ "Maximum concentration in positive electrode [mol.m-3]": 50000, "Initial concentration in negative electrode [mol.m-3]": 12500, "Initial concentration in positive electrode [mol.m-3]": 25000, - "Negative electrode surface area to volume ratio [m-1]": 180000.0, - "Positive electrode surface area to volume ratio [m-1]": 150000.0, "Current function [A]": I_app, } ) @@ -79,8 +74,8 @@ # solve model t_eval = np.linspace(0, 3600, 100) sol = model.default_solver.solve(model, t_eval) - xpext = sol["Positive electrode average extent of lithiation"] - xnext = sol["Negative electrode average extent of lithiation"] + xpext = sol["X-averaged positive electrode extent of lithiation"] + xnext = sol["X-averaged negative electrode extent of lithiation"] xpsurf = sol["X-averaged positive particle surface concentration"] xnsurf = sol["X-averaged negative particle surface concentration"] time = sol["Time [h]"] @@ -133,3 +128,4 @@ ax1.set_ylabel("Capacity [mAh]") ax2.set_ylabel("Specific Capacity [mAh.cm-3]") ax2.set_xlabel("Anode : Cathode thickness") +plt.show() diff --git a/examples/scripts/compare_SPM_diffusion_models.py b/examples/scripts/compare_SPM_diffusion_models.py deleted file mode 100644 index 6e0530e260..0000000000 --- a/examples/scripts/compare_SPM_diffusion_models.py +++ /dev/null @@ -1,56 +0,0 @@ -# -# Compare SPM with Fickian (default) and fast diffusion in the particles -# -import argparse -import numpy as np -import pybamm - -parser = argparse.ArgumentParser() -parser.add_argument( - "--debug", action="store_true", help="Set logging level to 'DEBUG'." -) -args = parser.parse_args() -if args.debug: - pybamm.set_logging_level("DEBUG") -else: - pybamm.set_logging_level("INFO") - -# load models -models = [ - pybamm.lithium_ion.SPM(name="Fickian diffusion"), - pybamm.lithium_ion.SPM({"particle": "fast diffusion"}, name="Fast diffusion"), -] - -# load parameter values and process models and geometry -param = models[0].default_parameter_values -param.update({"Current function [A]": 1}) -for model in models: - param.process_model(model) - -# set mesh -var = pybamm.standard_spatial_vars -var_pts = {var.x_n: 10, var.x_s: 10, var.x_p: 10, var.r_n: 5, var.r_p: 5} - -# discretise models -for model in models: - # create geometry - geometry = model.default_geometry - param.process_geometry(geometry) - mesh = pybamm.Mesh(geometry, models[-1].default_submesh_types, var_pts) - disc = pybamm.Discretisation(mesh, model.default_spatial_methods) - disc.process_model(model) - -# solve model -solutions = [None] * len(models) -t_eval = np.linspace(0, 3600, 100) -for i, model in enumerate(models): - solutions[i] = model.default_solver.solve(model, t_eval) - -# plot -variables = [ - "X-averaged negative particle surface concentration [mol.m-3]", - "X-averaged positive particle surface concentration [mol.m-3]", - "Terminal voltage [V]", -] -plot = pybamm.QuickPlot(solutions, variables) -plot.dynamic_plot() diff --git a/examples/scripts/compare_comsol/compare_comsol_DFN.py b/examples/scripts/compare_comsol/compare_comsol_DFN.py index a9cafb0f1b..54542215fb 100644 --- a/examples/scripts/compare_comsol/compare_comsol_DFN.py +++ b/examples/scripts/compare_comsol/compare_comsol_DFN.py @@ -32,9 +32,16 @@ # load parameters and process model and geometry param = pybamm_model.default_parameter_values -param["Electrode width [m]"] = 1 -param["Electrode height [m]"] = 1 -param["Current function [A]"] = 24 * C_rates[C_rate] +param.update( + { + "Electrode width [m]": 1, + "Electrode height [m]": 1, + "Negative electrode conductivity [S.m-1]": 126, + "Positive electrode conductivity [S.m-1]": 16.6, + "Current function [A]": 24 * C_rates[C_rate], + } +) + param.process_model(pybamm_model) param.process_geometry(geometry) @@ -55,7 +62,7 @@ # Make Comsol 'model' for comparison whole_cell = ["negative electrode", "separator", "positive electrode"] comsol_t = comsol_variables["time"] -L_x = param.evaluate(pybamm.standard_parameters_lithium_ion.L_x) +L_x = param.evaluate(pybamm_model.param.L_x) def get_interp_fun(variable_name, domain): diff --git a/examples/scripts/compare_comsol/discharge_curve.py b/examples/scripts/compare_comsol/discharge_curve.py index cf105869be..10da794bf7 100644 --- a/examples/scripts/compare_comsol/discharge_curve.py +++ b/examples/scripts/compare_comsol/discharge_curve.py @@ -17,9 +17,15 @@ # load parameters and process model and geometry param = model.default_parameter_values -param["Electrode width [m]"] = 1 -param["Electrode height [m]"] = 1 -param["Current function [A]"] = "[input]" +param.update( + { + "Electrode width [m]": 1, + "Electrode height [m]": 1, + "Negative electrode conductivity [S.m-1]": 126, + "Positive electrode conductivity [S.m-1]": 16.6, + "Current function [A]": "[input]", + } +) param.process_model(model) param.process_geometry(geometry) diff --git a/examples/scripts/compare-dae-solver.py b/examples/scripts/compare_dae_solver.py similarity index 100% rename from examples/scripts/compare-dae-solver.py rename to examples/scripts/compare_dae_solver.py diff --git a/examples/scripts/compare_lithium_ion_particle_distribution.py b/examples/scripts/compare_lithium_ion_particle_distribution.py index b38180ad8b..04ead95b71 100644 --- a/examples/scripts/compare_lithium_ion_particle_distribution.py +++ b/examples/scripts/compare_lithium_ion_particle_distribution.py @@ -1,68 +1,40 @@ # -# Compare lithium-ion battery models +# Compare lithium-ion battery models with and without particle size distibution # -import argparse import numpy as np import pybamm -parser = argparse.ArgumentParser() -parser.add_argument( - "--debug", action="store_true", help="Set logging level to 'DEBUG'." -) -args = parser.parse_args() -if args.debug: - pybamm.set_logging_level("DEBUG") -else: - pybamm.set_logging_level("INFO") +pybamm.set_logging_level("INFO") # load models -options = {"thermal": "isothermal"} models = [ - pybamm.lithium_ion.DFN(options, name="standard DFN"), - pybamm.lithium_ion.DFN(options, name="particle DFN"), + pybamm.lithium_ion.DFN(name="standard DFN"), + pybamm.lithium_ion.DFN(name="particle DFN"), ] - -# load parameter values and process models and geometry +# load parameter values params = [models[0].default_parameter_values, models[1].default_parameter_values] -params[0]["Typical current [A]"] = 1.0 -params[0].process_model(models[0]) - - -params[1]["Typical current [A]"] = 1.0 def negative_distribution(x): - return 1 + x + return 1 + 2 * x / models[1].param.l_n def positive_distribution(x): - return 1 + (x - (1 - models[1].param.l_p)) + return 1 + 2 * (1 - x) / models[1].param.l_p params[1]["Negative particle distribution in x"] = negative_distribution params[1]["Positive particle distribution in x"] = positive_distribution -params[1].process_model(models[1]) -# set mesh -var = pybamm.standard_spatial_vars -var_pts = {var.x_n: 10, var.x_s: 10, var.x_p: 10, var.r_n: 5, var.r_p: 5} -# discretise models -for param, model in zip(params, models): - # create geometry - geometry = model.default_geometry - param.process_geometry(geometry) - mesh = pybamm.Mesh(geometry, models[-1].default_submesh_types, var_pts) - disc = pybamm.Discretisation(mesh, model.default_spatial_methods) - disc.process_model(model) - -# solve model -solutions = [None] * len(models) +# set up and solve simulations t_eval = np.linspace(0, 3600, 100) -for i, model in enumerate(models): - solutions[i] = pybamm.CasadiSolver().solve(model, t_eval) - +sols = [] +for model, param in zip(models, params): + sim = pybamm.Simulation(model, parameter_values=param) + sol = sim.solve(t_eval) + sols.append(sol) output_variables = [ "Negative particle surface concentration", @@ -78,5 +50,5 @@ def positive_distribution(x): ] # plot -plot = pybamm.QuickPlot(solutions, output_variables=output_variables) +plot = pybamm.QuickPlot(sols, output_variables=output_variables) plot.dynamic_plot() diff --git a/examples/scripts/compare_particle_models.py b/examples/scripts/compare_particle_models.py new file mode 100644 index 0000000000..ac66580f6e --- /dev/null +++ b/examples/scripts/compare_particle_models.py @@ -0,0 +1,35 @@ +# +# Compare models for diffusion within the electrode particles +# +import pybamm + +# load models +models = [ + pybamm.lithium_ion.DFN( + options={"particle": "Fickian diffusion"}, name="Fickian diffusion" + ), + pybamm.lithium_ion.DFN( + options={"particle": "uniform profile"}, name="uniform profile" + ), + pybamm.lithium_ion.DFN( + options={"particle": "quadratic profile"}, name="quadratic profile" + ), + pybamm.lithium_ion.DFN( + options={"particle": "quartic profile"}, name="quartic profile" + ), +] + +# pick parameter values +parameter_values = pybamm.ParameterValues(chemistry=pybamm.parameter_sets.Ecker2015) + +# create and solve simulations +sims = [] +for model in models: + sim = pybamm.Simulation(model, parameter_values=parameter_values) + sim.solve([0, 3600]) + sims.append(sim) + print("Particle model: {}".format(model.name)) + print("Solve time: {}s".format(sim.solution.solve_time)) + +# plot results +pybamm.dynamic_plot(sims) diff --git a/examples/scripts/compare_particle_shape.py b/examples/scripts/compare_particle_shape.py new file mode 100644 index 0000000000..0b09e868fe --- /dev/null +++ b/examples/scripts/compare_particle_shape.py @@ -0,0 +1,53 @@ +# +# Example showing how to prescribe the surface area per unit volume independent of +# the assumed particle shape. Setting the "particle shape" option to "user" returns +# a model which solves a spherical diffusion problem in the particles, but passes +# a user supplied surface area per unit volume +# + +import pybamm +import numpy as np + +pybamm.set_logging_level("INFO") + +models = [ + pybamm.lithium_ion.DFN({"particle shape": "spherical"}, name="spherical"), + pybamm.lithium_ion.DFN({"particle shape": "user"}, name="user"), +] +params = [models[0].default_parameter_values, models[0].default_parameter_values] + +# set up and solve simulations +solutions = [] +t_eval = np.linspace(0, 3600, 100) + +for model, param in zip(models, params): + if model.name == "user": + # add the user supplied parameters + param.update( + { + "Negative electrode surface area to volume ratio [m-1]": 170000, + "Positive electrode surface area to volume ratio [m-1]": 200000, + "Negative surface area per unit volume distribution in x": 1, + "Positive surface area per unit volume distribution in x": 1, + }, + check_already_exists=False, + ) + + sim = pybamm.Simulation(model, parameter_values=param) + solution = sim.solve(t_eval) + solutions.append(solution) + +# plot solutions +pybamm.dynamic_plot( + solutions, + [ + "Negative particle surface concentration [mol.m-3]", + "Positive particle surface concentration [mol.m-3]", + "Negative electrode interfacial current density [A.m-2]", + "Positive electrode interfacial current density [A.m-2]", + "Negative electrode potential [V]", + "Electrolyte potential [V]", + "Positive electrode potential [V]", + "Terminal voltage [V]", + ], +) diff --git a/examples/scripts/compare_spectral_volume.py b/examples/scripts/compare_spectral_volume.py new file mode 100644 index 0000000000..5e5e984903 --- /dev/null +++ b/examples/scripts/compare_spectral_volume.py @@ -0,0 +1,80 @@ +import pybamm +import numpy as np + +pybamm.set_logging_level("INFO") + +# set order of Spectral Volume method +order = 3 + +# load model +# don't use new_copy +models = [pybamm.lithium_ion.DFN(name="Finite Volume"), + pybamm.lithium_ion.DFN(name="Spectral Volume")] + +# create geometry +geometries = [m.default_geometry for m in models] + +# load parameter values and process model and geometry +params = [m.default_parameter_values for m in models] +for m, p, g in zip(models, params, geometries): + p.process_model(m) + p.process_geometry(g) + +# set mesh +var = pybamm.standard_spatial_vars +var_pts = {var.x_n: 1, var.x_s: 1, var.x_p: 1, var.r_n: 1, var.r_p: 1} +# the Finite Volume method also works on spectral meshes +meshes = [pybamm.Mesh( + geometry, + { + "negative particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "positive particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "negative electrode": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "separator": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "positive electrode": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "current collector": pybamm.SubMesh0D, + }, + var_pts) for geometry in geometries] + +# discretise model +disc_fv = pybamm.Discretisation(meshes[0], models[0].default_spatial_methods) +disc_sv = pybamm.Discretisation( + meshes[1], + { + "negative particle": pybamm.SpectralVolume(order=order), + "positive particle": pybamm.SpectralVolume(order=order), + "negative electrode": pybamm.SpectralVolume(order=order), + "separator": pybamm.SpectralVolume(order=order), + "positive electrode": pybamm.SpectralVolume(order=order), + "current collector": pybamm.ZeroDimensionalSpatialMethod() + } +) + +disc_fv.process_model(models[0]) +disc_sv.process_model(models[1]) + +# solve model +t_eval = np.linspace(0, 3600, 100) + +casadi_fv = pybamm.CasadiSolver(atol=1e-8, rtol=1e-8).solve(models[0], t_eval) +casadi_sv = pybamm.CasadiSolver(atol=1e-8, rtol=1e-8).solve(models[1], t_eval) +solutions = [casadi_fv, casadi_sv] + +# plot +plot = pybamm.QuickPlot(solutions) +plot.dynamic_plot() diff --git a/examples/scripts/create-model.py b/examples/scripts/create_model.py similarity index 100% rename from examples/scripts/create-model.py rename to examples/scripts/create_model.py diff --git a/examples/scripts/custom_model.py b/examples/scripts/custom_model.py index fb4057d0ea..70348ffb70 100644 --- a/examples/scripts/custom_model.py +++ b/examples/scripts/custom_model.py @@ -16,17 +16,18 @@ ) model.submodels["current collector"] = pybamm.current_collector.Uniform(model.param) model.submodels["thermal"] = pybamm.thermal.isothermal.Isothermal(model.param) +model.submodels["porosity"] = pybamm.porosity.Constant(model.param) model.submodels["negative electrode"] = pybamm.electrode.ohm.LeadingOrder( model.param, "Negative" ) model.submodels["positive electrode"] = pybamm.electrode.ohm.LeadingOrder( model.param, "Positive" ) -model.submodels["negative particle"] = pybamm.particle.FastSingleParticle( - model.param, "Negative" +model.submodels["negative particle"] = pybamm.particle.PolynomialSingleParticle( + model.param, "Negative", "uniform profile" ) -model.submodels["positive particle"] = pybamm.particle.FastSingleParticle( - model.param, "Positive" +model.submodels["positive particle"] = pybamm.particle.PolynomialSingleParticle( + model.param, "Positive", "uniform profile" ) model.submodels["negative interface"] = pybamm.interface.InverseButlerVolmer( model.param, "Negative", "lithium-ion main" diff --git a/examples/scripts/drive_cycle.py b/examples/scripts/drive_cycle.py index 9b37e3b714..2cae270be7 100644 --- a/examples/scripts/drive_cycle.py +++ b/examples/scripts/drive_cycle.py @@ -2,13 +2,30 @@ # Simulate drive cycle loaded from csv file # import pybamm +import pandas as pd +import os + +os.chdir(pybamm.__path__[0] + "/..") pybamm.set_logging_level("INFO") # load model and update parameters so the input current is the US06 drive cycle model = pybamm.lithium_ion.SPMe({"thermal": "lumped"}) param = model.default_parameter_values -param["Current function [A]"] = "[current data]US06" + + +# import drive cycle from file +drive_cycle = pd.read_csv( + "pybamm/input/drive_cycles/US06.csv", comment="#", header=None +).to_numpy() + +# create interpolant +timescale = param.evaluate(model.timescale) +current_interpolant = pybamm.Interpolant(drive_cycle, timescale * pybamm.t) + +# set drive cycle +param["Current function [A]"] = current_interpolant + # create and run simulation using the CasadiSolver in "fast" mode, remembering to # pass in the updated parameters diff --git a/pybamm/CITATIONS.txt b/pybamm/CITATIONS.txt index 59cc6160c3..206f9cfc94 100644 --- a/pybamm/CITATIONS.txt +++ b/pybamm/CITATIONS.txt @@ -193,3 +193,14 @@ eprint={2005.05127}, archivePrefix={arXiv}, primaryClass={physics.app-ph}, } + +@article{subramanian2005, + title={Efficient macro-micro scale coupled modeling of batteries}, + author={Subramanian, Venkat R and Diwakar, Vinten D and Tapriyal, Deepak}, + journal={Journal of The Electrochemical Society}, + volume={152}, + number={10}, + pages={A2002}, + year={2005}, + publisher={IOP Publishing} +} diff --git a/pybamm/__init__.py b/pybamm/__init__.py index 8e5b2074d1..8fb1d06f41 100644 --- a/pybamm/__init__.py +++ b/pybamm/__init__.py @@ -7,6 +7,7 @@ # import sys import os +from platform import system # # Version info @@ -100,12 +101,17 @@ def version(formatted=False): simplify_addition_subtraction, simplify_multiplication_division, ) + from .expression_tree.operations.evaluate import ( find_symbols, id_to_python_variable, to_python, EvaluatorPython, ) + +if system() != "Windows": + from .expression_tree.operations.evaluate import EvaluatorJax + from .expression_tree.operations.jacobian import Jacobian from .expression_tree.operations.convert_to_casadi import CasadiConverter from .expression_tree.operations.unpack_symbols import SymbolUnpacker @@ -154,14 +160,15 @@ def version(formatted=False): from .geometry import standard_spatial_vars # -# Parameters class and methods +# Parameter classes and methods # from .parameters.parameter_values import ParameterValues from .parameters import constants -from .parameters import geometric_parameters -from .parameters import electrical_parameters -from .parameters import thermal_parameters -from .parameters import standard_parameters_lithium_ion, standard_parameters_lead_acid +from .parameters.geometric_parameters import GeometricParameters +from .parameters.electrical_parameters import ElectricalParameters +from .parameters.thermal_parameters import ThermalParameters +from .parameters.lithium_ion_parameters import LithiumIonParameters +from .parameters.lead_acid_parameters import LeadAcidParameters from .parameters import parameter_sets @@ -178,6 +185,7 @@ def version(formatted=False): Exponential1DSubMesh, Chebyshev1DSubMesh, UserSupplied1DSubMesh, + SpectralVolume1DSubMesh, ) from .meshes.scikit_fem_submeshes import ( ScikitSubMesh2D, @@ -193,6 +201,7 @@ def version(formatted=False): from .spatial_methods.spatial_method import SpatialMethod from .spatial_methods.zero_dimensional_method import ZeroDimensionalSpatialMethod from .spatial_methods.finite_volume import FiniteVolume +from .spatial_methods.spectral_volume import SpectralVolume from .spatial_methods.scikit_finite_element import ScikitFiniteElement # @@ -209,6 +218,12 @@ def version(formatted=False): from .solvers.scikits_dae_solver import ScikitsDaeSolver from .solvers.scikits_ode_solver import ScikitsOdeSolver, have_scikits_odes from .solvers.scipy_solver import ScipySolver + +# Jax not supported under windows +if system() != "Windows": + from .solvers.jax_solver import JaxSolver + from .solvers.jax_bdf_solver import jax_bdf_integrate + from .solvers.idaklu_solver import IDAKLUSolver, have_idaklu # diff --git a/pybamm/discretisations/discretisation.py b/pybamm/discretisations/discretisation.py index 1e6de70f92..5c792767fe 100644 --- a/pybamm/discretisations/discretisation.py +++ b/pybamm/discretisations/discretisation.py @@ -927,7 +927,11 @@ def _process_symbol(self, symbol): return child_spatial_method.boundary_value_or_flux( symbol, disc_child, self.bcs ) - + elif isinstance(symbol, pybamm.UpwindDownwind): + direction = symbol.name # upwind or downwind + return spatial_method.upwind_or_downwind( + child, disc_child, self.bcs, direction + ) else: return symbol._unary_new_copy(disc_child) diff --git a/pybamm/expression_tree/binary_operators.py b/pybamm/expression_tree/binary_operators.py index f76e4ac7cf..ef49658ad5 100644 --- a/pybamm/expression_tree/binary_operators.py +++ b/pybamm/expression_tree/binary_operators.py @@ -730,6 +730,46 @@ def _binary_evaluate(self, left, right): return left < right +class Modulo(BinaryOperator): + "Calculates the remainder of an integer division" + + def __init__(self, left, right): + super().__init__("%", left, right) + + def _diff(self, variable): + """ See :meth:`pybamm.Symbol._diff()`. """ + # apply chain rule and power rule + left, right = self.orphans + # derivative if variable is in the base + diff = left.diff(variable) + # derivative if variable is in the right term (rare, check separately to avoid + # unecessarily big tree) + if any(variable.id == x.id for x in right.pre_order()): + diff += -pybamm.Floor(left / right) * right.diff(variable) + return diff + + def _binary_jac(self, left_jac, right_jac): + """ See :meth:`pybamm.BinaryOperator._binary_jac()`. """ + # apply chain rule and power rule + left, right = self.orphans + if left.evaluates_to_number() and right.evaluates_to_number(): + return pybamm.Scalar(0) + elif right.evaluates_to_number(): + return left_jac + elif left.evaluates_to_number(): + return -right_jac * pybamm.Floor(left / right) + else: + return left_jac - right_jac * pybamm.Floor(left / right) + + def __str__(self): + """ See :meth:`pybamm.Symbol.__str__()`. """ + return "{!s} mod {!s}".format(self.left, self.right) + + def _binary_evaluate(self, left, right): + """ See :meth:`pybamm.BinaryOperator._binary_evaluate()`. """ + return left % right + + class Minimum(BinaryOperator): " Returns the smaller of two objects " diff --git a/pybamm/expression_tree/broadcasts.py b/pybamm/expression_tree/broadcasts.py index fa13b74bc7..127c69a6c5 100644 --- a/pybamm/expression_tree/broadcasts.py +++ b/pybamm/expression_tree/broadcasts.py @@ -184,7 +184,11 @@ def check_and_set_domains( self, child, broadcast_type, broadcast_domain, broadcast_auxiliary_domains ): "See :meth:`Broadcast.check_and_set_domains`" - + if child.domain == []: + raise TypeError( + "Cannot take SecondaryBroadcast of an object with empty domain. " + "Use PrimaryBroadcast instead." + ) # Can only do secondary broadcast from particle to electrode or from # electrode to current collector if child.domain[0] in [ diff --git a/pybamm/expression_tree/operations/convert_to_casadi.py b/pybamm/expression_tree/operations/convert_to_casadi.py index 7ba7bc01b1..e47031e4fe 100644 --- a/pybamm/expression_tree/operations/convert_to_casadi.py +++ b/pybamm/expression_tree/operations/convert_to_casadi.py @@ -76,6 +76,8 @@ def _convert(self, symbol, t, y, y_dot, inputs): converted_left = self.convert(left, t, y, y_dot, inputs) converted_right = self.convert(right, t, y, y_dot, inputs) + if isinstance(symbol, pybamm.Modulo): + return casadi.fmod(converted_left, converted_right) if isinstance(symbol, pybamm.Minimum): return casadi.fmin(converted_left, converted_right) if isinstance(symbol, pybamm.Maximum): @@ -88,6 +90,10 @@ def _convert(self, symbol, t, y, y_dot, inputs): converted_child = self.convert(symbol.child, t, y, y_dot, inputs) if isinstance(symbol, pybamm.AbsoluteValue): return casadi.fabs(converted_child) + if isinstance(symbol, pybamm.Floor): + return casadi.floor(converted_child) + if isinstance(symbol, pybamm.Ceiling): + return casadi.ceil(converted_child) return symbol._unary_evaluate(converted_child) elif isinstance(symbol, pybamm.Function): diff --git a/pybamm/expression_tree/operations/evaluate.py b/pybamm/expression_tree/operations/evaluate.py index e43a961c59..7aa14e60ac 100644 --- a/pybamm/expression_tree/operations/evaluate.py +++ b/pybamm/expression_tree/operations/evaluate.py @@ -3,11 +3,18 @@ # import pybamm -# need numpy imported for code generated in EvaluatorPython -import numpy as np # noqa: F401 -import scipy.sparse # noqa: F401 +import numpy as np +import scipy.sparse from collections import OrderedDict +import numbers +from platform import system +if system() != "Windows": + import jax + + from jax.config import config + config.update("jax_enable_x64", True) + def id_to_python_variable(symbol_id, constant=False): """ @@ -16,15 +23,15 @@ def id_to_python_variable(symbol_id, constant=False): """ if constant: - var_format = "self.const_{:05d}" + var_format = "const_{:05d}" else: - var_format = "self.var_{:05d}" + var_format = "var_{:05d}" # Need to replace "-" character to make them valid python variable names return var_format.format(symbol_id).replace("-", "m") -def find_symbols(symbol, constant_symbols, variable_symbols): +def find_symbols(symbol, constant_symbols, variable_symbols, to_dense=False): """ This function converts an expression tree to a dictionary of node id's and strings specifying valid python code to calculate that nodes value, given y and t. @@ -50,48 +57,71 @@ def find_symbols(symbol, constant_symbols, variable_symbols): variable_symbol: collections.OrderedDict The output dictionary of variable (with y or t) symbol ids to lines of code + to_dense: bool + If True, all constants and expressions are converted to using dense matrices + """ if symbol.is_constant(): - constant_symbols[symbol.id] = symbol.evaluate() + value = symbol.evaluate() + if not isinstance(value, numbers.Number): + if to_dense and scipy.sparse.issparse(value): + constant_symbols[symbol.id] = value.toarray() + else: + constant_symbols[symbol.id] = value return # process children recursively for child in symbol.children: - find_symbols(child, constant_symbols, variable_symbols) + find_symbols(child, constant_symbols, variable_symbols, to_dense) # calculate the variable names that will hold the result of calculating the # children variables - children_vars = [ - id_to_python_variable(child.id, child.is_constant()) - for child in symbol.children - ] + children_vars = [] + for child in symbol.children: + if child.is_constant(): + child_eval = child.evaluate() + if isinstance(child_eval, numbers.Number): + children_vars.append(str(child_eval)) + else: + children_vars.append(id_to_python_variable(child.id, True)) + else: + children_vars.append(id_to_python_variable(child.id, False)) if isinstance(symbol, pybamm.BinaryOperator): # Multiplication and Division need special handling for scipy sparse matrices # TODO: we can pass through a dummy y and t to get the type and then hardcode # the right line, avoiding these checks if isinstance(symbol, pybamm.Multiplication): - symbol_str = ( - "scipy.sparse.csr_matrix({0}.multiply({1})) " - "if scipy.sparse.issparse({0}) else " - "scipy.sparse.csr_matrix({1}.multiply({0})) " - "if scipy.sparse.issparse({1}) else " - "{0} * {1}".format(children_vars[0], children_vars[1]) - ) + dummy_eval_left = symbol.children[0].evaluate_for_shape() + dummy_eval_right = symbol.children[1].evaluate_for_shape() + if not to_dense and scipy.sparse.issparse(dummy_eval_left): + symbol_str = "{0}.multiply({1})"\ + .format(children_vars[0], children_vars[1]) + elif not to_dense and scipy.sparse.issparse(dummy_eval_right): + symbol_str = "{1}.multiply({0})"\ + .format(children_vars[0], children_vars[1]) + else: + symbol_str = "{0} * {1}".format(children_vars[0], children_vars[1]) elif isinstance(symbol, pybamm.Division): - symbol_str = ( - "scipy.sparse.csr_matrix({0}.multiply(1/{1})) " - "if scipy.sparse.issparse({0}) else " - "{0} / {1}".format(children_vars[0], children_vars[1]) - ) + dummy_eval_left = symbol.children[0].evaluate_for_shape() + if not to_dense and scipy.sparse.issparse(dummy_eval_left): + symbol_str = "{0}.multiply(1/{1})"\ + .format(children_vars[0], children_vars[1]) + else: + symbol_str = "{0} / {1}".format(children_vars[0], children_vars[1]) + elif isinstance(symbol, pybamm.Inner): - symbol_str = ( - "{0}.multiply({1}) " - "if scipy.sparse.issparse({0}) else " - "{1}.multiply({0}) " - "if scipy.sparse.issparse({1}) else " - "{0} * {1}".format(children_vars[0], children_vars[1]) - ) + dummy_eval_left = symbol.children[0].evaluate_for_shape() + dummy_eval_right = symbol.children[1].evaluate_for_shape() + if not to_dense and scipy.sparse.issparse(dummy_eval_left): + symbol_str = "{0}.multiply({1})"\ + .format(children_vars[0], children_vars[1]) + elif not to_dense and scipy.sparse.issparse(dummy_eval_right): + symbol_str = "{1}.multiply({0})"\ + .format(children_vars[0], children_vars[1]) + else: + symbol_str = "{0} * {1}".format(children_vars[0], children_vars[1]) + elif isinstance(symbol, pybamm.Minimum): symbol_str = "np.minimum({},{})".format(children_vars[0], children_vars[1]) elif isinstance(symbol, pybamm.Maximum): @@ -108,19 +138,22 @@ def find_symbols(symbol, constant_symbols, variable_symbols): else: symbol_str = symbol.name + children_vars[0] - # For a Function we create two lines of code, one in constant_symbols that - # contains the function handle, the other in variable_symbols that calls that - # function on the children variables elif isinstance(symbol, pybamm.Function): - constant_symbols[symbol.id] = symbol.function - funct_var = id_to_python_variable(symbol.id, True) children_str = "" for child_var in children_vars: if children_str == "": children_str = child_var else: children_str += ", " + child_var - symbol_str = "{}({})".format(funct_var, children_str) + if isinstance(symbol.function, np.ufunc): + # write any numpy functions directly + symbol_str = "np.{}({})".format(symbol.function.__name__, children_str) + else: + # unknown function, store it as a constant and call this in the + # generated code + constant_symbols[symbol.id] = symbol.function + funct_var = id_to_python_variable(symbol.id, True) + symbol_str = "{}({})".format(funct_var, children_str) elif isinstance(symbol, pybamm.Concatenation): @@ -132,8 +165,10 @@ def find_symbols(symbol, constant_symbols, variable_symbols): symbol_str = "{}".format(",".join(children_vars)) elif isinstance(symbol, pybamm.SparseStack): - if len(children_vars) > 1: + if not to_dense and len(children_vars) > 1: symbol_str = "scipy.sparse.vstack(({}))".format(",".join(children_vars)) + elif len(children_vars) > 1: + symbol_str = "np.vstack(({}))".format(",".join(children_vars)) else: symbol_str = "{}".format(",".join(children_vars)) @@ -164,9 +199,15 @@ def find_symbols(symbol, constant_symbols, variable_symbols): # Note: we assume that y is being passed as a column vector elif isinstance(symbol, pybamm.StateVector): - symbol_str = "y[:{}][{}]".format( - len(symbol.evaluation_array), symbol.evaluation_array - ) + indices = np.argwhere(symbol.evaluation_array).reshape(-1).astype(np.int32) + consecutive = np.all(indices[1:] - indices[:-1] == 1) + if len(indices) == 1 or consecutive: + symbol_str = "y[{}:{}]".format(indices[0], indices[-1] + 1) + else: + indices_array = pybamm.Array(indices) + constant_symbols[indices_array.id] = indices + index_name = id_to_python_variable(indices_array.id, True) + symbol_str = "y[{}]".format(index_name) elif isinstance(symbol, pybamm.Time): symbol_str = "t" @@ -182,7 +223,7 @@ def find_symbols(symbol, constant_symbols, variable_symbols): variable_symbols[symbol.id] = symbol_str -def to_python(symbol, debug=False): +def to_python(symbol, debug=False, to_dense=False): """ This function converts an expression tree into a dict of constant input values, and valid python code that acts like the tree's :func:`pybamm.Symbol.evaluate` function @@ -202,12 +243,14 @@ def to_python(symbol, debug=False): the expression tree str: valid python code that will evaluate all the variable nodes in the tree. + to_dense: bool + If True, all constants and expressions are converted to using dense matrices """ constant_values = OrderedDict() variable_symbols = OrderedDict() - find_symbols(symbol, constant_values, variable_symbols) + find_symbols(symbol, constant_values, variable_symbols, to_dense) line_format = "{} = {}" @@ -246,28 +289,186 @@ class EvaluatorPython: """ def __init__(self, symbol): - constants, self._variable_function = pybamm.to_python(symbol, debug=False) + constants, python_str = pybamm.to_python(symbol, debug=False) - # store all the constant symbols in the tree as internal variables of this - # object - for symbol_id, value in constants.items(): - setattr( - self, id_to_python_variable(symbol_id, True).replace("self.", ""), value - ) + # extract constants in generated function + for i, symbol_id in enumerate(constants.keys()): + const_name = id_to_python_variable(symbol_id, True) + python_str = '{} = constants[{}]\n'.format(const_name, i) + python_str + + # constants passed in as an ordered dict, convert to list + self._constants = list(constants.values()) + + # indent code + python_str = ' ' + python_str + python_str = python_str.replace('\n', '\n ') + + # add function def to first line + python_str = 'def evaluate(constants, t=None, y=None, '\ + 'y_dot=None, inputs=None, known_evals=None):\n' + python_str # calculate the final variable that will output the result of calling `evaluate` # on `symbol` - self._result_var = id_to_python_variable(symbol.id, symbol.is_constant()) + result_var = id_to_python_variable(symbol.id, symbol.is_constant()) + if symbol.is_constant(): + result_value = symbol.evaluate() - # compile the generated python code - self._variable_compiled = compile( - self._variable_function, self._result_var, "exec" + # add return line + if symbol.is_constant() and isinstance(result_value, numbers.Number): + python_str = python_str + '\n return ' + str(result_value) + else: + python_str = python_str + '\n return ' + result_var + + # store a copy of examine_jaxpr + python_str = python_str + \ + '\nself._evaluate = evaluate' + + self._python_str = python_str + self._symbol = symbol + + # compile and run the generated python code, + compiled_function = compile( + python_str, result_var, "exec" ) + exec(compiled_function) + + def evaluate(self, t=None, y=None, y_dot=None, inputs=None, known_evals=None): + """ + Acts as a drop-in replacement for :func:`pybamm.Symbol.evaluate` + """ + # generated code assumes y is a column vector + if y is not None and y.ndim == 1: + y = y.reshape(-1, 1) + + result = self._evaluate(self._constants, t, y, y_dot, inputs, known_evals) - # compile the line that will return the output of `evaluate` - self._return_compiled = compile( - self._result_var, "return" + self._result_var, "eval" + # don't need known_evals, but need to reproduce Symbol.evaluate signature + if known_evals is not None: + return result, known_evals + else: + return result + + +class EvaluatorJax: + """ + Converts a pybamm expression tree into pure python code that will calculate the + result of calling `evaluate(t, y)` on the given expression tree. The resultant code + is compiled with JAX + + Limitations: JAX currently does not work on expressions involving sparse matrices, + so any sparse matrices and operations involved sparse matrices are converted to + their dense equivilents before compilation + + Raises + ------ + RuntimeError + if any sparse matrices are present in the expression tree + + Parameters + ---------- + + symbol : :class:`pybamm.Symbol` + The symbol to convert to python code + + + """ + + def __init__(self, symbol): + constants, python_str = pybamm.to_python(symbol, debug=False, to_dense=True) + + # replace numpy function calls to jax numpy calls + python_str = python_str.replace('np.', 'jax.numpy.') + + # convert all numpy constants to device vectors + for symbol_id in constants: + if isinstance(constants[symbol_id], np.ndarray): + constants[symbol_id] = jax.device_put(constants[symbol_id]) + + # extract constants in generated function + for i, symbol_id in enumerate(constants.keys()): + const_name = id_to_python_variable(symbol_id, True) + python_str = '{} = constants[{}]\n'.format(const_name, i) + python_str + + # constants passed in as an ordered dict, convert to list + self._constants = list(constants.values()) + + # indent code + python_str = ' ' + python_str + python_str = python_str.replace('\n', '\n ') + + # add function def to first line + python_str = 'def evaluate_jax(constants, t=None, y=None, '\ + 'y_dot=None, inputs=None, known_evals=None):\n' + python_str + + # calculate the final variable that will output the result of calling `evaluate` + # on `symbol` + result_var = id_to_python_variable(symbol.id, symbol.is_constant()) + if symbol.is_constant(): + result_value = symbol.evaluate() + + # add return line + if symbol.is_constant() and isinstance(result_value, numbers.Number): + python_str = python_str + '\n return ' + str(result_value) + else: + python_str = python_str + '\n return ' + result_var + + # store a copy of examine_jaxpr + python_str = python_str + \ + '\nself._evaluate_jax = evaluate_jax' + + # compile and run the generated python code, + compiled_function = compile( + python_str, result_var, "exec" ) + exec(compiled_function) + + self._jit_evaluate = jax.jit(self._evaluate_jax, static_argnums=(0, 4, 5)) + + # store a jit version of evaluate_jax's jacobian + jacobian_evaluate = jax.jacfwd(self._evaluate_jax, argnums=2) + self._jac_evaluate = jax.jit(jacobian_evaluate, static_argnums=(0, 4, 5)) + + def get_jacobian(self): + return EvaluatorJaxJacobian(self._jac_evaluate, self._constants) + + def debug(self, t=None, y=None, y_dot=None, inputs=None, known_evals=None): + # generated code assumes y is a column vector + if y is not None and y.ndim == 1: + y = y.reshape(-1, 1) + + # execute code + jaxpr = jax.make_jaxpr(self._evaluate_jax)( + self._constants, t, y, y_dot, inputs, known_evals + ).jaxpr + print("invars:", jaxpr.invars) + print("outvars:", jaxpr.outvars) + print("constvars:", jaxpr.constvars) + for eqn in jaxpr.eqns: + print("equation:", eqn.invars, eqn.primitive, eqn.outvars, eqn.params) + print() + print("jaxpr:", jaxpr) + + def evaluate(self, t=None, y=None, y_dot=None, inputs=None, known_evals=None): + """ + Acts as a drop-in replacement for :func:`pybamm.Symbol.evaluate` + """ + # generated code assumes y is a column vector + if y is not None and y.ndim == 1: + y = y.reshape(-1, 1) + + result = self._jit_evaluate(self._constants, t, y, y_dot, inputs, known_evals) + + # don't need known_evals, but need to reproduce Symbol.evaluate signature + if known_evals is not None: + return result, known_evals + else: + return result + + +class EvaluatorJaxJacobian: + def __init__(self, jac_evaluate, constants): + self._jac_evaluate = jac_evaluate + self._constants = constants def evaluate(self, t=None, y=None, y_dot=None, inputs=None, known_evals=None): """ @@ -278,10 +479,11 @@ def evaluate(self, t=None, y=None, y_dot=None, inputs=None, known_evals=None): y = y.reshape(-1, 1) # execute code - exec(self._variable_compiled) + result = self._jac_evaluate(self._constants, t, y, y_dot, inputs, known_evals) + result = result.reshape(result.shape[0], -1) # don't need known_evals, but need to reproduce Symbol.evaluate signature if known_evals is not None: - return eval(self._return_compiled), known_evals + return result, known_evals else: - return eval(self._return_compiled) + return result diff --git a/pybamm/expression_tree/symbol.py b/pybamm/expression_tree/symbol.py index 2e03d622a9..e0db67aa98 100644 --- a/pybamm/expression_tree/symbol.py +++ b/pybamm/expression_tree/symbol.py @@ -467,6 +467,12 @@ def __abs__(self): pybamm.AbsoluteValue(self), keep_domains=True ) + def __mod__(self, other): + """return an :class:`Modulo` object""" + return pybamm.simplify_if_constant( + pybamm.Modulo(self, other), keep_domains=True + ) + def diff(self, variable): """ Differentiate a symbol with respect to a variable. For any symbol that can be diff --git a/pybamm/expression_tree/unary_operators.py b/pybamm/expression_tree/unary_operators.py index 7c7e0e6a9a..ac244248d5 100644 --- a/pybamm/expression_tree/unary_operators.py +++ b/pybamm/expression_tree/unary_operators.py @@ -166,6 +166,52 @@ def _unary_evaluate(self, child): return np.sign(child) +class Floor(UnaryOperator): + """A node in the expression tree representing an `floor` operator + + **Extends:** :class:`UnaryOperator` + """ + + def __init__(self, child): + """ See :meth:`pybamm.UnaryOperator.__init__()`. """ + super().__init__("floor", child) + + def diff(self, variable): + """ See :meth:`pybamm.Symbol.diff()`. """ + return pybamm.Scalar(0) + + def _unary_jac(self, child_jac): + """ See :meth:`pybamm.UnaryOperator._unary_jac()`. """ + return pybamm.Scalar(0) + + def _unary_evaluate(self, child): + """ See :meth:`UnaryOperator._unary_evaluate()`. """ + return np.floor(child) + + +class Ceiling(UnaryOperator): + """A node in the expression tree representing a `ceil` operator + + **Extends:** :class:`UnaryOperator` + """ + + def __init__(self, child): + """ See :meth:`pybamm.UnaryOperator.__init__()`. """ + super().__init__("ceil", child) + + def diff(self, variable): + """ See :meth:`pybamm.Symbol.diff()`. """ + return pybamm.Scalar(0) + + def _unary_jac(self, child_jac): + """ See :meth:`pybamm.UnaryOperator._unary_jac()`. """ + return pybamm.Scalar(0) + + def _unary_evaluate(self, child): + """ See :meth:`UnaryOperator._unary_evaluate()`. """ + return np.ceil(child) + + class Index(UnaryOperator): """A node in the expression tree, which stores the index that should be extracted from its child after the child has been evaluated. @@ -345,7 +391,7 @@ def __init__(self, child): if child.evaluates_on_edges("primary") is False: raise TypeError( "Cannot take divergence of '{}' since it does not ".format(child) - + "evaluates on nodes. Usually, a gradient should be taken before the " + + "evaluate on edges. Usually, a gradient should be taken before the " "divergence." ) super().__init__("div", child) @@ -896,94 +942,152 @@ def __init__(self, child, side): super().__init__("boundary flux", child, side) +class UpwindDownwind(SpatialOperator): + """A node in the expression tree representing an upwinding or downwinding operator. + Usually to be used for better stability in convection-dominated equations. + + **Extends:** :class:`SpatialOperator` + """ + + def __init__(self, name, child): + if child.domain == []: + raise pybamm.DomainError( + "Cannot upwind '{}' since its domain is empty. ".format(child) + + "Try broadcasting the object first, e.g.\n\n" + "\tpybamm.div(pybamm.PrimaryBroadcast(symbol, 'domain'))" + ) + if child.evaluates_on_edges("primary") is True: + raise TypeError( + "Cannot upwind '{}' since it does not ".format(child) + + "evaluate on nodes." + ) + super().__init__(name, child) + + def evaluates_on_edges(self, dimension): + """ See :meth:`pybamm.Symbol.evaluates_on_edges()`. """ + return True + + +class Upwind(UpwindDownwind): + """ + Upwinding operator. To be used if flow velocity is positive (left to right). + + **Extends:** :class:`UpwindDownwind` + """ + + def __init__(self, child): + super().__init__("upwind", child) + + +class Downwind(UpwindDownwind): + """ + Downwinding operator. To be used if flow velocity is negative (right to left). + + **Extends:** :class:`UpwindDownwind` + """ + + def __init__(self, child): + super().__init__("downwind", child) + + # # Methods to call Gradient, Divergence, Laplacian and Gradient_Squared # -def grad(expression): +def grad(symbol): """convenience function for creating a :class:`Gradient` Parameters ---------- - expression : :class:`Symbol` - the gradient will be performed on this sub-expression + symbol : :class:`Symbol` + the gradient will be performed on this sub-symbol Returns ------- :class:`Gradient` - the gradient of ``expression`` + the gradient of ``symbol`` """ # Gradient of a broadcast is zero - if isinstance(expression, pybamm.PrimaryBroadcast): - new_child = pybamm.PrimaryBroadcast(0, expression.child.domain) - return pybamm.PrimaryBroadcastToEdges(new_child, expression.domain) + if isinstance(symbol, pybamm.PrimaryBroadcast): + new_child = pybamm.PrimaryBroadcast(0, symbol.child.domain) + return pybamm.PrimaryBroadcastToEdges(new_child, symbol.domain) else: - return Gradient(expression) + return Gradient(symbol) -def div(expression): +def div(symbol): """convenience function for creating a :class:`Divergence` Parameters ---------- - expression : :class:`Symbol` - the divergence will be performed on this sub-expression + symbol : :class:`Symbol` + the divergence will be performed on this sub-symbol Returns ------- :class:`Divergence` - the divergence of ``expression`` + the divergence of ``symbol`` """ # Divergence of a broadcast is zero - if isinstance(expression, pybamm.PrimaryBroadcastToEdges): - new_child = pybamm.PrimaryBroadcast(0, expression.child.domain) - return pybamm.PrimaryBroadcast(new_child, expression.domain) + if isinstance(symbol, pybamm.PrimaryBroadcastToEdges): + new_child = pybamm.PrimaryBroadcast(0, symbol.child.domain) + return pybamm.PrimaryBroadcast(new_child, symbol.domain) else: - return Divergence(expression) + return Divergence(symbol) -def laplacian(expression): +def laplacian(symbol): """convenience function for creating a :class:`Laplacian` Parameters ---------- - expression : :class:`Symbol` - the laplacian will be performed on this sub-expression + symbol : :class:`Symbol` + the laplacian will be performed on this sub-symbol Returns ------- :class:`Laplacian` - the laplacian of ``expression`` + the laplacian of ``symbol`` """ - return Laplacian(expression) + return Laplacian(symbol) -def grad_squared(expression): +def grad_squared(symbol): """convenience function for creating a :class:`Gradient_Squared` Parameters ---------- - expression : :class:`Symbol` + symbol : :class:`Symbol` the inner product of the gradient with itself will be performed on this - sub-expression + sub-symbol Returns ------- :class:`Gradient_Squared` - inner product of the gradient of ``expression`` with itself + inner product of the gradient of ``symbol`` with itself """ - return Gradient_Squared(expression) + return Gradient_Squared(symbol) + + +def upwind(symbol): + "convenience function for creating a :class:`Upwind`" + return Upwind(symbol) + + +def downwind(symbol): + "convenience function for creating a :class:`Downwind`" + return Downwind(symbol) # @@ -1043,30 +1147,32 @@ def x_average(symbol): if a.id == b.id == c.id: return a else: - l_n = pybamm.geometric_parameters.l_n - l_s = pybamm.geometric_parameters.l_s - l_p = pybamm.geometric_parameters.l_p + geo = pybamm.GeometricParameters() + l_n = geo.l_n + l_s = geo.l_s + l_p = geo.l_p return (l_n * a + l_s * b + l_p * c) / (l_n + l_s + l_p) # Otherwise, use Integral to calculate average value else: + geo = pybamm.GeometricParameters() if symbol.domain == ["negative electrode"]: x = pybamm.standard_spatial_vars.x_n - l = pybamm.geometric_parameters.l_n + l = geo.l_n elif symbol.domain == ["separator"]: x = pybamm.standard_spatial_vars.x_s - l = pybamm.geometric_parameters.l_s + l = geo.l_s elif symbol.domain == ["positive electrode"]: x = pybamm.standard_spatial_vars.x_p - l = pybamm.geometric_parameters.l_p + l = geo.l_p elif symbol.domain == ["negative electrode", "separator", "positive electrode"]: x = pybamm.standard_spatial_vars.x l = pybamm.Scalar(1) elif symbol.domain == ["negative particle"]: x = pybamm.standard_spatial_vars.x_n - l = pybamm.geometric_parameters.l_n + l = geo.l_n elif symbol.domain == ["positive particle"]: x = pybamm.standard_spatial_vars.x_p - l = pybamm.geometric_parameters.l_p + l = geo.l_p else: x = pybamm.SpatialVariable("x", domain=symbol.domain) v = pybamm.ones_like(symbol) @@ -1108,8 +1214,9 @@ def z_average(symbol): return symbol.orphans[0] # Otherwise, use Integral to calculate average value else: + geo = pybamm.GeometricParameters() z = pybamm.standard_spatial_vars.z - l_z = pybamm.geometric_parameters.l_z + l_z = geo.l_z return Integral(symbol, z) / l_z @@ -1144,10 +1251,11 @@ def yz_average(symbol): return symbol.orphans[0] # Otherwise, use Integral to calculate average value else: + geo = pybamm.GeometricParameters() y = pybamm.standard_spatial_vars.y z = pybamm.standard_spatial_vars.z - l_y = pybamm.geometric_parameters.l_y - l_z = pybamm.geometric_parameters.l_z + l_y = geo.l_y + l_z = geo.l_z return Integral(symbol, [y, z]) / (l_y * l_z) @@ -1167,13 +1275,25 @@ def r_average(symbol): # Can't take average if the symbol evaluates on edges if symbol.evaluates_on_edges("primary"): raise ValueError("Can't take the r-average of a symbol that evaluates on edges") - # If symbol doesn't have a particle domain, its r-averaged value is itself - if symbol.domain not in [["positive particle"], ["negative particle"]]: + # Otherwise, if symbol doesn't have a particle domain, + # its r-averaged value is itself + elif symbol.domain not in [["positive particle"], ["negative particle"]]: new_symbol = symbol.new_copy() new_symbol.parent = None return new_symbol - # If symbol is a Broadcast, its average value is its child - elif isinstance(symbol, pybamm.Broadcast): + # If symbol is a secondary broadcast onto "negative electrode" or + # "positive electrode", take the r-average of the child then broadcast back + elif isinstance(symbol, pybamm.SecondaryBroadcast) and symbol.domains[ + "secondary" + ] in [["positive electrode"], ["negative electrode"]]: + child = symbol.orphans[0] + child_av = pybamm.r_average(child) + return pybamm.PrimaryBroadcast(child_av, symbol.domains["secondary"]) + # If symbol is a Broadcast onto a particle domain, its average value is its child + elif isinstance(symbol, pybamm.PrimaryBroadcast) and symbol.domain in [ + ["positive particle"], + ["negative particle"], + ]: return symbol.orphans[0] else: r = pybamm.SpatialVariable("r", symbol.domain) diff --git a/pybamm/geometry/battery_geometry.py b/pybamm/geometry/battery_geometry.py index c2b0f99f78..d3e0b68901 100644 --- a/pybamm/geometry/battery_geometry.py +++ b/pybamm/geometry/battery_geometry.py @@ -22,8 +22,9 @@ def battery_geometry(include_particles=True, current_collector_dimension=0): """ var = pybamm.standard_spatial_vars - l_n = pybamm.geometric_parameters.l_n - l_s = pybamm.geometric_parameters.l_s + geo = pybamm.GeometricParameters() + l_n = geo.l_n + l_s = geo.l_s geometry = { "negative electrode": {var.x_n: {"min": 0, "max": l_n}}, @@ -45,24 +46,24 @@ def battery_geometry(include_particles=True, current_collector_dimension=0): geometry["current collector"] = { var.z: {"min": 0, "max": 1}, "tabs": { - "negative": {"z_centre": pybamm.geometric_parameters.centre_z_tab_n}, - "positive": {"z_centre": pybamm.geometric_parameters.centre_z_tab_p}, + "negative": {"z_centre": geo.centre_z_tab_n}, + "positive": {"z_centre": geo.centre_z_tab_p}, }, } elif current_collector_dimension == 2: geometry["current collector"] = { - var.y: {"min": 0, "max": pybamm.geometric_parameters.l_y}, - var.z: {"min": 0, "max": pybamm.geometric_parameters.l_z}, + var.y: {"min": 0, "max": geo.l_y}, + var.z: {"min": 0, "max": geo.l_z}, "tabs": { "negative": { - "y_centre": pybamm.geometric_parameters.centre_y_tab_n, - "z_centre": pybamm.geometric_parameters.centre_z_tab_n, - "width": pybamm.geometric_parameters.l_tab_n, + "y_centre": geo.centre_y_tab_n, + "z_centre": geo.centre_z_tab_n, + "width": geo.l_tab_n, }, "positive": { - "y_centre": pybamm.geometric_parameters.centre_y_tab_p, - "z_centre": pybamm.geometric_parameters.centre_z_tab_p, - "width": pybamm.geometric_parameters.l_tab_p, + "y_centre": geo.centre_y_tab_p, + "z_centre": geo.centre_z_tab_p, + "width": geo.l_tab_p, }, }, } diff --git a/pybamm/input/parameters/lead-acid/anodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py b/pybamm/input/parameters/lead-acid/anodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py index b1573249fa..601e362031 100644 --- a/pybamm/input/parameters/lead-acid/anodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py +++ b/pybamm/input/parameters/lead-acid/anodes/lead_Sulzer2019/lead_exchange_current_density_Sulzer2019.py @@ -1,4 +1,4 @@ -from pybamm import standard_parameters_lead_acid +from pybamm import Parameter def lead_exchange_current_density_Sulzer2019(c_e, T): @@ -27,6 +27,7 @@ def lead_exchange_current_density_Sulzer2019(c_e, T): """ j0_ref = 0.06 # srinivasan2003mathematical - j0 = j0_ref * (c_e / standard_parameters_lead_acid.c_e_typ) + c_e_typ = Parameter("Typical electrolyte concentration [mol.m-3]") + j0 = j0_ref * (c_e / c_e_typ) return j0 diff --git a/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py b/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py index 0122e99530..a87f16eaff 100644 --- a/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py +++ b/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/lead_dioxide_exchange_current_density_Sulzer2019.py @@ -1,4 +1,4 @@ -from pybamm import standard_parameters_lead_acid +from pybamm import LeadAcidParameters def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): @@ -28,7 +28,7 @@ def lead_dioxide_exchange_current_density_Sulzer2019(c_e, T): """ c_ox = 0 c_hy = 0 - param = standard_parameters_lead_acid + param = LeadAcidParameters() c_w_dim = (1 - c_e * param.V_e - c_ox * param.V_ox - c_hy * param.V_hy) / param.V_w c_w_ref = (1 - param.c_e_typ * param.V_e) / param.V_w c_w = c_w_dim / c_w_ref diff --git a/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py b/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py index 12aee8b923..5152126110 100644 --- a/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py +++ b/pybamm/input/parameters/lead-acid/cathodes/lead_dioxide_Sulzer2019/oxygen_exchange_current_density_Sulzer2019.py @@ -1,4 +1,4 @@ -from pybamm import standard_parameters_lead_acid +from pybamm import Parameter def oxygen_exchange_current_density_Sulzer2019(c_e, T): @@ -27,6 +27,7 @@ def oxygen_exchange_current_density_Sulzer2019(c_e, T): """ j0_ref = 2.5e-23 # srinivasan2003mathematical - j0 = j0_ref * (c_e / standard_parameters_lead_acid.c_e_typ) + c_e_typ = Parameter("Typical electrolyte concentration [mol.m-3]") + j0 = j0_ref * (c_e / c_e_typ) return j0 diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py index a8ca90060f..9abea7e1bd 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/graphite_LGM50_electrolyte_exchange_current_density_Chen2020.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def graphite_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, T): @@ -32,7 +32,7 @@ def graphite_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, E_r = 35000 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_n_max = standard_parameters_lithium_ion.c_n_max + c_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/parameters.csv b/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/parameters.csv index 2c6f7a47c1..36af231e09 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Chen2020/parameters.csv @@ -12,7 +12,6 @@ Negative electrode porosity,0.25,Chen 2020, Negative electrode active material volume fraction,0.75,Chen 2020, Negative particle radius [m],5.86E-6,Chen 2020, Negative particle distribution in x,1,default, -Negative electrode surface area to volume ratio [m-1],383959,Chen 2020, Negative electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical Negative electrode Bruggeman coefficient (electrode),1.5,default, ,,, @@ -30,4 +29,4 @@ Negative electrode density [kg.m-3],1657,default, # Thermal parameters,,, Negative electrode specific heat capacity [J.kg-1.K-1],700,default, Negative electrode thermal conductivity [W.m-1.K-1],1.7,default, -Negative electrode OCP entropic change [V.K-1],0,, \ No newline at end of file +Negative electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py index 4ad18f8dd2..140f1cbe70 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/graphite_electrolyte_exchange_current_density_Ecker2015.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, T): @@ -41,7 +41,7 @@ def graphite_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, T): arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) - c_n_max = standard_parameters_lithium_ion.c_n_max + c_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/parameters.csv index bf72401486..f59ba699ae 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ecker2015/parameters.csv @@ -11,10 +11,9 @@ Negative electrode OCP [V],[function]graphite_ocp_Ecker2015_function,, ,,, # Microstructure,,, Negative electrode porosity,0.329,, -Negative electrode active material volume fraction, 0.555,, +Negative electrode active material volume fraction, 0.372403,, Negative particle radius [m],1.37E-05,, Negative particle distribution in x,1,, -Negative electrode surface area to volume ratio [m-1], 81548,, Negative electrode Bruggeman coefficient (electrolyte),1.6372789338386007,Solve for permeability factor B=0.162=eps^b, Negative electrode Bruggeman coefficient (electrode),0,No Bruggeman correction to the solid conductivity, ,,, diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py b/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py index 192b479be4..c98aac2d18 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/graphite_electrolyte_exchange_current_density_Kim2011.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, T): @@ -31,9 +31,9 @@ def graphite_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, T): i0_ref = 36 # reference exchange current density at 100% SOC sto = 0.36 # stochiometry at 100% SOC - c_s_n_max = standard_parameters_lithium_ion.c_n_max # max electrode concentration + c_s_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]") c_s_n_ref = sto * c_s_n_max # reference electrode concentration - c_e_ref = standard_parameters_lithium_ion.c_e_typ # ref electrolyte concentration + c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") alpha = 0.5 # charge transfer coefficient m_ref = i0_ref / ( diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/parameters.csv b/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/parameters.csv index cdd353502b..7322e75402 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Kim2011/parameters.csv @@ -12,7 +12,6 @@ Negative electrode porosity,0.4,, Negative electrode active material volume fraction,0.51,, Negative particle radius [m],5.083E-7,, Negative particle distribution in x,1,, -Negative electrode surface area to volume ratio [m-1],3.01E6,, Negative electrode Bruggeman coefficient (electrolyte),2,, Negative electrode Bruggeman coefficient (electrode),2,, ,,, diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py index 8afd798fdc..063bff2587 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/graphite_electrolyte_exchange_current_density_Ramadass2004.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def graphite_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, T): @@ -30,7 +30,7 @@ def graphite_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, T) E_r = 37480 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_n_max = standard_parameters_lithium_ion.c_n_max + c_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/parameters.csv index 9661945ee8..12fba05b21 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_Ramadass2004/parameters.csv @@ -12,7 +12,6 @@ Negative electrode porosity,0.485,Ramadass,electrolyte volume fraction Negative electrode active material volume fraction,0.49,Ramadass, Negative particle radius [m],2e-06,Ramadass, Negative particle distribution in x,1,, -Negative electrode surface area to volume ratio [m-1],735000, 3eps.radi-1, Negative electrode Bruggeman coefficient (electrolyte),4,Guess, Negative electrode Bruggeman coefficient (electrode),4,Ramadass, ,,, diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py b/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py index 12ee3ae4be..ef13eb3862 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/graphite_electrolyte_exchange_current_density_PeymanMPM.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, T): @@ -30,7 +30,7 @@ def graphite_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, T): E_r = 37480 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_n_max = standard_parameters_lithium_ion.c_n_max + c_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/parameters.csv index 0a8fa09328..7f4b9188fb 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_UMBL_Mohtat2020/parameters.csv @@ -2,18 +2,17 @@ Name [units],Value,Reference,Notes # Empty rows and rows starting with ‘#’ will be ignored,,, ,,, # Electrode properties,,, -Negative electrode conductivity [S.m-1],100,Scott Moura FastDFN,no info from Peyman MPM +Negative electrode conductivity [S.m-1],100,Scott Moura FastDFN,no info from Peyman MPM Maximum concentration in negative electrode [mol.m-3],28746,Peyman MPM, Negative electrode diffusion coefficient [m2.s-1],5.0E-15,Peyman MPM, Negative electrode diffusivity [m2.s-1],[function]graphite_diffusivity_PeymanMPM,, Negative electrode OCP [V],[function]graphite_ocp_PeymanMPM,Peyman MPM, ,,, # Microstructure,,, -Negative electrode porosity,0.3,Peyman MPM, +Negative electrode porosity,0.3,Peyman MPM, Negative electrode active material volume fraction,0.61,Peyman MPM,rest is binder Negative particle radius [m],2.5E-06,Peyman MPM, Negative particle distribution in x,1,, -Negative electrode surface area to volume ratio [m-1],732000,Peyman MPM,Eq. (48) Negative electrode Bruggeman coefficient (electrode),1.5,Peyman MPM, Negative electrode Bruggeman coefficient (electrolyte),1.5,Peyman MPM, Negative electrode tortuosity, 0.16, @@ -28,7 +27,7 @@ Negative electrode double-layer capacity [F.m-2],0.2,,no info from Peyman MPM Negative electrode exchange-current density [A.m-2],[function]graphite_electrolyte_exchange_current_density_PeymanMPM,, ,,, # Density,,, -Negative electrode density [kg.m-3],3100,Peyman MPM, cell lumped value +Negative electrode density [kg.m-3],3100,Peyman MPM, cell lumped value ,,, # Thermal parameters,,, Negative electrode specific heat capacity [J.kg-1.K-1],1100,Peyman MPM,cell lumped value diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py index ab4e56a7d8..d618bd464b 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/graphite_electrolyte_exchange_current_density_Dualfoil1998.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def graphite_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, T): @@ -28,7 +28,7 @@ def graphite_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, T) E_r = 37480 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_n_max = standard_parameters_lithium_ion.c_n_max + c_n_max = Parameter("Maximum concentration in negative electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_n_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/parameters.csv index 920c51c12a..02f5ad6747 100644 --- a/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/anodes/graphite_mcmb2528_Marquis2019/parameters.csv @@ -1,6 +1,6 @@ Name [units],Value,Reference,Notes # Empty rows and rows starting with ‘#’ will be ignored,,, -,,, + # Electrode properties,,, Negative electrode conductivity [S.m-1],100,Scott Moura FastDFN,graphite Maximum concentration in negative electrode [mol.m-3],24983.2619938437,Scott Moura FastDFN, @@ -9,10 +9,9 @@ Negative electrode OCP [V],[function]graphite_mcmb2528_ocp_Dualfoil1998, ,,, # Microstructure,,, Negative electrode porosity,0.3,Scott Moura FastDFN,electrolyte volume fraction -Negative electrode active material volume fraction,0.7,,assuming zero binder volume fraction +Negative electrode active material volume fraction,0.6,, Negative particle radius [m],1E-05,Scott Moura FastDFN, Negative particle distribution in x,1,, -Negative electrode surface area to volume ratio [m-1],180000,Scott Moura FastDFN, Negative electrode Bruggeman coefficient (electrolyte),1.5,Scott Moura FastDFN, Negative electrode Bruggeman coefficient (electrode),1.5,Scott Moura FastDFN, ,,, diff --git a/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py b/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py index f8ee94dcc8..e804f00ceb 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py +++ b/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/nco_electrolyte_exchange_current_density_Ecker2015.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, T): @@ -41,7 +41,7 @@ def nco_electrolyte_exchange_current_density_Ecker2015(c_e, c_s_surf, T): E_r = 4.36e4 arrhenius = exp(-E_r / (constants.R * T)) * exp(E_r / (constants.R * 296.15)) - c_p_max = standard_parameters_lithium_ion.c_p_max + c_p_max = Parameter("Maximum concentration in positive electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/parameters.csv b/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/parameters.csv index b84e1dd462..3e13409322 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/cathodes/LiNiCoO2_Ecker2015/parameters.csv @@ -11,10 +11,9 @@ Positive electrode OCP [V],[function]nco_ocp_Ecker2015_function,, ,,, # Microstructure,,, Positive electrode porosity,0.296,, -Positive electrode active material volume fraction, 0.58,, +Positive electrode active material volume fraction, 0.40832,, Positive particle radius [m],6.5E-06,, Positive particle distribution in x,1,, -Positive electrode surface area to volume ratio [m-1],188455,, Positive electrode Bruggeman coefficient (electrolyte),1.5442267190786427,Solve for permeability factor B=0.1526=eps^b, Positive electrode Bruggeman coefficient (electrode),0,No Bruggeman correction to solid conductivity, Positive electrode exchange-current density [A.m-2],[function]nco_electrolyte_exchange_current_density_Ecker2015,, diff --git a/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py b/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py index 9d85f6caf3..4359ccd0e6 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py +++ b/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/NMC_electrolyte_exchange_current_density_PeymanMPM.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, T): @@ -28,7 +28,7 @@ def NMC_electrolyte_exchange_current_density_PeymanMPM(c_e, c_s_surf, T): E_r = 39570 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_p_max = standard_parameters_lithium_ion.c_p_max + c_p_max = Parameter("Maximum concentration in positive electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/parameters.csv b/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/parameters.csv index 8fb117d6b3..94d301c422 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/cathodes/NMC_UMBL_Mohtat2020/parameters.csv @@ -12,7 +12,6 @@ Positive electrode porosity,0.3,Peyman MPM, Positive electrode active material volume fraction,0.445,Peyman MPM,rest is binder Positive particle radius [m],3.5E-06,Peyman MPM, Positive particle distribution in x,1,, -Positive electrode surface area to volume ratio [m-1],3.8143E+5,Peyman MPM,Eq. (48) Positive electrode Bruggeman coefficient (electrode),1.5,Peyman MPM, Positive electrode Bruggeman coefficient (electrolyte),1.5,Peyman MPM, Positive electrode tortuosity,0.16, @@ -27,7 +26,7 @@ Positive electrode double-layer capacity [F.m-2],0.2,,no info from Peyman MPM Positive electrode exchange-current density [A.m-2],[function]NMC_electrolyte_exchange_current_density_PeymanMPM,, ,,, # Density,,, -Positive electrode density [kg.m-3],3100,Peyman MPM, cell lumped value +Positive electrode density [kg.m-3],3100,Peyman MPM, cell lumped value ,,, # Thermal parameters,,, Positive electrode specific heat capacity [J.kg-1.K-1],1100,Peyman MPM, cell lumped value diff --git a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py index ee7470eacf..b7955322f5 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py +++ b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/lico2_electrolyte_exchange_current_density_Dualfoil1998.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, T): @@ -28,7 +28,7 @@ def lico2_electrolyte_exchange_current_density_Dualfoil1998(c_e, c_s_surf, T): E_r = 39570 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_p_max = standard_parameters_lithium_ion.c_p_max + c_p_max = Parameter("Maximum concentration in positive electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/parameters.csv b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/parameters.csv index bfac949bd7..93d0b43ed0 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Marquis2019/parameters.csv @@ -9,10 +9,9 @@ Positive electrode OCP [V],[function]lico2_ocp_Dualfoil1998,, ,,, # Microstructure,,, Positive electrode porosity,0.3,Scott Moura FastDFN,electrolyte volume fraction -Positive electrode active material volume fraction,0.7,,assuming zero binder volume fraction +Positive electrode active material volume fraction,0.5,, Positive particle radius [m],1E-05,Scott Moura FastDFN, Positive particle distribution in x,1,, -Positive electrode surface area to volume ratio [m-1],150000,Scott Moura FastDFN, Positive electrode Bruggeman coefficient (electrolyte),1.5,Scott Moura FastDFN, Positive electrode Bruggeman coefficient (electrode),1.5,Scott Moura FastDFN, ,,, @@ -30,4 +29,4 @@ Positive electrode density [kg.m-3],3262,, # Thermal parameters,,, Positive electrode specific heat capacity [J.kg-1.K-1],700,, Positive electrode thermal conductivity [W.m-1.K-1],2.1,, -Positive electrode OCP entropic change [V.K-1],[function]lico2_entropic_change_Moura2016,, \ No newline at end of file +Positive electrode OCP entropic change [V.K-1],[function]lico2_entropic_change_Moura2016,, diff --git a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py index d6a4fb50fa..bdd5256284 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py +++ b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/lico2_electrolyte_exchange_current_density_Ramadass2004.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, T): @@ -30,7 +30,7 @@ def lico2_electrolyte_exchange_current_density_Ramadass2004(c_e, c_s_surf, T): E_r = 39570 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_p_max = standard_parameters_lithium_ion.c_p_max + c_p_max = Parameter("Maximum concentration in positive electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/parameters.csv b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/parameters.csv index 5691350e9f..8d26275f26 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/cathodes/lico2_Ramadass2004/parameters.csv @@ -12,7 +12,6 @@ Positive electrode porosity,0.385,Ramadass,electrolyte volume fraction Positive electrode active material volume fraction,0.59,Ramadass, Positive particle radius [m],2e-06,Ramadass, Positive particle distribution in x,1,, -Positive electrode surface area to volume ratio [m-1],885000,3eps.radi-1, Positive electrode Bruggeman coefficient (electrolyte),4,Ramadass, Positive electrode Bruggeman coefficient (electrode),4,Ramadass, ,,, @@ -30,4 +29,4 @@ Positive electrode density [kg.m-3],3262,, # Thermal parameters,,, Positive electrode specific heat capacity [J.kg-1.K-1],700,, Positive electrode thermal conductivity [W.m-1.K-1],2.1,, -Positive electrode OCP entropic change [V.K-1],[function]lico2_entropic_change_Moura2016,, \ No newline at end of file +Positive electrode OCP entropic change [V.K-1],[function]lico2_entropic_change_Moura2016,, diff --git a/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py b/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py index 0bec50fa04..52938cf215 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py +++ b/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/nca_electrolyte_exchange_current_density_Kim2011.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, T): @@ -29,9 +29,9 @@ def nca_electrolyte_exchange_current_density_Kim2011(c_e, c_s_surf, T): """ i0_ref = 4 # reference exchange current density at 100% SOC sto = 0.41 # stochiometry at 100% SOC - c_s_max = standard_parameters_lithium_ion.c_p_max # max electrode concentration + c_s_max = Parameter("Maximum concentration in positive electrode [mol.m-3]") c_s_ref = sto * c_s_max # reference electrode concentration - c_e_ref = standard_parameters_lithium_ion.c_e_typ # ref electrolyte concentration + c_e_ref = Parameter("Typical electrolyte concentration [mol.m-3]") alpha = 0.5 # charge transfer coefficient m_ref = i0_ref / ( diff --git a/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/parameters.csv b/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/parameters.csv index 0a9e33c0e8..0a0f00fe42 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/cathodes/nca_Kim2011/parameters.csv @@ -12,7 +12,6 @@ Positive electrode porosity,0.4,, Positive electrode active material volume fraction,0.41,, Positive particle radius [m],1.633E-6,, Positive particle distribution in x,1,, -Positive electrode surface area to volume ratio [m-1],0.753E6,, Positive electrode Bruggeman coefficient (electrolyte),2,, Positive electrode Bruggeman coefficient (electrode),2,, ,,, diff --git a/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py b/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py index c2ca46c249..0925f69260 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py +++ b/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/nmc_LGM50_electrolyte_exchange_current_density_Chen2020.py @@ -1,4 +1,4 @@ -from pybamm import exp, constants, standard_parameters_lithium_ion +from pybamm import exp, constants, Parameter def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, T): @@ -31,7 +31,7 @@ def nmc_LGM50_electrolyte_exchange_current_density_Chen2020(c_e, c_s_surf, T): E_r = 17800 arrhenius = exp(E_r / constants.R * (1 / 298.15 - 1 / T)) - c_p_max = standard_parameters_lithium_ion.c_p_max + c_p_max = Parameter("Maximum concentration in positive electrode [mol.m-3]") return ( m_ref * arrhenius * c_e ** 0.5 * c_s_surf ** 0.5 * (c_p_max - c_s_surf) ** 0.5 diff --git a/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/parameters.csv b/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/parameters.csv index 58b80b334c..997f4ba416 100644 --- a/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/parameters.csv +++ b/pybamm/input/parameters/lithium-ion/cathodes/nmc_Chen2020/parameters.csv @@ -12,7 +12,6 @@ Positive electrode porosity,0.335,Chen 2020, Positive electrode active material volume fraction,0.665,Chen 2020, Positive particle radius [m],5.22E-6,Chen 2020, Positive particle distribution in x,1,default, -Positive electrode surface area to volume ratio [m-1],382184,Chen 2020, Positive electrode Bruggeman coefficient (electrolyte),1.5,Chen 2020,theoretical Positive electrode Bruggeman coefficient (electrode),1.5,default, ,,, @@ -30,4 +29,4 @@ Positive electrode density [kg.m-3],3262,default, # Thermal parameters,,, Positive electrode specific heat capacity [J.kg-1.K-1],700,default, Positive electrode thermal conductivity [W.m-1.K-1],2.1,default, -Positive electrode OCP entropic change [V.K-1],0,, \ No newline at end of file +Positive electrode OCP entropic change [V.K-1],0,, diff --git a/pybamm/install_odes.py b/pybamm/install_odes.py index d9d6a1d312..1e9ccc1052 100644 --- a/pybamm/install_odes.py +++ b/pybamm/install_odes.py @@ -30,7 +30,7 @@ def download_extract_library(url, directory): tar.extractall(directory) -def install_sundials(): +def install_sundials(download_dir, install_dir): # Download the SUNDIALS library and compile it. logger = logging.getLogger("scikits.odes setup") sundials_version = "5.1.0" @@ -40,26 +40,24 @@ def install_sundials(): except OSError: raise RuntimeError("CMake must be installed to build SUNDIALS.") - directory = join(pybamm_dir(), "scikits.odes") - os.makedirs(directory, exist_ok=True) url = ( "https://computing.llnl.gov/" + "projects/sundials/download/sundials-{}.tar.gz".format(sundials_version) ) logger.info("Downloading sundials") - download_extract_library(url, directory) + download_extract_library(url, download_dir) cmake_args = [ "-DLAPACK_ENABLE=ON", "-DSUNDIALS_INDEX_SIZE=32", "-DBUILD_ARKODE:BOOL=OFF", "-DEXAMPLES_ENABLE:BOOL=OFF", - "-DCMAKE_INSTALL_PREFIX=" + join(directory, "sundials5"), + "-DCMAKE_INSTALL_PREFIX=" + install_dir, ] # SUNDIALS are built within directory 'build_sundials' in the PyBaMM root # directory - build_directory = os.path.abspath(join(directory, "build_sundials")) + build_directory = os.path.abspath(join(download_dir, "build_sundials")) if not os.path.exists(build_directory): print("\n-" * 10, "Creating build dir", "-" * 40) os.makedirs(build_directory) @@ -127,20 +125,22 @@ def main(arguments=None): desc = "Install scikits.odes." parser = argparse.ArgumentParser(description=desc) parser.add_argument("--sundials-libs", type=str, help="path to sundials libraries.") - parser.add_argument("--install-sundials", action="store_true") + default_install_dir = os.path.join(os.getenv("HOME"), ".local") + parser.add_argument("--install-dir", type=str, default=default_install_dir) args = parser.parse_args(arguments) - - if args.install_sundials: - logger.info("Installing sundials") - install_sundials() + install_dir = ( + args.install_dir + if os.path.isabs(args.install_dir) + else os.path.join(pybamm_dir, args.install_dir) + ) # Check is sundials is already installed SUNDIALS_LIB_DIRS = [ - join(pybamm_dir(), "scikits.odes/sundials5"), join(os.getenv("HOME"), ".local"), "/usr/local", "/usr", ] + if args.sundials_libs: SUNDIALS_LIB_DIRS.insert(0, args.sundials_libs) for DIR in SUNDIALS_LIB_DIRS: @@ -154,7 +154,12 @@ def main(arguments=None): break if not SUNDIALS_FOUND: - raise RuntimeError("Could not find sundials libraries.") + logger.info("Could not find sundials libraries.") + logger.info("Installing sundials in {}".install_dir) + download_dir = os.path.join(pybamm_dir, "sundials") + if not os.path.exists(download_dir): + os.makedirs(download_dir) + install_sundials(download_dir, install_dir) update_LD_LIBRARY_PATH(SUNDIALS_LIB_DIR) diff --git a/pybamm/meshes/one_dimensional_submeshes.py b/pybamm/meshes/one_dimensional_submeshes.py index 8a6c5808fe..ae12a3f2f0 100644 --- a/pybamm/meshes/one_dimensional_submeshes.py +++ b/pybamm/meshes/one_dimensional_submeshes.py @@ -307,3 +307,85 @@ def __init__(self, lims, npts, edges=None): coord_sys = spatial_var.coord_sys super().__init__(edges, coord_sys=coord_sys, tabs=tabs) + + +class SpectralVolume1DSubMesh(SubMesh1D): + """ + A class to subdivide any mesh to incorporate Chebyshev collocation + Control Volumes. Note that the Spectral Volume method is optimized + to only work with this submesh. The underlying theory could use any + mesh with the right number of nodes, but in 1D the only sensible + choice are the Chebyshev collocation points. + + Parameters + ---------- + lims : dict + A dictionary that contains the limits of the spatial variables + npts : dict + A dictionary that contains the number of points to be used on + each spatial variable. Note: the number of nodes (located at the + cell centres) is npts, and the number of edges is npts+1. + order : int, optional + The order of the Spectral Volume method that is to be used with + this submesh. The default is 2, the same as the default for the + SpectralVolume class. If the orders of the submesh and the + Spectral Volume method don't match, the method will fail. + **Extends:"": :class:`pybamm.SubMesh1D` + """ + + def __init__(self, lims, npts, edges=None, order=2): + + spatial_var, spatial_lims, tabs = self.read_lims(lims) + npts = npts[spatial_var.id] + + # default: Spectral Volumes of equal size + if edges is None: + edges = np.linspace(spatial_lims["min"], spatial_lims["max"], + npts + 1) + # check that npts + 1 equals number of user-supplied edges + elif (npts + 1) != len(edges): + raise pybamm.GeometryError( + "User-suppled edges should have length (npts + 1) but has len" + "gth {}. Number of points (npts) for domain {} is {}.".format( + len(edges), spatial_var.domain, npts + ) + ) + + # check end points of edges agree with spatial_lims + if edges[0] != spatial_lims["min"]: + raise pybamm.GeometryError( + """First entry of edges is {}, but should be equal to {} + for domain {}.""".format( + edges[0], spatial_lims["min"], spatial_var.domain + ) + ) + if edges[-1] != spatial_lims["max"]: + raise pybamm.GeometryError( + """Last entry of edges is {}, but should be equal to {} + for domain {}.""".format( + edges[-1], spatial_lims["max"], spatial_var.domain + ) + ) + + coord_sys = spatial_var.coord_sys + + cv_edges = np.array([edges[0]] + [ + x + for (a, b) in zip(edges[:-1], edges[1:]) + for x in np.flip( + a + 0.5 * (b - a) * (1 + np.sin(np.pi * np.array( + [((order + 1) - 1 - 2 * i) / (2 * (order + 1) - 2) + for i in range(order + 1)] + ))) + )[1:] + ]) + + self.sv_edges = edges + self.sv_nodes = (edges[:-1] + edges[1:]) / 2 + self.d_sv_edges = np.diff(self.sv_edges) + self.d_sv_nodes = np.diff(self.sv_nodes) + self.order = 2 + # The Control Volume edges and nodes are assigned to the + # "edges" and "nodes" properties. This makes some of the + # code of FiniteVolume directly applicable. + super().__init__(cv_edges, coord_sys=coord_sys, tabs=tabs) diff --git a/pybamm/models/base_model.py b/pybamm/models/base_model.py index d9d636073c..d693dcb4c2 100644 --- a/pybamm/models/base_model.py +++ b/pybamm/models/base_model.py @@ -1,22 +1,11 @@ # # Base model class # -import inspect import numbers import pybamm import warnings -class ParamClass: - """Class for converting a module of parameters into a class. For pickling.""" - - def __init__(self, methods): - for k, v in methods.__dict__.items(): - # don't save module attributes (e.g. pybamm, numpy) - if not (k.startswith("__") or inspect.ismodule(v)): - self.__dict__[k] = v - - class BaseModel(object): """Base model class for other models to extend. @@ -261,12 +250,7 @@ def param(self): @param.setter def param(self, values): - if values is None: - self._param = None - else: - # convert module into a class - # (StackOverflow: https://tinyurl.com/yk3euon3) - self._param = ParamClass(values) + self._param = values @property def options(self): diff --git a/pybamm/models/full_battery_models/base_battery_model.py b/pybamm/models/full_battery_models/base_battery_model.py index 5460417252..22c3a033d8 100644 --- a/pybamm/models/full_battery_models/base_battery_model.py +++ b/pybamm/models/full_battery_models/base_battery_model.py @@ -18,6 +18,12 @@ class BaseBatteryModel(pybamm.BaseModel): be set are listed below. Note that not all of the options are compatible with each other and with all of the models implemented in PyBaMM. + * "cell geometry" : str, optional + Sets the geometry of the cell. Can be "pouch" (default) or + "arbitrary". The arbitrary geometry option solves a 1D electrochemical + model with prescribed cell volume and cross-sectional area, and + (if thermal effects are included) solves a lumped thermal model + with prescribed surface area for cooling. * "dimensionality" : int, optional Sets the dimension of the current collector problem. Can be 0 (default), 1 or 2. @@ -40,7 +46,14 @@ class BaseBatteryModel(pybamm.BaseModel): "potential pair" or "potential pair quite conductive". * "particle" : str, optional Sets the submodel to use to describe behaviour within the particle. - Can be "Fickian diffusion" (default) or "fast diffusion". + Can be "Fickian diffusion" (default), "uniform profile", + "quadratic profile", or "quartic profile". + * "particle shape" : str, optional + Sets the model shape of the electrode particles. This is used to + calculate the surface area per unit volume. Can be "spherical" + (default) or "user". For the "user" option the surface area per + unit volume can be passed as a parameter, and is therefore not + necessarily consistent with the particle shape. * "thermal" : str, optional Sets the thermal model to use. Can be "isothermal" (default), "lumped", "x-lumped", or "x-full". @@ -184,11 +197,13 @@ def options(self, extra_options): "interfacial surface area": "constant", "current collector": "uniform", "particle": "Fickian diffusion", + "particle shape": "spherical", "thermal": "isothermal", - "cell_geometry": None, + "cell geometry": None, "external submodels": [], "sei": None, "sei porosity change": False, + "working electrode": None, } # Change the default for cell geometry based on which thermal option is provided extra_options = extra_options or {} @@ -196,10 +211,10 @@ def options(self, extra_options): "thermal", None ) # return None if option not given if thermal_option is None or thermal_option in ["isothermal", "lumped"]: - default_options["cell_geometry"] = "arbitrary" + default_options["cell geometry"] = "arbitrary" else: - default_options["cell_geometry"] = "pouch" - # The "cell_geometry" option will still be overridden by extra_options if + default_options["cell geometry"] = "pouch" + # The "cell geometry" option will still be overridden by extra_options if # provided # Change the default for SEI film resistance based on which sei option is @@ -233,7 +248,7 @@ def options(self, extra_options): ) if ( options["thermal"] in ["x-lumped", "x-full"] - and options["cell_geometry"] != "pouch" + and options["cell geometry"] != "pouch" ): raise pybamm.OptionError( options["thermal"] + " model must have pouch geometry." @@ -298,9 +313,9 @@ def options(self, extra_options): raise pybamm.OptionError( "Unknown thermal model '{}'".format(options["thermal"]) ) - if options["cell_geometry"] not in ["arbitrary", "pouch"]: + if options["cell geometry"] not in ["arbitrary", "pouch"]: raise pybamm.OptionError( - "Unknown geometry '{}'".format(options["cell_geometry"]) + "Unknown geometry '{}'".format(options["cell geometry"]) ) if options["sei"] not in [ None, @@ -334,10 +349,25 @@ def options(self, extra_options): raise pybamm.OptionError( "cannot have transverse convection in 0D model" ) - if options["particle"] not in ["Fickian diffusion", "fast diffusion"]: + if options["particle"] not in [ + "Fickian diffusion", + "fast diffusion", + "uniform profile", + "quadratic profile", + "quartic profile", + ]: raise pybamm.OptionError( "particle model '{}' not recognised".format(options["particle"]) ) + if options["particle"] == "fast diffusion": + raise NotImplementedError( + "The 'fast diffusion' option has been renamed. " + "Use 'uniform profile' instead." + ) + if options["particle shape"] not in ["spherical", "user"]: + raise pybamm.OptionError( + "particle shape '{}' not recognised".format(options["particle shape"]) + ) if options["thermal"] == "x-lumped" and options["dimensionality"] == 1: warnings.warn( @@ -360,9 +390,9 @@ def set_standard_output_variables(self): # Spatial var = pybamm.standard_spatial_vars - L_x = pybamm.geometric_parameters.L_x - L_y = pybamm.geometric_parameters.L_y - L_z = pybamm.geometric_parameters.L_z + L_x = self.param.L_x + L_y = self.param.L_y + L_z = self.param.L_z self.variables.update( { "x": var.x, @@ -618,8 +648,8 @@ def set_thermal_submodel(self): elif self.options["thermal"] == "lumped": thermal_submodel = pybamm.thermal.Lumped( self.param, - self.options["dimensionality"], - self.options["cell_geometry"], + cc_dimension=self.options["dimensionality"], + geometry=self.options["cell geometry"], ) elif self.options["thermal"] == "x-lumped": diff --git a/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py b/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py index 463a2c8b67..494cf368dc 100644 --- a/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py +++ b/pybamm/models/full_battery_models/lead_acid/base_lead_acid_model.py @@ -15,9 +15,9 @@ class BaseModel(pybamm.BaseBatteryModel): """ - def __init__(self, options=None, name="Unnamed lead-acid model"): + def __init__(self, options=None, name="Unnamed lead-acid model", build=False): super().__init__(options, name) - self.param = pybamm.standard_parameters_lead_acid + self.param = pybamm.LeadAcidParameters() # Default timescale is discharge timescale self.timescale = self.param.tau_discharge diff --git a/pybamm/models/full_battery_models/lead_acid/basic_full.py b/pybamm/models/full_battery_models/lead_acid/basic_full.py index a81f5717a4..74b7829ad2 100644 --- a/pybamm/models/full_battery_models/lead_acid/basic_full.py +++ b/pybamm/models/full_battery_models/lead_acid/basic_full.py @@ -42,13 +42,13 @@ def __init__(self, name="Basic full model"): Q = pybamm.Variable("Discharge capacity [A.h]") # Variables that vary spatially are created with a domain c_e_n = pybamm.Variable( - "Negative electrolyte concentration", domain="negative electrode", + "Negative electrolyte concentration", domain="negative electrode" ) c_e_s = pybamm.Variable( - "Separator electrolyte concentration", domain="separator", + "Separator electrolyte concentration", domain="separator" ) c_e_p = pybamm.Variable( - "Positive electrolyte concentration", domain="positive electrode", + "Positive electrolyte concentration", domain="positive electrode" ) # Concatenations combine several variables into a single variable, to simplify # implementing equations that hold over several domains @@ -56,40 +56,38 @@ def __init__(self, name="Basic full model"): # Electrolyte potential phi_e_n = pybamm.Variable( - "Negative electrolyte potential", domain="negative electrode", - ) - phi_e_s = pybamm.Variable( - "Separator electrolyte potential", domain="separator", + "Negative electrolyte potential", domain="negative electrode" ) + phi_e_s = pybamm.Variable("Separator electrolyte potential", domain="separator") phi_e_p = pybamm.Variable( - "Positive electrolyte potential", domain="positive electrode", + "Positive electrolyte potential", domain="positive electrode" ) phi_e = pybamm.Concatenation(phi_e_n, phi_e_s, phi_e_p) # Electrode potential phi_s_n = pybamm.Variable( - "Negative electrode potential", domain="negative electrode", + "Negative electrode potential", domain="negative electrode" ) phi_s_p = pybamm.Variable( - "Positive electrode potential", domain="positive electrode", + "Positive electrode potential", domain="positive electrode" ) # Porosity eps_n = pybamm.Variable( - "Negative electrode porosity", domain="negative electrode", + "Negative electrode porosity", domain="negative electrode" ) eps_s = pybamm.Variable("Separator porosity", domain="separator") eps_p = pybamm.Variable( - "Positive electrode porosity", domain="positive electrode", + "Positive electrode porosity", domain="positive electrode" ) eps = pybamm.Concatenation(eps_n, eps_s, eps_p) # Pressure (for convection) pressure_n = pybamm.Variable( - "Negative electrolyte pressure", domain="negative electrode", + "Negative electrolyte pressure", domain="negative electrode" ) pressure_p = pybamm.Variable( - "Positive electrolyte pressure", domain="positive electrode", + "Positive electrolyte pressure", domain="positive electrode" ) # Constant temperature @@ -138,8 +136,8 @@ def __init__(self, name="Basic full model"): ###################### v_n = -pybamm.grad(pressure_n) v_p = -pybamm.grad(pressure_p) - l_s = pybamm.geometric_parameters.l_s - l_n = pybamm.geometric_parameters.l_n + l_s = param.l_s + l_n = param.l_n x_s = pybamm.SpatialVariable("x_s", domain="separator") # Difference in negative and positive electrode velocities determines the diff --git a/pybamm/models/full_battery_models/lithium_ion/__init__.py b/pybamm/models/full_battery_models/lithium_ion/__init__.py index 167a38f3b5..52e9e3dc76 100644 --- a/pybamm/models/full_battery_models/lithium_ion/__init__.py +++ b/pybamm/models/full_battery_models/lithium_ion/__init__.py @@ -7,3 +7,4 @@ from .dfn import DFN from .basic_dfn import BasicDFN from .basic_spm import BasicSPM +from .basic_dfn_half_cell import BasicDFNHalfCell diff --git a/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py b/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py index e32fb95329..3371f4bd6b 100644 --- a/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py +++ b/pybamm/models/full_battery_models/lithium_ion/base_lithium_ion_model.py @@ -13,9 +13,9 @@ class BaseModel(pybamm.BaseBatteryModel): """ - def __init__(self, options=None, name="Unnamed lithium-ion model"): + def __init__(self, options=None, name="Unnamed lithium-ion model", build=False): super().__init__(options, name) - self.param = pybamm.standard_parameters_lithium_ion + self.param = pybamm.LithiumIonParameters(options) # Default timescale is discharge timescale self.timescale = self.param.tau_discharge @@ -37,13 +37,12 @@ def set_standard_output_variables(self): # Particle concentration position var = pybamm.standard_spatial_vars - param = pybamm.geometric_parameters self.variables.update( { "r_n": var.r_n, - "r_n [m]": var.r_n * param.R_n, + "r_n [m]": var.r_n * self.param.R_n, "r_p": var.r_p, - "r_p [m]": var.r_p * param.R_p, + "r_p [m]": var.r_p * self.param.R_p, } ) diff --git a/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py b/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py index 3c76715ccd..4e246d6fa1 100644 --- a/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py +++ b/pybamm/models/full_battery_models/lithium_ion/basic_dfn.py @@ -109,6 +109,10 @@ def __init__(self, name="Doyle-Fuller-Newman model"): ) eps = pybamm.Concatenation(eps_n, eps_s, eps_p) + # Active material volume fraction (eps + eps_s + eps_inactive = 1) + eps_s_n = pybamm.Parameter("Negative electrode active material volume fraction") + eps_s_p = pybamm.Parameter("Positive electrode active material volume fraction") + # Tortuosity tor = pybamm.Concatenation( eps_n ** param.b_e_n, eps_s ** param.b_e_s, eps_p ** param.b_e_p @@ -206,8 +210,9 @@ def __init__(self, name="Doyle-Fuller-Newman model"): ###################### # Current in the solid ###################### - i_s_n = -param.sigma_n * (1 - eps_n) ** param.b_s_n * pybamm.grad(phi_s_n) - sigma_eff_p = param.sigma_p * (1 - eps_p) ** param.b_s_p + sigma_eff_n = param.sigma_n * eps_s_n ** param.b_s_n + i_s_n = -sigma_eff_n * pybamm.grad(phi_s_n) + sigma_eff_p = param.sigma_p * eps_s_p ** param.b_s_p i_s_p = -sigma_eff_p * pybamm.grad(phi_s_p) # The `algebraic` dictionary contains differential equations, with the key being # the main scalar variable of interest in the equation diff --git a/pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py b/pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py new file mode 100644 index 0000000000..cb98a2dec9 --- /dev/null +++ b/pybamm/models/full_battery_models/lithium_ion/basic_dfn_half_cell.py @@ -0,0 +1,477 @@ +# +# Basic Doyle-Fuller-Newman (DFN) Half Cell Model +# +import pybamm +from .base_lithium_ion_model import BaseModel + + +class BasicDFNHalfCell(BaseModel): + """Doyle-Fuller-Newman (DFN) model of a lithium-ion battery with lithium counter + electrode, adapted from [2]_. + + This class differs from the :class:`pybamm.lithium_ion.BasicDFN` model class in + that it is for a cell with a lithium counter electrode (half cell). This is a + feature under development (for example, it cannot be used with the Simulation class + for the moment) and in the future it will be incorporated as a standard model with + the full functionality. + + Parameters + ---------- + name : str, optional + The name of the model. + options : dict + A dictionary of options to be passed to the model. For the half cell it should + include which is the working electrode. + + References + ---------- + .. [2] M Doyle, TF Fuller and JS Nwman. “Modeling of Galvanostatic Charge and + Discharge of the Lithium/Polymer/Insertion Cell”. Journal of The + Electrochemical Society, 140(6):1526-1533, 1993 + + **Extends:** :class:`pybamm.lithium_ion.BaseModel` + """ + + def __init__( + self, name="Doyle-Fuller-Newman half cell model", options=None, + ): + super().__init__({}, name) + pybamm.citations.register("marquis2019asymptotic") + # `param` is a class containing all the relevant parameters and functions for + # this model. These are purely symbolic at this stage, and will be set by the + # `ParameterValues` class when the model is processed. + param = self.param + options = options or {"working electrode": None} + + if options["working electrode"] not in ["negative", "positive"]: + raise ValueError( + "The option 'working electrode' should be either 'positive'" + " or 'negative'" + ) + + self.options.update(options) + working_electrode = options["working electrode"] + + ###################### + # Variables + ###################### + # Variables that depend on time only are created without a domain + Q = pybamm.Variable("Discharge capacity [A.h]") + + # Define some useful scalings + pot = param.potential_scale + i_typ = param.current_scale + + # Variables that vary spatially are created with a domain. Depending on + # which is the working electrode we need to define a set variables or another + if working_electrode == "negative": + # Electrolyte concentration + c_e_n = pybamm.Variable( + "Negative electrolyte concentration", domain="negative electrode" + ) + c_e_s = pybamm.Variable( + "Separator electrolyte concentration", domain="separator" + ) + # Concatenations combine several variables into a single variable, to + # simplify implementing equations that hold over several domains + c_e = pybamm.Concatenation(c_e_n, c_e_s) + + # Electrolyte potential + phi_e_n = pybamm.Variable( + "Negative electrolyte potential", domain="negative electrode" + ) + phi_e_s = pybamm.Variable( + "Separator electrolyte potential", domain="separator" + ) + phi_e = pybamm.Concatenation(phi_e_n, phi_e_s) + + # Particle concentrations are variables on the particle domain, but also + # vary in the x-direction (electrode domain) and so must be provided with + # auxiliary domains + c_s_n = pybamm.Variable( + "Negative particle concentration", + domain="negative particle", + auxiliary_domains={"secondary": "negative electrode"}, + ) + # Set concentration in positive particle to be equal to the initial + # concentration as it is not the working electrode + x_p = pybamm.PrimaryBroadcast( + pybamm.standard_spatial_vars.x_p, "positive particle" + ) + c_s_p = param.c_n_init(x_p) + + # Electrode potential + phi_s_n = pybamm.Variable( + "Negative electrode potential", domain="negative electrode" + ) + # Set potential in positive electrode to be equal to the initial OCV + phi_s_p = param.U_p(pybamm.surf(param.c_p_init(x_p)), param.T_init) + else: + c_e_p = pybamm.Variable( + "Positive electrolyte concentration", domain="positive electrode" + ) + c_e_s = pybamm.Variable( + "Separator electrolyte concentration", domain="separator" + ) + # Concatenations combine several variables into a single variable, to + # simplify implementing equations that hold over several domains + c_e = pybamm.Concatenation(c_e_s, c_e_p) + + # Electrolyte potential + phi_e_s = pybamm.Variable( + "Separator electrolyte potential", domain="separator" + ) + phi_e_p = pybamm.Variable( + "Positive electrolyte potential", domain="positive electrode" + ) + phi_e = pybamm.Concatenation(phi_e_s, phi_e_p) + + # Particle concentrations are variables on the particle domain, but also + # vary in the x-direction (electrode domain) and so must be provided with + # auxiliary domains + c_s_p = pybamm.Variable( + "Positive particle concentration", + domain="positive particle", + auxiliary_domains={"secondary": "positive electrode"}, + ) + # Set concentration in negative particle to be equal to the initial + # concentration as it is not the working electrode + x_n = pybamm.PrimaryBroadcast( + pybamm.standard_spatial_vars.x_n, "negative particle" + ) + c_s_n = param.c_n_init(x_n) + + # Electrode potential + phi_s_p = pybamm.Variable( + "Positive electrode potential", domain="positive electrode" + ) + # Set potential in negative electrode to be equal to the initial OCV + phi_s_n = param.U_n(pybamm.surf(param.c_n_init(x_n)), param.T_init) + + # Constant temperature + T = param.T_init + + ###################### + # Other set-up + ###################### + + # Current density + i_cell = param.current_with_time + + # Porosity and Tortuosity + # Primary broadcasts are used to broadcast scalar quantities across a domain + # into a vector of the right shape, for multiplying with other vectors + eps_n = pybamm.PrimaryBroadcast( + pybamm.Parameter("Negative electrode porosity"), "negative electrode" + ) + eps_s = pybamm.PrimaryBroadcast( + pybamm.Parameter("Separator porosity"), "separator" + ) + eps_p = pybamm.PrimaryBroadcast( + pybamm.Parameter("Positive electrode porosity"), "positive electrode" + ) + + if working_electrode == "negative": + eps = pybamm.Concatenation(eps_n, eps_s) + tor = pybamm.Concatenation(eps_n ** param.b_e_n, eps_s ** param.b_e_s) + else: + eps = pybamm.Concatenation(eps_s, eps_p) + tor = pybamm.Concatenation(eps_s ** param.b_e_s, eps_p ** param.b_e_p) + + # Interfacial reactions + # Surf takes the surface value of a variable, i.e. its boundary value on the + # right side. This is also accessible via `boundary_value(x, "right")`, with + # "left" providing the boundary value of the left side + c_s_surf_n = pybamm.surf(c_s_n) + c_s_surf_p = pybamm.surf(c_s_p) + + if working_electrode == "negative": + j0_n = param.j0_n(c_e_n, c_s_surf_n, T) / param.C_r_n + j_n = ( + 2 + * j0_n + * pybamm.sinh( + param.ne_n / 2 * (phi_s_n - phi_e_n - param.U_n(c_s_surf_n, T)) + ) + ) + j_s = pybamm.PrimaryBroadcast(0, "separator") + j_p = pybamm.PrimaryBroadcast(0, "positive electrode") + j = pybamm.Concatenation(j_n, j_s) + else: + j0_p = param.gamma_p * param.j0_p(c_e_p, c_s_surf_p, T) / param.C_r_p + j_p = ( + 2 + * j0_p + * pybamm.sinh( + param.ne_p / 2 * (phi_s_p - phi_e_p - param.U_p(c_s_surf_p, T)) + ) + ) + j_s = pybamm.PrimaryBroadcast(0, "separator") + j_n = pybamm.PrimaryBroadcast(0, "negative electrode") + j = pybamm.Concatenation(j_s, j_p) + + ###################### + # State of Charge + ###################### + I = param.dimensional_current_with_time + # The `rhs` dictionary contains differential equations, with the key being the + # variable in the d/dt + self.rhs[Q] = I * param.timescale / 3600 + # Initial conditions must be provided for the ODEs + self.initial_conditions[Q] = pybamm.Scalar(0) + + ###################### + # Particles + ###################### + + if working_electrode == "negative": + # The div and grad operators will be converted to the appropriate matrix + # multiplication at the discretisation stage + N_s_n = -param.D_n(c_s_n, T) * pybamm.grad(c_s_n) + self.rhs[c_s_n] = -(1 / param.C_n) * pybamm.div(N_s_n) + + # Boundary conditions must be provided for equations with spatial + # derivatives + self.boundary_conditions[c_s_n] = { + "left": (pybamm.Scalar(0), "Neumann"), + "right": ( + -param.C_n * j_n / param.a_n / param.D_n(c_s_surf_n, T), + "Neumann", + ), + } + + # c_n_init can in general be a function of x + # Note the broadcasting, for domains + x_n = pybamm.PrimaryBroadcast( + pybamm.standard_spatial_vars.x_n, "negative particle" + ) + self.initial_conditions[c_s_n] = param.c_n_init(x_n) + + # Events specify points at which a solution should terminate + self.events += [ + pybamm.Event( + "Minimum negative particle surface concentration", + pybamm.min(c_s_surf_n) - 0.01, + ), + pybamm.Event( + "Maximum negative particle surface concentration", + (1 - 0.01) - pybamm.max(c_s_surf_n), + ), + ] + else: + # The div and grad operators will be converted to the appropriate matrix + # multiplication at the discretisation stage + N_s_p = -param.D_p(c_s_p, T) * pybamm.grad(c_s_p) + self.rhs[c_s_p] = -(1 / param.C_p) * pybamm.div(N_s_p) + + # Boundary conditions must be provided for equations with spatial + # derivatives + self.boundary_conditions[c_s_p] = { + "left": (pybamm.Scalar(0), "Neumann"), + "right": ( + -param.C_p + * j_p + / param.a_p + / param.gamma_p + / param.D_p(c_s_surf_p, T), + "Neumann", + ), + } + + # c_p_init can in general be a function of x + # Note the broadcasting, for domains + x_p = pybamm.PrimaryBroadcast( + pybamm.standard_spatial_vars.x_p, "positive particle" + ) + self.initial_conditions[c_s_p] = param.c_p_init(x_p) + + # Events specify points at which a solution should terminate + self.events += [ + pybamm.Event( + "Minimum positive particle surface concentration", + pybamm.min(c_s_surf_p) - 0.01, + ), + pybamm.Event( + "Maximum positive particle surface concentration", + (1 - 0.01) - pybamm.max(c_s_surf_p), + ), + ] + + ###################### + # Current in the solid + ###################### + eps_s_n = pybamm.Parameter("Negative electrode active material volume fraction") + eps_s_p = pybamm.Parameter("Positive electrode active material volume fraction") + + if working_electrode == "negative": + sigma_eff_n = param.sigma_n * eps_s_n ** param.b_s_n + i_s_n = -sigma_eff_n * pybamm.grad(phi_s_n) + self.boundary_conditions[phi_s_n] = { + "left": ( + i_cell / pybamm.boundary_value(-sigma_eff_n, "left"), + "Neumann", + ), + "right": (pybamm.Scalar(0), "Neumann"), + } + # The `algebraic` dictionary contains differential equations, with the key + # being the main scalar variable of interest in the equation + self.algebraic[phi_s_n] = pybamm.div(i_s_n) + j_n + + # Initial conditions must also be provided for algebraic equations, as an + # initial guess for a root-finding algorithm which calculates consistent + # initial conditions + self.initial_conditions[phi_s_n] = param.U_n( + param.c_n_init(0), param.T_init + ) + else: + sigma_eff_p = param.sigma_p * eps_s_p ** param.b_s_p + i_s_p = -sigma_eff_p * pybamm.grad(phi_s_p) + self.boundary_conditions[phi_s_p] = { + "left": (pybamm.Scalar(0), "Neumann"), + "right": ( + i_cell / pybamm.boundary_value(-sigma_eff_p, "right"), + "Neumann", + ), + } + self.algebraic[phi_s_p] = pybamm.div(i_s_p) + j_p + # Initial conditions must also be provided for algebraic equations, as an + # initial guess for a root-finding algorithm which calculates consistent + # initial conditions + self.initial_conditions[phi_s_p] = param.U_p( + param.c_p_init(1), param.T_init + ) + + ###################### + # Electrolyte concentration + ###################### + N_e = -tor * param.D_e(c_e, T) * pybamm.grad(c_e) + self.rhs[c_e] = (1 / eps) * ( + -pybamm.div(N_e) / param.C_e + (1 - param.t_plus(c_e)) * j / param.gamma_e + ) + dce_dx = ( + -(1 - param.t_plus(c_e)) + * i_cell + * param.C_e + / (tor * param.gamma_e * param.D_e(c_e, T)) + ) + + if working_electrode == "negative": + self.boundary_conditions[c_e] = { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.boundary_value(dce_dx, "right"), "Neumann"), + } + else: + self.boundary_conditions[c_e] = { + "left": (pybamm.boundary_value(dce_dx, "left"), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + + self.initial_conditions[c_e] = param.c_e_init + self.events.append( + pybamm.Event( + "Zero electrolyte concentration cut-off", pybamm.min(c_e) - 0.002 + ) + ) + + ###################### + # Current in the electrolyte + ###################### + i_e = (param.kappa_e(c_e, T) * tor * param.gamma_e / param.C_e) * ( + param.chi(c_e) * pybamm.grad(c_e) / c_e - pybamm.grad(phi_e) + ) + self.algebraic[phi_e] = pybamm.div(i_e) - j + + ref_potential = param.U_n_ref / pot + + if working_electrode == "negative": + self.boundary_conditions[phi_e] = { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (ref_potential, "Dirichlet"), + } + else: + self.boundary_conditions[phi_e] = { + "left": (ref_potential, "Dirichlet"), + "right": (pybamm.Scalar(0), "Neumann"), + } + + self.initial_conditions[phi_e] = ref_potential + ###################### + # (Some) variables + ###################### + L_Li = pybamm.Parameter("Lithium counter electrode thickness [m]") + sigma_Li = pybamm.Parameter("Lithium counter electrode conductivity [S.m-1]") + j_Li = pybamm.Parameter( + "Lithium counter electrode exchange-current density [A.m-2]" + ) + + if working_electrode == "negative": + voltage = pybamm.boundary_value(phi_s_n, "left") - ref_potential + voltage_dim = pot * pybamm.boundary_value(phi_s_n, "left") + vdrop_Li = 2 * pybamm.arcsinh( + i_cell * i_typ / j_Li + ) + L_Li * i_typ * i_cell / (sigma_Li * pot) + vdrop_Li_dim = ( + 2 * pot * pybamm.arcsinh(i_cell * i_typ / j_Li) + + L_Li * i_typ * i_cell / sigma_Li + ) + else: + voltage = pybamm.boundary_value(phi_s_p, "right") - ref_potential + voltage_dim = param.U_p_ref + pot * voltage + vdrop_Li = -( + 2 * pybamm.arcsinh(i_cell * i_typ / j_Li) + + L_Li * i_typ * i_cell / (sigma_Li * pot) + ) + vdrop_Li_dim = -( + 2 * pot * pybamm.arcsinh(i_cell * i_typ / j_Li) + + L_Li * i_typ * i_cell / sigma_Li + ) + + c_s_surf_p_av = pybamm.x_average(c_s_surf_p) + c_s_surf_n_av = pybamm.x_average(c_s_surf_n) + + # The `variables` dictionary contains all variables that might be useful for + # visualising the solution of the model + self.variables = { + "Time [s]": param.timescale * pybamm.t, + "Negative particle surface concentration": c_s_surf_n, + "X-averaged negative particle surface concentration": c_s_surf_n_av, + "Negative particle concentration": c_s_n, + "Negative particle surface concentration [mol.m-3]": param.c_n_max + * c_s_surf_n, + "X-averaged negative particle surface concentration [mol.m-3]": + param.c_n_max * c_s_surf_n_av, + "Negative particle concentration [mol.m-3]": param.c_n_max * c_s_n, + "Electrolyte concentration": c_e, + "Electrolyte concentration [mol.m-3]": param.c_e_typ * c_e, + "Positive particle surface concentration": c_s_surf_p, + "X-averaged positive particle surface concentration": c_s_surf_p_av, + "Positive particle concentration": c_s_p, + "Positive particle surface concentration [mol.m-3]": param.c_p_max + * c_s_surf_p, + "X-averaged positive particle surface concentration [mol.m-3]": + param.c_p_max * c_s_surf_p_av, + "Positive particle concentration [mol.m-3]": param.c_p_max * c_s_p, + "Current [A]": I, + "Negative electrode potential": phi_s_n, + "Negative electrode potential [V]": pot * phi_s_n, + "Negative electrode open circuit potential": param.U_n(c_s_surf_n, T), + "Electrolyte potential": phi_e, + "Electrolyte potential [V]": -param.U_n_ref + pot * phi_e, + "Positive electrode potential": phi_s_p, + "Positive electrode potential [V]": (param.U_p_ref - param.U_n_ref) + + pot * phi_s_p, + "Positive electrode open circuit potential": param.U_p(c_s_surf_p, T), + "Voltage drop": voltage, + "Voltage drop [V]": voltage_dim, + "Terminal voltage": voltage + vdrop_Li, + "Terminal voltage [V]": voltage_dim + vdrop_Li_dim, + } + + def new_copy(self, build=False): + new_model = self.__class__(name=self.name, options=self.options) + new_model.use_jacobian = self.use_jacobian + new_model.use_simplify = self.use_simplify + new_model.convert_to_format = self.convert_to_format + new_model.timescale = self.timescale + new_model.length_scales = self.length_scales + return new_model diff --git a/pybamm/models/full_battery_models/lithium_ion/dfn.py b/pybamm/models/full_battery_models/lithium_ion/dfn.py index 07d4251e6c..ea8b7c31c1 100644 --- a/pybamm/models/full_battery_models/lithium_ion/dfn.py +++ b/pybamm/models/full_battery_models/lithium_ion/dfn.py @@ -85,12 +85,20 @@ def set_particle_submodel(self): self.submodels["positive particle"] = pybamm.particle.FickianManyParticles( self.param, "Positive" ) - elif self.options["particle"] == "fast diffusion": - self.submodels["negative particle"] = pybamm.particle.FastManyParticles( - self.param, "Negative" + elif self.options["particle"] in [ + "uniform profile", + "quadratic profile", + "quartic profile", + ]: + self.submodels[ + "negative particle" + ] = pybamm.particle.PolynomialManyParticles( + self.param, "Negative", self.options["particle"] ) - self.submodels["positive particle"] = pybamm.particle.FastManyParticles( - self.param, "Positive" + self.submodels[ + "positive particle" + ] = pybamm.particle.PolynomialManyParticles( + self.param, "Positive", self.options["particle"] ) def set_solid_submodel(self): diff --git a/pybamm/models/full_battery_models/lithium_ion/spm.py b/pybamm/models/full_battery_models/lithium_ion/spm.py index 71e41d14bb..313a3d930a 100644 --- a/pybamm/models/full_battery_models/lithium_ion/spm.py +++ b/pybamm/models/full_battery_models/lithium_ion/spm.py @@ -104,12 +104,20 @@ def set_particle_submodel(self): self.submodels["positive particle"] = pybamm.particle.FickianSingleParticle( self.param, "Positive" ) - elif self.options["particle"] == "fast diffusion": - self.submodels["negative particle"] = pybamm.particle.FastSingleParticle( - self.param, "Negative" + elif self.options["particle"] in [ + "uniform profile", + "quadratic profile", + "quartic profile", + ]: + self.submodels[ + "negative particle" + ] = pybamm.particle.PolynomialSingleParticle( + self.param, "Negative", self.options["particle"] ) - self.submodels["positive particle"] = pybamm.particle.FastSingleParticle( - self.param, "Positive" + self.submodels[ + "positive particle" + ] = pybamm.particle.PolynomialSingleParticle( + self.param, "Positive", self.options["particle"] ) def set_negative_electrode_submodel(self): diff --git a/pybamm/models/full_battery_models/lithium_ion/spme.py b/pybamm/models/full_battery_models/lithium_ion/spme.py index 954b692b49..d057e2766a 100644 --- a/pybamm/models/full_battery_models/lithium_ion/spme.py +++ b/pybamm/models/full_battery_models/lithium_ion/spme.py @@ -106,12 +106,20 @@ def set_particle_submodel(self): self.submodels["positive particle"] = pybamm.particle.FickianSingleParticle( self.param, "Positive" ) - elif self.options["particle"] == "fast diffusion": - self.submodels["negative particle"] = pybamm.particle.FastSingleParticle( - self.param, "Negative" + elif self.options["particle"] in [ + "uniform profile", + "quadratic profile", + "quartic profile", + ]: + self.submodels[ + "negative particle" + ] = pybamm.particle.PolynomialSingleParticle( + self.param, "Negative", self.options["particle"] ) - self.submodels["positive particle"] = pybamm.particle.FastSingleParticle( - self.param, "Positive" + self.submodels[ + "positive particle" + ] = pybamm.particle.PolynomialSingleParticle( + self.param, "Positive", self.options["particle"] ) def set_negative_electrode_submodel(self): diff --git a/pybamm/models/standard_variables.py b/pybamm/models/standard_variables.py index 87e0c7b03f..44c86e1002 100644 --- a/pybamm/models/standard_variables.py +++ b/pybamm/models/standard_variables.py @@ -134,6 +134,28 @@ auxiliary_domains={"secondary": "current collector"}, bounds=(0, 1), ) +c_s_n_rav = pybamm.Variable( + "R-averaged negative particle concentration", + domain="negative electrode", + auxiliary_domains={"secondary": "current collector"}, + bounds=(0, 1), +) +c_s_p_rav = pybamm.Variable( + "R-averaged positive particle concentration", + domain="positive electrode", + auxiliary_domains={"secondary": "current collector"}, + bounds=(0, 1), +) +c_s_n_rxav = pybamm.Variable( + "R-X-averaged negative particle concentration", + domain="current collector", + bounds=(0, 1), +) +c_s_p_rxav = pybamm.Variable( + "R-X-averaged positive particle concentration", + domain="current collector", + bounds=(0, 1), +) c_s_n_surf = pybamm.Variable( "Negative particle surface concentration", domain="negative electrode", @@ -156,7 +178,25 @@ domain="current collector", bounds=(0, 1), ) - +# Average particle concentration gradient (for polynomial particle concentration +# models). Note: we make the distinction here between the flux defined as +# N = -D*dc/dr and the concentration gradient q = dc/dr +q_s_n_rav = pybamm.Variable( + "R-averaged negative particle concentration gradient", + domain="negative electrode", + auxiliary_domains={"secondary": "current collector"}, +) +q_s_p_rav = pybamm.Variable( + "R-averaged positive particle concentration gradient", + domain="positive electrode", + auxiliary_domains={"secondary": "current collector"}, +) +q_s_n_rxav = pybamm.Variable( + "R-X-averaged negative particle concentration gradient", domain="current collector" +) +q_s_p_rxav = pybamm.Variable( + "R-X-averaged positive particle concentration gradient", domain="current collector" +) # Porosity eps_n = pybamm.Variable( @@ -181,13 +221,13 @@ # Piecewise constant (for asymptotic models) eps_n_pc = pybamm.Variable( - "X-averaged negative electrode porosity", domain="current collector", bounds=(0, 1), + "X-averaged negative electrode porosity", domain="current collector", bounds=(0, 1) ) eps_s_pc = pybamm.Variable( "X-averaged separator porosity", domain="current collector", bounds=(0, 1) ) eps_p_pc = pybamm.Variable( - "X-averaged positive electrode porosity", domain="current collector", bounds=(0, 1), + "X-averaged positive electrode porosity", domain="current collector", bounds=(0, 1) ) eps_piecewise_constant = pybamm.Concatenation( diff --git a/pybamm/models/submodels/convection/through_cell/explicit_convection.py b/pybamm/models/submodels/convection/through_cell/explicit_convection.py index 040c0ed7da..62156f275d 100644 --- a/pybamm/models/submodels/convection/through_cell/explicit_convection.py +++ b/pybamm/models/submodels/convection/through_cell/explicit_convection.py @@ -24,7 +24,7 @@ def get_coupled_variables(self, variables): # Set up param = self.param - l_n = pybamm.geometric_parameters.l_n + l_n = param.l_n x_n = pybamm.standard_spatial_vars.x_n x_s = pybamm.standard_spatial_vars.x_s x_p = pybamm.standard_spatial_vars.x_p diff --git a/pybamm/models/submodels/convection/through_cell/full_convection.py b/pybamm/models/submodels/convection/through_cell/full_convection.py index 752abc9f7a..c4e968ad9b 100644 --- a/pybamm/models/submodels/convection/through_cell/full_convection.py +++ b/pybamm/models/submodels/convection/through_cell/full_convection.py @@ -56,7 +56,7 @@ def get_coupled_variables(self, variables): # Set up param = self.param - l_n = pybamm.geometric_parameters.l_n + l_n = param.l_n x_s = pybamm.standard_spatial_vars.x_s # Transverse velocity in the separator determines through-cell velocity diff --git a/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py b/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py index 45ac5e00d3..ac568f8fb0 100644 --- a/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py +++ b/pybamm/models/submodels/current_collector/effective_resistance_current_collector.py @@ -38,7 +38,7 @@ def __init__( ): super().__init__(name) self.options = options - self.param = pybamm.standard_parameters_lithium_ion + self.param = pybamm.LithiumIonParameters() # Set default length scales self.length_scales = { @@ -100,8 +100,8 @@ def get_fundamental_variables(self): # Add spatial variables var = pybamm.standard_spatial_vars - L_y = pybamm.geometric_parameters.L_y - L_z = pybamm.geometric_parameters.L_z + L_y = param.L_y + L_z = param.L_z if self.options["dimensionality"] == 1: variables.update({"z": var.z, "z [m]": var.z * L_z}) elif self.options["dimensionality"] == 2: @@ -217,33 +217,30 @@ def default_parameter_values(self): @property def default_geometry(self): geometry = {} + param = self.param var = pybamm.standard_spatial_vars if self.options["dimensionality"] == 1: geometry["current collector"] = { var.z: {"min": 0, "max": 1}, "tabs": { - "negative": { - "z_centre": pybamm.geometric_parameters.centre_z_tab_n - }, - "positive": { - "z_centre": pybamm.geometric_parameters.centre_z_tab_p - }, + "negative": {"z_centre": param.centre_z_tab_n}, + "positive": {"z_centre": param.centre_z_tab_p}, }, } elif self.options["dimensionality"] == 2: geometry["current collector"] = { - var.y: {"min": 0, "max": pybamm.geometric_parameters.l_y}, - var.z: {"min": 0, "max": pybamm.geometric_parameters.l_z}, + var.y: {"min": 0, "max": param.l_y}, + var.z: {"min": 0, "max": param.l_z}, "tabs": { "negative": { - "y_centre": pybamm.geometric_parameters.centre_y_tab_n, - "z_centre": pybamm.geometric_parameters.centre_z_tab_n, - "width": pybamm.geometric_parameters.l_tab_n, + "y_centre": param.centre_y_tab_n, + "z_centre": param.centre_z_tab_n, + "width": param.l_tab_n, }, "positive": { - "y_centre": pybamm.geometric_parameters.centre_y_tab_p, - "z_centre": pybamm.geometric_parameters.centre_z_tab_p, - "width": pybamm.geometric_parameters.l_tab_p, + "y_centre": param.centre_y_tab_p, + "z_centre": param.centre_z_tab_p, + "width": param.l_tab_p, }, }, } @@ -317,7 +314,7 @@ class AlternativeEffectiveResistance2D(pybamm.BaseModel): def __init__(self): super().__init__() self.name = "Effective resistance in current collector model (2D)" - self.param = pybamm.standard_parameters_lithium_ion + self.param = pybamm.LithiumIonParameters() # Set default length scales self.length_scales = { @@ -396,8 +393,8 @@ def __init__(self): # Add spatial variables var = pybamm.standard_spatial_vars - L_y = pybamm.geometric_parameters.L_y - L_z = pybamm.geometric_parameters.L_z + L_y = param.L_y + L_z = param.L_z self.variables.update( {"y": var.y, "y [m]": var.y * L_y, "z": var.z, "z [m]": var.z * L_z} ) @@ -475,21 +472,22 @@ def default_parameter_values(self): @property def default_geometry(self): + param = self.param var = pybamm.standard_spatial_vars geometry = { "current collector": { - var.y: {"min": 0, "max": pybamm.geometric_parameters.l_y}, - var.z: {"min": 0, "max": pybamm.geometric_parameters.l_z}, + var.y: {"min": 0, "max": param.l_y}, + var.z: {"min": 0, "max": param.l_z}, "tabs": { "negative": { - "y_centre": pybamm.geometric_parameters.centre_y_tab_n, - "z_centre": pybamm.geometric_parameters.centre_z_tab_n, - "width": pybamm.geometric_parameters.l_tab_n, + "y_centre": param.centre_y_tab_n, + "z_centre": param.centre_z_tab_n, + "width": param.l_tab_n, }, "positive": { - "y_centre": pybamm.geometric_parameters.centre_y_tab_p, - "z_centre": pybamm.geometric_parameters.centre_z_tab_p, - "width": pybamm.geometric_parameters.l_tab_p, + "y_centre": param.centre_y_tab_p, + "z_centre": param.centre_z_tab_p, + "width": param.l_tab_p, }, }, } diff --git a/pybamm/models/submodels/electrode/ohm/full_ohm.py b/pybamm/models/submodels/electrode/ohm/full_ohm.py index 0ab4b0ff4e..a6476407c4 100644 --- a/pybamm/models/submodels/electrode/ohm/full_ohm.py +++ b/pybamm/models/submodels/electrode/ohm/full_ohm.py @@ -60,12 +60,16 @@ def set_algebraic(self, variables): phi_s = variables[self.domain + " electrode potential"] i_s = variables[self.domain + " electrode current density"] + # Get surface area per unit volume distribution in x (to account for + # graded electrodes) + a = variables[self.domain + " surface area per unit volume distribution in x"] + # Variable summing all of the interfacial current densities sum_j = variables[ "Sum of " + self.domain.lower() + " electrode interfacial current densities" ] - self.algebraic[phi_s] = pybamm.div(i_s) + sum_j + self.algebraic[phi_s] = pybamm.div(i_s) + a * sum_j def set_boundary_conditions(self, variables): diff --git a/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py index cd5cdda046..35a5c27c07 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py @@ -52,10 +52,18 @@ def set_algebraic(self, variables): phi_e = variables["Electrolyte potential"] i_e = variables["Electrolyte current density"] + # Get surface area per unit volume distribution in x (to account for + # graded electrodes) + a_n = variables["Negative surface area per unit volume distribution in x"] + a_p = variables["Positive surface area per unit volume distribution in x"] + a = pybamm.Concatenation( + a_n, pybamm.FullBroadcast(0, "separator", "current collector"), a_p + ) + # Variable summing all of the interfacial current densities sum_j = variables["Sum of interfacial current densities"] - self.algebraic = {phi_e: pybamm.div(i_e) - sum_j} + self.algebraic = {phi_e: pybamm.div(i_e) - a * sum_j} def set_initial_conditions(self, variables): phi_e = variables["Electrolyte potential"] diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py index f67f53745f..4afce31f33 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py @@ -217,12 +217,16 @@ def set_algebraic(self, variables): delta_phi = variables[self.domain + " electrode surface potential difference"] i_e = variables[self.domain + " electrolyte current density"] + # Get surface area per unit volume distribution in x (to account for + # graded electrodes) + a = variables[self.domain + " surface area per unit volume distribution in x"] + # Variable summing all of the interfacial current densities sum_j = variables[ "Sum of " + self.domain.lower() + " electrode interfacial current densities" ] - self.algebraic[delta_phi] = pybamm.div(i_e) - sum_j + self.algebraic[delta_phi] = pybamm.div(i_e) - a * sum_j class FullDifferential(BaseModel): @@ -255,9 +259,13 @@ def set_rhs(self, variables): delta_phi = variables[self.domain + " electrode surface potential difference"] i_e = variables[self.domain + " electrolyte current density"] + # Get surface area per unit volume distribution in x (to account for + # graded electrodes) + a = variables[self.domain + " surface area per unit volume distribution in x"] + # Variable summing all of the interfacial current densities sum_j = variables[ "Sum of " + self.domain.lower() + " electrode interfacial current densities" ] - self.rhs[delta_phi] = 1 / C_dl * (pybamm.div(i_e) - sum_j) + self.rhs[delta_phi] = 1 / C_dl * (pybamm.div(i_e) - a * sum_j) diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index 7748cde679..a2c9ce99d4 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -105,6 +105,35 @@ def _get_standard_flux_variables(self, N_e): return variables + def _get_total_concentration_electrolyte(self, c_e, epsilon): + """ + A private function to obtain the total ion concentration in the electrolyte. + + Parameters + ---------- + c_e : :class:`pybamm.Symbol` + The electrolyte concentration + epsilon : :class:`pybamm.Symbol` + The porosity + + Returns + ------- + variables : dict + The "Total concentration in electrolyte [mol]" variable. + """ + + c_e_typ = self.param.c_e_typ + L_x = self.param.L_x + A = self.param.A_cc + + c_e_total = pybamm.x_average(epsilon * c_e) + + variables = { + "Total concentration in electrolyte [mol]": c_e_typ * L_x * A * c_e_total + } + + return variables + def set_events(self, variables): c_e = variables["Electrolyte concentration"] self.events.append( diff --git a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py index eac8e91f27..1a8050d83e 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py @@ -36,6 +36,7 @@ def get_fundamental_variables(self): def get_coupled_variables(self, variables): tor_0 = variables["Leading-order electrolyte tortuosity"] + eps = variables["Leading-order porosity"] c_e_0_av = variables["Leading-order x-averaged electrolyte concentration"] c_e = variables["Electrolyte concentration"] i_e = variables["Electrolyte current density"] @@ -51,6 +52,7 @@ def get_coupled_variables(self, variables): N_e = N_e_diffusion + N_e_migration + N_e_convection variables.update(self._get_standard_flux_variables(N_e)) + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py index 8b90396f7e..570bce61b3 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py +++ b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py @@ -38,3 +38,10 @@ def get_fundamental_variables(self): return variables + def get_coupled_variables(self, variables): + c_e = variables["Electrolyte concentration"] + eps = variables["Porosity"] + + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) + + return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py index 06d5ec45af..c2501a16e3 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py @@ -138,4 +138,13 @@ def get_coupled_variables(self, variables): ) variables.update(self._get_standard_flux_variables(N_e)) + c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) + eps = pybamm.Concatenation( + pybamm.PrimaryBroadcast(eps_n_0, "negative electrode"), + pybamm.PrimaryBroadcast(eps_s_0, "separator"), + pybamm.PrimaryBroadcast(eps_p_0, "positive electrode"), + ) + + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) + return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py index 4bec2350f7..8b61806e02 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py @@ -34,6 +34,7 @@ def get_fundamental_variables(self): def get_coupled_variables(self, variables): tor = variables["Electrolyte tortuosity"] + eps = variables["Porosity"] c_e = variables["Electrolyte concentration"] i_e = variables["Electrolyte current density"] v_box = variables["Volume-averaged velocity"] @@ -48,6 +49,7 @@ def get_coupled_variables(self, variables): N_e = N_e_diffusion + N_e_migration + N_e_convection variables.update(self._get_standard_flux_variables(N_e)) + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) return variables diff --git a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py index 7e96682e0e..b14a19eda9 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py @@ -42,6 +42,16 @@ def get_coupled_variables(self, variables): variables.update(self._get_standard_flux_variables(N_e)) + c_e_av = pybamm.standard_variables.c_e_av + c_e = pybamm.Concatenation( + pybamm.PrimaryBroadcast(c_e_av, ["negative electrode"]), + pybamm.PrimaryBroadcast(c_e_av, ["separator"]), + pybamm.PrimaryBroadcast(c_e_av, ["positive electrode"]), + ) + eps = variables["Porosity"] + + variables.update(self._get_total_concentration_electrolyte(c_e, eps)) + return variables def set_rhs(self, variables): diff --git a/pybamm/models/submodels/external_circuit/experiment_events.py b/pybamm/models/submodels/external_circuit/experiment_events.py index 1eaef5a47f..60fc0a31c0 100644 --- a/pybamm/models/submodels/external_circuit/experiment_events.py +++ b/pybamm/models/submodels/external_circuit/experiment_events.py @@ -13,7 +13,7 @@ def __init__(self, param): def set_events(self, variables): # add current and voltage events to the model # current events both negative and positive to catch specification - n_cells = pybamm.electrical_parameters.n_cells + n_cells = self.param.n_cells self.events.extend( [ pybamm.Event( diff --git a/pybamm/models/submodels/interface/base_interface.py b/pybamm/models/submodels/interface/base_interface.py index 10b58b9d1b..4e5e5184ef 100644 --- a/pybamm/models/submodels/interface/base_interface.py +++ b/pybamm/models/submodels/interface/base_interface.py @@ -173,6 +173,14 @@ def _get_number_of_electrons_in_reaction(self): else: return pybamm.Scalar(0) + def _get_surface_area_per_unit_volume_distribution(self): + "Returns the distribution of surface area per unit volume in x" + x_n = pybamm.standard_spatial_vars.x_n + x_p = pybamm.standard_spatial_vars.x_p + a_n = self.param.a_n_of_x(x_n) + a_p = self.param.a_p_of_x(x_p) + return a_n, a_p + def _get_electrolyte_reaction_signed_stoichiometry(self): "Returns the number of electrons in the reaction" if self.reaction in ["lithium-ion main", "sei"]: @@ -199,15 +207,27 @@ def _get_delta_phi(self, variables): def _get_average_total_interfacial_current_density(self, variables): """ Method to obtain the average total interfacial current density. + + Note: for lithium-ion models this is only exact if all the particles have + the same radius. For the current set of models implemeted in pybamm, + having the radius as a function of through-cell distance only makes sense + for the DFN model. In the DFN, the correct average interfacial current density + is computed in 'base_kinetics.py' by averaging the actual interfacial current + density. The approximation here is only used to get the approximate constant + additional resistance term for the "average" sei film resistance model + (if using), where only negligible errors will be introduced. + + For "leading-order" and "composite" submodels (as used in the SPM and SPMe) + there is only a single particle radius, so this method returns correct result. """ i_boundary_cc = variables["Current collector current density"] if self.domain == "Negative": - j_total_average = i_boundary_cc / pybamm.geometric_parameters.l_n + j_total_average = i_boundary_cc / self.param.l_n elif self.domain == "Positive": - j_total_average = -i_boundary_cc / pybamm.geometric_parameters.l_p + j_total_average = -i_boundary_cc / self.param.l_p return j_total_average @@ -327,25 +347,37 @@ def _get_standard_whole_cell_interfacial_current_variables(self, variables): } ) + a_n, a_p = self._get_surface_area_per_unit_volume_distribution() + a = pybamm.Concatenation( + a_n, pybamm.FullBroadcast(0, "separator", "current collector"), a_p + ) + variables.update( + { + "Negative surface area per unit volume distribution in x": a_n, + "Positive surface area per unit volume distribution in x": a_p, + } + ) + s_n, s_p = self._get_electrolyte_reaction_signed_stoichiometry() s = pybamm.Concatenation( pybamm.FullBroadcast(s_n, "negative electrode", "current collector"), pybamm.FullBroadcast(0, "separator", "current collector"), pybamm.FullBroadcast(s_p, "positive electrode", "current collector"), ) - variables["Sum of electrolyte reaction source terms"] += s * j + + variables["Sum of electrolyte reaction source terms"] += a * s * j variables["Sum of negative electrode electrolyte reaction source terms"] += ( - s_n * j_n + a_n * s_n * j_n ) variables["Sum of positive electrode electrolyte reaction source terms"] += ( - s_p * j_p + a_p * s_p * j_p ) variables[ "Sum of x-averaged negative electrode electrolyte reaction source terms" - ] += (s_n * j_n_av) + ] += pybamm.x_average(a_n * s_n * j_n) variables[ "Sum of x-averaged positive electrode electrolyte reaction source terms" - ] += (s_p * j_p_av) + ] += pybamm.x_average(a_p * s_p * j_p) variables["Sum of interfacial current densities"] += j variables["Sum of negative electrode interfacial current densities"] += j_n diff --git a/pybamm/models/submodels/interface/sei/base_sei.py b/pybamm/models/submodels/interface/sei/base_sei.py index 68bbddbcd5..c82cf537d3 100644 --- a/pybamm/models/submodels/interface/sei/base_sei.py +++ b/pybamm/models/submodels/interface/sei/base_sei.py @@ -44,37 +44,18 @@ def _get_standard_thickness_variables(self, L_inner, L_outer): The variables which can be derived from the SEI thicknesses. """ param = self.param + domain = self.domain.lower() + " electrode" - # Set scales to one for the "no SEI" model so that they are not required - # by parameter values in general + # Set length scale to one for the "no SEI" model so that it is not + # required by parameter values in general if isinstance(self, pybamm.sei.NoSEI): L_scale = 1 - n_scale = 1 - n_outer_scale = 1 - v_bar = 1 else: L_scale = param.L_sei_0_dim - n_scale = param.L_sei_0_dim * param.a_n_dim / param.V_bar_inner_dimensional - n_outer_scale = ( - param.L_sei_0_dim * param.a_n_dim / param.V_bar_outer_dimensional - ) - v_bar = param.v_bar L_inner_av = pybamm.x_average(L_inner) L_outer_av = pybamm.x_average(L_outer) - n_inner = L_inner # inner SEI concentration - n_outer = L_outer # outer SEI concentration - n_inner_av = pybamm.x_average(L_inner) - n_outer_av = pybamm.x_average(L_outer) - - n_SEI = n_inner + n_outer / v_bar # SEI concentration - n_SEI_av = pybamm.x_average(n_SEI) - - Q_sei = n_SEI_av * self.param.L_n * self.param.L_y * self.param.L_z - - domain = self.domain.lower() + " electrode" - variables = { "Inner " + domain + " sei thickness": L_inner, "Inner " + domain + " sei thickness [m]": L_inner * L_scale, @@ -84,21 +65,10 @@ def _get_standard_thickness_variables(self, L_inner, L_outer): "Outer " + domain + " sei thickness [m]": L_outer * L_scale, "X-averaged outer " + domain + " sei thickness": L_outer_av, "X-averaged outer " + domain + " sei thickness [m]": L_outer_av * L_scale, - "Inner " + domain + " sei concentration [mol.m-3]": n_inner * n_scale, - "X-averaged inner " - + domain - + " sei concentration [mol.m-3]": n_inner_av * n_scale, - "Outer " + domain + " sei concentration [mol.m-3]": n_outer * n_outer_scale, - "X-averaged outer " - + domain - + " sei concentration [mol.m-3]": n_outer_av * n_outer_scale, - self.domain + " sei concentration [mol.m-3]": n_SEI * n_scale, - "X-averaged " + domain + " sei concentration [mol.m-3]": n_SEI_av * n_scale, - "Loss of lithium to " + domain + " sei [mol]": Q_sei * n_scale, } + # Get variables related to the total thickness L_sei = L_inner + L_outer - variables.update(self._get_standard_total_thickness_variables(L_sei)) return variables @@ -125,6 +95,98 @@ def _get_standard_total_thickness_variables(self, L_sei): } return variables + def _get_standard_concentraion_variables(self, variables): + "Update variables related to the SEI concentration" + param = self.param + domain = self.domain.lower() + " electrode" + + # Set scales to one for the "no SEI" model so that they are not required + # by parameter values in general + if isinstance(self, pybamm.sei.NoSEI): + n_scale = 1 + n_outer_scale = 1 + v_bar = 1 + # Set scales for the "EC Reaction Limited" model + elif isinstance(self, pybamm.sei.EcReactionLimited): + n_scale = 1 + n_outer_scale = self.param.c_ec_0_dim + v_bar = 1 + else: + n_scale = param.L_sei_0_dim * param.a_n_dim / param.V_bar_inner_dimensional + n_outer_scale = ( + param.L_sei_0_dim * param.a_n_dim / param.V_bar_outer_dimensional + ) + v_bar = param.v_bar + + L_inner = variables["Inner " + domain + " sei thickness"] + L_outer = variables["Outer " + domain + " sei thickness"] + + # Set SEI concentration variables. Note these are defined differently for + # the "EC Reaction Limited" model + if isinstance(self, pybamm.sei.EcReactionLimited): + j_outer = variables["Outer " + domain + " sei interfacial current density"] + # concentration of EC on graphite surface, base case = 1 + if self.domain == "Negative": + C_ec = self.param.C_ec_n + + c_ec = pybamm.Scalar(1) + j_outer * L_outer * C_ec + c_ec_av = pybamm.x_average(c_ec) + + n_inner = pybamm.FullBroadcast( + 0, self.domain.lower() + " electrode", "current collector" + ) # inner SEI concentration + n_outer = j_outer * L_outer * C_ec # outer SEI concentration + else: + n_inner = L_inner # inner SEI concentration + n_outer = L_outer # outer SEI concentration + + n_inner_av = pybamm.x_average(L_inner) + n_outer_av = pybamm.x_average(L_outer) + + n_SEI = n_inner + n_outer / v_bar # SEI concentration + n_SEI_av = pybamm.x_average(n_SEI) + + Q_sei = n_SEI_av * self.param.L_n * self.param.L_y * self.param.L_z + + variables.update( + { + "Inner " + domain + " sei concentration [mol.m-3]": n_inner * n_scale, + "X-averaged inner " + + domain + + " sei concentration [mol.m-3]": n_inner_av * n_scale, + "Outer " + + domain + + " sei concentration [mol.m-3]": n_outer * n_outer_scale, + "X-averaged outer " + + domain + + " sei concentration [mol.m-3]": n_outer_av * n_outer_scale, + self.domain + " sei concentration [mol.m-3]": n_SEI * n_scale, + "X-averaged " + + domain + + " sei concentration [mol.m-3]": n_SEI_av * n_scale, + "Loss of lithium to " + domain + " sei [mol]": Q_sei * n_scale, + } + ) + + # Also set variables for EC surface concentration + if isinstance(self, pybamm.sei.EcReactionLimited): + variables.update( + { + self.domain + " electrode EC surface concentration": c_ec, + self.domain + + " electrode EC surface concentration [mol.m-3]": c_ec + * n_outer_scale, + "X-averaged " + + self.domain.lower() + + " electrode EC surface concentration": c_ec_av, + "X-averaged " + + self.domain.lower() + + " electrode EC surface concentration": c_ec_av * n_outer_scale, + } + ) + + return variables + def _get_standard_reaction_variables(self, j_inner, j_outer): """ A private function to obtain the standard variables which diff --git a/pybamm/models/submodels/interface/sei/constant_sei.py b/pybamm/models/submodels/interface/sei/constant_sei.py index d31f9f6dd6..89cb986b2b 100644 --- a/pybamm/models/submodels/interface/sei/constant_sei.py +++ b/pybamm/models/submodels/interface/sei/constant_sei.py @@ -6,7 +6,8 @@ class ConstantSEI(BaseModel): - """Base class for SEI with constant thickness. + """ + Class for SEI with constant thickness. Note that there is no SEI current, so we don't need to update the "sum of interfacial current densities" variables from @@ -31,6 +32,9 @@ def get_fundamental_variables(self): L_outer = self.param.L_outer_0 variables = self._get_standard_thickness_variables(L_inner, L_outer) + # Concentrations (derived from thicknesses) + variables.update(self._get_standard_concentraion_variables(variables)) + # Reactions zero = pybamm.FullBroadcast( pybamm.Scalar(0), self.domain.lower() + " electrode", "current collector" diff --git a/pybamm/models/submodels/interface/sei/ec_reaction_limited.py b/pybamm/models/submodels/interface/sei/ec_reaction_limited.py index a806181bd2..72495bb27b 100644 --- a/pybamm/models/submodels/interface/sei/ec_reaction_limited.py +++ b/pybamm/models/submodels/interface/sei/ec_reaction_limited.py @@ -6,7 +6,9 @@ class EcReactionLimited(BaseModel): - """Base class for reaction limited SEI growth. + """ + Class for reaction limited SEI growth. This model assumes the "inner" + SEI layer is of zero thickness and only models the "outer" SEI layer. Parameters ---------- @@ -23,46 +25,30 @@ def __init__(self, param, domain): def get_fundamental_variables(self): - L_sei = pybamm.Variable( - "Total " + self.domain.lower() + " electrode sei thickness", - domain=self.domain.lower() + " electrode", - auxiliary_domains={"secondary": "current collector"}, + L_inner = pybamm.FullBroadcast( + 0, self.domain.lower() + " electrode", "current collector" ) - j_sei = pybamm.Variable( - self.domain + " electrode sei interfacial current density", + L_outer = pybamm.standard_variables.L_outer + + j_inner = pybamm.FullBroadcast( + 0, self.domain.lower() + " electrode", "current collector" + ) + j_outer = pybamm.Variable( + "Outer " + self.domain + " electrode sei interfacial current density", domain=self.domain.lower() + " electrode", auxiliary_domains={"secondary": "current collector"}, ) - variables = self._get_standard_total_thickness_variables(L_sei) - variables.update(self._get_standard_total_reaction_variables(j_sei)) + variables = self._get_standard_thickness_variables(L_inner, L_outer) + variables.update(self._get_standard_reaction_variables(j_inner, j_outer)) return variables def get_coupled_variables(self, variables): - j_sei = variables[self.domain + " electrode sei interfacial current density"] - L_sei = variables["Total " + self.domain.lower() + " electrode sei thickness"] - c_scale = self.param.c_ec_0_dim - # concentration of EC on graphite surface, base case = 1 - if self.domain == "Negative": - C_ec = self.param.C_ec_n - - c_ec = pybamm.Scalar(1) + j_sei * L_sei * C_ec - c_ec_av = pybamm.x_average(c_ec) - variables.update( - { - self.domain + " electrode EC surface concentration": c_ec, - self.domain - + " electrode EC surface concentration [mol.m-3]": c_ec * c_scale, - "X-averaged " - + self.domain.lower() - + " electrode EC surface concentration": c_ec_av, - "X-averaged " - + self.domain.lower() - + " electrode EC surface concentration": c_ec_av * c_scale, - } - ) + # Get variables related to the concentration + variables.update(self._get_standard_concentraion_variables(variables)) + # Update whole cell variables, which also updates the "sum of" variables if ( "Negative electrode sei interfacial current density" in variables @@ -77,8 +63,8 @@ def get_coupled_variables(self, variables): def set_rhs(self, variables): domain = self.domain.lower() + " electrode" - L_sei = variables["Total " + domain + " sei thickness"] - j_sei = variables[self.domain + " electrode sei interfacial current density"] + L_sei = variables["Outer " + domain + " sei thickness"] + j_sei = variables["Outer " + domain + " sei interfacial current density"] if self.domain == "Negative": Gamma_SEI = self.param.Gamma_SEI_n @@ -88,8 +74,12 @@ def set_rhs(self, variables): def set_algebraic(self, variables): phi_s_n = variables[self.domain + " electrode potential"] phi_e_n = variables[self.domain + " electrolyte potential"] - j_sei = variables[self.domain + " electrode sei interfacial current density"] - L_sei = variables["Total " + self.domain.lower() + " electrode sei thickness"] + j_sei = variables[ + "Outer " + + self.domain.lower() + + " electrode sei interfacial current density" + ] + L_sei = variables["Outer " + self.domain.lower() + " electrode sei thickness"] c_ec = variables[self.domain + " electrode EC surface concentration"] # Look for current that contributes to the -IR drop @@ -115,7 +105,6 @@ def set_algebraic(self, variables): R_sei = self.param.R_sei_n # need to revise for thermal case - self.algebraic = { j_sei: j_sei + C_sei_ec @@ -124,8 +113,12 @@ def set_algebraic(self, variables): } def set_initial_conditions(self, variables): - L_sei = variables["Total " + self.domain.lower() + " electrode sei thickness"] - j_sei = variables[self.domain + " electrode sei interfacial current density"] + L_sei = variables["Outer " + self.domain.lower() + " electrode sei thickness"] + j_sei = variables[ + "Outer " + + self.domain.lower() + + " electrode sei interfacial current density" + ] L_sei_0 = pybamm.Scalar(1) j_sei_0 = pybamm.Scalar(0) diff --git a/pybamm/models/submodels/interface/sei/electron_migration_limited.py b/pybamm/models/submodels/interface/sei/electron_migration_limited.py index c64ef6d389..a4988ccdcd 100644 --- a/pybamm/models/submodels/interface/sei/electron_migration_limited.py +++ b/pybamm/models/submodels/interface/sei/electron_migration_limited.py @@ -6,7 +6,8 @@ class ElectronMigrationLimited(BaseModel): - """Base class for electron-migration limited SEI growth. + """ + Class for electron-migration limited SEI growth. Parameters ---------- @@ -26,6 +27,7 @@ def get_fundamental_variables(self): L_outer = pybamm.standard_variables.L_outer variables = self._get_standard_thickness_variables(L_inner, L_outer) + variables.update(self._get_standard_concentraion_variables(variables)) return variables diff --git a/pybamm/models/submodels/interface/sei/interstitial_diffusion_limited.py b/pybamm/models/submodels/interface/sei/interstitial_diffusion_limited.py index 4f7089b154..3865a7a1ca 100644 --- a/pybamm/models/submodels/interface/sei/interstitial_diffusion_limited.py +++ b/pybamm/models/submodels/interface/sei/interstitial_diffusion_limited.py @@ -6,7 +6,8 @@ class InterstitialDiffusionLimited(BaseModel): - """Base class for interstitial-diffusion limited SEI growth. + """ + Class for interstitial-diffusion limited SEI growth. Parameters ---------- @@ -26,6 +27,7 @@ def get_fundamental_variables(self): L_outer = pybamm.standard_variables.L_outer variables = self._get_standard_thickness_variables(L_inner, L_outer) + variables.update(self._get_standard_concentraion_variables(variables)) return variables diff --git a/pybamm/models/submodels/interface/sei/no_sei.py b/pybamm/models/submodels/interface/sei/no_sei.py index b23b951210..2a477e5ded 100644 --- a/pybamm/models/submodels/interface/sei/no_sei.py +++ b/pybamm/models/submodels/interface/sei/no_sei.py @@ -6,7 +6,8 @@ class NoSEI(BaseModel): - """Base class for no SEI. + """ + Class for no SEI. Parameters ---------- @@ -26,6 +27,7 @@ def get_fundamental_variables(self): pybamm.Scalar(0), self.domain.lower() + " electrode", "current collector" ) variables = self._get_standard_thickness_variables(zero, zero) + variables.update(self._get_standard_concentraion_variables(variables)) variables.update(self._get_standard_reaction_variables(zero, zero)) return variables diff --git a/pybamm/models/submodels/interface/sei/reaction_limited.py b/pybamm/models/submodels/interface/sei/reaction_limited.py index 84102d0b62..0f6fd0ed37 100644 --- a/pybamm/models/submodels/interface/sei/reaction_limited.py +++ b/pybamm/models/submodels/interface/sei/reaction_limited.py @@ -6,7 +6,8 @@ class ReactionLimited(BaseModel): - """Base class for reaction limited SEI growth. + """ + Class for reaction limited SEI growth. Parameters ---------- @@ -26,6 +27,7 @@ def get_fundamental_variables(self): L_outer = pybamm.standard_variables.L_outer variables = self._get_standard_thickness_variables(L_inner, L_outer) + variables.update(self._get_standard_concentraion_variables(variables)) return variables diff --git a/pybamm/models/submodels/interface/sei/solvent_diffusion_limited.py b/pybamm/models/submodels/interface/sei/solvent_diffusion_limited.py index 74bdaff598..521a581af6 100644 --- a/pybamm/models/submodels/interface/sei/solvent_diffusion_limited.py +++ b/pybamm/models/submodels/interface/sei/solvent_diffusion_limited.py @@ -6,7 +6,8 @@ class SolventDiffusionLimited(BaseModel): - """Base class for solvent-diffusion limited SEI growth. + """ + Class for solvent-diffusion limited SEI growth. Parameters ---------- @@ -26,6 +27,7 @@ def get_fundamental_variables(self): L_outer = pybamm.standard_variables.L_outer variables = self._get_standard_thickness_variables(L_inner, L_outer) + variables.update(self._get_standard_concentraion_variables(variables)) return variables diff --git a/pybamm/models/submodels/particle/__init__.py b/pybamm/models/submodels/particle/__init__.py index 374c59674c..847e7361db 100644 --- a/pybamm/models/submodels/particle/__init__.py +++ b/pybamm/models/submodels/particle/__init__.py @@ -1,5 +1,5 @@ from .base_particle import BaseParticle from .fickian_many_particles import FickianManyParticles from .fickian_single_particle import FickianSingleParticle -from .fast_many_particles import FastManyParticles -from .fast_single_particle import FastSingleParticle +from .polynomial_single_particle import PolynomialSingleParticle +from .polynomial_many_particles import PolynomialManyParticles diff --git a/pybamm/models/submodels/particle/base_particle.py b/pybamm/models/submodels/particle/base_particle.py index 28a696f3c6..0e9b13d25a 100644 --- a/pybamm/models/submodels/particle/base_particle.py +++ b/pybamm/models/submodels/particle/base_particle.py @@ -5,7 +5,8 @@ class BaseParticle(pybamm.BaseSubModel): - """Base class for molar conservation in particles. + """ + Base class for molar conservation in particles. Parameters ---------- @@ -14,28 +15,47 @@ class BaseParticle(pybamm.BaseSubModel): domain : str The domain of the model either 'Negative' or 'Positive' - **Extends:** :class:`pybamm.BaseSubModel` """ def __init__(self, param, domain): super().__init__(param, domain) - def _get_standard_concentration_variables(self, c_s, c_s_xav): - - c_s_surf = pybamm.surf(c_s) - + def _get_standard_concentration_variables( + self, c_s, c_s_xav=None, c_s_rav=None, c_s_av=None, c_s_surf=None + ): + """ + All particle submodels must provide the particle concentration as an argument + to this method. Some submodels solve for quantities other than the concentration + itself, for example the 'FickianSingleParticle' models solves for the x-averaged + concentration. In such cases the variables being solved for (set in + 'get_fundamental_variables') must also be passed as keyword arguments. If not + passed as keyword arguments, the various average concentrations and surface + concentration are computed automatically from the particle concentration. + """ + + # Get surface concentration if not provided as fundamental variable to + # solve for + c_s_surf = c_s_surf or pybamm.surf(c_s) c_s_surf_av = pybamm.x_average(c_s_surf) - geo_param = pybamm.geometric_parameters if self.domain == "Negative": c_scale = self.param.c_n_max - active_volume = geo_param.a_n_dim * geo_param.R_n / 3 + eps_s = self.param.epsilon_s_n + L = self.param.L_n elif self.domain == "Positive": c_scale = self.param.c_p_max - active_volume = geo_param.a_p_dim * geo_param.R_p / 3 - c_s_av = pybamm.r_average(c_s_xav) - c_s_av_vol = active_volume * c_s_av + eps_s = self.param.epsilon_s_p + L = self.param.L_p + A = self.param.A_cc + + # Get average concentration(s) if not provided as fundamental variable to + # solve for + c_s_xav = c_s_xav or pybamm.x_average(c_s) + c_s_rav = c_s_rav or pybamm.r_average(c_s) + c_s_av = c_s_av or pybamm.r_average(c_s_xav) + c_s_vol_av = pybamm.x_average(eps_s * c_s_rav) + variables = { self.domain + " particle concentration": c_s, self.domain + " particle concentration [mol.m-3]": c_s * c_scale, @@ -43,6 +63,14 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): "X-averaged " + self.domain.lower() + " particle concentration [mol.m-3]": c_s_xav * c_scale, + "R-averaged " + self.domain.lower() + " particle concentration": c_s_rav, + "R-averaged " + + self.domain.lower() + + " particle concentration [mol.m-3]": c_s_rav * c_scale, + "Average " + self.domain.lower() + " particle concentration": c_s_av, + "Average " + + self.domain.lower() + + " particle concentration [mol.m-3]": c_s_av * c_scale, self.domain + " particle surface concentration": c_s_surf, self.domain + " particle surface concentration [mol.m-3]": c_scale * c_s_surf, @@ -52,12 +80,18 @@ def _get_standard_concentration_variables(self, c_s, c_s_xav): "X-averaged " + self.domain.lower() + " particle surface concentration [mol.m-3]": c_scale * c_s_surf_av, - self.domain + " electrode active volume fraction": active_volume, - self.domain + " electrode volume-averaged concentration": c_s_av_vol, + self.domain + " electrode active volume fraction": eps_s, + self.domain + " electrode volume-averaged concentration": c_s_vol_av, self.domain + " electrode " - + "volume-averaged concentration [mol.m-3]": c_s_av_vol * c_scale, - self.domain + " electrode average extent of lithiation": c_s_av, + + "volume-averaged concentration [mol.m-3]": c_s_vol_av * c_scale, + self.domain + " electrode extent of lithiation": c_s_rav, + "X-averaged " + + self.domain.lower() + + " electrode extent of lithiation": c_s_av, + "Total lithium in " + + self.domain.lower() + + " electrode [mol]": c_s_vol_av * c_scale * L * A, } return variables diff --git a/pybamm/models/submodels/particle/fast_many_particles.py b/pybamm/models/submodels/particle/fast_many_particles.py deleted file mode 100644 index 25e44544f2..0000000000 --- a/pybamm/models/submodels/particle/fast_many_particles.py +++ /dev/null @@ -1,85 +0,0 @@ -# -# Class for many particles, each with uniform concentration (i.e. infinitely -# fast diffusion in r) -# -import pybamm - -from .base_particle import BaseParticle - - -class FastManyParticles(BaseParticle): - """Base class for molar conservation in many particles with - uniform concentration in r (i.e. infinitely fast diffusion within particles). - - Parameters - ---------- - param : parameter class - The parameters to use for this submodel - domain : str - The domain of the model either 'Negative' or 'Positive' - - - **Extends:** :class:`pybamm.particle.BaseParticle` - """ - - def __init__(self, param, domain): - super().__init__(param, domain) - - def get_fundamental_variables(self): - # The particle concentration is uniform throughout the particle, so we - # can just use the surface value. - if self.domain == "Negative": - c_s_surf = pybamm.standard_variables.c_s_n_surf - c_s = pybamm.PrimaryBroadcast(c_s_surf, ["negative particle"]) - c_s_xav = pybamm.x_average(c_s) - - N_s = pybamm.FullBroadcastToEdges( - 0, - ["negative particle"], - auxiliary_domains={ - "secondary": "negative electrode", - "tertiary": "current collector", - }, - ) - N_s_xav = pybamm.FullBroadcast(0, "negative electrode", "current collector") - - elif self.domain == "Positive": - c_s_surf = pybamm.standard_variables.c_s_p_surf - c_s = pybamm.PrimaryBroadcast(c_s_surf, ["positive particle"]) - c_s_xav = pybamm.x_average(c_s) - - N_s = pybamm.FullBroadcastToEdges( - 0, - ["positive particle"], - auxiliary_domains={ - "secondary": "positive electrode", - "tertiary": "current collector", - }, - ) - N_s_xav = pybamm.FullBroadcast(0, "positive electrode", "current collector") - - variables = self._get_standard_concentration_variables(c_s, c_s_xav) - variables.update(self._get_standard_flux_variables(N_s, N_s_xav)) - - return variables - - def set_rhs(self, variables): - c_s_surf = variables[self.domain + " particle surface concentration"] - j = variables[self.domain + " electrode interfacial current density"] - if self.domain == "Negative": - self.rhs = {c_s_surf: -3 * j / self.param.a_n} - - elif self.domain == "Positive": - self.rhs = {c_s_surf: -3 * j / self.param.a_p / self.param.gamma_p} - - def set_initial_conditions(self, variables): - c_s_surf = variables[self.domain + " particle surface concentration"] - if self.domain == "Negative": - x_n = pybamm.standard_spatial_vars.x_n - c_init = self.param.c_n_init(x_n) - - elif self.domain == "Positive": - x_p = pybamm.standard_spatial_vars.x_p - c_init = self.param.c_p_init(x_p) - - self.initial_conditions = {c_s_surf: c_init} diff --git a/pybamm/models/submodels/particle/fast_single_particle.py b/pybamm/models/submodels/particle/fast_single_particle.py deleted file mode 100644 index 60046017d1..0000000000 --- a/pybamm/models/submodels/particle/fast_single_particle.py +++ /dev/null @@ -1,101 +0,0 @@ -# -# Class for single particle with uniform concentration (i.e. infinitely fast -# diffusion in r) -# -import pybamm - -from .base_particle import BaseParticle - - -class FastSingleParticle(BaseParticle): - """Base class for molar conservation in a single x-averaged particle with - uniform concentration in r (i.e. infinitely fast diffusion within particles). - - Parameters - ---------- - param : parameter class - The parameters to use for this submodel - domain : str - The domain of the model either 'Negative' or 'Positive' - - - **Extends:** :class:`pybamm.particle.BaseParticle` - """ - - def __init__(self, param, domain): - super().__init__(param, domain) - - def get_fundamental_variables(self): - # The particle concentration is uniform throughout the particle, so we - # can just use the surface value. This avoids dealing with both - # x *and* r averaged quantities, which may be confusing. - - if self.domain == "Negative": - c_s_surf_xav = pybamm.standard_variables.c_s_n_surf_xav - c_s_xav = pybamm.PrimaryBroadcast(c_s_surf_xav, ["negative particle"]) - c_s = pybamm.SecondaryBroadcast(c_s_xav, ["negative electrode"]) - - N_s = pybamm.FullBroadcastToEdges( - 0, - ["negative particle"], - auxiliary_domains={ - "secondary": "negative electrode", - "tertiary": "current collector", - }, - ) - N_s_xav = pybamm.FullBroadcast(0, "negative electrode", "current collector") - - elif self.domain == "Positive": - c_s_surf_xav = pybamm.standard_variables.c_s_p_surf_xav - c_s_xav = pybamm.PrimaryBroadcast(c_s_surf_xav, ["positive particle"]) - c_s = pybamm.SecondaryBroadcast(c_s_xav, ["positive electrode"]) - - N_s = pybamm.FullBroadcastToEdges( - 0, - ["positive particle"], - auxiliary_domains={ - "secondary": "positive electrode", - "tertiary": "current collector", - }, - ) - N_s_xav = pybamm.FullBroadcast(0, "positive electrode", "current collector") - - variables = self._get_standard_concentration_variables(c_s, c_s_xav) - variables.update(self._get_standard_flux_variables(N_s, N_s_xav)) - - return variables - - def set_rhs(self, variables): - - c_s_surf_xav = variables[ - "X-averaged " + self.domain.lower() + " particle surface concentration" - ] - j_xav = variables[ - "X-averaged " - + self.domain.lower() - + " electrode interfacial current density" - ] - - if self.domain == "Negative": - self.rhs = {c_s_surf_xav: -3 * j_xav / self.param.a_n} - - elif self.domain == "Positive": - self.rhs = {c_s_surf_xav: -3 * j_xav / self.param.a_p / self.param.gamma_p} - - def set_initial_conditions(self, variables): - """ - For single particle models, initial conditions can't depend on x so we - arbitrarily evaluate them at x=0 in the negative electrode and x=1 in the - positive electrode (they will usually be constant) - """ - c_s_surf_xav = variables[ - "X-averaged " + self.domain.lower() + " particle surface concentration" - ] - - if self.domain == "Negative": - c_init = self.param.c_n_init(0) - - elif self.domain == "Positive": - c_init = self.param.c_p_init(1) - - self.initial_conditions = {c_s_surf_xav: c_init} diff --git a/pybamm/models/submodels/particle/fickian_many_particles.py b/pybamm/models/submodels/particle/fickian_many_particles.py index a2515c1491..5559f17c52 100644 --- a/pybamm/models/submodels/particle/fickian_many_particles.py +++ b/pybamm/models/submodels/particle/fickian_many_particles.py @@ -6,8 +6,8 @@ class FickianManyParticles(BaseParticle): - """Base class for molar conservation in many particles which employs - Fick's law. + """ + Class for molar conservation in many particles which employs Fick's law. Parameters ---------- @@ -16,7 +16,6 @@ class FickianManyParticles(BaseParticle): domain : str The domain of the model either 'Negative' or 'Positive' - **Extends:** :class:`pybamm.particle.BaseParticle` """ @@ -30,72 +29,64 @@ def get_fundamental_variables(self): elif self.domain == "Positive": c_s = pybamm.standard_variables.c_s_p - c_s_xav = pybamm.x_average(c_s) - variables = self._get_standard_concentration_variables(c_s, c_s_xav) + variables = self._get_standard_concentration_variables(c_s) return variables def get_coupled_variables(self, variables): c_s = variables[self.domain + " particle concentration"] - T_k = pybamm.PrimaryBroadcast( + T = pybamm.PrimaryBroadcast( variables[self.domain + " electrode temperature"], [self.domain.lower() + " particle"], ) if self.domain == "Negative": - N_s = -self.param.D_n(c_s, T_k) * pybamm.grad(c_s) - elif self.domain == "Positive": - N_s = -self.param.D_p(c_s, T_k) * pybamm.grad(c_s) - - variables.update(self._get_standard_flux_variables(N_s, N_s)) - - if self.domain == "Negative": + N_s = -self.param.D_n(c_s, T) * pybamm.grad(c_s) x = pybamm.standard_spatial_vars.x_n - R = pybamm.FunctionParameter( - "Negative particle distribution in x", - {"Dimensionless through-cell position (x_n)": x}, - ) + R = self.param.R_n_of_x(x) variables.update({"Negative particle distribution in x": R}) elif self.domain == "Positive": + N_s = -self.param.D_p(c_s, T) * pybamm.grad(c_s) + x = pybamm.standard_spatial_vars.x_p - R = pybamm.FunctionParameter( - "Positive particle distribution in x", - {"Dimensionless through-cell position (x_p)": x}, - ) + R = self.param.R_p_of_x(x) variables.update({"Positive particle distribution in x": R}) + variables.update(self._get_standard_flux_variables(N_s, N_s)) + return variables def set_rhs(self, variables): c_s = variables[self.domain + " particle concentration"] N_s = variables[self.domain + " particle flux"] + R = variables[self.domain + " particle distribution in x"] if self.domain == "Negative": - R = variables["Negative particle distribution in x"] self.rhs = {c_s: -(1 / (R ** 2 * self.param.C_n)) * pybamm.div(N_s)} elif self.domain == "Positive": - R = variables["Positive particle distribution in x"] self.rhs = {c_s: -(1 / (R ** 2 * self.param.C_p)) * pybamm.div(N_s)} def set_boundary_conditions(self, variables): c_s = variables[self.domain + " particle concentration"] c_s_surf = variables[self.domain + " particle surface concentration"] - T_k = variables[self.domain + " electrode temperature"] + T = variables[self.domain + " electrode temperature"] j = variables[self.domain + " electrode interfacial current density"] + R = variables[self.domain + " particle distribution in x"] if self.domain == "Negative": - rbc = -self.param.C_n * j / self.param.a_n / self.param.D_n(c_s_surf, T_k) + rbc = -self.param.C_n * j * R / self.param.a_n / self.param.D_n(c_s_surf, T) elif self.domain == "Positive": rbc = ( -self.param.C_p * j + * R / self.param.a_p / self.param.gamma_p - / self.param.D_p(c_s_surf, T_k) + / self.param.D_p(c_s_surf, T) ) self.boundary_conditions = { diff --git a/pybamm/models/submodels/particle/fickian_single_particle.py b/pybamm/models/submodels/particle/fickian_single_particle.py index 1d049dffd7..450c57062f 100644 --- a/pybamm/models/submodels/particle/fickian_single_particle.py +++ b/pybamm/models/submodels/particle/fickian_single_particle.py @@ -7,7 +7,8 @@ class FickianSingleParticle(BaseParticle): - """Base class for molar conservation in a single x-averaged particle which employs + """ + Class for molar conservation in a single x-averaged particle which employs Fick's law. Parameters @@ -17,7 +18,6 @@ class FickianSingleParticle(BaseParticle): domain : str The domain of the model either 'Negative' or 'Positive' - **Extends:** :class:`pybamm.particle.BaseParticle` """ @@ -33,7 +33,7 @@ def get_fundamental_variables(self): c_s_xav = pybamm.standard_variables.c_s_p_xav c_s = pybamm.SecondaryBroadcast(c_s_xav, ["positive electrode"]) - variables = self._get_standard_concentration_variables(c_s, c_s_xav) + variables = self._get_standard_concentration_variables(c_s, c_s_xav=c_s_xav) return variables @@ -41,16 +41,16 @@ def get_coupled_variables(self, variables): c_s_xav = variables[ "X-averaged " + self.domain.lower() + " particle concentration" ] - - T_k_xav = pybamm.PrimaryBroadcast( + T_xav = pybamm.PrimaryBroadcast( variables["X-averaged " + self.domain.lower() + " electrode temperature"], [self.domain.lower() + " particle"], ) if self.domain == "Negative": - N_s_xav = -self.param.D_n(c_s_xav, T_k_xav) * pybamm.grad(c_s_xav) + N_s_xav = -self.param.D_n(c_s_xav, T_xav) * pybamm.grad(c_s_xav) + elif self.domain == "Positive": - N_s_xav = -self.param.D_p(c_s_xav, T_k_xav) * pybamm.grad(c_s_xav) + N_s_xav = -self.param.D_p(c_s_xav, T_xav) * pybamm.grad(c_s_xav) N_s = pybamm.SecondaryBroadcast(N_s_xav, [self._domain.lower() + " electrode"]) @@ -62,11 +62,11 @@ def set_rhs(self, variables): c_s_xav = variables[ "X-averaged " + self.domain.lower() + " particle concentration" ] - N_s_xav = variables["X-averaged " + self.domain.lower() + " particle flux"] if self.domain == "Negative": self.rhs = {c_s_xav: -(1 / self.param.C_n) * pybamm.div(N_s_xav)} + elif self.domain == "Positive": self.rhs = {c_s_xav: -(1 / self.param.C_p) * pybamm.div(N_s_xav)} @@ -74,15 +74,12 @@ def set_boundary_conditions(self, variables): c_s_xav = variables[ "X-averaged " + self.domain.lower() + " particle concentration" ] - c_s_surf_xav = variables[ "X-averaged " + self.domain.lower() + " particle surface concentration" ] - - T_k_xav = variables[ + T_xav = variables[ "X-averaged " + self.domain.lower() + " electrode temperature" ] - j_xav = variables[ "X-averaged " + self.domain.lower() @@ -94,7 +91,7 @@ def set_boundary_conditions(self, variables): -self.param.C_n * j_xav / self.param.a_n - / self.param.D_n(c_s_surf_xav, T_k_xav) + / self.param.D_n(c_s_surf_xav, T_xav) ) elif self.domain == "Positive": @@ -103,7 +100,7 @@ def set_boundary_conditions(self, variables): * j_xav / self.param.a_p / self.param.gamma_p - / self.param.D_p(c_s_surf_xav, T_k_xav) + / self.param.D_p(c_s_surf_xav, T_xav) ) self.boundary_conditions = { diff --git a/pybamm/models/submodels/particle/polynomial_many_particles.py b/pybamm/models/submodels/particle/polynomial_many_particles.py new file mode 100644 index 0000000000..318955b317 --- /dev/null +++ b/pybamm/models/submodels/particle/polynomial_many_particles.py @@ -0,0 +1,300 @@ +# +# Class for many particles with polynomial concentration profile +# +import pybamm + +from .base_particle import BaseParticle + + +class PolynomialManyParticles(BaseParticle): + """ + Class for molar conservation in many particles with an assumed polynomial + concentration profile in r. Model equations from [1]_. + + Parameters + ---------- + param : parameter class + The parameters to use for this submodel + domain : str + The domain of the model either 'Negative' or 'Positive' + name : str + The name of the polynomial approximation to be used. Can be "uniform + profile", "quadratic profile" or "quartic profile". + + References + ---------- + .. [1] VR Subramanian, VD Diwakar and D Tapriyal. “Efficient Macro-Micro Scale + Coupled Modeling of Batteries”. Journal of The Electrochemical Society, + 152(10):A2002-A2008, 2005 + + **Extends:** :class:`pybamm.particle.BaseParticle` + """ + + def __init__(self, param, domain, name): + super().__init__(param, domain) + self.name = name + + pybamm.citations.register("subramanian2005") + + def get_fundamental_variables(self): + if self.domain == "Negative": + # For all orders we solve an equation for the average concentration + c_s_rav = pybamm.standard_variables.c_s_n_rav + x = pybamm.standard_spatial_vars.x_n + R = self.param.R_n_of_x(x) + variables = {"Negative particle distribution in x": R} + if self.name == "uniform profile": + # The concentration is uniform so the surface value is equal to + # the average + c_s_surf = c_s_rav + elif self.name in ["quadratic profile", "quartic profile"]: + # We solve an equation for the surface concentration, so it is + # a variable in the model + c_s_surf = pybamm.standard_variables.c_s_n_surf + r = pybamm.standard_spatial_vars.r_n + if self.name == "quartic profile": + # For the fourth order polynomial approximation we also solve an + # equation for the average concentration gradient. Note: in the original + # paper this quantity is referred to as the flux, but here we make the + # distinction between the flux defined as N = -D*dc/dr and the + # concentration gradient q = dc/dr + q_s_rav = pybamm.standard_variables.q_s_n_rav + variables.update( + {"R-averaged negative particle concentration gradient": q_s_rav} + ) + + elif self.domain == "Positive": + # For all orders we solve an equation for the average concentration + c_s_rav = pybamm.standard_variables.c_s_p_rav + x = pybamm.standard_spatial_vars.x_p + R = self.param.R_p_of_x(x) + variables = {"Positive particle distribution in x": R} + if self.name == "uniform profile": + # The concentration is uniform so the surface value is equal to + # the average + c_s_surf = c_s_rav + elif self.name in ["quadratic profile", "quartic profile"]: + # We solve an equation for the surface concentration, so it is + # a variable in the model + c_s_surf = pybamm.standard_variables.c_s_p_surf + r = pybamm.standard_spatial_vars.r_p + if self.name == "quartic profile": + # For the fourth order polynomial approximation we also solve an + # equation for the average concentration gradient. Note: in the original + # paper this quantity is referred to as the flux, but here we make the + # distinction between the flux defined as N = -D*dc/dr and the + # concentration gradient q = dc/dr + q_s_rav = pybamm.standard_variables.q_s_p_rav + variables.update( + {"R-averaged positive particle concentration gradient": q_s_rav} + ) + + # Set concentration depending on polynomial order + if self.name == "uniform profile": + # The concentration is uniform + c_s = pybamm.PrimaryBroadcast(c_s_rav, [self.domain.lower() + " particle"]) + elif self.name == "quadratic profile": + # The concentration is given by c = A + B*r**2 + A = pybamm.PrimaryBroadcast( + (1 / 2) * (5 * c_s_rav - 3 * c_s_surf), + [self.domain.lower() + " particle"], + ) + B = pybamm.PrimaryBroadcast( + (5 / 2) * (c_s_surf - c_s_rav), [self.domain.lower() + " particle"] + ) + c_s = A + B * r ** 2 + elif self.name == "quartic profile": + # The concentration is given by c = A + B*r**2 + C*r**4 + A = pybamm.PrimaryBroadcast( + 39 * c_s_surf / 4 - 3 * q_s_rav - 35 * c_s_rav / 4, + [self.domain.lower() + " particle"], + ) + B = pybamm.PrimaryBroadcast( + -35 * c_s_surf + 10 * q_s_rav + 35 * c_s_rav, + [self.domain.lower() + " particle"], + ) + C = pybamm.PrimaryBroadcast( + 105 * c_s_surf / 4 - 7 * q_s_rav - 105 * c_s_rav / 4, + [self.domain.lower() + " particle"], + ) + c_s = A + B * r ** 2 + C * r ** 4 + + variables.update( + self._get_standard_concentration_variables( + c_s, c_s_rav=c_s_rav, c_s_surf=c_s_surf + ) + ) + + return variables + + def get_coupled_variables(self, variables): + c_s = variables[self.domain + " particle concentration"] + c_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration" + ] + c_s_surf = variables[self.domain + " particle surface concentration"] + T = pybamm.PrimaryBroadcast( + variables[self.domain + " electrode temperature"], + [self.domain.lower() + " particle"], + ) + + # Set flux depending on polynomial order + if self.name == "uniform profile": + # The flux is zero since there is no concentration gradient + N_s = pybamm.FullBroadcastToEdges( + 0, + [self.domain.lower() + " particle"], + auxiliary_domains={ + "secondary": self.domain.lower() + " electrode", + "tertiary": "current collector", + }, + ) + N_s_xav = pybamm.FullBroadcastToEdges( + 0, self.domain.lower() + " particle", "current collector" + ) + elif self.name == "quadratic profile": + # The flux may be computed directly from the polynomial for c + if self.domain == "Negative": + r = pybamm.standard_spatial_vars.r_n + N_s = -self.param.D_n(c_s, T) * 5 * (c_s_surf - c_s_rav) * r + elif self.domain == "Positive": + r = pybamm.standard_spatial_vars.r_p + N_s = -self.param.D_p(c_s, T) * 5 * (c_s_surf - c_s_rav) * r + N_s_xav = pybamm.x_average(N_s) + elif self.name == "quartic profile": + q_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration gradient" + ] + # The flux may be computed directly from the polynomial for c + if self.domain == "Negative": + r = pybamm.standard_spatial_vars.r_n + N_s = -self.param.D_n(c_s, T) * ( + (-70 * c_s_surf + 20 * q_s_rav + 70 * c_s_rav) * r + + (105 * c_s_surf - 28 * q_s_rav - 105 * c_s_rav) * r ** 3 + ) + elif self.domain == "Positive": + r = pybamm.standard_spatial_vars.r_p + N_s = -self.param.D_p(c_s, T) * ( + (-70 * c_s_surf + 20 * q_s_rav + 70 * c_s_rav) * r + + (105 * c_s_surf - 28 * q_s_rav - 105 * c_s_rav) * r ** 3 + ) + N_s_xav = pybamm.x_average(N_s) + + variables.update(self._get_standard_flux_variables(N_s, N_s_xav)) + + return variables + + def set_rhs(self, variables): + c_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration" + ] + j = variables[self.domain + " electrode interfacial current density"] + R = variables[self.domain + " particle distribution in x"] + + if self.domain == "Negative": + self.rhs = {c_s_rav: -3 * j / self.param.a_n / R} + + elif self.domain == "Positive": + self.rhs = {c_s_rav: -3 * j / self.param.a_p / self.param.gamma_p / R} + + if self.name == "quartic profile": + # We solve an extra ODE for the average particle flux + q_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration gradient" + ] + c_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration" + ] + T = variables[self.domain + " electrode temperature"] + if self.domain == "Negative": + self.rhs.update( + { + q_s_rav: -30 + * self.param.D_n(c_s_rav, T) + * q_s_rav + / self.param.C_n + - 45 * j / self.param.a_n / 2 + } + ) + elif self.domain == "Positive": + self.rhs.update( + { + q_s_rav: -30 + * self.param.D_p(c_s_rav, T) + * q_s_rav + / self.param.C_p + - 45 * j / self.param.a_p / self.param.gamma_p / 2 + } + ) + + def set_algebraic(self, variables): + c_s_surf = variables[self.domain + " particle surface concentration"] + c_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration" + ] + j = variables[self.domain + " electrode interfacial current density"] + T = variables[self.domain + " electrode temperature"] + R = variables[self.domain + " particle distribution in x"] + if self.name == "uniform profile": + # No algebraic equations since we only solve for the average concentration + pass + elif self.name == "quadratic profile": + # We solve an algebraic equation for the surface concentration + if self.domain == "Negative": + self.algebraic = { + c_s_surf: self.param.D_n(c_s_surf, T) * (c_s_surf - c_s_rav) + + self.param.C_n * (j * R / self.param.a_n / 5) + } + + elif self.domain == "Positive": + self.algebraic = { + c_s_surf: self.param.D_p(c_s_surf, T) * (c_s_surf - c_s_rav) + + self.param.C_p * (j * R / self.param.a_p / self.param.gamma_p / 5) + } + elif self.name == "quartic profile": + # We solve a different algebraic equation for the surface concentration + # that accounts for the average concentration gradient inside the particle + q_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration gradient" + ] + if self.domain == "Negative": + self.algebraic = { + c_s_surf: self.param.D_n(c_s_surf, T) + * (35 * (c_s_surf - c_s_rav) - 8 * q_s_rav) + + self.param.C_n * (j * R / self.param.a_n) + } + + elif self.domain == "Positive": + self.algebraic = { + c_s_surf: self.param.D_p(c_s_surf, T) + * (35 * (c_s_surf - c_s_rav) - 8 * q_s_rav) + + self.param.C_p * (j * R / self.param.a_p / self.param.gamma_p) + } + + def set_initial_conditions(self, variables): + c_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration" + ] + + if self.domain == "Negative": + x_n = pybamm.standard_spatial_vars.x_n + c_init = self.param.c_n_init(x_n) + + elif self.domain == "Positive": + x_p = pybamm.standard_spatial_vars.x_p + c_init = self.param.c_p_init(x_p) + + self.initial_conditions = {c_s_rav: c_init} + + if self.name in ["quadratic profile", "quartic profile"]: + # We also need to provide an initial condition (initial guess for the + # algebraic solver) for the surface concentration + c_s_surf = variables[self.domain + " particle surface concentration"] + self.initial_conditions.update({c_s_surf: c_init}) + if self.name == "quartic profile": + # We also need to provide an initial condition for the average + # concentration gradient + q_s_rav = variables[ + "R-averaged " + self.domain.lower() + " particle concentration gradient" + ] + self.initial_conditions.update({q_s_rav: 0}) diff --git a/pybamm/models/submodels/particle/polynomial_single_particle.py b/pybamm/models/submodels/particle/polynomial_single_particle.py new file mode 100644 index 0000000000..93b3ca8dee --- /dev/null +++ b/pybamm/models/submodels/particle/polynomial_single_particle.py @@ -0,0 +1,349 @@ +# +# Class for single particle with polynomial concentration profile +# +import pybamm + +from .base_particle import BaseParticle + + +class PolynomialSingleParticle(BaseParticle): + """ + Class for molar conservation in a single x-averaged particle with + an assumed polynomial concentration profile in r. Model equations from [1]_. + + Parameters + ---------- + param : parameter class + The parameters to use for this submodel + domain : str + The domain of the model either 'Negative' or 'Positive' + name : str + The name of the polynomial approximation to be used. Can be "uniform + profile", "quadratic profile" or "quartic profile". + + References + ---------- + .. [1] VR Subramanian, VD Diwakar and D Tapriyal. “Efficient Macro-Micro Scale + Coupled Modeling of Batteries”. Journal of The Electrochemical Society, + 152(10):A2002-A2008, 2005 + + **Extends:** :class:`pybamm.particle.BaseParticle` + """ + + def __init__(self, param, domain, name): + super().__init__(param, domain) + self.name = name + + pybamm.citations.register("subramanian2005") + + def get_fundamental_variables(self): + # For all orders we solve an equation for the average concentration + if self.domain == "Negative": + c_s_rxav = pybamm.standard_variables.c_s_n_rxav + + elif self.domain == "Positive": + c_s_rxav = pybamm.standard_variables.c_s_p_rxav + + variables = { + "Average " + self.domain.lower() + " particle concentration": c_s_rxav + } + + # For the fourth order polynomial approximation we also solve an + # equation for the average concentration gradient. Note: in the original + # paper this quantity is referred to as the flux, but here we make the + # distinction between the flux defined as N = -D*dc/dr and the concentration + # gradient q = dc/dr + if self.name == "quartic profile": + if self.domain == "Negative": + q_s_rxav = pybamm.standard_variables.q_s_n_rxav + elif self.domain == "Positive": + q_s_rxav = pybamm.standard_variables.q_s_p_rxav + variables.update( + { + "Average " + + self.domain.lower() + + " particle concentration gradient": q_s_rxav + } + ) + + return variables + + def get_coupled_variables(self, variables): + c_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration" + ] + i_boundary_cc = variables["Current collector current density"] + T_xav = pybamm.PrimaryBroadcast( + variables["X-averaged " + self.domain.lower() + " electrode temperature"], + [self.domain.lower() + " particle"], + ) + + # Set surface concentration based on polynomial order + if self.name == "uniform profile": + # The concentration is uniform so the surface value is equal to + # the average + c_s_surf_xav = c_s_rxav + elif self.name == "quadratic profile": + # The surface concentration is computed from the average concentration + # and boundary flux + # Note 1: here we use the total average interfacial current for the single + # particle. We explicitly write this as the current density divided by the + # electrode thickness instead of getting the average current from the + # interface submodel since the interface submodel requires the surface + # concentration to be defined first to compute the exchange current density. + # Explicitly writing out the average interfacial current here avoids + # KeyErrors due to variables not being set in the "right" order. + # Note 2: the concentration, c, inside the diffusion coefficient, D, here + # should really be the surface value, but this requires solving a nonlinear + # equation for c_surf (if the diffusion coefficient is nonlinear), adding + # an extra algebraic equation to solve. For now, using the average c is an + # ok approximation and means the SPM(e) still gives a system of ODEs rather + # than DAEs. + if self.domain == "Negative": + j_xav = i_boundary_cc / self.param.l_n + c_s_surf_xav = c_s_rxav - self.param.C_n * ( + j_xav + / 5 + / self.param.a_n + / self.param.D_n(c_s_rxav, pybamm.surf(T_xav)) + ) + + if self.domain == "Positive": + j_xav = -i_boundary_cc / self.param.l_p + c_s_surf_xav = c_s_rxav - self.param.C_p * ( + j_xav + / 5 + / self.param.a_p + / self.param.gamma_p + / self.param.D_p(c_s_rxav, pybamm.surf(T_xav)) + ) + elif self.name == "quartic profile": + # The surface concentration is computed from the average concentration, + # the average concentration gradient and the boundary flux (see notes + # for the case order=2) + q_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration gradient" + ] + if self.domain == "Negative": + j_xav = i_boundary_cc / self.param.l_n + c_s_surf_xav = ( + c_s_rxav + + 8 * q_s_rxav / 35 + - self.param.C_n + * ( + j_xav + / 35 + / self.param.a_n + / self.param.D_n(c_s_rxav, pybamm.surf(T_xav)) + ) + ) + + if self.domain == "Positive": + j_xav = -i_boundary_cc / self.param.l_p + c_s_surf_xav = ( + c_s_rxav + + 8 * q_s_rxav / 35 + - self.param.C_p + * ( + j_xav + / 35 + / self.param.a_p + / self.param.gamma_p + / self.param.D_p(c_s_rxav, pybamm.surf(T_xav)) + ) + ) + + # Set concentration depending on polynomial order + if self.name == "uniform profile": + # The concentration is uniform + c_s_xav = pybamm.PrimaryBroadcast( + c_s_rxav, [self.domain.lower() + " particle"] + ) + elif self.name == "quadratic profile": + # The concentration is given by c = A + B*r**2 + A = pybamm.PrimaryBroadcast( + (1 / 2) * (5 * c_s_rxav - 3 * c_s_surf_xav), + [self.domain.lower() + " particle"], + ) + B = pybamm.PrimaryBroadcast( + (5 / 2) * (c_s_surf_xav - c_s_rxav), [self.domain.lower() + " particle"] + ) + if self.domain == "Negative": + # Since c_s_xav doesn't depend on x, we need to define a spatial + # variable r which only has "negative particle" and "current + # collector" as domains + r = pybamm.SpatialVariable( + "r_n", + domain=["negative particle"], + auxiliary_domains={"secondary": "current collector"}, + coord_sys="spherical polar", + ) + c_s_xav = A + B * r ** 2 + if self.domain == "Positive": + # Since c_s_xav doesn't depend on x, we need to define a spatial + # variable r which only has "positive particle" and "current + # collector" as domains + r = pybamm.SpatialVariable( + "r_p", + domain=["positive particle"], + auxiliary_domains={"secondary": "current collector"}, + coord_sys="spherical polar", + ) + c_s_xav = A + B * r ** 2 + + elif self.name == "quartic profile": + # The concentration is given by c = A + B*r**2 + C*r**4 + A = pybamm.PrimaryBroadcast( + 39 * c_s_surf_xav / 4 - 3 * q_s_rxav - 35 * c_s_rxav / 4, + [self.domain.lower() + " particle"], + ) + B = pybamm.PrimaryBroadcast( + -35 * c_s_surf_xav + 10 * q_s_rxav + 35 * c_s_rxav, + [self.domain.lower() + " particle"], + ) + C = pybamm.PrimaryBroadcast( + 105 * c_s_surf_xav / 4 - 7 * q_s_rxav - 105 * c_s_rxav / 4, + [self.domain.lower() + " particle"], + ) + if self.domain == "Negative": + # Since c_s_xav doesn't depend on x, we need to define a spatial + # variable r which only has "negative particle" and "current + # collector" as domains + r = pybamm.SpatialVariable( + "r_n", + domain=["negative particle"], + auxiliary_domains={"secondary": "current collector"}, + coord_sys="spherical polar", + ) + c_s_xav = A + B * r ** 2 + C * r ** 4 + if self.domain == "Positive": + # Since c_s_xav doesn't depend on x, we need to define a spatial + # variable r which only has "positive particle" and "current + # collector" as domains + r = pybamm.SpatialVariable( + "r_p", + domain=["positive particle"], + auxiliary_domains={"secondary": "current collector"}, + coord_sys="spherical polar", + ) + c_s_xav = A + B * r ** 2 + C * r ** 4 + + c_s = pybamm.SecondaryBroadcast(c_s_xav, [self.domain.lower() + " electrode"]) + c_s_surf = pybamm.PrimaryBroadcast( + c_s_surf_xav, [self.domain.lower() + " electrode"] + ) + + # Set flux based on polynomial order + if self.name == "uniform profile": + # The flux is zero since there is no concentration gradient + N_s_xav = pybamm.FullBroadcastToEdges( + 0, self.domain.lower() + " particle", "current collector" + ) + elif self.name == "quadratic profile": + # The flux may be computed directly from the polynomial for c + if self.domain == "Negative": + N_s_xav = ( + -self.param.D_n(c_s_xav, T_xav) * 5 * (c_s_surf_xav - c_s_rxav) * r + ) + if self.domain == "Positive": + N_s_xav = ( + -self.param.D_p(c_s_xav, T_xav) * 5 * (c_s_surf_xav - c_s_rxav) * r + ) + elif self.name == "quartic profile": + q_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration gradient" + ] + # The flux may be computed directly from the polynomial for c + if self.domain == "Negative": + N_s_xav = -self.param.D_n(c_s_xav, T_xav) * ( + (-70 * c_s_surf_xav + 20 * q_s_rxav + 70 * c_s_rxav) * r + + (105 * c_s_surf_xav - 28 * q_s_rxav - 105 * c_s_rxav) * r ** 3 + ) + elif self.domain == "Positive": + N_s_xav = -self.param.D_p(c_s_xav, T_xav) * ( + (-70 * c_s_surf_xav + 20 * q_s_rxav + 70 * c_s_rxav) * r + + (105 * c_s_surf_xav - 28 * q_s_rxav - 105 * c_s_rxav) * r ** 3 + ) + + N_s = pybamm.SecondaryBroadcast(N_s_xav, [self._domain.lower() + " electrode"]) + + variables = self._get_standard_concentration_variables( + c_s, c_s_av=c_s_rxav, c_s_surf=c_s_surf + ) + variables.update(self._get_standard_flux_variables(N_s, N_s_xav)) + + return variables + + def set_rhs(self, variables): + + c_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration" + ] + j_xav = variables[ + "X-averaged " + + self.domain.lower() + + " electrode interfacial current density" + ] + + if self.domain == "Negative": + self.rhs = {c_s_rxav: -3 * j_xav / self.param.a_n} + + elif self.domain == "Positive": + self.rhs = {c_s_rxav: -3 * j_xav / self.param.a_p / self.param.gamma_p} + + if self.name == "quartic profile": + # We solve an extra ODE for the average particle concentration gradient + q_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration gradient" + ] + c_s_surf_xav = variables[ + "X-averaged " + self.domain.lower() + " particle surface concentration" + ] + T_xav = variables[ + "X-averaged " + self.domain.lower() + " electrode temperature" + ] + if self.domain == "Negative": + self.rhs.update( + { + q_s_rxav: -30 + * self.param.D_n(c_s_surf_xav, T_xav) + * q_s_rxav + / self.param.C_n + - 45 * j_xav / self.param.a_n / 2 + } + ) + elif self.domain == "Positive": + self.rhs.update( + { + q_s_rxav: -30 + * self.param.D_p(c_s_surf_xav, T_xav) + * q_s_rxav + / self.param.C_p + - 45 * j_xav / self.param.a_p / self.param.gamma_p / 2 + } + ) + + def set_initial_conditions(self, variables): + """ + For single particle models, initial conditions can't depend on x so we + arbitrarily evaluate them at x=0 in the negative electrode and x=1 in the + positive electrode (they will usually be constant) + """ + c_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration" + ] + + if self.domain == "Negative": + c_init = self.param.c_n_init(0) + + elif self.domain == "Positive": + c_init = self.param.c_p_init(1) + + self.initial_conditions = {c_s_rxav: c_init} + if self.name == "quartic profile": + # We also need to provide an initial condition for the average + # concentration gradient + q_s_rxav = variables[ + "Average " + self.domain.lower() + " particle concentration gradient" + ] + self.initial_conditions.update({q_s_rxav: 0}) diff --git a/pybamm/models/submodels/thermal/isothermal.py b/pybamm/models/submodels/thermal/isothermal.py index a29c192222..9d7a2507d6 100644 --- a/pybamm/models/submodels/thermal/isothermal.py +++ b/pybamm/models/submodels/thermal/isothermal.py @@ -38,14 +38,27 @@ def get_fundamental_variables(self): return variables def get_coupled_variables(self, variables): + ieh = "irreversible electrochemical heating" variables.update( { "Ohmic heating": pybamm.Scalar(0), "Ohmic heating [W.m-3]": pybamm.Scalar(0), + "X-averaged Ohmic heating": pybamm.Scalar(0), + "X-averaged Ohmic heating [W.m-3]": pybamm.Scalar(0), + "Volume-averaged Ohmic heating": pybamm.Scalar(0), + "Volume-averaged Ohmic heating [W.m-3]": pybamm.Scalar(0), "Irreversible electrochemical heating": pybamm.Scalar(0), "Irreversible electrochemical heating [W.m-3]": pybamm.Scalar(0), + "X-averaged " + ieh: pybamm.Scalar(0), + "X-averaged " + ieh + " [W.m-3]": pybamm.Scalar(0), + "Volume-averaged " + ieh: pybamm.Scalar(0), + "Volume-averaged " + ieh + "[W.m-3]": pybamm.Scalar(0), "Reversible heating": pybamm.Scalar(0), "Reversible heating [W.m-3]": pybamm.Scalar(0), + "X-averaged reversible heating": pybamm.Scalar(0), + "X-averaged reversible heating [W.m-3]": pybamm.Scalar(0), + "Volume-averaged reversible heating": pybamm.Scalar(0), + "Volume-averaged reversible heating [W.m-3]": pybamm.Scalar(0), "Total heating": pybamm.Scalar(0), "Total heating [W.m-3]": pybamm.Scalar(0), "X-averaged total heating": pybamm.Scalar(0), @@ -55,20 +68,3 @@ def get_coupled_variables(self, variables): } ) return variables - - def _x_average(self, var, var_cn, var_cp): - """ - Temperature is uniform and heat source terms are zero, so the average - returns the input variable. - This overwrites the default behaviour of - :meth:`pybamm.thermal.BaseThermal._x_average` - """ - return var - - def _yz_average(self, var): - """ - Temperature is uniform and heat source terms are zero, so the average - returns the input variable. This overwrites the default behaviour of - :meth:`pybamm.thermal.BaseThermal._x_average` - """ - return var diff --git a/pybamm/parameters/electrical_parameters.py b/pybamm/parameters/electrical_parameters.py index b98c0d2e7f..c233a4c622 100644 --- a/pybamm/parameters/electrical_parameters.py +++ b/pybamm/parameters/electrical_parameters.py @@ -5,34 +5,62 @@ import numpy as np -# -------------------------------------------------------------------------------------- -# Dimensional Parameters -I_typ = pybamm.Parameter("Typical current [A]") -Q = pybamm.Parameter("Cell capacity [A.h]") -C_rate = abs(I_typ / Q) -n_electrodes_parallel = pybamm.Parameter( - "Number of electrodes connected in parallel to make a cell" -) -n_cells = pybamm.Parameter("Number of cells connected in series to make a battery") -i_typ = pybamm.Function( - np.abs, I_typ / (n_electrodes_parallel * pybamm.geometric_parameters.A_cc) -) -voltage_low_cut_dimensional = pybamm.Parameter("Lower voltage cut-off [V]") -voltage_high_cut_dimensional = pybamm.Parameter("Upper voltage cut-off [V]") - -# Current as a function of *dimensional* time. The below is overwritten in -# standard_parameters_lithium_ion.py and standard_parameters_lead_acid.py -# to use the correct timescale used for non-dimensionalisation. For a base model, -# the user may provide the typical timescale as a parameter. -timescale = pybamm.Parameter("Typical timescale [s]") -dimensional_current_with_time = pybamm.FunctionParameter( - "Current function [A]", {"Time[s]": pybamm.t * timescale} -) -dimensional_current_density_with_time = dimensional_current_with_time / ( - n_electrodes_parallel * pybamm.geometric_parameters.A_cc -) - -# Dimensionless current -current_with_time = ( - dimensional_current_with_time / I_typ * pybamm.Function(np.sign, I_typ) -) +class ElectricalParameters: + """ + Standard electrical parameters + + Layout: + 1. Dimensional Parameters + 2. Dimensionless Parameters + """ + + def __init__(self): + + # Get geometric parameters + self.geo = pybamm.GeometricParameters() + + # Set parameters + self._set_dimensional_parameters() + self._set_dimensionless_parameters() + + def _set_dimensional_parameters(self): + "Defines the dimensional parameters" + + self.I_typ = pybamm.Parameter("Typical current [A]") + self.Q = pybamm.Parameter("Cell capacity [A.h]") + self.C_rate = abs(self.I_typ / self.Q) + self.n_electrodes_parallel = pybamm.Parameter( + "Number of electrodes connected in parallel to make a cell" + ) + self.n_cells = pybamm.Parameter( + "Number of cells connected in series to make a battery" + ) + self.i_typ = pybamm.Function( + np.abs, self.I_typ / (self.n_electrodes_parallel * self.geo.A_cc) + ) + self.voltage_low_cut_dimensional = pybamm.Parameter("Lower voltage cut-off [V]") + self.voltage_high_cut_dimensional = pybamm.Parameter( + "Upper voltage cut-off [V]" + ) + + # Current as a function of *dimensional* time. The below is overwritten in + # lithium_ion_parameters.py and lead_acid_parameters.py to use the correct + # timescale used for non-dimensionalisation. For a base model, the user may + # provide the typical timescale as a parameter. + self.timescale = pybamm.Parameter("Typical timescale [s]") + self.dimensional_current_with_time = pybamm.FunctionParameter( + "Current function [A]", {"Time[s]": pybamm.t * self.timescale} + ) + self.dimensional_current_density_with_time = ( + self.dimensional_current_with_time + / (self.n_electrodes_parallel * self.geo.A_cc) + ) + + def _set_dimensionless_parameters(self): + "Defines the dimensionless parameters" + + self.current_with_time = ( + self.dimensional_current_with_time + / self.I_typ + * pybamm.Function(np.sign, self.I_typ) + ) diff --git a/pybamm/parameters/geometric_parameters.py b/pybamm/parameters/geometric_parameters.py index ee4554b258..98d6f254c1 100644 --- a/pybamm/parameters/geometric_parameters.py +++ b/pybamm/parameters/geometric_parameters.py @@ -1,72 +1,103 @@ # # Geometric Parameters # -""" -Standard geometric parameters -""" import pybamm -# -------------------------------------------------------------------------------------- -"Dimensional Parameters" -# Macroscale geometry -L_cn = pybamm.Parameter("Negative current collector thickness [m]") -L_n = pybamm.Parameter("Negative electrode thickness [m]") -L_s = pybamm.Parameter("Separator thickness [m]") -L_p = pybamm.Parameter("Positive electrode thickness [m]") -L_cp = pybamm.Parameter("Positive current collector thickness [m]") -L_x = L_n + L_s + L_p # Total distance between current collectors -L = L_cn + L_x + L_cp # Total cell thickness -L_y = pybamm.Parameter("Electrode width [m]") -L_z = pybamm.Parameter("Electrode height [m]") -A_cc = L_y * L_z # Area of current collector -A_cooling = pybamm.Parameter("Cell cooling surface area [m2]") -V_cell = pybamm.Parameter("Cell volume [m3]") -# Tab geometry -L_tab_n = pybamm.Parameter("Negative tab width [m]") -Centre_y_tab_n = pybamm.Parameter("Negative tab centre y-coordinate [m]") -Centre_z_tab_n = pybamm.Parameter("Negative tab centre z-coordinate [m]") -L_tab_p = pybamm.Parameter("Positive tab width [m]") -Centre_y_tab_p = pybamm.Parameter("Positive tab centre y-coordinate [m]") -Centre_z_tab_p = pybamm.Parameter("Positive tab centre z-coordinate [m]") -A_tab_n = L_tab_n * L_cn # Area of negative tab -A_tab_p = L_tab_p * L_cp # Area of negative tab +class GeometricParameters: + """ + Standard geometric parameters + Layout: + 1. Dimensional Parameters + 2. Dimensionless Parameters + """ -# Microscale geometry -a_n_dim = pybamm.Parameter("Negative electrode surface area to volume ratio [m-1]") -a_p_dim = pybamm.Parameter("Positive electrode surface area to volume ratio [m-1]") -R_n = pybamm.Parameter("Negative particle radius [m]") -R_p = pybamm.Parameter("Positive particle radius [m]") -b_e_n = pybamm.Parameter("Negative electrode Bruggeman coefficient (electrolyte)") -b_e_s = pybamm.Parameter("Separator Bruggeman coefficient (electrolyte)") -b_e_p = pybamm.Parameter("Positive electrode Bruggeman coefficient (electrolyte)") -b_s_n = pybamm.Parameter("Negative electrode Bruggeman coefficient (electrode)") -b_s_s = pybamm.Parameter("Separator Bruggeman coefficient (electrode)") -b_s_p = pybamm.Parameter("Positive electrode Bruggeman coefficient (electrode)") + def __init__(self): -# -------------------------------------------------------------------------------------- -"Dimensionless Parameters" -# Macroscale Geometry -l_cn = L_cn / L_x -l_n = L_n / L_x -l_s = L_s / L_x -l_p = L_p / L_x -l_cp = L_cp / L_x -l_x = L_x / L_x -l_y = L_y / L_z -l_z = L_z / L_z -a_cc = l_y * l_z -a_cooling = A_cooling / (L_z ** 2) -v_cell = V_cell / (L_x * L_z ** 2) + # Set parameters + self._set_dimensional_parameters() + self._set_dimensionless_parameters() -l = L / L_x -delta = L_x / L_z # Aspect ratio + def _set_dimensional_parameters(self): + "Defines the dimensional parameters" -# Tab geometry -l_tab_n = L_tab_n / L_z -centre_y_tab_n = Centre_y_tab_n / L_z -centre_z_tab_n = Centre_z_tab_n / L_z -l_tab_p = L_tab_p / L_z -centre_y_tab_p = Centre_y_tab_p / L_z -centre_z_tab_p = Centre_z_tab_p / L_z + # Macroscale geometry + self.L_cn = pybamm.Parameter("Negative current collector thickness [m]") + self.L_n = pybamm.Parameter("Negative electrode thickness [m]") + self.L_s = pybamm.Parameter("Separator thickness [m]") + self.L_p = pybamm.Parameter("Positive electrode thickness [m]") + self.L_cp = pybamm.Parameter("Positive current collector thickness [m]") + self.L_x = ( + self.L_n + self.L_s + self.L_p + ) # Total distance between current collectors + self.L = self.L_cn + self.L_x + self.L_cp # Total cell thickness + self.L_y = pybamm.Parameter("Electrode width [m]") + self.L_z = pybamm.Parameter("Electrode height [m]") + self.A_cc = self.L_y * self.L_z # Area of current collector + self.A_cooling = pybamm.Parameter("Cell cooling surface area [m2]") + self.V_cell = pybamm.Parameter("Cell volume [m3]") + + # Tab geometry + self.L_tab_n = pybamm.Parameter("Negative tab width [m]") + self.Centre_y_tab_n = pybamm.Parameter("Negative tab centre y-coordinate [m]") + self.Centre_z_tab_n = pybamm.Parameter("Negative tab centre z-coordinate [m]") + self.L_tab_p = pybamm.Parameter("Positive tab width [m]") + self.Centre_y_tab_p = pybamm.Parameter("Positive tab centre y-coordinate [m]") + self.Centre_z_tab_p = pybamm.Parameter("Positive tab centre z-coordinate [m]") + self.A_tab_n = self.L_tab_n * self.L_cn # Area of negative tab + self.A_tab_p = self.L_tab_p * self.L_cp # Area of negative tab + + # Microscale geometry + # Note: the definition of the surface area to volume ratio is + # overwritten in lithium_ion_parameters.py to be computed + # based on the assumed particle shape + self.a_n_dim = pybamm.Parameter( + "Negative electrode surface area to volume ratio [m-1]" + ) + self.a_p_dim = pybamm.Parameter( + "Positive electrode surface area to volume ratio [m-1]" + ) + self.R_n = pybamm.Parameter("Negative particle radius [m]") + self.R_p = pybamm.Parameter("Positive particle radius [m]") + self.b_e_n = pybamm.Parameter( + "Negative electrode Bruggeman coefficient (electrolyte)" + ) + self.b_e_s = pybamm.Parameter("Separator Bruggeman coefficient (electrolyte)") + self.b_e_p = pybamm.Parameter( + "Positive electrode Bruggeman coefficient (electrolyte)" + ) + self.b_s_n = pybamm.Parameter( + "Negative electrode Bruggeman coefficient (electrode)" + ) + self.b_s_s = pybamm.Parameter("Separator Bruggeman coefficient (electrode)") + self.b_s_p = pybamm.Parameter( + "Positive electrode Bruggeman coefficient (electrode)" + ) + + def _set_dimensionless_parameters(self): + "Defines the dimensionless parameters" + + # Macroscale Geometry + self.l_cn = self.L_cn / self.L_x + self.l_n = self.L_n / self.L_x + self.l_s = self.L_s / self.L_x + self.l_p = self.L_p / self.L_x + self.l_cp = self.L_cp / self.L_x + self.l_x = self.L_x / self.L_x + self.l_y = self.L_y / self.L_z + self.l_z = self.L_z / self.L_z + self.a_cc = self.l_y * self.l_z + self.a_cooling = self.A_cooling / (self.L_z ** 2) + self.v_cell = self.V_cell / (self.L_x * self.L_z ** 2) + + self.l = self.L / self.L_x + self.delta = self.L_x / self.L_z # Aspect ratio + + # Tab geometry + self.l_tab_n = self.L_tab_n / self.L_z + self.centre_y_tab_n = self.Centre_y_tab_n / self.L_z + self.centre_z_tab_n = self.Centre_z_tab_n / self.L_z + self.l_tab_p = self.L_tab_p / self.L_z + self.centre_y_tab_p = self.Centre_y_tab_p / self.L_z + self.centre_z_tab_p = self.Centre_z_tab_p / self.L_z diff --git a/pybamm/parameters/lead_acid_parameters.py b/pybamm/parameters/lead_acid_parameters.py new file mode 100644 index 0000000000..3ccd0736ad --- /dev/null +++ b/pybamm/parameters/lead_acid_parameters.py @@ -0,0 +1,752 @@ +# +# Standard parameters for lead-acid battery models +# + +import pybamm +import numpy as np + + +class LeadAcidParameters: + """ + Standard Parameters for lead-acid battery models + + Layout: + 1. Dimensional Parameters + 2. Dimensional Functions + 3. Scalings + 4. Dimensionless Parameters + 5. Dimensionless Functions + 6. Input Current + """ + + def __init__(self): + + # Get geometric, electrical and thermal parameters + self.geo = pybamm.GeometricParameters() + self.elec = pybamm.ElectricalParameters() + self.therm = pybamm.ThermalParameters() + + # Set parameters and scales + self._set_dimensional_parameters() + self._set_scales() + self._set_dimensionless_parameters() + + # Set input current + self._set_input_current() + + def _set_dimensional_parameters(self): + "Defines the dimensional parameters" + + # Physical constants + self.R = pybamm.constants.R + self.F = pybamm.constants.F + self.T_ref = self.therm.T_ref + + # Macroscale geometry + self.L_n = self.geo.L_n + self.L_s = self.geo.L_s + self.L_p = self.geo.L_p + self.L_x = self.geo.L_x + self.L_y = self.geo.L_y + self.L_z = self.geo.L_z + self.A_cc = self.geo.A_cc + self.A_cooling = self.geo.A_cooling + self.V_cell = self.geo.V_cell + self.W = self.L_y + self.H = self.L_z + self.A_cs = self.A_cc + self.delta = self.L_x / self.H + + # Electrical + self.I_typ = self.elec.I_typ + self.Q = self.elec.Q + self.C_rate = self.elec.C_rate + self.n_electrodes_parallel = self.elec.n_electrodes_parallel + self.n_cells = self.elec.n_cells + self.i_typ = self.elec.i_typ + self.voltage_low_cut_dimensional = self.elec.voltage_low_cut_dimensional + self.voltage_high_cut_dimensional = self.elec.voltage_high_cut_dimensional + + # Electrolyte properties + self.c_e_typ = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") + self.V_w = pybamm.Parameter("Partial molar volume of water [m3.mol-1]") + self.V_plus = pybamm.Parameter("Partial molar volume of cations [m3.mol-1]") + self.V_minus = pybamm.Parameter("Partial molar volume of anions [m3.mol-1]") + self.V_e = ( + self.V_minus + self.V_plus + ) # Partial molar volume of electrolyte [m3.mol-1] + self.nu_plus = pybamm.Parameter("Cation stoichiometry") + self.nu_minus = pybamm.Parameter("Anion stoichiometry") + self.nu = self.nu_plus + self.nu_minus + + # Other species properties + self.c_ox_init_dim = pybamm.Parameter("Initial oxygen concentration [mol.m-3]") + self.c_ox_typ = ( + self.c_e_typ + ) # pybamm.Parameter("Typical oxygen concentration [mol.m-3]") + + # Microstructure + self.a_n_dim = self.geo.a_n_dim + self.a_p_dim = self.geo.a_p_dim + self.b_e_n = self.geo.b_e_n + self.b_e_s = self.geo.b_e_s + self.b_e_p = self.geo.b_e_p + self.b_s_n = self.geo.b_s_n + self.b_s_s = self.geo.b_s_s + self.b_s_p = self.geo.b_s_p + self.xi_n = pybamm.Parameter("Negative electrode morphological parameter") + self.xi_p = pybamm.Parameter("Positive electrode morphological parameter") + # no binder + self.epsilon_inactive_n = pybamm.Scalar(0) + self.epsilon_inactive_s = pybamm.Scalar(0) + self.epsilon_inactive_p = pybamm.Scalar(0) + + # Electrode properties + self.V_Pb = pybamm.Parameter("Molar volume of lead [m3.mol-1]") + self.V_PbO2 = pybamm.Parameter("Molar volume of lead-dioxide [m3.mol-1]") + self.V_PbSO4 = pybamm.Parameter("Molar volume of lead sulfate [m3.mol-1]") + self.DeltaVsurf_n = ( + self.V_Pb - self.V_PbSO4 + ) # Net Molar Volume consumed in neg electrode [m3.mol-1] + self.DeltaVsurf_p = ( + self.V_PbSO4 - self.V_PbO2 + ) # Net Molar Volume consumed in pos electrode [m3.mol-1] + self.d_n = pybamm.Parameter("Negative electrode pore size [m]") + self.d_p = pybamm.Parameter("Positive electrode pore size [m]") + self.eps_n_max = pybamm.Parameter("Maximum porosity of negative electrode") + self.eps_s_max = pybamm.Parameter("Maximum porosity of separator") + self.eps_p_max = pybamm.Parameter("Maximum porosity of positive electrode") + self.Q_n_max_dimensional = pybamm.Parameter( + "Negative electrode volumetric capacity [C.m-3]" + ) + self.Q_p_max_dimensional = pybamm.Parameter( + "Positive electrode volumetric capacity [C.m-3]" + ) + self.sigma_n_dim = pybamm.Parameter("Negative electrode conductivity [S.m-1]") + self.sigma_p_dim = pybamm.Parameter("Positive electrode conductivity [S.m-1]") + # In lead-acid the current collector and electrodes are the same (same + # conductivity) but we correct here for Bruggeman + self.sigma_cn_dimensional = ( + self.sigma_n_dim * (1 - self.eps_n_max) ** self.b_s_n + ) + self.sigma_cp_dimensional = ( + self.sigma_p_dim * (1 - self.eps_p_max) ** self.b_s_p + ) + + # Electrochemical reactions + # Main + self.s_plus_n_S_dim = pybamm.Parameter( + "Negative electrode cation signed stoichiometry" + ) + self.s_plus_p_S_dim = pybamm.Parameter( + "Positive electrode cation signed stoichiometry" + ) + self.ne_n_S = pybamm.Parameter("Negative electrode electrons in reaction") + self.ne_p_S = pybamm.Parameter("Positive electrode electrons in reaction") + self.C_dl_n_dimensional = pybamm.Parameter( + "Negative electrode double-layer capacity [F.m-2]" + ) + self.C_dl_p_dimensional = pybamm.Parameter( + "Positive electrode double-layer capacity [F.m-2]" + ) + # Oxygen + self.s_plus_Ox_dim = pybamm.Parameter( + "Signed stoichiometry of cations (oxygen reaction)" + ) + self.s_w_Ox_dim = pybamm.Parameter( + "Signed stoichiometry of water (oxygen reaction)" + ) + self.s_ox_Ox_dim = pybamm.Parameter( + "Signed stoichiometry of oxygen (oxygen reaction)" + ) + self.ne_Ox = pybamm.Parameter("Electrons in oxygen reaction") + self.U_Ox_dim = pybamm.Parameter("Oxygen reference OCP vs SHE [V]") + # Hydrogen + self.s_plus_Hy_dim = pybamm.Parameter( + "Signed stoichiometry of cations (hydrogen reaction)" + ) + self.s_hy_Hy_dim = pybamm.Parameter( + "Signed stoichiometry of hydrogen (hydrogen reaction)" + ) + self.ne_Hy = pybamm.Parameter("Electrons in hydrogen reaction") + self.U_Hy_dim = pybamm.Parameter("Hydrogen reference OCP vs SHE [V]") + + # Electrolyte properties + self.M_w = pybamm.Parameter("Molar mass of water [kg.mol-1]") + self.M_plus = pybamm.Parameter("Molar mass of cations [kg.mol-1]") + self.M_minus = pybamm.Parameter("Molar mass of anions [kg.mol-1]") + self.M_e = self.M_minus + self.M_plus # Molar mass of electrolyte [kg.mol-1] + + self.DeltaVliq_n = ( + self.V_minus - self.V_plus + ) # Net Molar Volume consumed in electrolyte (neg) [m3.mol-1] + self.DeltaVliq_p = ( + 2 * self.V_w - self.V_minus - 3 * self.V_plus + ) # Net Molar Volume consumed in electrolyte (neg) [m3.mol-1] + + # Other species properties + self.D_ox_dimensional = pybamm.Parameter("Oxygen diffusivity [m2.s-1]") + self.D_hy_dimensional = pybamm.Parameter("Hydrogen diffusivity [m2.s-1]") + self.V_ox = pybamm.Parameter( + "Partial molar volume of oxygen molecules [m3.mol-1]" + ) + self.V_hy = pybamm.Parameter( + "Partial molar volume of hydrogen molecules [m3.mol-1]" + ) + self.M_ox = pybamm.Parameter("Molar mass of oxygen molecules [kg.mol-1]") + self.M_hy = pybamm.Parameter("Molar mass of hydrogen molecules [kg.mol-1]") + + # Electrode properties + self.V_Pb = pybamm.Parameter("Molar volume of lead [m3.mol-1]") + self.V_PbO2 = pybamm.Parameter("Molar volume of lead-dioxide [m3.mol-1]") + self.V_PbSO4 = pybamm.Parameter("Molar volume of lead sulfate [m3.mol-1]") + self.DeltaVsurf_n = ( + self.V_Pb - self.V_PbSO4 + ) # Net Molar Volume consumed in neg electrode [m3.mol-1] + self.DeltaVsurf_p = ( + self.V_PbSO4 - self.V_PbO2 + ) # Net Molar Volume consumed in pos electrode [m3.mol-1] + self.d_n = pybamm.Parameter("Negative electrode pore size [m]") + self.d_p = pybamm.Parameter("Positive electrode pore size [m]") + self.eps_n_max = pybamm.Parameter("Maximum porosity of negative electrode") + self.eps_s_max = pybamm.Parameter("Maximum porosity of separator") + self.eps_p_max = pybamm.Parameter("Maximum porosity of positive electrode") + self.Q_n_max_dimensional = pybamm.Parameter( + "Negative electrode volumetric capacity [C.m-3]" + ) + self.Q_p_max_dimensional = pybamm.Parameter( + "Positive electrode volumetric capacity [C.m-3]" + ) + + # Thermal + self.Delta_T = self.therm.Delta_T + + # SEI parameters (for compatibility) + self.R_sei_dimensional = pybamm.Scalar(0) + self.beta_sei_n = pybamm.Scalar(0) + + def t_plus(self, c_e): + "Dimensionless transference number (i.e. c_e is dimensionless)" + inputs = {"Electrolyte concentration [mol.m-3]": c_e * self.c_e_typ} + return pybamm.FunctionParameter("Cation transference number", inputs) + + def D_e_dimensional(self, c_e, T): + "Dimensional diffusivity in electrolyte" + inputs = {"Electrolyte concentration [mol.m-3]": c_e} + return pybamm.FunctionParameter("Electrolyte diffusivity [m2.s-1]", inputs) + + def kappa_e_dimensional(self, c_e, T): + "Dimensional electrolyte conductivity" + inputs = {"Electrolyte concentration [mol.m-3]": c_e} + return pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) + + def chi_dimensional(self, c_e): + inputs = {"Electrolyte concentration [mol.m-3]": c_e} + return pybamm.FunctionParameter("Darken thermodynamic factor", inputs) + + def c_T(self, c_e, c_ox=0, c_hy=0): + """ + Total liquid molarity [mol.m-3], from thermodynamics. c_k in [mol.m-3]. + """ + return ( + 1 + + (2 * self.V_w - self.V_e) * c_e + + (self.V_w - self.V_ox) * c_ox + + (self.V_w - self.V_hy) * c_hy + ) / self.V_w + + def rho_dimensional(self, c_e, c_ox=0, c_hy=0): + """ + Dimensional density of electrolyte [kg.m-3], from thermodynamics. + c_k in [mol.m-3]. + """ + return ( + self.M_w / self.V_w + + (self.M_e - self.V_e * self.M_w / self.V_w) * c_e + + (self.M_ox - self.V_ox * self.M_w / self.V_w) * c_ox + + (self.M_hy - self.V_hy * self.M_w / self.V_w) * c_hy + ) + + def m_dimensional(self, c_e): + """ + Dimensional electrolyte molar mass [mol.kg-1], from thermodynamics. + c_e in [mol.m-3]. + """ + return c_e * self.V_w / ((1 - c_e * self.V_e) * self.M_w) + + def mu_dimensional(self, c_e): + """ + Dimensional viscosity of electrolyte [kg.m-1.s-1]. + """ + inputs = {"Electrolyte concentration [mol.m-3]": c_e} + return pybamm.FunctionParameter("Electrolyte viscosity [kg.m-1.s-1]", inputs) + + def U_n_dimensional(self, c_e, T): + "Dimensional open-circuit voltage in the negative electrode [V]" + inputs = {"Electrolyte molar mass [mol.kg-1]": self.m_dimensional(c_e)} + return pybamm.FunctionParameter( + "Negative electrode open-circuit potential [V]", inputs + ) + + def U_p_dimensional(self, c_e, T): + "Dimensional open-circuit voltage in the positive electrode [V]" + inputs = {"Electrolyte molar mass [mol.kg-1]": self.m_dimensional(c_e)} + return pybamm.FunctionParameter( + "Positive electrode open-circuit potential [V]", inputs + ) + + def j0_n_dimensional(self, c_e, T): + "Dimensional negative electrode exchange-current density [A.m-2]" + inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} + return pybamm.FunctionParameter( + "Negative electrode exchange-current density [A.m-2]", inputs + ) + + def j0_p_dimensional(self, c_e, T): + "Dimensional positive electrode exchange-current density [A.m-2]" + inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} + return pybamm.FunctionParameter( + "Positive electrode exchange-current density [A.m-2]", inputs + ) + + def j0_p_Ox_dimensional(self, c_e, T): + "Dimensional oxygen positive electrode exchange-current density [A.m-2]" + inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} + return pybamm.FunctionParameter( + "Positive electrode oxygen exchange-current density [A.m-2]", inputs + ) + + def _set_scales(self): + "Define the scales used in the non-dimensionalisation scheme" + + # Concentrations + self.electrolyte_concentration_scale = self.c_e_typ + + # Electrical + self.potential_scale = self.R * self.T_ref / self.F + self.current_scale = self.i_typ + self.j_scale_n = self.i_typ / (self.a_n_dim * self.L_x) + self.j_scale_p = self.i_typ / (self.a_p_dim * self.L_x) + + # Reaction velocity scale + self.velocity_scale = self.i_typ / (self.c_e_typ * self.F) + + # Discharge timescale + self.tau_discharge = self.F * self.c_e_typ * self.L_x / self.i_typ + + # Electrolyte diffusion timescale + self.D_e_typ = self.D_e_dimensional(self.c_e_typ, self.T_ref) + self.tau_diffusion_e = self.L_x ** 2 / self.D_e_typ + + # Thermal diffusion timescale + self.tau_th_yz = self.therm.tau_th_yz + + # Choose discharge timescale + self.timescale = self.tau_discharge + + # Density + self.rho_typ = self.rho_dimensional(self.c_e_typ) + + # Viscosity + self.mu_typ = self.mu_dimensional(self.c_e_typ) + + # Reference OCP + inputs = {"Electrolyte concentration [mol.m-3]": pybamm.Scalar(1)} + self.U_n_ref = pybamm.FunctionParameter( + "Negative electrode open-circuit potential [V]", inputs + ) + inputs = {"Electrolyte concentration [mol.m-3]": pybamm.Scalar(1)} + self.U_p_ref = pybamm.FunctionParameter( + "Positive electrode open-circuit potential [V]", inputs + ) + + def _set_dimensionless_parameters(self): + "Defines the dimensionless parameters" + + # Timescale ratios + self.C_th = self.tau_th_yz / self.tau_discharge + + # Macroscale Geometry + self.l_n = self.geo.l_n + self.l_s = self.geo.l_s + self.l_p = self.geo.l_p + self.l_x = self.geo.l_x + self.l_y = self.geo.l_y + self.l_z = self.geo.l_z + self.a_cc = self.geo.a_cc + self.a_cooling = self.geo.a_cooling + self.v_cell = self.geo.v_cell + self.l = self.geo.l + self.delta = self.geo.delta + # In lead-acid the current collector and electrodes are the same (same + # thickness) + self.l_cn = self.l_n + self.l_cp = self.l_p + + # Tab geometry + self.l_tab_n = self.geo.l_tab_n + self.centre_y_tab_n = self.geo.centre_y_tab_n + self.centre_z_tab_n = self.geo.centre_z_tab_n + self.l_tab_p = self.geo.l_tab_p + self.centre_y_tab_p = self.geo.centre_y_tab_p + self.centre_z_tab_p = self.geo.centre_z_tab_p + + # Diffusive kinematic relationship coefficient + self.omega_i = ( + self.c_e_typ + * self.M_e + / self.rho_typ + * (self.t_plus(1) + self.M_minus / self.M_e) + ) + # Migrative kinematic relationship coefficient (electrolyte) + self.omega_c_e = ( + self.c_e_typ + * self.M_e + / self.rho_typ + * (1 - self.M_w * self.V_e / self.V_w * self.M_e) + ) + self.C_e = self.tau_diffusion_e / self.tau_discharge + # Ratio of viscous pressure scale to osmotic pressure scale (electrolyte) + self.pi_os_e = ( + self.mu_typ + * self.velocity_scale + * self.L_x + / (self.d_n ** 2 * self.R * self.T_ref * self.c_e_typ) + ) + # ratio of electrolyte concentration to electrode concentration, undefined + self.gamma_e = pybamm.Scalar(1) + # Reynolds number + self.Re = self.rho_typ * self.velocity_scale * self.L_x / self.mu_typ + + # Other species properties + # Oxygen + self.curlyD_ox = self.D_ox_dimensional / self.D_e_typ + self.omega_c_ox = ( + self.c_e_typ + * self.M_ox + / self.rho_typ + * (1 - self.M_w * self.V_ox / self.V_w * self.M_ox) + ) + # Hydrogen + self.curlyD_hy = self.D_hy_dimensional / self.D_e_typ + self.omega_c_hy = ( + self.c_e_typ + * self.M_hy + / self.rho_typ + * (1 - self.M_w * self.V_hy / self.V_w * self.M_hy) + ) + + # Electrode Properties + self.sigma_cn = ( + self.sigma_cn_dimensional * self.potential_scale / self.i_typ / self.L_x + ) + self.sigma_n = ( + self.sigma_n_dim * self.potential_scale / self.current_scale / self.L_x + ) + self.sigma_p = ( + self.sigma_p_dim * self.potential_scale / self.current_scale / self.L_x + ) + self.sigma_cp = ( + self.sigma_cp_dimensional * self.potential_scale / self.i_typ / self.L_x + ) + self.sigma_n_prime = self.sigma_n * self.delta ** 2 + self.sigma_p_prime = self.sigma_p * self.delta ** 2 + self.sigma_cn_prime = self.sigma_cn * self.delta ** 2 + self.sigma_cp_prime = self.sigma_cp * self.delta ** 2 + self.delta_pore_n = 1 / (self.a_n_dim * self.L_x) + self.delta_pore_p = 1 / (self.a_p_dim * self.L_x) + self.Q_n_max = self.Q_n_max_dimensional / (self.c_e_typ * self.F) + self.Q_p_max = self.Q_p_max_dimensional / (self.c_e_typ * self.F) + self.beta_U_n = 1 / self.Q_n_max + self.beta_U_p = -1 / self.Q_p_max + + # Electrochemical reactions + # Main + self.s_plus_n_S = self.s_plus_n_S_dim / self.ne_n_S + self.s_plus_p_S = self.s_plus_p_S_dim / self.ne_p_S + self.s_plus_S = pybamm.Concatenation( + pybamm.FullBroadcast( + self.s_plus_n_S, ["negative electrode"], "current collector" + ), + pybamm.FullBroadcast(0, ["separator"], "current collector"), + pybamm.FullBroadcast( + self.s_plus_p_S, ["positive electrode"], "current collector" + ), + ) + self.C_dl_n = ( + self.C_dl_n_dimensional + * self.potential_scale + / self.j_scale_n + / self.tau_discharge + ) + self.C_dl_p = ( + self.C_dl_p_dimensional + * self.potential_scale + / self.j_scale_p + / self.tau_discharge + ) + self.ne_n = self.ne_n_S + self.ne_p = self.ne_p_S + # Oxygen + self.s_plus_Ox = self.s_plus_Ox_dim / self.ne_Ox + self.s_w_Ox = self.s_w_Ox_dim / self.ne_Ox + self.s_ox_Ox = self.s_ox_Ox_dim / self.ne_Ox + # j0_n_Ox_ref = j0_n_Ox_ref_dimensional / j_scale_n + self.U_n_Ox = (self.U_Ox_dim - self.U_n_ref) / self.potential_scale + self.U_p_Ox = (self.U_Ox_dim - self.U_p_ref) / self.potential_scale + # Hydrogen + self.s_plus_Hy = self.s_plus_Hy_dim / self.ne_Hy + self.s_hy_Hy = self.s_hy_Hy_dim / self.ne_Hy + # j0_n_Hy_ref = j0_n_Hy_ref_dimensional / j_scale_n + # j0_p_Hy_ref = j0_p_Hy_ref_dimensional / j_scale_p + self.U_n_Hy = (self.U_Hy_dim - self.U_n_ref) / self.potential_scale + self.U_p_Hy = (self.U_Hy_dim - self.U_p_ref) / self.potential_scale + + # Electrolyte properties + self.beta_surf_n = ( + -self.c_e_typ * self.DeltaVsurf_n / self.ne_n_S + ) # Molar volume change (lead) + self.beta_surf_p = ( + -self.c_e_typ * self.DeltaVsurf_p / self.ne_p_S + ) # Molar volume change (lead dioxide) + self.beta_surf = pybamm.Concatenation( + pybamm.FullBroadcast( + self.beta_surf_n, ["negative electrode"], "current collector" + ), + pybamm.FullBroadcast(0, ["separator"], "current collector"), + pybamm.FullBroadcast( + self.beta_surf_p, ["positive electrode"], "current collector" + ), + ) + self.beta_liq_n = ( + -self.c_e_typ * self.DeltaVliq_n / self.ne_n_S + ) # Molar volume change (electrolyte, neg) + self.beta_liq_p = ( + -self.c_e_typ * self.DeltaVliq_p / self.ne_p_S + ) # Molar volume change (electrolyte, pos) + self.beta_n = (self.beta_surf_n + self.beta_liq_n) * pybamm.Parameter( + "Volume change factor" + ) + self.beta_p = (self.beta_surf_p + self.beta_liq_p) * pybamm.Parameter( + "Volume change factor" + ) + self.beta = pybamm.Concatenation( + pybamm.FullBroadcast( + self.beta_n, "negative electrode", "current collector" + ), + pybamm.FullBroadcast(0, "separator", "current collector"), + pybamm.FullBroadcast( + self.beta_p, "positive electrode", "current collector" + ), + ) + self.beta_Ox = -self.c_e_typ * ( + self.s_plus_Ox * self.V_plus + + self.s_w_Ox * self.V_w + + self.s_ox_Ox * self.V_ox + ) + self.beta_Hy = -self.c_e_typ * ( + self.s_plus_Hy * self.V_plus + self.s_hy_Hy * self.V_hy + ) + + # Electrical + self.voltage_low_cut = ( + self.voltage_low_cut_dimensional - (self.U_p_ref - self.U_n_ref) + ) / self.potential_scale + self.voltage_high_cut = ( + self.voltage_high_cut_dimensional - (self.U_p_ref - self.U_n_ref) + ) / self.potential_scale + + # Electrolyte volumetric capacity + self.Q_e_max = ( + self.l_n * self.eps_n_max + + self.l_s * self.eps_s_max + + self.l_p * self.eps_p_max + ) / (self.s_plus_p_S - self.s_plus_n_S) + self.Q_e_max_dimensional = self.Q_e_max * self.c_e_typ * self.F + self.capacity = ( + self.Q_e_max_dimensional * self.n_electrodes_parallel * self.A_cs * self.L_x + ) + + # Thermal + self.rho_cn = self.therm.rho_cn + self.rho_n = self.therm.rho_n + self.rho_s = self.therm.rho_s + self.rho_p = self.therm.rho_p + self.rho_cp = self.therm.rho_cp + self.rho_k = self.therm.rho_k + self.rho = ( + self.rho_cn * self.l_cn + + self.rho_n * self.l_n + + self.rho_s * self.l_s + + self.rho_p * self.l_p + + self.rho_cp * self.l_cp + ) / self.l # effective volumetric heat capacity + + self.lambda_cn = self.therm.lambda_cn + self.lambda_n = self.therm.lambda_n + self.lambda_s = self.therm.lambda_s + self.lambda_p = self.therm.lambda_p + self.lambda_cp = self.therm.lambda_cp + self.lambda_k = self.therm.lambda_k + + self.Theta = self.therm.Theta + + self.h_edge = self.therm.h_edge + self.h_tab_n = self.therm.h_tab_n + self.h_tab_p = self.therm.h_tab_p + self.h_cn = self.therm.h_cn + self.h_cp = self.therm.h_cp + self.h_total = self.therm.h_total + + self.B = ( + self.i_typ + * self.R + * self.T_ref + * self.tau_th_yz + / (self.therm.rho_eff_dim * self.F * self.Delta_T * self.L_x) + ) + + self.T_amb_dim = self.therm.T_amb_dim + self.T_amb = self.therm.T_amb + + # Initial conditions + self.T_init = self.therm.T_init + self.q_init = pybamm.Parameter("Initial State of Charge") + self.c_e_init = self.q_init + self.c_ox_init = self.c_ox_init_dim / self.c_ox_typ + self.epsilon_n_init = ( + self.eps_n_max + - self.beta_surf_n * self.Q_e_max / self.l_n * (1 - self.q_init) + ) + self.epsilon_s_init = self.eps_s_max + self.epsilon_p_init = ( + self.eps_p_max + + self.beta_surf_p * self.Q_e_max / self.l_p * (1 - self.q_init) + ) + self.epsilon_init = pybamm.Concatenation( + pybamm.FullBroadcast( + self.epsilon_n_init, ["negative electrode"], "current collector" + ), + pybamm.FullBroadcast( + self.epsilon_s_init, ["separator"], "current collector" + ), + pybamm.FullBroadcast( + self.epsilon_p_init, ["positive electrode"], "current collector" + ), + ) + self.curlyU_n_init = ( + self.Q_e_max * (1.2 - self.q_init) / (self.Q_n_max * self.l_n) + ) + self.curlyU_p_init = ( + self.Q_e_max * (1.2 - self.q_init) / (self.Q_p_max * self.l_p) + ) + + def D_e(self, c_e, T): + "Dimensionless electrolyte diffusivity" + c_e_dimensional = c_e * self.c_e_typ + return self.D_e_dimensional(c_e_dimensional, self.T_ref) / self.D_e_typ + + def kappa_e(self, c_e, T): + "Dimensionless electrolyte conductivity" + c_e_dimensional = c_e * self.c_e_typ + kappa_scale = self.F ** 2 * self.D_e_typ * self.c_e_typ / (self.R * self.T_ref) + return self.kappa_e_dimensional(c_e_dimensional, self.T_ref) / kappa_scale + + def chi(self, c_e, c_ox=0, c_hy=0): + "Thermodynamic factor" + return ( + self.chi_dimensional(self.c_e_typ * c_e) + * (2 * (1 - self.t_plus(c_e))) + / ( + self.V_w + * self.c_T(self.c_e_typ * c_e, self.c_e_typ * c_ox, self.c_e_typ * c_hy) + ) + ) + + def U_n(self, c_e_n, T): + "Dimensionless open-circuit voltage in the negative electrode" + c_e_n_dimensional = c_e_n * self.c_e_typ + T_dim = self.Delta_T * T + self.T_ref + return ( + self.U_n_dimensional(c_e_n_dimensional, T_dim) - self.U_n_ref + ) / self.potential_scale + + def U_p(self, c_e_p, T): + "Dimensionless open-circuit voltage in the positive electrode" + c_e_p_dimensional = c_e_p * self.c_e_typ + T_dim = self.Delta_T * T + self.T_ref + return ( + self.U_p_dimensional(c_e_p_dimensional, T_dim) - self.U_p_ref + ) / self.potential_scale + + def j0_n(self, c_e, T): + "Dimensionless exchange-current density in the negative electrode" + c_e_dim = c_e * self.c_e_typ + T_dim = self.Delta_T * T + self.T_ref + return self.j0_n_dimensional(c_e_dim, T_dim) / self.j_scale_n + + def j0_p(self, c_e, T): + "Dimensionless exchange-current density in the positive electrode" + c_e_dim = c_e * self.c_e_typ + T_dim = self.Delta_T * T + self.T_ref + return self.j0_p_dimensional(c_e_dim, T_dim) / self.j_scale_p + + def j0_p_Ox(self, c_e, T): + "Dimensionless oxygen exchange-current density in the positive electrode" + c_e_dim = c_e * self.c_e_typ + T_dim = self.Delta_T * T + self.T_ref + return self.j0_p_Ox_dimensional(c_e_dim, T_dim) / self.j_scale_p + + def c_n_init(self, x): + """ + Dimensionless initial concentration (as a function of dimensionless position x + to be consistent with lithium-ion) + """ + return self.c_e_init + + def c_p_init(self, x): + """ + Dimensionless initial concentration (as a function of dimensionless position x + to be consistent with lithium-ion) + """ + return self.c_e_init + + def a_n_of_x(self, x): + """ + Dimensionless surface area per unit volume distribution in x (as a function + for consistency with lithium-ion). The surface area per unit volume + distribution is defined so that the actual surface area per unit volume + as a function of x is given by a*a_of_x (so that a_of_x = 1 gives uniform + surface area per unit volume in x). + + Returns 1 to give uniform surface area per unit volume in x. + """ + return pybamm.FullBroadcast(1, "negative electrode", "current collector") + + def a_p_of_x(self, x): + """ + Dimensionless surface area per unit volume distribution in x (as a function + for consistency with lithium-ion). The surface area per unit volume + distribution is defined so that the actual surface area per unit volume + as a function of x is given by a*a_of_x (so that a_of_x = 1 gives uniform + surface area per unit volume in x). + + Returns 1 to give uniform surface area per unit volume in x. + """ + return pybamm.FullBroadcast(1, "positive electrode", "current collector") + + def _set_input_current(self): + "Set the input current" + + self.dimensional_current_with_time = pybamm.FunctionParameter( + "Current function [A]", {"Time [s]": pybamm.t * self.timescale} + ) + self.dimensional_current_density_with_time = ( + self.dimensional_current_with_time + / (self.n_electrodes_parallel * self.geo.A_cc) + ) + self.current_with_time = ( + self.dimensional_current_with_time + / self.I_typ + * pybamm.Function(np.sign, self.I_typ) + ) diff --git a/pybamm/parameters/lithium_ion_parameters.py b/pybamm/parameters/lithium_ion_parameters.py new file mode 100644 index 0000000000..9ec595e44d --- /dev/null +++ b/pybamm/parameters/lithium_ion_parameters.py @@ -0,0 +1,825 @@ +# +# Standard parameters for lithium-ion battery models +# +import pybamm +import numpy as np + + +class LithiumIonParameters: + """ + Standard parameters for lithium-ion battery models + + Layout: + 1. Dimensional Parameters + 2. Dimensional Functions + 3. Scalings + 4. Dimensionless Parameters + 5. Dimensionless Functions + 6. Input Current + + Parameters + ---------- + + options : dict, optional + A dictionary of options to be passed to the parameters. The options that + can be set are listed below. + + * "particle shape" : str, optional + Sets the model shape of the electrode particles. This is used to + calculate the surface area per unit volume. Can be "spherical" + (default) or "user". For the "user" option the surface area per + unit volume can be passed as a parameter, and is therefore not + necessarily consistent with the particle shape. + """ + + def __init__(self, options=None): + self.options = options + + # Get geometric, electrical and thermal parameters + self.geo = pybamm.GeometricParameters() + self.elec = pybamm.ElectricalParameters() + self.therm = pybamm.ThermalParameters() + + # Set parameters and scales + self._set_dimensional_parameters() + self._set_scales() + self._set_dimensionless_parameters() + + # Set input current + self._set_input_current() + + def _set_dimensional_parameters(self): + "Defines the dimensional parameters" + + # Physical constants + self.R = pybamm.constants.R + self.F = pybamm.constants.F + self.T_ref = self.therm.T_ref + + # Macroscale geometry + self.L_cn = self.geo.L_cn + self.L_n = self.geo.L_n + self.L_s = self.geo.L_s + self.L_p = self.geo.L_p + self.L_cp = self.geo.L_cp + self.L_x = self.geo.L_x + self.L_y = self.geo.L_y + self.L_z = self.geo.L_z + self.L = self.geo.L + self.A_cc = self.geo.A_cc + self.A_cooling = self.geo.A_cooling + self.V_cell = self.geo.V_cell + + # Tab geometry + self.L_tab_n = self.geo.L_tab_n + self.Centre_y_tab_n = self.geo.Centre_y_tab_n + self.Centre_z_tab_n = self.geo.Centre_z_tab_n + self.L_tab_p = self.geo.L_tab_p + self.Centre_y_tab_p = self.geo.Centre_y_tab_p + self.Centre_z_tab_p = self.geo.Centre_z_tab_p + self.A_tab_n = self.geo.A_tab_n + self.A_tab_p = self.geo.A_tab_p + + # Electrical + self.I_typ = self.elec.I_typ + self.Q = self.elec.Q + self.C_rate = self.elec.C_rate + self.n_electrodes_parallel = self.elec.n_electrodes_parallel + self.n_cells = self.elec.n_cells + self.i_typ = self.elec.i_typ + self.voltage_low_cut_dimensional = self.elec.voltage_low_cut_dimensional + self.voltage_high_cut_dimensional = self.elec.voltage_high_cut_dimensional + + # Electrolyte properties + self.c_e_typ = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") + + # Electrode properties + self.c_n_max = pybamm.Parameter( + "Maximum concentration in negative electrode [mol.m-3]" + ) + self.c_p_max = pybamm.Parameter( + "Maximum concentration in positive electrode [mol.m-3]" + ) + self.sigma_cn_dimensional = pybamm.Parameter( + "Negative current collector conductivity [S.m-1]" + ) + self.sigma_n_dim = pybamm.Parameter("Negative electrode conductivity [S.m-1]") + self.sigma_p_dim = pybamm.Parameter("Positive electrode conductivity [S.m-1]") + self.sigma_cp_dimensional = pybamm.Parameter( + "Positive current collector conductivity [S.m-1]" + ) + + # Microscale geometry + inputs = {"Through-cell distance (x_n) [m]": pybamm.standard_spatial_vars.x_n} + self.epsilon_n = pybamm.FunctionParameter("Negative electrode porosity", inputs) + + inputs = {"Through-cell distance (x_s) [m]": pybamm.standard_spatial_vars.x_s} + self.epsilon_s = pybamm.FunctionParameter("Separator porosity", inputs) + + inputs = {"Through-cell distance (x_p) [m]": pybamm.standard_spatial_vars.x_p} + self.epsilon_p = pybamm.FunctionParameter("Positive electrode porosity", inputs) + + self.epsilon = pybamm.Concatenation( + self.epsilon_n, self.epsilon_s, self.epsilon_p + ) + self.epsilon_s_n = pybamm.Parameter( + "Negative electrode active material volume fraction" + ) + self.epsilon_s_p = pybamm.Parameter( + "Positive electrode active material volume fraction" + ) + self.epsilon_inactive_n = 1 - self.epsilon_n - self.epsilon_s_n + self.epsilon_inactive_s = 1 - self.epsilon_s + self.epsilon_inactive_p = 1 - self.epsilon_p - self.epsilon_s_p + self.b_e_n = self.geo.b_e_n + self.b_e_s = self.geo.b_e_s + self.b_e_p = self.geo.b_e_p + self.b_s_n = self.geo.b_s_n + self.b_s_s = self.geo.b_s_s + self.b_s_p = self.geo.b_s_p + + self.R_n = self.geo.R_n + self.R_p = self.geo.R_p + + if self.options["particle shape"] == "spherical": + self.a_n_dim = 3 * self.epsilon_s_n / self.R_n + self.a_p_dim = 3 * self.epsilon_s_p / self.R_p + elif self.options["particle shape"] == "user": + self.a_n_dim = self.geo.a_n_dim + self.a_p_dim = self.geo.a_p_dim + + self.a_k_dim = pybamm.Concatenation( + pybamm.FullBroadcast( + self.a_n_dim, ["negative electrode"], "current collector" + ), + pybamm.FullBroadcast(0, ["separator"], "current collector"), + pybamm.FullBroadcast( + self.a_p_dim, ["positive electrode"], "current collector" + ), + ) + + # Electrochemical reactions + self.ne_n = pybamm.Parameter("Negative electrode electrons in reaction") + self.ne_p = pybamm.Parameter("Positive electrode electrons in reaction") + self.C_dl_n_dimensional = pybamm.Parameter( + "Negative electrode double-layer capacity [F.m-2]" + ) + self.C_dl_p_dimensional = pybamm.Parameter( + "Positive electrode double-layer capacity [F.m-2]" + ) + + # SEI parameters + self.V_bar_inner_dimensional = pybamm.Parameter( + "Inner SEI partial molar volume [m3.mol-1]" + ) + self.V_bar_outer_dimensional = pybamm.Parameter( + "Outer SEI partial molar volume [m3.mol-1]" + ) + + self.m_sei_dimensional = pybamm.Parameter( + "SEI reaction exchange current density [A.m-2]" + ) + + self.R_sei_dimensional = pybamm.Parameter("SEI resistivity [Ohm.m]") + self.D_sol_dimensional = pybamm.Parameter( + "Outer SEI solvent diffusivity [m2.s-1]" + ) + self.c_sol_dimensional = pybamm.Parameter( + "Bulk solvent concentration [mol.m-3]" + ) + self.m_ratio = pybamm.Parameter( + "Ratio of inner and outer SEI exchange current densities" + ) + self.U_inner_dimensional = pybamm.Parameter( + "Inner SEI open-circuit potential [V]" + ) + self.U_outer_dimensional = pybamm.Parameter( + "Outer SEI open-circuit potential [V]" + ) + self.kappa_inner_dimensional = pybamm.Parameter( + "Inner SEI electron conductivity [S.m-1]" + ) + self.D_li_dimensional = pybamm.Parameter( + "Inner SEI lithium interstitial diffusivity [m2.s-1]" + ) + self.c_li_0_dimensional = pybamm.Parameter( + "Lithium interstitial reference concentration [mol.m-3]" + ) + self.L_inner_0_dim = pybamm.Parameter("Initial inner SEI thickness [m]") + self.L_outer_0_dim = pybamm.Parameter("Initial outer SEI thickness [m]") + self.L_sei_0_dim = self.L_inner_0_dim + self.L_outer_0_dim + + # EC reaction + self.c_ec_0_dim = pybamm.Parameter( + "EC initial concentration in electrolyte [mol.m-3]" + ) + self.D_ec_dim = pybamm.Parameter("EC diffusivity [m2.s-1]") + self.k_sei_dim = pybamm.Parameter("SEI kinetic rate constant [m.s-1]") + self.U_sei_dim = pybamm.Parameter("SEI open-circuit potential [V]") + + # Initial conditions + # Note: the initial concentration in the electrodes can be set as a function + # of through-cell position, so is defined later as a function + self.c_e_init_dimensional = pybamm.Parameter( + "Initial concentration in electrolyte [mol.m-3]" + ) + + def D_e_dimensional(self, c_e, T): + "Dimensional diffusivity in electrolyte" + inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} + return pybamm.FunctionParameter("Electrolyte diffusivity [m2.s-1]", inputs) + + def kappa_e_dimensional(self, c_e, T): + "Dimensional electrolyte conductivity" + inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} + return pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) + + def D_n_dimensional(self, sto, T): + """Dimensional diffusivity in negative particle. Note this is defined as a + function of stochiometry""" + inputs = {"Negative particle stoichiometry": sto, "Temperature [K]": T} + return pybamm.FunctionParameter( + "Negative electrode diffusivity [m2.s-1]", inputs + ) + + def D_p_dimensional(self, sto, T): + """Dimensional diffusivity in positive particle. Note this is defined as a + function of stochiometry""" + inputs = {"Positive particle stoichiometry": sto, "Temperature [K]": T} + return pybamm.FunctionParameter( + "Positive electrode diffusivity [m2.s-1]", inputs + ) + + def j0_n_dimensional(self, c_e, c_s_surf, T): + "Dimensional negative exchange-current density [A.m-2]" + inputs = { + "Electrolyte concentration [mol.m-3]": c_e, + "Negative particle surface concentration [mol.m-3]": c_s_surf, + "Temperature [K]": T, + } + return pybamm.FunctionParameter( + "Negative electrode exchange-current density [A.m-2]", inputs + ) + + def j0_p_dimensional(self, c_e, c_s_surf, T): + "Dimensional negative exchange-current density [A.m-2]" + inputs = { + "Electrolyte concentration [mol.m-3]": c_e, + "Positive particle surface concentration [mol.m-3]": c_s_surf, + "Temperature [K]": T, + } + return pybamm.FunctionParameter( + "Positive electrode exchange-current density [A.m-2]", inputs + ) + + def U_n_dimensional(self, sto, T): + "Dimensional open-circuit potential in the negative electrode [V]" + inputs = {"Negative particle stoichiometry": sto} + u_ref = pybamm.FunctionParameter("Negative electrode OCP [V]", inputs) + return u_ref + (T - self.T_ref) * self.dUdT_n_dimensional(sto) + + def U_p_dimensional(self, sto, T): + "Dimensional open-circuit potential in the positive electrode [V]" + inputs = {"Positive particle stoichiometry": sto} + u_ref = pybamm.FunctionParameter("Positive electrode OCP [V]", inputs) + return u_ref + (T - self.T_ref) * self.dUdT_p_dimensional(sto) + + def dUdT_n_dimensional(self, sto): + """ + Dimensional entropic change of the negative electrode open-circuit + potential [V.K-1] + """ + inputs = { + "Negative particle stoichiometry": sto, + "Max negative particle concentration [mol.m-3]": self.c_n_max, + } + return pybamm.FunctionParameter( + "Negative electrode OCP entropic change [V.K-1]", inputs + ) + + def dUdT_p_dimensional(self, sto): + """ + Dimensional entropic change of the positive electrode open-circuit + potential [V.K-1] + """ + inputs = { + "Positive particle stoichiometry": sto, + "Max positive particle concentration [mol.m-3]": self.c_p_max, + } + return pybamm.FunctionParameter( + "Positive electrode OCP entropic change [V.K-1]", inputs + ) + + def c_n_init_dimensional(self, x): + "Initial concentration as a function of dimensionless position x" + inputs = {"Dimensionless through-cell position (x_n)": x} + return pybamm.FunctionParameter( + "Initial concentration in negative electrode [mol.m-3]", inputs + ) + + def c_p_init_dimensional(self, x): + "Initial concentration as a function of dimensionless position x" + inputs = {"Dimensionless through-cell position (x_p)": x} + return pybamm.FunctionParameter( + "Initial concentration in positive electrode [mol.m-3]", inputs + ) + + def _set_scales(self): + "Define the scales used in the non-dimensionalisation scheme" + + # Concentration + self.electrolyte_concentration_scale = self.c_e_typ + self.negative_particle_concentration_scale = self.c_n_max + self.positive_particle_concentration_scale = self.c_n_max + + # Electrical + self.potential_scale = self.R * self.T_ref / self.F + self.current_scale = self.i_typ + self.j_scale_n = self.i_typ / (self.a_n_dim * self.L_x) + self.j_scale_p = self.i_typ / (self.a_p_dim * self.L_x) + + # Reference OCP based on initial concentration at + # current collector/electrode interface + sto_n_init = self.c_n_init_dimensional(0) / self.c_n_max + self.U_n_ref = self.U_n_dimensional(sto_n_init, self.T_ref) + + # Reference OCP based on initial concentration at + # current collector/electrode interface + sto_p_init = self.c_p_init_dimensional(1) / self.c_p_max + self.U_p_ref = self.U_p_dimensional(sto_p_init, self.T_ref) + + # Reference exchange-current density + self.j0_n_ref_dimensional = ( + self.j0_n_dimensional(self.c_e_typ, self.c_n_max / 2, self.T_ref) * 2 + ) + self.j0_p_ref_dimensional = ( + self.j0_p_dimensional(self.c_e_typ, self.c_p_max / 2, self.T_ref) * 2 + ) + + # Thermal + self.Delta_T = self.therm.Delta_T + + # Velocity scale + self.velocity_scale = pybamm.Scalar(1) + + # Discharge timescale + self.tau_discharge = self.F * self.c_n_max * self.L_x / self.i_typ + + # Reaction timescales + self.tau_r_n = ( + self.F * self.c_n_max / (self.j0_n_ref_dimensional * self.a_n_dim) + ) + self.tau_r_p = ( + self.F * self.c_p_max / (self.j0_p_ref_dimensional * self.a_p_dim) + ) + + # Electrolyte diffusion timescale + self.D_e_typ = self.D_e_dimensional(self.c_e_typ, self.T_ref) + self.tau_diffusion_e = self.L_x ** 2 / self.D_e_typ + + # Particle diffusion timescales + self.tau_diffusion_n = self.R_n ** 2 / self.D_n_dimensional( + pybamm.Scalar(1), self.T_ref + ) + self.tau_diffusion_p = self.R_p ** 2 / self.D_p_dimensional( + pybamm.Scalar(1), self.T_ref + ) + + # Thermal diffusion timescale + self.tau_th_yz = self.therm.tau_th_yz + + # Choose discharge timescale + self.timescale = self.tau_discharge + + def _set_dimensionless_parameters(self): + "Defines the dimensionless parameters" + + # Timescale ratios + self.C_n = self.tau_diffusion_n / self.tau_discharge + self.C_p = self.tau_diffusion_p / self.tau_discharge + self.C_e = self.tau_diffusion_e / self.tau_discharge + self.C_r_n = self.tau_r_n / self.tau_discharge + self.C_r_p = self.tau_r_p / self.tau_discharge + self.C_th = self.tau_th_yz / self.tau_discharge + + # Concentration ratios + self.gamma_e = self.c_e_typ / self.c_n_max + self.gamma_p = self.c_p_max / self.c_n_max + + # Macroscale Geometry + self.l_cn = self.geo.l_cn + self.l_n = self.geo.l_n + self.l_s = self.geo.l_s + self.l_p = self.geo.l_p + self.l_cp = self.geo.l_cp + self.l_x = self.geo.l_x + self.l_y = self.geo.l_y + self.l_z = self.geo.l_z + self.a_cc = self.geo.a_cc + self.a_cooling = self.geo.a_cooling + self.v_cell = self.geo.v_cell + self.l = self.geo.l + self.delta = self.geo.delta + + # Tab geometry + self.l_tab_n = self.geo.l_tab_n + self.centre_y_tab_n = self.geo.centre_y_tab_n + self.centre_z_tab_n = self.geo.centre_z_tab_n + self.l_tab_p = self.geo.l_tab_p + self.centre_y_tab_p = self.geo.centre_y_tab_p + self.centre_z_tab_p = self.geo.centre_z_tab_p + + # Microscale geometry, see 'self._set_dimensional_parameters' for the + # definition on the dimensional surface area to volume ratio based on + # particle shape + self.a_n = self.a_n_dim * self.R_n + self.a_p = self.a_p_dim * self.R_p + + # Electrode Properties + self.sigma_cn = ( + self.sigma_cn_dimensional * self.potential_scale / self.i_typ / self.L_x + ) + self.sigma_n = self.sigma_n_dim * self.potential_scale / self.i_typ / self.L_x + self.sigma_p = self.sigma_p_dim * self.potential_scale / self.i_typ / self.L_x + self.sigma_cp = ( + self.sigma_cp_dimensional * self.potential_scale / self.i_typ / self.L_x + ) + self.sigma_cn_prime = self.sigma_cn * self.delta ** 2 + self.sigma_n_prime = self.sigma_n * self.delta + self.sigma_p_prime = self.sigma_p * self.delta + self.sigma_cp_prime = self.sigma_cp * self.delta ** 2 + self.sigma_cn_dbl_prime = self.sigma_cn_prime * self.delta + self.sigma_cp_dbl_prime = self.sigma_cp_prime * self.delta + + # Electrolyte Properties + self.beta_surf = pybamm.Scalar(0) + self.beta_surf_n = pybamm.Scalar(0) + self.beta_surf_p = pybamm.Scalar(0) + + # Electrochemical Reactions + self.C_dl_n = ( + self.C_dl_n_dimensional + * self.potential_scale + / self.j_scale_n + / self.tau_discharge + ) + self.C_dl_p = ( + self.C_dl_p_dimensional + * self.potential_scale + / self.j_scale_p + / self.tau_discharge + ) + + # Electrical + self.voltage_low_cut = ( + self.voltage_low_cut_dimensional - (self.U_p_ref - self.U_n_ref) + ) / self.potential_scale + self.voltage_high_cut = ( + self.voltage_high_cut_dimensional - (self.U_p_ref - self.U_n_ref) + ) / self.potential_scale + + # Thermal + self.rho_cn = self.therm.rho_cn + self.rho_n = self.therm.rho_n + self.rho_s = self.therm.rho_s + self.rho_p = self.therm.rho_p + self.rho_cp = self.therm.rho_cp + self.rho_k = self.therm.rho_k + self.rho = ( + self.rho_cn * self.l_cn + + self.rho_n * self.l_n + + self.rho_s * self.l_s + + self.rho_p * self.l_p + + self.rho_cp * self.l_cp + ) / self.l # effective volumetric heat capacity + + self.lambda_cn = self.therm.lambda_cn + self.lambda_n = self.therm.lambda_n + self.lambda_s = self.therm.lambda_s + self.lambda_p = self.therm.lambda_p + self.lambda_cp = self.therm.lambda_cp + self.lambda_k = self.therm.lambda_k + + self.Theta = self.therm.Theta + + self.h_edge = self.therm.h_edge + self.h_tab_n = self.therm.h_tab_n + self.h_tab_p = self.therm.h_tab_p + self.h_cn = self.therm.h_cn + self.h_cp = self.therm.h_cp + self.h_total = self.therm.h_total + + self.B = ( + self.i_typ + * self.R + * self.T_ref + * self.tau_th_yz + / (self.therm.rho_eff_dim * self.F * self.Delta_T * self.L_x) + ) + + self.T_amb_dim = self.therm.T_amb_dim + self.T_amb = self.therm.T_amb + + # SEI parameters + self.C_sei_reaction_n = (self.j_scale_n / self.m_sei_dimensional) * pybamm.exp( + -(self.F * self.U_n_ref / (2 * self.R * self.T_ref)) + ) + self.C_sei_reaction_p = (self.j_scale_p / self.m_sei_dimensional) * pybamm.exp( + -(self.F * self.U_n_ref / (2 * self.R * self.T_ref)) + ) + + self.C_sei_solvent_n = ( + self.j_scale_n + * self.L_sei_0_dim + / (self.c_sol_dimensional * self.F * self.D_sol_dimensional) + ) + self.C_sei_solvent_p = ( + self.j_scale_p + * self.L_sei_0_dim + / (self.c_sol_dimensional * self.F * self.D_sol_dimensional) + ) + + self.C_sei_electron_n = ( + self.j_scale_n + * self.F + * self.L_sei_0_dim + / (self.kappa_inner_dimensional * self.R * self.T_ref) + ) + self.C_sei_electron_p = ( + self.j_scale_p + * self.F + * self.L_sei_0_dim + / (self.kappa_inner_dimensional * self.R * self.T_ref) + ) + + self.C_sei_inter_n = ( + self.j_scale_n + * self.L_sei_0_dim + / (self.D_li_dimensional * self.c_li_0_dimensional * self.F) + ) + self.C_sei_inter_p = ( + self.j_scale_p + * self.L_sei_0_dim + / (self.D_li_dimensional * self.c_li_0_dimensional * self.F) + ) + + self.U_inner_electron = self.F * self.U_inner_dimensional / self.R / self.T_ref + + self.R_sei_n = ( + self.F + * self.j_scale_n + * self.R_sei_dimensional + * self.L_sei_0_dim + / self.R + / self.T_ref + ) + self.R_sei_p = ( + self.F + * self.j_scale_p + * self.R_sei_dimensional + * self.L_sei_0_dim + / self.R + / self.T_ref + ) + + self.v_bar = self.V_bar_outer_dimensional / self.V_bar_inner_dimensional + + self.L_inner_0 = self.L_inner_0_dim / self.L_sei_0_dim + self.L_outer_0 = self.L_outer_0_dim / self.L_sei_0_dim + + # ratio of SEI reaction scale to intercalation reaction + self.Gamma_SEI_n = ( + self.V_bar_inner_dimensional * self.j_scale_n * self.tau_discharge + ) / (self.F * self.L_sei_0_dim) + self.Gamma_SEI_p = ( + self.V_bar_inner_dimensional * self.j_scale_p * self.tau_discharge + ) / (self.F * self.L_sei_0_dim) + + # EC reaction + self.C_ec_n = ( + self.L_sei_0_dim + * self.j_scale_n + / (self.F * self.c_ec_0_dim * self.D_ec_dim) + ) + self.C_sei_ec_n = ( + self.F + * self.k_sei_dim + * self.c_ec_0_dim + / self.j_scale_n + * ( + pybamm.exp( + -( + self.F + * (self.U_n_ref - self.U_sei_dim) + / (2 * self.R * self.T_ref) + ) + ) + ) + ) + self.beta_sei_n = self.a_n_dim * self.L_sei_0_dim * self.Gamma_SEI_n + + # Initial conditions + self.epsilon_n_init = pybamm.Parameter("Negative electrode porosity") + self.epsilon_s_init = pybamm.Parameter("Separator porosity") + self.epsilon_p_init = pybamm.Parameter("Positive electrode porosity") + self.epsilon_init = pybamm.Concatenation( + self.epsilon_n, self.epsilon_s, self.epsilon_p + ) + self.T_init = self.therm.T_init + self.c_e_init = self.c_e_init_dimensional / self.c_e_typ + + def chi(self, c_e): + """ + Thermodynamic factor: + (1-2*t_plus) is for Nernst-Planck, + 2*(1-t_plus) for Stefan-Maxwell, + see Bizeray et al (2016) "Resolving a discrepancy ...". + """ + return (2 * (1 - self.t_plus(c_e))) * (self.one_plus_dlnf_dlnc(c_e)) + + def t_plus(self, c_e): + "Dimensionless transference number (i.e. c_e is dimensionless)" + inputs = {"Electrolyte concentration [mol.m-3]": c_e * self.c_e_typ} + return pybamm.FunctionParameter("Cation transference number", inputs) + + def one_plus_dlnf_dlnc(self, c_e): + inputs = {"Electrolyte concentration [mol.m-3]": c_e * self.c_e_typ} + return pybamm.FunctionParameter("1 + dlnf/dlnc", inputs) + + def D_e(self, c_e, T): + "Dimensionless electrolyte diffusivity" + c_e_dimensional = c_e * self.c_e_typ + T_dim = self.Delta_T * T + self.T_ref + return self.D_e_dimensional(c_e_dimensional, T_dim) / self.D_e_typ + + def kappa_e(self, c_e, T): + "Dimensionless electrolyte conductivity" + c_e_dimensional = c_e * self.c_e_typ + kappa_scale = self.F ** 2 * self.D_e_typ * self.c_e_typ / (self.R * self.T_ref) + T_dim = self.Delta_T * T + self.T_ref + return self.kappa_e_dimensional(c_e_dimensional, T_dim) / kappa_scale + + def D_n(self, c_s_n, T): + "Dimensionless negative particle diffusivity" + sto = c_s_n + T_dim = self.Delta_T * T + self.T_ref + return self.D_n_dimensional(sto, T_dim) / self.D_n_dimensional( + pybamm.Scalar(1), self.T_ref + ) + + def D_p(self, c_s_p, T): + "Dimensionless positive particle diffusivity" + sto = c_s_p + T_dim = self.Delta_T * T + self.T_ref + return self.D_p_dimensional(sto, T_dim) / self.D_p_dimensional( + pybamm.Scalar(1), self.T_ref + ) + + def j0_n(self, c_e, c_s_surf, T): + "Dimensionless negative exchange-current density" + c_e_dim = c_e * self.c_e_typ + c_s_surf_dim = c_s_surf * self.c_n_max + T_dim = self.Delta_T * T + self.T_ref + + return ( + self.j0_n_dimensional(c_e_dim, c_s_surf_dim, T_dim) + / self.j0_n_ref_dimensional + ) + + def j0_p(self, c_e, c_s_surf, T): + "Dimensionless positive exchange-current density" + c_e_dim = c_e * self.c_e_typ + c_s_surf_dim = c_s_surf * self.c_p_max + T_dim = self.Delta_T * T + self.T_ref + + return ( + self.j0_p_dimensional(c_e_dim, c_s_surf_dim, T_dim) + / self.j0_p_ref_dimensional + ) + + def U_n(self, c_s_n, T): + "Dimensionless open-circuit potential in the negative electrode" + sto = c_s_n + T_dim = self.Delta_T * T + self.T_ref + return (self.U_n_dimensional(sto, T_dim) - self.U_n_ref) / self.potential_scale + + def U_p(self, c_s_p, T): + "Dimensionless open-circuit potential in the positive electrode" + sto = c_s_p + T_dim = self.Delta_T * T + self.T_ref + return (self.U_p_dimensional(sto, T_dim) - self.U_p_ref) / self.potential_scale + + def dUdT_n(self, c_s_n): + "Dimensionless entropic change in negative open-circuit potential" + sto = c_s_n + return self.dUdT_n_dimensional(sto) * self.Delta_T / self.potential_scale + + def dUdT_p(self, c_s_p): + "Dimensionless entropic change in positive open-circuit potential" + sto = c_s_p + return self.dUdT_p_dimensional(sto) * self.Delta_T / self.potential_scale + + def c_n_init(self, x): + "Dimensionless initial concentration as a function of dimensionless position x" + return self.c_n_init_dimensional(x) / self.c_n_max + + def c_p_init(self, x): + "Dimensionless initial concentration as a function of dimensionless position x" + return self.c_p_init_dimensional(x) / self.c_p_max + + def R_n_of_x(self, x): + """ + Dimensionless negative particle distribution in x. The particle distribution is + defined so that the actual particle radius as a function of x is given by + R*R_of_x (so that R_of_x = 1 gives particles of uniform size in x). + """ + inputs = {"Through-cell distance (x_n) [m]": x} + return pybamm.FunctionParameter("Negative particle distribution in x", inputs) + + def R_p_of_x(self, x): + """ + Dimensionless positive particle distribution in x. The particle distribution is + defined so that the actual particle radius as a function of x is given by + R*R_of_x (so that R_of_x = 1 gives particles of uniform size in x). + """ + inputs = {"Through-cell distance (x_p) [m]": x} + return pybamm.FunctionParameter("Positive particle distribution in x", inputs) + + def a_n_of_x(self, x): + """ + Dimensionless surface area per unit volume distribution in x. The surface + area per unit volume distribution is defined so that the actual surface + area per unit volume as a function of x is given by a*a_of_x (so that + a_of_x = 1 gives uniform surface area per unit volume in x). + """ + if self.options["particle shape"] == "spherical": + # Currently the active material volume fraction is a scalar, so the + # distribution of surface are per unit volume is simply the reciprocal + # of the particle radius distribution + return 1 / self.R_n_of_x(x) + elif self.options["particle shape"] == "user": + inputs = {"Through-cell distance (x_n) [m]": x} + return pybamm.FunctionParameter( + "Negative surface area per unit volume distribution in x", inputs + ) + + def a_p_of_x(self, x): + """ + Dimensionless surface area per unit volume distribution in x. The surface + area per unit volume distribution is defined so that the actual surface + area per unit volume as a function of x is given by a*a_of_x (so that + a_of_x = 1 gives uniform surface area per unit volume in x). + """ + if self.options["particle shape"] == "spherical": + # Currently the active material volume fraction is a scalar, so the + # distribution of surface are per unit volume is simply the reciprocal + # of the particle radius distribution + return 1 / self.R_p_of_x(x) + elif self.options["particle shape"] == "user": + inputs = {"Through-cell distance (x_p) [m]": x} + return pybamm.FunctionParameter( + "Positive surface area per unit volume distribution in x", inputs + ) + + def _set_input_current(self): + "Set the input current" + + self.dimensional_current_with_time = pybamm.FunctionParameter( + "Current function [A]", {"Time [s]": pybamm.t * self.timescale} + ) + self.dimensional_current_density_with_time = ( + self.dimensional_current_with_time + / (self.n_electrodes_parallel * self.geo.A_cc) + ) + self.current_with_time = ( + self.dimensional_current_with_time + / self.I_typ + * pybamm.Function(np.sign, self.I_typ) + ) + + @property + def options(self): + return self._options + + @options.setter + def options(self, extra_options): + extra_options = extra_options or {} + + # Default options + options = {"particle shape": "spherical"} + + # All model options get passed to the parameter class, so we just need + # to update the options in the default options and ignore the rest + for name, opt in extra_options.items(): + if name in options: + options[name] = opt + + # Check the options are valid (this check also happens in 'BaseBatteryModel', + # but we check here incase the parameter class is instantiated separetly + # from the model) + if options["particle shape"] not in ["spherical", "user"]: + raise pybamm.OptionError( + "particle shape '{}' not recognised".format(options["particle shape"]) + ) + + self._options = options diff --git a/pybamm/parameters/parameter_values.py b/pybamm/parameters/parameter_values.py index 48361f8bfd..c97e499277 100644 --- a/pybamm/parameters/parameter_values.py +++ b/pybamm/parameters/parameter_values.py @@ -516,15 +516,13 @@ def _process_symbol(self, symbol): function = pybamm.Scalar( function_name, name=symbol.name ) * pybamm.ones_like(*new_children) - elif isinstance(function_name, pybamm.InputParameter): - # Replace the function with an input parameter - function = function_name elif ( isinstance(function_name, pybamm.Symbol) and function_name.evaluates_to_number() ): # If the "function" provided is a pybamm scalar-like, use ones_like to # get the right shape + # This also catches input parameters function = function_name * pybamm.ones_like(*new_children) elif callable(function_name): # otherwise evaluate the function to create a new PyBaMM object @@ -669,6 +667,9 @@ def print_parameters(self, parameters, output_file=None): "pybamm", "constants", "np", + "geo", + "elec", + "therm", ] # If 'parameters' is a class, extract the dict diff --git a/pybamm/parameters/standard_parameters_lead_acid.py b/pybamm/parameters/standard_parameters_lead_acid.py deleted file mode 100644 index 2f7b4739f0..0000000000 --- a/pybamm/parameters/standard_parameters_lead_acid.py +++ /dev/null @@ -1,579 +0,0 @@ -# -# Standard parameters for lead-acid battery models -# -""" -Standard Parameters for lead-acid battery models -""" -import pybamm -import numpy as np - - -# -------------------------------------------------------------------------------------- -"File Layout:" -# 1. Dimensional Parameters -# 2. Dimensional Functions -# 3. Scalings -# 4. Dimensionless Parameters -# 5. Dimensionless Functions -# 6. Input current - -# -------------------------------------------------------------------------------------- -"1. Dimensional Parameters" -# Physical constants -R = pybamm.constants.R -F = pybamm.constants.F -T_ref = pybamm.Parameter("Reference temperature [K]") - -# Macroscale geometry -L_n = pybamm.geometric_parameters.L_n -L_s = pybamm.geometric_parameters.L_s -L_p = pybamm.geometric_parameters.L_p -L_x = pybamm.geometric_parameters.L_x -L_y = pybamm.geometric_parameters.L_y -L_z = pybamm.geometric_parameters.L_z -A_cc = pybamm.geometric_parameters.A_cc -A_cooling = pybamm.geometric_parameters.A_cooling -V_cell = pybamm.geometric_parameters.V_cell -W = L_y -H = L_z -A_cs = A_cc -delta = L_x / H - -# Electrical -I_typ = pybamm.electrical_parameters.I_typ -Q = pybamm.electrical_parameters.Q -C_rate = pybamm.electrical_parameters.C_rate -n_electrodes_parallel = pybamm.electrical_parameters.n_electrodes_parallel -i_typ = pybamm.electrical_parameters.i_typ -voltage_low_cut_dimensional = pybamm.electrical_parameters.voltage_low_cut_dimensional -voltage_high_cut_dimensional = pybamm.electrical_parameters.voltage_high_cut_dimensional - -# Electrolyte properties -c_e_typ = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") -V_w = pybamm.Parameter("Partial molar volume of water [m3.mol-1]") -V_plus = pybamm.Parameter("Partial molar volume of cations [m3.mol-1]") -V_minus = pybamm.Parameter("Partial molar volume of anions [m3.mol-1]") -V_e = V_minus + V_plus # Partial molar volume of electrolyte [m3.mol-1] -nu_plus = pybamm.Parameter("Cation stoichiometry") -nu_minus = pybamm.Parameter("Anion stoichiometry") -nu = nu_plus + nu_minus - -# Other species properties -c_ox_init_dim = pybamm.Parameter("Initial oxygen concentration [mol.m-3]") -c_ox_typ = c_e_typ # pybamm.Parameter("Typical oxygen concentration [mol.m-3]") - -# Microstructure -a_n_dim = pybamm.geometric_parameters.a_n_dim -a_p_dim = pybamm.geometric_parameters.a_p_dim -b_e_n = pybamm.geometric_parameters.b_e_n -b_e_s = pybamm.geometric_parameters.b_e_s -b_e_p = pybamm.geometric_parameters.b_e_p -b_s_n = pybamm.geometric_parameters.b_s_n -b_s_s = pybamm.geometric_parameters.b_s_s -b_s_p = pybamm.geometric_parameters.b_s_p -xi_n = pybamm.Parameter("Negative electrode morphological parameter") -xi_p = pybamm.Parameter("Positive electrode morphological parameter") -# no binder -epsilon_inactive_n = pybamm.Scalar(0) -epsilon_inactive_s = pybamm.Scalar(0) -epsilon_inactive_p = pybamm.Scalar(0) - -# Electrode properties -V_Pb = pybamm.Parameter("Molar volume of lead [m3.mol-1]") -V_PbO2 = pybamm.Parameter("Molar volume of lead-dioxide [m3.mol-1]") -V_PbSO4 = pybamm.Parameter("Molar volume of lead sulfate [m3.mol-1]") -DeltaVsurf_n = V_Pb - V_PbSO4 # Net Molar Volume consumed in neg electrode [m3.mol-1] -DeltaVsurf_p = V_PbSO4 - V_PbO2 # Net Molar Volume consumed in pos electrode [m3.mol-1] -d_n = pybamm.Parameter("Negative electrode pore size [m]") -d_p = pybamm.Parameter("Positive electrode pore size [m]") -eps_n_max = pybamm.Parameter("Maximum porosity of negative electrode") -eps_s_max = pybamm.Parameter("Maximum porosity of separator") -eps_p_max = pybamm.Parameter("Maximum porosity of positive electrode") -Q_n_max_dimensional = pybamm.Parameter("Negative electrode volumetric capacity [C.m-3]") -Q_p_max_dimensional = pybamm.Parameter("Positive electrode volumetric capacity [C.m-3]") -sigma_n_dim = pybamm.Parameter("Negative electrode conductivity [S.m-1]") -sigma_p_dim = pybamm.Parameter("Positive electrode conductivity [S.m-1]") -# In lead-acid the current collector and electrodes are the same (same conductivity) -# but we correct here for Bruggeman -sigma_cn_dimensional = sigma_n_dim * (1 - eps_n_max) ** b_s_n -sigma_cp_dimensional = sigma_p_dim * (1 - eps_p_max) ** b_s_p - -# Electrochemical reactions -# Main -s_plus_n_S_dim = pybamm.Parameter("Negative electrode cation signed stoichiometry") -s_plus_p_S_dim = pybamm.Parameter("Positive electrode cation signed stoichiometry") -ne_n_S = pybamm.Parameter("Negative electrode electrons in reaction") -ne_p_S = pybamm.Parameter("Positive electrode electrons in reaction") -C_dl_n_dimensional = pybamm.Parameter( - "Negative electrode double-layer capacity [F.m-2]" -) -C_dl_p_dimensional = pybamm.Parameter( - "Positive electrode double-layer capacity [F.m-2]" -) -# Oxygen -s_plus_Ox_dim = pybamm.Parameter("Signed stoichiometry of cations (oxygen reaction)") -s_w_Ox_dim = pybamm.Parameter("Signed stoichiometry of water (oxygen reaction)") -s_ox_Ox_dim = pybamm.Parameter("Signed stoichiometry of oxygen (oxygen reaction)") -ne_Ox = pybamm.Parameter("Electrons in oxygen reaction") -U_Ox_dim = pybamm.Parameter("Oxygen reference OCP vs SHE [V]") -# Hydrogen -s_plus_Hy_dim = pybamm.Parameter("Signed stoichiometry of cations (hydrogen reaction)") -s_hy_Hy_dim = pybamm.Parameter("Signed stoichiometry of hydrogen (hydrogen reaction)") -ne_Hy = pybamm.Parameter("Electrons in hydrogen reaction") -U_Hy_dim = pybamm.Parameter("Hydrogen reference OCP vs SHE [V]") - - -# Electrolyte properties -M_w = pybamm.Parameter("Molar mass of water [kg.mol-1]") -M_plus = pybamm.Parameter("Molar mass of cations [kg.mol-1]") -M_minus = pybamm.Parameter("Molar mass of anions [kg.mol-1]") -M_e = M_minus + M_plus # Molar mass of electrolyte [kg.mol-1] - -DeltaVliq_n = ( - V_minus - V_plus -) # Net Molar Volume consumed in electrolyte (neg) [m3.mol-1] -DeltaVliq_p = ( - 2 * V_w - V_minus - 3 * V_plus -) # Net Molar Volume consumed in electrolyte (neg) [m3.mol-1] - -# Other species properties -D_ox_dimensional = pybamm.Parameter("Oxygen diffusivity [m2.s-1]") -D_hy_dimensional = pybamm.Parameter("Hydrogen diffusivity [m2.s-1]") -V_ox = pybamm.Parameter("Partial molar volume of oxygen molecules [m3.mol-1]") -V_hy = pybamm.Parameter("Partial molar volume of hydrogen molecules [m3.mol-1]") -M_ox = pybamm.Parameter("Molar mass of oxygen molecules [kg.mol-1]") -M_hy = pybamm.Parameter("Molar mass of hydrogen molecules [kg.mol-1]") - -# Electrode properties -V_Pb = pybamm.Parameter("Molar volume of lead [m3.mol-1]") -V_PbO2 = pybamm.Parameter("Molar volume of lead-dioxide [m3.mol-1]") -V_PbSO4 = pybamm.Parameter("Molar volume of lead sulfate [m3.mol-1]") -DeltaVsurf_n = V_Pb - V_PbSO4 # Net Molar Volume consumed in neg electrode [m3.mol-1] -DeltaVsurf_p = V_PbSO4 - V_PbO2 # Net Molar Volume consumed in pos electrode [m3.mol-1] -d_n = pybamm.Parameter("Negative electrode pore size [m]") -d_p = pybamm.Parameter("Positive electrode pore size [m]") -eps_n_max = pybamm.Parameter("Maximum porosity of negative electrode") -eps_s_max = pybamm.Parameter("Maximum porosity of separator") -eps_p_max = pybamm.Parameter("Maximum porosity of positive electrode") -Q_n_max_dimensional = pybamm.Parameter("Negative electrode volumetric capacity [C.m-3]") -Q_p_max_dimensional = pybamm.Parameter("Positive electrode volumetric capacity [C.m-3]") - - -# thermal -Delta_T = pybamm.thermal_parameters.Delta_T - -# SEI parameters (for compatibility) -R_sei_dimensional = pybamm.Scalar(0) -beta_sei_n = pybamm.Scalar(0) - -# -------------------------------------------------------------------------------------- -"2. Dimensional Functions" - - -def t_plus(c_e): - "Dimensionless transference number (i.e. c_e is dimensionless)" - inputs = {"Electrolyte concentration [mol.m-3]": c_e * c_e_typ} - return pybamm.FunctionParameter("Cation transference number", inputs) - - -def D_e_dimensional(c_e, T): - "Dimensional diffusivity in electrolyte" - inputs = {"Electrolyte concentration [mol.m-3]": c_e} - return pybamm.FunctionParameter("Electrolyte diffusivity [m2.s-1]", inputs) - - -def kappa_e_dimensional(c_e, T): - "Dimensional electrolyte conductivity" - inputs = {"Electrolyte concentration [mol.m-3]": c_e} - return pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) - - -def chi_dimensional(c_e): - inputs = {"Electrolyte concentration [mol.m-3]": c_e} - return pybamm.FunctionParameter("Darken thermodynamic factor", inputs) - - -def c_T(c_e, c_ox=0, c_hy=0): - """ - Total liquid molarity [mol.m-3], from thermodynamics. c_k in [mol.m-3]. - """ - return (1 + (2 * V_w - V_e) * c_e + (V_w - V_ox) * c_ox + (V_w - V_hy) * c_hy) / V_w - - -def rho_dimensional(c_e, c_ox=0, c_hy=0): - """ - Dimensional density of electrolyte [kg.m-3], from thermodynamics. c_k in [mol.m-3]. - """ - return ( - M_w / V_w - + (M_e - V_e * M_w / V_w) * c_e - + (M_ox - V_ox * M_w / V_w) * c_ox - + (M_hy - V_hy * M_w / V_w) * c_hy - ) - - -def m_dimensional(c_e): - """ - Dimensional electrolyte molar mass [mol.kg-1], from thermodynamics. - c_e in [mol.m-3]. - """ - return c_e * V_w / ((1 - c_e * V_e) * M_w) - - -def mu_dimensional(c_e): - """ - Dimensional viscosity of electrolyte [kg.m-1.s-1]. - """ - inputs = {"Electrolyte concentration [mol.m-3]": c_e} - return pybamm.FunctionParameter("Electrolyte viscosity [kg.m-1.s-1]", inputs) - - -def U_n_dimensional(c_e, T): - "Dimensional open-circuit voltage in the negative electrode [V]" - inputs = {"Electrolyte molar mass [mol.kg-1]": m_dimensional(c_e)} - return pybamm.FunctionParameter( - "Negative electrode open-circuit potential [V]", inputs - ) - - -def U_p_dimensional(c_e, T): - "Dimensional open-circuit voltage in the positive electrode [V]" - inputs = {"Electrolyte molar mass [mol.kg-1]": m_dimensional(c_e)} - return pybamm.FunctionParameter( - "Positive electrode open-circuit potential [V]", inputs - ) - - -def j0_n_dimensional(c_e, T): - "Dimensional negative electrode exchange-current density [A.m-2]" - inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - return pybamm.FunctionParameter( - "Negative electrode exchange-current density [A.m-2]", inputs - ) - - -def j0_p_dimensional(c_e, T): - "Dimensional positive electrode exchange-current density [A.m-2]" - inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - return pybamm.FunctionParameter( - "Positive electrode exchange-current density [A.m-2]", inputs - ) - - -def j0_p_Ox_dimensional(c_e, T): - "Dimensional oxygen positive electrode exchange-current density [A.m-2]" - inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - return pybamm.FunctionParameter( - "Positive electrode oxygen exchange-current density [A.m-2]", inputs - ) - - -D_e_typ = D_e_dimensional(c_e_typ, T_ref) -rho_typ = rho_dimensional(c_e_typ) -mu_typ = mu_dimensional(c_e_typ) - -inputs = {"Electrolyte concentration [mol.m-3]": pybamm.Scalar(1)} -U_n_ref = pybamm.FunctionParameter( - "Negative electrode open-circuit potential [V]", inputs -) -inputs = {"Electrolyte concentration [mol.m-3]": pybamm.Scalar(1)} -U_p_ref = pybamm.FunctionParameter( - "Positive electrode open-circuit potential [V]", inputs -) - - -# -------------------------------------------------------------------------------------- -"3. Scales" - -# concentrations -electrolyte_concentration_scale = c_e_typ - -# electrical -potential_scale = R * T_ref / F -current_scale = i_typ -j_scale_n = i_typ / (a_n_dim * L_x) -j_scale_p = i_typ / (a_p_dim * L_x) - -velocity_scale = i_typ / (c_e_typ * F) # Reaction velocity scale - -# Discharge timescale -tau_discharge = F * c_e_typ * L_x / i_typ - -# Electrolyte diffusion timescale -tau_diffusion_e = L_x ** 2 / D_e_typ - -# Thermal diffusion timescale -tau_th_yz = pybamm.thermal_parameters.tau_th_yz - -# Choose discharge timescale -timescale = tau_discharge - -# -------------------------------------------------------------------------------------- -"4. Dimensionless Parameters" -# Timescale ratios -C_th = tau_th_yz / tau_discharge - -# Macroscale Geometry -l_n = pybamm.geometric_parameters.l_n -l_s = pybamm.geometric_parameters.l_s -l_p = pybamm.geometric_parameters.l_p -l_x = pybamm.geometric_parameters.l_x -l_y = pybamm.geometric_parameters.l_y -l_z = pybamm.geometric_parameters.l_z -a_cc = pybamm.geometric_parameters.a_cc -a_cooling = pybamm.geometric_parameters.a_cooling -v_cell = pybamm.geometric_parameters.v_cell -l = pybamm.geometric_parameters.l -delta = pybamm.geometric_parameters.delta -# In lead-acid the current collector and electrodes are the same (same thickness) -l_cn = l_n -l_cp = l_p - -# Tab geometry -l_tab_n = pybamm.geometric_parameters.l_tab_n -centre_y_tab_n = pybamm.geometric_parameters.centre_y_tab_n -centre_z_tab_n = pybamm.geometric_parameters.centre_z_tab_n -l_tab_p = pybamm.geometric_parameters.l_tab_p -centre_y_tab_p = pybamm.geometric_parameters.centre_y_tab_p -centre_z_tab_p = pybamm.geometric_parameters.centre_z_tab_p - -# Diffusive kinematic relationship coefficient -omega_i = c_e_typ * M_e / rho_typ * (t_plus(1) + M_minus / M_e) -# Migrative kinematic relationship coefficient (electrolyte) -omega_c_e = c_e_typ * M_e / rho_typ * (1 - M_w * V_e / V_w * M_e) -C_e = tau_diffusion_e / tau_discharge -# Ratio of viscous pressure scale to osmotic pressure scale (electrolyte) -pi_os_e = mu_typ * velocity_scale * L_x / (d_n ** 2 * R * T_ref * c_e_typ) -# ratio of electrolyte concentration to electrode concentration, undefined -gamma_e = pybamm.Scalar(1) -# Reynolds number -Re = rho_typ * velocity_scale * L_x / mu_typ - -# Other species properties -# Oxygen -curlyD_ox = D_ox_dimensional / D_e_typ -omega_c_ox = c_e_typ * M_ox / rho_typ * (1 - M_w * V_ox / V_w * M_ox) -# Hydrogen -curlyD_hy = D_hy_dimensional / D_e_typ -omega_c_hy = c_e_typ * M_hy / rho_typ * (1 - M_w * V_hy / V_w * M_hy) - -# Electrode Properties -sigma_cn = sigma_cn_dimensional * potential_scale / i_typ / L_x -sigma_n = sigma_n_dim * potential_scale / current_scale / L_x -sigma_p = sigma_p_dim * potential_scale / current_scale / L_x -sigma_cp = sigma_cp_dimensional * potential_scale / i_typ / L_x -sigma_n_prime = sigma_n * delta ** 2 -sigma_p_prime = sigma_p * delta ** 2 -sigma_cn_prime = sigma_cn * delta ** 2 -sigma_cp_prime = sigma_cp * delta ** 2 -delta_pore_n = 1 / (a_n_dim * L_x) -delta_pore_p = 1 / (a_p_dim * L_x) -Q_n_max = Q_n_max_dimensional / (c_e_typ * F) -Q_p_max = Q_p_max_dimensional / (c_e_typ * F) -beta_U_n = 1 / Q_n_max -beta_U_p = -1 / Q_p_max - -# Electrochemical reactions -# Main -s_plus_n_S = s_plus_n_S_dim / ne_n_S -s_plus_p_S = s_plus_p_S_dim / ne_p_S -s_plus_S = pybamm.Concatenation( - pybamm.FullBroadcast(s_plus_n_S, ["negative electrode"], "current collector"), - pybamm.FullBroadcast(0, ["separator"], "current collector"), - pybamm.FullBroadcast(s_plus_p_S, ["positive electrode"], "current collector"), -) -C_dl_n = C_dl_n_dimensional * potential_scale / j_scale_n / tau_discharge -C_dl_p = C_dl_p_dimensional * potential_scale / j_scale_p / tau_discharge -ne_n = ne_n_S -ne_p = ne_p_S -# Oxygen -s_plus_Ox = s_plus_Ox_dim / ne_Ox -s_w_Ox = s_w_Ox_dim / ne_Ox -s_ox_Ox = s_ox_Ox_dim / ne_Ox -# j0_n_Ox_ref = j0_n_Ox_ref_dimensional / j_scale_n -U_n_Ox = (U_Ox_dim - U_n_ref) / potential_scale -U_p_Ox = (U_Ox_dim - U_p_ref) / potential_scale -# Hydrogen -s_plus_Hy = s_plus_Hy_dim / ne_Hy -s_hy_Hy = s_hy_Hy_dim / ne_Hy -# j0_n_Hy_ref = j0_n_Hy_ref_dimensional / j_scale_n -# j0_p_Hy_ref = j0_p_Hy_ref_dimensional / j_scale_p -U_n_Hy = (U_Hy_dim - U_n_ref) / potential_scale -U_p_Hy = (U_Hy_dim - U_p_ref) / potential_scale - -# Electrolyte properties -beta_surf_n = -c_e_typ * DeltaVsurf_n / ne_n_S # Molar volume change (lead) -beta_surf_p = -c_e_typ * DeltaVsurf_p / ne_p_S # Molar volume change (lead dioxide) -beta_surf = pybamm.Concatenation( - pybamm.FullBroadcast(beta_surf_n, ["negative electrode"], "current collector"), - pybamm.FullBroadcast(0, ["separator"], "current collector"), - pybamm.FullBroadcast(beta_surf_p, ["positive electrode"], "current collector"), -) -beta_liq_n = -c_e_typ * DeltaVliq_n / ne_n_S # Molar volume change (electrolyte, neg) -beta_liq_p = -c_e_typ * DeltaVliq_p / ne_p_S # Molar volume change (electrolyte, pos) -beta_n = (beta_surf_n + beta_liq_n) * pybamm.Parameter("Volume change factor") -beta_p = (beta_surf_p + beta_liq_p) * pybamm.Parameter("Volume change factor") -beta = pybamm.Concatenation( - pybamm.FullBroadcast(beta_n, "negative electrode", "current collector"), - pybamm.FullBroadcast(0, "separator", "current collector"), - pybamm.FullBroadcast(beta_p, "positive electrode", "current collector"), -) -beta_Ox = -c_e_typ * (s_plus_Ox * V_plus + s_w_Ox * V_w + s_ox_Ox * V_ox) -beta_Hy = -c_e_typ * (s_plus_Hy * V_plus + s_hy_Hy * V_hy) - -# Electrical -voltage_low_cut = (voltage_low_cut_dimensional - (U_p_ref - U_n_ref)) / potential_scale -voltage_high_cut = ( - voltage_high_cut_dimensional - (U_p_ref - U_n_ref) -) / potential_scale - -# Electrolyte volumetric capacity -Q_e_max = (l_n * eps_n_max + l_s * eps_s_max + l_p * eps_p_max) / ( - s_plus_p_S - s_plus_n_S -) -Q_e_max_dimensional = Q_e_max * c_e_typ * F -capacity = Q_e_max_dimensional * n_electrodes_parallel * A_cs * L_x - -# Thermal -rho_cn = pybamm.thermal_parameters.rho_cn -rho_n = pybamm.thermal_parameters.rho_n -rho_s = pybamm.thermal_parameters.rho_s -rho_p = pybamm.thermal_parameters.rho_p -rho_cp = pybamm.thermal_parameters.rho_cp - -rho_k = pybamm.thermal_parameters.rho_k -# effective volumetric heat capacity -rho = (rho_cn * l_cn + rho_n * l_n + rho_s * l_s + rho_p * l_p + rho_cp * l_cp) / l - -lambda_cn = pybamm.thermal_parameters.lambda_cn -lambda_n = pybamm.thermal_parameters.lambda_n -lambda_s = pybamm.thermal_parameters.lambda_s -lambda_p = pybamm.thermal_parameters.lambda_p -lambda_cp = pybamm.thermal_parameters.lambda_cp - -lambda_k = pybamm.thermal_parameters.lambda_k - -Theta = pybamm.thermal_parameters.Theta - -h_edge = pybamm.thermal_parameters.h_edge -h_tab_n = pybamm.thermal_parameters.h_tab_n -h_tab_p = pybamm.thermal_parameters.h_tab_p -h_cn = pybamm.thermal_parameters.h_cn -h_cp = pybamm.thermal_parameters.h_cp -h_total = pybamm.thermal_parameters.h_total - -B = ( - i_typ - * R - * T_ref - * tau_th_yz - / (pybamm.thermal_parameters.rho_eff_dim * F * Delta_T * L_x) -) - -T_amb_dim = pybamm.thermal_parameters.T_amb_dim -T_amb = pybamm.thermal_parameters.T_amb - -# Initial conditions -T_init = pybamm.thermal_parameters.T_init -q_init = pybamm.Parameter("Initial State of Charge") -c_e_init = q_init -c_ox_init = c_ox_init_dim / c_ox_typ -epsilon_n_init = eps_n_max - beta_surf_n * Q_e_max / l_n * (1 - q_init) -epsilon_s_init = eps_s_max -epsilon_p_init = eps_p_max + beta_surf_p * Q_e_max / l_p * (1 - q_init) -epsilon_init = pybamm.Concatenation( - pybamm.FullBroadcast(epsilon_n_init, ["negative electrode"], "current collector"), - pybamm.FullBroadcast(epsilon_s_init, ["separator"], "current collector"), - pybamm.FullBroadcast(epsilon_p_init, ["positive electrode"], "current collector"), -) -curlyU_n_init = Q_e_max * (1.2 - q_init) / (Q_n_max * l_n) -curlyU_p_init = Q_e_max * (1.2 - q_init) / (Q_p_max * l_p) - - -# hack to make consistent ic with lithium-ion -def c_n_init(x): - return c_e_init - - -def c_p_init(x): - return c_e_init - - -# -------------------------------------------------------------------------------------- -"5. Dimensionless Functions" - - -def D_e(c_e, T): - "Dimensionless electrolyte diffusivity" - c_e_dimensional = c_e * c_e_typ - return D_e_dimensional(c_e_dimensional, T_ref) / D_e_typ - - -def kappa_e(c_e, T): - "Dimensionless electrolyte conductivity" - c_e_dimensional = c_e * c_e_typ - kappa_scale = F ** 2 * D_e_typ * c_e_typ / (R * T_ref) - return kappa_e_dimensional(c_e_dimensional, T_ref) / kappa_scale - - -# (1-2*t_plus) is for Nernst-Planck -# 2*(1-t_plus) for Stefan-Maxwell -def chi(c_e, c_ox=0, c_hy=0): - return ( - chi_dimensional(c_e_typ * c_e) - * (2 * (1 - t_plus(c_e))) - / (V_w * c_T(c_e_typ * c_e, c_e_typ * c_ox, c_e_typ * c_hy)) - ) - - -def U_n(c_e_n, T): - "Dimensionless open-circuit voltage in the negative electrode" - c_e_n_dimensional = c_e_n * c_e_typ - T_dim = Delta_T * T + T_ref - return (U_n_dimensional(c_e_n_dimensional, T_dim) - U_n_ref) / potential_scale - - -def U_p(c_e_p, T): - "Dimensionless open-circuit voltage in the positive electrode" - c_e_p_dimensional = c_e_p * c_e_typ - T_dim = Delta_T * T + T_ref - return (U_p_dimensional(c_e_p_dimensional, T_dim) - U_p_ref) / potential_scale - - -def j0_n(c_e, T): - "Dimensionless exchange-current density in the negative electrode" - c_e_dim = c_e * c_e_typ - T_dim = Delta_T * T + T_ref - return j0_n_dimensional(c_e_dim, T_dim) / j_scale_n - - -def j0_p(c_e, T): - "Dimensionless exchange-current density in the positive electrode" - c_e_dim = c_e * c_e_typ - T_dim = Delta_T * T + T_ref - return j0_p_dimensional(c_e_dim, T_dim) / j_scale_p - - -def j0_p_Ox(c_e, T): - "Dimensionless oxygen exchange-current density in the positive electrode" - c_e_dim = c_e * c_e_typ - T_dim = Delta_T * T + T_ref - return j0_p_Ox_dimensional(c_e_dim, T_dim) / j_scale_p - - -# -------------------------------------------------------------------------------------- -# 6. Input current and voltage - -dimensional_current_with_time = pybamm.FunctionParameter( - "Current function [A]", {"Time [s]": pybamm.t * timescale} -) -dimensional_current_density_with_time = dimensional_current_with_time / ( - n_electrodes_parallel * pybamm.geometric_parameters.A_cc -) -current_with_time = ( - dimensional_current_with_time / I_typ * pybamm.Function(np.sign, I_typ) -) - - -"Remove any temporary variables" -del inputs diff --git a/pybamm/parameters/standard_parameters_lithium_ion.py b/pybamm/parameters/standard_parameters_lithium_ion.py deleted file mode 100644 index aea8467024..0000000000 --- a/pybamm/parameters/standard_parameters_lithium_ion.py +++ /dev/null @@ -1,610 +0,0 @@ -# -# Standard parameters for lithium-ion battery models -# -""" -Standard parameters for lithium-ion battery models -""" -import pybamm -import numpy as np - - -# -------------------------------------------------------------------------------------- -"File Layout:" -# 1. Dimensional Parameters -# 2. Dimensional Functions -# 3. Scalings -# 4. Dimensionless Parameters -# 5. Dimensionless Functions -# 6. Input Current - -# -------------------------------------------------------------------------------------- -"1. Dimensional Parameters" - -# Physical constants -R = pybamm.constants.R -F = pybamm.constants.F -T_ref = pybamm.Parameter("Reference temperature [K]") - -# Macroscale geometry -L_cn = pybamm.geometric_parameters.L_cn -L_n = pybamm.geometric_parameters.L_n -L_s = pybamm.geometric_parameters.L_s -L_p = pybamm.geometric_parameters.L_p -L_cp = pybamm.geometric_parameters.L_cp -L_x = pybamm.geometric_parameters.L_x -L_y = pybamm.geometric_parameters.L_y -L_z = pybamm.geometric_parameters.L_z -L = pybamm.geometric_parameters.L -A_cc = pybamm.geometric_parameters.A_cc -A_cooling = pybamm.geometric_parameters.A_cooling -V_cell = pybamm.geometric_parameters.V_cell - -# Tab geometry -L_tab_n = pybamm.geometric_parameters.L_tab_n -Centre_y_tab_n = pybamm.geometric_parameters.Centre_y_tab_n -Centre_z_tab_n = pybamm.geometric_parameters.Centre_z_tab_n -L_tab_p = pybamm.geometric_parameters.L_tab_p -Centre_y_tab_p = pybamm.geometric_parameters.Centre_y_tab_p -Centre_z_tab_p = pybamm.geometric_parameters.Centre_z_tab_p -A_tab_n = pybamm.geometric_parameters.A_tab_n -A_tab_p = pybamm.geometric_parameters.A_tab_p - -# Electrical -I_typ = pybamm.electrical_parameters.I_typ -Q = pybamm.electrical_parameters.Q -C_rate = pybamm.electrical_parameters.C_rate -n_electrodes_parallel = pybamm.electrical_parameters.n_electrodes_parallel -i_typ = pybamm.electrical_parameters.i_typ -voltage_low_cut_dimensional = pybamm.electrical_parameters.voltage_low_cut_dimensional -voltage_high_cut_dimensional = pybamm.electrical_parameters.voltage_high_cut_dimensional - -# Electrolyte properties -c_e_typ = pybamm.Parameter("Typical electrolyte concentration [mol.m-3]") - -# Electrode properties -c_n_max = pybamm.Parameter("Maximum concentration in negative electrode [mol.m-3]") -c_p_max = pybamm.Parameter("Maximum concentration in positive electrode [mol.m-3]") -sigma_cn_dimensional = pybamm.Parameter( - "Negative current collector conductivity [S.m-1]" -) -sigma_n_dim = pybamm.Parameter("Negative electrode conductivity [S.m-1]") -sigma_p_dim = pybamm.Parameter("Positive electrode conductivity [S.m-1]") -sigma_cp_dimensional = pybamm.Parameter( - "Positive current collector conductivity [S.m-1]" -) - -# Microscale geometry -a_n_dim = pybamm.geometric_parameters.a_n_dim -a_p_dim = pybamm.geometric_parameters.a_p_dim -a_k_dim = pybamm.Concatenation( - pybamm.FullBroadcast(a_n_dim, ["negative electrode"], "current collector"), - pybamm.FullBroadcast(0, ["separator"], "current collector"), - pybamm.FullBroadcast(a_p_dim, ["positive electrode"], "current collector"), -) -R_n = pybamm.geometric_parameters.R_n -R_p = pybamm.geometric_parameters.R_p -b_e_n = pybamm.geometric_parameters.b_e_n -b_e_s = pybamm.geometric_parameters.b_e_s -b_e_p = pybamm.geometric_parameters.b_e_p -b_s_n = pybamm.geometric_parameters.b_s_n -b_s_s = pybamm.geometric_parameters.b_s_s -b_s_p = pybamm.geometric_parameters.b_s_p - -# Electrochemical reactions -ne_n = pybamm.Parameter("Negative electrode electrons in reaction") -ne_p = pybamm.Parameter("Positive electrode electrons in reaction") -C_dl_n_dimensional = pybamm.Parameter( - "Negative electrode double-layer capacity [F.m-2]" -) -C_dl_p_dimensional = pybamm.Parameter( - "Positive electrode double-layer capacity [F.m-2]" -) - - -# SEI parameters - -V_bar_inner_dimensional = pybamm.Parameter("Inner SEI partial molar volume [m3.mol-1]") -V_bar_outer_dimensional = pybamm.Parameter("Outer SEI partial molar volume [m3.mol-1]") - -m_sei_dimensional = pybamm.Parameter("SEI reaction exchange current density [A.m-2]") - -R_sei_dimensional = pybamm.Parameter("SEI resistivity [Ohm.m]") - -D_sol_dimensional = pybamm.Parameter("Outer SEI solvent diffusivity [m2.s-1]") -c_sol_dimensional = pybamm.Parameter("Bulk solvent concentration [mol.m-3]") - -m_ratio = pybamm.Parameter("Ratio of inner and outer SEI exchange current densities") - -U_inner_dimensional = pybamm.Parameter("Inner SEI open-circuit potential [V]") -U_outer_dimensional = pybamm.Parameter("Outer SEI open-circuit potential [V]") - -kappa_inner_dimensional = pybamm.Parameter("Inner SEI electron conductivity [S.m-1]") - -D_li_dimensional = pybamm.Parameter( - "Inner SEI lithium interstitial diffusivity [m2.s-1]" -) - -c_li_0_dimensional = pybamm.Parameter( - "Lithium interstitial reference concentration [mol.m-3]" -) - -L_inner_0_dim = pybamm.Parameter("Initial inner SEI thickness [m]") -L_outer_0_dim = pybamm.Parameter("Initial outer SEI thickness [m]") - -L_sei_0_dim = L_inner_0_dim + L_outer_0_dim - -# EC reaction - -c_ec_0_dim = pybamm.Parameter("EC initial concentration in electrolyte [mol.m-3]") -D_ec_dim = pybamm.Parameter("EC diffusivity [m2.s-1]") -k_sei_dim = pybamm.Parameter("SEI kinetic rate constant [m.s-1]") -U_sei_dim = pybamm.Parameter("SEI open-circuit potential [V]") - -# Initial conditions -c_e_init_dimensional = pybamm.Parameter( - "Initial concentration in electrolyte [mol.m-3]" -) - - -def c_n_init_dimensional(x): - "Initial concentration as a function of dimensionless position x" - inputs = {"Dimensionless through-cell position (x_n)": x} - return pybamm.FunctionParameter( - "Initial concentration in negative electrode [mol.m-3]", inputs - ) - - -def c_p_init_dimensional(x): - "Initial concentration as a function of dimensionless position x" - inputs = {"Dimensionless through-cell position (x_p)": x} - return pybamm.FunctionParameter( - "Initial concentration in positive electrode [mol.m-3]", inputs - ) - - -# thermal -Delta_T = pybamm.thermal_parameters.Delta_T - -# velocity scale -velocity_scale = pybamm.Scalar(1) - -# -------------------------------------------------------------------------------------- -"2. Dimensional Functions" - - -def D_e_dimensional(c_e, T): - "Dimensional diffusivity in electrolyte" - inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - return pybamm.FunctionParameter("Electrolyte diffusivity [m2.s-1]", inputs) - - -def kappa_e_dimensional(c_e, T): - "Dimensional electrolyte conductivity" - inputs = {"Electrolyte concentration [mol.m-3]": c_e, "Temperature [K]": T} - return pybamm.FunctionParameter("Electrolyte conductivity [S.m-1]", inputs) - - -def D_n_dimensional(sto, T): - """Dimensional diffusivity in negative particle. Note this is defined as a - function of stochiometry""" - inputs = {"Negative particle stoichiometry": sto, "Temperature [K]": T} - return pybamm.FunctionParameter("Negative electrode diffusivity [m2.s-1]", inputs) - - -def D_p_dimensional(sto, T): - """Dimensional diffusivity in positive particle. Note this is defined as a - function of stochiometry""" - inputs = {"Positive particle stoichiometry": sto, "Temperature [K]": T} - return pybamm.FunctionParameter("Positive electrode diffusivity [m2.s-1]", inputs) - - -def j0_n_dimensional(c_e, c_s_surf, T): - "Dimensional negative exchange-current density [A.m-2]" - inputs = { - "Electrolyte concentration [mol.m-3]": c_e, - "Negative particle surface concentration [mol.m-3]": c_s_surf, - "Temperature [K]": T, - } - return pybamm.FunctionParameter( - "Negative electrode exchange-current density [A.m-2]", inputs - ) - - -def j0_p_dimensional(c_e, c_s_surf, T): - "Dimensional negative exchange-current density [A.m-2]" - inputs = { - "Electrolyte concentration [mol.m-3]": c_e, - "Positive particle surface concentration [mol.m-3]": c_s_surf, - "Temperature [K]": T, - } - return pybamm.FunctionParameter( - "Positive electrode exchange-current density [A.m-2]", inputs - ) - - -def dUdT_n_dimensional(sto): - """ - Dimensional entropic change of the negative electrode open-circuit potential [V.K-1] - """ - inputs = { - "Negative particle stoichiometry": sto, - "Max negative particle concentration [mol.m-3]": c_n_max, - } - return pybamm.FunctionParameter( - "Negative electrode OCP entropic change [V.K-1]", inputs - ) - - -def dUdT_p_dimensional(sto): - """ - Dimensional entropic change of the positive electrode open-circuit potential [V.K-1] - """ - inputs = { - "Positive particle stoichiometry": sto, - "Max positive particle concentration [mol.m-3]": c_p_max, - } - return pybamm.FunctionParameter( - "Positive electrode OCP entropic change [V.K-1]", inputs - ) - - -def U_n_dimensional(sto, T): - "Dimensional open-circuit potential in the negative electrode [V]" - inputs = {"Negative particle stoichiometry": sto} - u_ref = pybamm.FunctionParameter("Negative electrode OCP [V]", inputs) - return u_ref + (T - T_ref) * dUdT_n_dimensional(sto) - - -def U_p_dimensional(sto, T): - "Dimensional open-circuit potential in the positive electrode [V]" - inputs = {"Positive particle stoichiometry": sto} - u_ref = pybamm.FunctionParameter("Positive electrode OCP [V]", inputs) - return u_ref + (T - T_ref) * dUdT_p_dimensional(sto) - - -# Reference OCP based on initial concentration at current collector/electrode interface -sto_n_init = c_n_init_dimensional(0) / c_n_max -U_n_ref = U_n_dimensional(sto_n_init, T_ref) - -# Reference OCP based on initial concentration at current collector/electrode interface -sto_p_init = c_p_init_dimensional(1) / c_p_max -U_p_ref = U_p_dimensional(sto_p_init, T_ref) - -j0_n_ref_dimensional = j0_n_dimensional(c_e_typ, c_n_max / 2, T_ref) * 2 -j0_p_ref_dimensional = j0_p_dimensional(c_e_typ, c_p_max / 2, T_ref) * 2 - -# ------------------------------------------------------------------------------------- -"3. Scales" -# concentration -electrolyte_concentration_scale = c_e_typ -negative_particle_concentration_scale = c_n_max -positive_particle_concentration_scale = c_n_max - -# electrical -potential_scale = R * T_ref / F -current_scale = i_typ -j_scale_n = i_typ / (a_n_dim * L_x) -j_scale_p = i_typ / (a_p_dim * L_x) - -# Discharge timescale -tau_discharge = F * c_n_max * L_x / i_typ - -# Reaction timescales -tau_r_n = F * c_n_max / (j0_n_ref_dimensional * a_n_dim) -tau_r_p = F * c_p_max / (j0_p_ref_dimensional * a_p_dim) - -# Electrolyte diffusion timescale -D_e_typ = D_e_dimensional(c_e_typ, T_ref) -tau_diffusion_e = L_x ** 2 / D_e_typ - -# Particle diffusion timescales -tau_diffusion_n = R_n ** 2 / D_n_dimensional(pybamm.Scalar(1), T_ref) -tau_diffusion_p = R_p ** 2 / D_p_dimensional(pybamm.Scalar(1), T_ref) - -# Thermal diffusion timescale -tau_th_yz = pybamm.thermal_parameters.tau_th_yz - -# Choose discharge timescale -timescale = tau_discharge - -# -------------------------------------------------------------------------------------- -"4. Dimensionless Parameters" -# Timescale ratios -C_n = tau_diffusion_n / tau_discharge -C_p = tau_diffusion_p / tau_discharge -C_e = tau_diffusion_e / tau_discharge -C_r_n = tau_r_n / tau_discharge -C_r_p = tau_r_p / tau_discharge -C_th = tau_th_yz / tau_discharge - -# Concentration ratios -gamma_e = c_e_typ / c_n_max -gamma_p = c_p_max / c_n_max - -# Macroscale Geometry -l_cn = pybamm.geometric_parameters.l_cn -l_n = pybamm.geometric_parameters.l_n -l_s = pybamm.geometric_parameters.l_s -l_p = pybamm.geometric_parameters.l_p -l_cp = pybamm.geometric_parameters.l_cp -l_x = pybamm.geometric_parameters.l_x -l_y = pybamm.geometric_parameters.l_y -l_z = pybamm.geometric_parameters.l_z -a_cc = pybamm.geometric_parameters.a_cc -a_cooling = pybamm.geometric_parameters.a_cooling -v_cell = pybamm.geometric_parameters.v_cell -l = pybamm.geometric_parameters.l -delta = pybamm.geometric_parameters.delta - -# Tab geometry -l_tab_n = pybamm.geometric_parameters.l_tab_n -centre_y_tab_n = pybamm.geometric_parameters.centre_y_tab_n -centre_z_tab_n = pybamm.geometric_parameters.centre_z_tab_n -l_tab_p = pybamm.geometric_parameters.l_tab_p -centre_y_tab_p = pybamm.geometric_parameters.centre_y_tab_p -centre_z_tab_p = pybamm.geometric_parameters.centre_z_tab_p - -# Microscale geometry - -inputs = {"Through-cell distance (x_n) [m]": pybamm.standard_spatial_vars.x_n} -epsilon_n = pybamm.FunctionParameter("Negative electrode porosity", inputs) - -inputs = {"Through-cell distance (x_s) [m]": pybamm.standard_spatial_vars.x_s} -epsilon_s = pybamm.FunctionParameter("Separator porosity", inputs) - -inputs = {"Through-cell distance (x_p) [m]": pybamm.standard_spatial_vars.x_p} -epsilon_p = pybamm.FunctionParameter("Positive electrode porosity", inputs) - -epsilon = pybamm.Concatenation(epsilon_n, epsilon_s, epsilon_p) -epsilon_n_init = pybamm.Parameter("Negative electrode porosity") -epsilon_s_init = pybamm.Parameter("Separator porosity") -epsilon_p_init = pybamm.Parameter("Positive electrode porosity") -epsilon_init = pybamm.Concatenation(epsilon_n, epsilon_s, epsilon_p) -epsilon_s_n = pybamm.Parameter("Negative electrode active material volume fraction") -epsilon_s_p = pybamm.Parameter("Positive electrode active material volume fraction") -epsilon_inactive_n = 1 - epsilon_n - epsilon_s_n -epsilon_inactive_s = 1 - epsilon_s -epsilon_inactive_p = 1 - epsilon_p - epsilon_s_p -a_n = a_n_dim * R_n -a_p = a_p_dim * R_p - -# Electrode Properties -sigma_cn = sigma_cn_dimensional * potential_scale / i_typ / L_x -sigma_n = sigma_n_dim * potential_scale / i_typ / L_x -sigma_p = sigma_p_dim * potential_scale / i_typ / L_x -sigma_cp = sigma_cp_dimensional * potential_scale / i_typ / L_x -sigma_cn_prime = sigma_cn * delta ** 2 -sigma_n_prime = sigma_n * delta -sigma_p_prime = sigma_p * delta -sigma_cp_prime = sigma_cp * delta ** 2 -sigma_cn_dbl_prime = sigma_cn_prime * delta -sigma_cp_dbl_prime = sigma_cp_prime * delta -# should rename this to avoid confusion with Butler-Volmer -alpha = 1 / (sigma_cn * delta ** 2 * l_cn) + 1 / (sigma_cp * delta ** 2 * l_cp) -alpha_prime = alpha / delta - -# Electrolyte Properties - - -def t_plus(c_e): - "Dimensionless transference number (i.e. c_e is dimensionless)" - inputs = {"Electrolyte concentration [mol.m-3]": c_e * c_e_typ} - return pybamm.FunctionParameter("Cation transference number", inputs) - - -def one_plus_dlnf_dlnc(c_e): - inputs = {"Electrolyte concentration [mol.m-3]": c_e * c_e_typ} - return pybamm.FunctionParameter("1 + dlnf/dlnc", inputs) - - -beta_surf = pybamm.Scalar(0) -beta_surf_n = pybamm.Scalar(0) -beta_surf_p = pybamm.Scalar(0) - - -# (1-2*t_plus) is for Nernst-Planck -# 2*(1-t_plus) for Stefan-Maxwell -# Bizeray et al (2016) "Resolving a discrepancy ..." -def chi(c_e): - return (2 * (1 - t_plus(c_e))) * (one_plus_dlnf_dlnc(c_e)) - - -# Electrochemical Reactions -C_dl_n = C_dl_n_dimensional * potential_scale / j_scale_n / tau_discharge -C_dl_p = C_dl_p_dimensional * potential_scale / j_scale_p / tau_discharge - -# Electrical -voltage_low_cut = (voltage_low_cut_dimensional - (U_p_ref - U_n_ref)) / potential_scale -voltage_high_cut = ( - voltage_high_cut_dimensional - (U_p_ref - U_n_ref) -) / potential_scale - -# Thermal -rho_cn = pybamm.thermal_parameters.rho_cn -rho_n = pybamm.thermal_parameters.rho_n -rho_s = pybamm.thermal_parameters.rho_s -rho_p = pybamm.thermal_parameters.rho_p -rho_cp = pybamm.thermal_parameters.rho_cp - -rho_k = pybamm.thermal_parameters.rho_k -# effective volumetric heat capacity -rho = (rho_cn * l_cn + rho_n * l_n + rho_s * l_s + rho_p * l_p + rho_cp * l_cp) / l - -lambda_cn = pybamm.thermal_parameters.lambda_cn -lambda_n = pybamm.thermal_parameters.lambda_n -lambda_s = pybamm.thermal_parameters.lambda_s -lambda_p = pybamm.thermal_parameters.lambda_p -lambda_cp = pybamm.thermal_parameters.lambda_cp - -lambda_k = pybamm.thermal_parameters.lambda_k - -Theta = pybamm.thermal_parameters.Theta - -h_edge = pybamm.thermal_parameters.h_edge -h_tab_n = pybamm.thermal_parameters.h_tab_n -h_tab_p = pybamm.thermal_parameters.h_tab_p -h_cn = pybamm.thermal_parameters.h_cn -h_cp = pybamm.thermal_parameters.h_cp -h_total = pybamm.thermal_parameters.h_total - -B = ( - i_typ - * R - * T_ref - * tau_th_yz - / (pybamm.thermal_parameters.rho_eff_dim * F * Delta_T * L_x) -) - -T_amb_dim = pybamm.thermal_parameters.T_amb_dim -T_amb = pybamm.thermal_parameters.T_amb - -# SEI parameters -C_sei_reaction_n = (j_scale_n / m_sei_dimensional) * pybamm.exp( - -(F * U_n_ref / (2 * R * T_ref)) -) -C_sei_reaction_p = (j_scale_p / m_sei_dimensional) * pybamm.exp( - -(F * U_n_ref / (2 * R * T_ref)) -) - -C_sei_solvent_n = j_scale_n * L_sei_0_dim / (c_sol_dimensional * F * D_sol_dimensional) -C_sei_solvent_p = j_scale_p * L_sei_0_dim / (c_sol_dimensional * F * D_sol_dimensional) - -C_sei_electron_n = j_scale_n * F * L_sei_0_dim / (kappa_inner_dimensional * R * T_ref) -C_sei_electron_p = j_scale_p * F * L_sei_0_dim / (kappa_inner_dimensional * R * T_ref) - -C_sei_inter_n = j_scale_n * L_sei_0_dim / (D_li_dimensional * c_li_0_dimensional * F) -C_sei_inter_p = j_scale_p * L_sei_0_dim / (D_li_dimensional * c_li_0_dimensional * F) - -U_inner_electron = F * U_inner_dimensional / R / T_ref - -R_sei_n = F * j_scale_n * R_sei_dimensional * L_sei_0_dim / R / T_ref -R_sei_p = F * j_scale_p * R_sei_dimensional * L_sei_0_dim / R / T_ref - -v_bar = V_bar_outer_dimensional / V_bar_inner_dimensional - -L_inner_0 = L_inner_0_dim / L_sei_0_dim -L_outer_0 = L_outer_0_dim / L_sei_0_dim - -# ratio of SEI reaction scale to intercalation reaction -Gamma_SEI_n = (V_bar_inner_dimensional * j_scale_n * tau_discharge) / (F * L_sei_0_dim) -Gamma_SEI_p = (V_bar_inner_dimensional * j_scale_p * tau_discharge) / (F * L_sei_0_dim) - -# EC reaction -C_ec_n = L_sei_0_dim * j_scale_n / (F * c_ec_0_dim * D_ec_dim) -C_sei_ec_n = ( - F - * k_sei_dim - * c_ec_0_dim - / j_scale_n - * (pybamm.exp(-(F * (U_n_ref - U_sei_dim) / (2 * R * T_ref)))) -) -beta_sei_n = a_n_dim * L_sei_0_dim * Gamma_SEI_n - -# Initial conditions -T_init = pybamm.thermal_parameters.T_init -c_e_init = c_e_init_dimensional / c_e_typ - - -def c_n_init(x): - "Dimensionless initial concentration as a function of dimensionless position x" - return c_n_init_dimensional(x) / c_n_max - - -def c_p_init(x): - "Dimensionless initial concentration as a function of dimensionless position x" - return c_p_init_dimensional(x) / c_p_max - - -# -------------------------------------------------------------------------------------- -"5. Dimensionless Functions" - - -def D_e(c_e, T): - "Dimensionless electrolyte diffusivity" - c_e_dimensional = c_e * c_e_typ - T_dim = Delta_T * T + T_ref - return D_e_dimensional(c_e_dimensional, T_dim) / D_e_typ - - -def kappa_e(c_e, T): - "Dimensionless electrolyte conductivity" - c_e_dimensional = c_e * c_e_typ - kappa_scale = F ** 2 * D_e_typ * c_e_typ / (R * T_ref) - T_dim = Delta_T * T + T_ref - return kappa_e_dimensional(c_e_dimensional, T_dim) / kappa_scale - - -def D_n(c_s_n, T): - "Dimensionless negative particle diffusivity" - sto = c_s_n - T_dim = Delta_T * T + T_ref - return D_n_dimensional(sto, T_dim) / D_n_dimensional(pybamm.Scalar(1), T_ref) - - -def D_p(c_s_p, T): - "Dimensionless positive particle diffusivity" - sto = c_s_p - T_dim = Delta_T * T + T_ref - return D_p_dimensional(sto, T_dim) / D_p_dimensional(pybamm.Scalar(1), T_ref) - - -def j0_n(c_e, c_s_surf, T): - "Dimensionless negative exchange-current density" - c_e_dim = c_e * c_e_typ - c_s_surf_dim = c_s_surf * c_n_max - T_dim = Delta_T * T + T_ref - - return j0_n_dimensional(c_e_dim, c_s_surf_dim, T_dim) / j0_n_ref_dimensional - - -def j0_p(c_e, c_s_surf, T): - "Dimensionless positive exchange-current density" - c_e_dim = c_e * c_e_typ - c_s_surf_dim = c_s_surf * c_p_max - T_dim = Delta_T * T + T_ref - - return j0_p_dimensional(c_e_dim, c_s_surf_dim, T_dim) / j0_p_ref_dimensional - - -def U_n(c_s_n, T): - "Dimensionless open-circuit potential in the negative electrode" - sto = c_s_n - T_dim = Delta_T * T + T_ref - return (U_n_dimensional(sto, T_dim) - U_n_ref) / potential_scale - - -def U_p(c_s_p, T): - "Dimensionless open-circuit potential in the positive electrode" - sto = c_s_p - T_dim = Delta_T * T + T_ref - return (U_p_dimensional(sto, T_dim) - U_p_ref) / potential_scale - - -def dUdT_n(c_s_n): - "Dimensionless entropic change in negative open-circuit potential" - sto = c_s_n - return dUdT_n_dimensional(sto) * Delta_T / potential_scale - - -def dUdT_p(c_s_p): - "Dimensionless entropic change in positive open-circuit potential" - sto = c_s_p - return dUdT_p_dimensional(sto) * Delta_T / potential_scale - - -# -------------------------------------------------------------------------------------- -# 6. Input current and voltage - -dimensional_current_with_time = pybamm.FunctionParameter( - "Current function [A]", {"Time [s]": pybamm.t * timescale} -) -dimensional_current_density_with_time = dimensional_current_with_time / ( - n_electrodes_parallel * pybamm.geometric_parameters.A_cc -) -current_with_time = ( - dimensional_current_with_time / I_typ * pybamm.Function(np.sign, I_typ) -) - - -"Remove any temporary variables" -del inputs diff --git a/pybamm/parameters/thermal_parameters.py b/pybamm/parameters/thermal_parameters.py index 9662e426b5..81c9880274 100644 --- a/pybamm/parameters/thermal_parameters.py +++ b/pybamm/parameters/thermal_parameters.py @@ -3,127 +3,178 @@ # import pybamm -# -------------------------------------------------------------------------------------- -# Dimensional parameters - -# Reference temperature -T_ref = pybamm.Parameter("Reference temperature [K]") - -# Density -rho_cn_dim = pybamm.Parameter("Negative current collector density [kg.m-3]") -rho_n_dim = pybamm.Parameter("Negative electrode density [kg.m-3]") -rho_s_dim = pybamm.Parameter("Separator density [kg.m-3]") -rho_p_dim = pybamm.Parameter("Positive electrode density [kg.m-3]") -rho_cp_dim = pybamm.Parameter("Positive current collector density [kg.m-3]") - -# Specific heat capacity -c_p_cn_dim = pybamm.Parameter( - "Negative current collector specific heat capacity [J.kg-1.K-1]" -) -c_p_n_dim = pybamm.Parameter("Negative electrode specific heat capacity [J.kg-1.K-1]") -c_p_s_dim = pybamm.Parameter("Separator specific heat capacity [J.kg-1.K-1]") -c_p_p_dim = pybamm.Parameter("Negative electrode specific heat capacity [J.kg-1.K-1]") -c_p_cp_dim = pybamm.Parameter( - "Positive current collector specific heat capacity [J.kg-1.K-1]" -) - -# Thermal conductivity -lambda_cn_dim = pybamm.Parameter( - "Negative current collector thermal conductivity [W.m-1.K-1]" -) -lambda_n_dim = pybamm.Parameter("Negative electrode thermal conductivity [W.m-1.K-1]") -lambda_s_dim = pybamm.Parameter("Separator thermal conductivity [W.m-1.K-1]") -lambda_p_dim = pybamm.Parameter("Positive electrode thermal conductivity [W.m-1.K-1]") -lambda_cp_dim = pybamm.Parameter( - "Positive current collector thermal conductivity [W.m-1.K-1]" -) - -# Effective thermal properties -rho_eff_dim = ( - rho_cn_dim * c_p_cn_dim * pybamm.geometric_parameters.L_cn - + rho_n_dim * c_p_n_dim * pybamm.geometric_parameters.L_n - + rho_s_dim * c_p_s_dim * pybamm.geometric_parameters.L_s - + rho_p_dim * c_p_p_dim * pybamm.geometric_parameters.L_p - + rho_cp_dim * c_p_cp_dim * pybamm.geometric_parameters.L_cp -) / pybamm.geometric_parameters.L -lambda_eff_dim = ( - lambda_cn_dim * pybamm.geometric_parameters.L_cn - + lambda_n_dim * pybamm.geometric_parameters.L_n - + lambda_s_dim * pybamm.geometric_parameters.L_s - + lambda_p_dim * pybamm.geometric_parameters.L_p - + lambda_cp_dim * pybamm.geometric_parameters.L_cp -) / pybamm.geometric_parameters.L - -# Cooling coefficient -h_cn_dim = pybamm.Parameter( - "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" -) -h_cp_dim = pybamm.Parameter( - "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" -) -h_tab_n_dim = pybamm.Parameter("Negative tab heat transfer coefficient [W.m-2.K-1]") -h_tab_p_dim = pybamm.Parameter("Positive tab heat transfer coefficient [W.m-2.K-1]") -h_edge_dim = pybamm.Parameter("Edge heat transfer coefficient [W.m-2.K-1]") - -h_total_dim = pybamm.Parameter("Total heat transfer coefficient [W.m-2.K-1]") - -# Typical temperature rise -Delta_T = pybamm.Scalar(1) - -# Initial temperature -T_init_dim = pybamm.Parameter("Initial temperature [K]") - -# -------------------------------------------------------------------------------------- -# Timescales -tau_th_yz = rho_eff_dim * (pybamm.geometric_parameters.L_z ** 2) / lambda_eff_dim - -# -------------------------------------------------------------------------------------- -# Dimensionless parameters - -rho_cn = rho_cn_dim * c_p_cn_dim / rho_eff_dim -rho_n = rho_n_dim * c_p_n_dim / rho_eff_dim -rho_s = rho_s_dim * c_p_s_dim / rho_eff_dim -rho_p = rho_p_dim * c_p_p_dim / rho_eff_dim -rho_cp = rho_cp_dim * c_p_cp_dim / rho_eff_dim - -rho_k = pybamm.Concatenation( - pybamm.FullBroadcast(rho_n, ["negative electrode"], "current collector"), - pybamm.FullBroadcast(rho_s, ["separator"], "current collector"), - pybamm.FullBroadcast(rho_p, ["positive electrode"], "current collector"), -) - -lambda_cn = lambda_cn_dim / lambda_eff_dim -lambda_n = lambda_n_dim / lambda_eff_dim -lambda_s = lambda_s_dim / lambda_eff_dim -lambda_p = lambda_p_dim / lambda_eff_dim -lambda_cp = lambda_cp_dim / lambda_eff_dim - -lambda_k = pybamm.Concatenation( - pybamm.FullBroadcast(lambda_n, ["negative electrode"], "current collector"), - pybamm.FullBroadcast(lambda_s, ["separator"], "current collector"), - pybamm.FullBroadcast(lambda_p, ["positive electrode"], "current collector"), -) - - -Theta = Delta_T / T_ref - -h_edge = h_edge_dim * pybamm.geometric_parameters.L_x / lambda_eff_dim -h_tab_n = h_tab_n_dim * pybamm.geometric_parameters.L_x / lambda_eff_dim -h_tab_p = h_tab_p_dim * pybamm.geometric_parameters.L_x / lambda_eff_dim -h_cn = h_cn_dim * pybamm.geometric_parameters.L_x / lambda_eff_dim -h_cp = h_cp_dim * pybamm.geometric_parameters.L_x / lambda_eff_dim -h_total = h_total_dim * pybamm.geometric_parameters.L_x / lambda_eff_dim - - -T_init = (T_init_dim - T_ref) / Delta_T - -# -------------------------------------------------------------------------------------- -# Ambient temperature - - -def T_amb_dim(t): - return pybamm.FunctionParameter("Ambient temperature [K]", {"Times [s]": t}) - - -def T_amb(t): - return (T_amb_dim(t) - T_ref) / Delta_T # dimensionless T_amb + +class ThermalParameters: + """ + Standard thermal parameters + + Layout: + 1. Dimensional Parameters + 2. Dimensional Functions + 3. Dimensionless Parameters + 4. Dimensionless Functions + """ + + def __init__(self): + + # Get geometric parameters + self.geo = pybamm.GeometricParameters() + + # Set parameters + self._set_dimensional_parameters() + self._set_dimensionless_parameters() + + def _set_dimensional_parameters(self): + "Defines the dimensional parameters" + + # Reference temperature + self.T_ref = pybamm.Parameter("Reference temperature [K]") + + # Density + self.rho_cn_dim = pybamm.Parameter( + "Negative current collector density [kg.m-3]" + ) + self.rho_n_dim = pybamm.Parameter("Negative electrode density [kg.m-3]") + self.rho_s_dim = pybamm.Parameter("Separator density [kg.m-3]") + self.rho_p_dim = pybamm.Parameter("Positive electrode density [kg.m-3]") + self.rho_cp_dim = pybamm.Parameter( + "Positive current collector density [kg.m-3]" + ) + + # Specific heat capacity + self.c_p_cn_dim = pybamm.Parameter( + "Negative current collector specific heat capacity [J.kg-1.K-1]" + ) + self.c_p_n_dim = pybamm.Parameter( + "Negative electrode specific heat capacity [J.kg-1.K-1]" + ) + self.c_p_s_dim = pybamm.Parameter( + "Separator specific heat capacity [J.kg-1.K-1]" + ) + self.c_p_p_dim = pybamm.Parameter( + "Negative electrode specific heat capacity [J.kg-1.K-1]" + ) + self.c_p_cp_dim = pybamm.Parameter( + "Positive current collector specific heat capacity [J.kg-1.K-1]" + ) + + # Thermal conductivity + self.lambda_cn_dim = pybamm.Parameter( + "Negative current collector thermal conductivity [W.m-1.K-1]" + ) + self.lambda_n_dim = pybamm.Parameter( + "Negative electrode thermal conductivity [W.m-1.K-1]" + ) + self.lambda_s_dim = pybamm.Parameter( + "Separator thermal conductivity [W.m-1.K-1]" + ) + self.lambda_p_dim = pybamm.Parameter( + "Positive electrode thermal conductivity [W.m-1.K-1]" + ) + self.lambda_cp_dim = pybamm.Parameter( + "Positive current collector thermal conductivity [W.m-1.K-1]" + ) + + # Effective volumetic heat capacity + self.rho_eff_dim = ( + self.rho_cn_dim * self.c_p_cn_dim * self.geo.L_cn + + self.rho_n_dim * self.c_p_n_dim * self.geo.L_n + + self.rho_s_dim * self.c_p_s_dim * self.geo.L_s + + self.rho_p_dim * self.c_p_p_dim * self.geo.L_p + + self.rho_cp_dim * self.c_p_cp_dim * self.geo.L_cp + ) / self.geo.L + + # Effective thermal conductivity + self.lambda_eff_dim = ( + self.lambda_cn_dim * self.geo.L_cn + + self.lambda_n_dim * self.geo.L_n + + self.lambda_s_dim * self.geo.L_s + + self.lambda_p_dim * self.geo.L_p + + self.lambda_cp_dim * self.geo.L_cp + ) / self.geo.L + + # Cooling coefficient + self.h_cn_dim = pybamm.Parameter( + "Negative current collector surface heat transfer coefficient [W.m-2.K-1]" + ) + self.h_cp_dim = pybamm.Parameter( + "Positive current collector surface heat transfer coefficient [W.m-2.K-1]" + ) + self.h_tab_n_dim = pybamm.Parameter( + "Negative tab heat transfer coefficient [W.m-2.K-1]" + ) + self.h_tab_p_dim = pybamm.Parameter( + "Positive tab heat transfer coefficient [W.m-2.K-1]" + ) + self.h_edge_dim = pybamm.Parameter("Edge heat transfer coefficient [W.m-2.K-1]") + self.h_total_dim = pybamm.Parameter( + "Total heat transfer coefficient [W.m-2.K-1]" + ) + + # Typical temperature rise + self.Delta_T = pybamm.Scalar(1) + + # Initial temperature + self.T_init_dim = pybamm.Parameter("Initial temperature [K]") + + # Planar (y,z) thermal diffusion timescale + self.tau_th_yz = self.rho_eff_dim * (self.geo.L_z ** 2) / self.lambda_eff_dim + + def T_amb_dim(self, t): + "Dimensional ambient temperature" + return pybamm.FunctionParameter("Ambient temperature [K]", {"Times [s]": t}) + + def _set_dimensionless_parameters(self): + "Defines the dimensionless parameters" + + # Density + self.rho_cn = self.rho_cn_dim * self.c_p_cn_dim / self.rho_eff_dim + self.rho_n = self.rho_n_dim * self.c_p_n_dim / self.rho_eff_dim + self.rho_s = self.rho_s_dim * self.c_p_s_dim / self.rho_eff_dim + self.rho_p = self.rho_p_dim * self.c_p_p_dim / self.rho_eff_dim + self.rho_cp = self.rho_cp_dim * self.c_p_cp_dim / self.rho_eff_dim + + self.rho_k = pybamm.Concatenation( + pybamm.FullBroadcast( + self.rho_n, ["negative electrode"], "current collector" + ), + pybamm.FullBroadcast(self.rho_s, ["separator"], "current collector"), + pybamm.FullBroadcast( + self.rho_p, ["positive electrode"], "current collector" + ), + ) + + # Thermal conductivity + self.lambda_cn = self.lambda_cn_dim / self.lambda_eff_dim + self.lambda_n = self.lambda_n_dim / self.lambda_eff_dim + self.lambda_s = self.lambda_s_dim / self.lambda_eff_dim + self.lambda_p = self.lambda_p_dim / self.lambda_eff_dim + self.lambda_cp = self.lambda_cp_dim / self.lambda_eff_dim + + self.lambda_k = pybamm.Concatenation( + pybamm.FullBroadcast( + self.lambda_n, ["negative electrode"], "current collector" + ), + pybamm.FullBroadcast(self.lambda_s, ["separator"], "current collector"), + pybamm.FullBroadcast( + self.lambda_p, ["positive electrode"], "current collector" + ), + ) + + # Relative temperature rise + self.Theta = self.Delta_T / self.T_ref + + # Cooling coefficient + self.h_cn = self.h_cn_dim * self.geo.L_x / self.lambda_eff_dim + self.h_cp = self.h_cp_dim * self.geo.L_x / self.lambda_eff_dim + self.h_tab_n = self.h_tab_n_dim * self.geo.L_x / self.lambda_eff_dim + self.h_tab_p = self.h_tab_p_dim * self.geo.L_x / self.lambda_eff_dim + self.h_edge = self.h_edge_dim * self.geo.L_x / self.lambda_eff_dim + self.h_total = self.h_total_dim * self.geo.L_x / self.lambda_eff_dim + + # Initial temperature + self.T_init = (self.T_init_dim - self.T_ref) / self.Delta_T + + def T_amb(self, t): + "Dimensionless ambient temperature" + return (self.T_amb_dim(t) - self.T_ref) / self.Delta_T diff --git a/pybamm/plotting/quick_plot.py b/pybamm/plotting/quick_plot.py index 5b1d224a18..9348b8907d 100644 --- a/pybamm/plotting/quick_plot.py +++ b/pybamm/plotting/quick_plot.py @@ -742,7 +742,7 @@ def slider_update(self, t): vmin = ax_min(var) vmax = ax_max(var) cb = self.colorbars[key] - cb.update_bruteforce( + cb.update_normal( cm.ScalarMappable( colors.Normalize(vmin=vmin, vmax=vmax), cmap="coolwarm" ) diff --git a/pybamm/simulation.py b/pybamm/simulation.py index 557ef558eb..104bfbc906 100644 --- a/pybamm/simulation.py +++ b/pybamm/simulation.py @@ -33,7 +33,7 @@ def constant_current_constant_voltage_constant_power(variables): s_I = pybamm.InputParameter("Current switch") s_V = pybamm.InputParameter("Voltage switch") s_P = pybamm.InputParameter("Power switch") - n_cells = pybamm.electrical_parameters.n_cells + n_cells = pybamm.Parameter("Number of cells connected in series to make a battery") return ( s_I * (I - pybamm.InputParameter("Current input [A]")) + s_V * (V - pybamm.InputParameter("Voltage input [V]") / n_cells) @@ -64,7 +64,7 @@ class Simulation: domain (e.g. pybamm.FiniteVolume) solver: :class:`pybamm.BaseSolver` (optional) The solver to use to solve the model. - quick_plot_vars: list (optional) + output_variables: list (optional) A list of variables to plot automatically C_rate: float (optional) The C_rate at which you would like to run a constant current @@ -81,16 +81,26 @@ def __init__( var_pts=None, spatial_methods=None, solver=None, - quick_plot_vars=None, + output_variables=None, C_rate=None, ): self.parameter_values = parameter_values or model.default_parameter_values + if isinstance(model, pybamm.lithium_ion.BasicDFNHalfCell): + raise NotImplementedError( + "BasicDFNHalfCell is not compatible with Simulations yet." + ) + if experiment is None: # Check to see if the current is provided as data (i.e. drive cycle) current = self._parameter_values.get("Current function [A]") - if isinstance(current, tuple): + if isinstance(current, pybamm.Interpolant): self.operating_mode = "drive cycle" + elif isinstance(current, tuple): + raise NotImplementedError( + "Drive cycle from data has been deprecated. " + + "Define an Interpolant instead." + ) else: self.operating_mode = "without experiment" if C_rate: @@ -112,7 +122,7 @@ def __init__( self.var_pts = var_pts or self.model.default_var_pts self.spatial_methods = spatial_methods or self.model.default_spatial_methods self.solver = solver or self.model.default_solver - self.quick_plot_vars = quick_plot_vars + self.output_variables = output_variables # Initialize empty built states self._model_with_set_params = None @@ -330,17 +340,6 @@ def solve( solver = self.solver if self.operating_mode in ["without experiment", "drive cycle"]: - # If t_eval is provided as [t0, tf] return the solution at 100 points - if isinstance(t_eval, list): - if len(t_eval) != 2: - raise pybamm.SolverError( - "'t_eval' can be provided as an array of times at which to " - "return the solution, or as a list [t0, tf] where t0 is the " - "initial time and tf is the final time, but has been provided " - "as a list of length {}.".format(len(t_eval)) - ) - else: - t_eval = np.linspace(t_eval[0], t_eval[-1], 100) if self.operating_mode == "without experiment": if t_eval is None: @@ -357,15 +356,11 @@ def solve( elif self.operating_mode == "drive cycle": # For drive cycles (current provided as data) we perform additional # tests on t_eval (if provided) to ensure the returned solution - # captures the input. If the current is provided as data then the - # "Current function [A]" is the tuple (filename, data). - filename = self._parameter_values["Current function [A]"][0] - time_data = self._parameter_values["Current function [A]"][1][:, 0] + # captures the input. + time_data = self._parameter_values["Current function [A]"].data[:, 0] # If no t_eval is provided, we use the times provided in the data. if t_eval is None: - pybamm.logger.info( - "Setting t_eval as specified by the data '{}'".format(filename) - ) + pybamm.logger.info("Setting t_eval as specified by the data") t_eval = time_data # If t_eval is provided we first check if it contains all of the # times in the data to within 10-12. If it doesn't, we then check @@ -379,11 +374,9 @@ def solve( warnings.warn( """ t_eval does not contain all of the time points in the data - '{}'. Note: passing t_eval = None automatically sets t_eval + set. Note: passing t_eval = None automatically sets t_eval to be the points in the data. - """.format( - filename - ), + """, pybamm.SolverWarning, ) dt_data_min = np.min(np.diff(time_data)) @@ -403,13 +396,13 @@ def solve( pybamm.SolverWarning, ) - self.t_eval = t_eval self._solution = solver.solve( self.built_model, t_eval, external_variables=external_variables, inputs=inputs, ) + self.t_eval = self._solution.t * self.model.timescale.evaluate() elif self.operating_mode == "with experiment": if t_eval is not None: @@ -502,6 +495,8 @@ def step( save=save, ) + return self.solution + def get_variable_array(self, *variables): """ A helper function to easily obtain a dictionary of arrays of values @@ -531,28 +526,39 @@ def get_variable_array(self, *variables): else: return tuple(variable_arrays) - def plot(self, quick_plot_vars=None, testing=False): + def plot(self, output_variables=None, quick_plot_vars=None, **kwargs): """ - A method to quickly plot the outputs of the simulation. + A method to quickly plot the outputs of the simulation. Creates a + :class:`pybamm.QuickPlot` object (with keyword arguments 'kwargs') and + then calls :meth:`pybamm.QuickPlot.dynamic_plot`. Parameters ---------- - quick_plot_vars: list, optional + output_variables: list, optional A list of the variables to plot. - testing, bool, optional - If False the plot will not be displayed + quick_plot_vars: list, optional + A list of the variables to plot. Deprecated, use output_variables instead. + **kwargs + Additional keyword arguments passed to + :meth:`pybamm.QuickPlot.dynamic_plot`. + For a list of all possible keyword arguments see :class:`pybamm.QuickPlot`. """ + if quick_plot_vars is not None: + raise NotImplementedError( + "'quick_plot_vars' has been deprecated. Use 'output_variables' instead." + ) + if self._solution is None: raise ValueError( "Model has not been solved, please solve the model before plotting." ) - if quick_plot_vars is None: - quick_plot_vars = self.quick_plot_vars + if output_variables is None: + output_variables = self.output_variables self.quick_plot = pybamm.dynamic_plot( - self._solution, output_variables=quick_plot_vars, testing=testing + self._solution, output_variables=output_variables, **kwargs ) @property @@ -625,12 +631,12 @@ def solver(self, solver): self._solver = solver.copy() @property - def quick_plot_vars(self): - return self._quick_plot_vars + def output_variables(self): + return self._output_variables - @quick_plot_vars.setter - def quick_plot_vars(self, quick_plot_vars): - self._quick_plot_vars = copy.copy(quick_plot_vars) + @output_variables.setter + def output_variables(self, output_variables): + self._output_variables = copy.copy(output_variables) @property def solution(self): @@ -644,7 +650,7 @@ def specs( var_pts=None, spatial_methods=None, solver=None, - quick_plot_vars=None, + output_variables=None, C_rate=None, ): "Deprecated method for setting specs" @@ -666,9 +672,9 @@ def save(self, filename): # Clear solver problem (not pickle-able, will automatically be recomputed) if ( isinstance(self._solver, pybamm.CasadiSolver) - and self._solver.problems != {} + and self._solver.integrator_specs != {} ): - self._solver.problems = {} + self._solver.integrator_specs = {} with open(filename, "wb") as f: pickle.dump(self, f, pickle.HIGHEST_PROTOCOL) diff --git a/pybamm/solvers/base_solver.py b/pybamm/solvers/base_solver.py index e3bbd09ece..d6034155ed 100644 --- a/pybamm/solvers/base_solver.py +++ b/pybamm/solvers/base_solver.py @@ -117,7 +117,7 @@ def copy(self): new_solver.models_set_up = {} return new_solver - def set_up(self, model, inputs=None): + def set_up(self, model, inputs=None, t_eval=None): """Unpack model, perform checks, simplify and calculate jacobian. Parameters @@ -127,6 +127,8 @@ def set_up(self, model, inputs=None): initial_conditions inputs : dict, optional Any input parameters to pass to the model when solving + t_eval : numeric type, optional + The times (in seconds) at which to compute the solution """ @@ -224,6 +226,11 @@ def report(string): if model.use_simplify: report(f"Simplifying {name}") func = simp.simplify(func) + + if model.convert_to_format == "jax": + report(f"Converting {name} to jax") + jax_func = pybamm.EvaluatorJax(func) + if use_jacobian: report(f"Calculating jacobian for {name}") jac = jacobian.jac(func, y) @@ -233,13 +240,22 @@ def report(string): if model.convert_to_format == "python": report(f"Converting jacobian for {name} to python") jac = pybamm.EvaluatorPython(jac) + elif model.convert_to_format == "jax": + report(f"Converting jacobian for {name} to jax") + jac = jax_func.get_jacobian() jac = jac.evaluate else: jac = None + if model.convert_to_format == "python": report(f"Converting {name} to python") func = pybamm.EvaluatorPython(func) + if model.convert_to_format == "jax": + report(f"Converting {name} to jax") + func = jax_func + func = func.evaluate + else: # Process with CasADi report(f"Converting {name} to CasADi") @@ -265,8 +281,8 @@ def report(string): jac_call = None return func, func_call, jac_call - # Check for heaviside functions in rhs and algebraic and add discontinuity - # events if these exist. + # Check for heaviside and modulo functions in rhs and algebraic and add + # discontinuity events if these exist. # Note: only checks for the case of t < X, t <= X, X < t, or X <= t, but also # accounts for the fact that t might be dimensional # Only do this for DAE models as ODE models can deal with discontinuities fine @@ -301,6 +317,32 @@ def report(string): pybamm.EventType.DISCONTINUITY, ) ) + elif isinstance(symbol, pybamm.Modulo): + found_t = False + # Dimensionless + if symbol.left.id == pybamm.t.id: + expr = symbol.right + found_t = True + # Dimensional + elif symbol.left.id == (pybamm.t * model.timescale).id: + expr = symbol.right.new_copy() / symbol.left.right.new_copy() + found_t = True + + # Update the events if the modulo function depended on t + if found_t: + if t_eval is None: + N_events = 200 + else: + N_events = t_eval[-1] // expr.value + + for i in np.arange(N_events): + model.events.append( + pybamm.Event( + str(symbol), + expr.new_copy() * pybamm.Scalar(i + 1), + pybamm.EventType.DISCONTINUITY, + ) + ) # Process initial conditions initial_conditions = process( @@ -437,9 +479,12 @@ def calculate_consistent_state(self, model, time=0, inputs=None): ------- y0_consistent : array-like, same shape as y0_guess Initial conditions that are consistent with the algebraic equations (roots - of the algebraic equations) + of the algebraic equations). If self.root_method == None then returns + model.y0. """ pybamm.logger.info("Start calculating consistent states") + if self.root_method is None: + return model.y0 try: root_sol = self.root_method._integrate(model, [time], inputs) except pybamm.SolverError as e: @@ -447,7 +492,10 @@ def calculate_consistent_state(self, model, time=0, inputs=None): "Could not find consistent states: {}".format(e.args[0]) ) pybamm.logger.info("Found consistent states") - return root_sol.y.flatten() + y0 = root_sol.y + if isinstance(y0, np.ndarray): + y0 = y0.flatten() + return y0 def solve(self, model, t_eval=None, external_variables=None, inputs=None): """ @@ -490,6 +538,19 @@ def solve(self, model, t_eval=None, external_variables=None, inputs=None): t_eval = np.array([0]) else: raise ValueError("t_eval cannot be None") + # If t_eval is provided as [t0, tf] return the solution at 100 points + elif isinstance(t_eval, list): + if len(t_eval) == 1 and self.algebraic_solver is True: + pass + elif len(t_eval) != 2: + raise pybamm.SolverError( + "'t_eval' can be provided as an array of times at which to " + "return the solution, or as a list [t0, tf] where t0 is the " + "initial time and tf is the final time, but has been provided " + "as a list of length {}.".format(len(t_eval)) + ) + else: + t_eval = np.linspace(t_eval[0], t_eval[-1], 100) # Make sure t_eval is monotonic if (np.diff(t_eval) < 0).any(): @@ -503,7 +564,7 @@ def solve(self, model, t_eval=None, external_variables=None, inputs=None): # Set up (if not done already) if model not in self.models_set_up: - self.set_up(model, ext_and_inputs) + self.set_up(model, ext_and_inputs, t_eval) set_up_time = timer.time() self.models_set_up.update( {model: {"initial conditions": model.concatenated_initial_conditions}} @@ -517,7 +578,7 @@ def solve(self, model, t_eval=None, external_variables=None, inputs=None): # If the new initial conditions are different, set up again # Doing the whole setup again might be slow, but no need to prematurely # optimize this - self.set_up(model, ext_and_inputs) + self.set_up(model, ext_and_inputs, t_eval) self.models_set_up[model][ "initial conditions" ] = model.concatenated_initial_conditions @@ -814,10 +875,13 @@ def _set_up_ext_and_inputs(self, model, external_variables, inputs): for input_param in model.input_parameters: name = input_param.name if name not in inputs: - # Only allow symbolic inputs for CasadiAlgebraicSolver - if not isinstance(self, pybamm.CasadiAlgebraicSolver): + # Only allow symbolic inputs for CasadiSolver and CasadiAlgebraicSolver + if not isinstance( + self, (pybamm.CasadiSolver, pybamm.CasadiAlgebraicSolver) + ): raise pybamm.SolverError( - "Only CasadiAlgebraicSolver can have symbolic inputs" + "Only CasadiSolver and CasadiAlgebraicSolver " + "can have symbolic inputs" ) inputs[name] = casadi.MX.sym(name, input_param._expected_size) @@ -840,8 +904,8 @@ def __init__(self, function, name, model): self.timescale = self.model.timescale_eval def __call__(self, t, y, inputs): - y = y[:, np.newaxis] - if self.name in ["RHS", "algebraic", "residuals", "event"]: + y = y.reshape(-1, 1) + if self.name in ["RHS", "algebraic", "residuals"]: pybamm.logger.debug( "Evaluating {} for {} at t={}".format( self.name, self.model.name, t * self.timescale diff --git a/pybamm/solvers/casadi_algebraic_solver.py b/pybamm/solvers/casadi_algebraic_solver.py index e286936f24..25fe6aff1d 100644 --- a/pybamm/solvers/casadi_algebraic_solver.py +++ b/pybamm/solvers/casadi_algebraic_solver.py @@ -58,9 +58,12 @@ def _integrate(self, model, t_eval, inputs=None): # Record whether there are any symbolic inputs inputs = inputs or {} has_symbolic_inputs = any(isinstance(v, casadi.MX) for v in inputs.values()) + symbolic_inputs = casadi.vertcat( + *[v for v in inputs.values() if isinstance(v, casadi.MX)] + ) # Create casadi objects for the root-finder - inputs = casadi.vertcat(*[x for x in inputs.values()]) + inputs = casadi.vertcat(*[v for v in inputs.values()]) y0 = model.y0 # The casadi algebraic solver can read rhs equations, but leaves them unchanged @@ -82,10 +85,9 @@ def _integrate(self, model, t_eval, inputs=None): t_sym = casadi.MX.sym("t") y_alg_sym = casadi.MX.sym("y_alg", y0_alg.shape[0]) y_sym = casadi.vertcat(y0_diff, y_alg_sym) - p_sym = casadi.MX.sym("p", inputs.shape[0]) - t_p_sym = casadi.vertcat(t_sym, p_sym) - alg = model.casadi_algebraic(t_sym, y_sym, p_sym) + t_and_inputs_sym = casadi.vertcat(t_sym, symbolic_inputs) + alg = model.casadi_algebraic(t_sym, y_sym, inputs) # Set constraints vector in the casadi format # Constrain the unknowns. 0 (default): no constraint on ui, 1: ui >= 0.0, @@ -100,7 +102,7 @@ def _integrate(self, model, t_eval, inputs=None): roots = casadi.rootfinder( "roots", "newton", - dict(x=y_alg_sym, p=t_p_sym, g=alg), + dict(x=y_alg_sym, p=t_and_inputs_sym, g=alg), { **self.extra_options, "abstol": self.tol, @@ -123,10 +125,10 @@ def _integrate(self, model, t_eval, inputs=None): y_alg = casadi.horzcat(y_alg, y0_alg) # Otherwise calculate new y_sol else: - t_inputs = casadi.vertcat(t, inputs) + t_eval_inputs_sym = casadi.vertcat(t, symbolic_inputs) # Solve try: - y_alg_sol = roots(y0_alg, t_inputs) + y_alg_sol = roots(y0_alg, t_eval_inputs_sym) success = True message = None # Check final output diff --git a/pybamm/solvers/casadi_solver.py b/pybamm/solvers/casadi_solver.py index fa0e91e537..7d9fbc29fd 100644 --- a/pybamm/solvers/casadi_solver.py +++ b/pybamm/solvers/casadi_solver.py @@ -24,8 +24,9 @@ class CasadiSolver(pybamm.BaseSolver): - "safe": perform step-and-check integration in global steps of size \ dt_max, checking whether events have been triggered. Recommended for \ simulations of a full charge or discharge. - - "old safe": perform step-and-check integration in steps of size dt \ - for each dt in t_eval, checking whether events have been triggered. + - "safe without grid": perform step-and-check integration step-by-step. \ + Takes more steps than "safe" mode, but doesn't require creating the grid \ + each time, so may be faster. Experimental only. rtol : float, optional The relative tolerance for the solver (default is 1e-6). atol : float, optional @@ -73,15 +74,13 @@ def __init__( extra_options_call=None, ): super().__init__("problem dependent", rtol, atol, root_method, root_tol) - if mode in ["safe", "fast", "old safe"]: + if mode in ["safe", "fast", "safe without grid"]: self.mode = mode else: raise ValueError( - """ - invalid mode '{}'. Must be either 'safe' or 'old safe', for solving - with events, or 'fast', for solving quickly without events""".format( - mode - ) + "invalid mode '{}'. Must be 'safe', for solving with events, " + "'fast', for solving quickly without events, or 'safe without grid' " + "(experimental)".format(mode) ) self.max_step_decrease_count = max_step_decrease_count self.dt_max = dt_max @@ -92,9 +91,8 @@ def __init__( self.name = "CasADi solver with '{}' mode".format(mode) # Initialize - self.problems = {} - self.options = {} - self.methods = {} + self.integrators = {} + self.integrator_specs = {} pybamm.citations.register("Andersson2019") @@ -111,22 +109,28 @@ def _integrate(self, model, t_eval, inputs=None): inputs : dict, optional Any external variables or input parameters to pass to the model when solving """ + # Record whether there are any symbolic inputs inputs = inputs or {} + has_symbolic_inputs = any(isinstance(v, casadi.MX) for v in inputs.values()) + # convert inputs to casadi format inputs = casadi.vertcat(*[x for x in inputs.values()]) - if self.mode == "fast": - integrator = self.get_integrator(model, t_eval, inputs) - solution = self._run_integrator(integrator, model, model.y0, inputs, t_eval) + if has_symbolic_inputs: + # Create integrator without grid to avoid having to create several times + self.create_integrator(model, inputs) + solution = self._run_integrator(model, model.y0, inputs, t_eval) solution.termination = "final time" return solution - elif not model.events: - pybamm.logger.info("No events found, running fast mode") - integrator = self.get_integrator(model, t_eval, inputs) - solution = self._run_integrator(integrator, model, model.y0, inputs, t_eval) + elif self.mode == "fast" or not model.events: + if not model.events: + pybamm.logger.info("No events found, running fast mode") + # Create an integrator with the grid (we just need to do this once) + self.create_integrator(model, inputs, t_eval) + solution = self._run_integrator(model, model.y0, inputs, t_eval) solution.termination = "final time" return solution - elif self.mode == "safe": + elif self.mode in ["safe", "safe without grid"]: y0 = model.y0 if isinstance(y0, casadi.DM): y0 = y0.full().flatten() @@ -140,9 +144,16 @@ def _integrate(self, model, t_eval, inputs=None): ) pybamm.logger.info("Start solving {} with {}".format(model.name, self.name)) - # Initialize solution - solution = pybamm.Solution(np.array([t]), y0[:, np.newaxis]) - solution.solve_time = 0 + if self.mode == "safe without grid": + # in "safe without grid" mode, + # create integrator once, without grid, + # to avoid having to create several times + self.create_integrator(model, inputs) + # Initialize solution + solution = pybamm.Solution(np.array([t]), y0[:, np.newaxis]) + solution.solve_time = 0 + else: + solution = None # Try to integrate in global steps of size dt_max. Note: dt_max must # be at least as big as the the biggest step in t_eval (multiplied @@ -171,12 +182,14 @@ def _integrate(self, model, t_eval, inputs=None): if len(t_window) == 1: t_window = np.array([t, t + dt]) - integrator = self.get_integrator(model, t_window, inputs) + if self.mode == "safe": + # update integrator with the grid + self.create_integrator(model, inputs, t_window) # Try to solve with the current global step, if it fails then # halve the step size and try again. try: current_step_sol = self._run_integrator( - integrator, model, y0, inputs, t_window + model, y0, inputs, t_window ) solved = True except pybamm.SolverError: @@ -254,10 +267,9 @@ def event_fun(t): if len(t_window) == 1: t_window = np.array([t, t_event]) - integrator = self.get_integrator(model, t_window, inputs) - current_step_sol = self._run_integrator( - integrator, model, y0, inputs, t_window - ) + if self.mode == "safe": + self.create_integrator(model, inputs, t_window) + current_step_sol = self._run_integrator(model, y0, inputs, t_window) # assign temporary solve time current_step_sol.solve_time = np.nan @@ -271,87 +283,38 @@ def event_fun(t): else: # assign temporary solve time current_step_sol.solve_time = np.nan - # append solution from the current step to solution - solution.append(current_step_sol) + if solution is None: + solution = current_step_sol + else: + # append solution from the current step to solution + solution.append(current_step_sol) # update time t = t_window[-1] # update y0 y0 = solution.y[:, -1] return solution - elif self.mode == "old safe": - y0 = model.y0 - if isinstance(y0, casadi.DM): - y0 = y0.full().flatten() - # Step-and-check - t = t_eval[0] - init_event_signs = np.sign( - np.concatenate( - [event(t, y0, inputs) for event in model.terminate_events_eval] - ) - ) - pybamm.logger.info("Start solving {} with {}".format(model.name, self.name)) - - # Initialize solution - solution = pybamm.Solution(np.array([t]), y0[:, np.newaxis]) - solution.solve_time = 0 - for dt in np.diff(t_eval): - # Step - solved = False - count = 0 - while not solved: - integrator = self.get_integrator( - model, np.array([t, t + dt]), inputs - ) - # Try to solve with the current step, if it fails then halve the - # step size and try again. This will make solution.t slightly - # different to t_eval, but shouldn't matter too much as it should - # only happen near events. - try: - current_step_sol = self._run_integrator( - integrator, model, y0, inputs, np.array([t, t + dt]) - ) - solved = True - except pybamm.SolverError: - dt /= 2 - count += 1 - if count >= self.max_step_decrease_count: - raise pybamm.SolverError( - """ - Maximum number of decreased steps occurred at t={}. Try - solving the model up to this time only. - """.format( - t - ) - ) - # Check most recent y - new_event_signs = np.sign( - np.concatenate( - [ - event(t, current_step_sol.y[:, -1], inputs) - for event in model.terminate_events_eval - ] - ) - ) - # Exit loop if the sign of an event changes - if (new_event_signs != init_event_signs).any(): - solution.termination = "event" - solution.t_event = solution.t[-1] - solution.y_event = solution.y[:, -1] - break - else: - # assign temporary solve time - current_step_sol.solve_time = np.nan - # append solution from the current step to solution - solution.append(current_step_sol) - # update time - t += dt - # update y0 - y0 = solution.y[:, -1] - return solution - def get_integrator(self, model, t_eval, inputs): + def create_integrator(self, model, inputs, t_eval=None): + """ + Method to create a casadi integrator object. + If t_eval is provided, the integrator uses t_eval to make the grid. + Otherwise, the integrator has grid [0,1]. + """ + # Use grid if t_eval is given + use_grid = not (t_eval is None) # Only set up problem once - if model not in self.problems: + if model in self.integrators: + # If we're not using the grid, we don't need to change the integrator + if use_grid is False: + return self.integrators[model] + # Otherwise, create new integrator with an updated grid + else: + method, problem, options = self.integrator_specs[model] + options["grid"] = t_eval + integrator = casadi.integrator("F", method, problem, options) + self.integrators[model] = (integrator, use_grid) + return integrator + else: y0 = model.y0 rhs = model.casadi_rhs algebraic = model.casadi_algebraic @@ -367,52 +330,90 @@ def get_integrator(self, model, t_eval, inputs): options = { **self.extra_options_setup, - "grid": t_eval, "reltol": self.rtol, "abstol": self.atol, - "output_t0": True, "show_eval_warnings": show_eval_warnings, } # set up and solve t = casadi.MX.sym("t") p = casadi.MX.sym("p", inputs.shape[0]) - y_diff = casadi.MX.sym("y_diff", rhs(t_eval[0], y0, p).shape[0]) - problem = {"t": t, "x": y_diff, "p": p} - if algebraic(t_eval[0], y0, p).is_empty(): + y_diff = casadi.MX.sym("y_diff", rhs(0, y0, p).shape[0]) + + if use_grid is False: + # rescale time + t_min = casadi.MX.sym("t_min") + t_max = casadi.MX.sym("t_max") + t_scaled = t_min + (t_max - t_min) * t + # add time limits as inputs + p_with_tlims = casadi.vertcat(p, t_min, t_max) + else: + options.update({"grid": t_eval, "output_t0": True}) + # Set dummy parameters for consistency with rescaled time + t_max = 1 + t_min = 0 + t_scaled = t + p_with_tlims = p + + problem = {"t": t, "x": y_diff, "p": p_with_tlims} + if algebraic(0, y0, p).is_empty(): method = "cvodes" - problem.update({"ode": rhs(t, y_diff, p)}) + # rescale rhs by (t_max - t_min) + problem.update({"ode": (t_max - t_min) * rhs(t_scaled, y_diff, p)}) else: - options["calc_ic"] = True method = "idas" - y_alg = casadi.MX.sym("y_alg", algebraic(t_eval[0], y0, p).shape[0]) + y_alg = casadi.MX.sym("y_alg", algebraic(0, y0, p).shape[0]) y_full = casadi.vertcat(y_diff, y_alg) + # rescale rhs by (t_max - t_min) problem.update( { + "ode": (t_max - t_min) * rhs(t_scaled, y_full, p), "z": y_alg, - "ode": rhs(t, y_full, p), - "alg": algebraic(t, y_full, p), + "alg": algebraic(t_scaled, y_full, p), } ) - self.problems[model] = problem - self.options[model] = options - self.methods[model] = method - else: - # problem stays the same - # just update options - self.options[model]["grid"] = t_eval - return casadi.integrator( - "F", self.methods[model], self.problems[model], self.options[model] - ) - - def _run_integrator(self, integrator, model, y0, inputs, t_eval): - rhs_size = model.concatenated_rhs.size - y0_diff, y0_alg = np.split(y0, [rhs_size]) + integrator = casadi.integrator("F", method, problem, options) + self.integrator_specs[model] = method, problem, options + self.integrators[model] = (integrator, use_grid) + return integrator + + def _run_integrator(self, model, y0, inputs, t_eval): + integrator, use_grid = self.integrators[model] + len_rhs = model.concatenated_rhs.size + y0_diff = y0[:len_rhs] + y0_alg = y0[len_rhs:] try: # Try solving - sol = integrator(x0=y0_diff, z0=y0_alg, p=inputs, **self.extra_options_call) - y_values = np.concatenate([sol["xf"].full(), sol["zf"].full()]) - return pybamm.Solution(t_eval, y_values) + if use_grid is True: + # Call the integrator once, with the grid + sol = integrator( + x0=y0_diff, z0=y0_alg, p=inputs, **self.extra_options_call + ) + y_sol = np.concatenate([sol["xf"].full(), sol["zf"].full()]) + return pybamm.Solution(t_eval, y_sol) + else: + # Repeated calls to the integrator + x = y0_diff + z = y0_alg + y_diff = x + y_alg = z + for i in range(len(t_eval) - 1): + t_min = t_eval[i] + t_max = t_eval[i + 1] + inputs_with_tlims = casadi.vertcat(inputs, t_min, t_max) + sol = integrator( + x0=x, z0=z, p=inputs_with_tlims, **self.extra_options_call + ) + x = sol["xf"] + z = sol["zf"] + y_diff = casadi.horzcat(y_diff, x) + if not z.is_empty(): + y_alg = casadi.horzcat(y_alg, z) + if z.is_empty(): + return pybamm.Solution(t_eval, y_diff) + else: + y_sol = casadi.vertcat(y_diff, y_alg) + return pybamm.Solution(t_eval, y_sol) except RuntimeError as e: # If it doesn't work raise error raise pybamm.SolverError(e.args[0]) diff --git a/pybamm/solvers/jax_bdf_solver.py b/pybamm/solvers/jax_bdf_solver.py new file mode 100644 index 0000000000..59c5459d12 --- /dev/null +++ b/pybamm/solvers/jax_bdf_solver.py @@ -0,0 +1,992 @@ +import operator as op +import numpy as onp +import collections + +import jax +import jax.numpy as jnp +from jax import core +from jax import dtypes +from jax.util import safe_map, cache, split_list +from jax.api_util import flatten_fun_nokwargs +from jax.flatten_util import ravel_pytree +from jax.tree_util import tree_map, tree_flatten, tree_unflatten, tree_multimap, partial +from jax.interpreters import partial_eval as pe +from jax import linear_util as lu +from jax.config import config + +config.update("jax_enable_x64", True) + +MAX_ORDER = 5 +NEWTON_MAXITER = 4 +ROOT_SOLVE_MAXITER = 15 +MIN_FACTOR = 0.2 +MAX_FACTOR = 10 + + +@jax.partial(jax.custom_vjp, nondiff_argnums=(0, 1, 2, 3)) +def _bdf_odeint(fun, mass, rtol, atol, y0, t_eval, *args): + """ + This implements a Backward Difference formula (BDF) implicit multistep integrator. + The basic algorithm is derived in [2]_. This particular implementation follows that + implemented in the Matlab routine ode15s described in [1]_ and the SciPy + implementation [3]_, which features the NDF formulas for improved stability, with + associated differences in the error constants, and calculates the jacobian at + J(t_{n+1}, y^0_{n+1}). This implementation was based on that implemented in the + scipy library [3]_, which also mainly follows [1]_ but uses the more standard + jacobian update. + + Parameters + ---------- + + func: callable + function to evaluate the time derivative of the solution `y` at time + `t` as `func(y, t, *args)`, producing the same shape/structure as `y0`. + mass: ndarray + diagonal of the mass matrix with shape (n,) + y0: ndarray + initial state vector, has shape (n,) + t_eval: ndarray + time points to evaluate the solution, has shape (m,) + args: (optional) + tuple of additional arguments for `fun`, which must be arrays + scalars, or (nested) standard Python containers (tuples, lists, dicts, + namedtuples, i.e. pytrees) of those types. + rtol: (optional) float + relative tolerance for the solver + atol: (optional) float + absolute tolerance for the solver + + Returns + ------- + y: ndarray with shape (n, m) + calculated state vector at each of the m time points + + References + ---------- + .. [1] L. F. Shampine, M. W. Reichelt, "THE MATLAB ODE SUITE", SIAM J. SCI. + COMPUTE., Vol. 18, No. 1, pp. 1-22, January 1997. + .. [2] G. D. Byrne, A. C. Hindmarsh, "A Polyalgorithm for the Numerical + Solution of Ordinary Differential Equations", ACM Transactions on + Mathematical Software, Vol. 1, No. 1, pp. 71-96, March 1975. + .. [3] Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, + T., Cournapeau, D., ... & van der Walt, S. J. (2020). SciPy 1.0: + fundamental algorithms for scientific computing in Python. + Nature methods, 17(3), 261-272. + """ + + def fun_bind_inputs(y, t): + return fun(y, t, *args) + + jac_bind_inputs = jax.jacfwd(fun_bind_inputs, argnums=0) + + t0 = t_eval[0] + h0 = t_eval[1] - t0 + + stepper = _bdf_init( + fun_bind_inputs, jac_bind_inputs, mass, t0, y0, h0, rtol, atol + ) + i = 0 + y_out = jnp.empty((len(t_eval), len(y0)), dtype=y0.dtype) + + init_state = [stepper, t_eval, i, y_out] + + def cond_fun(state): + _, t_eval, i, _ = state + return i < len(t_eval) + + def body_fun(state): + stepper, t_eval, i, y_out = state + stepper = _bdf_step(stepper, fun_bind_inputs, jac_bind_inputs) + index = jnp.searchsorted(t_eval, stepper.t) + + def for_body(j, y_out): + t = t_eval[j] + y_out = jax.ops.index_update(y_out, jax.ops.index[j, :], + _bdf_interpolate(stepper, t)) + return y_out + + y_out = jax.lax.fori_loop(i, index, for_body, y_out) + return [stepper, t_eval, index, y_out] + + stepper, t_eval, i, y_out = jax.lax.while_loop(cond_fun, body_fun, + init_state) + return y_out + + +BDFInternalStates = [ + 't', 'atol', 'rtol', 'M', 'newton_tol', 'order', 'h', 'n_equal_steps', 'D', + 'y0', 'scale_y0', 'kappa', 'gamma', 'alpha', 'c', 'error_const', 'J', 'LU', 'U', + 'psi', 'n_function_evals', 'n_jacobian_evals', 'n_lu_decompositions', 'n_steps', + 'consistent_y0_failed' +] +BDFState = collections.namedtuple('BDFState', BDFInternalStates) + +jax.tree_util.register_pytree_node( + BDFState, + lambda xs: (tuple(xs), None), + lambda _, xs: BDFState(*xs) +) + + +def _bdf_init(fun, jac, mass, t0, y0, h0, rtol, atol): + """ + Initiation routine for Backward Difference formula (BDF) implicit multistep + integrator. + + See _bdf_odeint function above for details, this function returns a dict with the + initial state of the solver + + Parameters + ---------- + + fun: callable + function with signature (y, t), where t is a scalar time and y is a ndarray with + shape (n,), returns the rhs of the system of ODE equations as an nd array with + shape (n,) + jac: callable + function with signature (y, t), where t is a scalar time and y is a ndarray with + shape (n,), returns the jacobian matrix of fun as an ndarray with shape (n,n) + mass: ndarray + diagonal of the mass matrix with shape (n,) + t0: float + initial time + y0: ndarray + initial state vector with shape (n,) + h0: float + initial step size + rtol: (optional) float + relative tolerance for the solver + atol: (optional) float + absolute tolerance for the solver + """ + + state = {} + state['t'] = t0 + state['atol'] = atol + state['rtol'] = rtol + state['M'] = mass + EPS = jnp.finfo(y0.dtype).eps + state['newton_tol'] = jnp.max((10 * EPS / rtol, jnp.min((0.03, rtol ** 0.5)))) + + scale_y0 = atol + rtol * jnp.abs(y0) + y0, not_converged = _select_initial_conditions( + fun, mass, t0, y0, state['newton_tol'], scale_y0 + ) + state['consistent_y0_failed'] = not_converged + + f0 = fun(y0, t0) + order = 1 + state['order'] = order + state['h'] = _select_initial_step(atol, rtol, fun, t0, y0, f0, h0) + state['n_equal_steps'] = 0 + D = jnp.empty((MAX_ORDER + 1, len(y0)), dtype=y0.dtype) + D = jax.ops.index_update(D, jax.ops.index[0, :], y0) + D = jax.ops.index_update(D, jax.ops.index[1, :], f0 * state['h']) + state['D'] = D + state['y0'] = y0 + state['scale_y0'] = scale_y0 + + # kappa values for difference orders, taken from Table 1 of [1] + kappa = jnp.array([0, -0.1850, -1 / 9, -0.0823, -0.0415, 0]) + gamma = jnp.hstack((0, jnp.cumsum(1 / jnp.arange(1, MAX_ORDER + 1)))) + alpha = 1.0 / ((1 - kappa) * gamma) + c = state['h'] * alpha[order] + error_const = kappa * gamma + 1 / jnp.arange(1, MAX_ORDER + 2) + + state['kappa'] = kappa + state['gamma'] = gamma + state['alpha'] = alpha + state['c'] = c + state['error_const'] = error_const + + J = jac(y0, t0) + state['J'] = J + + state['LU'] = jax.scipy.linalg.lu_factor(state['M'] - c * J) + + state['U'] = _compute_R(order, 1) + state['psi'] = None + + state['n_function_evals'] = 2 + state['n_jacobian_evals'] = 1 + state['n_lu_decompositions'] = 1 + state['n_steps'] = 0 + + tuple_state = BDFState(*[state[k] for k in BDFInternalStates]) + y0, scale_y0 = _predict(tuple_state, D) + psi = _update_psi(tuple_state, D) + return tuple_state._replace(y0=y0, scale_y0=scale_y0, psi=psi) + + +def _compute_R(order, factor): + """ + computes the R matrix with entries + given by the first equation on page 8 of [1] + + This is used to update the differences matrix when step size h is varied according + to factor = h_{n+1} / h_n + + Note that the U matrix also defined in the same section can be also be + found using factor = 1, which corresponds to R with a constant step size + """ + I = jnp.arange(1, MAX_ORDER + 1).reshape(-1, 1) + J = jnp.arange(1, MAX_ORDER + 1) + M = jnp.empty((MAX_ORDER + 1, MAX_ORDER + 1)) + M = jax.ops.index_update(M, jax.ops.index[1:, 1:], + (I - 1 - factor * J) / I) + M = jax.ops.index_update(M, jax.ops.index[0], 1) + R = jnp.cumprod(M, axis=0) + + return R + + +def _select_initial_conditions(fun, M, t0, y0, tol, scale_y0): + # identify algebraic variables as zeros on diagonal + algebraic_variables = jnp.diag(M == 0.) + + # if all differentiable variables then return y0 (can use normal python if since M + # is static) + if not jnp.any(algebraic_variables): + return y0, False + + # calculate consistent initial conditions via a newton on -J_a @ delta = f_a This + # follows this reference: + # + # Shampine, L. F., Reichelt, M. W., & Kierzenka, J. A. (1999). Solving index-1 DAEs + # in MATLAB and Simulink. SIAM review, 41(3), 538-552. + + # calculate fun_a, function of algebraic variables + def fun_a(y_a): + y_full = jax.ops.index_update(y0, algebraic_variables, y_a) + return fun(y_full, t0)[algebraic_variables] + + y0_a = y0[algebraic_variables] + scale_y0_a = scale_y0[algebraic_variables] + + d = jnp.zeros(y0_a.shape[0], dtype=y0.dtype) + y_a = jnp.array(y0_a, copy=True) + + # calculate neg jacobian of fun_a + J_a = jax.jacfwd(fun_a)(y_a) + LU = jax.scipy.linalg.lu_factor(-J_a) + + converged = False + dy_norm_old = -1.0 + k = 0 + while_state = [k, converged, dy_norm_old, d, y_a] + + def while_cond(while_state): + k, converged, _, _, _ = while_state + return (converged == False) * (k < ROOT_SOLVE_MAXITER) # noqa: E712 + + def while_body(while_state): + k, converged, dy_norm_old, d, y_a = while_state + f_eval = fun_a(y_a) + dy = jax.scipy.linalg.lu_solve(LU, f_eval) + dy_norm = jnp.sqrt(jnp.mean((dy / scale_y0_a)**2)) + rate = dy_norm / dy_norm_old + + d += dy + y_a = y0_a + d + + # if converged then break out of iteration early + pred = dy_norm_old >= 0. + pred *= rate / (1 - rate) * dy_norm < tol + converged = (dy_norm == 0.) + pred + + dy_norm_old = dy_norm + + return [k + 1, converged, dy_norm_old, d, y_a] + + k, converged, dy_norm_old, d, y_a = jax.lax.while_loop(while_cond, + while_body, + while_state) + y_tilde = jax.ops.index_update(y0, algebraic_variables, y_a) + + return y_tilde, converged + + +def _select_initial_step(atol, rtol, fun, t0, y0, f0, h0): + """ + Select a good initial step by stepping forward one step of forward euler, and + comparing the predicted state against that using the provided function. + + Optimal step size based on the selected order is obtained using formula (4.12) + in [1] + + References + ---------- + .. [1] E. Hairer, S. P. Norsett G. Wanner, "Solving Ordinary Differential + Equations I: Nonstiff Problems", Sec. II.4. + """ + scale = atol + jnp.abs(y0) * rtol + y1 = y0 + h0 * f0 + f1 = fun(y1, t0 + h0) + d2 = jnp.sqrt(jnp.mean(((f1 - f0) / scale)**2)) + order = 1 + h1 = h0 * d2 ** (-1 / (order + 1)) + return jnp.min((100 * h0, h1)) + + +def _predict(state, D): + """ + predict forward to new step (eq 2 in [1]) + """ + n = len(state.y0) + order = state.order + orders = jnp.repeat(jnp.arange(MAX_ORDER + 1).reshape(-1, 1), n, axis=1) + subD = jnp.where(orders <= order, D, 0) + y0 = jnp.sum(subD, axis=0) + scale_y0 = state.atol + state.rtol * jnp.abs(state.y0) + return y0, scale_y0 + + +def _update_psi(state, D): + """ + update psi term as defined in second equation on page 9 of [1] + """ + order = state.order + n = len(state.y0) + orders = jnp.arange(MAX_ORDER + 1) + subGamma = jnp.where(orders > 0, jnp.where(orders <= order, state.gamma, 0), 0) + orders = jnp.repeat(orders.reshape(-1, 1), n, axis=1) + subD = jnp.where(orders > 0, jnp.where(orders <= order, D, 0), 0) + psi = jnp.dot( + subD.T, + subGamma + ) * state.alpha[order] + return psi + + +def _update_difference_for_next_step(state, d): + """ + update of difference equations can be done efficiently + by reusing d and D. + + From first equation on page 4 of [1]: + d = y_n - y^0_n = D^{k + 1} y_n + + Standard backwards difference gives + D^{j + 1} y_n = D^{j} y_n - D^{j} y_{n - 1} + + Combining these gives the following algorithm + """ + order = state.order + D = state.D + D = jax.ops.index_update(D, jax.ops.index[order + 2], + d - D[order + 1]) + D = jax.ops.index_update(D, jax.ops.index[order + 1], + d) + i = order + while_state = [i, D] + + def while_cond(while_state): + i, _ = while_state + return i >= 0 + + def while_body(while_state): + i, D = while_state + D = jax.ops.index_add(D, jax.ops.index[i], + D[i + 1]) + i -= 1 + return [i, D] + + i, D = jax.lax.while_loop(while_cond, while_body, while_state) + + return D + + +def _update_step_size_and_lu(state, factor): + state = _update_step_size(state, factor) + + # redo lu (c has changed) + LU = jax.scipy.linalg.lu_factor(state.M - state.c * state.J) + n_lu_decompositions = state.n_lu_decompositions + 1 + + return state._replace(LU=LU, n_lu_decompositions=n_lu_decompositions) + + +def _update_step_size(state, factor): + """ + If step size h is changed then also need to update the terms in + the first equation of page 9 of [1]: + + - constant c = h / (1-kappa) gamma_k term + - lu factorisation of (M - c * J) used in newton iteration (same equation) + - psi term + """ + order = state.order + h = state.h * factor + n_equal_steps = 0 + c = h * state.alpha[order] + + # update D using equations in section 3.2 of [1] + RU = _compute_R(order, factor).dot(state.U) + I = jnp.arange(0, MAX_ORDER + 1).reshape(-1, 1) + J = jnp.arange(0, MAX_ORDER + 1) + + # only update order+1, order+1 entries of D + RU = jnp.where(jnp.logical_and(I <= order, J <= order), + RU, jnp.identity(MAX_ORDER + 1)) + D = state.D + D = jnp.dot(RU.T, D) + # D = jax.ops.index_update(D, jax.ops.index[:order + 1], + # jnp.dot(RU.T, D[:order + 1])) + + # update psi (D has changed) + psi = _update_psi(state, D) + + # update y0 (D has changed) + y0, scale_y0 = _predict(state, D) + + return state._replace(n_equal_steps=n_equal_steps, + h=h, c=c, + D=D, psi=psi, y0=y0, scale_y0=scale_y0) + + +def _update_jacobian(state, jac): + """ + we update the jacobian using J(t_{n+1}, y^0_{n+1}) + following the scipy bdf implementation rather than J(t_n, y_n) as per [1] + """ + J = jac(state.y0, state.t + state.h) + n_jacobian_evals = state.n_jacobian_evals + 1 + LU = jax.scipy.linalg.lu_factor(state.M - state.c * J) + n_lu_decompositions = state.n_lu_decompositions + 1 + return state._replace(J=J, n_jacobian_evals=n_jacobian_evals, LU=LU, + n_lu_decompositions=n_lu_decompositions) + + +def _newton_iteration(state, fun): + tol = state.newton_tol + c = state.c + psi = state.psi + y0 = state.y0 + LU = state.LU + M = state.M + scale_y0 = state.scale_y0 + t = state.t + state.h + d = jnp.zeros(y0.shape, dtype=y0.dtype) + y = jnp.array(y0, copy=True) + n_function_evals = state.n_function_evals + + converged = False + dy_norm_old = -1.0 + k = 0 + while_state = [k, converged, dy_norm_old, d, y, n_function_evals] + + def while_cond(while_state): + k, converged, _, _, _, _ = while_state + return (converged == False) * (k < NEWTON_MAXITER) # noqa: E712 + + def while_body(while_state): + k, converged, dy_norm_old, d, y, n_function_evals = while_state + f_eval = fun(y, t) + n_function_evals += 1 + b = c * f_eval - M @ (psi + d) + dy = jax.scipy.linalg.lu_solve(LU, b) + dy_norm = jnp.sqrt(jnp.mean((dy / scale_y0)**2)) + rate = dy_norm / dy_norm_old + + # if iteration is not going to converge in NEWTON_MAXITER + # (assuming the current rate), then abort + pred = rate >= 1 + pred += rate ** (NEWTON_MAXITER - k) / (1 - rate) * dy_norm > tol + pred *= dy_norm_old >= 0 + k += pred * (NEWTON_MAXITER - k - 1) + + d += dy + y = y0 + d + + # if converged then break out of iteration early + pred = dy_norm_old >= 0. + pred *= rate / (1 - rate) * dy_norm < tol + converged = (dy_norm == 0.) + pred + + dy_norm_old = dy_norm + + return [k + 1, converged, dy_norm_old, d, y, n_function_evals] + + k, converged, dy_norm_old, d, y, n_function_evals = \ + jax.lax.while_loop(while_cond, + while_body, + while_state) + return converged, k, y, d, state._replace(n_function_evals=n_function_evals) + + +def rms_norm(arg): + return jnp.sqrt(jnp.mean(arg**2)) + + +def _prepare_next_step(state, d): + D = _update_difference_for_next_step(state, d) + psi = _update_psi(state, D) + y0, scale_y0 = _predict(state, D) + return state._replace(D=D, psi=psi, y0=y0, scale_y0=scale_y0) + + +def _prepare_next_step_order_change(state, d, y, n_iter): + order = state.order + + D = _update_difference_for_next_step(state, d) + + # Note: we are recalculating these from the while loop above, could re-use? + scale_y = state.atol + state.rtol * jnp.abs(y) + error = state.error_const[order] * d + error_norm = rms_norm(error / scale_y) + safety = 0.9 * (2 * NEWTON_MAXITER + 1) / (2 * NEWTON_MAXITER + + n_iter) + + # similar to the optimal step size factor we calculated above for the current + # order k, we need to calculate the optimal step size factors for orders + # k-1 and k+1. To do this, we note that the error = C_k * D^{k+1} y_n + error_m_norm = jnp.where( + order > 1, + rms_norm(state.error_const[order - 1] * D[order] / scale_y), + jnp.inf + ) + error_p_norm = jnp.where( + order < MAX_ORDER, + rms_norm(state.error_const[order + 1] * D[order + 2] / scale_y), + jnp.inf + ) + + error_norms = jnp.array([error_m_norm, error_norm, error_p_norm]) + factors = error_norms ** (-1 / (jnp.arange(3) + order)) + + # now we have the three factors for orders k-1, k and k+1, pick the maximum in + # order to maximise the resultant step size + max_index = jnp.argmax(factors) + order += max_index - 1 + + factor = jnp.min((MAX_FACTOR, safety * factors[max_index])) + + new_state = _update_step_size_and_lu(state._replace(D=D, order=order), factor) + return new_state + + +def _bdf_step(state, fun, jac): + #print('bdf_step', state.t, state.h) + # we will try and use the old jacobian unless convergence of newton iteration + # fails + updated_jacobian = False + # initialise step size and try to make the step, + # iterate, reducing step size until error is in bounds + step_accepted = False + y = jnp.empty_like(state.y0) + d = jnp.empty_like(state.y0) + n_iter = -1 + + # loop until step is accepted + while_state = [state, step_accepted, updated_jacobian, y, d, n_iter] + + def while_cond(while_state): + _, step_accepted, _, _, _, _ = while_state + return step_accepted == False # noqa: E712 + + def while_body(while_state): + state, step_accepted, updated_jacobian, y, d, n_iter = while_state + + # solve BDF equation using y0 as starting point + converged, n_iter, y, d, state = _newton_iteration(state, fun) + not_converged = converged == False # noqa: E712 + + # newton iteration did not converge, but jacobian has already been + # evaluated so reduce step size by 0.3 (as per [1]) and try again + state = tree_multimap( + partial(jnp.where, not_converged * updated_jacobian), + _update_step_size_and_lu(state, 0.3), + state + ) + + #if not_converged * updated_jacobian: + # print('not converged, update step size by 0.3') + #if not_converged * (updated_jacobian == False): + # print('not converged, update jacobian') + + # if not converged and jacobian not updated, then update the jacobian and try + # again + (state, updated_jacobian) = tree_multimap( + partial( + jnp.where, + not_converged * (updated_jacobian == False) # noqa: E712 + ), + (_update_jacobian(state, jac), True), + (state, False + updated_jacobian) + ) + + safety = 0.9 * (2 * NEWTON_MAXITER + 1) / (2 * NEWTON_MAXITER + n_iter) + scale_y = state.atol + state.rtol * jnp.abs(y) + + # combine eq 3, 4 and 6 from [1] to obtain error + # Note that error = C_k * h^{k+1} y^{k+1} + # and d = D^{k+1} y_{n+1} \approx h^{k+1} y^{k+1} + error = state.error_const[state.order] * d + + error_norm = rms_norm(error / scale_y) + + # calculate optimal step size factor as per eq 2.46 of [2] + factor = jnp.max((MIN_FACTOR, + safety * + error_norm ** (-1 / (state.order + 1)))) + + #if converged * (error_norm > 1): + # print('converged, but error is too large',error_norm, factor, d, scale_y) + + (state, step_accepted) = tree_multimap( + partial( + jnp.where, + converged * (error_norm > 1) # noqa: E712 + ), + (_update_step_size_and_lu(state, factor), False), + (state, converged) + ) + + return [state, step_accepted, updated_jacobian, y, d, n_iter] + + state, step_accepted, updated_jacobian, y, d, n_iter = \ + jax.lax.while_loop(while_cond, while_body, while_state) + + # take the accepted step + n_steps = state.n_steps + 1 + t = state.t + state.h + + # a change in order is only done after running at order k for k + 1 steps + # (see page 83 of [2]) + n_equal_steps = state.n_equal_steps + 1 + + state = state._replace(n_equal_steps=n_equal_steps, t=t, n_steps=n_steps) + + state = tree_multimap( + partial(jnp.where, n_equal_steps < state.order + 1), + _prepare_next_step(state, d), + _prepare_next_step_order_change(state, d, y, n_iter) + ) + + return state + + +def _bdf_interpolate(state, t_eval): + """ + interpolate solution at time values t* where t-h < t* < t + + definition of the interpolating polynomial can be found on page 7 of [1] + """ + order = state.order + t = state.t + h = state.h + D = state.D + j = 0 + time_factor = 1.0 + order_summation = D[0] + while_state = [j, time_factor, order_summation] + + def while_cond(while_state): + j, _, _ = while_state + return j < order + + def while_body(while_state): + j, time_factor, order_summation = while_state + time_factor *= (t_eval - (t - h * j)) / (h * (1 + j)) + order_summation += D[j + 1] * time_factor + j += 1 + return [j, time_factor, order_summation] + + j, time_factor, order_summation = jax.lax.while_loop(while_cond, + while_body, + while_state) + return order_summation + + +def block_diag(lst): + def block_fun(i, j, Ai, Aj): + if i == j: + return Ai + else: + return jnp.zeros( + ( + Ai.shape[0] if Ai.ndim > 1 else 1, + Aj.shape[1] if Aj.ndim > 1 else 1, + ), + dtype=Ai.dtype + ) + + blocks = [ + [block_fun(i, j, Ai, Aj) for j, Aj in enumerate(lst)] + for i, Ai in enumerate(lst) + ] + + return jnp.block(blocks) + +# NOTE: the code below (except the docstring on jax_bdf_integrate and other minor +# edits), has been modified from the JAX library at https://github.com/google/jax. +# The main difference is the addition of support for semi-explicit dae index 1 problems +# via the addition of a mass matrix. +# This is under an Apache license, a short form of which is given here: +# +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this +# file except in compliance with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under +# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF +# ANY KIND, either express or implied. See the License for the specific language +# governing permissions and limitations under the License. + + +def jax_bdf_integrate(func, y0, t_eval, *args, rtol=1e-6, atol=1e-6, mass=None): + """ + Backward Difference formula (BDF) implicit multistep integrator. The basic algorithm + is derived in [2]_. This particular implementation follows that implemented in the + Matlab routine ode15s described in [1]_ and the SciPy implementation [3]_, which + features the NDF formulas for improved stability, with associated differences in the + error constants, and calculates the jacobian at J(t_{n+1}, y^0_{n+1}). This + implementation was based on that implemented in the scipy library [3]_, which also + mainly follows [1]_ but uses the more standard jacobian update. + + Parameters + ---------- + + func: callable + function to evaluate the time derivative of the solution `y` at time + `t` as `func(y, t, *args)`, producing the same shape/structure as `y0`. + y0: ndarray + initial state vector + t_eval: ndarray + time points to evaluate the solution, has shape (m,) + args: (optional) + tuple of additional arguments for `fun`, which must be arrays + scalars, or (nested) standard Python containers (tuples, lists, dicts, + namedtuples, i.e. pytrees) of those types. + rtol: (optional) float + relative tolerance for the solver + atol: (optional) float + absolute tolerance for the solver + mass: (optional) ndarray + diagonal of the mass matrix with shape (n,) + + Returns + ------- + y: ndarray with shape (n, m) + calculated state vector at each of the m time points + + References + ---------- + .. [1] L. F. Shampine, M. W. Reichelt, "THE MATLAB ODE SUITE", SIAM J. SCI. + COMPUTE., Vol. 18, No. 1, pp. 1-22, January 1997. + .. [2] G. D. Byrne, A. C. Hindmarsh, "A Polyalgorithm for the Numerical + Solution of Ordinary Differential Equations", ACM Transactions on + Mathematical Software, Vol. 1, No. 1, pp. 71-96, March 1975. + .. [3] Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, + T., Cournapeau, D., ... & van der Walt, S. J. (2020). SciPy 1.0: + fundamental algorithms for scientific computing in Python. + Nature methods, 17(3), 261-272. + """ + def _check_arg(arg): + if not isinstance(arg, core.Tracer) and not core.valid_jaxtype(arg): + msg = ("The contents of odeint *args must be arrays or scalars, but got " + "\n{}.") + raise TypeError(msg.format(arg)) + + flat_args, in_tree = tree_flatten((y0, t_eval[0], *args)) + in_avals = tuple(safe_map(abstractify, flat_args)) + converted, consts = closure_convert(func, in_tree, in_avals) + return _bdf_odeint_wrapper(converted, mass, rtol, atol, y0, t_eval, *consts, *args) + + +def flax_while_loop(cond_fun, body_fun, init_val): # pragma: no cover + """ + for debugging purposes, use this instead of jax.lax.while_loop + """ + val = init_val + while cond_fun(val): + val = body_fun(val) + return val + + +def flax_fori_loop(start, stop, body_fun, init_val): # pragma: no cover + """ + for debugging purposes, use this instead of jax.lax.fori_loop + """ + val = init_val + for i in range(start, stop): + val = body_fun(i, val) + return val + + +def flax_scan(f, init, xs, length=None): # pragma: no cover + """ + for debugging purposes, use this instead of jax.lax.scan + """ + if xs is None: + xs = [None] * length + carry = init + ys = [] + for x in xs: + carry, y = f(carry, x) + ys.append(y) + return carry, onp.stack(ys) + + +@jax.partial(jax.jit, static_argnums=(0, 1, 2, 3)) +def _bdf_odeint_wrapper(func, mass, rtol, atol, y0, ts, *args): + y0, unravel = ravel_pytree(y0) + if mass is None: + mass = onp.identity(y0.shape[0], dtype=y0.dtype) + else: + mass = block_diag(tree_flatten(mass)[0]) + func = ravel_first_arg(func, unravel) + out = _bdf_odeint(func, mass, rtol, atol, y0, ts, *args) + return jax.vmap(unravel)(out) + + +def _bdf_odeint_fwd(func, mass, rtol, atol, y0, ts, *args): + ys = _bdf_odeint(func, mass, rtol, atol, y0, ts, *args) + return ys, (ys, ts, args) + + +def _bdf_odeint_rev(func, mass, rtol, atol, res, g): + ys, ts, args = res + + def aug_dynamics(augmented_state, t, *args): + """Original system augmented with vjp_y, vjp_t and vjp_args.""" + y, y_bar, *_ = augmented_state + # `t` here is negative time, so we need to negate again to get back to + # normal time. See the `odeint` invocation in `scan_fun` below. + y_dot, vjpfun = jax.vjp(func, y, -t, *args) + + # Adjoint equations for semi-explicit dae index 1 system from + # + # [1] Cao, Y., Li, S., Petzold, L., & Serban, R. (2003). Adjoint sensitivity + # analysis for differential-algebraic equations: The adjoint DAE system and its + # numerical solution. SIAM journal on scientific computing, 24(3), 1076-1089. + # + # y_bar_dot_d = -J_dd^T y_bar_d - J_ad^T y_bar_a + # 0 = J_da^T y_bar_d + J_aa^T y_bar_d + + y_bar_dot, *rest = vjpfun(y_bar) + + return (-y_dot, y_bar_dot, *rest) + + algebraic_variables = jnp.diag(mass) == 0. + differentiable_variables = algebraic_variables == False # noqa: E712 + mass_is_I = (mass == jnp.eye(mass.shape[0])).all() + is_dae = jnp.any(algebraic_variables) + + if not mass_is_I: + M_dd = mass[onp.ix_(differentiable_variables, differentiable_variables)] + LU_invM_dd = jax.scipy.linalg.lu_factor(M_dd) + + def initialise(g0, y0, t0): + # [1] gives init conditions for y_bar_a = g_d - J_ad^T (J_aa^T)^-1 g_a + if mass_is_I: + y_bar = g0 + elif is_dae: + J = jax.jacfwd(func)(y0, t0, *args) + + # boolean arguments not implemented in jnp.ix_ + J_aa = J[onp.ix_(algebraic_variables, algebraic_variables)] + J_ad = J[onp.ix_(algebraic_variables, differentiable_variables)] + LU = jax.scipy.linalg.lu_factor(J_aa) + g0_a = g0[algebraic_variables] + invJ_aa = jax.scipy.linalg.lu_solve(LU, g0_a) + y_bar = jax.ops.index_update( + g0, differentiable_variables, + jax.scipy.linalg.lu_solve(LU_invM_dd, + g0_a - J_ad @ invJ_aa) + ) + else: + y_bar = jax.scipy.linalg.lu_solve(LU_invM_dd, g0) + return y_bar + + y_bar = initialise(g[-1], ys[-1], ts[-1]) + ts_bar = [] + t0_bar = 0. + + def arg_to_identity(arg): + return onp.identity(arg.shape[0] if arg.ndim > 0 else 1, dtype=arg.dtype) + + aug_mass = (mass, mass, jnp.array(1.), tree_map(arg_to_identity, args)) + + def scan_fun(carry, i): + y_bar, t0_bar, args_bar = carry + # Compute effect of moving measurement time + t_bar = jnp.dot(func(ys[i], ts[i], *args), g[i]) + t0_bar = t0_bar - t_bar + # Run augmented system backwards to previous observation + _, y_bar, t0_bar, args_bar = jax_bdf_integrate( + aug_dynamics, (ys[i], y_bar, t0_bar, args_bar), + jnp.array([-ts[i], -ts[i - 1]]), + *args, mass=aug_mass, + rtol=rtol, atol=atol) + y_bar, t0_bar, args_bar = tree_map(op.itemgetter(1), (y_bar, t0_bar, args_bar)) + # Add gradient from current output + y_bar = y_bar + initialise(g[i - 1], ys[i - 1], ts[i - 1]) + return (y_bar, t0_bar, args_bar), t_bar + + init_carry = (y_bar, t0_bar, tree_map(jnp.zeros_like, args)) + (y_bar, t0_bar, args_bar), rev_ts_bar = jax.lax.scan( + scan_fun, init_carry, jnp.arange(len(ts) - 1, 0, -1)) + ts_bar = jnp.concatenate([jnp.array([t0_bar]), rev_ts_bar[::-1]]) + return (y_bar, ts_bar, *args_bar) + + +_bdf_odeint.defvjp(_bdf_odeint_fwd, _bdf_odeint_rev) + + +@cache() +def closure_convert(fun, in_tree, in_avals): + in_pvals = [pe.PartialVal.unknown(aval) for aval in in_avals] + wrapped_fun, out_tree = flatten_fun_nokwargs(lu.wrap_init(fun), in_tree) + with core.initial_style_staging(): + jaxpr, _, consts = pe.trace_to_jaxpr( + wrapped_fun, in_pvals, instantiate=True, stage_out=False + ) + out_tree = out_tree() + + # We only want to closure convert for constants with respect to which we're + # differentiating. As a proxy for that, we hoist consts with float dtype. + # TODO(mattjj): revise this approach + (closure_consts, hoisted_consts), merge = partition_list( + lambda c: dtypes.issubdtype(dtypes.dtype(c), jnp.inexact), + consts + ) + num_consts = len(hoisted_consts) + + def converted_fun(y, t, *hconsts_args): + hoisted_consts, args = split_list(hconsts_args, [num_consts]) + consts = merge(closure_consts, hoisted_consts) + all_args, _ = tree_flatten((y, t, *args)) + out_flat = core.eval_jaxpr(jaxpr, consts, *all_args) + return tree_unflatten(out_tree, out_flat) + + return converted_fun, hoisted_consts + + +def partition_list(choice, lst): + out = [], [] + which = [out[choice(elt)].append(elt) or choice(elt) for elt in lst] + + def merge(l1, l2): + i1, i2 = iter(l1), iter(l2) + return [next(i2 if snd else i1) for snd in which] + return out, merge + + +def abstractify(x): + return core.raise_to_shaped(core.get_aval(x)) + + +def ravel_first_arg(f, unravel): + return ravel_first_arg_(lu.wrap_init(f), unravel).call_wrapped + + +@lu.transformation +def ravel_first_arg_(unravel, y_flat, *args): + y = unravel(y_flat) + ans = yield (y,) + args, {} + ans_flat, _ = ravel_pytree(ans) + yield ans_flat diff --git a/pybamm/solvers/jax_solver.py b/pybamm/solvers/jax_solver.py new file mode 100644 index 0000000000..db912d0da1 --- /dev/null +++ b/pybamm/solvers/jax_solver.py @@ -0,0 +1,198 @@ +# +# Solver class using Scipy's adaptive time stepper +# +import pybamm + +import jax +from jax.experimental.ode import odeint +import jax.numpy as jnp +import numpy as onp + + +class JaxSolver(pybamm.BaseSolver): + """ + Solve a discretised model using a JAX compiled solver. + + **Note**: this solver will not work with models that have + termination events or are not converted to jax format + + Raises + ------ + + RuntimeError + if model has any termination events + + RuntimeError + if `model.convert_to_format != 'jax'` + + Parameters + ---------- + method: str + 'RK45' (default) uses jax.experimental.odeint + 'BDF' uses custom jax_bdf_integrate (see jax_bdf_integrate.py for details) + root_method: str, optional + Method to use to calculate consistent initial conditions. By default this uses + the newton chord method internal to the jax bdf solver, otherwise choose from + the set of default options defined in docs for pybamm.BaseSolver + rtol : float, optional + The relative tolerance for the solver (default is 1e-6). + atol : float, optional + The absolute tolerance for the solver (default is 1e-6). + extra_options : dict, optional + Any options to pass to the solver. + Please consult `JAX documentation + <https://github.com/google/jax/blob/master/jax/experimental/ode.py>`_ + for details. + """ + + def __init__(self, method='RK45', root_method=None, + rtol=1e-6, atol=1e-6, extra_options=None): + # note: bdf solver itself calculates consistent initial conditions so can set + # root_method to none, allow user to override this behavior + super().__init__(method, rtol, atol, root_method=root_method) + method_options = ['RK45', 'BDF'] + if method not in method_options: + raise ValueError('method must be one of {}'.format(method_options)) + self.ode_solver = False + if method == 'RK45': + self.ode_solver = True + self.extra_options = extra_options or {} + self.name = "JAX solver ({})".format(method) + self._cached_solves = dict() + + def get_solve(self, model, t_eval): + """ + Return a compiled JAX function that solves an ode model with input arguments. + + Parameters + ---------- + model : :class:`pybamm.BaseModel` + The model whose solution to calculate. + t_eval : :class:`numpy.array`, size (k,) + The times at which to compute the solution + + Returns + ------- + function + A function with signature `f(inputs)`, where inputs are a dict containing + any input parameters to pass to the model when solving + + """ + if model not in self._cached_solves: + if model not in self.models_set_up: + raise RuntimeError("Model is not set up for solving, run" + "`solver.solve(model)` first") + + self._cached_solves[model] = self.create_solve(model, t_eval) + + return self._cached_solves[model] + + def create_solve(self, model, t_eval): + """ + Return a compiled JAX function that solves an ode model with input arguments. + + Parameters + ---------- + model : :class:`pybamm.BaseModel` + The model whose solution to calculate. + t_eval : :class:`numpy.array`, size (k,) + The times at which to compute the solution + + Returns + ------- + function + A function with signature `f(inputs)`, where inputs are a dict containing + any input parameters to pass to the model when solving + + """ + if model.convert_to_format != "jax": + raise RuntimeError("Model must be converted to JAX to use this solver" + " (i.e. `model.convert_to_format = 'jax')") + + if model.terminate_events_eval: + raise RuntimeError("Terminate events not supported for this solver." + " Model has the following events:" + " {}.\nYou can remove events using `model.events = []`." + " It might be useful to first solve the model using a" + " different solver to obtain the time of the event, then" + " re-solve using no events and a fixed" + " end-time".format(model.events)) + + # Initial conditions, make sure they are an 0D array + y0 = jnp.array(model.y0).reshape(-1) + mass = None + if self.method == 'BDF': + mass = model.mass_matrix.entries.toarray() + + def rhs_ode(y, t, inputs): + return model.rhs_eval(t, y, inputs), + + def rhs_dae(y, t, inputs): + return jnp.concatenate([ + model.rhs_eval(t, y, inputs), + model.algebraic_eval(t, y, inputs), + ]) + + def solve_model_rk45(inputs): + y = odeint( + rhs_ode, + y0, + t_eval, + inputs, + rtol=self.rtol, + atol=self.atol, + **self.extra_options + ) + return jnp.transpose(y) + + def solve_model_bdf(inputs): + y = pybamm.jax_bdf_integrate( + rhs_dae, + y0, + t_eval, + inputs, + rtol=self.rtol, + atol=self.atol, + mass=mass, + **self.extra_options + ) + return jnp.transpose(y) + + if self.method == 'RK45': + return jax.jit(solve_model_rk45) + else: + return jax.jit(solve_model_bdf) + + def _integrate(self, model, t_eval, inputs=None): + """ + Solve a model defined by dydt with initial conditions y0. + + Parameters + ---------- + model : :class:`pybamm.BaseModel` + The model whose solution to calculate. + t_eval : :class:`numpy.array`, size (k,) + The times at which to compute the solution + inputs : dict, optional + Any input parameters to pass to the model when solving + + Returns + ------- + object + An object containing the times and values of the solution, as well as + various diagnostic messages. + + """ + if model not in self._cached_solves: + self._cached_solves[model] = self.create_solve(model, t_eval) + + y = self._cached_solves[model](inputs) + + # note - the actual solve is not done until this line! + y = onp.array(y) + + termination = "final time" + t_event = None + y_event = onp.array(None) + return pybamm.Solution(t_eval, y, + t_event, y_event, termination) diff --git a/pybamm/solvers/processed_symbolic_variable.py b/pybamm/solvers/processed_symbolic_variable.py index 63f7eb4ae3..f3a18e9ee7 100644 --- a/pybamm/solvers/processed_symbolic_variable.py +++ b/pybamm/solvers/processed_symbolic_variable.py @@ -121,32 +121,9 @@ def initialise_1D(self): if idx == 0: entries = next_entries else: - entries = casadi.horzcat(entries, next_entries) - - # Get node values - nodes = self.mesh.nodes + entries = casadi.vertcat(entries, next_entries) - # assign attributes for reference (either x_sol or r_sol) self.entries = entries - self.dimensions = 1 - if self.domain[0] in ["negative particle", "positive particle"]: - self.first_dimension = "r" - self.r_sol = nodes - elif self.domain[0] in [ - "negative electrode", - "separator", - "positive electrode", - ]: - self.first_dimension = "x" - self.x_sol = nodes - elif self.domain == ["current collector"]: - self.first_dimension = "z" - self.z_sol = nodes - else: - self.first_dimension = "x" - self.x_sol = nodes - - self.first_dim_pts = nodes def value(self, inputs=None, check_inputs=True): """ @@ -156,6 +133,13 @@ def value(self, inputs=None, check_inputs=True): ---------- inputs : dict The inputs at which to evaluate the variable. + + Returns + ------- + casadi.DM + A casadi matrix of size (n_x * n_t, 1), where n_x is the number of spatial + discretisation points for the variable, and n_t is the length of the time + vector """ if inputs is None: return self.casadi_entries_fn(casadi.DM()) @@ -173,6 +157,13 @@ def sensitivity(self, inputs=None, check_inputs=True): ---------- inputs : dict The inputs at which to evaluate the variable. + + Returns + ------- + casadi.DM + A casadi matrix of size (n_x * n_t, n_p), where n_x is the number of spatial + discretisation points for the variable, n_t is the length of the time + vector, and n_p is the number of input parameters """ if self.casadi_sens_fn is None: raise ValueError( @@ -204,17 +195,19 @@ def _check_and_transform(self, inputs_dict): # Convert dict to casadi vector if not isinstance(inputs_dict, dict): raise TypeError("inputs should be 'dict' but are {}".format(inputs_dict)) - # Check keys are consistent - if list(inputs_dict.keys()) != list(self.symbolic_inputs_dict.keys()): - raise ValueError( - "Inconsistent input keys: expected {}, actual {}".format( - list(self.symbolic_inputs_dict.keys()), list(inputs_dict.keys()) - ) - ) - inputs = casadi.vertcat(*[p for p in inputs_dict.values()]) + # Sort input dictionary keys according to the symbolic inputs dictionary + # For practical number of input parameters this should be extremely fast and + # so is ok to do at each step + try: + inputs_dict_sorted = { + k: inputs_dict[k] for k in self.symbolic_inputs_dict.keys() + } + except KeyError as e: + raise KeyError("Inconsistent input keys. '{}' not found".format(e.args[0])) + inputs = casadi.vertcat(*[p for p in inputs_dict_sorted.values()]) if inputs.shape[0] != self.symbolic_inputs_total_shape: # Find the variable which caused the error, for a clearer error message - for key, inp in inputs_dict.items(): + for key, inp in inputs_dict_sorted.items(): if inp.shape[0] != self.symbolic_inputs_dict[key].shape[0]: raise ValueError( "Wrong shape for input '{}': expected {}, actual {}".format( diff --git a/pybamm/spatial_methods/finite_volume.py b/pybamm/spatial_methods/finite_volume.py index 8b00a6bfc5..38fdc1ef8b 100644 --- a/pybamm/spatial_methods/finite_volume.py +++ b/pybamm/spatial_methods/finite_volume.py @@ -242,7 +242,7 @@ def integral(self, child, discretised_child, integration_dimension): second_dim_repeats = self._get_auxiliary_domain_repeats(child.domains) r_numpy = np.kron(np.ones(second_dim_repeats), submesh.nodes) r = pybamm.Vector(r_numpy) - out = 4 * np.pi ** 2 * integration_vector @ (discretised_child * r) + out = 4 * np.pi * integration_vector @ (discretised_child * r ** 2) else: out = integration_vector @ discretised_child @@ -1384,3 +1384,66 @@ def harmonic_mean(array): else: raise ValueError("method '{}' not recognised".format(method)) return out + + def upwind_or_downwind(self, symbol, discretised_symbol, bcs, direction): + """ + Implement an upwinding operator. Currently, this requires the symbol to have + a Dirichlet boundary condition on the left side (for upwinding) or right side + (for downwinding). + + Parameters + ---------- + symbol : :class:`pybamm.SpatialVariable` + The variable to be discretised + discretised_gradient : :class:`pybamm.Vector` + Contains the discretised gradient of symbol + bcs : dict of tuples (:class:`pybamm.Scalar`, str) + Dictionary (with keys "left" and "right") of boundary conditions. Each + boundary condition consists of a value and a flag indicating its type + (e.g. "Dirichlet") + direction : str + Direction in which to apply the operator (upwind or downwind) + """ + submesh = self.mesh.combine_submeshes(*symbol.domain) + n = submesh.npts + + if symbol.id not in bcs: + raise pybamm.ModelError( + "Boundary conditions must be provided for " + "{}ing '{}'".format(direction, symbol) + ) + + if direction == "upwind": + bc, typ = bcs[symbol.id]["left"] + if typ != "Dirichlet": + raise pybamm.ModelError( + "Dirichlet boundary conditions must be provided for " + "upwinding '{}'".format(symbol) + ) + + concat_bc = pybamm.NumpyConcatenation(bc, discretised_symbol) + + upwind_mat = vstack( + [ + csr_matrix(([1], ([0], [0])), shape=(1, n + 1)), + diags([-0.5, 1.5], [0, 1], shape=(n, n + 1)), + ] + ) + symbol_out = pybamm.Matrix(upwind_mat) @ concat_bc + elif direction == "downwind": + bc, typ = bcs[symbol.id]["right"] + if typ != "Dirichlet": + raise pybamm.ModelError( + "Dirichlet boundary conditions must be provided for " + "downwinding '{}'".format(symbol) + ) + + concat_bc = pybamm.NumpyConcatenation(discretised_symbol, bc) + downwind_mat = vstack( + [ + diags([1.5, -0.5], [0, 1], shape=(n, n + 1)), + csr_matrix(([1], ([0], [n])), shape=(1, n + 1)), + ] + ) + symbol_out = pybamm.Matrix(downwind_mat) @ concat_bc + return symbol_out diff --git a/pybamm/spatial_methods/spectral_volume.py b/pybamm/spatial_methods/spectral_volume.py new file mode 100644 index 0000000000..c8f8848d3f --- /dev/null +++ b/pybamm/spatial_methods/spectral_volume.py @@ -0,0 +1,706 @@ +import pybamm + +import numpy as np + +from scipy.sparse import ( + diags, + eye, + kron, + csr_matrix, + lil_matrix, + coo_matrix, + vstack, +) + + +class SpectralVolume(pybamm.FiniteVolume): + """ + A class which implements the steps specific to the Spectral Volume + discretisation. It is implemented in such a way that it is very + similar to FiniteVolume; that comes at the cost that it is only + compatible with the SpectralVolume1DSubMesh (which is a certain + subdivision of any 1D mesh, so it shouldn't be a problem). + + For broadcast and mass_matrix, we follow the default behaviour from + SpatialMethod. For spatial_variable, preprocess_external_variables, + divergence, divergence_matrix, laplacian, integral, + definite_integral_matrix, indefinite_integral, + indefinite_integral_matrix, indefinite_integral_matrix_nodes, + indefinite_integral_matrix_edges, delta_function + we follow the behaviour from FiniteVolume. This is possible since + the node values are integral averages with Spectral Volume, just + as with Finite Volume. delta_function assigns the integral value + to a CV instead of a SV this way, but that doesn't matter too much. + Additional methods that are inherited by FiniteVolume which + technically are not suitable for Spectral Volume are + boundary_value_or_flux, process_binary_operators, concatenation, + node_to_edge, edge_to_node and shift. While node_to_edge (as well as + boundary_value_or_flux and process_binary_operators) + could utilize the reconstruction approach of Spectral Volume, the + inverse edge_to_node would still have to fall back to the Finite + Volume behaviour. So these are simply inherited for consistency. + boundary_value_or_flux might not benefit from the reconstruction + approach at all, as it seems to only preprocess symbols. + + Parameters + ---------- + mesh : :class:`pybamm.Mesh` + Contains all the submeshes for discretisation + + **Extends:"": :class:`pybamm.FiniteVolume` + """ + + def __init__(self, options=None, order=2): + self.order = order + super().__init__(options) + + def chebyshev_collocation_points(self, noe, a=-1.0, b=1.0): + """ + Calculates Chebyshev collocation points in descending order. + + Parameters + ---------- + noe: integer + The number of the collocation points. "number of edges" + a: float + Left end of the interval on which the Chebyshev collocation + points are constructed. Default is -1. + b: float + Right end of the interval on which the Chebyshev collocation + points are constructed. Default is 1. + + Returns + ------- + :class:`numpy.array` + Chebyshev collocation points on [a,b]. + """ + + return a + 0.5 * (b - a) * (1 + np.sin(np.pi * np.array( + [(noe - 1 - 2 * i) / (2 * noe - 2) for i in range(noe)]))) + + def cv_boundary_reconstruction_sub_matrix(self): + """ + Coefficients for reconstruction of a function through averages. + The resulting matrix is scale-invariant. + + Parameters + ---------- + + Returns + ------- + + References + ---------- + .. [2] Z. J. Wang. + “Spectral (Finite) Volume Method for Conservation Laws + on Unstructured Grids”. + Journal of Computational Physics, + 178:210–251, 2002 + """ + + # While Spectral Volume in general may use any point + # distribution for CVs, the Chebyshev nodes are the most stable. + # The differentiation matrices are only implemented for those. + edges = np.flip( + self.chebyshev_collocation_points(self.order + 1)) + + # Nomenclature in the reference: + # c[j,l] are the coefficients from the reference. + # The index of the CV boundaries j ranges from 0 to self.order. + # The index of the CVs themselves l ranges from 1 to self.order. + # l ranges from 0 to self.order - 1 here. + c = np.empty([self.order + 1, self.order]) + # h[l] are the lengths of the CVs. + h = [edges[i + 1] - edges[i] for i in range(self.order)] + + # Optimised derivative of the "Lagrange polynomial denominator". + # It is equivalent to d_omega_d_x(x) at x = x_{j+1/2}. + def d_omega_d_x(j): + return np.prod( + edges[j] - edges, + where=[True] * j + [False] + [True] * (len(edges) - 1 - j) + ) + + for j in range(self.order + 1): + for ell in range(self.order): + c[j, ell] = h[ell] * np.sum([ + 1.0 / d_omega_d_x(r) * np.sum( + [ + np.prod(edges[j] - edges, + where=[q != r and q != m + for q in range(self.order + 1)]) + for m in range(self.order + 1) + ], + where=[m != r for m in range(self.order + 1)] + ) + for r in range(ell + 1, self.order + 1) + ]) + + return c + + def cv_boundary_reconstruction_matrix(self, domain, auxiliary_domains): + """ + "Broadcasts" the basic edge value reconstruction matrix to the + actual shape of the discretised symbols. Note that the product + of this and a discretised symbol is a vector which represents + duplicate values for all inner SV edges. These are the + reconstructed values from both sides. + + Parameters + ---------- + domain : list + The domain(s) in which to compute the gradient matrix + auxiliary_domains : dict + The auxiliary domains in which to compute the gradient + matrix + + Returns + ------- + :class:`pybamm.Matrix` + The (sparse) CV reconstruction matrix for the domain + """ + # Create appropriate submesh by combining submeshes in domain + submesh = self.mesh.combine_submeshes(*domain) + + # Obtain the basic reconstruction matrix. + recon_sub_matrix = self.cv_boundary_reconstruction_sub_matrix() + + # Create 1D matrix using submesh + # n is the number of SVs, submesh.npts is the number of CVs + n = submesh.npts // self.order + sub_matrix = csr_matrix(kron(eye(n), recon_sub_matrix)) + + # number of repeats + second_dim_repeats = self._get_auxiliary_domain_repeats( + auxiliary_domains) + + # generate full matrix from the submatrix + # Convert to csr_matrix so that we can take the index + # (row-slicing), which is not supported by the default kron + # format. Note that this makes column-slicing inefficient, + # but this should not be an issue. + matrix = csr_matrix(kron(eye(second_dim_repeats), sub_matrix)) + + return pybamm.Matrix(matrix) + + def chebyshev_differentiation_matrices(self, noe, dod): + """ + Chebyshev differentiation matrices. + + Parameters + ---------- + noe: integer + The number of the collocation points. "number of edges" + dod: integer + The maximum order of differentiation for which a + differentiation matrix shall be calculated. Note that it has + to be smaller than 'noe'. "degrees of differentiation" + + Returns + ------- + list(:class:`numpy.array`) + The differentiation matrices in ascending order of + differentiation order. With exact arithmetic, the diff. + matrix of order p would just be the pth matrix power of + the diff. matrix of order 1. This method computes the higher + orders in a more numerically stable way. + + References + ---------- + .. [1] Richard Baltensperger and Manfred R. Trummer. + “Spectral Differencing With A Twist”. + Society for Industrial and Applied Mathematics, + 24(5):1465–1487, 2003 + """ + if(dod >= noe): + raise ValueError( + "Too many degrees of differentiation. At most " + + str(noe - 1) + " are possible for " + str(noe) + " edges." + ) + + edges = self.chebyshev_collocation_points(noe) + + # These matrices tend to be dense, thus numpy arrays are used. + prefactors = np.array([ + [(i - j + 1) % 2 - (i - j) % 2 + for j in range(noe)] + for i in range(noe) + ]) + prefactors = (prefactors * np.array( + [2] + [1 for i in range(noe - 2)] + [2])).T + prefactors = prefactors * np.array( + [0.5] + [1 for i in range(noe - 2)] + [0.5]) + + inverse_difference = np.array([ + [1.0 / (edges[i] - edges[j]) for j in range(i)] + + [0.0] + + [1.0 / (edges[i] - edges[j]) for j in range(i + 1, noe)] + for i in range(noe) + ]) + + differentiation_matrices = [] + # This matrix changes in each of the following iterations. + temp_diff = np.eye(noe) + + # The calculation here makes extensive use of the element-wise + # multiplication of numpy.arrays. The * are intentionally not @! + for p in range(dod): + temp = (prefactors.T * np.diag(temp_diff)).T - temp_diff + temp_diff = (p + 1) * inverse_difference * temp + # Negative sum trick: the rows of the exact matrices sum to + # zero. The diagonal gets less accurate with this, but the + # approximation of the differential will be better overall. + for i in range(noe): + temp_diff[i, i] = -np.sum(np.delete(temp_diff[i], i)) + differentiation_matrices.append(temp_diff.copy()) + + return differentiation_matrices + + def gradient(self, symbol, discretised_symbol, boundary_conditions): + """Matrix-vector multiplication to implement the gradient + operator. See :meth:`pybamm.SpatialMethod.gradient` + """ + # Discretise symbol + domain = symbol.domain + + # Reconstruct edge values from node values. + reconstructed_symbol = self.cv_boundary_reconstruction_matrix( + domain, symbol.auxiliary_domains) @ discretised_symbol + + # Add Dirichlet boundary conditions, if defined + if symbol.id in boundary_conditions: + bcs = boundary_conditions[symbol.id] + if any(bc[1] == "Dirichlet" for bc in bcs.values()): + # add ghost nodes and update domain + reconstructed_symbol = self.replace_dirichlet_values( + symbol, reconstructed_symbol, bcs + ) + + # note in 1D spherical grad and normal grad are the same + gradient_matrix = self.gradient_matrix( + domain, + symbol.auxiliary_domains + ) + penalty_matrix = self.penalty_matrix( + domain, + symbol.auxiliary_domains + ) + + # Multiply by gradient matrix + out = (gradient_matrix @ reconstructed_symbol + + penalty_matrix @ discretised_symbol) + + # Add Neumann boundary conditions, if defined + if symbol.id in boundary_conditions: + bcs = boundary_conditions[symbol.id] + if any(bc[1] == "Neumann" for bc in bcs.values()): + out = self.replace_neumann_values(symbol, out, bcs) + + return out + + def gradient_matrix(self, domain, auxiliary_domains): + """ + Gradient matrix for Spectral Volume in the appropriate domain. + Note that it contains the averaging of the duplicate SV edge + gradient values, such that the product of it and a reconstructed + discretised symbol simply represents CV edge values. + On its own, it only works on non-concatenated domains, since + only then the boundary conditions ensure correct behaviour. + More generally, it only works if gradients are a result of + boundary conditions rather than continuity conditions. + For example, two adjacent SVs with gradient zero in each of them + but with different variable values will have zero gradient + between them. This is fixed with "penalty_matrix". + + Parameters + ---------- + domain : list + The domain(s) in which to compute the gradient matrix + auxiliary_domains : dict + The auxiliary domains in which to compute the gradient + matrix + + Returns + ------- + :class:`pybamm.Matrix` + The (sparse) Spectral Volume gradient matrix for the domain + """ + # Create appropriate submesh by combining submeshes in domain + submesh = self.mesh.combine_submeshes(*domain) + + # Obtain the Chebyshev differentiation matrix. + # Flip it, since it is defined for the Chebyshev + # collocation points in descending order. + chebdiff = np.flip(self.chebyshev_differentiation_matrices( + self.order + 1, 1)[0]) + + # Create 1D matrix using submesh + # submesh.npts is the number of CVs and n the number of SVs + n = submesh.npts // self.order + d = self.order + # Compute the lengths of the Spectral Volumes. + d_sv_edges = np.array([np.sum(submesh.d_edges[d * i:d * i + d]) + for i in range(len(submesh.d_edges) // d)]) + # The 2 scales from [-1,1] (Chebyshev default) to [0,1]. + # e = 2 / submesh.d_sv_edges + e = 2 / d_sv_edges + # This factor scales the contribution of the reconstructed + # gradient to the finite difference at the SV edges. + # 0.0 is the value that makes it work with the "penalty_matrix". + # 0.5 is the value that makes it work without it, but remember, + # that effectively removes any implicit continuity conditions. + f = 0.0 + # Here, the differentials are scaled to the SV. + sub_matrix_raw = csr_matrix(kron(diags(e), chebdiff)) + if n == 1: + sub_matrix = sub_matrix_raw + else: + sub_matrix = lil_matrix((n * d + 1, n * (d + 1))) + sub_matrix[:d, :d + 1] = sub_matrix_raw[:d, :d + 1] + sub_matrix[d, :d + 1] = f * sub_matrix_raw[d, :d + 1] + # for loop of shame (optimisation potential via vectorisation) + for i in range(1, n - 1): + sub_matrix[i * d, i * (d + 1):(i + 1) * (d + 1)] = ( + f * sub_matrix_raw[i * (d + 1), + i * (d + 1):(i + 1) * (d + 1)] + ) + sub_matrix[i * d + 1:(i + 1) * d, + i * (d + 1):(i + 1) * (d + 1)] = ( + sub_matrix_raw[i * (d + 1) + 1:(i + 1) * (d + 1) - 1, + i * (d + 1):(i + 1) * (d + 1)] + ) + sub_matrix[(i + 1) * d, i * (d + 1):(i + 1) * (d + 1)] = ( + f * sub_matrix_raw[i * (d + 1) + d, + i * (d + 1):(i + 1) * (d + 1)] + ) + sub_matrix[-d - 1, -d - 1:] = f * sub_matrix_raw[-d - 1, -d - 1:] + sub_matrix[-d:, -d - 1:] = sub_matrix_raw[-d:, -d - 1:] + + # number of repeats + second_dim_repeats = self._get_auxiliary_domain_repeats( + auxiliary_domains) + + # generate full matrix from the submatrix + # Convert to csr_matrix so that we can take the index + # (row-slicing), which is not supported by the default kron + # format. Note that this makes column-slicing inefficient, + # but this should not be an issue. + matrix = csr_matrix(kron(eye(second_dim_repeats), sub_matrix)) + + return pybamm.Matrix(matrix) + + def penalty_matrix(self, domain, auxiliary_domains): + """ + Penalty matrix for Spectral Volume in the appropriate domain. + This works the same as the "gradient_matrix" of FiniteVolume + does, just between SVs and not between CVs. Think of it as a + continuity penalty. + + Parameters + ---------- + domain : list + The domain(s) in which to compute the gradient matrix + auxiliary_domains : dict + The auxiliary domains in which to compute the gradient + matrix + + Returns + ------- + :class:`pybamm.Matrix` + The (sparse) Spectral Volume penalty matrix for the domain + """ + # Create appropriate submesh by combining submeshes in domain + submesh = self.mesh.combine_submeshes(*domain) + + # Create 1D matrix using submesh + n = submesh.npts + d = self.order + e = np.zeros(n - 1) + e[d - 1::d] = 1 / submesh.d_nodes[d - 1::d] + sub_matrix = vstack([ + np.zeros(n), + diags([-e, e], [0, 1], shape=(n - 1, n)), + np.zeros(n), + ]) + + # number of repeats + second_dim_repeats = self._get_auxiliary_domain_repeats( + auxiliary_domains + ) + + # generate full matrix from the submatrix + # Convert to csr_matrix so that we can take the index + # (row-slicing), which is not supported by the default kron + # format. Note that this makes column-slicing inefficient, but + # this should not be an issue. + matrix = csr_matrix(kron(eye(second_dim_repeats), sub_matrix)) + + return pybamm.Matrix(matrix) + + #def spectral_volume_internal_neumann_condition( + # self, left_symbol_disc, right_symbol_disc, left_mesh, right_mesh + #): + # """ + # A method to find the internal neumann conditions between two + # symbols on adjacent subdomains. This method is never called, + # it's just here to show how a reconstructed gradient-based + # internal neumann_condition would look like. + # Parameters + # ---------- + # left_symbol_disc : :class:`pybamm.Symbol` + # The discretised symbol on the left subdomain + # right_symbol_disc : :class:`pybamm.Symbol` + # The discretised symbol on the right subdomain + # left_mesh : list + # The mesh on the left subdomain + # right_mesh : list + # The mesh on the right subdomain + # """ + # + # second_dim_repeats = self._get_auxiliary_domain_repeats( + # left_symbol_disc.domains + # ) + # + # if second_dim_repeats != self._get_auxiliary_domain_repeats( + # right_symbol_disc.domains + # ): + # raise pybamm.DomainError( + # "Number of secondary points in subdomains do not match" + # ) + # + # # Use the Spectral Volume reconstruction and differentiation. + # left_reconstruction_matrix = self.cv_boundary_reconstruction_matrix( + # left_symbol_disc.domain, + # left_symbol_disc.auxiliary_domains + # ) + # left_gradient_matrix = self.gradient_matrix( + # left_symbol_disc.domain, + # left_symbol_disc.auxiliary_domains + # ).entries[-1] + # left_matrix = left_gradient_matrix @ left_reconstruction_matrix + # + # right_reconstruction_matrix = self.cv_boundary_reconstruction_matrix( + # right_symbol_disc.domain, + # right_symbol_disc.auxiliary_domains + # ) + # right_gradient_matrix = self.gradient_matrix( + # right_symbol_disc.domain, + # right_symbol_disc.auxiliary_domains + # ).entries[0] + # right_matrix = right_gradient_matrix @ right_reconstruction_matrix + # + # # Remove domains to avoid clash + # left_domain = left_symbol_disc.domain + # right_domain = right_symbol_disc.domain + # left_auxiliary_domains = left_symbol_disc.auxiliary_domains + # right_auxiliary_domains = right_symbol_disc.auxiliary_domains + # left_symbol_disc.clear_domains() + # right_symbol_disc.clear_domains() + # + # # Spectral Volume derivative (i.e., the mean of the two + # # reconstructed gradients from each side) + # # Note that this is the version without "penalty_matrix". + # dy_dx = 0.5 * (right_matrix @ right_symbol_disc + # + left_matrix @ left_symbol_disc) + # + # # Change domains back + # left_symbol_disc.domain = left_domain + # right_symbol_disc.domain = right_domain + # left_symbol_disc.auxiliary_domains = left_auxiliary_domains + # right_symbol_disc.auxiliary_domains = right_auxiliary_domains + # + # return dy_dx + + def replace_dirichlet_values(self, symbol, discretised_symbol, bcs): + """ + Replace the reconstructed value at Dirichlet boundaries with the + boundary condition. + + Parameters + ---------- + symbol : :class:`pybamm.SpatialVariable` + The variable to be discretised + discretised_symbol : :class:`pybamm.Vector` + Contains the discretised variable + bcs : dict of tuples (:class:`pybamm.Scalar`, str) + Dictionary (with keys "left" and "right") of boundary + conditions. Each boundary condition consists of a value and + a flag indicating its type (e.g. "Dirichlet") + + Returns + ------- + :class:`pybamm.Symbol` + `Matrix @ discretised_symbol + bcs_vector`. When evaluated, + this gives the discretised_symbol, with its boundary values + replaced by the Dirichlet boundary conditions. + """ + # get relevant grid points + domain = symbol.domain + submesh = self.mesh.combine_submeshes(*domain) + + # Prepare sizes + n = (submesh.npts // self.order) * (self.order + 1) + second_dim_repeats = self._get_auxiliary_domain_repeats(symbol.domains) + + lbc_value, lbc_type = bcs["left"] + rbc_value, rbc_type = bcs["right"] + + # write boundary values into vectors of according shape + if lbc_type == "Dirichlet": + lbc_sub_matrix = coo_matrix(([1], ([0], [0])), shape=(n, 1)) + lbc_matrix = csr_matrix(kron(eye(second_dim_repeats), + lbc_sub_matrix)) + if lbc_value.evaluates_to_number(): + left_bc = lbc_value * pybamm.Vector( + np.ones(second_dim_repeats)) + else: + left_bc = lbc_value + lbc_vector = pybamm.Matrix(lbc_matrix) @ left_bc + elif lbc_type == "Neumann": + lbc_vector = pybamm.Vector(np.zeros(n * second_dim_repeats)) + else: + raise ValueError( + "boundary condition must be Dirichlet or Neumann, " + "not '{}'".format(lbc_type) + ) + + if rbc_type == "Dirichlet": + rbc_sub_matrix = coo_matrix(([1], ([n - 1], [0])), shape=(n, 1)) + rbc_matrix = csr_matrix(kron(eye(second_dim_repeats), + rbc_sub_matrix)) + if rbc_value.evaluates_to_number(): + right_bc = rbc_value * pybamm.Vector( + np.ones(second_dim_repeats)) + else: + right_bc = rbc_value + rbc_vector = pybamm.Matrix(rbc_matrix) @ right_bc + elif rbc_type == "Neumann": + rbc_vector = pybamm.Vector(np.zeros(n * second_dim_repeats)) + else: + raise ValueError( + "boundary condition must be Dirichlet or Neumann, " + "not '{}'".format(rbc_type) + ) + + bcs_vector = lbc_vector + rbc_vector + # Need to match the domain. E.g. in the case of the boundary + # condition on the particle, the gradient has domain particle + # but the bcs_vector has domain electrode, since it is a + # function of the macroscopic variables + bcs_vector.copy_domains(discretised_symbol) + + # Make matrix which makes "gaps" at the boundaries into which + # the known Dirichlet values will be added. If the boundary + # condition is not Dirichlet, it acts as identity. + sub_matrix = diags([int(lbc_type != "Dirichlet")] + + [1 for i in range(n - 2)] + + [int(rbc_type != "Dirichlet")]) + + # repeat matrix for secondary dimensions + # Convert to csr_matrix so that we can take the index + # (row-slicing), which is not supported by the default kron + # format. Note that this makes column-slicing inefficient, but + # this should not be an issue. + matrix = csr_matrix(kron(eye(second_dim_repeats), sub_matrix)) + + new_symbol = pybamm.Matrix(matrix) @ discretised_symbol + bcs_vector + + return new_symbol + + def replace_neumann_values(self, symbol, discretised_gradient, bcs): + """ + Replace the known values of the gradient from Neumann boundary + conditions into the discretised gradient. + + Parameters + ---------- + symbol : :class:`pybamm.SpatialVariable` + The variable to be discretised + discretised_gradient : :class:`pybamm.Vector` + Contains the discretised gradient of symbol + bcs : dict of tuples (:class:`pybamm.Scalar`, str) + Dictionary (with keys "left" and "right") of boundary + conditions. Each boundary condition consists of a value and + a flag indicating its type (e.g. "Dirichlet") + + Returns + ------- + :class:`pybamm.Symbol` + `Matrix @ discretised_gradient + bcs_vector`. When + evaluated, this gives the discretised_gradient, with its + boundary values replaced by the Neumann boundary conditions. + """ + # get relevant grid points + domain = symbol.domain + submesh = self.mesh.combine_submeshes(*domain) + + # Prepare sizes + n = submesh.npts + 1 + second_dim_repeats = self._get_auxiliary_domain_repeats(symbol.domains) + + lbc_value, lbc_type = bcs["left"] + rbc_value, rbc_type = bcs["right"] + + # Add any values from Neumann boundary conditions to the bcs vector + if lbc_type == "Neumann": + lbc_sub_matrix = coo_matrix(([1], ([0], [0])), shape=(n, 1)) + lbc_matrix = csr_matrix(kron(eye(second_dim_repeats), + lbc_sub_matrix)) + if lbc_value.evaluates_to_number(): + left_bc = lbc_value * pybamm.Vector( + np.ones(second_dim_repeats) + ) + else: + left_bc = lbc_value + lbc_vector = pybamm.Matrix(lbc_matrix) @ left_bc + elif lbc_type == "Dirichlet": + lbc_vector = pybamm.Vector(np.zeros(n * second_dim_repeats)) + else: + raise ValueError( + "boundary condition must be Dirichlet or Neumann, " + "not '{}'".format(lbc_type) + ) + + if rbc_type == "Neumann": + rbc_sub_matrix = coo_matrix(([1], ([n - 1], [0])), shape=(n, 1)) + rbc_matrix = csr_matrix(kron(eye(second_dim_repeats), + rbc_sub_matrix)) + if rbc_value.evaluates_to_number(): + right_bc = rbc_value * pybamm.Vector( + np.ones(second_dim_repeats)) + else: + right_bc = rbc_value + rbc_vector = pybamm.Matrix(rbc_matrix) @ right_bc + elif rbc_type == "Dirichlet": + rbc_vector = pybamm.Vector(np.zeros(n * second_dim_repeats)) + else: + raise ValueError( + "boundary condition must be Dirichlet or Neumann, " + "not '{}'".format(rbc_type) + ) + + bcs_vector = lbc_vector + rbc_vector + # Need to match the domain. E.g. in the case of the boundary + # condition on the particle, the gradient has domain particle + # but the bcs_vector has domain electrode, since it is a + # function of the macroscopic variables + bcs_vector.copy_domains(discretised_gradient) + + # Make matrix which makes "gaps" at the boundaries into which + # the known Neumann values will be added. If the boundary + # condition is not Neumann, it acts as identity. + sub_matrix = diags([int(lbc_type != "Neumann")] + + [1 for i in range(n - 2)] + + [int(rbc_type != "Neumann")]) + + # repeat matrix for secondary dimensions + # Convert to csr_matrix so that we can take the index + # (row-slicing), which is not supported by the default kron + # format. Note that this makes column-slicing inefficient, but + # this should not be an issue. + matrix = csr_matrix(kron(eye(second_dim_repeats), sub_matrix)) + + new_gradient = (pybamm.Matrix(matrix) @ discretised_gradient + + bcs_vector) + + return new_gradient diff --git a/pybamm/version b/pybamm/version index 3205a07a61..a050f8f285 100644 --- a/pybamm/version +++ b/pybamm/version @@ -1 +1 @@ -0, 2, 3 +0, 2, 4 diff --git a/run-tests.py b/run-tests.py index 28505962ca..728d0f8a13 100755 --- a/run-tests.py +++ b/run-tests.py @@ -14,7 +14,7 @@ import subprocess -def run_code_tests(executable=False, folder: str = "unit"): +def run_code_tests(executable=False, folder: str = "unit", interpreter="python"): """ Runs tests, exits if they don't finish. Parameters @@ -35,8 +35,8 @@ def run_code_tests(executable=False, folder: str = "unit"): suite = unittest.defaultTestLoader.discover(tests, pattern="test*.py") unittest.TextTestRunner(verbosity=2).run(suite) else: - print("Running {} tests with executable 'python'".format(folder)) - cmd = ["python", "-m", "unittest", "discover", "-v", tests] + print("Running {} tests with executable '{}'".format(folder, interpreter)) + cmd = [interpreter, "-m", "unittest", "discover", "-v", tests] p = subprocess.Popen(cmd) try: ret = p.wait() @@ -365,6 +365,14 @@ def export_notebook(ipath, opath): action="store_true", help="Run quick checks (unit tests, flake8, docs)", ) + # Non-standard Python interpreter name for subprocesses + parser.add_argument( + "--interpreter", + nargs="?", + default="python", + metavar="python", + help="Give the name of the Python interpreter if it is not 'python'", + ) # Parse! args = parser.parse_args() @@ -373,13 +381,14 @@ def export_notebook(ipath, opath): has_run = False # Unit vs integration folder = args.folder[0] + interpreter = args.interpreter # Unit tests if args.unit: has_run = True - run_code_tests(True, folder) + run_code_tests(True, folder, interpreter) if args.nosub: has_run = True - run_code_tests(folder=folder) + run_code_tests(folder=folder, interpreter=interpreter) # Flake8 if args.flake8: has_run = True @@ -391,10 +400,10 @@ def export_notebook(ipath, opath): # Notebook tests if args.allexamples: has_run = True - run_notebook_and_scripts() + run_notebook_and_scripts(executable=interpreter) elif args.examples: has_run = True - run_notebook_and_scripts(True) + run_notebook_and_scripts(True, interpreter) if args.debook: has_run = True export_notebook(*args.debook) @@ -402,7 +411,7 @@ def export_notebook(ipath, opath): if args.quick: has_run = True run_flake8() - run_code_tests(folder) + run_code_tests(folder, interpreter=interpreter) run_doc_tests() # Help if not has_run: diff --git a/scripts/setup_KLU_module_build.py b/scripts/install_KLU_Sundials.py similarity index 74% rename from scripts/setup_KLU_module_build.py rename to scripts/install_KLU_Sundials.py index 646a191203..539e41a268 100755 --- a/scripts/setup_KLU_module_build.py +++ b/scripts/install_KLU_Sundials.py @@ -25,37 +25,6 @@ def download_extract_library(url, download_dir): tar.extractall(download_dir) -def update_activate_or_bashrc(install_dir): - # Look for current python virtual env and add export statement - # for LD_LIBRARY_PATH in activate script. If no virtual env found, - # then the current user's .bashrc file is modified instead. - - export_statement = "export LD_LIBRARY_PATH={}/lib:$LD_LIBRARY_PATH".format( - install_dir - ) - - venv_path = os.environ.get("VIRTUAL_ENV") - if venv_path: - script_path = os.path.join(venv_path, "bin/activate") - else: - script_path = os.path.join(os.environ.get("HOME"), ".bashrc") - - if os.getenv("LD_LIBRARY_PATH") and "{}/lib".format(install_dir) in os.getenv( - "LD_LIBRARY_PATH" - ): - print("{}/lib was found in LD_LIBRARY_PATH.".format(install_dir)) - print("--> Not updating venv activate or .bashrc scripts") - else: - with open(script_path, "a+") as fh: - # Just check that export statement is not already there. - if export_statement not in fh.read(): - fh.write(export_statement) - print( - "Adding {}/lib to LD_LIBRARY_PATH" - " in {}".format(install_dir, script_path) - ) - - # First check requirements: make and cmake try: subprocess.run(["make", "--version"]) @@ -68,7 +37,7 @@ def update_activate_or_bashrc(install_dir): # Create download directory in PyBaMM dir pybamm_dir = os.path.split(os.path.abspath(os.path.dirname(__file__)))[0] -download_dir = os.path.join(pybamm_dir, "KLU_module_deps") +download_dir = os.path.join(pybamm_dir, "install_KLU_Sundials") if not os.path.exists(download_dir): os.makedirs(download_dir) @@ -153,4 +122,4 @@ def update_activate_or_bashrc(install_dir): make_cmd = ["make", "install"] subprocess.run(make_cmd, cwd=build_dir) -update_activate_or_bashrc(install_dir) + diff --git a/setup.py b/setup.py index 92ab2c7bcb..0ec6aadb3c 100644 --- a/setup.py +++ b/setup.py @@ -158,6 +158,14 @@ def compile_KLU(): idaklu_ext = Extension("idaklu", ["pybamm/solvers/c_solvers/idaklu.cpp"]) ext_modules = [idaklu_ext] if compile_KLU() else [] +jax_dependencies = [] +if system() != "Windows": + jax_dependencies = [ + "jax>=0.1.68", + "jaxlib>=0.1.47", + ] + + # Load text for description and license with open("README.md") as f: readme = f.read() @@ -186,6 +194,7 @@ def compile_KLU(): "autograd>=1.2", "scikit-fem>=0.2.0", "casadi>=3.5.0", + *jax_dependencies, "jupyter", # For example notebooks # Note: Matplotlib is loaded for debug plots, but to ensure pybamm runs # on systems without an attached display, it should never be imported diff --git a/tests/integration/test_models/standard_model_tests.py b/tests/integration/test_models/standard_model_tests.py index 27f4d238f2..f1176493a5 100644 --- a/tests/integration/test_models/standard_model_tests.py +++ b/tests/integration/test_models/standard_model_tests.py @@ -128,7 +128,8 @@ def __init__(self, model, parameter_values=None, disc=None): self.model = model - def evaluate_model(self, simplify=False, use_known_evals=False, to_python=False): + def evaluate_model(self, simplify=False, use_known_evals=False, + to_python=False, to_jax=False): result = np.empty((0, 1)) for eqn in [self.model.concatenated_rhs, self.model.concatenated_algebraic]: if simplify: @@ -140,6 +141,9 @@ def evaluate_model(self, simplify=False, use_known_evals=False, to_python=False) elif to_python: evaluator = pybamm.EvaluatorPython(eqn) eqn_eval = evaluator.evaluate(0, y) + elif to_jax: + evaluator = pybamm.EvaluatorJax(eqn) + eqn_eval = evaluator.evaluate(0, y) else: eqn_eval = eqn.evaluate(0, y) diff --git a/tests/integration/test_models/standard_output_tests.py b/tests/integration/test_models/standard_output_tests.py index 4a48d27915..d186fc4596 100644 --- a/tests/integration/test_models/standard_output_tests.py +++ b/tests/integration/test_models/standard_output_tests.py @@ -67,8 +67,9 @@ def __init__(self, model, param, disc, solution, operating_condition): # Use dimensional time and space self.t = solution.t * model.timescale_eval + geo = pybamm.GeometricParameters() - L_x = param.evaluate(pybamm.geometric_parameters.L_x) + L_x = param.evaluate(geo.L_x) self.x_n = disc.mesh["negative electrode"].nodes * L_x self.x_s = disc.mesh["separator"].nodes * L_x self.x_p = disc.mesh["positive electrode"].nodes * L_x @@ -80,23 +81,18 @@ def __init__(self, model, param, disc, solution, operating_condition): self.x_edge = disc.mesh.combine_submeshes(*whole_cell).edges * L_x if isinstance(self.model, pybamm.lithium_ion.BaseModel): - R_n = param.evaluate(pybamm.geometric_parameters.R_n) - R_p = param.evaluate(pybamm.geometric_parameters.R_p) + R_n = param.evaluate(geo.R_n) + R_p = param.evaluate(geo.R_p) self.r_n = disc.mesh["negative particle"].nodes * R_n self.r_p = disc.mesh["positive particle"].nodes * R_p self.r_n_edge = disc.mesh["negative particle"].edges * R_n self.r_p_edge = disc.mesh["positive particle"].edges * R_p # Useful parameters - self.l_n = param.evaluate(pybamm.geometric_parameters.l_n) - self.l_p = param.evaluate(pybamm.geometric_parameters.l_p) + self.l_n = param.evaluate(geo.l_n) + self.l_p = param.evaluate(geo.l_p) - if isinstance(self.model, pybamm.lithium_ion.BaseModel): - current_param = pybamm.standard_parameters_lithium_ion.current_with_time - elif isinstance(self.model, pybamm.lead_acid.BaseModel): - current_param = pybamm.standard_parameters_lead_acid.current_with_time - else: - current_param = pybamm.electrical_parameters.current_with_time + current_param = self.model.param.current_with_time self.i_cell = param.process_symbol(current_param).evaluate(solution.t) @@ -257,20 +253,44 @@ def __init__(self, model, param, disc, solution, operating_condition): self.c_s_n = solution["Negative particle concentration"] self.c_s_p = solution["Positive particle concentration"] + self.c_s_n_rav = solution["R-averaged negative particle concentration"] + self.c_s_p_rav = solution["R-averaged positive particle concentration"] + self.c_s_n_surf = solution["Negative particle surface concentration"] self.c_s_p_surf = solution["Positive particle surface concentration"] + self.c_s_n_tot = solution["Total lithium in negative electrode [mol]"] + self.c_s_p_tot = solution["Total lithium in positive electrode [mol]"] + self.N_s_n = solution["Negative particle flux"] self.N_s_p = solution["Positive particle flux"] + self.n_SEI_n_av = solution[ + "X-averaged negative electrode sei concentration [mol.m-3]" + ] + self.n_SEI_p_av = solution[ + "X-averaged positive electrode sei concentration [mol.m-3]" + ] + def test_concentration_increase_decrease(self): """Test all concentrations in negative particles decrease and all concentrations in positive particles increase over a discharge.""" t, x_n, x_p, r_n, r_p = self.t, self.x_n, self.x_p, self.r_n, self.r_p - neg_end_vs_start = self.c_s_n(t[1:], x_n, r_n) - self.c_s_n(t[:-1], x_n, r_n) - pos_end_vs_start = self.c_s_p(t[1:], x_p, r_p) - self.c_s_p(t[:-1], x_p, r_p) + if self.model.options["particle"] in ["quadratic profile", "quartic profile"]: + # For the assumed polynomial concentration profiles the values + # can increase/decrease within the particle as the polynomial shifts, + # so we just check the average instead + neg_end_vs_start = self.c_s_n_rav(t[1:], x_n) - self.c_s_n_rav(t[:-1], x_n) + pos_end_vs_start = self.c_s_p_rav(t[1:], x_p) - self.c_s_p_rav(t[:-1], x_p) + else: + neg_end_vs_start = self.c_s_n(t[1:], x_n, r_n) - self.c_s_n( + t[:-1], x_n, r_n + ) + pos_end_vs_start = self.c_s_p(t[1:], x_p, r_p) - self.c_s_p( + t[:-1], x_p, r_p + ) if self.operating_condition == "discharge": np.testing.assert_array_less(neg_end_vs_start, 0) @@ -293,8 +313,22 @@ def test_concentration_limits(self): np.testing.assert_array_less(self.c_s_p(t, x_p, r_p), 1) def test_conservation(self): - "Test amount of lithium stored across all particles is constant." - # TODO: add an output for total lithium in particles + """Test amount of lithium stored across all particles and in SEI layers is + constant.""" + L_n = self.param["Negative electrode thickness [m]"] + L_p = self.param["Positive electrode thickness [m]"] + L_y = self.param["Electrode width [m]"] + L_z = self.param["Electrode height [m]"] + A = L_y * L_z + + self.c_s_tot = ( + self.c_s_n_tot(self.solution.t) + + self.c_s_p_tot(self.solution.t) + + self.n_SEI_n_av(self.solution.t) * L_n * A + + self.n_SEI_p_av(self.solution.t) * L_p * A + ) + diff = (self.c_s_tot[1:] - self.c_s_tot[:-1]) / self.c_s_tot[:-1] + np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): """Test that the concentration in the centre of the negative particles is @@ -308,25 +342,29 @@ def test_fluxes(self): """Test that no flux holds in the centre of the particle. Test that surface flux in the negative particles is greater than zero and that the flux in the positive particles is less than zero during a discharge.""" - # At the moment the zero flux is Broadcasted onto cell centres, not edges - # in the case of fast diffusion. This should be fixed by allowing Broadcasting - # to edges. For now, evaluate on r nodes for "fast diffusion" in particles - if self.model.options["particle"] == "fast diffusion": - t, x_n, x_p, r_n, r_p = self.t, self.x_n, self.x_p, self.r_n, self.r_p + + t, x_n, x_p, r_n, r_p = ( + self.t, + self.x_n, + self.x_p, + self.r_n_edge, + self.r_p_edge, + ) + if self.model.options["particle"] == "uniform profile": + # Fluxes are zero everywhere since the concentration is uniform np.testing.assert_array_almost_equal(self.N_s_n(t, x_n, r_n), 0) np.testing.assert_array_almost_equal(self.N_s_p(t, x_p, r_p), 0) else: - t, x_n, x_p, r_n, r_p = ( - self.t, - self.x_n, - self.x_p, - self.r_n_edge, - self.r_p_edge, - ) - if self.operating_condition == "discharge": - np.testing.assert_array_less(0, self.N_s_n(t[1:], x_n, r_n[1:])) - np.testing.assert_array_less(self.N_s_p(t[1:], x_p, r_p[1:]), 0) + if self.model.options["particle"] == "quartic profile": + # quartic profile has a transient at the beginning where + # the concentration "rearranges" giving flux of the opposite + # sign, so ignore first two times + np.testing.assert_array_less(0, self.N_s_n(t[2:], x_n, r_n[1:])) + np.testing.assert_array_less(self.N_s_p(t[2:], x_p, r_p[1:]), 0) + else: + np.testing.assert_array_less(0, self.N_s_n(t[1:], x_n, r_n[1:])) + np.testing.assert_array_less(self.N_s_p(t[1:], x_p, r_p[1:]), 0) if self.operating_condition == "charge": np.testing.assert_array_less(self.N_s_n(t[1:], x_n, r_n[1:]), 0) np.testing.assert_array_less(0, self.N_s_p(t[1:], x_p, r_p[1:])) @@ -334,8 +372,8 @@ def test_fluxes(self): np.testing.assert_array_almost_equal(self.N_s_n(t, x_n, r_n), 0) np.testing.assert_array_almost_equal(self.N_s_p(t, x_p, r_p), 0) - np.testing.assert_array_equal(0, self.N_s_n(t, x_n, r_n[0])) - np.testing.assert_array_equal(0, self.N_s_p(t, x_p, r_p[0])) + np.testing.assert_array_almost_equal(0, self.N_s_n(t, x_n, r_n[0]), decimal=4) + np.testing.assert_array_almost_equal(0, self.N_s_p(t, x_p, r_p[0]), decimal=4) def test_all(self): self.test_concentration_increase_decrease() @@ -355,11 +393,11 @@ def __init__(self, model, param, disc, solution, operating_condition): self.c_e_s = solution["Separator electrolyte concentration"] self.c_e_p = solution["Positive electrolyte concentration"] - # TODO: output average electrolyte concentration - # self.c_e_av = solution["X-averaged electrolyte concentration"] - # self.c_e_n_av = solution["X-averaged negative electrolyte concentration"] - # self.c_e_s_av = solution["X-averaged separator electrolyte concentration"] - # self.c_e_p_av = solution["X-averaged positive electrolyte concentration"] + self.c_e_av = solution["X-averaged electrolyte concentration"] + self.c_e_n_av = solution["X-averaged negative electrolyte concentration"] + self.c_e_s_av = solution["X-averaged separator electrolyte concentration"] + self.c_e_p_av = solution["X-averaged positive electrolyte concentration"] + self.c_e_tot = solution["Total concentration in electrolyte [mol]"] self.N_e_hat = solution["Electrolyte flux"] # self.N_e_hat = solution["Reduced cation flux"] @@ -372,8 +410,10 @@ def test_conservation(self): "Test conservation of species in the electrolyte." # sufficient to check average concentration is constant - # diff = self.c_e_av.entries[:, 1:] - self.c_e_av.entries[:, :-1] - # np.testing.assert_array_almost_equal(diff, 0) + diff = ( + self.c_e_tot(self.solution.t[1:]) - self.c_e_tot(self.solution.t[:-1]) + ) / self.c_e_tot(self.solution.t[:-1]) + np.testing.assert_array_almost_equal(diff, 0) def test_concentration_profile(self): """Test continuity of the concentration profile. Test average concentration is @@ -555,31 +595,49 @@ def __init__(self, model, param, disc, solution, operating_condition): self.i_s = solution["Electrode current density"] self.i_e = solution["Electrolyte current density"] + self.a_n = solution["Negative surface area per unit volume distribution in x"] + self.a_p = solution["Positive surface area per unit volume distribution in x"] + def test_interfacial_current_average(self): - """Test that average of the interfacial current density is equal to the true + """Test that average of the surface area density distribution (in x) + multiplied by the interfacial current density is equal to the true value.""" + np.testing.assert_array_almost_equal( - self.j_n_av(self.t) + self.j_n_sei_av(self.t), + np.mean( + self.a_n(x=self.x_n) + * (self.j_n(self.t, self.x_n) + self.j_n_sei(self.t, self.x_n)), + axis=0, + ), self.i_cell / self.l_n, decimal=4, ) np.testing.assert_array_almost_equal( - self.j_p_av(self.t) + self.j_p_sei_av(self.t), + np.mean( + self.a_p(x=self.x_p) + * (self.j_p(self.t, self.x_p) + self.j_p_sei(self.t, self.x_p)), + axis=0, + ), -self.i_cell / self.l_p, decimal=4, ) + # np.testing.assert_array_almost_equal( + # (self.j_n_av(self.t) + self.j_n_sei_av(self.t)), + # self.i_cell / self.l_n, + # decimal=4, + # ) + # np.testing.assert_array_almost_equal( + # self.j_p_av(self.t) + self.j_p_sei_av(self.t), + # -self.i_cell / self.l_p, + # decimal=4, + # ) def test_conservation(self): """Test sum of electrode and electrolyte current densities give the applied current density""" t, x_n, x_s, x_p = self.t, self.x_n, self.x_s, self.x_p - if isinstance(self.model, pybamm.lithium_ion.BaseModel): - current_param = pybamm.standard_parameters_lithium_ion.current_with_time - elif isinstance(self.model, pybamm.lead_acid.BaseModel): - current_param = pybamm.standard_parameters_lead_acid.current_with_time - else: - current_param = pybamm.electrical_parameters.current_with_time + current_param = self.model.param.current_with_time i_cell = self.param.process_symbol(current_param).evaluate(t=t) for x in [x_n, x_s, x_p]: @@ -597,12 +655,7 @@ def test_current_density_boundaries(self): """Test the boundary values of the current densities""" t, x_n, x_p = self.t, self.x_n_edge, self.x_p_edge - if isinstance(self.model, pybamm.lithium_ion.BaseModel): - current_param = pybamm.standard_parameters_lithium_ion.current_with_time - elif isinstance(self.model, pybamm.lead_acid.BaseModel): - current_param = pybamm.standard_parameters_lead_acid.current_with_time - else: - current_param = pybamm.electrical_parameters.current_with_time + current_param = self.model.param.current_with_time i_cell = self.param.process_symbol(current_param).evaluate(t=t) np.testing.assert_array_almost_equal(self.i_s_n(t, x_n[0]), i_cell, decimal=2) @@ -644,9 +697,9 @@ def test_velocity_vs_current(self): """Test the boundary values of the current densities""" t, x_n, x_p = self.t, self.x_n, self.x_p - beta_n = pybamm.standard_parameters_lead_acid.beta_n + beta_n = self.model.param.beta_n beta_n = self.param.evaluate(beta_n) - beta_p = pybamm.standard_parameters_lead_acid.beta_p + beta_p = self.model.param.beta_p beta_p = self.param.evaluate(beta_p) np.testing.assert_array_almost_equal( diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_compare_outputs.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_compare_outputs.py index 868903c24c..fb338965c3 100644 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_compare_outputs.py +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_compare_outputs.py @@ -55,7 +55,7 @@ def test_compare_outputs_thermal(self): # load models - for the default params we expect x-full and lumped to # agree as the temperature is practically independent of x options = [{"thermal": opt} for opt in ["lumped", "x-full"]] - options.append({"thermal": "lumped", "cell_geometry": "pouch"}) + options.append({"thermal": "lumped", "cell geometry": "pouch"}) model_combos = [ ([pybamm.lithium_ion.SPM(opt) for opt in options]), @@ -108,6 +108,59 @@ def test_compare_outputs_thermal(self): comparison = StandardOutputComparison(solutions) comparison.test_all(skip_first_timestep=True) + def test_compare_particle_shape(self): + models = [ + pybamm.lithium_ion.SPM({"particle shape": "spherical"}, name="spherical"), + pybamm.lithium_ion.SPM({"particle shape": "user"}, name="user"), + ] + params = [ + models[0].default_parameter_values, + models[0].default_parameter_values, + ] + + # set same mesh for all models + var = pybamm.standard_spatial_vars + var_pts = {var.x_n: 5, var.x_s: 5, var.x_p: 5, var.r_n: 5, var.r_p: 5} + + for model, param in zip(models, params): + if model.name == "user": + R_n = param["Negative particle radius [m]"] + R_p = param["Positive particle radius [m]"] + eps_s_n = param["Negative electrode active material volume fraction"] + eps_s_p = param["Positive electrode active material volume fraction"] + + param.update( + { + "Negative electrode surface area to volume ratio [m-1]": 3 + * eps_s_n + / R_n, + "Positive electrode surface area to volume ratio [m-1]": 3 + * eps_s_p + / R_p, + "Negative surface area per unit volume distribution in x": 1, + "Positive surface area per unit volume distribution in x": 1, + }, + check_already_exists=False, + ) + + param.process_model(model) + geometry = model.default_geometry + param.process_geometry(geometry) + mesh = pybamm.Mesh(geometry, model.default_submesh_types, var_pts) + disc = pybamm.Discretisation(mesh, model.default_spatial_methods) + disc.process_model(model) + + # solve model + solutions = [] + t_eval = np.linspace(0, 3600, 100) + for model in models: + solution = pybamm.CasadiSolver().solve(model, t_eval) + solutions.append(solution) + + # compare outputs + comparison = StandardOutputComparison(solutions) + comparison.test_all(skip_first_timestep=True) + if __name__ == "__main__": print("Add -v for more debug output") diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py index 6fc88dd877..a9b85eb76c 100644 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py @@ -89,8 +89,20 @@ def test_lumped_thermal(self): modeltest = tests.StandardModelTest(model, var_pts=var_pts) modeltest.test_all() - def test_particle_fast_diffusion(self): - options = {"particle": "fast diffusion"} + def test_particle_uniform(self): + options = {"particle": "uniform profile"} + model = pybamm.lithium_ion.DFN(options) + modeltest = tests.StandardModelTest(model) + modeltest.test_all() + + def test_particle_quadratic(self): + options = {"particle": "quadratic profile"} + model = pybamm.lithium_ion.DFN(options) + modeltest = tests.StandardModelTest(model) + modeltest.test_all() + + def test_particle_quartic(self): + options = {"particle": "quartic profile"} model = pybamm.lithium_ion.DFN(options) modeltest = tests.StandardModelTest(model) modeltest.test_all() diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spm.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spm.py index 28febdfc49..2f3a42233f 100644 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spm.py +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spm.py @@ -5,6 +5,7 @@ import tests import numpy as np import unittest +from platform import system class TestSPM(unittest.TestCase): @@ -62,6 +63,10 @@ def test_optimisations(self): np.testing.assert_array_almost_equal(original, simp_and_known) np.testing.assert_array_almost_equal(original, simp_and_python) + if system() != "Windows": + simp_and_jax = optimtest.evaluate_model(simplify=True, to_jax=True) + np.testing.assert_array_almost_equal(original, simp_and_jax) + def test_set_up(self): model = pybamm.lithium_ion.SPM() optimtest = tests.OptimisationsTest(model) @@ -97,8 +102,20 @@ def test_thermal(self): modeltest = tests.StandardModelTest(model) modeltest.test_all() - def test_particle_fast_diffusion(self): - options = {"particle": "fast diffusion"} + def test_particle_uniform(self): + options = {"particle": "uniform profile"} + model = pybamm.lithium_ion.SPM(options) + modeltest = tests.StandardModelTest(model) + modeltest.test_all() + + def test_particle_quadratic(self): + options = {"particle": "quadratic profile"} + model = pybamm.lithium_ion.SPM(options) + modeltest = tests.StandardModelTest(model) + modeltest.test_all() + + def test_particle_quartic(self): + options = {"particle": "quartic profile"} model = pybamm.lithium_ion.SPM(options) modeltest = tests.StandardModelTest(model) modeltest.test_all() diff --git a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spme.py b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spme.py index 52e3d93481..1b76aca7e7 100644 --- a/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spme.py +++ b/tests/integration/test_models/test_full_battery_models/test_lithium_ion/test_spme.py @@ -6,6 +6,7 @@ import numpy as np import unittest +from platform import system class TestSPMe(unittest.TestCase): @@ -69,6 +70,10 @@ def test_optimisations(self): np.testing.assert_array_almost_equal(original, simp_and_known) np.testing.assert_array_almost_equal(original, simp_and_python) + if system() != "Windows": + simp_and_jax = optimtest.evaluate_model(simplify=True, to_jax=True) + np.testing.assert_array_almost_equal(original, simp_and_jax) + def test_set_up(self): model = pybamm.lithium_ion.SPMe() optimtest = tests.OptimisationsTest(model) @@ -89,8 +94,20 @@ def test_thermal(self): modeltest = tests.StandardModelTest(model) modeltest.test_all() - def test_particle_fast_diffusion(self): - options = {"particle": "fast diffusion"} + def test_particle_uniform(self): + options = {"particle": "uniform profile"} + model = pybamm.lithium_ion.SPMe(options) + modeltest = tests.StandardModelTest(model) + modeltest.test_all() + + def test_particle_quadratic(self): + options = {"particle": "quadratic profile"} + model = pybamm.lithium_ion.SPMe(options) + modeltest = tests.StandardModelTest(model) + modeltest.test_all() + + def test_particle_quartic(self): + options = {"particle": "quartic profile"} model = pybamm.lithium_ion.SPMe(options) modeltest = tests.StandardModelTest(model) modeltest.test_all() diff --git a/tests/integration/test_models/test_submodels/test_interface/test_butler_volmer.py b/tests/integration/test_models/test_submodels/test_interface/test_butler_volmer.py index 3992426ec2..5ce91fe70b 100644 --- a/tests/integration/test_models/test_submodels/test_interface/test_butler_volmer.py +++ b/tests/integration/test_models/test_submodels/test_interface/test_butler_volmer.py @@ -72,7 +72,7 @@ def tearDown(self): del self.delta_phi_s_p def test_creation(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() model_n = pybamm.interface.ButlerVolmer(param, "Negative", "lithium-ion main") j_n = model_n.get_coupled_variables(self.variables)[ "Negative electrode interfacial current density" @@ -91,7 +91,7 @@ def test_creation(self): self.assertEqual(j_p.domain, ["positive electrode"]) def test_set_parameters(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() model_n = pybamm.interface.ButlerVolmer(param, "Negative", "lithium-ion main") j_n = model_n.get_coupled_variables(self.variables)[ "Negative electrode interfacial current density" @@ -113,7 +113,7 @@ def test_set_parameters(self): self.assertNotIsInstance(x, pybamm.Parameter) def test_discretisation(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() model_n = pybamm.interface.ButlerVolmer(param, "Negative", "lithium-ion main") j_n = model_n.get_coupled_variables(self.variables)[ "Negative electrode interfacial current density" @@ -163,7 +163,7 @@ def test_discretisation(self): def test_diff_c_e_lead_acid(self): # With intercalation - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() model_n = pybamm.interface.ButlerVolmer(param, "Negative", "lead-acid main") model_p = pybamm.interface.ButlerVolmer(param, "Positive", "lead-acid main") parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values @@ -216,7 +216,7 @@ def j_p(c_e): def test_diff_delta_phi_e_lead_acid(self): # With intercalation - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() model_n = pybamm.interface.ButlerVolmer(param, "Negative", "lead-acid main") model_p = pybamm.interface.ButlerVolmer(param, "Positive", "lead-acid main") parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values diff --git a/tests/integration/test_models/test_submodels/test_interface/test_lead_acid.py b/tests/integration/test_models/test_submodels/test_interface/test_lead_acid.py index 625a2458db..f9b42eae3c 100644 --- a/tests/integration/test_models/test_submodels/test_interface/test_lead_acid.py +++ b/tests/integration/test_models/test_submodels/test_interface/test_lead_acid.py @@ -30,7 +30,7 @@ def tearDown(self): def test_creation_main_reaction(self): # With intercalation - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lead-acid main") j0_n = model_n._get_exchange_current_density(self.variables) model_p = pybamm.interface.BaseInterface(param, "Positive", "lead-acid main") @@ -40,7 +40,7 @@ def test_creation_main_reaction(self): def test_set_parameters_main_reaction(self): # With intercalation - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lead-acid main") j0_n = model_n._get_exchange_current_density(self.variables) model_p = pybamm.interface.BaseInterface(param, "Positive", "lead-acid main") @@ -57,7 +57,7 @@ def test_set_parameters_main_reaction(self): def test_discretisation_main_reaction(self): # With intercalation - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lead-acid main") j0_n = model_n._get_exchange_current_density(self.variables) model_p = pybamm.interface.BaseInterface(param, "Positive", "lead-acid main") @@ -80,7 +80,7 @@ def test_discretisation_main_reaction(self): def test_diff_main_reaction(self): # With intercalation - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lead-acid main") model_p = pybamm.interface.BaseInterface(param, "Positive", "lead-acid main") parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values diff --git a/tests/integration/test_models/test_submodels/test_interface/test_lithium_ion.py b/tests/integration/test_models/test_submodels/test_interface/test_lithium_ion.py index d28e55c485..e9038489d9 100644 --- a/tests/integration/test_models/test_submodels/test_interface/test_lithium_ion.py +++ b/tests/integration/test_models/test_submodels/test_interface/test_lithium_ion.py @@ -36,7 +36,7 @@ def tearDown(self): del self.c_s_p_surf def test_creation_lithium_ion(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lithium-ion main") j0_n = model_n._get_exchange_current_density(self.variables) model_p = pybamm.interface.BaseInterface(param, "Positive", "lithium-ion main") @@ -45,7 +45,7 @@ def test_creation_lithium_ion(self): self.assertEqual(j0_p.domain, ["positive electrode"]) def test_set_parameters_lithium_ion(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lithium-ion main") j0_n = model_n._get_exchange_current_density(self.variables) model_p = pybamm.interface.BaseInterface(param, "Positive", "lithium-ion main") @@ -61,7 +61,7 @@ def test_set_parameters_lithium_ion(self): self.assertNotIsInstance(x, pybamm.Parameter) def test_discretisation_lithium_ion(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() model_n = pybamm.interface.BaseInterface(param, "Negative", "lithium-ion main") j0_n = model_n._get_exchange_current_density(self.variables) model_p = pybamm.interface.BaseInterface(param, "Positive", "lithium-ion main") diff --git a/tests/integration/test_spatial_methods/test_spectral_volume.py b/tests/integration/test_spatial_methods/test_spectral_volume.py new file mode 100644 index 0000000000..699e5f3afe --- /dev/null +++ b/tests/integration/test_spatial_methods/test_spectral_volume.py @@ -0,0 +1,340 @@ +# +# Test for the operator class +# +import pybamm + +import numpy as np +import unittest + + +def get_mesh_for_testing( + xpts=None, rpts=10, ypts=15, zpts=15, geometry=None, cc_submesh=None, + order=2 +): + param = pybamm.ParameterValues( + values={ + "Electrode width [m]": 0.4, + "Electrode height [m]": 0.5, + "Negative tab width [m]": 0.1, + "Negative tab centre y-coordinate [m]": 0.1, + "Negative tab centre z-coordinate [m]": 0.0, + "Positive tab width [m]": 0.1, + "Positive tab centre y-coordinate [m]": 0.3, + "Positive tab centre z-coordinate [m]": 0.5, + "Negative electrode thickness [m]": 0.3, + "Separator thickness [m]": 0.3, + "Positive electrode thickness [m]": 0.3, + } + ) + + if geometry is None: + geometry = pybamm.battery_geometry() + param.process_geometry(geometry) + + submesh_types = { + "negative electrode": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "separator": pybamm.MeshGenerator(pybamm.SpectralVolume1DSubMesh, + {"order": order}), + "positive electrode": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "negative particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "positive particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "current collector": pybamm.MeshGenerator(pybamm.SubMesh0D), + } + if cc_submesh: + submesh_types["current collector"] = cc_submesh + + if xpts is None: + xn_pts, xs_pts, xp_pts = 40, 25, 35 + else: + xn_pts, xs_pts, xp_pts = xpts, xpts, xpts + var = pybamm.standard_spatial_vars + var_pts = { + var.x_n: xn_pts, + var.x_s: xs_pts, + var.x_p: xp_pts, + var.r_n: rpts, + var.r_p: rpts, + var.y: ypts, + var.z: zpts, + } + + return pybamm.Mesh(geometry, submesh_types, var_pts) + + +def get_p2d_mesh_for_testing(xpts=None, rpts=10): + geometry = pybamm.battery_geometry() + return get_mesh_for_testing(xpts=xpts, rpts=rpts, geometry=geometry) + + +class TestSpectralVolumeConvergence(unittest.TestCase): + def test_grad_div_broadcast(self): + # create mesh and discretisation + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + mesh = get_mesh_for_testing() + disc = pybamm.Discretisation(mesh, spatial_methods) + + a = pybamm.PrimaryBroadcast(1, "negative electrode") + grad_a = disc.process_symbol(pybamm.grad(a)) + np.testing.assert_array_equal(grad_a.evaluate(), 0) + + a_edge = pybamm.PrimaryBroadcastToEdges(1, "negative electrode") + div_a = disc.process_symbol(pybamm.div(a_edge)) + np.testing.assert_array_equal(div_a.evaluate(), 0) + + div_grad_a = disc.process_symbol(pybamm.div(pybamm.grad(a))) + np.testing.assert_array_equal(div_grad_a.evaluate(), 0) + + def test_cartesian_spherical_grad_convergence(self): + # note that grad function is the same for cartesian and spherical + order = 2 + spatial_methods = {"macroscale": pybamm.SpectralVolume(order=order)} + whole_cell = ["negative electrode", "separator", "positive electrode"] + + # Define variable + var = pybamm.Variable("var", domain=whole_cell) + grad_eqn = pybamm.grad(var) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(0), "Dirichlet"), + "right": (pybamm.Scalar(np.sin(1) ** 2), "Dirichlet"), + } + } + + # Function for convergence testing + def get_error(n): + # create mesh and discretisation + mesh = get_mesh_for_testing(n, order=order) + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.bcs = boundary_conditions + disc.set_variable_slices([var]) + + # Define exact solutions + combined_submesh = mesh.combine_submeshes(*whole_cell) + x = combined_submesh.nodes + y = np.sin(x) ** 2 + # var = sin(x)**2 --> dvardx = 2*sin(x)*cos(x) + x_edge = combined_submesh.edges + grad_exact = 2 * np.sin(x_edge) * np.cos(x_edge) + + # Discretise and evaluate + grad_eqn_disc = disc.process_symbol(grad_eqn) + grad_approx = grad_eqn_disc.evaluate(y=y) + + # Return difference between approx and exact + return grad_approx[:, 0] - grad_exact + + # Get errors + ns = 100 * 2 ** np.arange(5) + errs = {n: get_error(int(n)) for n in ns} + # expect linear convergence at internal points + # (the higher-order convergence is in the integral means, + # not in the edge values) + errs_internal = np.array([np.linalg.norm(errs[n][1:-1], np.inf) for n in ns]) + rates = np.log2(errs_internal[:-1] / errs_internal[1:]) + np.testing.assert_array_less(0.99 * np.ones_like(rates), rates) + # expect linear convergence at the boundaries + for idx in [0, -1]: + err_boundary = np.array([errs[n][idx] for n in ns]) + rates = np.log2(err_boundary[:-1] / err_boundary[1:]) + np.testing.assert_array_less(0.98 * np.ones_like(rates), rates) + + def test_cartesian_div_convergence(self): + whole_cell = ["negative electrode", "separator", "positive electrode"] + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + + # Function for convergence testing + def get_error(n): + # create mesh and discretisation + mesh = get_mesh_for_testing(n) + disc = pybamm.Discretisation(mesh, spatial_methods) + combined_submesh = mesh.combine_submeshes(*whole_cell) + x = combined_submesh.nodes + x_edge = pybamm.standard_spatial_vars.x_edge + + # Define flux and bcs + N = x_edge ** 2 * pybamm.cos(x_edge) + div_eqn = pybamm.div(N) + # Define exact solutions + # N = x**2 * cos(x) --> dNdx = x*(2cos(x) - xsin(x)) + div_exact = x * (2 * np.cos(x) - x * np.sin(x)) + + # Discretise and evaluate + div_eqn_disc = disc.process_symbol(div_eqn) + div_approx = div_eqn_disc.evaluate() + + # Return difference between approx and exact + return div_approx[:, 0] - div_exact + + # Get errors + ns = 10 * 2 ** np.arange(6) + errs = {n: get_error(int(n)) for n in ns} + # expect quadratic convergence everywhere + err_norm = np.array([np.linalg.norm(errs[n], np.inf) for n in ns]) + rates = np.log2(err_norm[:-1] / err_norm[1:]) + np.testing.assert_array_less(1.99 * np.ones_like(rates), rates) + + def test_spherical_div_convergence_quadratic(self): + # test div( r**2 * sin(r) ) == 4*r*sin(r) - r**2*cos(r) + spatial_methods = {"negative particle": pybamm.SpectralVolume()} + + # Function for convergence testing + def get_error(n): + # create mesh and discretisation (single particle) + mesh = get_mesh_for_testing(rpts=n) + disc = pybamm.Discretisation(mesh, spatial_methods) + submesh = mesh["negative particle"] + r = submesh.nodes + r_edge = pybamm.SpatialVariableEdge("r_n", domain=["negative particle"]) + + # Define flux and bcs + N = r_edge ** 2 * pybamm.sin(r_edge) + div_eqn = pybamm.div(N) + # Define exact solutions + # N = r**3 --> div(N) = 5 * r**2 + div_exact = 4 * r * np.sin(r) + r ** 2 * np.cos(r) + + # Discretise and evaluate + div_eqn_disc = disc.process_symbol(div_eqn) + div_approx = div_eqn_disc.evaluate() + + # Return difference between approx and exact + return div_approx[:, 0] - div_exact + + # Get errors + ns = 10 * 2 ** np.arange(6) + errs = {n: get_error(int(n)) for n in ns} + # expect quadratic convergence everywhere + err_norm = np.array([np.linalg.norm(errs[n], np.inf) for n in ns]) + rates = np.log2(err_norm[:-1] / err_norm[1:]) + np.testing.assert_array_less(1.99 * np.ones_like(rates), rates) + + def test_spherical_div_convergence_linear(self): + # test div( r*sin(r) ) == 3*sin(r) + r*cos(r) + spatial_methods = {"negative particle": pybamm.SpectralVolume()} + + # Function for convergence testing + def get_error(n): + # create mesh and discretisation (single particle) + mesh = get_mesh_for_testing(rpts=n) + disc = pybamm.Discretisation(mesh, spatial_methods) + submesh = mesh["negative particle"] + r = submesh.nodes + r_edge = pybamm.SpatialVariableEdge("r_n", domain=["negative particle"]) + + # Define flux and bcs + N = r_edge * pybamm.sin(r_edge) + div_eqn = pybamm.div(N) + # Define exact solutions + # N = r*sin(r) --> div(N) = 3*sin(r) + r*cos(r) + div_exact = 3 * np.sin(r) + r * np.cos(r) + + # Discretise and evaluate + div_eqn_disc = disc.process_symbol(div_eqn) + div_approx = div_eqn_disc.evaluate() + + # Return difference between approx and exact + return div_approx[:, 0] - div_exact + + # Get errors + ns = 10 * 2 ** np.arange(6) + errs = {n: get_error(int(n)) for n in ns} + # expect linear convergence everywhere + err_norm = np.array([np.linalg.norm(errs[n], np.inf) for n in ns]) + rates = np.log2(err_norm[:-1] / err_norm[1:]) + np.testing.assert_array_less(0.99 * np.ones_like(rates), rates) + + def test_p2d_spherical_convergence_quadratic(self): + # test div( r**2 * sin(r) ) == 4*r*sin(r) - r**2*cos(r) + spatial_methods = {"negative particle": pybamm.SpectralVolume()} + + # Function for convergence testing + def get_error(m): + # create mesh and discretisation p2d, uniform in x + mesh = get_p2d_mesh_for_testing(3, m) + disc = pybamm.Discretisation(mesh, spatial_methods) + submesh = mesh["negative particle"] + r = submesh.nodes + r_edge = pybamm.standard_spatial_vars.r_n_edge + + N = r_edge ** 2 * pybamm.sin(r_edge) + div_eqn = pybamm.div(N) + # Define exact solutions + # N = r**2*sin(r) --> div(N) = 4*r*sin(r) - r**2*cos(r) + div_exact = 4 * r * np.sin(r) + r ** 2 * np.cos(r) + div_exact = np.kron(np.ones(mesh["negative electrode"].npts), div_exact) + + # Discretise and evaluate + div_eqn_disc = disc.process_symbol(div_eqn) + div_approx = div_eqn_disc.evaluate() + + return div_approx[:, 0] - div_exact + + # Get errors + ns = 10 * 2 ** np.arange(6) + errs = {n: get_error(int(n)) for n in ns} + # expect quadratic convergence everywhere + err_norm = np.array([np.linalg.norm(errs[n], np.inf) for n in ns]) + rates = np.log2(err_norm[:-1] / err_norm[1:]) + np.testing.assert_array_less(1.99 * np.ones_like(rates), rates) + + def test_p2d_with_x_dep_bcs_spherical_convergence(self): + # test div_r( (r**2 * sin(r)) * x ) == (4*r*sin(r) - r**2*cos(r)) * x + spatial_methods = { + "negative particle": pybamm.SpectralVolume(), + "negative electrode": pybamm.SpectralVolume(), + } + + # Function for convergence testing + def get_error(m): + # create mesh and discretisation p2d, x-dependent + mesh = get_p2d_mesh_for_testing(6, m) + disc = pybamm.Discretisation(mesh, spatial_methods) + submesh_r = mesh["negative particle"] + r = submesh_r.nodes + r_edge = pybamm.standard_spatial_vars.r_n_edge + x = pybamm.standard_spatial_vars.x_n + + N = pybamm.PrimaryBroadcast(x, "negative particle") * ( + r_edge ** 2 * pybamm.sin(r_edge) + ) + div_eqn = pybamm.div(N) + # Define exact solutions + # N = r**2*sin(r) --> div(N) = 4*r*sin(r) - r**2*cos(r) + div_exact = 4 * r * np.sin(r) + r ** 2 * np.cos(r) + div_exact = np.kron(mesh["negative electrode"].nodes, div_exact) + + # Discretise and evaluate + div_eqn_disc = disc.process_symbol(div_eqn) + div_approx = div_eqn_disc.evaluate() + + return div_approx[:, 0] - div_exact + + # Get errors + ns = 10 * 2 ** np.arange(6) + errs = {n: get_error(int(n)) for n in ns} + # expect quadratic convergence everywhere + err_norm = np.array([np.linalg.norm(errs[n], np.inf) for n in ns]) + rates = np.log2(err_norm[:-1] / err_norm[1:]) + np.testing.assert_array_less(1.99 * np.ones_like(rates), rates) + + +if __name__ == "__main__": + + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + unittest.main() diff --git a/tests/unit/test_citations.py b/tests/unit/test_citations.py index e7774c34b5..bc7c70a5a7 100644 --- a/tests/unit/test_citations.py +++ b/tests/unit/test_citations.py @@ -93,6 +93,20 @@ def test_timms_2020(self): pybamm.current_collector.AlternativeEffectiveResistance2D() self.assertIn("timms2020", citations._papers_to_cite) + def test_subramanian_2005(self): + # Test that calling relevant bits of code adds the right paper to citations + citations = pybamm.citations + + citations._reset() + self.assertNotIn("subramanian2005", citations._papers_to_cite) + pybamm.particle.PolynomialSingleParticle(None, "Negative", "quadratic profile") + self.assertIn("subramanian2005", citations._papers_to_cite) + + citations._reset() + self.assertNotIn("subramanian2005", citations._papers_to_cite) + pybamm.particle.PolynomialManyParticles(None, "Negative", "quadratic profile") + self.assertIn("subramanian2005", citations._papers_to_cite) + def test_scikit_fem(self): citations = pybamm.citations diff --git a/tests/unit/test_expression_tree/test_binary_operators.py b/tests/unit/test_expression_tree/test_binary_operators.py index 71d1689c33..5aa4e3ba6c 100644 --- a/tests/unit/test_expression_tree/test_binary_operators.py +++ b/tests/unit/test_expression_tree/test_binary_operators.py @@ -303,6 +303,17 @@ def test_heaviside(self): self.assertEqual(heav.evaluate(y=np.array([0])), 1) self.assertEqual(str(heav), "y[0:1] <= 1.0") + def test_modulo(self): + a = pybamm.StateVector(slice(0, 1)) + b = pybamm.Scalar(3) + mod = a % b + self.assertEqual(mod.evaluate(y=np.array([4]))[0, 0], 1) + self.assertEqual(mod.evaluate(y=np.array([3]))[0, 0], 0) + self.assertEqual(mod.evaluate(y=np.array([2]))[0, 0], 2) + self.assertAlmostEqual(mod.evaluate(y=np.array([4.3]))[0, 0], 1.3) + self.assertAlmostEqual(mod.evaluate(y=np.array([2.2]))[0, 0], 2.2) + self.assertEqual(str(mod), "y[0:1] mod 3.0") + def test_minimum_maximum(self): a = pybamm.Scalar(1) b = pybamm.StateVector(slice(0, 1)) diff --git a/tests/unit/test_expression_tree/test_broadcasts.py b/tests/unit/test_expression_tree/test_broadcasts.py index db62712e26..e66083b7e6 100644 --- a/tests/unit/test_expression_tree/test_broadcasts.py +++ b/tests/unit/test_expression_tree/test_broadcasts.py @@ -55,6 +55,9 @@ def test_secondary_broadcast(self): {"secondary": ["negative electrode"], "tertiary": ["current collector"]}, ) + a = pybamm.Symbol("a") + with self.assertRaisesRegex(TypeError, "empty domain"): + pybamm.SecondaryBroadcast(a, "current collector") a = pybamm.Symbol("a", domain="negative particle") with self.assertRaisesRegex( pybamm.DomainError, "Secondary broadcast from particle" diff --git a/tests/unit/test_expression_tree/test_operations/test_convert_to_casadi.py b/tests/unit/test_expression_tree/test_operations/test_convert_to_casadi.py index f51c2fbdd4..ef28a429ad 100644 --- a/tests/unit/test_expression_tree/test_operations/test_convert_to_casadi.py +++ b/tests/unit/test_expression_tree/test_operations/test_convert_to_casadi.py @@ -20,6 +20,8 @@ def test_convert_scalar_symbols(self): b = pybamm.Scalar(1) c = pybamm.Scalar(-1) d = pybamm.Scalar(2) + e = pybamm.Scalar(3) + g = pybamm.Scalar(3.3) self.assertEqual(a.to_casadi(), casadi.MX(0)) self.assertEqual(d.to_casadi(), casadi.MX(2)) @@ -28,6 +30,10 @@ def test_convert_scalar_symbols(self): self.assertEqual((-b).to_casadi(), casadi.MX(-1)) # absolute value self.assertEqual(abs(c).to_casadi(), casadi.MX(1)) + # floor + self.assertEqual(pybamm.Floor(g).to_casadi(), casadi.MX(3)) + # ceiling + self.assertEqual(pybamm.Ceiling(g).to_casadi(), casadi.MX(4)) # function def square_plus_one(x): @@ -54,6 +60,9 @@ def myfunction(x, y): # division self.assertEqual(pybamm.Division(b, d).to_casadi(), casadi.MX(1 / 2)) + # modulo + self.assertEqual(pybamm.Modulo(e, d).to_casadi(), casadi.MX(1)) + # minimum and maximum self.assertEqual(pybamm.Minimum(a, b).to_casadi(), casadi.MX(0)) self.assertEqual(pybamm.Maximum(a, b).to_casadi(), casadi.MX(1)) @@ -95,9 +104,19 @@ def test_special_functions(self): self.assert_casadi_equal( pybamm.Function(np.abs, c).to_casadi(), casadi.MX(3), evalf=True ) - for np_fun in [np.sqrt, np.tanh, np.cosh, np.sinh, - np.exp, np.log, np.sign, np.sin, np.cos, - np.arccosh, np.arcsinh]: + for np_fun in [ + np.sqrt, + np.tanh, + np.cosh, + np.sinh, + np.exp, + np.log, + np.sign, + np.sin, + np.cos, + np.arccosh, + np.arcsinh, + ]: self.assert_casadi_equal( pybamm.Function(np_fun, c).to_casadi(), casadi.MX(np_fun(3)), evalf=True ) diff --git a/tests/unit/test_expression_tree/test_operations/test_copy.py b/tests/unit/test_expression_tree/test_operations/test_copy.py index 564eee5e61..4b1841a2dc 100644 --- a/tests/unit/test_expression_tree/test_operations/test_copy.py +++ b/tests/unit/test_expression_tree/test_operations/test_copy.py @@ -29,6 +29,7 @@ def test_symbol_new_copy(self): pybamm.FunctionParameter("function", {"a": a}), pybamm.grad(v_n), pybamm.div(pybamm.grad(v_n)), + pybamm.upwind(v_n), pybamm.IndefiniteIntegral(v_n, x_n), pybamm.BackwardIndefiniteIntegral(v_n, x_n), pybamm.BoundaryValue(v_n, "right"), diff --git a/tests/unit/test_expression_tree/test_operations/test_evaluate.py b/tests/unit/test_expression_tree/test_operations/test_evaluate.py index 3f08f11374..0e4e4b177f 100644 --- a/tests/unit/test_expression_tree/test_operations/test_evaluate.py +++ b/tests/unit/test_expression_tree/test_operations/test_evaluate.py @@ -8,12 +8,17 @@ import numpy as np import scipy.sparse from collections import OrderedDict +from platform import system def test_function(arg): return arg + arg +def test_function2(arg1, arg2): + return arg1 + arg2 + + class TestEvaluate(unittest.TestCase): def test_find_symbols(self): a = pybamm.StateVector(slice(0, 1)) @@ -32,8 +37,8 @@ def test_find_symbols(self): self.assertEqual(list(variable_symbols.keys())[2], expr.id) # test values of variable_symbols - self.assertEqual(list(variable_symbols.values())[0], "y[:1][[True]]") - self.assertEqual(list(variable_symbols.values())[1], "y[:2][[False, True]]") + self.assertEqual(list(variable_symbols.values())[0], "y[0:1]") + self.assertEqual(list(variable_symbols.values())[1], "y[1:2]") var_a = pybamm.id_to_python_variable(a.id) var_b = pybamm.id_to_python_variable(b.id) @@ -55,8 +60,8 @@ def test_find_symbols(self): self.assertEqual(list(variable_symbols.keys())[3], expr.id) # test values of variable_symbols - self.assertEqual(list(variable_symbols.values())[0], "y[:1][[True]]") - self.assertEqual(list(variable_symbols.values())[1], "y[:2][[False, True]]") + self.assertEqual(list(variable_symbols.values())[0], "y[0:1]") + self.assertEqual(list(variable_symbols.values())[1], "y[1:2]") self.assertEqual( list(variable_symbols.values())[2], "{} + {}".format(var_a, var_b) ) @@ -80,8 +85,8 @@ def test_find_symbols(self): self.assertEqual(list(variable_symbols.keys())[3], expr.id) # test values of variable_symbols - self.assertEqual(list(variable_symbols.values())[0], "y[:1][[True]]") - self.assertEqual(list(variable_symbols.values())[1], "y[:2][[False, True]]") + self.assertEqual(list(variable_symbols.values())[0], "y[0:1]") + self.assertEqual(list(variable_symbols.values())[1], "y[1:2]") self.assertEqual(list(variable_symbols.values())[2], "-{}".format(var_b)) var_child = pybamm.id_to_python_variable(expr.children[1].id) self.assertEqual( @@ -97,7 +102,7 @@ def test_find_symbols(self): self.assertEqual(list(constant_symbols.values())[0], test_function) self.assertEqual(list(variable_symbols.keys())[0], a.id) self.assertEqual(list(variable_symbols.keys())[1], expr.id) - self.assertEqual(list(variable_symbols.values())[0], "y[:1][[True]]") + self.assertEqual(list(variable_symbols.values())[0], "y[0:1]") var_funct = pybamm.id_to_python_variable(expr.id, True) self.assertEqual( list(variable_symbols.values())[1], "{}({})".format(var_funct, var_a) @@ -125,6 +130,17 @@ def test_find_symbols(self): list(constant_symbols.values())[0].toarray(), A.entries.toarray() ) + # test sparse to dense conversion + constant_symbols = OrderedDict() + variable_symbols = OrderedDict() + A = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[0, 2], [0, 4]]))) + pybamm.find_symbols(A, constant_symbols, variable_symbols, to_dense=True) + self.assertEqual(len(variable_symbols), 0) + self.assertEqual(list(constant_symbols.keys())[0], A.id) + np.testing.assert_allclose( + list(constant_symbols.values())[0], A.entries.toarray() + ) + # test numpy concatentate constant_symbols = OrderedDict() variable_symbols = OrderedDict() @@ -286,9 +302,9 @@ def test_to_python(self): expr = a + b constant_str, variable_str = pybamm.to_python(expr) expected_str = ( - "self\.var_[0-9m]+ = y\[:1\]\[\[True\]\].*\\n" - "self\.var_[0-9m]+ = y\[:2\]\[\[False, True\]\].*\\n" - "self\.var_[0-9m]+ = self\.var_[0-9m]+ \+ self\.var_[0-9m]+" + "var_[0-9m]+ = y\[0:1\].*\\n" + "var_[0-9m]+ = y\[1:2\].*\\n" + "var_[0-9m]+ = var_[0-9m]+ \+ var_[0-9m]+" ) self.assertRegex(variable_str, expected_str) @@ -314,6 +330,11 @@ def test_evaluator_python(self): result = evaluator.evaluate(t=None, y=np.array([[2], [3]])) self.assertEqual(result, 12) + expr = pybamm.Function(test_function2, a, b) + evaluator = pybamm.EvaluatorPython(expr) + result = evaluator.evaluate(t=None, y=np.array([[2], [3]])) + self.assertEqual(result, 5) + # test a constant expression expr = pybamm.Scalar(2) * pybamm.Scalar(3) evaluator = pybamm.EvaluatorPython(expr) @@ -387,11 +408,26 @@ def test_evaluator_python(self): result = evaluator.evaluate(t=t, y=y) np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + expr = B @ pybamm.StateVector(slice(0, 2)) + evaluator = pybamm.EvaluatorPython(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + # test numpy concatenation - a = pybamm.Vector([[1], [2]]) - b = pybamm.Vector([[3]]) + a = pybamm.StateVector(slice(0, 1)) + b = pybamm.StateVector(slice(1, 2)) + c = pybamm.StateVector(slice(2, 3)) + + y_tests = [np.array([[2], [3], [4]]), np.array([[1], [3], [2]])] + t_tests = [1, 2] expr = pybamm.NumpyConcatenation(a, b) evaluator = pybamm.EvaluatorPython(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + expr = pybamm.NumpyConcatenation(a, c) + evaluator = pybamm.EvaluatorPython(expr) for t, y in zip(t_tests, y_tests): result = evaluator.evaluate(t=t, y=y) np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) @@ -399,20 +435,189 @@ def test_evaluator_python(self): # test sparse stack A = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[1, 0], [0, 4]]))) B = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[2, 0], [5, 0]]))) - expr = pybamm.SparseStack(A, B) + a = pybamm.StateVector(slice(0, 1)) + expr = pybamm.SparseStack(A, a * B) evaluator = pybamm.EvaluatorPython(expr) for t, y in zip(t_tests, y_tests): result = evaluator.evaluate(t=t, y=y).toarray() np.testing.assert_allclose(result, expr.evaluate(t=t, y=y).toarray()) + # test Inner + expr = pybamm.Inner(a, b) + evaluator = pybamm.EvaluatorPython(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + v = pybamm.StateVector(slice(0, 2)) + A = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[1, 0], [0, 4]]))) + expr = pybamm.Inner(A, v) + evaluator = pybamm.EvaluatorPython(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y).toarray() + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y).toarray()) + + y_tests = [np.array([[2], [3], [4], [5]]), np.array([[1], [3], [2], [1]])] + t_tests = [1, 2] + a = pybamm.StateVector(slice(0, 1), slice(3, 4)) + b = pybamm.StateVector(slice(1, 3)) + expr = a * b + evaluator = pybamm.EvaluatorPython(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + @unittest.skipIf(system() == "Windows", "JAX not supported on windows") + def test_evaluator_jax(self): + a = pybamm.StateVector(slice(0, 1)) + b = pybamm.StateVector(slice(1, 2)) + + y_tests = [np.array([[2], [3]]), np.array([[1], [3]])] + t_tests = [1, 2] + + # test a * b + expr = a * b + evaluator = pybamm.EvaluatorJax(expr) + result = evaluator.evaluate(t=None, y=np.array([[2], [3]])) + self.assertEqual(result, 6) + result = evaluator.evaluate(t=None, y=np.array([[1], [3]])) + self.assertEqual(result, 3) + + # test function(a*b) + expr = pybamm.Function(test_function, a * b) + evaluator = pybamm.EvaluatorJax(expr) + result = evaluator.evaluate(t=None, y=np.array([[2], [3]])) + self.assertEqual(result, 12) + + # test exp + expr = pybamm.exp(a * b) + evaluator = pybamm.EvaluatorJax(expr) + result = evaluator.evaluate(t=None, y=np.array([[2], [3]])) + self.assertEqual(result, np.exp(6)) + + # test a constant expression + expr = pybamm.Scalar(2) * pybamm.Scalar(3) + evaluator = pybamm.EvaluatorJax(expr) + result = evaluator.evaluate() + self.assertEqual(result, 6) + + # test a larger expression + expr = a * b + b + a ** 2 / b + 2 * a + b / 2 + 4 + evaluator = pybamm.EvaluatorJax(expr) + for y in y_tests: + result = evaluator.evaluate(t=None, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=None, y=y)) + + # test something with time + expr = a * pybamm.t + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + self.assertEqual(result, expr.evaluate(t=t, y=y)) + + # test something with a matrix multiplication + A = pybamm.Matrix(np.array([[1, 2], [3, 4]])) + expr = A @ pybamm.StateVector(slice(0, 2)) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + # test something with a heaviside + a = pybamm.Vector(np.array([1, 2])) + expr = a <= pybamm.StateVector(slice(0, 2)) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + expr = a > pybamm.StateVector(slice(0, 2)) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + # test something with a minimum or maximum + a = pybamm.Vector(np.array([1, 2])) + expr = pybamm.minimum(a, pybamm.StateVector(slice(0, 2))) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + expr = pybamm.maximum(a, pybamm.StateVector(slice(0, 2))) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + # test something with an index + expr = pybamm.Index(A @ pybamm.StateVector(slice(0, 2)), 0) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + self.assertEqual(result, expr.evaluate(t=t, y=y)) + + # test something with a sparse matrix multiplication + A = pybamm.Matrix(np.array([[1, 2], [3, 4]])) + B = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[1, 0], [0, 4]]))) + C = pybamm.Matrix(scipy.sparse.coo_matrix(np.array([[1, 0], [0, 4]]))) + expr = A @ B @ C @ pybamm.StateVector(slice(0, 2)) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + + # test sparse stack + A = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[1, 0], [0, 4]]))) + B = pybamm.Matrix(scipy.sparse.csr_matrix(np.array([[2, 0], [5, 0]]))) + a = pybamm.StateVector(slice(0, 1)) + expr = pybamm.SparseStack(A, a * B) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y).toarray()) + + # test numpy concatenation + a = pybamm.Vector(np.array([[1], [2]])) + b = pybamm.Vector(np.array([[3]])) + expr = pybamm.NumpyConcatenation(a, b) + evaluator = pybamm.EvaluatorJax(expr) + for t, y in zip(t_tests, y_tests): + result = evaluator.evaluate(t=t, y=y) + np.testing.assert_allclose(result, expr.evaluate(t=t, y=y)) + # test Inner v = pybamm.Vector(np.ones(5), domain="test") w = pybamm.Vector(2 * np.ones(5), domain="test") expr = pybamm.Inner(v, w) - evaluator = pybamm.EvaluatorPython(expr) + evaluator = pybamm.EvaluatorJax(expr) result = evaluator.evaluate() np.testing.assert_allclose(result, expr.evaluate()) + @unittest.skipIf(system() == "Windows", "JAX not supported on windows") + def test_evaluator_jax_jacobian(self): + a = pybamm.StateVector(slice(0, 1)) + y_tests = [np.array([[2.0]]), np.array([[1.0]])] + + expr = a ** 2 + expr_jac = 2 * a + evaluator = pybamm.EvaluatorJax(expr) + evaluator_jac_test = evaluator.get_jacobian() + evaluator_jac = pybamm.EvaluatorJax(expr_jac) + for y in y_tests: + result_test = evaluator_jac_test.evaluate(t=None, y=y) + result_true = evaluator_jac.evaluate(t=None, y=y) + np.testing.assert_allclose(result_test, result_true) + + @unittest.skipIf(system() == "Windows", "JAX not supported on windows") + def test_evaluator_jax_debug(self): + a = pybamm.StateVector(slice(0, 1)) + expr = a ** 2 + y_test = np.array([[2.0], [3.0]]) + evaluator = pybamm.EvaluatorJax(expr) + evaluator.debug(y=y_test) + if __name__ == "__main__": print("Add -v for more debug output") diff --git a/tests/unit/test_expression_tree/test_operations/test_jac.py b/tests/unit/test_expression_tree/test_operations/test_jac.py index d79929d720..9695c33ab7 100644 --- a/tests/unit/test_expression_tree/test_operations/test_jac.py +++ b/tests/unit/test_expression_tree/test_operations/test_jac.py @@ -305,6 +305,25 @@ def test_jac_of_heaviside(self): ((a < y) * y ** 2).jac(y).evaluate(y=-5 * np.ones(5)), 0 ) + def test_jac_of_modulo(self): + a = pybamm.Scalar(3) + y = pybamm.StateVector(slice(0, 5)) + np.testing.assert_array_equal( + (a % (3 * a)).jac(y).evaluate(y=5 * np.ones(5)), 0 + ) + np.testing.assert_array_equal( + ((y % a) * y ** 2).jac(y).evaluate(y=5 * np.ones(5)).toarray(), + 45 * np.eye(5), + ) + np.testing.assert_array_equal( + ((a % y) * y ** 2).jac(y).evaluate(y=5 * np.ones(5)).toarray(), + 30 * np.eye(5), + ) + np.testing.assert_array_equal( + (((y + 1) ** 2 % y) * y ** 2).jac(y).evaluate(y=5 * np.ones(5)).toarray(), + 135 * np.eye(5), + ) + def test_jac_of_minimum_maximum(self): y = pybamm.StateVector(slice(0, 10)) y_test = np.linspace(0, 2, 10) @@ -333,6 +352,20 @@ def test_jac_of_sign(self): y_test = np.linspace(-2, 2, 10) np.testing.assert_array_equal(np.diag(jac.evaluate(y=y_test)), np.sign(y_test)) + def test_jac_of_floor(self): + y = pybamm.StateVector(slice(0, 10)) + func = pybamm.Floor(y) * y + jac = func.jac(y) + y_test = np.linspace(-2, 2, 10) + np.testing.assert_array_equal(np.diag(jac.evaluate(y=y_test)), np.floor(y_test)) + + def test_jac_of_ceiling(self): + y = pybamm.StateVector(slice(0, 10)) + func = pybamm.Ceiling(y) * y + jac = func.jac(y) + y_test = np.linspace(-2, 2, 10) + np.testing.assert_array_equal(np.diag(jac.evaluate(y=y_test)), np.ceil(y_test)) + def test_jac_of_domain_concatenation(self): # create mesh mesh = get_mesh_for_testing() diff --git a/tests/unit/test_expression_tree/test_symbol.py b/tests/unit/test_expression_tree/test_symbol.py index 9a94ff97af..2c23e09fc7 100644 --- a/tests/unit/test_expression_tree/test_symbol.py +++ b/tests/unit/test_expression_tree/test_symbol.py @@ -105,6 +105,7 @@ def test_symbol_methods(self): self.assertIsInstance(a <= b, pybamm.Heaviside) self.assertIsInstance(a > b, pybamm.Heaviside) self.assertIsInstance(a >= b, pybamm.Heaviside) + self.assertIsInstance(a % b, pybamm.Modulo) # binary - symbol and number self.assertIsInstance(a + 2, pybamm.Addition) @@ -285,7 +286,7 @@ def test_symbol_repr(self): def test_symbol_visualise(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() zero_n = pybamm.FullBroadcast(0, ["negative electrode"], "current collector") zero_s = pybamm.FullBroadcast(0, ["separator"], "current collector") diff --git a/tests/unit/test_expression_tree/test_symbolic_diff.py b/tests/unit/test_expression_tree/test_symbolic_diff.py index 25c6b76749..f559b8b743 100644 --- a/tests/unit/test_expression_tree/test_symbolic_diff.py +++ b/tests/unit/test_expression_tree/test_symbolic_diff.py @@ -74,6 +74,15 @@ def test_diff_heaviside(self): self.assertEqual(func.diff(b).evaluate(y=np.array([2])), 2) self.assertEqual(func.diff(b).evaluate(y=np.array([-2])), 0) + def test_diff_modulo(self): + a = pybamm.Scalar(3) + b = pybamm.StateVector(slice(0, 1)) + + func = (a % b) * (b ** 2) + self.assertEqual(func.diff(b).evaluate(y=np.array([2])), 0) + self.assertEqual(func.diff(b).evaluate(y=np.array([5])), 30) + self.assertEqual(func.diff(b).evaluate(y=np.array([-2])), 12) + def test_diff_maximum_minimum(self): a = pybamm.Scalar(1) b = pybamm.StateVector(slice(0, 1)) diff --git a/tests/unit/test_expression_tree/test_unary_operators.py b/tests/unit/test_expression_tree/test_unary_operators.py index 3ba42e9325..b5d6f6bdb0 100644 --- a/tests/unit/test_expression_tree/test_unary_operators.py +++ b/tests/unit/test_expression_tree/test_unary_operators.py @@ -51,6 +51,34 @@ def test_sign(self): np.diag(signb.evaluate().toarray()), [-1, -1, 0, 1, 1] ) + def test_floor(self): + a = pybamm.Symbol("a") + floora = pybamm.Floor(a) + self.assertEqual(floora.name, "floor") + self.assertEqual(floora.children[0].name, a.name) + + b = pybamm.Scalar(3.5) + floorb = pybamm.Floor(b) + self.assertEqual(floorb.evaluate(), 3) + + c = pybamm.Scalar(-3.2) + floorc = pybamm.Floor(c) + self.assertEqual(floorc.evaluate(), -4) + + def test_ceiling(self): + a = pybamm.Symbol("a") + ceila = pybamm.Ceiling(a) + self.assertEqual(ceila.name, "ceil") + self.assertEqual(ceila.children[0].name, a.name) + + b = pybamm.Scalar(3.5) + ceilb = pybamm.Ceiling(b) + self.assertEqual(ceilb.evaluate(), 4) + + c = pybamm.Scalar(-3.2) + ceilc = pybamm.Ceiling(c) + self.assertEqual(ceilc.evaluate(), -3) + def test_gradient(self): # gradient of scalar symbol should fail a = pybamm.Symbol("a") @@ -89,7 +117,7 @@ def test_div(self): # divergence of variable evaluating on edges should fail a = pybamm.PrimaryBroadcast(pybamm.Scalar(1), "test") - with self.assertRaisesRegex(TypeError, "evaluates on nodes"): + with self.assertRaisesRegex(TypeError, "evaluate on edges"): pybamm.Divergence(a) # divergence of broadcast should return broadcasted zero @@ -239,6 +267,33 @@ def test_index(self): pybamm.Index(vec, 5) pybamm.settings.debug_mode = debug_mode + def test_upwind_downwind(self): + # upwind of scalar symbol should fail + a = pybamm.Symbol("a") + with self.assertRaisesRegex( + pybamm.DomainError, "Cannot upwind 'a' since its domain is empty" + ): + pybamm.Upwind(a) + + # upwind of variable evaluating on edges should fail + a = pybamm.PrimaryBroadcastToEdges(pybamm.Scalar(1), "test") + with self.assertRaisesRegex(TypeError, "evaluate on nodes"): + pybamm.Upwind(a) + + # otherwise upwind should work + a = pybamm.Symbol("a", domain="test domain") + upwind = pybamm.upwind(a) + self.assertIsInstance(upwind, pybamm.Upwind) + self.assertEqual(upwind.children[0].name, a.name) + self.assertEqual(upwind.domain, a.domain) + + # also test downwind + a = pybamm.Symbol("a", domain="test domain") + downwind = pybamm.downwind(a) + self.assertIsInstance(downwind, pybamm.Downwind) + self.assertEqual(downwind.children[0].name, a.name) + self.assertEqual(downwind.domain, a.domain) + def test_diff(self): a = pybamm.StateVector(slice(0, 1)) y = np.array([5]) @@ -256,6 +311,12 @@ def test_diff(self): # sign self.assertEqual((pybamm.sign(a)).diff(a).evaluate(y=y), 0) + # floor + self.assertEqual((pybamm.Floor(a)).diff(a).evaluate(y=y), 0) + + # ceil + self.assertEqual((pybamm.Ceiling(a)).diff(a).evaluate(y=y), 0) + # spatial operator (not implemented) spatial_a = pybamm.SpatialOperator("name", a) with self.assertRaises(NotImplementedError): @@ -300,11 +361,13 @@ def test_boundary_operators(self): self.assertEqual(boundary_a.child.id, a.id) def test_evaluates_on_edges(self): - a = pybamm.StateVector(slice(0, 10)) + a = pybamm.StateVector(slice(0, 10), domain="test") self.assertFalse(pybamm.Index(a, slice(1)).evaluates_on_edges("primary")) self.assertFalse(pybamm.Laplacian(a).evaluates_on_edges("primary")) self.assertTrue(pybamm.Gradient_Squared(a).evaluates_on_edges("primary")) self.assertFalse(pybamm.BoundaryIntegral(a).evaluates_on_edges("primary")) + self.assertTrue(pybamm.Upwind(a).evaluates_on_edges("primary")) + self.assertTrue(pybamm.Downwind(a).evaluates_on_edges("primary")) def test_boundary_value(self): a = pybamm.Scalar(1) @@ -397,6 +460,10 @@ def test_x_average(self): pybamm.x_average(symbol_on_edges) # Particle domains + geo = pybamm.GeometricParameters() + l_n = geo.l_n + l_p = geo.l_p + a = pybamm.Symbol( "a", domain="negative particle", @@ -406,7 +473,7 @@ def test_x_average(self): self.assertEqual(a.domain, ["negative particle"]) self.assertIsInstance(av_a, pybamm.Division) self.assertIsInstance(av_a.children[0], pybamm.Integral) - self.assertEqual(av_a.children[1].id, pybamm.geometric_parameters.l_n.id) + self.assertEqual(av_a.children[1].id, l_n.id) a = pybamm.Symbol( "a", @@ -417,7 +484,7 @@ def test_x_average(self): self.assertEqual(a.domain, ["positive particle"]) self.assertIsInstance(av_a, pybamm.Division) self.assertIsInstance(av_a.children[0], pybamm.Integral) - self.assertEqual(av_a.children[1].id, pybamm.geometric_parameters.l_p.id) + self.assertEqual(av_a.children[1].id, l_p.id) def test_r_average(self): a = pybamm.Scalar(1) @@ -439,6 +506,15 @@ def test_r_average(self): # electrode domains go to current collector when averaged self.assertEqual(av_a.domain, []) + # r-average of a symbol that is broadcast to x + # takes the average of the child then broadcasts it + a = pybamm.Scalar(1, domain="positive particle") + broad_a = pybamm.SecondaryBroadcast(a, "positive electrode") + average_broad_a = pybamm.r_average(broad_a) + self.assertIsInstance(average_broad_a, pybamm.PrimaryBroadcast) + self.assertEqual(average_broad_a.domain, ["positive electrode"]) + self.assertEqual(average_broad_a.children[0].id, pybamm.r_average(a).id) + # r-average of symbol that evaluates on edges raises error symbol_on_edges = pybamm.PrimaryBroadcastToEdges(1, "domain") with self.assertRaisesRegex( diff --git a/tests/unit/test_geometry/test_battery_geometry.py b/tests/unit/test_geometry/test_battery_geometry.py index 7ddbadc596..668a4b2234 100644 --- a/tests/unit/test_geometry/test_battery_geometry.py +++ b/tests/unit/test_geometry/test_battery_geometry.py @@ -17,6 +17,7 @@ def test_geometry_keys(self): def test_geometry(self): var = pybamm.standard_spatial_vars + geo = pybamm.GeometricParameters() for cc_dimension in [0, 1, 2]: geometry = pybamm.battery_geometry(current_collector_dimension=cc_dimension) self.assertIsInstance(geometry, pybamm.Geometry) @@ -24,8 +25,7 @@ def test_geometry(self): self.assertIn("negative particle", geometry) self.assertEqual(geometry["negative electrode"][var.x_n]["min"], 0) self.assertEqual( - geometry["negative electrode"][var.x_n]["max"].id, - pybamm.geometric_parameters.l_n.id, + geometry["negative electrode"][var.x_n]["max"].id, geo.l_n.id ) if cc_dimension == 1: self.assertIn("tabs", geometry["current collector"]) @@ -33,22 +33,27 @@ def test_geometry(self): geometry = pybamm.battery_geometry(include_particles=False) self.assertNotIn("negative particle", geometry) + def test_geometry_error(self): + with self.assertRaisesRegex(pybamm.GeometryError, "Invalid current"): + pybamm.battery_geometry(current_collector_dimension=4) + class TestReadParameters(unittest.TestCase): # This is the most complicated geometry and should test the parameters are # all returned for the deepest dict def test_read_parameters(self): - L_n = pybamm.geometric_parameters.L_n - L_s = pybamm.geometric_parameters.L_s - L_p = pybamm.geometric_parameters.L_p - L_y = pybamm.geometric_parameters.L_y - L_z = pybamm.geometric_parameters.L_z - tab_n_y = pybamm.geometric_parameters.Centre_y_tab_n - tab_n_z = pybamm.geometric_parameters.Centre_z_tab_n - L_tab_n = pybamm.geometric_parameters.L_tab_n - tab_p_y = pybamm.geometric_parameters.Centre_y_tab_p - tab_p_z = pybamm.geometric_parameters.Centre_z_tab_p - L_tab_p = pybamm.geometric_parameters.L_tab_p + geo = pybamm.GeometricParameters() + L_n = geo.L_n + L_s = geo.L_s + L_p = geo.L_p + L_y = geo.L_y + L_z = geo.L_z + tab_n_y = geo.Centre_y_tab_n + tab_n_z = geo.Centre_z_tab_n + L_tab_n = geo.L_tab_n + tab_p_y = geo.Centre_y_tab_p + tab_p_z = geo.Centre_z_tab_p + L_tab_p = geo.L_tab_p geometry = pybamm.battery_geometry(current_collector_dimension=2) diff --git a/tests/unit/test_meshes/test_one_dimensional_submesh.py b/tests/unit/test_meshes/test_one_dimensional_submesh.py index aeef070e5d..8cb084e786 100644 --- a/tests/unit/test_meshes/test_one_dimensional_submesh.py +++ b/tests/unit/test_meshes/test_one_dimensional_submesh.py @@ -273,6 +273,90 @@ def test_mesh_creation_no_parameters(self): ) +class TestSpectralVolume1DSubMesh(unittest.TestCase): + def test_exceptions(self): + edges = np.array([0, 0.3, 1]) + submesh_params = {"edges": edges} + mesh = pybamm.MeshGenerator(pybamm.SpectralVolume1DSubMesh, + submesh_params) + + x_n = pybamm.standard_spatial_vars.x_n + + # error if npts+1 != len(edges) + lims = {x_n: {"min": 0, "max": 1}} + npts = {x_n.id: 10} + with self.assertRaises(pybamm.GeometryError): + mesh(lims, npts) + + # error if lims[0] not equal to edges[0] + lims = {x_n: {"min": 0.1, "max": 1}} + npts = {x_n.id: len(edges) - 1} + with self.assertRaises(pybamm.GeometryError): + mesh(lims, npts) + + # error if lims[-1] not equal to edges[-1] + lims = {x_n: {"min": 0, "max": 10}} + npts = {x_n.id: len(edges) - 1} + with self.assertRaises(pybamm.GeometryError): + mesh(lims, npts) + + def test_mesh_creation_no_parameters(self): + r = pybamm.SpatialVariable( + "r", domain=["negative particle"], coord_sys="spherical polar" + ) + + geometry = { + "negative particle": {r: {"min": pybamm.Scalar(0), + "max": pybamm.Scalar(1)}} + } + + edges = np.array([0, 0.3, 1]) + order = 3 + submesh_params = {"edges": edges, "order": order} + submesh_types = { + "negative particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, submesh_params + ) + } + var_pts = {r: len(edges) - 1} + + # create mesh + mesh = pybamm.Mesh(geometry, submesh_types, var_pts) + + # check boundary locations + self.assertEqual(mesh["negative particle"].edges[0], 0) + self.assertEqual(mesh["negative particle"].edges[-1], 1) + + # check number of edges and nodes + self.assertEqual(len(mesh["negative particle"].sv_nodes), var_pts[r]) + self.assertEqual(len(mesh["negative particle"].nodes), + order * var_pts[r]) + self.assertEqual( + len(mesh["negative particle"].edges), + len(mesh["negative particle"].nodes) + 1, + ) + + # check Chebyshev subdivision locations + for (a, b) in zip(mesh["negative particle"].edges.tolist(), + [0, 0.075, 0.225, 0.3, 0.475, 0.825, 1]): + self.assertAlmostEqual(a, b) + + # test uniform submesh creation + submesh_params = {"order": order} + submesh_types = { + "negative particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, submesh_params + ) + } + var_pts = {r: 2} + + # create mesh + mesh = pybamm.Mesh(geometry, submesh_types, var_pts) + for (a, b) in zip(mesh["negative particle"].edges.tolist(), + [0.0, 0.125, 0.375, 0.5, 0.625, 0.875, 1.0]): + self.assertAlmostEqual(a, b) + + if __name__ == "__main__": print("Add -v for more debug output") import sys diff --git a/tests/unit/test_models/test_full_battery_models/test_base_battery_model.py b/tests/unit/test_models/test_full_battery_models/test_base_battery_model.py index c1c63b9a26..b50bd1534f 100644 --- a/tests/unit/test_models/test_full_battery_models/test_base_battery_model.py +++ b/tests/unit/test_models/test_full_battery_models/test_base_battery_model.py @@ -123,10 +123,16 @@ def test_options(self): pybamm.BaseBatteryModel({"current collector": "bad current collector"}) with self.assertRaisesRegex(pybamm.OptionError, "thermal model"): pybamm.BaseBatteryModel({"thermal": "bad thermal"}) + with self.assertRaisesRegex(pybamm.OptionError, "Unknown geometry"): + pybamm.BaseBatteryModel({"cell geometry": "bad geometry"}) with self.assertRaisesRegex( pybamm.OptionError, "Dimension of current collectors" ): pybamm.BaseBatteryModel({"dimensionality": 5}) + with self.assertRaisesRegex(pybamm.OptionError, "current collector"): + pybamm.BaseBatteryModel( + {"dimensionality": 1, "current collector": "bad option"} + ) with self.assertRaisesRegex(pybamm.OptionError, "surface form"): pybamm.BaseBatteryModel({"surface form": "bad surface form"}) with self.assertRaisesRegex(pybamm.OptionError, "convection option"): @@ -137,6 +143,10 @@ def test_options(self): pybamm.BaseBatteryModel({"convection": "full transverse"}) with self.assertRaisesRegex(pybamm.OptionError, "particle model"): pybamm.BaseBatteryModel({"particle": "bad particle"}) + with self.assertRaisesRegex(NotImplementedError, "The 'fast diffusion'"): + pybamm.BaseBatteryModel({"particle": "fast diffusion"}) + with self.assertRaisesRegex(pybamm.OptionError, "particle shape"): + pybamm.BaseBatteryModel({"particle shape": "bad particle shape"}) with self.assertRaisesRegex(pybamm.OptionError, "operating mode"): pybamm.BaseBatteryModel({"operating mode": "bad operating mode"}) diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_base_lithium_ion_model.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_base_lithium_ion_model.py index a9654e3fe6..05860b0822 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_base_lithium_ion_model.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_base_lithium_ion_model.py @@ -9,6 +9,10 @@ class TestBaseLithiumIonModel(unittest.TestCase): def test_incompatible_options(self): with self.assertRaisesRegex(pybamm.OptionError, "convection not implemented"): pybamm.lithium_ion.BaseModel({"convection": "uniform transverse"}) + with self.assertRaisesRegex(pybamm.OptionError, "x-lumped"): + pybamm.lithium_ion.BaseModel( + {"cell geometry": "arbitrary", "thermal": "x-lumped"} + ) if __name__ == "__main__": diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_basic_models.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_basic_models.py index 97998b066e..2bb6d1cd81 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_basic_models.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_basic_models.py @@ -20,6 +20,29 @@ def test_spm_well_posed(self): copy = model.new_copy() copy.check_well_posedness() + def test_dfn_half_cell_well_posed(self): + options = {"working electrode": "positive"} + model = pybamm.lithium_ion.BasicDFNHalfCell(options=options) + model.check_well_posedness() + + copy = model.new_copy() + copy.check_well_posedness() + + options = {"working electrode": "negative"} + model = pybamm.lithium_ion.BasicDFNHalfCell(options=options) + model.check_well_posedness() + + copy = model.new_copy() + copy.check_well_posedness() + + def test_dfn_half_cell_simulation_error(self): + options = {"working electrode": "negative"} + model = pybamm.lithium_ion.BasicDFNHalfCell(options=options) + with self.assertRaisesRegex( + NotImplementedError, "not compatible with Simulations yet." + ): + pybamm.Simulation(model) + if __name__ == "__main__": print("Add -v for more debug output") diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py index 1c49f0f3bf..7088c3f0e9 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_dfn.py @@ -88,8 +88,23 @@ def test_thermal_2plus1D(self): model = pybamm.lithium_ion.DFN(options) model.check_well_posedness() - def test_particle_fast_diffusion(self): - options = {"particle": "fast diffusion"} + def test_particle_uniform(self): + options = {"particle": "uniform profile"} + model = pybamm.lithium_ion.DFN(options) + model.check_well_posedness() + + def test_particle_quadratic(self): + options = {"particle": "quadratic profile"} + model = pybamm.lithium_ion.DFN(options) + model.check_well_posedness() + + def test_particle_quartic(self): + options = {"particle": "quartic profile"} + model = pybamm.lithium_ion.DFN(options) + model.check_well_posedness() + + def test_particle_shape_user(self): + options = {"particle shape": "user"} model = pybamm.lithium_ion.DFN(options) model.check_well_posedness() diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spm.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spm.py index 7f581711c1..460d711825 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spm.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spm.py @@ -89,8 +89,23 @@ def test_thermal_2plus1D(self): model = pybamm.lithium_ion.SPM(options) model.check_well_posedness() - def test_particle_fast_diffusion(self): - options = {"particle": "fast diffusion"} + def test_particle_uniform(self): + options = {"particle": "uniform profile"} + model = pybamm.lithium_ion.SPM(options) + model.check_well_posedness() + + def test_particle_quadratic(self): + options = {"particle": "quadratic profile"} + model = pybamm.lithium_ion.SPM(options) + model.check_well_posedness() + + def test_particle_quartic(self): + options = {"particle": "quartic profile"} + model = pybamm.lithium_ion.SPM(options) + model.check_well_posedness() + + def test_particle_shape_user(self): + options = {"particle shape": "user"} model = pybamm.lithium_ion.SPM(options) model.check_well_posedness() @@ -116,8 +131,8 @@ def test_new_model(self): # with custom submodels model = pybamm.lithium_ion.SPM({"thermal": "x-full"}, build=False) - model.submodels["negative particle"] = pybamm.particle.FastSingleParticle( - model.param, "Negative" + model.submodels["negative particle"] = pybamm.particle.PolynomialSingleParticle( + model.param, "Negative", "quadratic profile" ) model.build_model() new_model = model.new_copy() diff --git a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spme.py b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spme.py index f85543ae54..41579dad6b 100644 --- a/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spme.py +++ b/tests/unit/test_models/test_full_battery_models/test_lithium_ion/test_spme.py @@ -88,8 +88,23 @@ def test_thermal_2plus1D(self): model = pybamm.lithium_ion.SPMe(options) model.check_well_posedness() - def test_particle_fast_diffusion(self): - options = {"particle": "fast diffusion"} + def test_particle_uniform(self): + options = {"particle": "uniform profile"} + model = pybamm.lithium_ion.SPMe(options) + model.check_well_posedness() + + def test_particle_quadratic(self): + options = {"particle": "quadratic profile"} + model = pybamm.lithium_ion.SPMe(options) + model.check_well_posedness() + + def test_particle_quartic(self): + options = {"particle": "quartic profile"} + model = pybamm.lithium_ion.SPMe(options) + model.check_well_posedness() + + def test_particle_shape_user(self): + options = {"particle shape": "user"} model = pybamm.lithium_ion.SPMe(options) model.check_well_posedness() diff --git a/tests/unit/test_models/test_submodels/test_convection/test_base_convection.py b/tests/unit/test_models/test_submodels/test_convection/test_base_convection.py index 1dcd8604a1..8e96e496a1 100644 --- a/tests/unit/test_models/test_submodels/test_convection/test_base_convection.py +++ b/tests/unit/test_models/test_submodels/test_convection/test_base_convection.py @@ -9,7 +9,7 @@ class TestBaseModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() submodel = pybamm.convection.through_cell.BaseThroughCellModel(param) a = pybamm.PrimaryBroadcast(0, "current collector") a_n = pybamm.PrimaryBroadcast(0, "negative electrode") diff --git a/tests/unit/test_models/test_submodels/test_convection/test_explicit_convection.py b/tests/unit/test_models/test_submodels/test_convection/test_explicit_convection.py index 42f2fe2f72..43c9aca466 100644 --- a/tests/unit/test_models/test_submodels/test_convection/test_explicit_convection.py +++ b/tests/unit/test_models/test_submodels/test_convection/test_explicit_convection.py @@ -9,7 +9,7 @@ class TestExplicit(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.PrimaryBroadcast(0, "current collector") a_n = pybamm.PrimaryBroadcast(a, ["negative electrode"]) diff --git a/tests/unit/test_models/test_submodels/test_convection/test_full_convection.py b/tests/unit/test_models/test_submodels/test_convection/test_full_convection.py index 437a08f3c1..5c5f9d8153 100644 --- a/tests/unit/test_models/test_submodels/test_convection/test_full_convection.py +++ b/tests/unit/test_models/test_submodels/test_convection/test_full_convection.py @@ -9,7 +9,7 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { diff --git a/tests/unit/test_models/test_submodels/test_convection/test_no_convection.py b/tests/unit/test_models/test_submodels/test_convection/test_no_convection.py index 0a94c0b120..217e0b51c1 100644 --- a/tests/unit/test_models/test_submodels/test_convection/test_no_convection.py +++ b/tests/unit/test_models/test_submodels/test_convection/test_no_convection.py @@ -9,7 +9,7 @@ class TestNoConvectionModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) a_s = pybamm.PrimaryBroadcast(a, "separator") diff --git a/tests/unit/test_models/test_submodels/test_current_collector/test_composite_potential_pair.py b/tests/unit/test_models/test_submodels/test_current_collector/test_composite_potential_pair.py index 8648edf21c..8bf216e65e 100644 --- a/tests/unit/test_models/test_submodels/test_current_collector/test_composite_potential_pair.py +++ b/tests/unit/test_models/test_submodels/test_current_collector/test_composite_potential_pair.py @@ -9,7 +9,7 @@ class TestBaseModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.current_collector.CompositePotentialPair1plus1D(param) variables = { "Positive current collector potential": pybamm.PrimaryBroadcast( diff --git a/tests/unit/test_models/test_submodels/test_current_collector/test_homogeneous_current_collector.py b/tests/unit/test_models/test_submodels/test_current_collector/test_homogeneous_current_collector.py index 7fa012b450..d19ac1b048 100644 --- a/tests/unit/test_models/test_submodels/test_current_collector/test_homogeneous_current_collector.py +++ b/tests/unit/test_models/test_submodels/test_current_collector/test_homogeneous_current_collector.py @@ -9,7 +9,7 @@ class TestUniformModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.current_collector.Uniform(param) variables = { diff --git a/tests/unit/test_models/test_submodels/test_current_collector/test_potential_pair.py b/tests/unit/test_models/test_submodels/test_current_collector/test_potential_pair.py index e28275ca08..b4179e57de 100644 --- a/tests/unit/test_models/test_submodels/test_current_collector/test_potential_pair.py +++ b/tests/unit/test_models/test_submodels/test_current_collector/test_potential_pair.py @@ -9,7 +9,7 @@ class TestBaseModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() variables = { "Positive current collector potential": pybamm.PrimaryBroadcast( 0, "current collector" diff --git a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_composite_ohm.py b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_composite_ohm.py index 968110157d..1030f9cd6c 100644 --- a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_composite_ohm.py +++ b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_composite_ohm.py @@ -9,7 +9,7 @@ class TestComposite(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { diff --git a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_full_ohm.py b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_full_ohm.py index 482f29cd66..8d588a17a7 100644 --- a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_full_ohm.py +++ b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_full_ohm.py @@ -9,7 +9,7 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { diff --git a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_leading_ohm.py b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_leading_ohm.py index a477003b77..1101a39ebf 100644 --- a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_leading_ohm.py +++ b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_leading_ohm.py @@ -9,7 +9,7 @@ class TestLeadingOrder(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { diff --git a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_surface_form_ohm.py b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_surface_form_ohm.py index e899441e29..bc6f54e554 100644 --- a/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_surface_form_ohm.py +++ b/tests/unit/test_models/test_submodels/test_electrode/test_ohm/test_surface_form_ohm.py @@ -9,7 +9,7 @@ class TestSurfaceForm(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py index 5cf5c432d6..807ae68472 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py @@ -9,7 +9,7 @@ class TestComposite(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.PrimaryBroadcast(0, "current collector") c_e_n = pybamm.standard_variables.c_e_n c_e_s = pybamm.standard_variables.c_e_s @@ -35,7 +35,7 @@ def test_public_functions(self): std_tests.test_all() def test_public_functions_first_order(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.PrimaryBroadcast(0, "current collector") c_e_n = pybamm.standard_variables.c_e_n c_e_s = pybamm.standard_variables.c_e_s diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py index a665ec08b5..575898299d 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py @@ -9,8 +9,9 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Scalar(0) + surf = "surface area per unit volume distribution in x" variables = { "Electrolyte tortuosity": a, "Electrolyte concentration": pybamm.FullBroadcast( @@ -18,6 +19,10 @@ def test_public_functions(self): ["negative electrode", "separator", "positive electrode"], "current collector", ), + "Negative " + + surf: pybamm.FullBroadcast(a, "negative electrode", "current collector"), + "Positive " + + surf: pybamm.FullBroadcast(a, "positive electrode", "current collector"), "Sum of interfacial current densities": pybamm.FullBroadcast( a, ["negative electrode", "separator", "positive electrode"], diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py index 7d27313b2c..f0f153d51b 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py @@ -9,7 +9,7 @@ class TestLeadingOrder(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Scalar(0) variables = { "Current collector current density": a, diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_conductivity.py index dc02c1c822..327f8e85b0 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_conductivity.py @@ -9,7 +9,7 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Scalar(0) a_n = pybamm.FullBroadcast( pybamm.Scalar(0), ["negative electrode"], "current collector" @@ -25,6 +25,7 @@ def test_public_functions(self): "Negative electrode porosity": a_n, "Negative electrolyte tortuosity": a_n, "Negative electrode tortuosity": a_n, + "Negative surface area per unit volume distribution in x": a_n, "Negative electrolyte concentration": a_n, "Sum of negative electrode interfacial current densities": a_n, "Electrolyte potential": pybamm.Concatenation(a_n, a_s, a_p), @@ -54,6 +55,7 @@ def test_public_functions(self): "Positive electrode porosity": a_p, "Positive electrolyte tortuosity": a_p, "Positive electrode tortuosity": a_p, + "Positive surface area per unit volume distribution in x": a_p, "Positive electrolyte concentration": a_p, "Sum of positive electrode interfacial current densities": a_p, "Positive electrode temperature": a_p, diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_conductivity.py index cf74f2d760..7f2de31c53 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_conductivity.py @@ -9,7 +9,7 @@ class TestLeadingOrderModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Scalar(0) a_n = pybamm.FullBroadcast( pybamm.Scalar(0), ["negative electrode"], "current collector" diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py index ee1819d610..1d2c7898e6 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py @@ -9,11 +9,11 @@ class TestConstantConcentration(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion - submodel = pybamm.electrolyte_diffusion.ConstantConcentration( - param - ) - std_tests = tests.StandardSubModelTests(submodel) + param = pybamm.LithiumIonParameters() + a = pybamm.Scalar(0) + variables = {"Porosity": a, "Electrolyte concentration": a} + submodel = pybamm.electrolyte_diffusion.ConstantConcentration(param) + std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py index eb4d1f6bfc..65685a097d 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py @@ -9,7 +9,7 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Scalar(0) full = pybamm.FullBroadcast( a, diff --git a/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py index 82fb1bdaec..69933a1b93 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py @@ -9,9 +9,10 @@ class TestLeadingOrder(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { + "Porosity": a, "X-averaged negative electrode porosity": a, "X-averaged separator porosity": a, "X-averaged positive electrode porosity": a, diff --git a/tests/unit/test_models/test_submodels/test_external_circuit/test_current_control.py b/tests/unit/test_models/test_submodels/test_external_circuit/test_current_control.py index c2dc1c19de..ceb41e62b6 100644 --- a/tests/unit/test_models/test_submodels/test_external_circuit/test_current_control.py +++ b/tests/unit/test_models/test_submodels/test_external_circuit/test_current_control.py @@ -9,7 +9,7 @@ class TestCurrentControl(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.external_circuit.CurrentControl(param) std_tests = tests.StandardSubModelTests(submodel) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_external_circuit/test_function_control.py b/tests/unit/test_models/test_submodels/test_external_circuit/test_function_control.py index 2315fac9ee..9cfd51cf99 100644 --- a/tests/unit/test_models/test_submodels/test_external_circuit/test_function_control.py +++ b/tests/unit/test_models/test_submodels/test_external_circuit/test_function_control.py @@ -9,19 +9,21 @@ def external_circuit_function(variables): I = variables["Current [A]"] V = variables["Terminal voltage [V]"] + liion_param = pybamm.LithiumIonParameters() + return ( V + I - pybamm.FunctionParameter( "Current plus voltage function", - {"Time [s]": pybamm.t * pybamm.standard_parameters_lithium_ion.timescale}, + {"Time [s]": pybamm.t * liion_param.timescale}, ) ) class TestFunctionControl(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.external_circuit.FunctionControl( param, external_circuit_function ) diff --git a/tests/unit/test_models/test_submodels/test_external_circuit/test_power_control.py b/tests/unit/test_models/test_submodels/test_external_circuit/test_power_control.py index 414970a815..a6743ea2ff 100644 --- a/tests/unit/test_models/test_submodels/test_external_circuit/test_power_control.py +++ b/tests/unit/test_models/test_submodels/test_external_circuit/test_power_control.py @@ -9,7 +9,7 @@ class TestPowerControl(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.external_circuit.PowerFunctionControl(param) variables = {"Terminal voltage [V]": pybamm.Scalar(0)} std_tests = tests.StandardSubModelTests(submodel, variables) diff --git a/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited.py b/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited.py index 867a4276ce..dd89e50c39 100644 --- a/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited.py +++ b/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited.py @@ -9,7 +9,7 @@ class TestBaseModel(unittest.TestCase): def test_public_function(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a_n = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["negative electrode"]) a_s = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["separator"]) diff --git a/tests/unit/test_models/test_submodels/test_interface/test_inverse_kinetics/test_inverse_butler_volmer.py b/tests/unit/test_models/test_submodels/test_interface/test_inverse_kinetics/test_inverse_butler_volmer.py index fb0128b0b6..ff6f2ac3d1 100644 --- a/tests/unit/test_models/test_submodels/test_interface/test_inverse_kinetics/test_inverse_butler_volmer.py +++ b/tests/unit/test_models/test_submodels/test_interface/test_inverse_kinetics/test_inverse_butler_volmer.py @@ -9,7 +9,7 @@ class TestBaseModel(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Scalar(0) variables = { diff --git a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_butler_volmer.py b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_butler_volmer.py index 377d527498..d053e9feaf 100644 --- a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_butler_volmer.py +++ b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_butler_volmer.py @@ -9,7 +9,7 @@ class TestButlerVolmer(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a_n = pybamm.FullBroadcast( pybamm.Scalar(0), ["negative electrode"], "current collector" diff --git a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_tafel.py b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_tafel.py index 2eacdf6be5..565d98d709 100644 --- a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_tafel.py +++ b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_tafel.py @@ -9,7 +9,7 @@ class TestTafel(unittest.TestCase): def test_public_function(self): # Test forward Tafel on the negative - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a_n = pybamm.FullBroadcast( pybamm.Scalar(0), ["negative electrode"], "current collector" diff --git a/tests/unit/test_models/test_submodels/test_interface/test_lead_acid.py b/tests/unit/test_models/test_submodels/test_interface/test_lead_acid.py index 21abca6ac3..ba57b49ad3 100644 --- a/tests/unit/test_models/test_submodels/test_interface/test_lead_acid.py +++ b/tests/unit/test_models/test_submodels/test_interface/test_lead_acid.py @@ -9,7 +9,7 @@ class TestLeadAcid(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a_n = pybamm.FullBroadcast( pybamm.Scalar(0), ["negative electrode"], "current collector" diff --git a/tests/unit/test_models/test_submodels/test_interface/test_lithium_ion.py b/tests/unit/test_models/test_submodels/test_interface/test_lithium_ion.py index d7524a0575..7fb5ce7183 100644 --- a/tests/unit/test_models/test_submodels/test_interface/test_lithium_ion.py +++ b/tests/unit/test_models/test_submodels/test_interface/test_lithium_ion.py @@ -9,7 +9,7 @@ class TestLithiumIon(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a_n = pybamm.FullBroadcast( pybamm.Scalar(0), ["negative electrode"], "current collector" diff --git a/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_full_oxygen_diffusion.py b/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_full_oxygen_diffusion.py index 83873e804f..502ad6798d 100644 --- a/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_full_oxygen_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_full_oxygen_diffusion.py @@ -9,7 +9,7 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { "Porosity": pybamm.Concatenation( diff --git a/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_leading_oxygen_diffusion.py b/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_leading_oxygen_diffusion.py index 35c2917851..45e6f824e8 100644 --- a/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_leading_oxygen_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_leading_oxygen_diffusion.py @@ -9,7 +9,7 @@ class TestLeadingOrder(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.Scalar(0) variables = { "X-averaged negative electrode porosity": a, diff --git a/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_no_oxygen.py b/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_no_oxygen.py index 20f02ab142..e2279afbd2 100644 --- a/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_no_oxygen.py +++ b/tests/unit/test_models/test_submodels/test_oxygen_diffusion/test_no_oxygen.py @@ -9,7 +9,7 @@ class TestConstantConcentration(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() submodel = pybamm.oxygen_diffusion.NoOxygen(param) std_tests = tests.StandardSubModelTests(submodel) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_particle/test_fast_many_particles.py b/tests/unit/test_models/test_submodels/test_particle/test_fast_many_particles.py deleted file mode 100644 index de87f3ca0e..0000000000 --- a/tests/unit/test_models/test_submodels/test_particle/test_fast_many_particles.py +++ /dev/null @@ -1,40 +0,0 @@ -# -# Test many fast particles -# - -import pybamm -import tests -import unittest - - -class TestManyParticles(unittest.TestCase): - def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion - - a_n = pybamm.FullBroadcast( - pybamm.Scalar(0), "negative electrode", {"secondary": "current collector"} - ) - a_p = pybamm.FullBroadcast( - pybamm.Scalar(0), "positive electrode", {"secondary": "current collector"} - ) - - variables = {"Negative electrode interfacial current density": a_n} - - submodel = pybamm.particle.FastManyParticles(param, "Negative") - std_tests = tests.StandardSubModelTests(submodel, variables) - std_tests.test_all() - - variables = {"Positive electrode interfacial current density": a_p} - submodel = pybamm.particle.FastManyParticles(param, "Positive") - std_tests = tests.StandardSubModelTests(submodel, variables) - std_tests.test_all() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_models/test_submodels/test_particle/test_fast_single_particle.py b/tests/unit/test_models/test_submodels/test_particle/test_fast_single_particle.py deleted file mode 100644 index 28677bc9e6..0000000000 --- a/tests/unit/test_models/test_submodels/test_particle/test_fast_single_particle.py +++ /dev/null @@ -1,34 +0,0 @@ -# -# Test single fast particles -# - -import pybamm -import tests -import unittest - - -class TestSingleParticle(unittest.TestCase): - def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion - - a = pybamm.PrimaryBroadcast(pybamm.Scalar(0), "current collector") - variables = {"X-averaged negative electrode interfacial current density": a} - - submodel = pybamm.particle.FastSingleParticle(param, "Negative") - std_tests = tests.StandardSubModelTests(submodel, variables) - std_tests.test_all() - - variables = {"X-averaged positive electrode interfacial current density": a} - submodel = pybamm.particle.FastSingleParticle(param, "Positive") - std_tests = tests.StandardSubModelTests(submodel, variables) - std_tests.test_all() - - -if __name__ == "__main__": - print("Add -v for more debug output") - import sys - - if "-v" in sys.argv: - debug = True - pybamm.settings.debug_mode = True - unittest.main() diff --git a/tests/unit/test_models/test_submodels/test_particle/test_fickian_many_particles.py b/tests/unit/test_models/test_submodels/test_particle/test_fickian_many_particles.py index 8953203915..3ba0c71d9e 100644 --- a/tests/unit/test_models/test_submodels/test_particle/test_fickian_many_particles.py +++ b/tests/unit/test_models/test_submodels/test_particle/test_fickian_many_particles.py @@ -9,7 +9,7 @@ class TestManyParticles(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a_n = pybamm.FullBroadcast( pybamm.Scalar(0), "negative electrode", {"secondary": "current collector"} diff --git a/tests/unit/test_models/test_submodels/test_particle/test_fickian_single_particle.py b/tests/unit/test_models/test_submodels/test_particle/test_fickian_single_particle.py index fbf27e700c..8d5292daa6 100644 --- a/tests/unit/test_models/test_submodels/test_particle/test_fickian_single_particle.py +++ b/tests/unit/test_models/test_submodels/test_particle/test_fickian_single_particle.py @@ -9,7 +9,7 @@ class TestSingleParticle(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.PrimaryBroadcast(pybamm.Scalar(0), "current collector") variables = { diff --git a/tests/unit/test_models/test_submodels/test_particle/test_polynomial_many_particles.py b/tests/unit/test_models/test_submodels/test_particle/test_polynomial_many_particles.py new file mode 100644 index 0000000000..e4c939589d --- /dev/null +++ b/tests/unit/test_models/test_submodels/test_particle/test_polynomial_many_particles.py @@ -0,0 +1,75 @@ +# +# Test many polynomial particles +# + +import pybamm +import tests +import unittest + + +class TestManyParticles(unittest.TestCase): + def test_public_functions(self): + param = pybamm.LithiumIonParameters() + + a_n = pybamm.FullBroadcast( + pybamm.Scalar(0), "negative electrode", {"secondary": "current collector"} + ) + a_p = pybamm.FullBroadcast( + pybamm.Scalar(0), "positive electrode", {"secondary": "current collector"} + ) + + variables = { + "Negative electrode interfacial current density": a_n, + "Negative electrode temperature": a_n, + } + + submodel = pybamm.particle.PolynomialManyParticles( + param, "Negative", "uniform profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialManyParticles( + param, "Negative", "quadratic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialManyParticles( + param, "Negative", "quartic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + variables = { + "Positive electrode interfacial current density": a_p, + "Positive electrode temperature": a_p, + } + + submodel = pybamm.particle.PolynomialManyParticles( + param, "Positive", "uniform profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialManyParticles( + param, "Positive", "quadratic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialManyParticles( + param, "Positive", "quartic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_models/test_submodels/test_particle/test_polynomial_single_particle.py b/tests/unit/test_models/test_submodels/test_particle/test_polynomial_single_particle.py new file mode 100644 index 0000000000..fee9b29a15 --- /dev/null +++ b/tests/unit/test_models/test_submodels/test_particle/test_polynomial_single_particle.py @@ -0,0 +1,72 @@ +# +# Test single polynomial particles +# + +import pybamm +import tests +import unittest + + +class TestSingleParticle(unittest.TestCase): + def test_public_functions(self): + param = pybamm.LithiumIonParameters() + + a = pybamm.PrimaryBroadcast(pybamm.Scalar(0), "current collector") + + variables = { + "Current collector current density": a, + "X-averaged negative electrode interfacial current density": a, + "X-averaged negative electrode temperature": a, + } + + submodel = pybamm.particle.PolynomialSingleParticle( + param, "Negative", "uniform profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialSingleParticle( + param, "Negative", "quadratic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialSingleParticle( + param, "Negative", "quartic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + variables = { + "Current collector current density": a, + "X-averaged positive electrode interfacial current density": a, + "X-averaged positive electrode temperature": a, + } + + submodel = pybamm.particle.PolynomialSingleParticle( + param, "Positive", "uniform profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialSingleParticle( + param, "Positive", "quadratic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.particle.PolynomialSingleParticle( + param, "Positive", "quartic profile" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_models/test_submodels/test_porosity/test_constant_porosity.py b/tests/unit/test_models/test_submodels/test_porosity/test_constant_porosity.py index 85afcc924b..7e19a8250b 100644 --- a/tests/unit/test_models/test_submodels/test_porosity/test_constant_porosity.py +++ b/tests/unit/test_models/test_submodels/test_porosity/test_constant_porosity.py @@ -9,7 +9,7 @@ class TestConstantPorosity(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.porosity.Constant(param) std_tests = tests.StandardSubModelTests(submodel) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_porosity/test_full_reaction_driven_porosity.py b/tests/unit/test_models/test_submodels/test_porosity/test_full_reaction_driven_porosity.py index aba8b0895a..b95e76a693 100644 --- a/tests/unit/test_models/test_submodels/test_porosity/test_full_reaction_driven_porosity.py +++ b/tests/unit/test_models/test_submodels/test_porosity/test_full_reaction_driven_porosity.py @@ -9,7 +9,7 @@ class TestFull(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a_n = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["negative electrode"]) a_p = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["positive electrode"]) variables = { diff --git a/tests/unit/test_models/test_submodels/test_porosity/test_leading_reaction_driven_porosity.py b/tests/unit/test_models/test_submodels/test_porosity/test_leading_reaction_driven_porosity.py index ca4a60a131..a2b0cb0b3e 100644 --- a/tests/unit/test_models/test_submodels/test_porosity/test_leading_reaction_driven_porosity.py +++ b/tests/unit/test_models/test_submodels/test_porosity/test_leading_reaction_driven_porosity.py @@ -9,7 +9,7 @@ class TestLeadingOrder(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lead_acid + param = pybamm.LeadAcidParameters() a = pybamm.PrimaryBroadcast(pybamm.Scalar(0), "current collector") variables = { "X-averaged negative electrode interfacial current density": a, diff --git a/tests/unit/test_models/test_submodels/test_thermal/test_base_thermal.py b/tests/unit/test_models/test_submodels/test_thermal/test_base_thermal.py index 416c286aa1..5226c67fa9 100644 --- a/tests/unit/test_models/test_submodels/test_thermal/test_base_thermal.py +++ b/tests/unit/test_models/test_submodels/test_thermal/test_base_thermal.py @@ -9,7 +9,7 @@ class TestBaseThermal(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.thermal.BaseThermal(param) std_tests = tests.StandardSubModelTests(submodel) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_thermal/test_isothermal.py b/tests/unit/test_models/test_submodels/test_thermal/test_isothermal.py index 6194703fbb..3449c82e97 100644 --- a/tests/unit/test_models/test_submodels/test_thermal/test_isothermal.py +++ b/tests/unit/test_models/test_submodels/test_thermal/test_isothermal.py @@ -9,7 +9,7 @@ class TestIsothermal(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.thermal.isothermal.Isothermal(param) std_tests = tests.StandardSubModelTests(submodel) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_thermal/test_lumped.py b/tests/unit/test_models/test_submodels/test_thermal/test_lumped.py index 7e9cf42c29..dbc8f0b24c 100644 --- a/tests/unit/test_models/test_submodels/test_thermal/test_lumped.py +++ b/tests/unit/test_models/test_submodels/test_thermal/test_lumped.py @@ -13,7 +13,7 @@ class TestLumped(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.thermal.Lumped(param) std_tests = tests.StandardSubModelTests(submodel, coupled_variables) diff --git a/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_1plus1D.py b/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_1plus1D.py index cff13ad63e..c3e03a8290 100644 --- a/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_1plus1D.py +++ b/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_1plus1D.py @@ -13,7 +13,7 @@ class TestPouchCell1D(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.thermal.pouch_cell.CurrentCollector1D(param) std_tests = tests.StandardSubModelTests(submodel, coupled_variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_2plus1D.py b/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_2plus1D.py index d202d5f643..6bab47f332 100644 --- a/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_2plus1D.py +++ b/tests/unit/test_models/test_submodels/test_thermal/test_pouch_cell/test_pouch_2plus1D.py @@ -13,7 +13,7 @@ class TestPouchCell2D(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.thermal.pouch_cell.CurrentCollector2D(param) std_tests = tests.StandardSubModelTests(submodel, coupled_variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_thermal/test_x_full.py b/tests/unit/test_models/test_submodels/test_thermal/test_x_full.py index 83129bc6fb..b738707ca7 100644 --- a/tests/unit/test_models/test_submodels/test_thermal/test_x_full.py +++ b/tests/unit/test_models/test_submodels/test_thermal/test_x_full.py @@ -13,7 +13,7 @@ class TestOneDimensionalX(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() submodel = pybamm.thermal.OneDimensionalX(param) std_tests = tests.StandardSubModelTests(submodel, coupled_variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_tortuosity/test_bruggeman_tortuosity.py b/tests/unit/test_models/test_submodels/test_tortuosity/test_bruggeman_tortuosity.py index eed98a060b..1f2ca9030c 100644 --- a/tests/unit/test_models/test_submodels/test_tortuosity/test_bruggeman_tortuosity.py +++ b/tests/unit/test_models/test_submodels/test_tortuosity/test_bruggeman_tortuosity.py @@ -9,7 +9,7 @@ class TestBruggeman(unittest.TestCase): def test_public_functions(self): - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() a = pybamm.Concatenation( pybamm.FullBroadcast(0, ["negative electrode"], "current collector"), pybamm.FullBroadcast(0, ["separator"], "current collector"), diff --git a/tests/unit/test_parameters/test_current_functions.py b/tests/unit/test_parameters/test_current_functions.py index f70459c5ca..b640842d69 100644 --- a/tests/unit/test_parameters/test_current_functions.py +++ b/tests/unit/test_parameters/test_current_functions.py @@ -10,7 +10,8 @@ class TestCurrentFunctions(unittest.TestCase): def test_constant_current(self): # test simplify - current = pybamm.electrical_parameters.current_with_time + param = pybamm.ElectricalParameters() + current = param.current_with_time parameter_values = pybamm.ParameterValues( { "Typical current [A]": 2, @@ -23,7 +24,8 @@ def test_constant_current(self): def test_get_current_data(self): # test process parameters - dimensional_current = pybamm.electrical_parameters.dimensional_current_with_time + param = pybamm.ElectricalParameters() + dimensional_current = param.dimensional_current_with_time parameter_values = pybamm.ParameterValues( { "Typical current [A]": 2, @@ -45,7 +47,8 @@ def my_fun(t, A, omega): return A * pybamm.sin(2 * np.pi * omega * t) # choose amplitude and frequency - A = pybamm.electrical_parameters.I_typ + param = pybamm.ElectricalParameters() + A = param.I_typ omega = pybamm.Parameter("omega") def current(t): @@ -60,7 +63,7 @@ def current(t): "Current function [A]": current, } ) - dimensional_current = pybamm.electrical_parameters.dimensional_current_with_time + dimensional_current = param.dimensional_current_with_time dimensional_current_eval = parameter_values.process_symbol(dimensional_current) def user_current(t): diff --git a/tests/unit/test_parameters/test_electrical_parameters.py b/tests/unit/test_parameters/test_electrical_parameters.py index c1aaf9259f..0a51f7bb9e 100644 --- a/tests/unit/test_parameters/test_electrical_parameters.py +++ b/tests/unit/test_parameters/test_electrical_parameters.py @@ -9,12 +9,11 @@ class TestElectricalParameters(unittest.TestCase): def test_current_functions(self): # create current functions - dimensional_current = pybamm.electrical_parameters.dimensional_current_with_time - dimensional_current_density = ( - pybamm.electrical_parameters.dimensional_current_density_with_time - ) - dimensionless_current = pybamm.electrical_parameters.current_with_time - dimensionless_current_density = pybamm.electrical_parameters.current_with_time + param = pybamm.ElectricalParameters() + dimensional_current = param.dimensional_current_with_time + dimensional_current_density = param.dimensional_current_density_with_time + dimensionless_current = param.current_with_time + dimensionless_current_density = param.current_with_time # process parameter_values = pybamm.ParameterValues( diff --git a/tests/unit/test_parameters/test_geometric_parameters.py b/tests/unit/test_parameters/test_geometric_parameters.py index 2711c76430..63df878fac 100644 --- a/tests/unit/test_parameters/test_geometric_parameters.py +++ b/tests/unit/test_parameters/test_geometric_parameters.py @@ -8,13 +8,14 @@ class TestGeometricParameters(unittest.TestCase): def test_macroscale_parameters(self): - L_n = pybamm.geometric_parameters.L_n - L_s = pybamm.geometric_parameters.L_s - L_p = pybamm.geometric_parameters.L_p - L_x = pybamm.geometric_parameters.L_x - l_n = pybamm.geometric_parameters.l_n - l_s = pybamm.geometric_parameters.l_s - l_p = pybamm.geometric_parameters.l_p + geo = pybamm.GeometricParameters() + L_n = geo.L_n + L_s = geo.L_s + L_p = geo.L_p + L_x = geo.L_x + l_n = geo.l_n + l_s = geo.l_s + l_p = geo.l_p parameter_values = pybamm.ParameterValues( values={ diff --git a/tests/unit/test_parameters/test_standard_parameters_lead_acid.py b/tests/unit/test_parameters/test_lead_acid_parameters.py similarity index 75% rename from tests/unit/test_parameters/test_standard_parameters_lead_acid.py rename to tests/unit/test_parameters/test_lead_acid_parameters.py index 39d84690d3..787e304f81 100644 --- a/tests/unit/test_parameters/test_standard_parameters_lead_acid.py +++ b/tests/unit/test_parameters/test_lead_acid_parameters.py @@ -9,27 +9,23 @@ class TestStandardParametersLeadAcid(unittest.TestCase): def test_scipy_constants(self): - R = pybamm.standard_parameters_lead_acid.R - self.assertAlmostEqual(R.evaluate(), 8.314, places=3) - F = pybamm.standard_parameters_lead_acid.F - self.assertAlmostEqual(F.evaluate(), 96485, places=0) + param = pybamm.LeadAcidParameters() + self.assertAlmostEqual(param.R.evaluate(), 8.314, places=3) + self.assertAlmostEqual(param.F.evaluate(), 96485, places=0) def test_all_defined(self): - parameters = pybamm.standard_parameters_lead_acid + parameters = pybamm.LeadAcidParameters() parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values output_file = "lead_acid_parameters.txt" parameter_values.print_parameters(parameters, output_file) # test print_parameters with dict and without C-rate del parameter_values["Cell capacity [A.h]"] - parameters = { - "C_e": pybamm.standard_parameters_lead_acid.C_e, - "sigma_n": pybamm.standard_parameters_lead_acid.sigma_n, - } + parameters = {"C_e": parameters.C_e, "sigma_n": parameters.sigma_n} parameter_values.print_parameters(parameters) def test_parameters_defaults_lead_acid(self): # Load parameters to be tested - parameters = pybamm.standard_parameters_lead_acid + parameters = pybamm.LeadAcidParameters() parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values param_eval = parameter_values.print_parameters(parameters) param_eval = {k: v[0] for k, v in param_eval.items()} @@ -50,7 +46,8 @@ def test_parameters_defaults_lead_acid(self): def test_concatenated_parameters(self): # create - s_param = pybamm.standard_parameters_lead_acid.s_plus_S + param = pybamm.LeadAcidParameters() + s_param = param.s_plus_S self.assertIsInstance(s_param, pybamm.Concatenation) self.assertEqual( s_param.domain, ["negative electrode", "separator", "positive electrode"] @@ -71,12 +68,9 @@ def test_concatenated_parameters(self): def test_current_functions(self): # create current functions - dimensional_current_density = ( - pybamm.standard_parameters_lead_acid.dimensional_current_density_with_time - ) - dimensionless_current_density = ( - pybamm.standard_parameters_lead_acid.current_with_time - ) + param = pybamm.LeadAcidParameters() + dimensional_current_density = param.dimensional_current_density_with_time + dimensionless_current_density = param.current_with_time # process parameter_values = pybamm.ParameterValues( @@ -105,27 +99,16 @@ def test_current_functions(self): def test_functions_lead_acid(self): # Load parameters to be tested + param = pybamm.LeadAcidParameters() parameters = { - "D_e_1": pybamm.standard_parameters_lead_acid.D_e( - pybamm.Scalar(1), pybamm.Scalar(0) - ), - "kappa_e_0": pybamm.standard_parameters_lead_acid.kappa_e( - pybamm.Scalar(0), pybamm.Scalar(0) - ), - "chi_1": pybamm.standard_parameters_lead_acid.chi(pybamm.Scalar(1)), - "chi_0.5": pybamm.standard_parameters_lead_acid.chi(pybamm.Scalar(0.5)), - "U_n_1": pybamm.standard_parameters_lead_acid.U_n( - pybamm.Scalar(1), pybamm.Scalar(0) - ), - "U_n_0.5": pybamm.standard_parameters_lead_acid.U_n( - pybamm.Scalar(0.5), pybamm.Scalar(0) - ), - "U_p_1": pybamm.standard_parameters_lead_acid.U_p( - pybamm.Scalar(1), pybamm.Scalar(0) - ), - "U_p_0.5": pybamm.standard_parameters_lead_acid.U_p( - pybamm.Scalar(0.5), pybamm.Scalar(0) - ), + "D_e_1": param.D_e(pybamm.Scalar(1), pybamm.Scalar(0)), + "kappa_e_0": param.kappa_e(pybamm.Scalar(0), pybamm.Scalar(0)), + "chi_1": param.chi(pybamm.Scalar(1)), + "chi_0.5": param.chi(pybamm.Scalar(0.5)), + "U_n_1": param.U_n(pybamm.Scalar(1), pybamm.Scalar(0)), + "U_n_0.5": param.U_n(pybamm.Scalar(0.5), pybamm.Scalar(0)), + "U_p_1": param.U_p(pybamm.Scalar(1), pybamm.Scalar(0)), + "U_p_0.5": param.U_p(pybamm.Scalar(0.5), pybamm.Scalar(0)), } # Process parameter_values = pybamm.ParameterValues( @@ -144,7 +127,7 @@ def test_functions_lead_acid(self): def test_update_initial_state_of_charge(self): # Load parameters to be tested - parameters = pybamm.standard_parameters_lead_acid + parameters = pybamm.LeadAcidParameters() parameter_values = pybamm.lead_acid.BaseModel().default_parameter_values param_eval = parameter_values.print_parameters(parameters) param_eval = {k: v[0] for k, v in param_eval.items()} diff --git a/tests/unit/test_parameters/test_dimensionless_parameter_values_lithium_ion.py b/tests/unit/test_parameters/test_lithium_ion_parameters.py similarity index 95% rename from tests/unit/test_parameters/test_dimensionless_parameter_values_lithium_ion.py rename to tests/unit/test_parameters/test_lithium_ion_parameters.py index 183124b211..8d48a84b10 100644 --- a/tests/unit/test_parameters/test_dimensionless_parameter_values_lithium_ion.py +++ b/tests/unit/test_parameters/test_lithium_ion_parameters.py @@ -8,13 +8,17 @@ class TestDimensionlessParameterValues(unittest.TestCase): + def test_options(self): + with self.assertRaisesRegex(pybamm.OptionError, "particle shape"): + pybamm.LithiumIonParameters({"particle shape": "bad shape"}) + def test_lithium_ion(self): """This test checks that all the dimensionless parameters are being calculated correctly for the specific set of parameters for LCO from dualfoil. The values are those converted from those in Scott's transfer which previous versions of the DFN work with. A 1C rate corresponds to a 24A/m^2 current density""" values = pybamm.lithium_ion.BaseModel().default_parameter_values - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() c_rate = param.i_typ / 24 # roughly for the numbers I used before @@ -152,7 +156,7 @@ def test_lithium_ion(self): def test_thermal_parameters(self): values = pybamm.lithium_ion.BaseModel().default_parameter_values - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() c_rate = param.i_typ / 24 # Density @@ -190,7 +194,7 @@ def test_thermal_parameters(self): # values.evaluate(param.tau_th_yz), 1.4762 * 10 ** (3), 2 # ) - # thermal = pybamm.thermal_parameters + # thermal = pybamm.ThermalParameters() # np.testing.assert_almost_equal( # values.evaluate(thermal.rho_eff_dim), 1.8116 * 10 ** (6), 2 # ) @@ -200,7 +204,7 @@ def test_thermal_parameters(self): def test_parameter_functions(self): values = pybamm.lithium_ion.BaseModel().default_parameter_values - param = pybamm.standard_parameters_lithium_ion + param = pybamm.LithiumIonParameters() c_test = pybamm.Scalar(0.5) T_test = pybamm.Scalar(0) diff --git a/tests/unit/test_parameters/test_parameter_values.py b/tests/unit/test_parameters/test_parameter_values.py index bd85c292db..ce107d0b6f 100644 --- a/tests/unit/test_parameters/test_parameter_values.py +++ b/tests/unit/test_parameters/test_parameter_values.py @@ -340,6 +340,28 @@ def test_process_function_parameter(self): processed_func = parameter_values.process_symbol(func) self.assertEqual(processed_func.evaluate(inputs={"vec": 13}), 13) + # make sure function keeps the domain of the original function + + def my_func(x): + return 2 * x + + x = pybamm.standard_spatial_vars.x_n + func = pybamm.FunctionParameter("func", {"x": x}) + + parameter_values = pybamm.ParameterValues({"func": my_func}) + func1 = parameter_values.process_symbol(func) + + parameter_values = pybamm.ParameterValues({"func": pybamm.InputParameter("a")}) + func2 = parameter_values.process_symbol(func) + + parameter_values = pybamm.ParameterValues( + {"func": pybamm.InputParameter("a", "negative electrode")} + ) + func3 = parameter_values.process_symbol(func) + + self.assertEqual(func1.domains, func2.domains) + self.assertEqual(func1.domains, func3.domains) + def test_process_inline_function_parameters(self): def D(c): return c ** 2 diff --git a/tests/unit/test_quick_plot.py b/tests/unit/test_quick_plot.py index fde665c3b7..6308864f9f 100644 --- a/tests/unit/test_quick_plot.py +++ b/tests/unit/test_quick_plot.py @@ -295,7 +295,7 @@ def test_loqs_spme(self): t = solution["Time [s]"].entries c_e_var = solution["Electrolyte concentration [mol.m-3]"] # 1D variables should be evaluated on edges - L_x = param.evaluate(pybamm.geometric_parameters.L_x) + L_x = param.evaluate(model.param.L_x) c_e = c_e_var(t=t, x=mesh.combine_submeshes(*c_e_var.domain).edges * L_x) for unit, scale in zip(["seconds", "minutes", "hours"], [1, 60, 3600]): diff --git a/tests/unit/test_simulation.py b/tests/unit/test_simulation.py index ac8fa907d6..b3fc6d2954 100644 --- a/tests/unit/test_simulation.py +++ b/tests/unit/test_simulation.py @@ -297,11 +297,22 @@ def test_plot(self): sim.solve(t_eval=t_eval) sim.plot(testing=True) + # test quick_plot_vars deprecation error + with self.assertRaisesRegex(NotImplementedError, "'quick_plot_vars'"): + sim.plot(quick_plot_vars=["var"]) + def test_drive_cycle_data(self): model = pybamm.lithium_ion.SPM() param = model.default_parameter_values param["Current function [A]"] = "[current data]US06" + with self.assertRaisesRegex(NotImplementedError, "Drive cycle from data"): + pybamm.Simulation(model, parameter_values=param) + + def test_drive_cycle_interpolant(self): + model = pybamm.lithium_ion.SPM() + param = model.default_parameter_values + # Import drive cycle from file drive_cycle = pd.read_csv( pybamm.get_parameters_filepath( os.path.join("input", "drive_cycles", "US06.csv") @@ -310,6 +321,14 @@ def test_drive_cycle_data(self): skip_blank_lines=True, header=None, ) + + timescale = param.evaluate(model.timescale) + current_interpolant = pybamm.Interpolant( + drive_cycle.to_numpy(), timescale * pybamm.t + ) + + param["Current function [A]"] = current_interpolant + time_data = drive_cycle.values[:, 0] sim = pybamm.Simulation(model, parameter_values=param) @@ -366,7 +385,7 @@ def test_t_eval(self): # tets list gets turned into np.linspace(t0, tf, 100) sim.solve(t_eval=[0, 10]) - np.testing.assert_array_equal(sim.t_eval, np.linspace(0, 10, 100)) + np.testing.assert_array_almost_equal(sim.t_eval, np.linspace(0, 10, 100)) if __name__ == "__main__": diff --git a/tests/unit/test_solvers/test_base_solver.py b/tests/unit/test_solvers/test_base_solver.py index 35e6cf25d7..9d60ebd16f 100644 --- a/tests/unit/test_solvers/test_base_solver.py +++ b/tests/unit/test_solvers/test_base_solver.py @@ -89,7 +89,8 @@ def test_block_symbolic_inputs(self): p = pybamm.InputParameter("p") model.rhs = {a: a * p} with self.assertRaisesRegex( - pybamm.SolverError, "Only CasadiAlgebraicSolver can have symbolic inputs" + pybamm.SolverError, + "Only CasadiSolver and CasadiAlgebraicSolver can have symbolic inputs", ): solver.solve(model, np.array([1, 2, 3])) diff --git a/tests/unit/test_solvers/test_casadi_solver.py b/tests/unit/test_solvers/test_casadi_solver.py index ba3376e583..7b3dd4ced3 100644 --- a/tests/unit/test_solvers/test_casadi_solver.py +++ b/tests/unit/test_solvers/test_casadi_solver.py @@ -6,6 +6,7 @@ import numpy as np from tests import get_mesh_for_testing, get_discretisation_for_testing from scipy.sparse import eye +from scipy.optimize import least_squares class TestCasadiSolver(unittest.TestCase): @@ -37,7 +38,14 @@ def test_model_solver(self): model.events = [pybamm.Event("an event", var + 1)] disc.process_model(model) solver = pybamm.CasadiSolver(rtol=1e-8, atol=1e-8) - t_eval = np.linspace(0, 1, 100) + solution = solver.solve(model, t_eval) + np.testing.assert_array_equal(solution.t, t_eval) + np.testing.assert_array_almost_equal( + solution.y[0], np.exp(0.1 * solution.t), decimal=5 + ) + + # Safe mode, without grid (enforce events that won't be triggered) + solver = pybamm.CasadiSolver(mode="safe without grid", rtol=1e-8, atol=1e-8) solution = solver.solve(model, t_eval) np.testing.assert_array_equal(solution.t, t_eval) np.testing.assert_array_almost_equal( @@ -82,15 +90,10 @@ def test_model_solver_failure(self): model_disc = disc.process_model(model, inplace=False) solver = pybamm.CasadiSolver(extra_options_call={"regularity_check": False}) - solver_old = pybamm.CasadiSolver( - mode="old safe", extra_options_call={"regularity_check": False} - ) # Solve with failure at t=2 t_eval = np.linspace(0, 20, 100) with self.assertRaises(pybamm.SolverError): solver.solve(model_disc, t_eval) - with self.assertRaises(pybamm.SolverError): - solver_old.solve(model_disc, t_eval) # Solve with failure at t=0 model.initial_conditions = {var: 0} model_disc = disc.process_model(model, inplace=False) @@ -144,8 +147,8 @@ def test_model_solver_events(self): ) pybamm.settings.debug_mode = True - # Solve using "old safe" mode - solver = pybamm.CasadiSolver(mode="old safe", rtol=1e-8, atol=1e-8) + # Try dt_max=0 to enforce using all timesteps + solver = pybamm.CasadiSolver(dt_max=0, rtol=1e-8, atol=1e-8) t_eval = np.linspace(0, 5, 100) solution = solver.solve(model, t_eval) np.testing.assert_array_less(solution.y[0], 1.5) @@ -304,6 +307,16 @@ def test_model_solver_with_inputs(self): self.assertLess(len(solution.t), len(t_eval)) np.testing.assert_allclose(solution.y[0], np.exp(-0.1 * solution.t), rtol=1e-04) + # Without grid + solver = pybamm.CasadiSolver(mode="safe without grid", rtol=1e-8, atol=1e-8) + t_eval = np.linspace(0, 10, 100) + solution = solver.solve(model, t_eval, inputs={"rate": 0.1}) + self.assertLess(len(solution.t), len(t_eval)) + np.testing.assert_allclose(solution.y[0], np.exp(-0.1 * solution.t), rtol=1e-04) + solution = solver.solve(model, t_eval, inputs={"rate": 1.1}) + self.assertLess(len(solution.t), len(t_eval)) + np.testing.assert_allclose(solution.y[0], np.exp(-1.1 * solution.t), rtol=1e-04) + def test_model_solver_dae_inputs_in_initial_conditions(self): # Create model model = pybamm.BaseModel() @@ -410,6 +423,202 @@ def test_dae_solver_algebraic_model(self): solver.solve(model, t_eval) +class TestCasadiSolverSensitivity(unittest.TestCase): + def test_solve_with_symbolic_input(self): + # Simple system: a single differential equation + var = pybamm.Variable("var") + model = pybamm.BaseModel() + model.rhs = {var: pybamm.InputParameter("param")} + model.initial_conditions = {var: 2} + model.variables = {"var": var} + + # create discretisation + disc = pybamm.Discretisation() + disc.process_model(model) + + # Solve + solver = pybamm.CasadiSolver() + t_eval = np.linspace(0, 1) + solution = solver.solve(model, t_eval) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 7}).full().flatten(), 2 + 7 * t_eval + ) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": -3}).full().flatten(), 2 - 3 * t_eval + ) + np.testing.assert_array_almost_equal( + solution["var"].sensitivity({"param": 3}).full().flatten(), t_eval + ) + + def test_least_squares_fit(self): + # Simple system: a single algebraic equation + var1 = pybamm.Variable("var1", domain="negative electrode") + var2 = pybamm.Variable("var2", domain="negative electrode") + model = pybamm.BaseModel() + p = pybamm.InputParameter("p") + q = pybamm.InputParameter("q") + model.rhs = {var1: -var1} + model.algebraic = {var2: (var2 - p)} + model.initial_conditions = {var1: 1, var2: 3} + model.variables = {"objective": (var2 - q) ** 2 + (p - 3) ** 2} + + # create discretisation + disc = get_discretisation_for_testing() + disc.process_model(model) + + # Solve + solver = pybamm.CasadiSolver() + solution = solver.solve(model, np.linspace(0, 1)) + sol_var = solution["objective"] + + def objective(x): + return sol_var.value({"p": x[0], "q": x[1]}).full().flatten() + + # without jacobian + lsq_sol = least_squares(objective, [2, 2], method="lm") + np.testing.assert_array_almost_equal(lsq_sol.x, [3, 3], decimal=3) + + def jac(x): + return sol_var.sensitivity({"p": x[0], "q": x[1]}) + + # with jacobian + lsq_sol = least_squares(objective, [2, 2], jac=jac, method="lm") + np.testing.assert_array_almost_equal(lsq_sol.x, [3, 3], decimal=3) + + def test_solve_with_symbolic_input_1D_scalar_input(self): + var = pybamm.Variable("var", "negative electrode") + model = pybamm.BaseModel() + param = pybamm.InputParameter("param") + model.rhs = {var: -param * var} + model.initial_conditions = {var: 2} + model.variables = {"var": var} + + # create discretisation + disc = get_discretisation_for_testing() + disc.process_model(model) + + # Solve - scalar input + solver = pybamm.CasadiSolver() + t_eval = np.linspace(0, 1) + solution = solver.solve(model, t_eval) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 7}), + np.repeat(2 * np.exp(-7 * t_eval), 40)[:, np.newaxis], + decimal=4, + ) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 3}), + np.repeat(2 * np.exp(-3 * t_eval), 40)[:, np.newaxis], + decimal=4, + ) + np.testing.assert_array_almost_equal( + solution["var"].sensitivity({"param": 3}), + np.repeat( + -2 * t_eval * np.exp(-3 * t_eval), disc.mesh["negative electrode"].npts + )[:, np.newaxis], + decimal=4, + ) + + def test_solve_with_symbolic_input_1D_vector_input(self): + var = pybamm.Variable("var", "negative electrode") + model = pybamm.BaseModel() + param = pybamm.InputParameter("param", "negative electrode") + model.rhs = {var: -param * var} + model.initial_conditions = {var: 2} + model.variables = {"var": var} + + # create discretisation + disc = get_discretisation_for_testing() + disc.process_model(model) + + # Solve - scalar input + solver = pybamm.CasadiSolver() + solution = solver.solve(model, np.linspace(0, 1)) + n = disc.mesh["negative electrode"].npts + + solver = pybamm.CasadiSolver() + t_eval = np.linspace(0, 1) + solution = solver.solve(model, t_eval) + p = np.linspace(0, 1, n)[:, np.newaxis] + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 3 * np.ones(n)}), + np.repeat(2 * np.exp(-3 * t_eval), 40)[:, np.newaxis], + decimal=4, + ) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 2 * p}), + 2 * np.exp(-2 * p * t_eval).T.reshape(-1, 1), + decimal=4, + ) + np.testing.assert_array_almost_equal( + solution["var"].sensitivity({"param": 3 * np.ones(n)}), + np.kron(-2 * t_eval * np.exp(-3 * t_eval), np.eye(40)).T, + decimal=4, + ) + + sens = solution["var"].sensitivity({"param": p}).full() + for idx, t in enumerate(t_eval): + np.testing.assert_array_almost_equal( + sens[40 * idx : 40 * (idx + 1), :], + -2 * t * np.exp(-p * t) * np.eye(40), + decimal=4, + ) + + def test_solve_with_symbolic_input_in_initial_conditions(self): + # Simple system: a single algebraic equation + var = pybamm.Variable("var") + model = pybamm.BaseModel() + model.rhs = {var: -var} + model.initial_conditions = {var: pybamm.InputParameter("param")} + model.variables = {"var": var} + + # create discretisation + disc = pybamm.Discretisation() + disc.process_model(model) + + # Solve + solver = pybamm.CasadiSolver(atol=1e-10, rtol=1e-10) + t_eval = np.linspace(0, 1) + solution = solver.solve(model, t_eval) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 7}), 7 * np.exp(-t_eval)[np.newaxis, :] + ) + np.testing.assert_array_almost_equal( + solution["var"].value({"param": 3}), 3 * np.exp(-t_eval)[np.newaxis, :] + ) + np.testing.assert_array_almost_equal( + solution["var"].sensitivity({"param": 3}), np.exp(-t_eval)[:, np.newaxis] + ) + + def test_least_squares_fit_input_in_initial_conditions(self): + # Simple system: a single algebraic equation + var1 = pybamm.Variable("var1", domain="negative electrode") + var2 = pybamm.Variable("var2", domain="negative electrode") + model = pybamm.BaseModel() + p = pybamm.InputParameter("p") + q = pybamm.InputParameter("q") + model.rhs = {var1: -var1} + model.algebraic = {var2: (var2 - p)} + model.initial_conditions = {var1: 1, var2: p} + model.variables = {"objective": (var2 - q) ** 2 + (p - 3) ** 2} + + # create discretisation + disc = get_discretisation_for_testing() + disc.process_model(model) + + # Solve + solver = pybamm.CasadiSolver() + solution = solver.solve(model, np.linspace(0, 1)) + sol_var = solution["objective"] + + def objective(x): + return sol_var.value({"p": x[0], "q": x[1]}).full().flatten() + + # without jacobian + lsq_sol = least_squares(objective, [2, 2], method="lm") + np.testing.assert_array_almost_equal(lsq_sol.x, [3, 3], decimal=3) + + if __name__ == "__main__": print("Add -v for more debug output") import sys diff --git a/tests/unit/test_solvers/test_jax_bdf_solver.py b/tests/unit/test_solvers/test_jax_bdf_solver.py new file mode 100644 index 0000000000..1ec810c09d --- /dev/null +++ b/tests/unit/test_solvers/test_jax_bdf_solver.py @@ -0,0 +1,218 @@ +import pybamm +import unittest +from tests import get_mesh_for_testing +import sys +import time +import numpy as np +from platform import system +if system() != "Windows": + import jax + + +@unittest.skipIf(system() == "Windows", "JAX not supported on windows") +class TestJaxBDFSolver(unittest.TestCase): + def test_solver(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: 0.1 * var} + model.initial_conditions = {var: 1} + # No need to set parameters; can use base discretisation (no spatial operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + # Solve + t_eval = np.linspace(0.0, 1.0, 80) + y0 = model.concatenated_initial_conditions.evaluate().reshape(-1) + rhs = pybamm.EvaluatorJax(model.concatenated_rhs) + + def fun(y, t): + return rhs.evaluate(t=t, y=y).reshape(-1) + + t0 = time.perf_counter() + y = pybamm.jax_bdf_integrate(fun, y0, t_eval, rtol=1e-8, atol=1e-8) + t1 = time.perf_counter() - t0 + + # test accuracy + np.testing.assert_allclose(y[:, 0], np.exp(0.1 * t_eval), + rtol=1e-6, atol=1e-6) + + t0 = time.perf_counter() + y = pybamm.jax_bdf_integrate(fun, y0, t_eval, rtol=1e-8, atol=1e-8) + t2 = time.perf_counter() - t0 + + # second run should be much quicker + self.assertLess(t2, t1) + + # test second run is accurate + np.testing.assert_allclose(y[:, 0], np.exp(0.1 * t_eval), + rtol=1e-6, atol=1e-6) + + def test_mass_matrix(self): + # Solve + t_eval = np.linspace(0.0, 1.0, 80) + + def fun(y, t): + return jax.numpy.stack([ + 0.1 * y[0], + y[1] - 2.0 * y[0], + ]) + + mass = jax.numpy.array([ + [2.0, 0.0], + [0.0, 0.0], + ]) + + # give some bad initial conditions, solver should calculate correct ones using + # this as a guess + y0 = jax.numpy.array([1.0, 1.5]) + + t0 = time.perf_counter() + y = pybamm.jax_bdf_integrate(fun, y0, t_eval, mass=mass, rtol=1e-8, atol=1e-8) + t1 = time.perf_counter() - t0 + + # test accuracy + soln = np.exp(0.05 * t_eval) + np.testing.assert_allclose(y[:, 0], soln, + rtol=1e-7, atol=1e-7) + np.testing.assert_allclose(y[:, 1], 2.0 * soln, + rtol=1e-7, atol=1e-7) + + t0 = time.perf_counter() + y = pybamm.jax_bdf_integrate(fun, y0, t_eval, mass=mass, rtol=1e-8, atol=1e-8) + t2 = time.perf_counter() - t0 + + # second run should be much quicker + self.assertLess(t2, t1) + + # test second run is accurate + np.testing.assert_allclose(y[:, 0], np.exp(0.05 * t_eval), + rtol=1e-7, atol=1e-7) + + def test_solver_sensitivities(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: -pybamm.InputParameter("rate") * var} + model.initial_conditions = {var: 1} + + # create discretisation + mesh = get_mesh_for_testing(xpts=10) + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + # Solve + t_eval = np.linspace(0, 10, 4) + y0 = model.concatenated_initial_conditions.evaluate().reshape(-1) + rhs = pybamm.EvaluatorJax(model.concatenated_rhs) + + def fun(y, t, inputs): + return rhs.evaluate(t=t, y=y, inputs=inputs).reshape(-1) + + h = 0.0001 + rate = 0.1 + + # create a dummy "model" where we calculate the sum of the time series + @jax.jit + def solve_bdf(rate): + return jax.numpy.sum( + pybamm.jax_bdf_integrate(fun, y0, t_eval, + {'rate': rate}, + rtol=1e-9, atol=1e-9) + ) + + # check answers with finite difference + eval_plus = solve_bdf(rate + h) + eval_neg = solve_bdf(rate - h) + grad_num = (eval_plus - eval_neg) / (2 * h) + + grad_solve_bdf = jax.jit(jax.grad(solve_bdf)) + grad_bdf = grad_solve_bdf(rate) + + self.assertAlmostEqual(grad_bdf, grad_num, places=3) + + def test_mass_matrix_with_sensitivities(self): + # Solve + t_eval = np.linspace(0.0, 1.0, 80) + + def fun(y, t, inputs): + return jax.numpy.stack([ + inputs['rate'] * y[0], + y[1] - 2.0 * y[0], + ]) + + mass = jax.numpy.array([ + [2.0, 0.0], + [0.0, 0.0], + ]) + + y0 = jax.numpy.array([1.0, 2.0]) + + h = 0.0001 + rate = 0.1 + + # create a dummy "model" where we calculate the sum of the time series + @jax.jit + def solve_bdf(rate): + return jax.numpy.sum( + pybamm.jax_bdf_integrate(fun, y0, t_eval, + {'rate': rate}, + mass=mass, + rtol=1e-9, atol=1e-9) + ) + + # check answers with finite difference + eval_plus = solve_bdf(rate + h) + eval_neg = solve_bdf(rate - h) + grad_num = (eval_plus - eval_neg) / (2 * h) + + grad_solve_bdf = jax.jit(jax.grad(solve_bdf)) + grad_bdf = grad_solve_bdf(rate) + + self.assertAlmostEqual(grad_bdf, grad_num, places=3) + + def test_solver_with_inputs(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: -pybamm.InputParameter("rate") * var} + model.initial_conditions = {var: 1} + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + # Solve + t_eval = np.linspace(0, 10, 80) + y0 = model.concatenated_initial_conditions.evaluate().reshape(-1) + rhs = pybamm.EvaluatorJax(model.concatenated_rhs) + + def fun(y, t, inputs): + return rhs.evaluate(t=t, y=y, inputs=inputs).reshape(-1) + + y = pybamm.jax_bdf_integrate(fun, y0, t_eval, { + "rate": 0.1}, rtol=1e-9, atol=1e-9) + + np.testing.assert_allclose(y[:, 0].reshape(-1), np.exp(-0.1 * t_eval)) + + +if __name__ == "__main__": + print("Add -v for more debug output") + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_solvers/test_jax_solver.py b/tests/unit/test_solvers/test_jax_solver.py new file mode 100644 index 0000000000..d30f3f76b6 --- /dev/null +++ b/tests/unit/test_solvers/test_jax_solver.py @@ -0,0 +1,278 @@ +import pybamm +import unittest +from tests import get_mesh_for_testing +import sys +import time +import numpy as np +from platform import system +if system() != "Windows": + import jax + + +@unittest.skipIf(system() == "Windows", "JAX not supported on windows") +class TestJaxSolver(unittest.TestCase): + def test_model_solver(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: 0.1 * var} + model.initial_conditions = {var: 1.0} + # No need to set parameters; can use base discretisation (no spatial operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + for method in ['RK45', 'BDF']: + # Solve + solver = pybamm.JaxSolver( + method=method, rtol=1e-8, atol=1e-8 + ) + t_eval = np.linspace(0, 1, 80) + t0 = time.perf_counter() + solution = solver.solve(model, t_eval) + t_first_solve = time.perf_counter() - t0 + np.testing.assert_array_equal(solution.t, t_eval) + np.testing.assert_allclose(solution.y[0], np.exp(0.1 * solution.t), + rtol=1e-6, atol=1e-6) + + # Test time + self.assertEqual( + solution.total_time, solution.solve_time + solution.set_up_time + ) + self.assertEqual(solution.termination, "final time") + + t0 = time.perf_counter() + second_solution = solver.solve(model, t_eval) + t_second_solve = time.perf_counter() - t0 + + self.assertLess(t_second_solve, t_first_solve) + np.testing.assert_array_equal(second_solution.y, solution.y) + + def test_semi_explicit_model(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + var2 = pybamm.Variable("var2", domain=domain) + model.rhs = {var: 0.1 * var} + model.algebraic = {var2: var2 - 2.0 * var} + # give inconsistent initial conditions, should calculate correct ones + model.initial_conditions = {var: 1.0, var2: 1.0} + # No need to set parameters; can use base discretisation (no spatial operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + # Solve + solver = pybamm.JaxSolver( + method='BDF', rtol=1e-8, atol=1e-8 + ) + t_eval = np.linspace(0, 1, 80) + t0 = time.perf_counter() + solution = solver.solve(model, t_eval) + t_first_solve = time.perf_counter() - t0 + np.testing.assert_array_equal(solution.t, t_eval) + soln = np.exp(0.1 * solution.t) + np.testing.assert_allclose(solution.y[0], soln, + rtol=1e-7, atol=1e-7) + np.testing.assert_allclose(solution.y[-1], 2 * soln, + rtol=1e-7, atol=1e-7) + + # Test time + self.assertEqual( + solution.total_time, solution.solve_time + solution.set_up_time + ) + self.assertEqual(solution.termination, "final time") + + t0 = time.perf_counter() + second_solution = solver.solve(model, t_eval) + t_second_solve = time.perf_counter() - t0 + + self.assertLess(t_second_solve, t_first_solve) + np.testing.assert_array_equal(second_solution.y, solution.y) + + def test_solver_sensitivities(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: -pybamm.InputParameter("rate") * var} + model.initial_conditions = {var: 1.0} + # No need to set parameters; can use base discretisation (no spatial operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + for method in ['RK45', 'BDF']: + # Solve + solver = pybamm.JaxSolver( + method=method, rtol=1e-8, atol=1e-8 + ) + t_eval = np.linspace(0, 1, 80) + + h = 0.0001 + rate = 0.1 + + # need to solve the model once to get it set up by the base solver + solver.solve(model, t_eval, inputs={'rate': rate}) + solve = solver.get_solve(model, t_eval) + + # create a dummy "model" where we calculate the sum of the time series + def solve_model(rate): + return jax.numpy.sum(solve({'rate': rate})) + + # check answers with finite difference + eval_plus = solve_model(rate + h) + eval_neg = solve_model(rate - h) + grad_num = (eval_plus - eval_neg) / (2 * h) + + grad_solve = jax.jit(jax.grad(solve_model)) + grad = grad_solve(rate) + + self.assertAlmostEqual(grad, grad_num, places=1) + + def test_solver_only_works_with_jax(self): + model = pybamm.BaseModel() + var = pybamm.Variable("var") + model.rhs = {var: -pybamm.sqrt(var)} + model.initial_conditions = {var: 1} + # No need to set parameters; can use base discretisation (no spatial operators) + + # create discretisation + disc = pybamm.Discretisation() + disc.process_model(model) + + t_eval = np.linspace(0, 3, 100) + + # solver needs a model converted to jax + for convert_to_format in ["casadi", "python", "something_else"]: + model.convert_to_format = convert_to_format + + solver = pybamm.JaxSolver() + with self.assertRaisesRegex(RuntimeError, "must be converted to JAX"): + solver.solve(model, t_eval) + + def test_solver_doesnt_support_events(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: -0.1 * var} + model.initial_conditions = {var: 1} + # needs to work with multiple events (to avoid bug where only last event is + # used) + model.events = [ + pybamm.Event("var=0.5", pybamm.min(var - 0.5)), + pybamm.Event("var=-0.5", pybamm.min(var + 0.5)), + ] + # No need to set parameters; can use base discretisation (no spatial operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + # Solve + solver = pybamm.JaxSolver() + t_eval = np.linspace(0, 10, 100) + with self.assertRaisesRegex(RuntimeError, "Terminate events not supported"): + solver.solve(model, t_eval) + + def test_model_solver_with_inputs(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: -pybamm.InputParameter("rate") * var} + model.initial_conditions = {var: 1} + # No need to set parameters; can use base discretisation (no spatial + # operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + # Solve + solver = pybamm.JaxSolver(rtol=1e-8, atol=1e-8) + t_eval = np.linspace(0, 5, 80) + + t0 = time.perf_counter() + solution = solver.solve(model, t_eval, inputs={"rate": 0.1}) + t_first_solve = time.perf_counter() - t0 + + np.testing.assert_allclose(solution.y[0], np.exp(-0.1 * solution.t), + rtol=1e-6, atol=1e-6) + + t0 = time.perf_counter() + solution = solver.solve(model, t_eval, inputs={"rate": 0.2}) + t_second_solve = time.perf_counter() - t0 + + np.testing.assert_allclose(solution.y[0], np.exp(-0.2 * solution.t), + rtol=1e-6, atol=1e-6) + + self.assertLess(t_second_solve, t_first_solve) + + def test_get_solve(self): + # Create model + model = pybamm.BaseModel() + model.convert_to_format = "jax" + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: -pybamm.InputParameter("rate") * var} + model.initial_conditions = {var: 1} + # No need to set parameters; can use base discretisation (no spatial + # operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + + # test that another method string gives error + with self.assertRaises(ValueError): + solver = pybamm.JaxSolver(method='not_real') + + # Solve + solver = pybamm.JaxSolver(rtol=1e-8, atol=1e-8) + t_eval = np.linspace(0, 5, 80) + + with self.assertRaisesRegex(RuntimeError, "Model is not set up for solving"): + solver.get_solve(model, t_eval) + + solver.solve(model, t_eval, inputs={"rate": 0.1}) + solver = solver.get_solve(model, t_eval) + y = solver({"rate": 0.1}) + + np.testing.assert_allclose(y[0], np.exp(-0.1 * t_eval), + rtol=1e-6, atol=1e-6) + + y = solver({"rate": 0.2}) + + np.testing.assert_allclose(y[0], np.exp(-0.2 * t_eval), + rtol=1e-6, atol=1e-6) + + +if __name__ == "__main__": + print("Add -v for more debug output") + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tests/unit/test_solvers/test_processed_symbolic_variable.py b/tests/unit/test_solvers/test_processed_symbolic_variable.py index 2b058c7224..c179562d3b 100644 --- a/tests/unit/test_solvers/test_processed_symbolic_variable.py +++ b/tests/unit/test_solvers/test_processed_symbolic_variable.py @@ -57,10 +57,8 @@ def test_processed_variable_0D_with_inputs(self): # Test bad inputs with self.assertRaisesRegex(TypeError, "inputs should be 'dict'"): processed_var.value(1) - with self.assertRaisesRegex(ValueError, "Inconsistent input keys"): + with self.assertRaisesRegex(KeyError, "Inconsistent input keys"): processed_var.value({"not p": 3}) - with self.assertRaisesRegex(ValueError, "Inconsistent input keys"): - processed_var.value({"q": 3, "p": 2}) def test_processed_variable_0D_some_inputs(self): # with some symbolic inputs and some non-symbolic inputs @@ -108,7 +106,7 @@ def test_processed_variable_1D(self): sol = pybamm.Solution(t_sol, y_sol) processed_eqn = pybamm.ProcessedSymbolicVariable(eqn_sol, sol) np.testing.assert_array_equal( - processed_eqn.value(), y_sol + x_sol[:, np.newaxis] + processed_eqn.value(), (y_sol + x_sol[:, np.newaxis]).T.reshape(-1, 1) ) def test_processed_variable_1D_with_scalar_inputs(self): @@ -154,7 +152,8 @@ def test_processed_variable_1D_with_scalar_inputs(self): # Test values np.testing.assert_array_equal( - processed_eqn.value({"p": 27, "q": -42}), 27 * y_sol - 84, + processed_eqn.value({"p": 27, "q": -42}), + (27 * y_sol - 84).T.reshape(-1, 1), ) # Test sensitivities diff --git a/tests/unit/test_solvers/test_scikits_solvers.py b/tests/unit/test_solvers/test_scikits_solvers.py index 6ab8fe2dcb..bc8d5a22c1 100644 --- a/tests/unit/test_solvers/test_scikits_solvers.py +++ b/tests/unit/test_solvers/test_scikits_solvers.py @@ -335,6 +335,69 @@ def nonsmooth_mult(t): np.testing.assert_allclose(solution.y[0], var1_soln, rtol=1e-06) np.testing.assert_allclose(solution.y[-1], var2_soln, rtol=1e-06) + def test_model_solver_dae_multiple_nonsmooth_python(self): + model = pybamm.BaseModel() + model.convert_to_format = "python" + whole_cell = ["negative electrode", "separator", "positive electrode"] + var1 = pybamm.Variable("var1", domain=whole_cell) + var2 = pybamm.Variable("var2", domain=whole_cell) + a = 0.6 + discontinuities = (np.arange(3) + 1) * a + + model.rhs = {var1: pybamm.Modulo(pybamm.t, a)} + model.algebraic = {var2: 2 * var1 - var2} + model.initial_conditions = {var1: 0, var2: 0} + model.events = [ + pybamm.Event("var1 = 0.55", pybamm.min(var1 - 0.55)), + pybamm.Event("var2 = 1.2", pybamm.min(var2 - 1.2)), + ] + for discontinuity in discontinuities: + model.events.append( + pybamm.Event( + "nonsmooth rate", + pybamm.Scalar(discontinuity), + ) + ) + disc = get_discretisation_for_testing() + disc.process_model(model) + + # Solve + solver = pybamm.ScikitsDaeSolver(rtol=1e-8, atol=1e-8, root_method="lm") + + # create two time series, one without a time point on the discontinuity, + # and one with + t_eval1 = np.linspace(0, 2, 10) + t_eval2 = np.insert( + t_eval1, np.searchsorted(t_eval1, discontinuities), discontinuities + ) + solution1 = solver.solve(model, t_eval1) + solution2 = solver.solve(model, t_eval2) + + # check time vectors + for solution in [solution1, solution2]: + # time vectors are ordered + self.assertTrue(np.all(solution.t[:-1] <= solution.t[1:])) + + # time value before and after discontinuity is an epsilon away + for discontinuity in discontinuities: + dindex = np.searchsorted(solution.t, discontinuity) + value_before = solution.t[dindex - 1] + value_after = solution.t[dindex] + self.assertEqual(value_before + sys.float_info.epsilon, discontinuity) + self.assertEqual(value_after - sys.float_info.epsilon, discontinuity) + + # both solution time vectors should have same number of points + self.assertEqual(len(solution1.t), len(solution2.t)) + + # check solution + for solution in [solution1, solution2]: + np.testing.assert_array_less(solution.y[0], 0.55) + np.testing.assert_array_less(solution.y[-1], 1.2) + var1_soln = (solution.t % a) ** 2 / 2 + a ** 2 / 2 * (solution.t // a) + var2_soln = 2 * var1_soln + np.testing.assert_allclose(solution.y[0], var1_soln, rtol=1e-06) + np.testing.assert_allclose(solution.y[-1], var2_soln, rtol=1e-06) + def test_model_solver_dae_no_nonsmooth_python(self): model = pybamm.BaseModel() model.convert_to_format = "python" @@ -679,6 +742,52 @@ def test_model_step_events(self): step_solution.y[-1], 2 * np.exp(0.1 * step_solution.t), decimal=5 ) + def test_model_step_nonsmooth_events(self): + # Create model + model = pybamm.BaseModel() + model.timescale = pybamm.Scalar(1) + var1 = pybamm.Variable("var1") + var2 = pybamm.Variable("var2") + a = 0.6 + discontinuities = (np.arange(3) + 1) * a + + model.rhs = {var1: pybamm.Modulo(pybamm.t * model.timescale, a)} + model.algebraic = {var2: 2 * var1 - var2} + model.initial_conditions = {var1: 0, var2: 0} + model.events = [ + pybamm.Event("var1 = 0.55", pybamm.min(var1 - 0.55)), + pybamm.Event("var2 = 1.2", pybamm.min(var2 - 1.2)), + ] + for discontinuity in discontinuities: + model.events.append( + pybamm.Event( + "nonsmooth rate", + pybamm.Scalar(discontinuity), + ) + ) + disc = get_discretisation_for_testing() + disc.process_model(model) + + # Solve + step_solver = pybamm.ScikitsDaeSolver(rtol=1e-8, atol=1e-8) + dt = 0.05 + time = 0 + end_time = 3 + step_solution = None + while time < end_time: + step_solution = step_solver.step(step_solution, model, dt=dt, npts=10) + time += dt + np.testing.assert_array_less(step_solution.y[0], 0.55) + np.testing.assert_array_less(step_solution.y[-1], 1.2) + var1_soln = (step_solution.t % a) ** 2 / 2 + a ** 2 / 2 * (step_solution.t // a) + var2_soln = 2 * var1_soln + np.testing.assert_array_almost_equal( + step_solution.y[0], var1_soln, decimal=5 + ) + np.testing.assert_array_almost_equal( + step_solution.y[-1], var2_soln, decimal=5 + ) + def test_model_solver_dae_nonsmooth(self): whole_cell = ["negative electrode", "separator", "positive electrode"] var1 = pybamm.Variable("var1", domain=whole_cell) diff --git a/tests/unit/test_solvers/test_scipy_solver.py b/tests/unit/test_solvers/test_scipy_solver.py index 1d0aae34b5..fae2775b3f 100644 --- a/tests/unit/test_solvers/test_scipy_solver.py +++ b/tests/unit/test_solvers/test_scipy_solver.py @@ -7,39 +7,48 @@ from tests import get_mesh_for_testing import warnings import sys +from platform import system class TestScipySolver(unittest.TestCase): - def test_model_solver_python(self): - # Create model - model = pybamm.BaseModel() - model.convert_to_format = "python" - domain = ["negative electrode", "separator", "positive electrode"] - var = pybamm.Variable("var", domain=domain) - model.rhs = {var: 0.1 * var} - model.initial_conditions = {var: 1} - # No need to set parameters; can use base discretisation (no spatial operators) + def test_model_solver_python_and_jax(self): - # create discretisation - mesh = get_mesh_for_testing() - spatial_methods = {"macroscale": pybamm.FiniteVolume()} - disc = pybamm.Discretisation(mesh, spatial_methods) - disc.process_model(model) - # Solve - # Make sure that passing in extra options works - solver = pybamm.ScipySolver( - rtol=1e-8, atol=1e-8, method="RK45", extra_options={"first_step": 1e-4} - ) - t_eval = np.linspace(0, 1, 80) - solution = solver.solve(model, t_eval) - np.testing.assert_array_equal(solution.t, t_eval) - np.testing.assert_allclose(solution.y[0], np.exp(0.1 * solution.t)) + if system() != "Windows": + formats = ["python", "jax"] + else: + formats = ["python"] - # Test time - self.assertEqual( - solution.total_time, solution.solve_time + solution.set_up_time - ) - self.assertEqual(solution.termination, "final time") + for convert_to_format in formats: + # Create model + model = pybamm.BaseModel() + model.convert_to_format = convert_to_format + domain = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=domain) + model.rhs = {var: 0.1 * var} + model.initial_conditions = {var: 1} + # No need to set parameters; + # can use base discretisation (no spatial operators) + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + disc.process_model(model) + # Solve + # Make sure that passing in extra options works + solver = pybamm.ScipySolver( + rtol=1e-8, atol=1e-8, method="RK45", extra_options={"first_step": 1e-4} + ) + t_eval = np.linspace(0, 1, 80) + solution = solver.solve(model, t_eval) + np.testing.assert_array_equal(solution.t, t_eval) + np.testing.assert_allclose(solution.y[0], np.exp(0.1 * solution.t)) + + # Test time + self.assertEqual( + solution.total_time, solution.solve_time + solution.set_up_time + ) + self.assertEqual(solution.termination, "final time") def test_model_solver_failure(self): # Turn off warnings to ignore sqrt error diff --git a/tests/unit/test_spatial_methods/test_finite_volume/test_finite_volume.py b/tests/unit/test_spatial_methods/test_finite_volume/test_finite_volume.py index 1c9f6e593e..b6d4f4ed8f 100644 --- a/tests/unit/test_spatial_methods/test_finite_volume/test_finite_volume.py +++ b/tests/unit/test_spatial_methods/test_finite_volume/test_finite_volume.py @@ -725,15 +725,15 @@ def test_definite_integral(self): constant_y = np.ones_like(mesh["negative particle"].nodes[:, np.newaxis]) np.testing.assert_array_almost_equal( - integral_eqn_disc.evaluate(None, constant_y), 2 * np.pi ** 2 + integral_eqn_disc.evaluate(None, constant_y), 4 * np.pi / 3, decimal=4 ) linear_y = mesh["negative particle"].nodes np.testing.assert_array_almost_equal( - integral_eqn_disc.evaluate(None, linear_y), 4 * np.pi ** 2 / 3, decimal=3 + integral_eqn_disc.evaluate(None, linear_y), np.pi, decimal=3 ) - one_over_y = 1 / mesh["negative particle"].nodes + one_over_y_squared = 1 / mesh["negative particle"].nodes ** 2 np.testing.assert_array_almost_equal( - integral_eqn_disc.evaluate(None, one_over_y), 4 * np.pi ** 2 + integral_eqn_disc.evaluate(None, one_over_y_squared), 4 * np.pi ) # test failure for secondary dimension column form @@ -1522,6 +1522,58 @@ def test_heaviside(self): np.testing.assert_array_equal(disc_heav.evaluate(y=2 * np.ones_like(nodes)), 2) np.testing.assert_array_equal(disc_heav.evaluate(y=-2 * np.ones_like(nodes)), 0) + def test_upwind_downwind(self): + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.FiniteVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + n = mesh["negative electrode"].npts + var = pybamm.StateVector(slice(0, n), domain="negative electrode") + upwind = pybamm.upwind(var) + downwind = pybamm.downwind(var) + + disc.bcs = { + var.id: { + "left": (pybamm.Scalar(5), "Dirichlet"), + "right": (pybamm.Scalar(3), "Dirichlet"), + } + } + + disc_upwind = disc.process_symbol(upwind) + disc_downwind = disc.process_symbol(downwind) + + nodes = mesh["negative electrode"].nodes + n = mesh["negative electrode"].npts + self.assertEqual(disc_upwind.size, nodes.size + 1) + self.assertEqual(disc_downwind.size, nodes.size + 1) + + y_test = 2 * np.ones_like(nodes) + np.testing.assert_array_equal( + disc_upwind.evaluate(y=y_test), + np.concatenate([np.array([5, 0.5]), 2 * np.ones(n - 1)])[:, np.newaxis], + ) + np.testing.assert_array_equal( + disc_downwind.evaluate(y=y_test), + np.concatenate([2 * np.ones(n - 1), np.array([1.5, 3])])[:, np.newaxis], + ) + + # Remove boundary conditions and check error is raised + disc.bcs = {} + with self.assertRaisesRegex(pybamm.ModelError, "Boundary conditions"): + disc.process_symbol(upwind) + + # Set wrong boundary conditions and check error is raised + disc.bcs = { + var.id: { + "left": (pybamm.Scalar(5), "Neumann"), + "right": (pybamm.Scalar(3), "Neumann"), + } + } + with self.assertRaisesRegex(pybamm.ModelError, "Dirichlet boundary conditions"): + disc.process_symbol(upwind) + with self.assertRaisesRegex(pybamm.ModelError, "Dirichlet boundary conditions"): + disc.process_symbol(downwind) + def test_grad_div_with_bcs_on_tab(self): # 2d macroscale mesh = get_1p1d_mesh_for_testing() diff --git a/tests/unit/test_spatial_methods/test_spectral_volume.py b/tests/unit/test_spatial_methods/test_spectral_volume.py new file mode 100644 index 0000000000..425bc0fabc --- /dev/null +++ b/tests/unit/test_spatial_methods/test_spectral_volume.py @@ -0,0 +1,652 @@ +# +# Test for the operator class +# +import pybamm + +import numpy as np +import unittest + + +def get_mesh_for_testing( + xpts=None, rpts=10, ypts=15, zpts=15, geometry=None, cc_submesh=None, + order=2 +): + param = pybamm.ParameterValues( + values={ + "Electrode width [m]": 0.4, + "Electrode height [m]": 0.5, + "Negative tab width [m]": 0.1, + "Negative tab centre y-coordinate [m]": 0.1, + "Negative tab centre z-coordinate [m]": 0.0, + "Positive tab width [m]": 0.1, + "Positive tab centre y-coordinate [m]": 0.3, + "Positive tab centre z-coordinate [m]": 0.5, + "Negative electrode thickness [m]": 0.3, + "Separator thickness [m]": 0.3, + "Positive electrode thickness [m]": 0.3, + } + ) + + if geometry is None: + geometry = pybamm.battery_geometry() + param.process_geometry(geometry) + + submesh_types = { + "negative electrode": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "separator": pybamm.MeshGenerator(pybamm.SpectralVolume1DSubMesh, + {"order": order}), + "positive electrode": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "negative particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "positive particle": pybamm.MeshGenerator( + pybamm.SpectralVolume1DSubMesh, + {"order": order} + ), + "current collector": pybamm.MeshGenerator(pybamm.SubMesh0D), + } + if cc_submesh: + submesh_types["current collector"] = cc_submesh + + if xpts is None: + xn_pts, xs_pts, xp_pts = 40, 25, 35 + else: + xn_pts, xs_pts, xp_pts = xpts, xpts, xpts + var = pybamm.standard_spatial_vars + var_pts = { + var.x_n: xn_pts, + var.x_s: xs_pts, + var.x_p: xp_pts, + var.r_n: rpts, + var.r_p: rpts, + var.y: ypts, + var.z: zpts, + } + + return pybamm.Mesh(geometry, submesh_types, var_pts) + + +def get_p2d_mesh_for_testing(xpts=None, rpts=10): + geometry = pybamm.battery_geometry() + return get_mesh_for_testing(xpts=xpts, rpts=rpts, geometry=geometry) + + +def get_1p1d_mesh_for_testing( + xpts=None, + rpts=10, + zpts=15, + cc_submesh=pybamm.MeshGenerator(pybamm.Uniform1DSubMesh), +): + geometry = pybamm.battery_geometry(current_collector_dimension=1) + return get_mesh_for_testing( + xpts=xpts, rpts=rpts, zpts=zpts, geometry=geometry, cc_submesh=cc_submesh + ) + + +class TestSpectralVolume(unittest.TestCase): + def test_exceptions(self): + sp_meth = pybamm.SpectralVolume() + with self.assertRaises(ValueError): + sp_meth.chebyshev_differentiation_matrices(3, 3) + + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + whole_cell = ["negative electrode", "separator", "positive electrode"] + var = pybamm.Variable("var", domain=whole_cell) + disc.set_variable_slices([var]) + discretised_symbol = pybamm.StateVector(*disc.y_slices[var.id]) + sp_meth.build(mesh) + + bcs = {"left": (pybamm.Scalar(0), "x"), "right": (pybamm.Scalar(3), "Neumann")} + with self.assertRaisesRegex(ValueError, "boundary condition must be"): + sp_meth.replace_dirichlet_values(var, discretised_symbol, bcs) + with self.assertRaisesRegex(ValueError, "boundary condition must be"): + sp_meth.replace_neumann_values(var, discretised_symbol, bcs) + bcs = {"left": (pybamm.Scalar(0), "Neumann"), "right": (pybamm.Scalar(3), "x")} + with self.assertRaisesRegex(ValueError, "boundary condition must be"): + sp_meth.replace_dirichlet_values(var, discretised_symbol, bcs) + with self.assertRaisesRegex(ValueError, "boundary condition must be"): + sp_meth.replace_neumann_values(var, discretised_symbol, bcs) + + def test_grad_div_shapes_Dirichlet_bcs(self): + """ + Test grad and div with Dirichlet boundary conditions (applied by grad on var) + and also test the case where only one Spectral Volume is discretised + """ + whole_cell = ["negative electrode", "separator", "positive electrode"] + # create discretisation + mesh = get_mesh_for_testing(1) + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + combined_submesh = mesh.combine_submeshes(*whole_cell) + + # grad + var = pybamm.Variable("var", domain=whole_cell) + grad_eqn = pybamm.grad(var) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Dirichlet"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(grad_eqn) + + constant_y = np.ones_like(combined_submesh.nodes[:, np.newaxis]) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, constant_y), + np.zeros_like(combined_submesh.edges[:, np.newaxis]), + ) + + # div: test on linear y (should have laplacian zero) so change bcs + linear_y = combined_submesh.nodes + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(0), "Dirichlet"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + + disc.bcs = boundary_conditions + + grad_eqn_disc = disc.process_symbol(grad_eqn) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, linear_y), + np.ones_like(combined_submesh.edges[:, np.newaxis]), + ) + + div_eqn_disc = disc.process_symbol(div_eqn) + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, linear_y), + np.zeros_like(combined_submesh.nodes[:, np.newaxis]), + ) + + def test_grad_1plus1d(self): + mesh = get_1p1d_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + a = pybamm.Variable( + "a", + domain=["negative electrode"], + auxiliary_domains={"secondary": "current collector"}, + ) + b = pybamm.Variable( + "b", + domain=["separator"], + auxiliary_domains={"secondary": "current collector"}, + ) + c = pybamm.Variable( + "c", + domain=["positive electrode"], + auxiliary_domains={"secondary": "current collector"}, + ) + var = pybamm.Concatenation(a, b, c) + boundary_conditions = { + var.id: { + "left": (pybamm.Vector(np.linspace(0, 1, 15)), "Neumann"), + "right": (pybamm.Vector(np.linspace(0, 1, 15)), "Neumann"), + } + } + + disc.bcs = boundary_conditions + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(pybamm.grad(var)) + + # Evaulate + combined_submesh = mesh.combine_submeshes(*var.domain) + linear_y = np.outer(np.linspace(0, 1, 15), combined_submesh.nodes).reshape( + -1, 1 + ) + + expected = np.outer( + np.linspace(0, 1, 15), np.ones_like(combined_submesh.edges) + ).reshape(-1, 1) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, linear_y), expected + ) + + def test_spherical_grad_div_shapes_Dirichlet_bcs(self): + """ + Test grad and div with Dirichlet boundary conditions (applied by grad on var) + """ + # create discretisation + mesh = get_1p1d_mesh_for_testing() + spatial_methods = {"negative particle": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + submesh = mesh["negative particle"] + + # grad + # grad(r) == 1 + var = pybamm.Variable( + "var", + domain=["negative particle"], + auxiliary_domains={ + "secondary": "negative electrode", + "tertiary": "current collector", + }, + ) + grad_eqn = pybamm.grad(var) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Dirichlet"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + + disc.bcs = boundary_conditions + + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(grad_eqn) + + total_npts = ( + submesh.npts + * mesh["negative electrode"].npts + * mesh["current collector"].npts + ) + total_npts_edges = ( + (submesh.npts + 1) + * mesh["negative electrode"].npts + * mesh["current collector"].npts + ) + constant_y = np.ones((total_npts, 1)) + np.testing.assert_array_equal( + grad_eqn_disc.evaluate(None, constant_y), np.zeros((total_npts_edges, 1)) + ) + + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(0), "Dirichlet"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + + y_linear = np.tile( + submesh.nodes, + mesh["negative electrode"].npts * mesh["current collector"].npts, + ) + grad_eqn_disc = disc.process_symbol(grad_eqn) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, y_linear), np.ones((total_npts_edges, 1)) + ) + + # div: test on linear r^2 + # div (grad r^2) = 6 + const = 6 * np.ones((total_npts, 1)) + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(6), "Dirichlet"), + "right": (pybamm.Scalar(6), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + + div_eqn_disc = disc.process_symbol(div_eqn) + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, const), + np.zeros( + ( + submesh.npts + * mesh["negative electrode"].npts + * mesh["current collector"].npts, + 1, + ) + ), + ) + + def test_p2d_spherical_grad_div_shapes_Dirichlet_bcs(self): + """ + Test grad and div with Dirichlet boundary conditions (applied by grad on var) + in the pseudo 2-dimensional case + """ + + mesh = get_p2d_mesh_for_testing() + spatial_methods = { + "macroscale": pybamm.SpectralVolume(), + "negative particle": pybamm.SpectralVolume(), + "positive particle": pybamm.SpectralVolume(), + } + disc = pybamm.Discretisation(mesh, spatial_methods) + + n_mesh = mesh["negative particle"] + + mesh.add_ghost_meshes() + disc.mesh.add_ghost_meshes() + + var = pybamm.Variable( + "var", + domain=["negative particle"], + auxiliary_domains={"secondary": "negative electrode"}, + ) + grad_eqn = pybamm.grad(var) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Dirichlet"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(grad_eqn) + + prim_pts = n_mesh.npts + sec_pts = mesh["negative electrode"].npts + constant_y = np.kron(np.ones(sec_pts), np.ones(prim_pts)) + + grad_eval = grad_eqn_disc.evaluate(None, constant_y) + grad_eval = np.reshape(grad_eval, [sec_pts, prim_pts + 1]) + + np.testing.assert_array_equal(grad_eval, np.zeros([sec_pts, prim_pts + 1])) + + # div + # div (grad r^2) = 6, N_left = N_right = 0 + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + bc_var = disc.process_symbol( + pybamm.SpatialVariable("x_n", domain="negative electrode") + ) + boundary_conditions = { + var.id: {"left": (bc_var, "Neumann"), "right": (bc_var, "Neumann")} + } + disc.bcs = boundary_conditions + div_eqn_disc = disc.process_symbol(div_eqn) + + const = 6 * np.ones(sec_pts * prim_pts) + div_eval = div_eqn_disc.evaluate(None, const) + div_eval = np.reshape(div_eval, [sec_pts, prim_pts]) + np.testing.assert_array_almost_equal( + div_eval[:, :-1], np.zeros([sec_pts, prim_pts - 1]) + ) + + def test_grad_div_shapes_Neumann_bcs(self): + """Test grad and div with Neumann boundary conditions (applied by div on N)""" + whole_cell = ["negative electrode", "separator", "positive electrode"] + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + combined_submesh = mesh.combine_submeshes(*whole_cell) + + # grad + var = pybamm.Variable("var", domain=whole_cell) + grad_eqn = pybamm.grad(var) + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(grad_eqn) + + constant_y = np.ones_like(combined_submesh.nodes[:, np.newaxis]) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, constant_y), + np.zeros_like(combined_submesh.edges[:][:, np.newaxis]), + ) + + # div + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Neumann"), + "right": (pybamm.Scalar(1), "Neumann"), + } + } + disc.bcs = boundary_conditions + div_eqn_disc = disc.process_symbol(div_eqn) + + # Linear y should have laplacian zero + linear_y = combined_submesh.nodes + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, linear_y), + np.ones_like(combined_submesh.edges[:][:, np.newaxis]), + ) + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, linear_y), + np.zeros_like(combined_submesh.nodes[:, np.newaxis]), + ) + + def test_grad_div_shapes_Dirichlet_and_Neumann_bcs(self): + """ + Test grad and div with Dirichlet boundary conditions (applied by grad on c) on + one side and Neumann boundary conditions (applied by div on N) on the other + """ + whole_cell = ["negative electrode", "separator", "positive electrode"] + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + combined_submesh = mesh.combine_submeshes(*whole_cell) + + # grad + var = pybamm.Variable("var", domain=whole_cell) + grad_eqn = pybamm.grad(var) + disc.set_variable_slices([var]) + + # div + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Dirichlet"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } + disc.bcs = boundary_conditions + grad_eqn_disc = disc.process_symbol(grad_eqn) + div_eqn_disc = disc.process_symbol(div_eqn) + + # Constant y should have gradient and laplacian zero + constant_y = np.ones_like(combined_submesh.nodes[:, np.newaxis]) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, constant_y), + np.zeros_like(combined_submesh.edges[:, np.newaxis]), + ) + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, constant_y), + np.zeros_like(combined_submesh.nodes[:, np.newaxis]), + ) + + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Neumann"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + grad_eqn_disc = disc.process_symbol(grad_eqn) + div_eqn_disc = disc.process_symbol(div_eqn) + + # Linear y should have gradient one and laplacian zero + linear_y = combined_submesh.nodes + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, linear_y), + np.ones_like(combined_submesh.edges[:, np.newaxis]), + ) + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, linear_y), + np.zeros_like(combined_submesh.nodes[:, np.newaxis]), + ) + + def test_spherical_grad_div_shapes_Neumann_bcs(self): + """Test grad and div with Neumann boundary conditions (applied by div on N)""" + + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"negative particle": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + combined_submesh = mesh.combine_submeshes("negative particle") + + # grad + var = pybamm.Variable("var", domain="negative particle") + grad_eqn = pybamm.grad(var) + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(grad_eqn) + + constant_y = np.ones_like(combined_submesh.nodes[:, np.newaxis]) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, constant_y), + np.zeros_like(combined_submesh.edges[:][:, np.newaxis]), + ) + + linear_y = combined_submesh.nodes + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, linear_y), + np.ones_like(combined_submesh.edges[:][:, np.newaxis]), + ) + # div + # div ( grad(r^2) ) == 6 , N_left = N_right = 0 + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } + disc.bcs = boundary_conditions + div_eqn_disc = disc.process_symbol(div_eqn) + + linear_y = combined_submesh.nodes + const = 6 * np.ones(combined_submesh.npts) + + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, const), np.zeros((combined_submesh.npts, 1)) + ) + + def test_p2d_spherical_grad_div_shapes_Neumann_bcs(self): + """ + Test grad and div with Dirichlet boundary conditions (applied by grad on var) + in the pseudo 2-dimensional case + """ + + mesh = get_p2d_mesh_for_testing() + spatial_methods = {"negative particle": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + n_mesh = mesh["negative particle"] + + mesh.add_ghost_meshes() + disc.mesh.add_ghost_meshes() + + # test grad + var = pybamm.Variable( + "var", + domain=["negative particle"], + auxiliary_domains={"secondary": "negative electrode"}, + ) + grad_eqn = pybamm.grad(var) + disc.set_variable_slices([var]) + grad_eqn_disc = disc.process_symbol(grad_eqn) + + prim_pts = n_mesh.npts + sec_pts = mesh["negative electrode"].npts + constant_y = np.kron(np.ones(sec_pts), np.ones(prim_pts)) + + grad_eval = grad_eqn_disc.evaluate(None, constant_y) + grad_eval = np.reshape(grad_eval, [sec_pts, prim_pts + 1]) + + np.testing.assert_array_equal(grad_eval, np.zeros([sec_pts, prim_pts + 1])) + + # div + # div (grad r^2) = 6, N_left = N_right = 0 + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } + disc.bcs = boundary_conditions + div_eqn_disc = disc.process_symbol(div_eqn) + + const = 6 * np.ones(sec_pts * prim_pts) + div_eval = div_eqn_disc.evaluate(None, const) + div_eval = np.reshape(div_eval, [sec_pts, prim_pts]) + np.testing.assert_array_almost_equal(div_eval, np.zeros([sec_pts, prim_pts])) + + def test_grad_div_shapes_mixed_domain(self): + """ + Test grad and div with Dirichlet boundary conditions (applied by grad on var) + """ + # create discretisation + mesh = get_mesh_for_testing() + spatial_methods = {"macroscale": pybamm.SpectralVolume()} + disc = pybamm.Discretisation(mesh, spatial_methods) + + # grad + var = pybamm.Variable("var", domain=["negative electrode", "separator"]) + grad_eqn = pybamm.grad(var) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(1), "Dirichlet"), + "right": (pybamm.Scalar(1), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + + disc.set_variable_slices([var]) + + grad_eqn_disc = disc.process_symbol(grad_eqn) + + combined_submesh = mesh.combine_submeshes("negative electrode", "separator") + constant_y = np.ones_like(combined_submesh.nodes[:, np.newaxis]) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, constant_y), + np.zeros_like(combined_submesh.edges[:, np.newaxis]), + ) + + # div: test on linear y (should have laplacian zero) so change bcs + linear_y = combined_submesh.nodes + N = pybamm.grad(var) + div_eqn = pybamm.div(N) + boundary_conditions = { + var.id: { + "left": (pybamm.Scalar(0), "Dirichlet"), + "right": (pybamm.Scalar(combined_submesh.edges[-1]), "Dirichlet"), + } + } + disc.bcs = boundary_conditions + + grad_eqn_disc = disc.process_symbol(grad_eqn) + np.testing.assert_array_almost_equal( + grad_eqn_disc.evaluate(None, linear_y), + np.ones_like(combined_submesh.edges[:, np.newaxis]), + ) + + div_eqn_disc = disc.process_symbol(div_eqn) + np.testing.assert_array_almost_equal( + div_eqn_disc.evaluate(None, linear_y), + np.zeros_like(combined_submesh.nodes[:, np.newaxis]), + ) + + +if __name__ == "__main__": + print("Add -v for more debug output") + import sys + + if "-v" in sys.argv: + debug = True + pybamm.settings.debug_mode = True + unittest.main() diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000000..c4dddc8549 --- /dev/null +++ b/tox.ini @@ -0,0 +1,114 @@ +[tox] +envlist = {windows}-{tests,quick,dev},tests,quick,dev + +[testenv] +platform = !windows: [linux,darwin] + windows: win32 +skipsdist = true +skip_install = flake8: true +usedevelop = true +passenv = !windows: SUNDIALS_INST +whitelist_externals = !windows: sh +setenv = + !windows: SUNDIALS_INST = {env:SUNDIALS_INST:{homedir}/.local} + !windows: LD_LIBRARY_PATH = {homedir}/.local/lib{:}{env:LD_LIBRARY_PATH:} +deps = + dev-!windows: cmake + dev: black + dev: flake8 + dev,doctests: sphinx>=1.5 + dev,doctests: guzzle-sphinx-theme + !windows: scikits.odes + +commands = + tests: python run-tests.py --unit --folder all + quick: python run-tests.py --unit + examples: python run-tests.py --examples + dev-!windows: sh -c "echo export LD_LIBRARY_PATH={env:LD_LIBRARY_PATH} >> {envbindir}/activate" + doctests: python run-tests.py --doctest + +[testenv:pybamm-requires] +platform = [linux,darwin] +skip_install = true +passenv = HOME +whitelist_externals = git +deps = + wget + cmake +commands = + python {toxinidir}/scripts/install_KLU_Sundials.py + - git clone https://github.com/pybind/pybind11.git {toxinidir}/pybind11 + +[testenv:flake8] +skip_install = true +deps = flake8>=3 +commands = python -m flake8 + +[testenv:coverage] +skip_install = true +deps = coverage +commands = python -m coverage run run-tests.py --nosub + +[testenv:docs] +skipdist = false +usedevelop = false +skip_install = false +deps = + sphinx>=1.5 + guzzle-sphinx-theme + sphinx-autobuild +changedir = docs +commands = sphinx-autobuild -BqT . {envtmpdir}/html + +[flake8] +max-line-length = 88 +exclude= + .git, + problems, + __init__.py, + venv, + bin, + etc, + lib, + lib64, + share, + pyvenv.cfg, + third-party, + sundials-5.0.0, + KLU_module_deps, + pybind11, +ignore= + # False positive for white space before ':' on list slice + # black should format these correctly + E203, + + # Block comment should start with '# ' + # Not if it's a commented out line + E265, + + # Ambiguous variable names + # It's absolutely fine to have i and I + E741, + + # List comprehension redefines variable + # Re-using throw-away variables like `i`, `x`, etc. is a Good Idea + F812, + + # Blank line at end of file + # This increases readability + W391, + + # Line break before binary operator + # This is now actually advised in pep8 + W503, + + # Line break after binary operator + W504, + + # Invalid escape sequence + # These happen all the time in latex parts of docstrings, + # e.g. \sigma + W605, + +[coverage:run] +source = pybamm \ No newline at end of file