From 8ba60aa1d46520d609e72df05a94441f48122807 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 28 Mar 2020 11:52:02 -0400 Subject: [PATCH 1/9] #923 reformat electrolyte submodels --- .../models/submodels/electrolyte/index.rst | 9 -- .../base_stefan_maxwell_conductivity.rst | 5 -- .../composite_stefan_maxwell_conductivity.rst | 5 -- .../full_stefan_maxwell_conductivity.rst | 7 -- .../stefan_maxwell/conductivity/index.rst | 11 --- .../leading_stefan_maxwell_conductivity.rst | 6 -- ...rface_form_stefan_maxwell_conductivity.rst | 8 -- ...rface_form_stefan_maxwell_conductivity.rst | 8 -- .../base_stefan_maxwell_diffusion.rst | 6 -- .../composite_stefan_maxwell_diffusion.rst | 5 -- .../constant_stefan_maxwell_diffusion.rst | 6 -- .../full_stefan_maxwell_diffusion.rst | 6 -- .../stefan_maxwell/diffusion/index.rst | 10 --- .../leading_stefan_maxwell_diffusion.rst | 7 -- .../electrolyte/stefan_maxwell/index.rst | 8 -- .../base_electrolyte_conductivity.rst | 2 +- .../composite_conductivity.rst | 5 ++ .../full_conductivity.rst | 7 ++ .../electrolyte_conductivity/index.rst | 11 +++ .../leading_order_conductivity.rst | 6 ++ ...rface_form_stefan_maxwell_conductivity.rst | 8 ++ .../surface_form/index.rst | 0 ...rface_form_stefan_maxwell_conductivity.rst | 8 ++ .../base_electrolyte_diffusion.rst | 2 +- .../composite_diffusion.rst | 5 ++ .../constant_concentration.rst | 6 ++ .../electrolyte_diffusion/full_diffusion.rst | 6 ++ .../submodels/electrolyte_diffusion/index.rst | 10 +++ .../leading_order_diffusion.rst | 7 ++ docs/source/models/submodels/index.rst | 3 +- examples/notebooks/models/spm1.png | Bin 182088 -> 181837 bytes .../spatial_methods/finite-volumes.ipynb | 12 +-- examples/notebooks/using-submodels.ipynb | 77 +++++++++--------- examples/scripts/compare_lead_acid.py | 6 +- examples/scripts/custom_model.py | 13 ++- pybamm/__init__.py | 3 +- .../full_battery_models/lead_acid/full.py | 11 ++- .../lead_acid/higher_order.py | 14 ++-- .../full_battery_models/lead_acid/loqs.py | 11 ++- .../full_battery_models/lithium_ion/dfn.py | 11 ++- .../full_battery_models/lithium_ion/spm.py | 7 +- .../full_battery_models/lithium_ion/spme.py | 10 +-- .../models/submodels/electrolyte/__init__.py | 4 - .../electrolyte/stefan_maxwell/__init__.py | 2 - .../stefan_maxwell/conductivity/__init__.py | 8 -- .../base_stefan_maxwell_conductivity.py | 34 -------- .../composite_stefan_maxwell_conductivity.py | 33 -------- ...first_order_stefan_maxwell_conductivity.py | 32 -------- .../stefan_maxwell/diffusion/__init__.py | 6 -- .../base_stefan_maxwell_diffusion.py | 34 -------- .../electrolyte_conductivity/__init__.py | 6 ++ .../base_electrolyte_conductivity.py | 9 ++ .../composite_conductivity.py} | 26 +++--- .../full_conductivity.py} | 6 +- .../leading_order_conductivity.py} | 6 +- .../surface_potential_form/__init__.py | 0 ...urface_form_stefan_maxwell_conductivity.py | 71 ++++------------ ...urface_form_stefan_maxwell_conductivity.py | 32 ++++---- .../electrolyte_diffusion/__init__.py | 6 ++ .../base_electrolyte_diffusion.py | 11 +++ .../composite_diffusion.py} | 18 +++- .../constant_concentration.py} | 6 +- .../first_order_diffusion.py} | 6 +- .../full_diffusion.py} | 6 +- .../leading_order_diffusion.py} | 6 +- .../unit/test_expression_tree/test_symbol.py | 2 +- .../test_base_electrolyte_diffusion.py | 25 ------ ...igher_order_stefan_maxwell_conductivity.py | 23 ------ .../test_base_stefan_maxwell_conductivity.py | 26 ------ .../test_surface_form/__init__.py | 0 .../test_diffusion/__init__.py | 0 .../__init__.py | 0 .../test_base_electrolyte_conductivity.py | 5 +- .../test_composite_conductivity.py} | 28 ++++++- .../test_full_conductivity.py} | 2 +- .../test_leading_order_conductivity.py} | 2 +- .../test_surface_form}/__init__.py | 0 ...urface_form_stefan_maxwell_conductivity.py | 6 +- ...urface_form_stefan_maxwell_conductivity.py | 2 +- .../__init__.py | 0 .../test_base_diffusion.py} | 2 +- .../test_constant_concentration.py} | 2 +- .../test_full_diffusion.py} | 2 +- .../test_leading_order_diffusion.py} | 2 +- 84 files changed, 323 insertions(+), 542 deletions(-) delete mode 100644 docs/source/models/submodels/electrolyte/index.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/index.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/index.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.rst delete mode 100644 docs/source/models/submodels/electrolyte/stefan_maxwell/index.rst rename docs/source/models/submodels/{electrolyte => electrolyte_conductivity}/base_electrolyte_conductivity.rst (55%) create mode 100644 docs/source/models/submodels/electrolyte_conductivity/composite_conductivity.rst create mode 100644 docs/source/models/submodels/electrolyte_conductivity/full_conductivity.rst create mode 100644 docs/source/models/submodels/electrolyte_conductivity/index.rst create mode 100644 docs/source/models/submodels/electrolyte_conductivity/leading_order_conductivity.rst create mode 100644 docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst rename docs/source/models/submodels/{electrolyte/stefan_maxwell/conductivity => electrolyte_conductivity}/surface_form/index.rst (100%) create mode 100644 docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst rename docs/source/models/submodels/{electrolyte => electrolyte_diffusion}/base_electrolyte_diffusion.rst (56%) create mode 100644 docs/source/models/submodels/electrolyte_diffusion/composite_diffusion.rst create mode 100644 docs/source/models/submodels/electrolyte_diffusion/constant_concentration.rst create mode 100644 docs/source/models/submodels/electrolyte_diffusion/full_diffusion.rst create mode 100644 docs/source/models/submodels/electrolyte_diffusion/index.rst create mode 100644 docs/source/models/submodels/electrolyte_diffusion/leading_order_diffusion.rst delete mode 100644 pybamm/models/submodels/electrolyte/__init__.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/__init__.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/__init__.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/first_order_stefan_maxwell_conductivity.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/__init__.py delete mode 100644 pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.py create mode 100644 pybamm/models/submodels/electrolyte_conductivity/__init__.py rename pybamm/models/submodels/{electrolyte => electrolyte_conductivity}/base_electrolyte_conductivity.py (97%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/conductivity/base_higher_order_stefan_maxwell_conductivity.py => electrolyte_conductivity/composite_conductivity.py} (84%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.py => electrolyte_conductivity/full_conductivity.py} (91%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.py => electrolyte_conductivity/leading_order_conductivity.py} (91%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/conductivity => electrolyte_conductivity}/surface_potential_form/__init__.py (100%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/conductivity => electrolyte_conductivity}/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py (84%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/conductivity => electrolyte_conductivity}/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py (96%) create mode 100644 pybamm/models/submodels/electrolyte_diffusion/__init__.py rename pybamm/models/submodels/{electrolyte => electrolyte_diffusion}/base_electrolyte_diffusion.py (93%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.py => electrolyte_diffusion/composite_diffusion.py} (87%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.py => electrolyte_diffusion/constant_concentration.py} (84%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/diffusion/first_order_stefan_maxwell_diffusion.py => electrolyte_diffusion/first_order_diffusion.py} (96%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.py => electrolyte_diffusion/full_diffusion.py} (93%) rename pybamm/models/submodels/{electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.py => electrolyte_diffusion/leading_order_diffusion.py} (93%) delete mode 100644 tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_diffusion.py delete mode 100644 tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_base_higher_order_stefan_maxwell_conductivity.py delete mode 100644 tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_base_stefan_maxwell_conductivity.py delete mode 100644 tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/__init__.py delete mode 100644 tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/__init__.py rename tests/unit/test_models/test_submodels/{test_electrolyte => test_electrolyte_conductivity}/__init__.py (100%) rename tests/unit/test_models/test_submodels/{test_electrolyte => test_electrolyte_conductivity}/test_base_electrolyte_conductivity.py (65%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_conductivity/test_composite_stefan_maxwell_conductivity.py => test_electrolyte_conductivity/test_composite_conductivity.py} (51%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_conductivity/test_full_stefan_maxwell_conductivity.py => test_electrolyte_conductivity/test_full_conductivity.py} (93%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_conductivity/test_leading_stefan_maxwell_conductivity.py => test_electrolyte_conductivity/test_leading_order_conductivity.py} (90%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell => test_electrolyte_conductivity/test_surface_form}/__init__.py (100%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_conductivity => test_electrolyte_conductivity}/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py (92%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_conductivity => test_electrolyte_conductivity}/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py (96%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_conductivity => test_electrolyte_diffusion}/__init__.py (100%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_diffusion/test_base_stefan_maxwell_diffusion.py => test_electrolyte_diffusion/test_base_diffusion.py} (87%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_diffusion/test_constant_stefan_maxwell_diffusion.py => test_electrolyte_diffusion/test_constant_concentration.py} (86%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_diffusion/test_full_stefan_maxwell_diffusion.py => test_electrolyte_diffusion/test_full_diffusion.py} (94%) rename tests/unit/test_models/test_submodels/{test_electrolyte/test_stefan_maxwell/test_diffusion/test_leading_stefan_maxwell_diffusion.py => test_electrolyte_diffusion/test_leading_order_diffusion.py} (95%) diff --git a/docs/source/models/submodels/electrolyte/index.rst b/docs/source/models/submodels/electrolyte/index.rst deleted file mode 100644 index c20e8a9de6..0000000000 --- a/docs/source/models/submodels/electrolyte/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -Electrolyte -=========== - -.. toctree:: - :maxdepth: 2 - - base_electrolyte_conductivity - base_electrolyte_diffusion - stefan_maxwell/index diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.rst deleted file mode 100644 index d3237a6b89..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.rst +++ /dev/null @@ -1,5 +0,0 @@ -Base Model -========== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.BaseModel - :members: diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.rst deleted file mode 100644 index ae011c5a94..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.rst +++ /dev/null @@ -1,5 +0,0 @@ -Composite Model -=============== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.Composite - :members: diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.rst deleted file mode 100644 index 967685daf0..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.rst +++ /dev/null @@ -1,7 +0,0 @@ -Full Model -========== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.Full - :members: - :inherited-members: - diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/index.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/index.rst deleted file mode 100644 index bf66787adf..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/index.rst +++ /dev/null @@ -1,11 +0,0 @@ -Conductivity -============= - -.. toctree:: - :maxdepth: 1 - - base_stefan_maxwell_conductivity - leading_stefan_maxwell_conductivity - composite_stefan_maxwell_conductivity - full_stefan_maxwell_conductivity - surface_form/index diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.rst deleted file mode 100644 index 1e0726fb25..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.rst +++ /dev/null @@ -1,6 +0,0 @@ -Leading Order Model -=================== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.LeadingOrder - :members: - diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst deleted file mode 100644 index 109181219e..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst +++ /dev/null @@ -1,8 +0,0 @@ -Full Model -=========== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.FullDifferential - :members: - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.FullAlgebraic - :members: diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst deleted file mode 100644 index 7f49e02a1f..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst +++ /dev/null @@ -1,8 +0,0 @@ -Leading Order Model -==================== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.LeadingOrderDifferential - :members: - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.LeadingOrderAlgebraic - :members: diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.rst deleted file mode 100644 index da510c65c0..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.rst +++ /dev/null @@ -1,6 +0,0 @@ -Base Model -=========== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.diffusion.BaseModel - :members: - diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.rst deleted file mode 100644 index 9920eac9d6..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.rst +++ /dev/null @@ -1,5 +0,0 @@ -Composite Model -=============== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.diffusion.Composite - :members: diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.rst deleted file mode 100644 index c047863a29..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.rst +++ /dev/null @@ -1,6 +0,0 @@ -Constant Concentration -======================= - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.diffusion.ConstantConcentration - :members: - diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.rst deleted file mode 100644 index 07818a12c4..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.rst +++ /dev/null @@ -1,6 +0,0 @@ -Full Model -========== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.diffusion.Full - :members: - diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/index.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/index.rst deleted file mode 100644 index 2958281b58..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -Diffusion -========= - -.. toctree:: - - base_stefan_maxwell_diffusion - constant_stefan_maxwell_diffusion - composite_stefan_maxwell_diffusion - full_stefan_maxwell_diffusion - leading_stefan_maxwell_diffusion diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.rst deleted file mode 100644 index 3f5b2d60ed..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.rst +++ /dev/null @@ -1,7 +0,0 @@ -Leading Order Model -=================== - -.. autoclass:: pybamm.electrolyte.stefan_maxwell.diffusion.LeadingOrder - :members: - - diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/index.rst b/docs/source/models/submodels/electrolyte/stefan_maxwell/index.rst deleted file mode 100644 index 561a7a159b..0000000000 --- a/docs/source/models/submodels/electrolyte/stefan_maxwell/index.rst +++ /dev/null @@ -1,8 +0,0 @@ -Stefan-Maxwell -============== - -.. toctree:: - :maxdepth: 1 - - conductivity/index - diffusion/index diff --git a/docs/source/models/submodels/electrolyte/base_electrolyte_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.rst similarity index 55% rename from docs/source/models/submodels/electrolyte/base_electrolyte_conductivity.rst rename to docs/source/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.rst index 3548e04fde..4a2fb4d0b1 100644 --- a/docs/source/models/submodels/electrolyte/base_electrolyte_conductivity.rst +++ b/docs/source/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.rst @@ -1,6 +1,6 @@ Base Electrolyte Conductivity Submodel ====================================== -.. autoclass:: pybamm.electrolyte.BaseElectrolyteConductivity +.. autoclass:: pybamm.electrolyte_conductivity.BaseElectrolyteConductivity :members: diff --git a/docs/source/models/submodels/electrolyte_conductivity/composite_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/composite_conductivity.rst new file mode 100644 index 0000000000..2f1ce71f35 --- /dev/null +++ b/docs/source/models/submodels/electrolyte_conductivity/composite_conductivity.rst @@ -0,0 +1,5 @@ +Composite Model +=============== + +.. autoclass:: pybamm.electrolyte_conductivity.Composite + :members: diff --git a/docs/source/models/submodels/electrolyte_conductivity/full_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/full_conductivity.rst new file mode 100644 index 0000000000..6882fbb8e2 --- /dev/null +++ b/docs/source/models/submodels/electrolyte_conductivity/full_conductivity.rst @@ -0,0 +1,7 @@ +Full Model +========== + +.. autoclass:: pybamm.electrolyte_conductivity.Full + :members: + :inherited-members: + diff --git a/docs/source/models/submodels/electrolyte_conductivity/index.rst b/docs/source/models/submodels/electrolyte_conductivity/index.rst new file mode 100644 index 0000000000..8d0be2223a --- /dev/null +++ b/docs/source/models/submodels/electrolyte_conductivity/index.rst @@ -0,0 +1,11 @@ +Electrolyte Conductivity +======================== + +.. toctree:: + :maxdepth: 1 + + base_electrolyte_conductivity + leading_order_conductivity + composite_conductivity + full_conductivity + surface_form/index diff --git a/docs/source/models/submodels/electrolyte_conductivity/leading_order_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/leading_order_conductivity.rst new file mode 100644 index 0000000000..e5e6f0261c --- /dev/null +++ b/docs/source/models/submodels/electrolyte_conductivity/leading_order_conductivity.rst @@ -0,0 +1,6 @@ +Leading Order Model +=================== + +.. autoclass:: pybamm.electrolyte_conductivity.LeadingOrder + :members: + diff --git a/docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst new file mode 100644 index 0000000000..9218174e2b --- /dev/null +++ b/docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst @@ -0,0 +1,8 @@ +Full Model +=========== + +.. autoclass:: pybamm.electrolyte_conductivity.surface_potential_form.FullDifferential + :members: + +.. autoclass:: pybamm.electrolyte_conductivity.surface_potential_form.FullAlgebraic + :members: diff --git a/docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/index.rst b/docs/source/models/submodels/electrolyte_conductivity/surface_form/index.rst similarity index 100% rename from docs/source/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_form/index.rst rename to docs/source/models/submodels/electrolyte_conductivity/surface_form/index.rst diff --git a/docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst new file mode 100644 index 0000000000..07154f9aa6 --- /dev/null +++ b/docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst @@ -0,0 +1,8 @@ +Leading Order Model +==================== + +.. autoclass:: pybamm.electrolyte_conductivity.surface_potential_form.LeadingOrderDifferential + :members: + +.. autoclass:: pybamm.electrolyte_conductivity.surface_potential_form.LeadingOrderAlgebraic + :members: diff --git a/docs/source/models/submodels/electrolyte/base_electrolyte_diffusion.rst b/docs/source/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.rst similarity index 56% rename from docs/source/models/submodels/electrolyte/base_electrolyte_diffusion.rst rename to docs/source/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.rst index 0fb22194ef..01ecb53620 100644 --- a/docs/source/models/submodels/electrolyte/base_electrolyte_diffusion.rst +++ b/docs/source/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.rst @@ -1,5 +1,5 @@ Base Electrolyte Diffusion Submodel ==================================== -.. autoclass:: pybamm.electrolyte.BaseElectrolyteDiffusion +.. autoclass:: pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion :members: diff --git a/docs/source/models/submodels/electrolyte_diffusion/composite_diffusion.rst b/docs/source/models/submodels/electrolyte_diffusion/composite_diffusion.rst new file mode 100644 index 0000000000..96e8a16d1a --- /dev/null +++ b/docs/source/models/submodels/electrolyte_diffusion/composite_diffusion.rst @@ -0,0 +1,5 @@ +Composite Model +=============== + +.. autoclass:: pybamm.electrolyte_diffusion.Composite + :members: diff --git a/docs/source/models/submodels/electrolyte_diffusion/constant_concentration.rst b/docs/source/models/submodels/electrolyte_diffusion/constant_concentration.rst new file mode 100644 index 0000000000..be326a8f6d --- /dev/null +++ b/docs/source/models/submodels/electrolyte_diffusion/constant_concentration.rst @@ -0,0 +1,6 @@ +Constant Concentration +======================= + +.. autoclass:: pybamm.electrolyte_diffusion.ConstantConcentration + :members: + diff --git a/docs/source/models/submodels/electrolyte_diffusion/full_diffusion.rst b/docs/source/models/submodels/electrolyte_diffusion/full_diffusion.rst new file mode 100644 index 0000000000..99dd1fee93 --- /dev/null +++ b/docs/source/models/submodels/electrolyte_diffusion/full_diffusion.rst @@ -0,0 +1,6 @@ +Full Model +========== + +.. autoclass:: pybamm.electrolyte_diffusion.Full + :members: + diff --git a/docs/source/models/submodels/electrolyte_diffusion/index.rst b/docs/source/models/submodels/electrolyte_diffusion/index.rst new file mode 100644 index 0000000000..3afaa02739 --- /dev/null +++ b/docs/source/models/submodels/electrolyte_diffusion/index.rst @@ -0,0 +1,10 @@ +Electrolyte Diffusion +===================== + +.. toctree:: + + base_electrolyte_diffusion + constant_concentration + leading_order_diffusion + composite_diffusion + full_diffusion diff --git a/docs/source/models/submodels/electrolyte_diffusion/leading_order_diffusion.rst b/docs/source/models/submodels/electrolyte_diffusion/leading_order_diffusion.rst new file mode 100644 index 0000000000..a4c817c60d --- /dev/null +++ b/docs/source/models/submodels/electrolyte_diffusion/leading_order_diffusion.rst @@ -0,0 +1,7 @@ +Leading Order Model +=================== + +.. autoclass:: pybamm.electrolyte_diffusion.LeadingOrder + :members: + + diff --git a/docs/source/models/submodels/index.rst b/docs/source/models/submodels/index.rst index d5a1e98721..a72bfa243f 100644 --- a/docs/source/models/submodels/index.rst +++ b/docs/source/models/submodels/index.rst @@ -8,7 +8,8 @@ Submodels current_collector/index convection/index electrode/index - electrolyte/index + electrolyte_conductivity/index + electrolyte_diffusion/index external_circuit/index interface/index oxygen_diffusion/index diff --git a/examples/notebooks/models/spm1.png b/examples/notebooks/models/spm1.png index 8579d6db1e34eea2700f35eb7d5bf68679d028c7..36fb66b2a07d66b9d8e3beea2e271d25a1d91b15 100644 GIT binary patch delta 127284 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 z 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 z z*L#V>BZUz-O9e!+yJTGqz?s-~S!(T(Du-?B+-68xRDWL^v-1|?`pmFQcM5kb^azA{H5j@ zNs%rSD%dgfH$jH+CM#$41-#ImB2a@OjI2KTyG6&3-0^h{Uq8Pe{aDppgrmPvoHIf_ zj35GT=qmFmQgvRt`EVNB!w?(p55KLL)C~ z_QlCaW9If3rfYYw0tjpnM=sX$1hVxuRKpP%@=jcKB=KO5<4jq;5(F zS#`bi+g9fxMx^(-X_@*=>H5cF9ganE;R=Kyj}ep;4#hCsv}H}au{u)AKC zl02em#bUprE@F_e$n?o9kQMGW;1@g30A+T8?etgVk2#W`Z`p8^R`qW8`_W3&1I10jj)*@M7RMbBG6 zK&hX1nN51h;3A8c5ey~tC$=3o$IIE&}du#Xevbh+Ka8Ndy&QBuHDvA9chdjOosK=NyNOg(|Lv z+&HV(zeshaQyhI}G)kcCQsiB(e{3j3fU9O1!H(DZ6XwWPXy=kr{r^<|% z`bBZ^RsXjg1T)lK9rA%k!WBsHw+)${V@`I^P0r zjewD3dA5)sEJ_4Qj{+OCZxX`1KvT~Tk$re)LaW+$MpuEZ8A&9mVDA1!A^ND7GWA0o zUpEZRm7YU2YYh{4;qJR$aSGf!aIvM=i2o_rtq(0vRa)pQj(!az+d+j&%1aB2uNlI) zYo%-`_;1f2!X=`x!BKnhBPppMwVN$!%&V>q8deM)5P4^cRlgpcZEb(uv%^V4&2YYl{Y)+h5t zN2tWe1ndgBpzmVvC8qtTi{o>Bx!Hz*Af7VW=sLfBx`2Rr3OmVkMj0Za9*`VDdoso7v(OjZDoFkF;hT0uber09qkmC>q5r=W zLfJ$Ae49t?Aqn&yPoln+8FfDBC=RFsn(YYnN@?>O3!onw7Iu&3`68e^-D`Z3l)Cl# zfaxS+9v0ItP+s~>i<0-uTNShj^m5E5H9^uoOvU_fhORzJFcpJ>z zc80V_?7}P{xWwWqphr9%gfK7nPFfSZ;=p8!nOja>Au)!r6DYSCt8ND!>4E&a08pnn%D=C%?ol&vB-C9luI=H&Qy zqSQ>_h~aAPz$rr8YZoR`I2Sf>jWt>}f>Sde5}jI% zm@nyQm0SEdTuYaxCHyf=(rrgFv}Yk`Zmio6uAr zQg3FoP2mr}A$vDLGP1nI%_Ev-7$*mQn_E;160HBAtEK+j(hW#*-{#EgJ>V10d(rTo zfZ3eUe)adzmXjda^ZXY@%|?~3snKadw1lJA3@@elIcS}*MX;oJ?`hKzeM;|}ya zEO;I_Pd~jzE(Xz3Z)~cCY6;g{5daEig1Y&OeR)Rmep(A=j^K?_ekf(GsOJJ~#8Ep$ zhGFiR{d@iK{gF9DnjP&;;1arjB5=#WmnCJzuHO@L~2Iw>~JoUlq9L z@s+U>v$fRi7c*?=;LoI3%H!1zY^Y>LId`i7MdC=*IJ3Y>XRK zN?ZPLqTu)`>h}wXctZYvhp4hvUPHjz=cdep*S}TbY?_RuPqU+q_tFFVyY_6FqO$$h z1s=Yt40PmZkv3<%+NyX(E@LI-musBsoIU9T21fgN-gALI54ExR-%%<|pmZ&S*g%0F zES+SK#HxeXVZC}e4k-9F?8$eOqL_Y$aiyFxr}V`Rear)z7v@>o-8AntCz~Ajg>J0x zT3*%V*y!3bu9lOFRGE9Vj)%RsjbcIZU?aCt7w~`T#bP~wWh^$67CmKlhYI;7I_Rbj+dGH-+RksMV3(>^b@Cj-_c3eK`6cVQ}`veLkrzkr3@PChWr<6blJtK%UmDk1ktxY+_&T zphVFQCfMN})Lo*p;1}>>bt(p{wu@pEicYcBk4@XEakw#C`?XL=Ai+EDdX;~;QOs=e?3KnIt;JXJB4j$DJru(N4%F`VCBYRs*Jj&NH8D{9#WtS7d` z3zFvx5hh8Lv64omJN9R2El1qw_05~A?B+J&hZ2U*?HWwGE#7UJ)}}p_U+lh1$;x8FdGz+fk=3cVl7#%iob2(jGVCE~RvDI0fA~f;(7;4ZAh%U?y=K zpHJRb@l-@VE%Lf3!tp)pO@BWtd+?dB?yKGZ7@S`MmxYZLAe(mVY}o8xiS#G-JOjpo#{oWsjq z*FQ(+BD_|~k^&40Vzk|a{&Xh&)O=1s=@8jPjG;PsAiuG_`i%Tm_LK3x%8G$rz1tOU z%he`&0^4f^R_yJ5XZor3R3<*+KD?8jcuypc^w2lyE6-AIb$|Ip{6HVm#HXK)*sYqb z1DObWTMwD9KEBt2w9Cz-q;}dMo+g93U-)Z_qo4b%&wf31;u+Xg+SusGt#JP1 z*JC?@Es4wYyI-ml1O7knW8|j|Jp}sP3i;=^Ok$=rKi;W+gKVfgd;geD1k;fh;mh2( zURXrXaUYN1t=xI@%Tn{dBJFk_KZ(OV%2<+0+kY1URDUte2NAriy$27kA86fmHw8YK zzHpRUu&)!3rmmdqAmhwTzMFtKKM4ps{|Ya*LWMDv#m9LSFT*Ihj05x3?PZlFwWsz* zP)fGI+K$J-Jd4f6fG1qb7;dq}jOQ}l+9XjN=Gb=|5>Zk7iCCI)KHSTO6V72LjWI*_ zFSaDejK#hR(qE4H5UkGE@f_jX5fS$IOq{uV=6&<=mYXa?&ru-o314kL1Z8cts-U|* z5tGQkxZCsv={U!GnlwxzN{dP-AU-$HIIUKO!^o#%csXSam?#?T} zo%z;LoJW41+YXok!NPXjlXl{|&(^9ZhvZ?skQEdk(iqS-e{=V4@Bbs}tOBaq+65{h zAxL+3H%ND?grE}AA)(UU8<0+=Hk}eG($XQ_jdX`JNJz(>%X7|uUwmV`V%GX%4F2RH zp2_2(KNL@>{t$V5xTYS^6tcouf2w@6z*n7mS-h^SXEApRd(nGe3P`=Rl^A2bCfEcn z06k&(Wg_3l^4vUx7$3+c1-Ek zAj_cT3pIqV$Xm63df2-q+t*?JCr2Uika^OfcKi41na^@HA)t4P>x0&mdbQ%$o(Wsy za&#Bb^`^;3_A{=tFdG{@j02LZoA-R$y0K3NIht>TdOeF3>RW2f9XF<|T>`pVQtBeh zB?bvFMgsCAQoZ+L_1AAeVVw0IO5jl?Kic$B@Xd#fXD@bw#WfOc3c!7|9=SPhy^23N zhO(;-3K{I0#z#NF*LfVjXRrOta>JsEt?4Lc-0RJ$)vI?Ac1kl>m3rrrM+fcsYaP}$ z#cAl52iUa>lUDZ!n@Zk{DPedDI=rvMO>$SfT_cYJpT`*z6-`6a3w_>uqxuJ%u(%Yr z`(vAAg6>M34&Sx1=5pjBu%Z%!pHJNItQth@M~p3+jrTwyN_gf4f;z0-7_U{~g!4p0 ziMV9KD4l})SB7KMGo}O9&o6o=+|F<-a9*Qb^T(+cFS%pXfu1f(xPJ1ZYA3JM>>TvFH%#p!@(~o zJv7SUSKL?J=q~t z8`6Atb5Mm1e~LW!?W5~{eG)=N;{MZbjE9cTY68D~_e-VMr|OW=b=n{|vaeUrS6!aq z(CsVT*f@*wc;RM5hRXB&H=}V1fsl*CZwVLB`H{4vf7*q}vWF!cehjkDKdgty+_cxc zR3c*+yC>J?;g(kjxQHHsaL+3Q3QJH0?`nI5Z6WM|&1<=pZ|?AlqQm3YO7GC}JhShu zW!QbC2V>16D^J)SV7}1UwHS#F$vx-m5PSMV+r!#@s&VB(l-s@H-(fi%v(c?JFG1k* zg@ZBwed5t@4}Dn*9Mwf9f`$AX_ip&z6^Jg~@NpI9KBBw&R(od2e0PRDxh4_)zM(4Q zs@ILX$LW|i5-BIq&7Pf-ow&Y02Yq&HjlZ{KYDysUK%>-Z=-!L(LH6A${6p!MxTw}+ zJ#9s-9>PYVqo`dE=bo)6F^!vxSJt5Tx#FJk;iMs? z6D!~)ftKD4slo#-D*2YGbbJLrExRMwvul>py7Z%{a<*`!F%QNE{zaHQMa(%?3%#1# zx&4=^!nq`EbH>k&@a;KCrSfgWjB2e=+oj?wrneP*WAMdxXDTI*DdAtSp5>?4g?T2O zy%%K<-~Q$!qsQzUuj|O7?2xUR8YDd(L2iNg2YbV_o>4nxZ>c@=^@S=~D1G<^$@B4b zjn}c^{Gc90W&dIuc~sbOt(#!)7rf{OfeU6bGK#|~IeTpLMm#7ZbBiwVxUhoP;hDsy z|LLRkdk3r@ylVTUf_yeew=u0hUV?ytQ7Zcb8>hO^fj>>7YP1h4-=I4jsn!`#GKWmt zeabxG*2l1H8Y*+*e)norr(WP9TC`w|%;{R6pT8YzhG20fP#CwcrMiJy*(=T~Cyj&A zC2MbM@hNAm7C3J7P781K=nucJI2`Q2+K8Pf==gG_*Q&V@4sU4ymErO5d!nHr@{q+r zoEH=2Alzw4svIMmic-w{wJ|gG5T~=Gu|(YS1)u5zpHpOKq!HcJC=KSWh-0wKT=VZI_oi-C z$;%lY7ht?5;v|}>|G@3*%v;P_7Rq3ny3>N#*2n691Lm&i%7QPvyiBueSPk|11`wYdl8KMQN#v$HHgvG_=yedwY z#(#~ZIHnRvXO(L~=SQh4@YPcBC0n1k2~qFVlUTP>XMaX{jscu*%QfvHmLpq}=_vOp zHIyQcb_A&x24*AgD^2gC+~?)TymsgCQ#gb@52e$o$nhtA2|9MCV|HrZSuRZK@FEv& z;+9$jr%)&xvc!4Vp?^wsV-Qr~z`BiD5lGGRyP6a3e$#bPR>VqdKdDkzTG<-lnS2&> za_;p$mA`0~aj4@94$(acW84anGr03!gt_#}Z}slR^D_H^4jcukp;68+SyVBy6csh7 zP-0u}0wLiJkrg(W#M^cxLZl;ZcO|hA9`lN7`Y1B9s}ZkU0ydhyBl6tR7y)PV(Q20GOe_bH zUuhtbf@-2I2did|X3f)(r#G_Gaz0`AbxJH(yZi?@=x<<2pYjKPe3RHyF8V!MoU7jw zOSmp%UJfTtK1+KAI~KF4fuv`c5s5oi>^#S4JMuw^5w+VL{qHu!xU?zNC|CTwav#dw zcmu9q(mMCHkv_iZO_cQfQ}TN|Bk^6=R6);A$zAx@d6b(fr&>s14cDjhI$}X0dnhyN z@ngw3A|>hCIP^Ll}{zh=y^gUz5Evpa#<;aPggK*A1|V`E8; z^5fts*5q3_0I9$2k6o`%@(Vg$yNV1tO{^*#BWB<*eqTjkj^NLS4d2sQZ2R(E))sNC zktLsS+RB7jH)^MA|eSKM}`Mf$9ughj7=vO4YSV$t`j+FGH@+pU<@ zCXy~o4#FMh$UH@psHiTd=AJ{-P9|_Pu`p|Evi8~N@olx<`1zt)pf21I#hDNUQlg_K zl@4DIDsPb46`z#Z9aZh%{4OL8auw;S8fH4LNtHr%#?Yy!&(e?~ZVkYK`G4T_y`sJC zp%6N{N!~Gy0;V>-?K^U`T^14+>2Ok>yAWY?;x}jkB%41v$c=Hk88EOOu<`LAC1YmQ z{XpY=C@VPUtjLbcCzw}iFEdHDgv3lmC5bL z*6HT)f`7obQc*j#hK_5zzycaEC_JFx?6ll3;&JE zgvs+=fTk*3i#8ISE>@SEL|WJtWd1^|(p&VEdEMhVX{=ixaty^jO^|WH#^j?t{jo<8 z#DX-}^Wl~I`5opdK&#JT6t3NNg3{|%XQRpFL-oVeiNuE8miuf3!k>D6G#;s0>~D|^ ztrC1etGuRM7NUNv__7?(G4kh=kMydf4Q0ER?hACC`;h9as&57Mif8> zeGi@Ra%4n#*f_bsZ*iJv2Y;<5(cYMngh%W511tj59f+Pp*s<%Dp`%e*F%yW<1Y|8R z&=luVoZh{;J3nSWb#Zv6B>DD@Pn3O7r{I3C0gu6MrQjpUZDV5A%i3{__-8#!E7+aJ5H>PAor&FI3-1^q)!%MO0BDy3S$HsVmVKK8DrmST!c?)OfqNTj&~4?Aur} zdA~-PQ>PP<^?PiejqA}#y7pArLjSfobK~x6X6$28$xXHX9@-t{A@#un8(5(0v~0Eu z+ak)EKfn&O1x|V^3ozQfuCF@i(-b;CNT^ig2^!|rwXk(4FO194oF(cS8%5is$chZ- z$5QoHthZp(%TkfkPucV0F*59*JneT)mtB~&-Z;cM#A2FlN>$NUPD$Pe95hud3T1pE@j)d zrUlA}VgK&5(f3l2E-y*A4|x|y4fdqW+Cj1)%^=`WCv|y{zK>4ONva2R;#r>ioukNQ zEpKb!2-7HaqXfwd{Q$n(p-;Eg{*tHqt8u;!i*a`c@0zQ@Jn~g(a>+YUHY*I1d`WHD z4gb~Y`=0P-5RII4h*c@8B<;Gtm0|x=BAv&L{wi$Xr@*OdMlLn)Vv^KQ?9xSI)6yns zw*W@uNVZJaLSC%Z=qy$9!EfQ~JJ|_ewc^7g*%g*k-bh|hwOL+agg0_z!4~Q;Ltw{bkKB-KHG;hX*AO>R0_G|H5H|W;CmnuH+C?V}{@A zfQUX8y_1jfz4Dp@haV$qlQ0&eJgTG6ebwE_JVt6@I4$<%Jzd?@$tI#H7jii#`Z>2!;U%074UwA& zbiGUT(HV&f$4Dc+cjQerWYgeic@4KjLu7*;A}lKlBFI=!{v3a&eR(KQc=7m?Va~Oz z^~|WW#GZ?j@@lVmvtA`i=O@I(&5SWJqgz-RGcQBQz>TrPw>*TwN{v$C$nN6jNP9B9 z`J1N_>GF5y`BbavCVVJ1gJou2x|Fe!JZAKhS6wFF!oyh`^G+>Kve)U>)oK5j7Oy73 zPCkCcI@9Y;aGhaBZs(&~lB-n^OZ{*ibr;62t*fgG$8Qel+(r%*XxOP7dw^cs>ovoQ zc9P^>4oGfErO~b)FOC$Ob~a2i57H*iqfYPRKPkoBJb0`;iePtyYZE_#*$~pt)iFwL zgTTRWfl-OONg;P0PwKed@vE}-=zHyrQr+|n`>kG+i^zg$th=8pm(Ar-yq3@(q7KY(GWWDRJz+*#F(c>wu%-#3~17&GUQ>hlqb>4FUX~&-vy< zkVdF4S~crvoGB{X1Mgk1N%qc*Z*9Bn%Zab;C1IIjh!STf5l=MU{A=B2HSk#-SDmyl zC?vUsn(*bW=H;Ph9fpCDcCH2OHxi#g{kX8h6EjOPd^Q0IPLch)3OB0XS_B(+RF6&< zykt7C%5oK@b4@!COVD;hEcB>~Y z9X^NHG75@0XDcUx)GG352mHwSmsi&FEXNxOpMG%RmaRiMi12z;> zNKfRmUX=LzYZ8Ajy$JAsr+>=FqWFW47M_KHNCR83Z%G+4IE=WDhWNk)C0e3%@$7IV z1K<)2;^0F5!KnVLO`sK0?-w&AHqx`e6W@uRAsuCTj+Ve~q>uL|+DqSd9&)Lz*V0AH zMLo-tNfDP!!kOy)fs2Vt$yewEVU$G_=bvSCjZ#Fhp)f-ZDO5w`HLsY6O1zkY5S{yoP`Ux{K5JAwlT$^Ll*!XZDi@{QKHA)B2WhXH3A$*ibZ*3OOvi);4Ppd%L~Gw16El3 zdAEPvhdK;@hfB)61N2^ee=i05g9Dq)iWpZ)I`5f6E_<8LhHK)o$_EP3%k!~r6k2k} z3(M1$S7N=Hghs>~&mfz)ekY=L4XP-n6)KJXvVlTVAe;@Y8Qs1&zgrv4XHZxAfPM2m z==qUpnIOCx=|<{P!DpS+RBXy5EAkgcBd49R^wa?!O=sn@-qS~E+Dc05oe~nhhGl|P z1&{0oyEL!0e>6IZ4om%Tu|n12S3fwyTDkKP5#46H*e~#v{;+qaZN+}fOC`GurD08{ zdN1}%bm$1n{wepIM(0tC2;sf7s(&a1ms3siPcA= zt&hh18#-?sjF2ai!=r32YLbQyZv#duAgzml>egXU!+9;y8J5{m7bvah&d+HPsTMFa z6o}w3vNqF{ojU^`G%?ZSxln$f|Y{S_#}jk7X;oo}^5 zeDuUw0hZX_&Ny=P6c6=@g(y>MtMY3(wx3>I??TFy@>I8;`U%5Tb~nH~HX z!xGtIS?ZKc3!KJ0INE!M2O}uwpY+Q=@xEXfaWul~;6Ojb3*TFx%JlKgnf6lHQ&)q2CR4njk%BV%A|?SfLqQk#vR_XOL6p^z?Z2^!(?ZznMGQ8 z1s;rpNQ{64&%i+>fq|qW$4wcXGT=UDw9DKv5Lwq-ymZk^i=SoTdaKBR<;m=@G;)gX zMnPaRL!B`7I0@bkYtdb8ar#~Pp{v{JlSKGM z>}K%9ktYR*tt;2iecO?5`goioGd`8;w<$~Q_cM$t)6CC&0RZ5Y&+}cw(G4Oq5~H`O z7Xeq{Mkx%|5f6hId>Kt9k3EAuKZ@(Jp&mUI9oVW1zGQA1PKiy1N9QB?>SP%*m3+*% zLSPC*O0NppfLG&!?ru&A7+3rm#f^cqtvgr=JK52B@nRiaIKZ=QZ&5pFT;TU|L9nd)DuA~9$(n`@5-8+1ygs0G{ zCF!A6DN^o#$)T%N?)H+vbmr>O1Dm~4mM_YnQYT$r+1pix;3Km}<)bk#y6~7?AF?|% zK`)rstY3F`>S2sQMc>BHhyko{_MnA`aUp<$tMXc%CsvIl7LTq8Z)}s;E938&VILnk zr2mlbDXE)LUY81U!`zCQXo@}W>WU@lh|_|-n8;yu@+ufRUG@wbwPrT=9sMI@!%$3p zcTH9Tiey?R-gueU5_>X#sJ0rzN8Kyfq?)~r8O~?k2i47c?BiTLUk_HP`QHh(Fo&mp zd)UWG&`X}Ir#y3IOVh-XSY4$lxc{_dEOCjFphNq~b#4YsUK@q5mSHc}%0N8ZK=(6F zkk#p8n0L$Fiz6Gs;o?)rA<3gy>Y5`Lb6(QxzA~*)iGF?v) z4L^NKFsNG}bFp}Ldlq>8#4`+j*E^D6({iL=s9%*IMR`BGlja6rDua*7I%1`c!8KOL zryHh)T_z{ovC#GDV^xEc-HMssway?m=T6$)<92E>$6g{k#>Ja5v+?c4-8-Iz^bt{) z>3v#Cjl6}Mt#?+hpyDP%m@E1)b|_TIu}LORrHx#4&0;CJgC$naf;ySQ+OGCVC!?u9khRHzZy||Hc&<@h?CSdyLd7D--NA2OvnLfN|Xk{Hyo;Fd(H&MDpbwtR}fYonnZ9 z)bA7pg++JUy#TM*6{ZMxG(b_mmx=XSRNhB}G8RJ`0ueyY84 zVP4XA?;(E6#+8vh8MMS~rxc&Ndfe8QofnoG8Y)X;KG+o9E>29`5Gm`4GK~h? zS5su?xxHj0ABL?zmbzfA`=FM?UdNz|`@NIW^gRSp4kM~g>GcvRP9R2wiN9GBlnu3= z+rzfa+Yge88CONq1O<-cu{!}z^O(uGTXD9Z9VMX7BsNqivpVIC%LHu?J>Thgz8KLF zoy*03f@R0LH!g>9r+Y zy8+|K5p53&>Q%jTPsCX7FtsV(y_o)!*vr2Dl{0(XF*&+khg8+g;?oeTdF^vb(s6|m zzHAr!!$tJkIhli7M|@51f69g_pZG}@ZFaN<+C_dFmt~m<`T4y0mEk4({Lp~QnAyFp z^#*~m#;NnyWxlly!hIv$2A>aQI*WJ(3BKJt+OZp|hgaEJ&M|ss^S&1)sd^f7RrzSp zF-_a*+TR`H4`)SV{D#rLpB)&JoQ&~&RW3m0%rp{_OB(uv1i$kuJcStXA#86e?w4o6 zHk`>;QaolMbGNC&6Y2C0CnF^&NEnUxg*#_mXS*hQK8eGCE><-MzkxjYjDnvMG3Vs{ zxrLQPLEVpUwY_a5M6e8lKn+ya+}Uy+F}!)?fn4aeY3gbfx{#&D`pks#ra0~<0rCo* ziuM6*zmLnySiM)R68yH24lwL|bzek?H#509(wk5_6p@(L3;W2{NuuzMR?t?qvc_t^ zJD223xHh*p>w;#Dd8906s=JXwOJZ#ygAsp6iG2UK?J@~lMZ$@(nn?Iq>Rh1qucrxs zFA^kMx%=A2zeumy(TLP(aD?m`2`KSuTy&@<;p`4#spLM(1HuQGGmHOe19^@Wue|c> zWl$TzKiPIDmm5B>OpuhEd}>A8r=PuoCGsF)z(=NoDptF z03+U&z`L8$lZbxegI)HbRbP0?l!WTR1#*t2sTa)n7uDoQ%^w!Vr4>QlhXRxL)()&} zYU9Vksqn>I`U$P6D+NjIOZ?b3tV}94MQo<0A0PP6{TRl^`F2=+KWGpap4|d6H&!%= zkz-0RPiVunWd*Wc-<&;k_DcVyH8Tc{i59Cv4*8f@`3kjAbFEYr8Frv=*Cr*Wyo{!C zkvN%uVJD~neoPbICwoFhvia3T=*Ni8i%>(|{sc#_%e&bb=7IO0jsl4XWR(Y&4-6e#cUpg3{sDDoNuwIJY~N>4ph@U&y5Qj{-!5%B{g#$Iy&i| zDgUmVsW5lm5%eDhTLmPG}vfuz%*j;l}$9-4d6#&4o-IkBfF3iY{;91P` zNI;i&ilt34!_@gA%^B%92|_bz@mdDakzsjA<71c&*{&8;19B-TR0zuTOxQw^K-pjx7v0-!C*+@KUrAx! zMpoHDZ;vc+0_k6ymr`mdHr~J0xn3b|MgyfR+oe^cuydSg+Vf-{lYpBtnW=!y5cHNn z2)8qfE`Qdv47!bN%ZVhQrhwl;3EcAEASBW(eaVmHai!43^S4BOj^ickrS^%cY?Q&E zv%t&MDU|6VwQ2w~7~GF}BPt|~L8<6>ibN^k&C=<04v5qbN9OG`N5{YDX$O1M;`5`(r#2$VWr^xt85PkS8 z5|uvk`EW>Zp)JsHpVE3L6_Bu-dFw=-kw^-6J=SR?SKYG8&(oJGp>B$IdUr@7@YJ1J z_FadtV2-M|%Xe8j&6FR}sRhzEhcU29Lh!BT*pwitN_9C>Ie?8P;v2K6Uj&o=T;03=R; z3jz5B=J3&X45xPInkdV3PqH&FNbIGGmh-t_{*&G3{q?tDRA(WDqTe6nyeK-H$Y&%x5$5JjIe*zXope^&%VZGEQUY@DV6!C9So|4p@t)vxJe&Jqwp1s}Gl zgLuMA$3zNRqCFl;Cj}E>c#(q@U zlt?Z$-3q^Z+J7K82`|fP%lt)OEZw2;42N$bOdeo5^Pibljq$91B_QT|(foXeS zxiaTZdtso$Yb)&}dzTcX!_oTFQ`#N|3ixNQK3YESLl_aaErFbVPSj*WleDFZR%d`l zIQ7fhyb_?2$B%4SZ0OWo;WyNXBxZ&Ows42p@Stx1)-rQD^xJS6kjmNs{P6WY$Gft) z{9WvNe5J=toil7iY8Qp!gIu>`bf+nxM^7w1viZt^QKi7-TS!&I)dh9bW;(Yw?!uwJ zA*5+}PcTxv(D?m!JmD|$79YlfjUe7j%R>rSRyCjzVc=*I1cu+~Vqb0%iV`DSZsGh~ zPDhKd_s*Jz{7v;=AH}eCWb}j5TU(Em7*AZaY=fMGh^vnU?WSvFUespX?pI4luN&-m zQDmA0xQqcyckFb*dj~9D3Mfk<*wnU74ZwfJvS^vZOlrU$Ty%&n{iX?Qr_kC_q2 zw!UxXCtLc!ppLpLzhGL~G*1kj&6Rh!N%f^x03ImV9phz^xjoHh+9-jaS6z-gI*|g< zw$n@ae*`BsM`d3G7DQb;bOQieKO1$r$936yV<5S*sQ9@t#@WgPfbza8)8SSaR$%S~ z=q_s`V9RRvasSq+hnoeOlUx%~$#3SLkt6bwam$JUkM1HUN2l6UDWIU+{`P(2#bTb! zXF!>y1l_hX3_pZ%Cl0nU<%|`i7$29BRaEz#8H1328d@E;@vggA`S>Ft4xLnrOj=_jIpNOmwdD?j`+;v&nZY8%zp((jk9Zhd)& zMsx3n<3ku%w8$@#EA=IaE>_Fh^<0It>Gk9bN<+L=u-5c^EPJ&u+C=8gXRgXofx$({C|#@EJz5E6T?z&fIK`C5*H~) zTRCgr_E2@FCC$Mx=#s{73e5};G_+blOgZ!&VClOZ1}(c+_lS7Szj-OX<$lxoirQ0*t3JpW+Ng5E(1SMV&28c*fZ=93dhG=LbLaj=t7k$+uN6# zG2l4dwEIgjG^S$hPisQE8V@1Rty2+Se&#!*rD0Czdk8b3p~>@a%k|Wlu#Yq_-{Mmn z&>%8W^U)$go*h-Rbi$|femjoxx@c9K_gaIv%v0220KWBA0jkz5nX0iqS$ecYc-4a; zB#ciwlzGPie13$Aq8v$^?%z;l45)erZ}&Gy>D?9VL%xy})gLDm=+%rVk$H$H%__iK zYQP>>hBnMR)D?d+L_03~qjgGE0oCQT($q-V#ZYlA3*)QoTK9g{fH z;oN3iCmrR`Ku7HO6U}k01Z`uu!T=3=dIcJ+$DZ*0uwO||?JL`q&-_VdpXgTo`B`K- zf)UgFg*gOxM&1l8mCE|y{!ryJCCStmZmYwvEO+X?mqRY^etyd(prp_Q_9cQeVN_)* ziWf5LHa-$)d0NQ5DoX$g`G{Q&+1JQ8N)XRA4agEq06U96!lj0>9|J6>uY^}4`C9=;&|1qJ8xSg-)|1@4 zYpcyP4{{>7ASpXGgiYhV*-&QQzF$;Gn{^x(!zq4O8e`VYzee4jsuCJ{emszA z!!%>_V4Yc-8TZ%R1$NLoWnwoIj|iy|XZM;9xYeWL7~f-NZz-(q)H9E6TT;jaEJV58 zQJk%QYck{8MtQ`vHji+4?#$mcU%w}OrT>@g^K4ap< zmj$Ht#}4-nQY{+aUwvX{FYQBQkfW<~f|;}A@CVAG?R95iM)H*P`&l*KMgee%BR z4|^*+n*dXLkj}~1jgqUKz1neIPf`vJhEAEZwk)ix2VovlzXGVE>8X0L<0AHx=zq0* zVl~3&DI0+M42p!JCkYEml-YpQx$u$o(-<@Xdg(UQGB%f?OEKLQIOLL5nlRqj%AjSa~+e~nZ{ zCNFq>9pEb>L?yjQiBGZh-h?BdN$o5}wmE(0?Ma!#g)+HWe?|$e&&Lv6!6R`JZRzpu zV;U*1X8u`{7t(%8ca_M|cW3&As3dTDm{-&3?VBS(qU}OdaajH1NdUL1OC-bmNjOD_ z2r!F7lF}ZTz8>{~ab*{8}^8&NbZl6=F|HHf+gL@pz-Rn+u_Tl0I_YuB1AiIPGxFX zH7J1dR)MU-um?KNL`Y&l&(#*m-D58-lWUx^^c~5~l4D8zgZg7%m&@6$irmF&q9{Fk z?vtM$i;tX`I>{P_1~;0bZbcDI3p4XvdvVRC*DRf7)@%;k6d8K> zO!&Tu0B;CrKbwF%No)R<6&GKxCE&4{Hn3<61E_j&M|dDRZ~+rfg&^b^L%71zm_K{s!1qiHe~xzMd7%&D8q!Sk z^{d}fg#C>YTTU|xD&nwT4Mwj{MK0dE{2Kpih#DJm?X%&+>cmvV@6f<~RnK*^aO6gM zEDM|UfM1B^4~ySmJw4cvXc1$$i8f9@t9eGTdf>7@G>dD!LDd+kUQp5B&Iha0u^5!E z&yY&xxXM)hrQ%#T{SBY zxSUl`lWtS5TJzO~XHs+y`1bVzAOQ%w;o>p-eB#jZqg@$MUX$Mzd}fX?W!4(+&K4N49DNvACTuio4eWpWXYYAAdgJ^M^k%x;FLZR|M%H1dFN@e|)u z@$`&}T}5mbSXBHlxfZ+n=QgEgXqK*-J_R(dvtS)XFhniC zLoJ5js8bbtsPs47ENe3jTi{Px29h{T&;kt;J{gu%-PIbX9L4E)i)Um^yO1T(n#nms zCqVb+e6;Cz$)oe5&_B*UC^=T5LCA})5%#JtJ@nqeqr13$n02?D3YX5RM2F;&WZ$jr zT6#O*0XeK7ZzHJcs=jBDf4a8WY;@Lx`?uthM69pU?_1+}1-~M%1?Ib}%x09E7eB)s z-)z)t_I`9rtR+cwOvz|yc#hJz*OTVtlWyKiuwF1MpPb|UDadQfTy(A>E}HMNIwddS zctz+E&faRB1ZD5x{DiMrco`oEIA7+ZuGd`>O+Bh7{PsW6kTV&g z&R4mYA&-&)ZevXU2P6<~NB{G{-~STCeV8Ff+b^~%!vndkf1xn`inR8Sc>r=!&9w{l zN@yNS8oDpvudsFlb+Unww8|Q6flO6$_LD#r@s>$p67Mf#9)2o?i2sj<^%Ro9N}MM_q_xe(c8oe5|irSwovYX&H24*xve&$G$q~t_w9lPUU*3d z0w#=Z_#@De?>xS&tNPz%^dUo<+TPwplDoBJQq9% zjv}Bybv@9t`L5ZvSYoUG@87Dl~y*=tc zR~5(z208Jjz(vYJY86nX2KUNv4fTV|wIL9}hbw@LFbKL5+R|`f*!+hJoF$KF*Knu^ zNlsKjC`TPghmcw!We<@7=#e(F>TfHZ38~o!?J0Ksa6(HVn(f1)2nA#bxVnIJLV%-}kluQhyU7PMe zKIC%Eum0e_D>=qJ-~L+Cx;c_N@Q{tj6j(2;TI)b~v*fs?yLNSJtRVHPj{dr7t-?Q% zT__?|jtq>}pLkrh$9Vv!rq}RsS#=mB1!<*^5y!)sS#CN5jZ1vm&4l zgUnKG0Gf^e3#17;YkB9x{{8!L5`Q4jK;_7l0AeCYnpIRb&MFdwMpG(h)pY_asexb^ zch7Z064z{0kU|Jj8xj2bMBt?@;PqHx0EyL%tm?-97La(gCD56RNv{}*1~^I{k7F5t zw@UbLJ_L|Y@{~ryVj$^G)X!Iz=|96*Hz$Bf1bU!Zj>vP5IEZ#3x___1V_xmZdlMf4 z+vW5}7rF{4fOC(VDprc2a%9xwJqp+PcQn8s^CRNHMDK%(5bZFVPzAb+zi&GM9Yo8B zO~wl~mc!YL(Q5o4v$V>~ke{MK6S(I9mIJBH%-?r_Ae_UF+Qi8Jy7)Qqgn_c76-*Lq z8#od61j3_de%PYG(8l{tEQ(x+s{ydm5QNIXDg7a+Y_@?ijc<`}sp6&oc_x3Q(kaj! zR+YeF1X6;(_qLt%_Z34S;~Y^Ge(1yik_a&J{&6MXRe(N&}i+>&j6IsAbNJ({2%Z`RM3I~K5M3UOj-j=fi^L9*cPmd7(k(` z%bc4%3k=J^ZAk*A4a-Mhc47<|HTmB&W<@+`zVn4#i*2E}^sN9(LwGvxX5@qr!Tuts z7w7z}`Hr&AWrqkDF$D3EUjAYW*Zl7$u>Ap~kPEo$24)1(H;P>f)SxKQLx`anwrAUL z*jWl8yATGkJq41=Fi=9P6uWlQzV55pE$^;{8D>J zTq*i$YGmL+2UZCr`y zkV9%2@E3WMU24W=AV(Hh(#$3#Ko&V8k$xE0oVgU-d9bSBG(#GI>6*vr;r=()EouJh zzag$CNNdi@zf51waEbXw{~H9U|LR16=Q)Jf(4BVpR`x^fyes?Ev#61dq@YHMmlc zhRfC=5d5R#-p&L=<33P{yg185no zkkSHa5G*cMxq!+hQD?P6 zE})r^K(>GMcl#lqc3AC94l-$XRZ-?{boR=bsD+*Y{JSn9-ak&>?+ReupYf!63IxV~ z*SMD%KcM^vBrUhUy98X2U=X^3EQ~4j>>QJ<NYou&FWKc&Z)Y8euwR?5O@Q(^I zJq*05^sP5LhX1VIqTK&Yr%rhnK)!=PHpMo;z5>D~lMo)jOm#Noaq-;%#4M?ljL+>K zU2b_2y#IML;dnnDaZnSe0A(ge%~AkiVT z{2L3)IUVQp|EuQ%=!|7(s$sCYc+o$t`R~<+{s4PFQPb_^&hH`EZH271dL`X3ALQ;# znu40A_*>?IY0K194A~6~D(^lR?k3v5|1lVBr7I``|7$q@XZZc^U;k)mZ&La=>GIzr z(?|9$#nPAu{9~Lt*S)t|yrq$4KuQYV;R`PaM!yC|iigll0Xw$ahp$s)zUog?{@G%G zqAz`M0uYnsX-n43hmbP#XGsZ0xHK)IPF3!F@RaSz<_P2xu09o`?%)7h|NoyH{_c{| z^x#Um$|e*3yOKR*`-h^yW#?BI?OzLxwi}C(pC_jR)4%KD_s2^B z$n)?;f!d>pCS|VL*TP_j;7kT6wr?G4Y^roT`2Kdyv^RnPw?}CL@>Uk)n016lr zh@te7z<*^aYDf;jcu8R3uD?L0&o9Ok3jaL;N@U<$eyz1#45mC(-;|n#r9oNzi9nu4 zbqNBk13wBHutFW>JP1ZgwqBjUtF_rD!2nBI@)4Pf76=v+WT`Zlm`P!-p0v*FJ@ zNgB70sedsy40Z&<&M0zn%ZqccBcMa(aR}K3o!~iQ+#aCSJ^AmnT=)?2g~hihXBNW$ z?fY*KAqgZ{wY+uSgzur-xj3M+Q7QAfSxh0FcM?GQujnNbEMxo+X6F}m_278~$ z57E`7miKKSD^3K?-6KgtCG~jF2?f}<>3Ni|>%=~n39yR%d#S^$=rmv2p3WC)RJ+@!1eXl)VMNcop_^PMi?CWTR~w9|BG<| zqJ8ELzRL%~hg8JA|F^Z11^xi*2YJ3qGT+#IKlu8ySXW*o8VpnIA_IpqRgT6e@C!22xZ-GG%`Bl-^ouXmdu)FCYUn1}o#L%Zajokl#Y<&e(lxy2A z4BZW)v>=@V(j|&?!_Xxi(kToeNC~KrniXn^IZQK1fH6y$dttO zyLwCor>yx%;Q|B&+4@i`dIDepAJK$gfSq{%x1a~XzsxakhyM7DYPEYn%7Xl#&sJ?6 z6(j+RxqTlm(k%=23eMjHBYA?hKdan`_LBnSRlNV3HjPE{C4Kzkh?0d|mc*49+&JpZzvHl% zBChqE`N};xR4az^&D>P<;`?o&m<5L?JWyLoR9Y@)zbQdt#5ON^-M9guK}%%03SKfU+Z>Yby7 zbCfMOf>q^mEQwgygFwB{y#wCeqXkA2VsZe|eB|Ir6rhh(`cK7FD7y$+BmCC~2Y_RN zVc22bu*ZRDpMV*6kp{LqB~iXI1X|t%?xoJ&4-Y$mDVwspFW}5>EvL`CHdIJR3TgqJ z$1ZU)Ly*y~1Qq<>b2Hy!nc`W3LktJ7Dq$VK1K5$ZTcZyQ;3x@&qNzm%iyOBJ5&Ocd zJrEiB90XFUaY8V0K`~tKjL3Whs7YT4I&NWU^HJY~LU1WaxBgqkYd;Kp@Dp64(+gez z+{@O((wQx?yYP6FB|?7y+VZ!+z$DD9^KB@Y`-&l2Q1D?%n1KhD#EGi$f%Co*^eBkL zdRQlD4W`UCJk0*>utp{x_l+Na12>&n{YVg4lF;qNvNAMG6pBW)@d8r+b{=e%4n)^} zxt>8=4$b~=TM;d53gS(y3do8)z`>KDSJ_!uj$kO7L4+#XAy3Rj4SNt6*5BZ8#3Fx6oQUr$IiekGY>ULna;sAy^_WWh zR3$Es2u^zHdj+VE4%AUlB}|V|5)}ST4-=~wHA)`LDn8)73)+-K?5%Sb3XaYoViP}mUoM0;0CF}Vvqfg{dxk^ zd#4_FQj2nrnD`+VOLcmHT)Cl5T5b9()jBNy>Gft^ObKgI68cv|5;HNJgTH*YIjep) zf;|9BneBH^eLR2m@{`~rw*^}Xm)BXAF{ir=5~q%vr|ziQ?G$lTYN`N{#L;X)DQsF6rYk-Y<57E0E0AwLFlw3c5`u42!Kyn+AxV+zdtl|yY z-%cR!vb)o*AXRDlc*fWvAz?+J4?62XwqpbYv(Ufw`o9+&O9H6%;2%d_5UWs484_-J zPph2);~2OHcdg+DmJiLL2@FuaH=PAb)0PC_-h@kT=n$ed9-*M#(65r{?3KX+F=m+~ z7#PB_mb7&4BhkZSC`ql+4FtxGi!naF?*(3^SrDS}(tW1Ev^q#cPAsN-?-8?_K0Vwe zat{0Ie`Si>FVXOmS=9PRcu)#(0BV0U>CbQr(8;z>-~;pt7OEf>1nIIeO*P8ku#x(7 z3#_|3K@~I3-*b8ZZeIrvr2b8jK)!tsq;(BJAokGa9@fixV3{0+`ksx7;<1t;_QS*L}>W8qzit=DIH z%nN9n9t%thF~?rAXY;?e2U<8c+=dPasXmN=4@+XD@BH9rO9)xnJnJ)fI zBlhY9AdV?W1iW;Poq+KZ3Mi@^Cm=x`6vmx>`Xf>HdHLX>iu{1DuC z0bqu#9EW2=I8;6`7s@|CN%eBb6v9A4;YZIVeG+;R@)eyTk50|ZJR_@xGg z8^1Iro*$cU#<`?c^u92M$nW&4aM`_ViwgEuq0(h(PY5zvQ^GArgs>r`5jfz)sTY4E zvu;alU_oN4b_)&_FH^z;a2+{SCebKE7+~XyQt?uHu0ff@(}`rHjT=9TH7TttLe^({#CqO*TnEcOjLg^nlK2{elnTyG6d{L$dCQ3yF0%=$Il> z@)3RKsZ0MsQ-5crgEeN^J7aXa^)s0neCkH5G&Zn*ow{3Zic=}j%S7K@&Ycoj!xa&p&XmX-Q6A3Vs3M|#Y8dT z#Qm7`rI(Tb-I5Xl80Z9X=+q!^iVBoAuJ%o?1mjQs41>^RIVD`(K7Vz5#0x?2ncWnd zK(Kg7y13uWT`q8v7Ue9i>|-mjYf>+30~i8mb20?77Qn?wYYc3d-P~sXIeVKFktoWi z#t{9h)`$^kHH7isd|?oi=lyD_{p%PgI&bta(L{xc>A_cKS$d~5EF!$@`*nR?o)lv| zQiULjk?@Y^{j$u9F0XJnq5NU95pI_Y?#yFrQS$qVpsMLd!3>64$sl!!WYcBbW6{m0 zgN*@CBDO@6zWo5X)+Z*l?0&I%>Psx*wQ@XOBbtsxn?*_-Q3=Cyp|NC9 zwdwPW$x@;hT7|B)DpAGbbln-(LanlQF8SPUk9oXsYH!tpU|L_i+<|5u3pf8mqi~YW`Zs9Kp?Rd4r zrc#m3j}9$8j!E8p19K%qZ;+bX*>-!%oof90@EOVEVKbpUZ+@?vD~vu#lD!z0)g2d^ zqs-eVom_(N#XFXdUyakp0AG__2Ow*y&Y^G7$k6{F0xkL!0~_OA!=5SBEh_p&T83;- zfA4l5AZmqoKWTke{*Zm1$18LV^~t%&0nWa;tw}eI+3wU*~_Z%`d>sjNFCc z6x1J@wjy7gLw_Zk9ELJhrr| z;@=+FfoK@sZ{Zb&@l5@0Fh>g`9BVVI*!5`WM`UQC&q6(=MPLBP#lx1oJ&biUSNpWi zl~h%8uoC}PpRT5LG`kT2?4My(-pmfQYJzeW#iZJ?I^d6&NqOiFM#5wCH

3kT1ETnt&G13G9KTyCjc>!ual{~EN#ROqMLPk}9rkl%19RhB5ax#P+E1Zdtxk2iC zw*uydRffMOGHFl>V_=h>m*Q5b{HKTQ4`CL(M2A!N?TgKPs6G&qn5&1bq26=w10QM! zVp;&E7!?P=wIZ2GfkN9X)B*^=YLKO|>{6@jPXrdI!#QAMBr>`oo`|6cm}$xVbRSb5 ztbCbM_2b5a3*zKBG0*k5=ZejZVw_iQZmEM*mJL(4a*1qmdOcf2?_|f&N8XDaLj4R0 zr#5^qKkulkjSD?DVEJB1Gv@9bgK%P>o>$Z=^pW+ao3sjLZvbq+B~cX{DMn%NevX7? z-Sv*ck3%XSbWL5(L&EDnVf!Gpqg>v3y~lm!v*$d(!Q4nZOh8Fy< zoEiW&TYDc^zk-GM`0qS!z!J~NK0V-S^HINMJ*is|(PUovQRoHclhia9=a-M1XMQ-N z5=xtXz_B-kF1ZG=>PXBnB;oWB#+o^1SD_YbFMyl>H|VQy2*eHo8#reH0st9%`@rcQ zqV{cw-s1R_g?Ap|*91zbIan@YzKxh3SRLkqP}3~kGGjAN6nE`YjJ{b~2_Qv;Jp-fO^WgJyQwLDL)ZrW5XL?wv^!R#sz3`?+~Ab!}M)`odQ!C)G9TjP={Q_BONy#A6g$Hz1*!9Ie0K-7Z z&N>MpW1EX&1s!Y%NW8B5w#uM|T2POk`GZf-xMaPe`B*N1HY}xx4Sm>IFO;xO zHABJ-AjSj;+JA$e_5xwh8KEiNC1~gI5EyVh=x9;)^BilZAHjA2d)^F8fdwiw{FbH~ z7}VI1QQhksB=QSS$fwvD4Pp4Gw9zbu@2I`q$!W9 zUwrb|ngdWkkE}Q5UUE6ZE(!TqLD++lZ07S}zm+d>D%hZg_Z_s3Ma(@_GU0gtD2a05MKLk`Dtvr8`{^P|UaeMi4^_dqVnKL8&J2jwK&O zeS0+R9nzZ+XoDZ<_?62eZOAIv%teb`5g~4WR+uHRz(VnwfB&_zx87yB1A(A|X@ZKI zVh!lyQavg_4bkMZ_Y|u{6#|WI2Bsb`4uT~HJl=KCuF-e`cR)S4;$b;`&4S#a=VD>~ zenJMAX71DcpvRZ^?nsB{sC%72LTUBg?9)LfS=(n7MxG{;W7DB zqdxG@1_3KVAL+|H*f`WuNau-v1yMj*2?=gQP(QjP0LB4ta5FRwLKC6WZv2ADFM-T4 zPjA!BMp3F&;ahk3?Ln#lSF!6v_6s~+)p0U#SyTy6ZUV3@_D9_-6FoxvKO6>CUg1&I zV8SP02!K;7X`-)eZ-zv7tK&jcU;@|Ub`QI$L3o!whtL^7zsI9ZRF`%gZ+ zsgFrshIk_QN#K7bK!pB8B)v#Nt*1WZcONuI?JdIG1$HA&9K1;Q5=6n158%%cIMlAxaXU^%CK~+5FuUdOJcN*=-`WU}PBIDqb<<$N_UPj!qIJxae)Bg0n2XK&lVzezo=qx1 zG%$$0fuOG=nb)EN90@dtF{SelX^c>iWDIgL}T9L1`%5aV;Q&AGf7jYh{M4h5&XLqhM3_T7sqQ5*-$|c zM?)tFRE#u>4u17J7l;F0cCWtr#l)Z81Hvs_dLNnxH=YNE}AP+@q0W&oeoh<~tr5xD# z8#H04rxl;v?l+8arNCabUKS3aZmU%*8(0uwpT~?x)GTVeZ}j^1j#A)5;+^>5j2_#! zyzz5`n*B$!p2MZ<@VxP5U;(vq2L9xuX7Ff4Gm+4&l)7{aZflYSpLJ@t9tG6tQ^9BY zzvIedL~TbINgP!_3-R*&)&S>Uoq*R#vk4nDBC580pR)COM$R>%RR_LI`^3rcVtzls z`tB3EKWBFmauc|~)ap=kNp)$*cl}v^gCzjQDS!b;0K4orDL$rU=c;dQ0I=j!P}3@J zXhrj9xO}6u;gU^{@1TJ`FA=G0!LZ=9=n5xV>$3xL1)ja|g>oLQwN>$phcAx!e_<$;4t|%BO9D0JnF@EKt>`8qyA}^u?K>;JY zTJ%h{TQVOJl!X z?TC#cnstQsbl>JykqvP~|BtUEwN7L#Shy5dkj<{#-)RP$3Y|XZizO-7N-%O~LeK=d z%XD`j2LyQTaP*dHB^a!G9Gk1Piq zo>1+xXJ$r~VBObk>yK#L5kG_MM&`6I%k@9~4wx&62-2fG)r$Qq_rak%a0(~L;@HVo z^Nc(A!FB4x02ga4JGLYCB_IdNSKFx<^e0fgYNU#PtuYj|Sub&WVNpZ^6nqQ8a++t^ z^)-tUzo3eiFt$dus_TeE8F8PI^gE#HeUS|x)XA7iBw^uJcTS@6-NuscBD@-(`$cv{r)VzJ+=Yo7 zk=!`w8BHTDVp=nVGWpz@L^rzqruNaI6$f>tt#tse1g>OT-PsH>^_JIEHtF>Eqg1=XG|zl2OkEqqK&!(#R7=T{pi$ltej=7 zV$AmPckFIJx(RAh^`_&r>tYXCDn(?{a+QlZ%_zOUQLP0`fEdSX`n^P{hGnFmY2RC! z*Ht~$J-b4~E&9k$;-JZt60f}x+^QlEJtIJ1bT&cAl~e5{wg`&pyJNBYUMFll2OpIN zYk^Y%4I8Sbhido!_Q+noJ=pr^!tQ2ulNiw+*+sHB)FMWX0)5{3bqwW zsuT)DVGW)lE$}bhvE1>u=GT$kX)#eke^cJ840k@Cv}#*Hjr zI~?cIUvb0!2DOgwowi+-JkuOQWh$1jYu0hP)ngpzOwQ7spPIy|vFtT_-%zgZp6^cc zr5T+sZ`smF5@W*tEYo&^j+6+DIwY^TLoFF6E~I7koKT`7QXOmc^p@C2zavWT%DWnu zsu;gL1+=}eYYl|kH6;wdyAuz@2NZ*95he#>$c9sk47)&+Y&|%~j`9m3z>Qd#<77sO zx0Ockpb7B?+!EgNREc|Uk=6lu^6z9D3NBfcQWty-yDMQH!$FzbaCu8C4@CQzv)|~Lcyy4*a@fOf*HeZJVd##x0!quh2TT3A{$Mn`cHeQaJ;;+In0fA|<30Z#=$Jg6szWB+r@>XgiJ(p; zdZK$On9aGn8iwlxa!{}2fZ{OEmV!&2$O93kNUv{;iTlOa`77EZ^o~%LAegl$sL}Li zvJ>hMWFP*teVn<6o1Hf-PErvl>Znf3&Tk@d+Q8}>=*LvO-LA$FV+{X78F4Ur*rsZd$CGqiC`8d zZ2z$=S-o{G*O_lpJ$8+Ye&M#zKET&&E874!1$y&#F~s+sC&ZRnZM{RRg*3`1+{TsmqOU zL3|IX>PFkUxIP!!Kj&=P@pCiVzje}%dYdL@t>U|FY!_zUmPD70FE?b!ShkKIdwl*k zMP{ZW6fORz;?G8P_CFt0#RG**_T~P*kz@zGpiRWOw+p zbG^)&sAj~M`NUo>v}k?pOihWVSxePzux30kp9C~cqsn_l=FI-Yp?aQ%RQv)-F2##6 zyx4;ug^*rdUwma!rpi>DgVXQXF2UL}8brF4e}jA4;u=stjDJL%R-8O9dZEl^?y?MJ zX%)JcAWNj^3R+S96la6`B|FouBD*8lGL;Bdj#S;bmXAZMnz_(FfTj>hO&e+}U#;<> z9N!}Gw_-R$b?!A+qLt`HScc7J_rR#g zJ7|_shLnlvOAsLjZ*)Y-mw-y}ZEuDsn#{#7saztQYyFmJT+DiI-q(%NW21`BJ#!Ed zUpZtU=GoiaEisA-hIQq>{yF0|>n1kLgJ1l>i<_IqgmixT7(UPyWZeJ2#rdbl{6OPnr3P=U##IcDWj(nAPGU56a+yv z$sFo4O8$AdoV`G=tRDDL?b~vo70Efv(Ti-TP{fj?Xp=rDb+D}lIeC0&TESmcYNGJz zs4_-W8p73(bFX_Vn}t|DTd3n_3FvCiik%C3Zv3df3D?uFOzVm|D{mo%UeO~Wav$Mv z)tl-W?N9X0Cyg2}-Kbn<84_i)ly0U?r<{N4d8!9je)cIgyCOt{Wq*EF!>Ff85_>I< zC9t+yy$*J~cL)4it+wmEnRX8?&<#}YR%()j(32`ZuXC9n|96|-uHLA;uEw*~{WxU4 z8N+bE7~pLB9q!oIQ0*59Z-{Sv%-z!cpB=g?u6fJ7NQ@w_m0w5Ea^9oWsoysN{zkPe zKU>xgD@ZgYH_spJyYJB^syo=i_TOBX$&S@%<}uZuu3a9`2Hzp*^bIw?ZP$sgZzx#C z19AtPTO4Ksg+?9EcYJA@c3g_{o;HdPpMe5iJVNHVC}Sk>@XY?8lk5ez2@uC8T0#dXH98%P@fZg2@MZd!_Ea!EqFH3q?^^q97VByJyx@w8pMl{;{x zmA8znq^pYGlMLi}Qa#R8-?$3Wn|$FA7rCNLvX@Of4@8?PTp)^EUDmRxqIYdCGaGZbwHN`tIMOE8mVYG1 zn0rb^g{w}tsxGKU@l}5mj7%o0)6j}Dx{-5v5K|x7;3x$SBQst`e34Y}PdsK>s8L?i zFg1>rO^f5Ds5dHB;#fGUAuL;!_SX$glxR^j>MPcXTjdw7lX}*l-~@XZIEJXjjEf7z zwNT_v>?uI~vA!;MU3W=Hu@dDyeiO=>jyFtL6b3y*U5k(-N318>VaPbjFy>TD{xA7x2|Z*PHi1MrX*#1 z2sI(7^*uRssLFFY9(T;g$*d;%+Cv_q0$$o+QWp5{(#RN8rkD4lJfYkj9k@MY*y^NK zr!TU=#kL^h^0H37NA279V`xPd)$;wxe(oOKBBifniYhKV5?w(PgrP`@bG1o#_J9|Q zaib>bdov*||HE=t3JK^Is3L2UDkrZ-o#B( zlM+`pXfGL<`Sv-Z`Ap;NzwaG6LQ@NVw!)gNeE~K#D@vi5gSwFAe7NY?+w8~rt!Meb=j!Hp z^NKD+hecj=_gQhD70Ujj84D;umn-%DdzO3ll{N+&ZBkihk1w0mX6gJ|{;liK$u!z) zn;eUv*g$)|nbSY8@A?OJ%ECkT`#+y85$ye_km`k@-qI2trNeiXZmO9{>u6JwVrM%C zmz_d{9kYEg$ETokIb!OsER68`zrhk+yz(I64wOZsMM)b7Ox zC}lLGZ}eLS*Ks}HlZP0G>pANwNI`?W36h?7%T%1?4);gJe#Jrmesk;M6?(7xsmN~q zeFYdnW+xrBY2Y@rR<4L@?RN6qt+YqmF6G8ha(K#LrLk%WJ;pLnL_flIO`o5$boq5x zWPNR?|Ep@L6?MVXhaVZ}d|4B%<{apAJ6q-vv-@?rdW&-64}^PNgvT|4FUPuXmSRd1 zJHhnYG5Bq>wT|7)cRAdb4?nh3+Y3N^5@AOJ9y!nC+$P>3k?Yok<2uj2dmxFbzxm$( zQ9M05Dy32kIhL|i)Wzg{r^b`^u%HfipX@*N>@Vl=9_}b&SSwsAgt<4clfJrwnw-_Y zo?qummY*`&Df0Z(vHHjo!|Ma?yJh?eD$uF?zP!5eYf18dOQkz_002^qIlw5$Oo2^J z*375`Hb!{1E2tAj^MqFZ3a2k?8Bg)!T=jo08YCsIbj_^)h2v^(a58K2gp@dE*;Pcp zLzz~`S-7kvUOd_JdDgiM>nVInI$+rNoLsRkD#P$%;Kom^dvs1?UXKHD{_4?e3TjsP z`|PsH+S?+(kLndKP25X37tA80g~jHK3-6M4aE z|J?s`kssEaieJCVbl~#7$wy`XeARrl9`3i46J&$TCtKwGXpwoy{BpAFdo#RVI2S76 zMDS#(^jzven5V$5ZrAr+ypdp|WC{O9f2Hw-`lF#d>VY14G10!{sRW;%Iy^7YJ7!y2 zg{~>%k0O7kfaI|IN$thae)f%z!Q@(>KF}NQE79Z!J9@f!1splTp_85IvEm+|s|!1c z#`z=d)Fz>=cuf`Fk$c(F=-QVl>4ft{Gl6J2`3RKRDw|R?Gc;qPm3O(`#m7A{ziCGqjymyfhtSRvswEH~jlK(KYsA4rFgC;Y zLI)sphrBNk@}krOe0H%ZV?RgMBwJ4<`~9Zr@6_e40AzW);rT?C!blmV!BH7qXMm7v z4+eO8gGags%j~OS=<7i8HSf+6EYy_?O?dg9ph#r1F$h_aW9KD`Pr9@PI)-riRq%Q& zS&um~5$fb}d3nf0zQe&EwcT-|6X^lcYS<=-5q(Sb}Qmek- zz8?9iF*EJqp49kmFz^+9dZ-`AXLzS5@%$Q^tL@ZJ>G|De(tV6fv6a(cS&f6LA;rE^UrM z&WW_{t#jArSC!4j>8u?J94YYG&5;DVvy(YLk029ziO0`0zTsg8maomF+(BR^whz9< zrSx$5D=GFjTiXna9rZp`4r}!O-W{PV%7^1~nb@h{$Slz)BQ$(RH6s!N79ak_?>w;j zilGu*7=a2=t`JpNBs?i7K-L5|V7)u6TYN5_8h|@iE(k{^ zWcHV@yEBwU&BaFdk#%#s_H|~R^Frwebv5gQf-w$>Ol5o*H8}=pp175&()~KXt*`w> zGOKrf@_ra|fXLbru;K;tyV{B0%wyJ+zgrUX_5_2c$G^wG1j2TmFTdZEw1-g430Aub z|AhPrq^_iRZ|%eGni@Qp4d=96BqoU{)nu!o3V{_Szed>*5 zi1E_d`{@4I53g$G$DE%(IJ|aannyhwIqS!{ZC$^4@qk)7pyCcPedcC7 z8+g&2w%svt;!7hs`bmN-)#(C$7j2N?J6P}0%Ph2)XU)h}k!?oV7JcJaZ zWi~3I#$6<`d$)(IzlYQ1xG}7LG1>T>?_%3lrQvG}U$)_Gm>FIgfp{N%=^K>0&QzZ0M=&XU906%O0dD`;%<2OcvrFv?#G+?$P@hL5ks7YRm66%u zp=?rRZJNK5i?eWq&dx_6x}>hJgN*olj3Wv9#26?aH?DXiN_#&73Jq%nSI$QpG#Fz9 z3aUKm_Rj`6YL9pj_Suu6sVXiI@rJI|&MhYPO}IQ&m-14(1u+_I@T}@%(gJh3H-jER zq^aLS?e*D+ox9a0i#sCm=?-)#!d$vZMPxTG%~QV;$P^!q$jB0xocs(3$W~Nrs{7k3 znA|?ujY5f&C%vaPle5^qCkl(ijI&ALcrvK`A(#B>bUR6Q%2u8f=@BAT1I`=y>Z4F* zhAh1#aU2 zD@?E$W|QZN-a87}z2COPk4#B%7}b?5r@|QsM8l5AOL~7+tR%2pDQ7c%4)M#~(WD@1 zrXs}1QftVeiR=jZv{XZ)A-P$f?IA820OmZ^SC&znwdEdL{VY;7B3z9cDqx~!LDh__ zQ>oPbRlBIDA&JFXDH}~o(Vx|l4O@@%#sy|NITVqNTm&n)MhtEl8<%RYLe}ri%NpFS zPCvtWsk{$oK`L+L2rXuaQol%*b#WsOoh6Gf`QV8gWYaRb;5IT}wkqB?O6>(gF_5); z81wOTIcr*E$47#TTGn&&2WAupmcy{*?H8=owc=%^^@-6WCdqT~W0q(YeX<1cVIEGb z9`j%1SkTqMk48}dz&To-z;R8OXqTKq7%Gs-xbLTQy zg5f>;9z5q#vmZnN1zB32bZ&;;XVc2Mn%I7qXU5@h8Q0$HdBw+x;n2|mVfc7j_o%^! z|I_9X;&OP48lriS8IE^shIL-VN*Sbhz9JoGtY*S8_UaUmlq?Z9%J(;X7yIm_Qx&uk zvwncFUh5Yjv(6aVP~3vE%;KqCj*=uqw2l9{$Et_K$PV z%=S3<$X;K6-DcNHx3YgKzR#r)_wb=)^qqhrXH9&?aB1Fh>8j<7ve=Xj){`v% z``ztl83K(NWiKj!E6uhM?*=R+jE7CP1_L_1WCM_nvbjpeoAl8-zCimgt-P21V4Pzo zJT3Jfky-#!j~a>MVYQ3q72)#Zv8=S#bZh>r;b@?3!YAi{7DR?Ohi7&g6nKip!6o}4 zP4D$`zi)AcSq%ri-A`U<^CFcD)c}_IJ*$4`qpzb8WwYM~2zo5k32<;X2{E__mWXu} zBSRg0k7EX-2)1cxVPFieG})sdFG~Jo3CW`!@)M8&=XXY-J?*2IWmJ2#_%sU2k9D4u z=T9ZJ3wW36l{!X5xmDVJ>%ek}tMhs8L>;`#!;}H~(BPy_G&?F%&JC;TMJzPIZ_;K} zD)-P*(9U$MNcN`6GvC+D}z-otJJzSe(-+MsTDmn&wSBld@i`sZyoZw*3a7>E?IsowRlf5#3w~BO zPKPBtNoy^StM(T(mcKFRky7ZjEa-0+`s~7YYH(U8{vN zp{-}^4()Z@u)&z%f!pi!o}qJ!6bidxi;ARXQnatiyHhgjiH#*C=kezpV^faGb3T{# zoO7eL`3aVN7NkpWfo77fD;CY6142K!v>awkAAqZV_{AJfqBy3Gt9xj#eFcGL-pudA z0(8~u>JnPR?tU%!2g<9%?WyjNq`&89LL!61Aq?`aJV*?slqkhT3=C|MO9DG7yiNA? z_KihNRhrXS* zUk*bhlmheV|Kpb+2#g|GuD!H9S{MnC;E2`2Ey3Aw1~fd4rXOWQq&G@-o8|E%Nt|ogwl7fVcl?1!BIDdfMD%} zN{`zIjWk5#o;mPw*gFr;j7%wDA6XkrZTjUuZcK&`S7zK7UmJ)D3v7HaK^upf@FA)P z%`M>>TjqgqRzTgzJ|XtR=C3qqOOf-cr$!3wGM}UtxMXljFZH; z@Z9{4y0wurYT1sxyO+fK4nhhe45ycB=R(JgB9h8{j~47i!MSnN9qgo_tgRkg8mj~& zE9)~HnPA7h9Ot7_NuUib#oh%?mfJ+07PVADST%?G(;!N&Kng78a=QsOT{LxOa(C5) zEH-^l<_GS>FQq9;oN6++jfw!b#xr$g%fIG4^MNr=qiSs?jtuW&94!%X@~NU2C>aDem^7`gj2)&5hvmMQAE z(;Ke!xgl*L{wIzC8+^m$+{Qb#+P$nBeB8g73u>Zs*wO5%`KA7|NX@8UK_52+3El`?k>5lYeZK(72*He?oV zM5QG61%?Bq#89=eRAEBLodlB5A4X+3Bdl6==H1vuCT*=aPU?T=&*mc$@WZm=F^!13P5SxQx0rN+NNp!RzyIm1VbWR<#J~9;zjVt41{zh= z4;nH;VRwLUS+RGD>=I3C$coi}pRyw)o2k1AxP=QN4Z}yIWDeZZ!5(K?&1R=3b~lt;6Q+PbHYcM~64J8Emrl^``VFy|6b8D5gvA=dwxj(y6_N_ySyJPH5_88}Ln(GGG}%f!(EbdI)B$?7dH` z_RZ-s_Z>pH$vO2`Al`Pb?$_)9u$@<%SDU9Z_R2{9tEjT}e7vbOuMMLi0|b+_A@CN- z9*kaU9j5s-;kMC0OI>wcI@z2!RjfA#+*+0)qlGGk<<)EnY(gb{P2UAKuH5$uIpzTo z<%{qQfduTL9Sudh#NbXc2>Jgy4FCQ%$N?4erzJ|)EGFH1Q;2W780_}7uB9T(wp2YU zQ&UB_`zF>!S)kCqhE2PW@#nOg2qtNCU|~@~RDsX&TElQG+r!P84vMWcXaci-ozt$w zlL8GN<$2c_TFC{8n-fi4n7k61_4uy)_1UhGw;BOIC1G!DAk9bc#?}P^>t6R%oh%yR z1^{%gZetzAnaLU3rn4&)YPwa}(*?vIAzs)n7X^*vT0fu84{eFI0TT+YcX@$f&(V(m z@Ke5_{ti2@hoBO^AV>C}D%G#)3%EJeHE3{!r(XGRPI;B(77B!Tg3OICVV}v|buRR> zLKbX!KQaNW-S0YL*IS_Gt3)_6h0=Pw`tMoS8-#@1L`7GD4Z&or zZwLBdL+2Mk^r8FwY*JsiQnhLnavG=9J&;1}PUsqBBZ#pAv_I288YnIRI%;V7(1UxU ziA-xM7%Wnk`6fZID8vH`FR{tkR&MF!8$*McTel6gDdHjuP3^RL%fai^qEsC9Gq{&m zvK0=b{iPWA2yOqj$U(BCYAju0Ql#}!_-{AFLk~_KOHb_m z$yZB<_yDtsFF5ZmY$pn}Not!qWKY&VgLBCRZJhHQq?|Z_O;l?&c>hVMLERAA>WQC+ z_gt-Gs&@6=jMO%K7rJ$obF54guk?y#s1$7e7J3wfJfIY^K0zL*KWN|5-`WMS!l(YC8Eta%colpi=Qo85Bf92#G zdHnRlxFc49o23L}R(Ue5f1Re?GIj!+tbSX7|I|1Cb}j9wdwkd%K?RK&>B4TggCOf2 zI8)f4|InJ?)<)ArmL2Smk#c(8q!j?iD7%{ejWSz!m9O5P0u!)bYgE&j>U5l`uF$Ws zgY%(H>ENPi1+h>)Qr}R?NxVFW$W0Y=tOV!q9NIo<$5^urGxmb*$#LP*m%R_C0iXCR zBePhN-XTFkIm^KWcDCLn=Q@4#JfU@pG`ZiQa9^-Rx50Jwgs>vG>&kd+JS_S~>zCsn zmE=?E1pl@G+M7ArKluuu156a+rQ3!#=d@OD0VUh*Tv&Z5`dA7nDJvZq-(!Q9B=3?c zB#%l6u9U`pVB11#G*vl5&lJjXA_bj4x53qYsHP2x_Vpg8?g<{m|cr zq4xyDfs4hFCr>S#D>BT3vN!_;+lX7gx_7YXXtN^}$A~T;sFpXS`$5!5p=D!OHn`b)BXUXnwDcF>dGD2@50u$iuRdIl8!$~$q}2J-ts9=1Q3milEH za0RV?#gNn?VLG*N$o2XD6YVI?mYhms0IXZduiKm+%R*8k)KP;FUw0`b|p z!_!F_q@=)daIoiqz4?x&Sq3R+i7OLB1e>4JpmqQl%uqae+o@8dQ{qbC`MS=w&?b{G zo#sdWXb^3UA;Bvx^>s95nJghG8X%Uhb~a+HQI^M779;5;o`fsPUQQ8*M!k* z`1Y-@FOT-Fb$&Hq|FSJqr*DoVV{cT?Fp#wSlriNyW88nS9DcE&dG=PSI`9@Mo#7F^ zr7teV#$!$qP~vgoGqpYko4jdW7_-*RSawF53VT(f^jo-PQY(jGZ>wrZ?F53Yi}3T` z`}K{4S*047xXb}T8@euiWBHIuTNUtN=syG6(HY<=VwLkex)RtALcv{)vrQ_5pTrvm z-m@JRVYy<-_4f(z6PRJ%hjw~Y_)d|)y0}+9CTcljj9NQh+?l@EJj1T0*uY5TVn9{LQJkR zV-q)HY1p*#7oUeZ|7n&H^Hr5@hUQF8c-1^FDH<8JPX)`FY`Lim&KwsQkTKst;%5Cf z*5<_LMm=2Ov8d-xxNuTm1cX^jsf2C0K?QV>2v1fpa3~Q6CZT)3o^v-J1mA3%+_}Q$ z5R~r5gR}s-nDb278$^zb;Oh%#O-u8%&Ol_8xwcNy^6mMix+1G7Ao293O}R-LNraH% ze`y74d%Ug3kRDV3@FeRo*q+*d-(FmD%U^Oo zZ$@X^@`;`QjoEYWffjrN(l3FxKV=fMZ}Q9QZ%ySaycf8~v}P}US=PkRo;H=6ikl6hRtr8+GFjk1B@Lt%LJkYu3&x_1$Sw(Wi@zT>w_KSBii6RO)40eI4xf)zhjfFoNF6Wio?29xGgVAst zM!(1l`W(GHZ#1ZLnr!j&0+7owe*T{l$zb(%RhUf{TA!y~8*UQ)H?T}GSJXfqjGqO? z19c6H7P2_1rUz!IQimD0eZSiyzZF+GzM@wBb$)v;rhJ-4 zd!yfWe3^lByB=~kP1s^Md-dxsJ5T>fv(om~xftiz`w6XmTO+)bx9c~2k`s-$)(Mki z!(5Wl=~IoBN89$WExEhL;0Ka;xep_l;1{zKZ<+LL^qMI%zV`c_R~grKN68s>u)h!> zA$Ho95eAE~*E_MlaoSGWwr*aCO}C@woYLwsm7-e!J=6)X>TyX3nZPSz!?YIIsCsNY zL`4y)*)6J_I!2p4UScq%eWrt?a_6aOFuBpDc>3z)&Eez7NpOKhT%#m_5>aoq)^QiO zk5uWD=r`>U(2EJa+UCPuOX~_w}Tj?y=&-}3P09?uD@yd-Uz6m~Y)6*OphpWqjaqg+7 za(CrZlJ8Ck7z9oUs5-|sFrvi7lujoHPD9a78qU6o4%&}fLoH64?~1pNi-(Id-mZg> z-QeyME=?Hw$tS$FNo%c)CwG+Z1hkRV%tXW)E&pN{EYKvzSO^D=U15gwtv`6i`)Mu7 zRDPSnbMROAv`pT+)yuscNOFpW+;<=)PnLwW0%y`^o(NSVpp(U|6Xtb%M|2EDSIwZ^ zJ`bb3Ixh^!IBhf8^7_6tQPdRKT?1O0DOxF3LqMgL^aEA{#XxGu`Z}zh|Nlfz{xu6i z;4X+FVQh*cG9uw2l*)u+HUmY2CvYH{1tNbNao>{{jrPXP-W5jR%9(8Tal7u3y!~A$ z_Gtc@bI0F(iW|zrvwwFt-c*j?)KYtVV{QpLD5SyI}R92zO1L}Vtr$P8aKM1avqz?){hyFxPLBBHx z&~OKg8b_%#J4{z1Zo5W>*SoWIb>PaDEGP?$ll%WYR0up2&ALCG=wJOt$`z!Z^IQ)+ zumrd>3BK$lEKY0G7n#W~@+8|oD{}rM`~J>3>W@C1 z&vf*i=leYObKlo>-Pe78`_U?jL1x7F)-lO!^77I&(%%N!c_MjfGS&|0ktOk8|1{?t zT-=Ghd;!BWm-fG+uMqcEkLmU+Ea>}w0quQ_P}A+Wp5jqw-%xs*rlu%G*6`XQo1)e_A z^3G!zY3wmY6(ikT<-Y&1TV7h+Zul9qlKW`YaDLFVt?9Ou;Qq(s{Pl>wwWxKQc3cKC z(#R69e`o=7$67~#d#8i)L3Cw}&b>K)Q^GRvt@nWFZ@=U0!*Xzh z$beHY4XVjDI0qc9i+A=l7J*;yr+ufx&7rz+YF>g|{ps-aLnnS!6&%WJ^t)$DylOB= z=75po#+na*N@}5#Y?v>s0_!4V-jB3q3Azxvfaa)vBEo_e)Euxy>I9vs{W;~S5Y63> zmov)wSH3NW4jMAOYG#e*%FmKrYKG~7TC-Qc#< z;I6pikB?f+kb~Hav(bvkF61o?ERmg9+3Z|?~3+>Io@K&i2Ij= z3_BCrpOYodcEe79ur5kehh~;@?*5!Z@D0mSQ;Xz>Po++j2)wiVwhzQEv5TS!vt%O*?WNoy$v8f z7C71GL5)@KHqjORRyk+;$}2y=djo9n-5sd<--AOp&`5l5NyF}khW@u>2u31hRnzD4 z&^E@<7xsP|bg&T$sStJYFIPW#IUc}TiNWXqBgn%u;VvGbr0L&(D<%f9_< zy^cI!hu%L@PbO4*g#p+0N4x6t&(u?Ug<L@IGzz&6VdHc6WyxyTITL3VZ9<} zt9fua8v}t;E^>)M)3`DB9gEnNM?gDmJFtc0Px*=9&Xwbazp2KyA%jrdf|$pMVUvS4 z?K;*5(b#y6mPHs!95LQ)hxI2KUi3^-2APfl1()WhvUmP>m)E<<@?)ZH{hJ1-}R3WH(IU6q7+;*z&$b_ zuHcQlj!46l+)g+-0P5D94C1q( z5u0^N1ABvVF^C~P!RZZV8tDqYJ~M7t?8bWWL`2sZZcG;7e@>I_}^XT+==V(3{#O5^v3R}9oaOW``>JN8Uo-{5JWba`3pbTbTVeP)RZ#g{-6i zvN8r>AF*>M51rZWi#Pz{shnmX9tbFnLF00^i0;$dyhk7YwIA=YwIS?nA5ay)3n41-cgm!|5eOiUU@evM0EHOR%<)I*Vc4H_dy$w7znaB$V{1Rs6 zm~IJs6~g`pM;rW1-Ld(~cH{|pjCj`jf)8bTeY6r+A&#`ggleh)n!idUY_EUW;Mc^h zCsz)@PXU~iUEB$c&Lly^GBc&>jWg!g?f!SlLhT8M-Ybb}d%l!k5WSu;JM^n%BZRfG zxnc6@?P7RJh=9**k6Sa|@WR7g${CP(rI9|G*0HgVZ1(7VeQz3k72CkNXGpX)Ezk%x zCLJPf(z5N4(PvSCUD-!C|9X2mD{n8ss%&M|$sEFQHI5^GB&av3ob`law|4Nc<_d>N zm06GsHb5@+Ny|TS!KN;~`0Rajxxbb;mZoqYt#R!bfM`;+>01eN-}^J2`)lk)`BAA4 zj(yi|%xT_a3tP)Hl?pdf3v{pF{`zGv+Dy&P4tP0PWN<4CF|fJiH9h9UQoht*6H2X# zZfU2J((Rb}bu>HLwQg!+3VLGBjbFLhN18I~%ngU)-3Hir3T1EScE;t4V-xlV(iDdBAjAnMNr1m&F^sFOII^7*j_X$KzW znabXeXgIVmaNOyFe-O`2?3!~H&y9pd1Z`^$y-v9qqAFP@7WBOQ2{jEujT=CU?rZ1Y7ihKo7ulHy5n z$)E%g-}n*?OKO$IFiQ(C<0gom|N#O|ucy=e*MbcgZ6@-e=VpQl%0ZGzX>+MKqnb92 z^u7sX!Pd`)y#8aIcM^HAnk7s%kcgPS6ADypK-d1La7Cjh} zbUt2O@C5GaDBMBL!kT#L;4d8eqs)O=$_4*>W3b)qe3^CGV4)8^9)Qnu{FtC=k1IBa z++1Kovp`ke;M0#k;!l3lM8)jGhMx`nV|y*mU*FCIFVI}tOl_`$qSeqsv%3`k?Yx}{ zYXNEc2|lZM5B*Sj_o^!Lzy{dFsQ4O{)k!b{Wus`K4P zli$wX4Dvg9JE*sj*wmTocX0=Xj*WBbsqnYI_=*ZU-xvVQ4CtI($t0^PRlL0L0wGC^ zDR7h?tU_^aD^xR*?@N*$XVNrW+pHZT8)bGszMI}R#LQ{ zq@26DgnyAVCBk^OTWdsd`k5|TRN14A)!39!?{0*jp2@R(6VMWWd_8!rG>!p~=Sqm$_QR8> ze+eIbwpA6J7$QNDz7vl>AAel%7%rS@TI8(h8Nsi_#SSxq-QtU%9lb)&exCeuGxh`Z z(%T2r`vvx$jLj;upO1}2pZSM+10I&F7RR@NJ6mj>+%w(3$AZ7U$9IwJD-FANQ+Fy~ z&qJzNCc85-%b{J0k zMUcY33Gj*g9x&NUrR|1zZj`1$1z#eX&xGAHrV-A}e zslw@p5$j)zXeF|HKEfwU6nW1MW@ovkfDsq_nvp-P1aAjbdUf!u-68m{a$ore&E#EU3OjHy!hOV3JgHLw`_#!>ate0AK#iq;1A4KM*wWX0g4AKcz~E6I=y>+w!juU)X2&gx5&x#H8+|Z|q04@^G72sSH zgP{WpjQ(?uZ&uhVSzOa9ix4m{SAkLLJ>Q{_`qKz_$?vptvM1G8*8n}41}CC6*vCi; z=ty|CH7}8D_xHRCxj!C#hvGzkX`74hs$F$QKbn_-c@KQP~TODT8V*J`>70 zaE_faI|YnhQH>Ln2MME=^5>Ll`cHChJCuz;Q*er|K2)9#Cx8sSsN+BBdmbJ21-Uz8 z@gUH1koLI?ThVvcKig>|{IBi(=sEkO&c5M$E{tC(m?yVhGaVYyjj}G5obK6=pBEi- z?1T%=4v1+_`T1Fg7m#JLEAirsKGCXn@SF&g$+%d;Xj&vnZAKz9w8IxtFM;^j02@}R zrAcGtDQFsZR9svH*{)BDq zR%12aaD-a(w*)sgC9L+|m|OJIhYYDv0x-qP4W5ySSW7~}Oz>;Wwhpk& zGe|tS$vswzAe`q2=g8p2PNXtGcfQh;f zrszaMC3JEo&_xq+NtfZ+*@;)hx7ke z(#oF>T!*8tN#>IOPgqYFB){b-9;yr= zi+Bw(u3W^`8-i=-Gey!}T5b`(MkJM$4REocgIaqA>*srxeM7{H*ayl0#JGGsp<(I&Sd& zX^Nzg*UC3t5gY>1RJ}`sG*aPMdQ_Ghi1!#UscP&-40*}3HCYveF}(bMMJKU3i(5&$ zOi-3YO-KjJxR142AZGLXCi?8pTib~hD_`A-`ol#D0fd1wvqQ=T=fJo12e zv2`NG@#LzHZmM;la8@=5gbu@(3JqohR6c?Th(DW*zcUTAV`JT% z-?21t{vUy~T4T(6x*t(<;a`8r77P1Y@P22~l}+nHg@0I-$={ zxWop9^hJb(O(s6Pu*qURqvicrNyXLfpNGWurhn~+;aD;4*RnUR%88yB#hEWnSZuxJ zIP$+$BL5GDP@`}h7)wB38L5y`RS$hhN4n;KTL~K;2;`N_N8ESta>XFThWBk{uN*xI zUD-ojN{DI>Aa?sXq?1z2AmcD;f)d~vu?r+=h&}2vKRxv50#q|pU1R)J8%ADQTBNq% zEF8)Ei#=TAY#VY`36i&rJoO4T8r-V#4IF8h0$TVwL@=X-c*ut~@|bqeY{FpvTQ#2f zNr5uo43I#IgNk)6-%KfW60WCnWxPE$KPQ%#CVoueF}j0U#9Q>zsEu%*rSK$d*h^$~ zA0$1^{&7wCQ3QJex3|>cS%ppK`}@e@3Iwgrc8XuThWR(XCXsREnxl(6c)R4B`w+2c zZF+h`Tk1L!xrHIA?H?~=q&bl3DTqV|f$?c5S`j$76}zQ78qAD$+5rwr6|*9#QtY4N zw>Tp;y6AHiv5^FW=1CYf65`WlWTz|kS~2X${o_X!4N1dfQ&26LWSjeXLFuhbJtJe= z_5q*X=sB{hMhzp@e4i=^*@{eSeV%FO@oumHqcUR2s@Io)Mj=yAs4tSKGQ~9^aEIi9 zrEV5A@){wG9;pKJ*iIAjHuKAWAT_5`!^j{eA-~gzq=+M9zaroL@ykyZb9UcNnWz`1#>eWc-2K`ya6x^&;L$=Ex+z9Ka|WosjClPYd$y z{G;{qmH4ArJ{{j8P^1;M!iWkt7_eK~0mfPyjZWR(GX&5)9{*`y+4@}ViQwe~32TgA zEwv)7`=oGXsF)#{e)wsH4~*W+hG0*hk9TbBUYeHMDSh>kIKTo9`d6{f1i)QxeBry7 z9x5EztS=f*<~j|}78r(A5L?lO2ivyW%tCs^0$h`1=Z+-52PlW5D6<5R@K7T!;JdNh zIF>$Ud-Itrx?{^Cvd9dB6@;8z1S# zbw(pvU3{MxxQ%uaL16Zp@+euw5XKPPpWi5b?bB=PhM4HmbVQfxy{@^m%V*xseevh9 zS*q7j<}!>=x%8iP8y(~Eq=T8}7Y%NSqA0{TzkA)}He^&926xr7&)h9WM{7QiC3B?82JUsUOt`Y{1!`|GN+k=Rs zd*t!Ljd428lr>4}gc?e33`Il6zM~C4r7t6g8eWLwW`eQWK!rO5_bg6_YhI-7impR? z1&o6!QN8(O@CC^LVBLNhECkCsyeL5_mx#3^rVHPsn`voVJHGZ*c9ISXJy(kty-PlL zBabv{VAy<#-c&6V; zXMKN_O_UcY-c4C%-FWmEuq^3c@hNAc56!%Z+>Yu)ynhr;@IpZ{sY=#!h)0_}27ep2 zdQ`e&s%$F7ZwJphF-V3YRa(h6L^L~HXeKm4)OTrcQ_CEum0h7|qz2d#j}v)w7zP@4qi=}!ek>*P1uJVm`HRvpFDH&t00-RM9N5GcY`~T;3*+5GfjC`eI)c%kPT%*Y)b7B#ik{g zs&k=V@$=$deu^6g7om}X#O1^QLkcmOx{F+SOM?irA|oNUI_T~6!*gD(UVZ)I@^Y8H zmGmacE{t*>)USvEli@d=iMdCS6<$87IrSpf&8}w#SW?td?7BR@Y%<)g*BU44i#~28 zo62~a)t59w>RM{^SsZHhDJqlgu1htGX-uOq=DfoWVyo;1Zs{p>Y8`8ths%*{2hM}T zOLOfhR4sK;)K2_d=HYetr&zC+S*XmeT#fDdlCIwguIm;Eu~`vF_1f+I>0iS!FL`{kKSLSfXP!{MeM{CBEW|P**#)(74qS0DgFV;1eH_i&uc~d zLd~8-XH!u*c9su8Z;-6k-|mLhK|Ea_Bag=w1B-FGN6Fsm$DNyURPohF3bq ziCndPm?fk-A4p?C!%L@0DQm=kp-KE3G>)dipGS930PRk{1l&qXW|?!p4)1CFo7WjgByv*X zSk!v^X==_bzI6wtzS*-IP=jj{@+od08gHdHgmcZ$Av#*5)tu@z031&xscwvGi_P+N zvsUV;!MqVDVY>GYG$~C0!I1ffeYbJk%%ay3_pO6+Ka>+DxcxowJx^9MullEjW@DrO z(zU%&6WU;?spvk=&%ti-IBsW4q1iX!%6K{Gw4k-i^M^ixNJbmB+#Vnz0@gN1?Y<-6 zW^@@?u*Zo0W2OPdBx`^0w(3L7==N^N*Yp!Qw|B$$6Mkw>l(K|uc@(Cau$^?c&>w6R zR5`YI>5wKQ0Ok0m8xpi&!ZpiVj?cFeo zR2&l}+CYu$LA-#U+q6<2gMv~MG?80AezT0${poxBsCs#Ibe0*EYvZWkGKU~ z2D>|-FsJC6MX)gqT8nAht?nU4orh*3^I#?!=z`t!{oi)^l^Z>WMXNuQYQ+1ofn+v%-O-)~V{XU$Yt>t| zKP=kr9WsW+{<&M7yV*O&wFJ0wvSlAs2yU_cLeitu^Rbh0^Jc9}B!cm|OS8HCs_&n% z%$Srq%Kf#N#fp@Hfqp^PH)8|09ueu83r$@lRo9n*_bYD2wYa#ci@ew7W{{X`2}AUm zTZa?91SXc(`o7bKY=5`-QXvVd0Yq+SoDyw~KS%wld&9@;Q^*+UnT1&s9*iwm>=@hyc5%5O(uz-P1H=R{Pzv=`V5Hi}L4 zd#qP5J^yrsGKI(>;1cb?8|mJbP;7Q1ox9PjNmd|=5o6VF)=5Hj-9g6tnb2L+(obH1 zrW^7`=9T7r*vEegT>hp}MTtnUce=C*JYXZz-=z{C)3@DM=lg(+X-S7PG^4J=8E=H6 z9rNCoa7U==3J?zksGg3Y0_Pvbp?jtT5{SO)hmUA6`&^UYqt+&T4rS{)i}sDNgHhwR zrv6@0tYAz+J*WZlM@`#`?mcIJBS5+vd$WQ-UY_q3PYt&!=x`29q7o{P8w_r}cy6*s&BR0H zddb&OfIpr+h<6OBKXUA{`2A+v^9)ox(ad+3sN&TmXh)2Qx} z#bZ*OqOC>a=WhkruD@ODT=f2sp<(!0;gkl|ZjjSr&}$#8sY{I}uGxW1~7BgTx5%l(|>pSbiwb=9Ul zpvWfLhKW|zT2-sDtqs5l4dpla+3#Z^xLX{jRxug$FXBT9FSHx(-5NZr7Fy#&{%r-1MsS&^UvZ6E}ZN_crm~g=o2n)knA#HLxZ7 zeSxsjzYsO#KcASGL-{=2V&Z@x;)4~tkt%7FkxOi*RC`-QdHa$%Q+Iw?fzlys#quUm zEZyMlvoSV2+rVCr7F5AM@rAefM&g#mX^q!&#Q+-E5xi66nS5BP^QNE8EiL}dVgG{QQhxuu!@vuq$E1>I#y=y~k`WC9$0f|u=BcgKDhpsSFAIKnycB&A75sh# zzv@iY!{B!YFK<vJB~FJ1|r|j6y~M-Pf*@PUAEYbxoU)-tn7T<8wE>=d0*nC2`Ro zM$oUvNdVlq8kx>8+M4CAUJNEA%?NBn@5%tiaonwjp}8+E`y=4w2vQ_#({hMckz%By zKh(Qs%{qxwU|NuqfXMm4)LWW28Dvy$kE6{j_&q?hD(f;^eVDHAzGD_EJ z`2kK=IUwdx$5ahF2FasScMJlGIm!SkczhCMEFJEl4qwo%2!`QwOtg3v=H?9fd%)eYZtod;DKpquq$ju-#y5eeDksB3q+0B8N5|Q=k@SVTJcVN zQE;L|BN_48GkLaG(gHknRNHAvD4O*poATYkDF(}WPGD@=zj;Ws2w+PH*FjT7i< z-C({E{evm=suDiyVg;8HcGk{zSHWgWDzNb{ZA!-2HZ2+z*he31N;OYo04XcTN;XcG zxQZ!9WWYV2$lcq#xfTH2O9noIMt|P&l94akH0-4oLu^%9|89s`AbLd#(JTJJ;e_Z6 zuIRb_l5LaM`@+DDNJ`f=+})}>Hb|FiW2&eHMJPEtn*9{q@w$SGHux-xQBDFv`G^`) z$CA-s_F5L?(Vv1)GMwGThvJC};;BJD^m#__ZH^l^0S08a%8~oL#R-z3F@&3A9c;1( zH~0dtTR5F@_&Fn=D=yP|QS(X;flXgw@XFefb!~gcC0VETr zv4*BIWyhGg(2~;0^ZrDvng3?ch17c=05wSbYeYd)15d$S5a9hA;dc&j<8Pi=DEw+R zv*bwC4`)B667uEv)upMw)J)qoY_4aH3uAQj+o&*3*zKM0ox(>CVnwqPJyDHKcp~i5 zOxWeyPl{vpB!R!HECgizM{9(kp5EYaN{^?1CXf85R8PT>?^t|HBj08&V%Pc&n2H1q zLrYq&&Il{fY`XtkY${-V#o2-Nel5eJ(C!YC zW=7RZeUO&VV!C@!JiWVIeSRL&T+iN|f0T2}PaupBVYYqwn9#O<)p>h;0d$j5>g@u* zzN#O`fxhGq4M6Bh-R{02|L)Fbp6l4V2XY-BKfSi`P6&?ydVMHQU*pj6v(R&cQPfvE z`)ZG$Ge?W|ldrB#yPA__D3(zU4e(iWDW(_8oVF+$lHGOhgj62Ov3NTEn18plXddt8 z@i|$lY$nD~Q4sTIv!m|74!>UY0w>J>ZuP*o&I@&KY6 zSkZm{?yqrjYyZDQ4e1R2-Cqjhdd-gFMK1_iH6FUvZogQ+27aB=JbQwwVea>TS7YRE diff --git a/examples/notebooks/spatial_methods/finite-volumes.ipynb b/examples/notebooks/spatial_methods/finite-volumes.ipynb index 00d5c6aeec..b0ac0b53a8 100644 --- a/examples/notebooks/spatial_methods/finite-volumes.ipynb +++ b/examples/notebooks/spatial_methods/finite-volumes.ipynb @@ -167,7 +167,7 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6AAAAEYCAYAAABCw5uAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3df/Tld10f+OcrCZBKUaoZRQiTsBorMbMS97sTNHuUH/4I2iXM1p1DJmVty5ruxnFtdUUsLlI6noN1WxdOWDsREVdNkNJmN8emQquwctxIMjGIJJGSRQyh0O8oypC6MxDz2j++90suk+/v+d77ufd7H49z5sz98Z6Z17033/vO6/N+f56f6u4AAADApJ03dAEAAAAsBg0oAAAAU6EBBQAAYCo0oAAAAEyFBhQAAICpuGDoArbroosu6ksvvXToMgBYIPfcc8+fdPe+oevYKXMnANO23tw5dw3opZdemhMnTgxdBgALpKr+eOgazoW5E4BpW2/utAUXAACAqdCAAgAAMBUaUAAAAKZiYg1oVb21qpar6kPrPF9V9aaqerCqPlhV3zSpWgAAABjeJFdA35bkmg2ef0mSy0a/bkjycxOsBQAAgIFNrAHt7t9O8ukNhlyb5P/oFb+b5OlV9dWTqgcAAIBhDXkO6LOSfHzs/sOjx56gqm6oqhNVdeLkyZNTKQ6A+bV86nQOH78zy589PXQpADAXpjV3zkUIUXff3N1L3b20b9/cXgccgCl5029+JHd/7NN507/7yNClAMBcmNbcecFE//aNfSLJs8fuXzx6DAB25K//xL/JmUcf+8L9X3n/Q/mV9z+Up1xwXj587CUDVgYAs2nac+eQK6C3J/nvRmm4z0/yme7+5ID1ADDn3veqF+alz3tmLnzSyvR24ZPOy7XPe2be92MvHLgyAJhN0547J7YCWlW3JnlBkouq6uEkP5nkSUnS3f88yR1JvjvJg0n+IsnfmVQtACyGr/zSC/O0p1yQM48+lqdccF7OPPpYnvaUC/KVT7tw6NIAYCZNe+6cWAPa3ddt8nwn+YFJ/fsALKY/eeRMrr/qkhw5uD+33PVQTgoiAoANTXPurJU+cH4sLS31iRMnhi4DgAEsnzqdo7fem5uOXDnVVc2quqe7l6b2D+4ycycA07be3DkXKbgAkEi3BYB5N2QKLgBsiXRbANgbrIACMPOk2wLA3qABBWDmSbcFgL1BAwrA4JZPnc7h43dmeYPUvdWEvttuvDrXX3VJTj5yZooVAgC7wTmgAAxuPFzo2KEDa445/orHg/SOveyKaZUGAOwiDSgAgxEuBACLxRZcAAYjXAgAFosGFIDBCBcCgMViCy4Ag1oNFzpycH9uueuhnNwgiAgAmG8aUAAmavnU6Ry99d7cdOTKNVc2hQsBwOKwBReAiRpPuAUAFpsVUAAmQsItAHA2K6AATISEWwDgbBpQACZCwi0AcDYNKAA7snzqdA4fvzPLG6TWribc3nbj1bn+qkty8pEzU6wQAJg1zgEFYEfGw4WOHTqw5hgJtwDAOA0oANsiXAgAtm6zy5EtGltwAdgW4UIAsHUuR/bFrIACsC3ChQBgc3YMrc0KKADbJlwIADZmx9DarIAC8EW2cq6KcCEA2JgdQ2uzAgrAF3GuCgDsDjuGnqi6e+gatmVpaalPnDgxdBkAe87Z56qsWvRzVZKkqu7p7qXNR84mcycA07be3GkFFIAkzlUBACZPAwpAEueqAACTpwEFWCDLp07n8PE7s/zZ02s+71wVAGCSpOACLJDxgKFjhw484XnptgDAJGlAARaAi2EDALPAFlyABSBgaH5U1TVV9eGqerCqXr3G8/ur6j1VdW9VfbCqvnuIOgFgJzSgAAtAwNB8qKrzk7w5yUuSXJ7kuqq6/KxhP5HkHd19ZZKXJ/nfp1slAOycLbgAC2I1YOjIwf255a6HcnKdICIGdTDJg9390SSpqrcnuTbJ/WNjOsmXjm5/WZL/MNUKAeAcaEAB9oDlU6dz9NZ7c9ORK9dd1RQwNBeeleTjY/cfTnLVWWNel+TdVfWDSZ6a5NvX+ouq6oYkNyTJ/v37d71QANgJW3AB9oDxdFv2vOuSvK27L07y3Ul+uaqeMJ93983dvdTdS/v27Zt6kQCwlomugFbVNUnemOT8JG/p7jec9fz+JL+U5OmjMa/u7jsmWRPAXiLdds/5RJJnj92/ePTYuFcmuSZJuvvOqrowyUVJlqdSIQCcg4mtgApSAJg86bZ7zt1JLquq51TVk7MyN95+1piHkrw4SarquUkuTHJyqlUCwA5NcgvuF4IUuvtzSVaDFMYJUgA4B9Jt95bufjTJ0STvSvJAVg7S3ldVr6+ql46G/UiS76+q309ya5K/3d09TMUAsD2T3IIrSAHgHG0lXEi67d4yOhXljrMee+3Y7fuTXD3tugBgNwydgrsapPBPq+qbsxKkcEV3PzY+qLtvTnJzkiwtLTnKCyyM8XChY4cOrDlGui0AMC8m2YAKUgDYIeFCAMBeNMlzQAUpAOyQcCEAYC+aWAMqSAFg54QLAcDGlk+dzuHjd2ZZ9sFcmeQKaLr7ju7+uu7+mu7+qdFjr+3u20e37+/uq7v7G7v7ed397knWAzBLNps4V8OFbrvx6lx/1SU5+ciZKVcIALNrPCeB+TF0CBHAwtosYEi4EAA8kZyE+aYBBZgyEycA7Nz7XvXCHLvjgbz7vk/l9Ocfy4VPOi/f9Q3PyGu+57lDl8YWTHQLLgBPJGAIAHZOTsJ8swIKMGUmTgA4N6s5CUcO7s8tdz2Uk4KI5oYGFGAAJk4A2Dk5CfNLAwqwy5ZPnc7RW+/NTUeuXHdV08QJACwi54AC7DKx8AAAa7MCCrBLpNsCAGzMCijALpFuCwCwMQ0owC6RbgsAsDENKMAWLZ86ncPH78zyBom1q+m2t914da6/6pKcfOTMFCsEAJhtzgEF2KLxcKFjhw6sOUa6LQDA+jSgAJsQLgQAsDtswQXYhHAhAIDdoQEF2IRwIQCA3WELLsAWrIYLHTm4P7fc9VBObhBEBADA2jSgAFlJuD1667256ciVa65sChcCADh3tuAC5IsTbgEAmAwroMBCk3ALADA9VkCBhSbhFgBgejSgwEKTcAsAMD0aUGBPWz51OoeP35nlDVJrVxNub7vx6lx/1SU5+ciZKVYIALNlK3Mn7JRzQIE9bTxc6NihA2uOkXALAI/bytwJO6UBBfYk4UIAsD3mTqbBFlxgTxIuBADbY+5kGjSgwJ4kXAgAtsfcyTTYggvsWavhQkcO7s8tdz2Uk8IUAGBD5k4mrbp76Bq2ZWlpqU+cODF0GcDAlk+dztFb781NR650ZJaJq6p7untp85GzydwJwLStN3faggvMpfGEPgAA5oMtuMBckdAHADC/rIACc0VCHwDA/NKAAnNFQh8AwPzSgAIzZ/nU6Rw+fmeW10neW03ou+3Gq3P9VZfk5CNnplwhAAA74RxQYOaMBwwdO3TgCc8ff8XjgWrHXnbFNEuDiauqa5K8Mcn5Sd7S3W9YY8zhJK9L0kl+v7uPTLVIANghDSgwMwQMseiq6vwkb07yHUkeTnJ3Vd3e3fePjbksyY8nubq7/6yqvnKYagFg+ya6BbeqrqmqD1fVg1X16nXGHK6q+6vqvqq6ZZL1ALNNwBDkYJIHu/uj3f25JG9Pcu1ZY74/yZu7+8+SpLuXp1wjAOzYxFZAHcUFtkvAEORZST4+dv/hJFedNebrkqSqficr23Rf192/cfZfVFU3JLkhSfbv3z+RYgFguya5BfcLR3GTpKpWj+LePzbGUVzgi6wGDB05uD+33PVQTq4TRAQL7IIklyV5QZKLk/x2VR3o7j8fH9TdNye5OUmWlpZ62kUCwFom2YA6igt8keVTp3P01ntz05Er113VFDDEgvtEkmeP3b949Ni4h5O8v7s/n+SPqurfZ6UhvXs6JQLAzg19GZbxo7jXJfn5qnr62YO6++buXurupX379k25RGC3jKfbAmu6O8llVfWcqnpykpcnuf2sMf9nVubNVNVFWTmY+9FpFgkAOzXJFVBHcYEk0m1hq7r70ao6muRdWdkZ9Nbuvq+qXp/kRHffPnruO6vq/iR/meRHu/tPh6saALZukiugjuICSaTbwnZ09x3d/XXd/TXd/VOjx147aj7TK364uy/v7gPd/fZhKwaArZtYA9rdjyZZPYr7QJJ3rB7FraqXjoa9K8mfjo7ivieO4sKeJN0WAIBksltw0913JLnjrMdeO3a7k/zw6Bcwp7YSLiTdFgCAiTagwGIYDxc6dujAmmOk2wIAoAEFdky4EABs3VZ2DMFeN/RlWIA5JlwIALbO5cjACihwDoQLAcDm7BiCx1kBBc7JarjQbTdeneuvuiQnHzkzdEkAMFPsGILHWQEFNrTZ+SrChQBgY3YMweOsgAIbcr4KAJw7O4ZgRa1cinN+LC0t9YkTJ4YuA/a8s89XWeV8FRZRVd3T3Uubj5xN5k4Apm29udMKKLAm56sAALDbNKDAmpyvAgDAbtOAwoJaPnU6h4/fmeXPnl53jPNVAADYTVJwYUGNhwsdO3RgzTESbgEA2E0aUFgwLoYNAMBQbMGFBSNcCACAoWhAYcEIFwIAYCibNqBV9caqqmkUA0yHcCGYnKo6r6r+4dB1AMAs2soK6GeT3F5VT02SqvquqvqdyZYF7NRW0m2Pv2Ipx152RS5/5pfm2Muu+KKwIeDcdPdjSf7G0HUAwCzatAHt7p9IcmuS944azx9O8upJFwbszHi6LTCYD1bVT1aVU10AYMymKbhV9eIk35/kPyX56iR/t7s/POnCgO2Rbgsz5cuTfFuS/7Gq3p/kg0k+2N3/YtiyAGBYWzky+5ok/0t3vyDJ9yb5tap60USrArZNui3Mju4+3N3PTXJJkn+U5MEkB4etCgCGt+kKaHe/aOz2H1TVS5L8yyTfMsnCgO2Rbguzp7vPJPm90S8AWHjbPjeluz+Z5MUTqAXYxGYBQ9JtAQCYZZuugK6lu/+/3S4E2Nx4wNCxQwee8Px4mu2xl10xzdIAAGBTO2pAgekSMAQAwF4gHh7mgIAhAAD2Ag0ozAEBQwCwvs0yEoDZoQGFOSFgCADWNp6RAMy26u6ha9iWpaWlPnHixNBlwK5aPnU6R2+9NzcdudKqJsygqrqnu5c2HzmbzJ3sVWdnJKySkQDDW2/utAIKM8CRWwDYPhkJMH+k4MKApNsCwM7JSID5YwUUBuTILQCcGxkJMF+sgMKAHLkFgHNz/BWPn2J27GVXDFgJsBVWQGGCthIL78gtAACLwgooTNB4uNCxQwfWHOPILQAAi0IDChMgXAgAAJ5ooltwq+qaqvpwVT1YVa/eYNzfrKquqrm9xhqMEy4EAABPNLEGtKrOT/LmJC9JcnmS66rq8jXGPS3JDyV5/6RqgWkTLgQAAE80yRXQg0ke7O6Pdvfnkrw9ybVrjPvHSX46yfopLTCHhAsBO2H3EAB72STPAX1Wko+P3X84yVXjA6rqm5I8u7v/dVX96Hp/UVXdkOSGJNm/f/8ESoXtWz51OkdvvTc3HblyzZVN4ULAdo3tHvqOrMybd1fV7d19/1nj7B4CYC4NdhmWqjovyT9L8iObje3um7t7qbuX9u3bN/niYAvGE24BdondQwDsaZNcAf1EkmeP3b949NiqpyW5Isl7qypJnpHk9qp6aXefmGBdcE4k3AITZPcQAHvaJFdA705yWVU9p6qenOTlSW5ffbK7P9PdF3X3pd19aZLfTaL5ZOZJuAWGYvcQAPNuYg1odz+a5GiSdyV5IMk7uvu+qnp9Vb10Uv8uTJqEW2CCtrN76GNJnp+V3UOCiACYC5PcgpvuviPJHWc99tp1xr5gkrXAVm0WLpQ8nnB75OD+3HLXQzn5WadhAbviC7uHstJ4vjzJkdUnu/szSS5avV9V703yP9s9BMC8mGgDCvNoPFzo2KEDa46RcAtMQnc/WlWru4fOT/LW1d1DSU509+0b/w0AMNs0oDAiXAiYBXYPAbCXDXYZFpg1woUAAGCyNKAwIlwIAAAmyxZcGCNcCAAAJkcDysLYSrqtcCEA+GJbmT8BtsoWXBbGeLotALA15k9gN1kBZc+TbgsA22f+BCbBCih7nnRbANg+8ycwCRpQ9jzptgCwfeZPYBI0oOwJy6dO5/DxO7O8TmrtarrtbTdeneuvuiQnHzkz5QoBYP6YP4HdVt09dA3bsrS01CdOnBi6DGbMT9z2B/nVux7K9Qf359ihA0OXA+wxVXVPdy9tPnI2mTsBmLb15k4hRMw1AQkAADA/bMFlrglIAACA+aEBZa4JSAAAgPlhCy5zbzUg4cjB/bnlrodycp0gIgAAYFgaUGba8qnTOXrrvbnpyJXrrmoef8Xj5zYfe9kV0yoNAADYJltwmWlv+s2P5O6PfTpv+ncfGboUAADgHFkBZSZJtwUAgL3HCigzSbotAADsPRpQZpJ0WwAA2Hs0oAxm+dTpHD5+Z5bXSa1dTbe97carc/1Vl+TkI2emXCEAALCbnAPKYMYDho4dOvCE56XbAgDA3qIBZeoEDAEAwGKyBZepEzAEAACLSQPK1AkYAgCAxWQLLoNYDRg6cnB/brnroZxcJ4gIAADYOzSg7LrlU6dz9NZ7c9ORK9dd1RQwBAAAi8cWXHbdeLotAADAKiug7BrptgCwdVvZMQSw11gBZddItwWArbNjCFhEVkDZNdJtAWBzdgwBi8wKKFu2fOp0Dh+/M8sbJNauptveduPVuf6qS3LykTNTrBAAZp8dQ8AiswLKlo1vFTp26MCaY6TbAsDG7BgCFpkGlE3ZKgQAu8v1sIFFNdEGtKquSfLGJOcneUt3v+Gs5384yX+f5NEkJ5P83e7+40nWxPa971UvzLE7Hsi77/tUTn/+sVz4pPPyXd/wjLzme547dGkAMJfsGAIW1cTOAa2q85O8OclLklye5LqquvysYfcmWeru/zzJO5P8k0nVw87ZKgQAAOyGSYYQHUzyYHd/tLs/l+TtSa4dH9Dd7+nuvxjd/d0kF0+wHs6BcCEAAOBcTXIL7rOSfHzs/sNJrtpg/CuT/Ju1nqiqG5LckCT79+/frfoYs9nFsG0VAgAAztVMXIalqv5WkqUkP7PW8919c3cvdffSvn37plvcgnAxbAAAYNImuQL6iSTPHrt/8eixL1JV357kNUm+rbvt65wyCbcAs0WAHwB72SRXQO9OcllVPaeqnpzk5UluHx9QVVcmOZ7kpd29PMFaWIeLYQPMDgF+AOx1E2tAu/vRJEeTvCvJA0ne0d33VdXrq+qlo2E/k+SvJvkXVfWBqrp9nb+OCZFwCzBTBPgBsKdN9Dqg3X1HkjvOeuy1Y7e/fZL/PpuHCyUuhg0wQwT4AbCnTbQBZXjj4ULHDh1Yc4yEW4D5Mxbg921rPd/dNye5OUmWlpZ6iqUBwLo0oHuUcCGAuSTAD4A9bSYuw8LuEy4EMJcE+AGwp2lA9yjhQgDzR4AfAHudLbh7mHAhgPkjwA+AvUwDOqe2km4rXAgAAJgltuDOqfF0WwAAgHlgBXTOSLcFAADmlRXQOSPdFgA2tnzqdA4fvzPLsg8AZo4GdM5ItwWAjTlNBWB22YI7gzYLGJJuCwBP5DQVgNmnAZ1B40dujx068ITnpdsCwBO971UvzLE7Hsi77/tUTn/+sVz4pPPyXd/wjLzme547dGkAjGhAZ4gjtwCwc05TAZh9zgGdIQKGAODcrJ6mctuNV+f6qy7JyUfODF0SAGOsgM4QR24B4Nw4TQVgtmlAZ4yAIQAAYK/SgE7RZum2iSO3AADA3uUc0ClyXTIAAGCRWQGdAum2AAAAVkCnQrotAACABnQqpNsCAABoQHfF8qnTOXz8zixvkFjrumQAAMCicw7oLhgPFzp26MCaY6TbAgAAi04Deg6ECwEAAGydLbjnQLgQAADA1mlAz4FwIQAAgK2zBfccrYYLHTm4P7fc9VBObhBEBAAAsMg0oJtYPnU6R2+9NzcduXLNlU3hQgAAAFtjC+4mxhNuAQAA2DkroOuQcAsAALC7rICuQ8ItAADA7tKArkPCLQAAwO5a2AZ0+dTpHD5+Z5Y3SK1dTbi97carc/1Vl+TkI2emWCEAzJatzJ0AsJGFPQd0PFzo2KEDa46RcAsAj9vK3AkAG1m4BlS4EABsj7kTgN0y0S24VXVNVX24qh6sqlev8fxTqurXRs+/v6ounWQ9iXAhANgucycAu2ViDWhVnZ/kzUlekuTyJNdV1eVnDXtlkj/r7q9N8rNJfnpS9awSLgQA22PuBGC3THIL7sEkD3b3R5Okqt6e5Nok94+NuTbJ60a335nkpqqq7u4J1vWFcKEjB/fnlrseyklhCgCwIXMnALthkg3os5J8fOz+w0muWm9Mdz9aVZ9J8hVJ/mR8UFXdkOSGJNm/f/85FyZcCAC2x9wJwG6Yi8uwdPfN3b3U3Uv79u0buhwAAAB2YJIN6CeSPHvs/sWjx9YcU1UXJPmyJH86wZoAAAAYyCQb0LuTXFZVz6mqJyd5eZLbzxpze5LvG93+3iS/NenzPwEAABjGxM4BHZ3TeTTJu5Kcn+St3X1fVb0+yYnuvj3JLyT55ap6MMmns9KkAgAAsAdNMoQo3X1HkjvOeuy1Y7dPJ/lvJ1kDAAAAs2EuQogAAACYfxpQAAAApqLmLfOnqk4m+eNd+usuylnXHJ0z815/Mv+vQf3Dmvf6k/l/DYtS/yXdPbfXATN3zjTv5+7xXu4u7+fuWsT3c825c+4a0N1UVSe6e2nzkbNp3utP5v81qH9Y815/Mv+vQf2Lx3u2u7yfu8d7ubu8n7vL+/k4W3ABAACYCg0oAAAAU7HoDejNQxdwjua9/mT+X4P6hzXv9Sfz/xrUv3i8Z7vL+7l7vJe7y/u5u7yfIwt9DigAAADTs+groAAAAEyJBhQAAICpWMgGtKquqaoPV9WDVfXqoevZiar6WFX9QVV9oKpODF3PZqrqrVW1XFUfGnvsy6vq31bVR0a//7Uha9zMOq/hdVX1idHn8IGq+u4ha9xIVT27qt5TVfdX1X1V9UOjx+fic9ig/rn4DKrqwqq6q6p+f1T/Pxo9/pyqev/o++jXqurJQ9e6lg3qf1tV/dHY+/+8oWvdTFWdX1X3VtWvj+7PxWcwC/bC/DkL1vs+49yc/bPNzlXV06vqnVX1h1X1QFV989A1zauq+gejn/MPVdWtVXXh0DUNbeEa0Ko6P8mbk7wkyeVJrquqy4etasde2N3Pm5NrCr0tyTVnPfbqJL/Z3Zcl+c3R/Vn2tjzxNSTJz44+h+d19x1Trmk7Hk3yI919eZLnJ/mB0X/78/I5rFd/Mh+fwZkkL+rub0zyvCTXVNXzk/x0Vur/2iR/luSVA9a4kfXqT5IfHXv/PzBciVv2Q0keGLs/L5/BoPbY/Dm0jb7P2Lmzf7bZuTcm+Y3u/vok3xjv645U1bOS/E9Jlrr7iiTnJ3n5sFUNb+Ea0CQHkzzY3R/t7s8leXuSaweuac/r7t9O8umzHr42yS+Nbv9SkpdNtahtWuc1zI3u/mR3/97o9mezMpk8K3PyOWxQ/1zoFY+M7j5p9KuTvCjJO0ePz/L7v179c6WqLk7yPUneMrpfmZPPYAaYP3fJvH+fzaKzf7bZuar6siTfmuQXkqS7P9fdfz5sVXPtgiR/paouSPIlSf7DwPUMbhEb0Gcl+fjY/Yczn1/6neTdVXVPVd0wdDE79FXd/cnR7U8l+aohizkHR6vqg6MtujO5ffVsVXVpkiuTvD9z+DmcVX8yJ5/BaHvYB5IsJ/m3Sf7fJH/e3Y+Ohsz099HZ9Xf36vv/U6P3/2er6ikDlrgV/1uSVyV5bHT/KzJHn8HA9sr8OVPW+D5jZ87+2WbnnpPkZJJfHG1pfktVPXXoouZRd38iyf+a5KEkn0zyme5+97BVDW8RG9C94r/q7m/KylaoH6iqbx26oHPRK9cDmrvVlCQ/l+RrsrIl8ZNJ/umw5Wyuqv5qkn+Z5O9396nx5+bhc1ij/rn5DLr7L7v7eUkuzspq0tcPXNK2nF1/VV2R5Mez8jr+yyRfnuTHBixxQ1X1N5Isd/c9Q9cCycbfx2ydn+1dd0GSb0ryc919ZZL/lNk9PWemjQ6KX5uVpv6ZSZ5aVX9r2KqGt4gN6CeSPHvs/sWjx+bK6IhKuns5yW1Z+Z/ZefMfq+qrk2T0+/LA9Wxbd//H0f+UP5bk5zPjn0NVPSkr/7Pzq939r0YPz83nsFb98/YZJMloK9N7knxzkqePtuUkc/J9NFb/NaOthN3dZ5L8Ymb7/b86yUur6mNZ2T76oqyc5zR3n8FA9sT8OSvW+T5mZ57ws11VvzJsSXPt4SQPj+1yeWdWGlK279uT/FF3n+zuzyf5V0m+ZeCaBreIDejdSS4bpR4+OSsnAt8+cE3bUlVPraqnrd5O8p1JPrTxn5pJtyf5vtHt70vyfw1Yy46sNm4jhzLDn8PoXLdfSPJAd/+zsafm4nNYr/55+Qyqal9VPX10+68k+Y6snPf1niTfOxo2y+//WvX/4djBi8rKuZMz+f4nSXf/eHdf3N2XZuW7/7e6+/rMyWcwA+Z+/pwVG3wfswPr/Gwv/CrTTnX3p5J8vKr++uihFye5f8CS5tlDSZ5fVV8y+rl/cQQ65YLNh+wt3f1oVR1N8q6sJFG9tbvvG7is7fqqJLet/HecC5Lc0t2/MWxJG6uqW5O8IMlFVfVwkp9M8oYk76iqVyb54ySHh6twc+u8hheMLjvRST6W5O8NVuDmrk7yiiR/MDqPL0n+Yebnc1iv/uvm5DP46iS/NEoSPS/JO7r716vq/iRvr6pjSe7NKPRhBq1X/29V1b4kleQDSf6HIYvcoR/LfHwGg9oj8+esWPP7bIZTvFk8P5jkV0cHmz6a5O8MXM9c6u73V9U7k/xeVtKv701y87BVDa9WTvkCAACAyVrELbgAAAAMQAMKAADAVGhAAQAAmAoNKAAAAFOhAQUAAGAqNKAwh6rq/9nm+BdU1a9Pqh4AmAfmTxieBhTmUHd/y9A1AMC8MX/C8DSgMIeq6pHR7y+oqvdW1Tur6ktVUkkAAAGQSURBVA+r6lerqkbPXTN67PeS/Ddjf/apVfXWqrqrqu6tqmtHj/+Dqnrr6PaBqvpQVX3JAC8PACbC/AnD04DC/Lsyyd9PcnmS/yzJ1VV1YZKfT/JfJ/kvkjxjbPxrkvxWdx9M8sIkP1NVT03yxiRfW1WHkvxikr/X3X8xvZcBAFNl/oQBaEBh/t3V3Q9392NJPpDk0iRfn+SPuvsj3d1JfmVs/HcmeXVVfSDJe5NcmGT/6M//7SS/nOT/7u7fmd5LAICpM3/CAC4YugDgnJ0Zu/2X2fznupL8ze7+8BrPXZbkkSTP3KXaAGBWmT9hAFZAYW/6wySXVtXXjO5fN/bcu5L84Ni5LleOfv+yJG9K8q1JvqKqvneK9QLALDB/woRpQGEP6u7TSW5I8q9HIQrLY0//4yRPSvLBqrpvdD9JfjbJm7v73yd5ZZI3VNVXTrFsABiU+RMmr1a2twMAAMBkWQEFAABgKjSgAAAATIUGFAAAgKnQgAIAADAVGlAAAACmQgMKAADAVGhAAQAAmIr/H5OWJGWvnSABAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6AAAAEYCAYAAABCw5uAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8GearUAAAgAElEQVR4nO3dfdDlZ1kn+O+VBMgMgzJO2hcInVBOHInplVjPdqPZGnlRCThF6B23i3SGdUfW7G5s110dEQcXGWyrdGdnXKiwTkdkcEcTZJjJbsrJCL5ASbmRpGMQTSJLBjEEYZ5WlCbjdkPMtX885yGHzvPezzm/c57z+VR19Xm5032dc/Kcu6/fff++v+ruAAAAwKRdMHQBAAAALAYNKAAAAFOhAQUAAGAqNKAAAABMhQYUAACAqbho6AK265JLLunLL7986DIAWCD33nvvn3b3vqHr2ClzJwDTtt7cOXcN6OWXX56TJ08OXQYAC6Sq/njoGs6HuROAaVtv7rQFFwAAgKnQgAIAADAVGlAAAACmYmINaFW9vaqWq+oP1nm+quotVfVQVX24qr5pUrUAAAAwvEmugL4jybUbPP+yJFeMft2Y5GcnWAsAAAADm1gD2t2/leQzGwy5Lsn/2St+J8kzq+prJlUPAAAAwxryHNBnJ/nE2P1HRo89SVXdWFUnq+rkqVOnplIcAPNr+fSZHDlxV5Y/d2boUgBgLkxr7pyLEKLuvqW7l7p7ad++ub0OOABT8pbf+Gju+fhn8pZf/+jQpQDAXJjW3HnRRP/0jX0yyXPG7l86egwAduTv/Ni/z9nHHv/i/V/84MP5xQ8+nKdddEE+cvxlA1YGALNp2nPnkCugdyT5r0dpuC9I8tnu/tSA9QAw5z7w2hflFc9/Vi5+ysr0dvFTLsh1z39WPvAjLxq4MgCYTdOeOye2AlpVtyV5YZJLquqRJD+e5ClJ0t3/IsmdSV6e5KEkf5nkH06qFgAWw1d+2cV5xtMuytnHHs/TLrogZx97PM942kX5ymdcPHRpADCTpj13TqwB7e7rN3m+k3zfpP5+ABbTnz56NjccuixHD+7PrXc/nFOCiABgQ9OcO2ulD5wfS0tLffLkyaHLAGAAy6fP5Nht9+Xmo1dPdVWzqu7t7qWp/YW7zNwJwLStN3fORQouACTSbQFg3g2ZggsAWyLdFgD2BiugAMw86bYAsDdoQAGYedJtAWBv0IACMLjl02dy5MRdWd4gdW81oe/2m67JDYcuy6lHz06xQgBgNzgHFIDBjYcLHT98YM0xJ179RJDe8VdeNa3SAIBdpAEFYDDChQBgsdiCC8BghAsBwGLRgAIwGOFCALBYbMEFYFCr4UJHD+7PrXc/nFMbBBEBAPNNAwrARC2fPpNjt92Xm49evebKpnAhAFgctuACMFHjCbcAwGKzAgrAREi4BQDOZQUUgImQcAsAnEsDCsBESLgFAM6lAQVgR5ZPn8mRE3dleYPU2tWE29tvuiY3HLospx49O8UKAYBZ4xxQAHZkPFzo+OEDa46RcAsAjNOAArAtwoUAYOs2uxzZorEFF4BtES4EAFvncmRfygooANsiXAgANmfH0NqsgAKwbcKFAGBjdgytzQooAF9iK+eqCBcCgI3ZMbQ2K6AAfAnnqgDA7rBj6Mmqu4euYVuWlpb65MmTQ5cBsOece67KqkU/VyVJqure7l7afORsMncCMG3rzZ1WQAFI4lwVAGDyNKAAJHGuCgAweRpQgAWyfPpMjpy4K8ufO7Pm885VAQAmSQouwAIZDxg6fvjAk56XbgsATJIGFGABuBg2ADALbMEFWAAChuZHVV1bVR+pqoeq6nVrPL+/qt5XVfdV1Yer6uVD1AkAO6EBBVgAAobmQ1VdmOStSV6W5Mok11fVlecM+7Ek7+ruq5O8Ksn/Md0qAWDnbMEFWBCrAUNHD+7PrXc/nFPrBBExqINJHurujyVJVb0zyXVJHhgb00m+bHT7y5P8yVQrBIDzoAEF2AOWT5/Jsdvuy81Hr153VVPA0Fx4dpJPjN1/JMmhc8a8Mcl7q+r7kzw9ybet9QdV1Y1JbkyS/fv373qhALATtuAC7AHj6bbsedcneUd3X5rk5Un+VVU9aT7v7lu6e6m7l/bt2zf1IgFgLRNdAa2qa5O8OcmFSd7W3T91zvP7k/xCkmeOxryuu++cZE0Ae4l02z3nk0meM3b/0tFj416T5Nok6e67quriJJckWZ5KhQBwHia2AipIAWDypNvuOfckuaKqnltVT83K3HjHOWMeTvKSJKmq5yW5OMmpqVYJADs0yS24XwxS6O7PJ1kNUhgnSAHgPEi33Vu6+7Ekx5K8J8mDWTlIe39VvamqXjEa9kNJvreqfi/JbUn+m+7uYSoGgO2Z5BZcQQoA52kr4ULSbfeW0akod57z2BvGbj+Q5Jpp1wUAu2HoFNzVIIV/VlXfnJUghau6+/HxQd19S5JbkmRpaclRXmBhjIcLHT98YM0x0m0BgHkxyQZUkALADgkXAgD2okmeAypIAWCHhAsBAHvRxBpQQQoAOydcCAA2tnz6TI6cuCvLsg/myiRXQNPdd3b313X313b3T44ee0N33zG6/UB3X9Pd39jdz+/u906yHoBZstnEuRoudPtN1+SGQ5fl1KNnp1whAMyu8ZwE5sfQIUQAC2uzgCHhQgDwZHIS5psGFGDKTJwAsHMfeO2LcvzOB/Pe+z+dM194PBc/5YK89Bu+Oq//zucNXRpbMNEtuAA8mYAhANg5OQnzzQoowJSZOAHg/KzmJBw9uD+33v1wTgkimhsaUIABmDgBYOfkJMwvDSjALls+fSbHbrsvNx+9et1VTRMnALCInAMKsMvEwgMArM0KKMAukW4LALAxK6AAu0S6LQDAxjSgALtEui0AwMY0oABbtHz6TI6cuCvLGyTWrqbb3n7TNbnh0GU59ejZKVYIADDbnAMKsEXj4ULHDx9Yc4x0WwCA9WlAATYhXAgAYHfYgguwCeFCAAC7QwMKsAnhQgAAu8MWXIAtWA0XOnpwf269++Gc2iCICACAtWlAAbKScHvstvty89Gr11zZFC4EAHD+bMEFyJcm3AIAMBlWQIGFJuEWAGB6rIACC03CLQDA9GhAgYUm4RYAYHo0oMCetnz6TI6cuCvLG6TWribc3n7TNbnh0GU59ejZKVYIALNlK3Mn7JRzQIE9bTxc6PjhA2uOkXALAE/YytwJO6UBBfYk4UIAsD3mTqbBFlxgTxIuBADbY+5kGjSgwJ4kXAgAtsfcyTTYggvsWavhQkcP7s+tdz+cU8IUAGBD5k4mrbp76Bq2ZWlpqU+ePDl0GcDAlk+fybHb7svNR692ZJaJq6p7u3tp85GzydwJwLStN3faggvMpfGEPgAA5oMtuMBckdAHADC/rIACc0VCHwDA/NKAAnNFQh8AwPzSgAIzZ/n0mRw5cVeW10neW03ou/2ma3LDocty6tGzU64QAICdcA4oMHPGA4aOHz7wpOdPvPqJQLXjr7xqmqXBxFXVtUnenOTCJG/r7p9aY8yRJG9M0kl+r7uPTrVIANghDSgwMwQMseiq6sIkb03y7UkeSXJPVd3R3Q+MjbkiyY8muaa7/7yqvnKYagFg+ya6Bbeqrq2qj1TVQ1X1unXGHKmqB6rq/qq6dZL1ALNNwBDkYJKHuvtj3f35JO9Mct05Y743yVu7+8+TpLuXp1wjAOzYxFZAHcUFtkvAEOTZST4xdv+RJIfOGfN1SVJVv52Vbbpv7O5fPfcPqqobk9yYJPv3759IsQCwXZPcgvvFo7hJUlWrR3EfGBvjKC7wJVYDho4e3J9b7344p9YJIoIFdlGSK5K8MMmlSX6rqg5091+MD+ruW5LckiRLS0s97SIBYC2TbEAdxQW+xPLpMzl22325+ejV665qChhiwX0yyXPG7l86emzcI0k+2N1fSPJHVfX/ZqUhvWc6JQLAzg19GZbxo7jXJ/m5qnrmuYO6+5buXurupX379k25RGC3jKfbAmu6J8kVVfXcqnpqklclueOcMf9XVubNVNUlWTmY+7FpFgkAOzXJFVBHcYEk0m1hq7r7sao6luQ9WdkZ9Pbuvr+q3pTkZHffMXruO6rqgSR/leSHu/vPhqsaALZukiugjuICSaTbwnZ0953d/XXd/bXd/ZOjx94waj7TK36wu6/s7gPd/c5hKwaArZtYA9rdjyVZPYr7YJJ3rR7FrapXjIa9J8mfjY7ivi+O4sKeJN0WAIBksltw0913JrnznMfeMHa7k/zg6Bcwp7YSLiTdFgCAiTagwGIYDxc6fvjAmmOk2wIAoAEFdky4EABs3VZ2DMFeN/RlWIA5JlwIALbO5cjACihwHoQLAcDm7BiCJ1gBBc7LarjQ7TddkxsOXZZTj54duiQAmCl2DMETrIACG9rsfBXhQgCwMTuG4AlWQIENOV8FAM6fHUOwolYuxTk/lpaW+uTJk0OXAXveueerrHK+Couoqu7t7qXNR84mcycA07be3GkFFFiT81UAANhtGlBgTc5XAQBgt2lAYUEtnz6TIyfuyvLnzqw7xvkqAADsJim4sKDGw4WOHz6w5hgJtwAA7CYNKCwYF8MGAGAotuDCghEuBADAUDSgsGCECwEAMJRNG9CqenNV1TSKAaZDuBBMTlVdUFX/eOg6AGAWbWUF9HNJ7qiqpydJVb20qn57smUBO7WVdNsTr17K8VdelSuf9WU5/sqrviRsCDg/3f14kr83dB0AMIs2bUC7+8eS3Jbk/aPG8weTvG7ShQE7M55uCwzmw1X141XlVBcAGLNpCm5VvSTJ9yb5T0m+Jsn3dPdHJl0YsD3SbWGmfEWSb03yP1TVB5N8OMmHu/tfD1sWAAxrK0dmX5/kf+nuFyb5riS/XFUvnmhVwLZJt4XZ0d1Huvt5SS5L8k+SPJTk4LBVAcDwNl0B7e4Xj93+/ap6WZJ/k+RbJlkYsD3SbWH2dPfZJL87+gUAC2/b56Z096eSvGQCtQCb2CxgSLotAACzbNMV0LV09/+324UAmxsPGDp++MCTnh9Psz3+yqumWRoAAGxqRw0oMF0ChgAA2AvEw8McEDAEAMBeoAGFOSBgCADWt1lGAjA7NKAwJwQMAcDaxjMSgNlW3T10DduytLTUJ0+eHLoM2FXLp8/k2G335eajV1vVhBlUVfd299LmI2eTuZO96tyMhFUyEmB4682dVkBhBjhyCwDbJyMB5o8UXBiQdFsA2DkZCTB/rIDCgBy5BYDzIyMB5osVUBiQI7cAcH5OvPqJU8yOv/KqASsBtsIKKEzQVmLhHbkFAGBRWAGFCRoPFzp++MCaYxy5BQBgUWhAYQKECwEAwJNNdAtuVV1bVR+pqoeq6nUbjPv7VdVVNbfXWINxwoUAAODJJtaAVtWFSd6a5GVJrkxyfVVduca4ZyT5gSQfnFQtMG3ChQAA4MkmuQJ6MMlD3f2x7v58kncmuW6NcT+R5KeTrJ/SAnNIuBCwE3YPAbCXTfIc0Gcn+cTY/UeSHBofUFXflOQ53f3vquqH1/uDqurGJDcmyf79+ydQKmzf8ukzOXbbfbn56NVrrmwKFwK2a2z30LdnZd68p6ru6O4Hzhln9xAAc2mwy7BU1QVJ/nmSH9psbHff0t1L3b20b9++yRcHWzCecAuwS+weAmBPm+QK6CeTPGfs/qWjx1Y9I8lVSd5fVUny1UnuqKpXdPfJCdYF50XCLTBBdg8BsKdNcgX0niRXVNVzq+qpSV6V5I7VJ7v7s919SXdf3t2XJ/mdJJpPZp6EW2Aodg8BMO8m1oB292NJjiV5T5IHk7yru++vqjdV1Ssm9ffCpEm4BSZoO7uHPp7kBVnZPSSICIC5MMktuOnuO5Pcec5jb1hn7AsnWQts1WbhQskTCbdHD+7PrXc/nFOfcxoWsCu+uHsoK43nq5IcXX2yuz+b5JLV+1X1/iT/yO4hAObFRBtQmEfj4ULHDx9Yc4yEW2ASuvuxqlrdPXRhkrev7h5KcrK779j4TwCA2aYBhRHhQsAssHsIgL1ssMuwwKwRLgQAAJOlAYUR4UIAADBZtuDCGOFCAAAwORpQFsZW0m2FCwHAl9rK/AmwVbbgsjDG020BgK0xfwK7yQooe550WwDYPvMnMAlWQNnzpNsCwPaZP4FJ0ICy50m3BYDtM38Ck6ABZU9YPn0mR07cleV1UmtX021vv+ma3HDospx69OyUKwSA+WP+BHZbdffQNWzL0tJSnzx5cugymDE/dvvv55fufjg3HNyf44cPDF0OsMdU1b3dvbT5yNlk7gRg2tabO4UQMdcEJAAAwPywBZe5JiABAADmhwaUuSYgAQAA5octuMy91YCEowf359a7H86pdYKIAACAYWlAmWnLp8/k2G335eajV6+7qnni1U+c23z8lVdNqzQAAGCbbMFlpr3lNz6aez7+mbzl1z86dCkAAMB5sgLKTJJuCwAAe48VUGaSdFsAANh7NKDMJOm2AACw92hAGczy6TM5cuKuLK+TWruabnv7TdfkhkOX5dSjZ6dcIQAAsJucA8pgxgOGjh8+8KTnpdsCAMDeogFl6gQMAQDAYrIFl6kTMAQAAItJA8rUCRgCAIDFZAsug1gNGDp6cH9uvfvhnFoniAgAANg7NKDsuuXTZ3Lstvty89Gr113VFDAEAACLxxZcdt14ui0AAMAqK6DsGum2ALB1W9kxBLDXWAFl10i3BYCts2MIWERWQNk10m0BYHN2DAGLzAooW7Z8+kyOnLgryxsk1q6m295+0zW54dBlOfXo2SlWCACzz44hYJFZAWXLxrcKHT98YM0x0m0BYGN2DAGLTAPKpmwVAoDd5XrYwKKaaANaVdcmeXOSC5O8rbt/6pznfzDJf5vksSSnknxPd//xJGti+z7w2hfl+J0P5r33fzpnvvB4Ln7KBXnpN3x1Xv+dzxu6NACYS3YMAYtqYueAVtWFSd6a5GVJrkxyfVVdec6w+5Isdfd/luTdSf7XSdXDztkqBAAA7IZJhhAdTPJQd3+suz+f5J1Jrhsf0N3v6+6/HN39nSSXTrAezoNwIQAA4HxNcgvus5N8Yuz+I0kObTD+NUn+/VpPVNWNSW5Mkv379+9WfYzZ7GLYtgoBAADnayYuw1JV/yDJUpJ/utbz3X1Ldy9199K+ffumW9yCcDFsAABg0ia5AvrJJM8Zu3/p6LEvUVXfluT1Sb61u+3rnDIJtwCzRYAfAHvZJFdA70lyRVU9t6qemuRVSe4YH1BVVyc5keQV3b08wVpYh4thA8wOAX4A7HUTa0C7+7Ekx5K8J8mDSd7V3fdX1Zuq6hWjYf80yd9I8q+r6kNVdcc6fxwTIuEWYKYI8ANgT5vodUC7+84kd57z2BvGbn/bJP9+Ng8XSlwMG2CGCPADYE+baAPK8MbDhY4fPrDmGAm3APNnLMDvW9d6vrtvSXJLkiwtLfUUSwOAdWlA9yjhQgBzSYAfAHvaTFyGhd0nXAhgLgnwA2BP04DuUcKFAOaPAD8A9jpbcPcw4UIA80eAHwB7mQZ0Tm0l3Va4EAAAMEtswZ1T4+m2AAAA88AK6JyRbgsAAMwrK6BzRrotAGxs+fSZHDlxV5ZlHwDMHA3onJFuCwAbc5oKwOyyBXcGbRYwJN0WAJ7MaSoAs08DOoPGj9weP3zgSc9LtwWAJ/vAa1+U43c+mPfe/+mc+cLjufgpF+Sl3/DVef13Pm/o0gAY0YDOEEduAWDnnKYCMPucAzpDBAwBwPlZPU3l9puuyQ2HLsupR88OXRIAY6yAzhBHbgHg/DhNBWC2aUBnjIAhAABgr9KATtFm6baJI7cAAMDe5RzQKXJdMgAAYJFZAZ0C6bYAAABWQKdCui0AAIAGdCqk2wIAAGhAd8Xy6TM5cuKuLG+QWOu6ZAAAwKJzDuguGA8XOn74wJpjpNsCAACLTgN6HoQLAQAAbJ0tuOdBuBAAAMDWaUDPg3AhAACArbMF9zythgsdPbg/t979cE5tEEQEAACwyDSgm1g+fSbHbrsvNx+9es2VTeFCAAAAW2ML7ibGE24BAADYOSug65BwCwAAsLusgK5Dwi0AAMDu0oCuQ8ItAADA7lrYBnT59JkcOXFXljdIrV1NuL39pmtyw6HLcurRs1OsEABmy1bmTgDYyMKeAzoeLnT88IE1x0i4BYAnbGXuBICNLFwDKlwIALbH3AnAbpnoFtyquraqPlJVD1XV69Z4/mlV9cuj5z9YVZdPsp5EuBAAbJe5E4DdMrEGtKouTPLWJC9LcmWS66vqynOGvSbJn3f3307yM0l+elL1rBIuBADbY+4EYLdMcgvuwSQPdffHkqSq3pnkuiQPjI25LskbR7ffneTmqqru7gnW9cVwoaMH9+fWux/OKWEKALAhcycAu2GSDeizk3xi7P4jSQ6tN6a7H6uqzyb5W0n+dHxQVd2Y5MYk2b9//3kXJlwIALbH3AnAbpiLy7B09y3dvdTdS/v27Ru6HAAAAHZgkg3oJ5M8Z+z+paPH1hxTVRcl+fIkfzbBmgAAABjIJBvQe5JcUVXPraqnJnlVkjvOGXNHku8e3f6uJL856fM/AQAAGMbEzgEdndN5LMl7klyY5O3dfX9VvSnJye6+I8nPJ/lXVfVQks9kpUkFAABgD5pkCFG6+84kd57z2BvGbp9J8l9NsgYAAABmw1yEEAEAADD/NKAAAABMRc1b5k9VnUryx7v0x12Sc645Omfmvf5k/l+D+oc17/Un8/8aFqX+y7p7bq8DZu6cad7P3eO93F3ez921iO/nmnPn3DWgu6mqTnb30uYjZ9O815/M/2tQ/7Dmvf5k/l+D+heP92x3eT93j/dyd3k/d5f38wm24AIAADAVGlAAAACmYtEb0FuGLuA8zXv9yfy/BvUPa97rT+b/Nah/8XjPdpf3c/d4L3eX93N3eT9HFvocUAAAAKZn0VdAAQAAmBINKAAAAFOxkA1oVV1bVR+pqoeq6nVD17MTVfXxqvr9qvpQVZ0cup7NVNXbq2q5qv5g7LGvqKpfq6qPjn7/m0PWuJl1XsMbq+qTo8/hQ1X18iFr3EhVPaeq3ldVD1TV/VX1A6PH5+Jz2KD+ufgMquriqrq7qn5vVP8/GT3+3Kr64Oj76Jer6qlD17qWDep/R1X90dj7//yha91MVV1YVfdV1a+M7s/FZzAL9sL8OQvW+z7j/Jz7s83OVdUzq+rdVfWHVfVgVX3z0DXNq6r6n0c/539QVbdV1cVD1zS0hWtAq+rCJG9N8rIkVya5vqquHLaqHXtRdz9/Tq4p9I4k157z2OuS/EZ3X5HkN0b3Z9k78uTXkCQ/M/ocnt/dd065pu14LMkPdfeVSV6Q5PtG/+/Py+ewXv3JfHwGZ5O8uLu/Mcnzk1xbVS9I8tNZqf9vJ/nzJK8ZsMaNrFd/kvzw2Pv/oeFK3LIfSPLg2P15+QwGtcfmz6Ft9H3Gzp37s83OvTnJr3b31yf5xnhfd6Sqnp3kf0yy1N1XJbkwyauGrWp4C9eAJjmY5KHu/lh3fz7JO5NcN3BNe153/1aSz5zz8HVJfmF0+xeSvHKqRW3TOq9hbnT3p7r7d0e3P5eVyeTZmZPPYYP650KveHR09ymjX53kxUnePXp8lt//9eqfK1V1aZLvTPK20f3KnHwGM8D8uUvm/ftsFp37s83OVdWXJ/m7SX4+Sbr78939F8NWNdcuSvLXquqiJH89yZ8MXM/gFrEBfXaST4zdfyTz+aXfSd5bVfdW1Y1DF7NDX9Xdnxrd/nSSrxqymPNwrKo+PNqiO5PbV89VVZcnuTrJBzOHn8M59Sdz8hmMtod9KMlykl9L8h+S/EV3PzYaMtPfR+fW392r7/9Pjt7/n6mqpw1Y4lb870lem+Tx0f2/lTn6DAa2V+bPmbLG9xk7c+7PNjv33CSnkvzL0Zbmt1XV04cuah519yeT/G9JHk7yqSSf7e73DlvV8BaxAd0r/ovu/qasbIX6vqr6u0MXdD565XpAc7eakuRnk3xtVrYkfirJPxu2nM1V1d9I8m+S/E/dfXr8uXn4HNaof24+g+7+q+5+fpJLs7Ka9PUDl7Qt59ZfVVcl+dGsvI7/PMlXJPmRAUvcUFX9vSTL3X3v0LVAsvH3MVvnZ3vXXZTkm5L8bHdfneQ/ZXZPz5lpo4Pi12WlqX9WkqdX1T8YtqrhLWID+skkzxm7f+nosbkyOqKS7l5OcntW/jE7b/5jVX1Nkox+Xx64nm3r7v84+kf540l+LjP+OVTVU7Lyj51f6u5/O3p4bj6Hteqft88gSUZbmd6X5JuTPHO0LSeZk++jsfqvHW0l7O4+m+RfZrbf/2uSvKKqPp6V7aMvzsp5TnP3GQxkT8yfs2Kd72N25kk/21X1i8OWNNceSfLI2C6Xd2elIWX7vi3JH3X3qe7+QpJ/m+RbBq5pcIvYgN6T5IpR6uFTs3Ii8B0D17QtVfX0qnrG6u0k35HkDzb+r2bSHUm+e3T7u5P83wPWsiOrjdvI4czw5zA61+3nkzzY3f987Km5+BzWq39ePoOq2ldVzxzd/mtJvj0r5329L8l3jYbN8vu/Vv1/OHbworJy7uRMvv9J0t0/2t2XdvflWfnu/83uviFz8hnMgLmfP2fFBt/H7MA6P9sLv8q0U9396SSfqKq/M3roJUkeGLCkefZwkhdU1V8f/dy/JAKdctHmQ/aW7n6sqo4leU9Wkqje3t33D1zWdn1VkttX/j/ORUlu7e5fHbakjVXVbUlemOSSqnokyY8n+akk76qq1yT54yRHhqtwc+u8hheOLjvRST6e5L8brMDNXZPk1Ul+f3QeX5L848zP57Be/dfPyWfwNUl+YZQkekGSd3X3r1TVA0neWVXHk9yXUejDDFqv/t+sqn1JKsmHkvz3Qxa5Qz+S+fgMBrVH5s9Zseb32QyneLN4vj/JL40ONn0syT8cuJ651N0frKp3J/ndrKRf35fklmGrGl6tnPIFAAAAk7WIW3ABAAAYgAYUAACAqdCAAgAAMBUaUAAAAKZCAwoAAMBUaEBhTlXV/7PN8S+sql+ZVD0AMOvMnTA8DSjMqe7+lqFrAIB5Yu6E4WlAYU5V1aOj319YVe+vqndX1RLpIVYAAAGPSURBVB9W1S9VVY2eu3b02O8m+S/H/tunV9Xbq+ruqrqvqq4bPf7mqnrD6PZLq+q3qsr3BAB7grkThnfR0AUAu+LqJN+Q5E+S/HaSa6rqZJKfS/LiJA8l+eWx8a9P8pvd/T1V9cwkd1fVryf50ST3VNUHkrwlycu7+/Epvg4AmBZzJwzA0RnYG+7u7kdGE96Hklye5OuT/FF3f7S7O8kvjo3/jiSvq6oPJXl/kouT7O/uv0zyvUl+LcnN3f0fpvgaAGCazJ0wACugsDecHbv9V9n8Z7uS/P3u/sgazx1I8mdJnrVLtQHALDJ3wgCsgMLe9YdJLq+qrx3dv37sufck+f6x812uHv1+WZIfysq2pJdV1aEp1gsAQzN3woRpQGGP6u4zSW5M8u9GQQrLY0//RJKnJPlwVd2f5CdGE+rPJ/lH3f0nSV6T5G1VdfGUSweAQZg7YfJqZXs7AAAATJYVUAAAAKZCAwoAAMBUaEABAACYCg0oAAAAU6EBBQAAYCo0oAAAAEyFBhQAAICp+P8B/PcuHa5vxzkAAAAASUVORK5CYII=\n", "text/plain": [ "

" ] @@ -338,7 +338,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -469,7 +469,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deXhV1dXH8e9KCAljmCICQaEWJ8IchgooKigOgAMCiqJWRFHAgm21yqso9q1FCxX1dUCoEw60WgXHOiuKkqCCEgcQVAKIDBJIyJz9/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": "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", "text/plain": [ "
" ] @@ -549,7 +549,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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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", "text/plain": [ "
" ] @@ -892,7 +892,7 @@ { "data": { "text/plain": [ - "0.37473963500000007" + "0.35892684799999586" ] }, "execution_count": 25, @@ -1237,7 +1237,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/examples/notebooks/using-submodels.ipynb b/examples/notebooks/using-submodels.ipynb index ffe6892cba..c8855a5e84 100644 --- a/examples/notebooks/using-submodels.ipynb +++ b/examples/notebooks/using-submodels.ipynb @@ -61,21 +61,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "external circuit \n", - "porosity \n", - "electrolyte tortuosity \n", - "electrode tortuosity \n", - "convection \n", - "negative interface \n", - "positive interface \n", - "negative particle \n", - "positive particle \n", - "negative electrode \n", - "leading-order electrolyte conductivity \n", - "electrolyte diffusion \n", - "positive electrode \n", - "thermal \n", - "current collector \n" + "external circuit \n", + "porosity \n", + "electrolyte tortuosity \n", + "electrode tortuosity \n", + "convection \n", + "negative interface \n", + "positive interface \n", + "negative particle \n", + "positive particle \n", + "negative electrode \n", + "leading-order electrolyte conductivity \n", + "electrolyte diffusion \n", + "positive electrode \n", + "thermal \n", + "current collector \n" ] } ], @@ -132,21 +132,21 @@ "name": "stdout", "output_type": "stream", "text": [ - "external circuit \n", - "porosity \n", - "electrolyte tortuosity \n", - "electrode tortuosity \n", - "convection \n", - "negative interface \n", - "positive interface \n", - "negative particle \n", - "positive particle \n", - "negative electrode \n", - "leading-order electrolyte conductivity \n", - "electrolyte diffusion \n", - "positive electrode \n", - "thermal \n", - "current collector \n" + "external circuit \n", + "porosity \n", + "electrolyte tortuosity \n", + "electrode tortuosity \n", + "convection \n", + "negative interface \n", + "positive interface \n", + "negative particle \n", + "positive particle \n", + "negative electrode \n", + "leading-order electrolyte conductivity \n", + "electrolyte diffusion \n", + "positive electrode \n", + "thermal \n", + "current collector \n" ] } ], @@ -213,9 +213,9 @@ { "data": { "text/plain": [ - "{Variable(-0x2c47f6fd051d1243, Discharge capacity [A.h], children=[], domain=[], auxiliary_domains={}): Division(-0x70df7b427b87dd10, /, children=['Current function [A] * 96485.33289 * 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(0x5e5659f748ce0d05, X-averaged negative particle surface concentration, children=[], domain=['current collector'], auxiliary_domains={}): Division(0x4b85bce951b678a1, /, children=['-3.0 * broadcast(Current function [A] / Typical current [A] * function (sign)) / Negative electrode thickness [m] / Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m]', 'Negative electrode surface area density [m-1] * Negative particle radius [m]'], domain=['current collector'], auxiliary_domains={}),\n", - " Variable(0x69c21118c2fdf5f5, X-averaged positive particle concentration, children=[], domain=['positive particle'], auxiliary_domains={'secondary': \"['current collector']\"}): Multiplication(-0x6f1911180dfd65f9, *, children=['-1.0 / Positive particle radius [m] ** 2.0 / Positive electrode diffusivity [m2.s-1] / 96485.33289 * 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(0xed7452bed2f1969, Discharge capacity [A.h], children=[], domain=[], auxiliary_domains={}): Division(0x381d630aa1528443, /, 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(0x5f6d314a2ae28139, X-averaged negative particle surface concentration, children=[], domain=['current collector'], auxiliary_domains={}): Division(-0x51e6c8f5bc31c548, /, children=['-3.0 * broadcast(Current function [A] / Typical current [A] * function (sign)) / Negative electrode thickness [m] / Negative electrode thickness [m] + Separator thickness [m] + Positive electrode thickness [m]', 'Negative electrode surface area density [m-1] * Negative particle radius [m]'], domain=['current collector'], auxiliary_domains={}),\n", + " Variable(0x25e9b81e826ecc78, X-averaged positive particle concentration, children=[], domain=['positive particle'], auxiliary_domains={'secondary': \"['current collector']\"}): Multiplication(0x2cd744f1f248da68, *, 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, @@ -241,7 +241,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -412,11 +412,10 @@ "metadata": {}, "outputs": [], "source": [ - "electrolyte = pybamm.electrolyte.stefan_maxwell\n", - "model.submodels[\"electrolyte diffusion\"] = electrolyte.diffusion.ConstantConcentration(\n", + "model.submodels[\"electrolyte diffusion\"] = pybamm.electrolyte_diffusion.ConstantConcentration(\n", " model.param\n", ")\n", - "model.submodels[\"electrolyte conductivity\"] = electrolyte.conductivity.LeadingOrder(\n", + "model.submodels[\"electrolyte conductivity\"] = pybamm.electrolyte_conductivity.LeadingOrder(\n", " model.param\n", ")" ] @@ -467,7 +466,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -540,7 +539,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.3" + "version": "3.7.7" } }, "nbformat": 4, diff --git a/examples/scripts/compare_lead_acid.py b/examples/scripts/compare_lead_acid.py index 4c2b1bad67..eb9548f554 100644 --- a/examples/scripts/compare_lead_acid.py +++ b/examples/scripts/compare_lead_acid.py @@ -17,9 +17,9 @@ # load models models = [ - pybamm.lead_acid.LOQS(), - # pybamm.lead_acid.FOQS(), - pybamm.lead_acid.Composite(), + # pybamm.lead_acid.LOQS(), + # # pybamm.lead_acid.FOQS(), + # pybamm.lead_acid.Composite(), pybamm.lead_acid.Full(), ] diff --git a/examples/scripts/custom_model.py b/examples/scripts/custom_model.py index 0a6429357a..8d0879ae0e 100644 --- a/examples/scripts/custom_model.py +++ b/examples/scripts/custom_model.py @@ -34,13 +34,12 @@ model.submodels["positive interface"] = pybamm.interface.InverseButlerVolmer( model.param, "Positive", "lithium-ion main" ) -electrolyte = pybamm.electrolyte.stefan_maxwell -model.submodels["electrolyte diffusion"] = electrolyte.diffusion.ConstantConcentration( - model.param -) -model.submodels["electrolyte conductivity"] = electrolyte.conductivity.LeadingOrder( - model.param -) +model.submodels[ + "electrolyte diffusion" +] = pybamm.electrolyte_diffusion.ConstantConcentration(model.param) +model.submodels[ + "electrolyte conductivity" +] = pybamm.electrolyte_conductivity.LeadingOrder(model.param) # build model model.build_model() diff --git a/pybamm/__init__.py b/pybamm/__init__.py index f3240dc0c1..7292636f60 100644 --- a/pybamm/__init__.py +++ b/pybamm/__init__.py @@ -123,7 +123,8 @@ def version(formatted=False): from .models.submodels import ( convection, current_collector, - electrolyte, + electrolyte_conductivity, + electrolyte_diffusion, electrode, external_circuit, interface, diff --git a/pybamm/models/full_battery_models/lead_acid/full.py b/pybamm/models/full_battery_models/lead_acid/full.py index 02d6afc23b..35bbda54bf 100644 --- a/pybamm/models/full_battery_models/lead_acid/full.py +++ b/pybamm/models/full_battery_models/lead_acid/full.py @@ -81,17 +81,16 @@ def set_solid_submodel(self): def set_electrolyte_submodel(self): - electrolyte = pybamm.electrolyte.stefan_maxwell - surf_form = electrolyte.conductivity.surface_potential_form + surf_form = pybamm.electrolyte_conductivity.surface_potential_form - self.submodels["electrolyte diffusion"] = electrolyte.diffusion.Full( + self.submodels["electrolyte diffusion"] = pybamm.electrolyte_diffusion.Full( self.param, self.reactions ) if self.options["surface form"] is False: - self.submodels["electrolyte conductivity"] = electrolyte.conductivity.Full( - self.param, self.reactions - ) + self.submodels[ + "electrolyte conductivity" + ] = pybamm.electrolyte_conductivity.Full(self.param, self.reactions) elif self.options["surface form"] == "differential": for domain in ["Negative", "Separator", "Positive"]: self.submodels[ diff --git a/pybamm/models/full_battery_models/lead_acid/higher_order.py b/pybamm/models/full_battery_models/lead_acid/higher_order.py index ef61ae462a..3fa39ad744 100644 --- a/pybamm/models/full_battery_models/lead_acid/higher_order.py +++ b/pybamm/models/full_battery_models/lead_acid/higher_order.py @@ -111,7 +111,9 @@ def set_average_interfacial_submodel(self): def set_electrolyte_conductivity_submodel(self): self.submodels[ "electrolyte conductivity" - ] = pybamm.electrolyte.stefan_maxwell.conductivity.FirstOrder(self.param) + ] = pybamm.electrolyte_conductivity.Composite( + self.param, higher_order_terms="first-order" + ) def set_negative_electrode_submodel(self): self.submodels["negative electrode"] = pybamm.electrode.ohm.Composite( @@ -202,9 +204,7 @@ def __init__(self, options=None, name="FOQS model", build=True): def set_electrolyte_diffusion_submodel(self): self.submodels[ "electrolyte diffusion" - ] = pybamm.electrolyte.stefan_maxwell.diffusion.FirstOrder( - self.param, self.reactions - ) + ] = pybamm.electrolyte_diffusion.FirstOrder(self.param, self.reactions) def set_other_species_diffusion_submodels(self): if "oxygen" in self.options["side reactions"]: @@ -234,9 +234,7 @@ def __init__(self, options=None, name="Composite model", build=True): def set_electrolyte_diffusion_submodel(self): self.submodels[ "electrolyte diffusion" - ] = pybamm.electrolyte.stefan_maxwell.diffusion.Composite( - self.param, self.reactions - ) + ] = pybamm.electrolyte_diffusion.Composite(self.param, self.reactions) def set_other_species_diffusion_submodels(self): if "oxygen" in self.options["side reactions"]: @@ -283,7 +281,7 @@ def __init__(self, options=None, name="Extended composite model", build=True): def set_electrolyte_diffusion_submodel(self): self.submodels[ "electrolyte diffusion" - ] = pybamm.electrolyte.stefan_maxwell.diffusion.Composite( + ] = pybamm.electrolyte_diffusion.Composite( self.param, self.reactions, extended=True ) diff --git a/pybamm/models/full_battery_models/lead_acid/loqs.py b/pybamm/models/full_battery_models/lead_acid/loqs.py index 8855242565..a499bddfea 100644 --- a/pybamm/models/full_battery_models/lead_acid/loqs.py +++ b/pybamm/models/full_battery_models/lead_acid/loqs.py @@ -163,13 +163,12 @@ def set_positive_electrode_submodel(self): def set_electrolyte_submodel(self): - electrolyte = pybamm.electrolyte.stefan_maxwell - surf_form = electrolyte.conductivity.surface_potential_form + surf_form = pybamm.electrolyte_conductivity.surface_potential_form if self.options["surface form"] is False: self.submodels[ "leading-order electrolyte conductivity" - ] = electrolyte.conductivity.LeadingOrder(self.param) + ] = pybamm.electrolyte_conductivity.LeadingOrder(self.param) elif self.options["surface form"] == "differential": for domain in ["Negative", "Separator", "Positive"]: @@ -185,9 +184,9 @@ def set_electrolyte_submodel(self): "leading-order " + domain.lower() + " electrolyte conductivity" ] = surf_form.LeadingOrderAlgebraic(self.param, domain, self.reactions) - self.submodels["electrolyte diffusion"] = electrolyte.diffusion.LeadingOrder( - self.param, self.reactions - ) + self.submodels[ + "electrolyte diffusion" + ] = pybamm.electrolyte_diffusion.LeadingOrder(self.param, self.reactions) def set_side_reaction_submodels(self): if "oxygen" in self.options["side reactions"]: diff --git a/pybamm/models/full_battery_models/lithium_ion/dfn.py b/pybamm/models/full_battery_models/lithium_ion/dfn.py index 5bf6354b47..7ff42ab4c0 100644 --- a/pybamm/models/full_battery_models/lithium_ion/dfn.py +++ b/pybamm/models/full_battery_models/lithium_ion/dfn.py @@ -98,17 +98,16 @@ def set_solid_submodel(self): def set_electrolyte_submodel(self): - electrolyte = pybamm.electrolyte.stefan_maxwell - surf_form = electrolyte.conductivity.surface_potential_form + surf_form = pybamm.electrolyte_conductivity.surface_potential_form - self.submodels["electrolyte diffusion"] = electrolyte.diffusion.Full( + self.submodels["electrolyte diffusion"] = pybamm.electrolyte_diffusion.Full( self.param, self.reactions ) if self.options["surface form"] is False: - self.submodels["electrolyte conductivity"] = electrolyte.conductivity.Full( - self.param, self.reactions - ) + self.submodels[ + "electrolyte conductivity" + ] = pybamm.electrolyte_conductivity.Full(self.param, self.reactions) elif self.options["surface form"] == "differential": for domain in ["Negative", "Separator", "Positive"]: self.submodels[ diff --git a/pybamm/models/full_battery_models/lithium_ion/spm.py b/pybamm/models/full_battery_models/lithium_ion/spm.py index 5acd8a19e9..14f1090e37 100644 --- a/pybamm/models/full_battery_models/lithium_ion/spm.py +++ b/pybamm/models/full_battery_models/lithium_ion/spm.py @@ -107,13 +107,12 @@ def set_positive_electrode_submodel(self): def set_electrolyte_submodel(self): - electrolyte = pybamm.electrolyte.stefan_maxwell - surf_form = electrolyte.conductivity.surface_potential_form + surf_form = pybamm.electrolyte_conductivity.surface_potential_form if self.options["surface form"] is False: self.submodels[ "leading-order electrolyte conductivity" - ] = electrolyte.conductivity.LeadingOrder(self.param) + ] = pybamm.electrolyte_conductivity.LeadingOrder(self.param) elif self.options["surface form"] == "differential": for domain in ["Negative", "Separator", "Positive"]: @@ -130,7 +129,7 @@ def set_electrolyte_submodel(self): ] = surf_form.LeadingOrderAlgebraic(self.param, domain, self.reactions) self.submodels[ "electrolyte diffusion" - ] = electrolyte.diffusion.ConstantConcentration(self.param) + ] = pybamm.electrolyte_diffusion.ConstantConcentration(self.param) @property def default_geometry(self): diff --git a/pybamm/models/full_battery_models/lithium_ion/spme.py b/pybamm/models/full_battery_models/lithium_ion/spme.py index 4317cdb1a7..2cfa09efc5 100644 --- a/pybamm/models/full_battery_models/lithium_ion/spme.py +++ b/pybamm/models/full_battery_models/lithium_ion/spme.py @@ -109,12 +109,10 @@ def set_positive_electrode_submodel(self): def set_electrolyte_submodel(self): - electrolyte = pybamm.electrolyte.stefan_maxwell - - self.submodels["electrolyte conductivity"] = electrolyte.conductivity.Composite( - self.param - ) - self.submodels["electrolyte diffusion"] = electrolyte.diffusion.Full( + self.submodels[ + "electrolyte conductivity" + ] = pybamm.electrolyte_conductivity.Composite(self.param) + self.submodels["electrolyte diffusion"] = pybamm.electrolyte_diffusion.Full( self.param, self.reactions ) diff --git a/pybamm/models/submodels/electrolyte/__init__.py b/pybamm/models/submodels/electrolyte/__init__.py deleted file mode 100644 index a0f4c3efc2..0000000000 --- a/pybamm/models/submodels/electrolyte/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .base_electrolyte_conductivity import BaseElectrolyteConductivity -from .base_electrolyte_diffusion import BaseElectrolyteDiffusion - -from . import stefan_maxwell diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/__init__.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/__init__.py deleted file mode 100644 index 7a4ee7192e..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from . import conductivity -from . import diffusion diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/__init__.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/__init__.py deleted file mode 100644 index 92f95a4d20..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .base_stefan_maxwell_conductivity import BaseModel -from .base_higher_order_stefan_maxwell_conductivity import BaseHigherOrder -from .leading_stefan_maxwell_conductivity import LeadingOrder -from .first_order_stefan_maxwell_conductivity import FirstOrder -from .composite_stefan_maxwell_conductivity import Composite -from .full_stefan_maxwell_conductivity import Full - -from . import surface_potential_form diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.py deleted file mode 100644 index 6c1766d503..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_stefan_maxwell_conductivity.py +++ /dev/null @@ -1,34 +0,0 @@ -# -# Base class for electrolyte conductivity employing stefan-maxwell -# -from ...base_electrolyte_conductivity import BaseElectrolyteConductivity -import pybamm - - -class BaseModel(BaseElectrolyteConductivity): - """Base class for conservation of charge in the electrolyte employing the - Stefan-Maxwell constitutive equations. - - Parameters - ---------- - param : parameter class - The parameters to use for this submodel - domain : str, optional - The domain in which the model holds - reactions : dict, optional - Dictionary of reaction terms - - **Extends:** :class:`pybamm.electrolyte.BaseElectrolyteConductivity` - """ - - def __init__(self, param, domain=None, reactions=None): - super().__init__(param, domain, reactions) - - def set_boundary_conditions(self, variables): - phi_e = variables["Electrolyte potential"] - self.boundary_conditions = { - phi_e: { - "left": (pybamm.Scalar(0), "Neumann"), - "right": (pybamm.Scalar(0), "Neumann"), - } - } diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.py deleted file mode 100644 index 191cd8f7ad..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/composite_stefan_maxwell_conductivity.py +++ /dev/null @@ -1,33 +0,0 @@ -# -# Class for the composite electrolyte potential employing stefan-maxwell -# -import pybamm -from .base_higher_order_stefan_maxwell_conductivity import BaseHigherOrder - - -class Composite(BaseHigherOrder): - """Class for conservation of charge in the electrolyte employing the - Stefan-Maxwell constitutive equations. (Composite refers to a composite - leading and first-order expression from the asymptotic reduction) - - Parameters - ---------- - param : parameter class - The parameters to use for this submodel - domain : str, optional - The domain in which the model holds - - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.BaseHigerOrder` - """ - - def __init__(self, param, domain=None): - super().__init__(param, domain) - - def _higher_order_macinnes_function(self, x): - "Use log for composite higher order terms" - return pybamm.log(x) - - def unpack(self, variables): - "Unpack variables and return average values" - c_e_av = variables["X-averaged electrolyte concentration"] - return c_e_av diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/first_order_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/first_order_stefan_maxwell_conductivity.py deleted file mode 100644 index d608914f14..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/first_order_stefan_maxwell_conductivity.py +++ /dev/null @@ -1,32 +0,0 @@ -# -# Class for the first-order electrolyte potential employing stefan-maxwell -# -from .base_higher_order_stefan_maxwell_conductivity import BaseHigherOrder - - -class FirstOrder(BaseHigherOrder): - """Class for conservation of charge in the electrolyte employing the - Stefan-Maxwell constitutive equations. (First order refers to a first-order - expression from the asymptotic reduction) - - Parameters - ---------- - param : parameter class - The parameters to use for this submodel - domain : str, optional - The domain in which the model holds - - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.BaseHigerOrder` - """ - - def __init__(self, param, domain=None): - super().__init__(param, domain) - - def _higher_order_macinnes_function(self, x): - "Linear higher order terms" - return x - - def unpack(self, variables): - "Unpack variables and return leading-order x-averaged values" - c_e_av = variables["Leading-order x-averaged electrolyte concentration"] - return c_e_av diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/__init__.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/__init__.py deleted file mode 100644 index 29bbb5f496..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from .base_stefan_maxwell_diffusion import BaseModel -from .leading_stefan_maxwell_diffusion import LeadingOrder -from .first_order_stefan_maxwell_diffusion import FirstOrder -from .composite_stefan_maxwell_diffusion import Composite -from .full_stefan_maxwell_diffusion import Full -from .constant_stefan_maxwell_diffusion import ConstantConcentration diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.py b/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.py deleted file mode 100644 index 4e563f0c06..0000000000 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/base_stefan_maxwell_diffusion.py +++ /dev/null @@ -1,34 +0,0 @@ -# -# Base class for electrolyte diffusion employing stefan-maxwell -# -from ...base_electrolyte_diffusion import BaseElectrolyteDiffusion -import pybamm - - -class BaseModel(BaseElectrolyteDiffusion): - """Base class for conservation of mass in the electrolyte employing the - Stefan-Maxwell constitutive equations. - - Parameters - ---------- - param : parameter class - The parameters to use for this submodel - reactions : dict, optional - Dictionary of reaction terms - - **Extends:** :class:`pybamm.electrolyte.BaseElectrolyteDiffusion` - """ - - def __init__(self, param, reactions=None): - super().__init__(param, reactions) - - def set_boundary_conditions(self, variables): - - c_e = variables["Electrolyte concentration"] - - self.boundary_conditions = { - c_e: { - "left": (pybamm.Scalar(0), "Neumann"), - "right": (pybamm.Scalar(0), "Neumann"), - } - } diff --git a/pybamm/models/submodels/electrolyte_conductivity/__init__.py b/pybamm/models/submodels/electrolyte_conductivity/__init__.py new file mode 100644 index 0000000000..70ba955ff8 --- /dev/null +++ b/pybamm/models/submodels/electrolyte_conductivity/__init__.py @@ -0,0 +1,6 @@ +from .base_electrolyte_conductivity import BaseElectrolyteConductivity +from .leading_order_conductivity import LeadingOrder +from .composite_conductivity import Composite +from .full_conductivity import Full + +from . import surface_potential_form diff --git a/pybamm/models/submodels/electrolyte/base_electrolyte_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py similarity index 97% rename from pybamm/models/submodels/electrolyte/base_electrolyte_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py index b282465c7b..9edd9291ec 100644 --- a/pybamm/models/submodels/electrolyte/base_electrolyte_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py @@ -289,3 +289,12 @@ def _get_whole_cell_variables(self, variables): variables.update(self._get_standard_current_variables(i_e)) return variables + + def set_boundary_conditions(self, variables): + phi_e = variables["Electrolyte potential"] + self.boundary_conditions = { + phi_e: { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_higher_order_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py similarity index 84% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_higher_order_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py index bcbd59b878..da7b883ef2 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/base_higher_order_stefan_maxwell_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py @@ -1,11 +1,11 @@ # -# Base class for higher order electrolyte potential employing stefan-maxwell +# Composite electrolyte potential employing stefan-maxwell # import pybamm -from .base_stefan_maxwell_conductivity import BaseModel +from .base_electrolyte_conductivity import BaseElectrolyteConductivity -class BaseHigherOrder(BaseModel): +class Composite(BaseElectrolyteConductivity): """Base class for conservation of charge in the electrolyte employing the Stefan-Maxwell constitutive equations. @@ -13,24 +13,30 @@ class BaseHigherOrder(BaseModel): ---------- param : parameter class The parameters to use for this submodel + higher_order_terms : str + What kind of higher-order terms to use ('composite' or 'first-order') domain : str, optional The domain in which the model holds - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.BaseModel` + **Extends:** :class:`pybamm.electrolyte_conductivity.BaseElectrolyteConductivity` """ - def __init__(self, param, domain=None): + def __init__(self, param, domain=None, higher_order_terms="composite"): super().__init__(param, domain) + self.higher_order_terms = higher_order_terms def _higher_order_macinnes_function(self, x): "Function to differentiate between composite and first-order models" - raise NotImplementedError - - def unpack(self, variables): - raise NotImplementedError + if self.higher_order_terms == "composite": + return pybamm.log(x) + elif self.higher_order_terms == "first-order": + return x def get_coupled_variables(self, variables): - c_e_av = self.unpack(variables) + if self.higher_order_terms == "composite": + c_e_av = variables["X-averaged electrolyte concentration"] + elif self.higher_order_terms == "first-order": + c_e_av = variables["Leading-order x-averaged electrolyte concentration"] i_boundary_cc_0 = variables["Leading-order current collector current density"] c_e = variables["Electrolyte concentration"] diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py similarity index 91% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py index e15320b273..608c4bfc7e 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/full_stefan_maxwell_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py @@ -3,10 +3,10 @@ # import pybamm -from .base_stefan_maxwell_conductivity import BaseModel +from .base_electrolyte_conductivity import BaseElectrolyteConductivity -class Full(BaseModel): +class Full(BaseElectrolyteConductivity): """Full model for conservation of charge in the electrolyte employing the Stefan-Maxwell constitutive equations. (Full refers to unreduced by asymptotic methods) @@ -18,7 +18,7 @@ class Full(BaseModel): reactions : dict Dictionary of reaction terms - **Extends:** :class:`pybamm.BaseStefanMaxwellConductivity` + **Extends:** :class:`pybamm.electrolyte_conductivity.BaseElectrolyteConductivity` """ def __init__(self, param, reactions): diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py similarity index 91% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py index 4c094d2cdf..f1841f5d7a 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/leading_stefan_maxwell_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py @@ -2,10 +2,10 @@ # Class for the leading-order electrolyte potential employing stefan-maxwell # import pybamm -from .base_stefan_maxwell_conductivity import BaseModel +from .base_electrolyte_conductivity import BaseElectrolyteConductivity -class LeadingOrder(BaseModel): +class LeadingOrder(BaseElectrolyteConductivity): """Leading-order model for conservation of charge in the electrolyte employing the Stefan-Maxwell constitutive equations. (Leading refers to leading-order in the asymptotic reduction) @@ -19,7 +19,7 @@ class LeadingOrder(BaseModel): reactions : dict, optional Dictionary of reaction terms - **Extends:** :class:`pybamm.BaseStefanMaxwellConductivity` + **Extends:** :class:`pybamm.electrolyte_conductivity.BaseElectrolyteConductivity` """ def __init__(self, param, domain=None, reactions=None): diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/__init__.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py similarity index 100% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/__init__.py rename to pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py similarity index 84% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py index ec55d41038..2bf42183bb 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py @@ -2,12 +2,10 @@ # Class for full surface form electrolyte conductivity employing stefan-maxwell # import pybamm -from ..base_stefan_maxwell_conductivity import ( - BaseModel as BaseStefanMaxwellConductivity, -) +from ..base_electrolyte_conductivity import BaseElectrolyteConductivity -class BaseModel(BaseStefanMaxwellConductivity): +class BaseModel(BaseElectrolyteConductivity): """Base class for conservation of charge in the electrolyte employing the Stefan-Maxwell constitutive equations employing the surface potential difference formulation. @@ -21,7 +19,7 @@ class BaseModel(BaseStefanMaxwellConductivity): reactions : dict Dictionary of reaction terms - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.BaseModel` + **Extends:** :class:`pybamm.electrolyte_conductivity.BaseElectrolyteConductivity` """ def __init__(self, param, domain, reactions): @@ -39,18 +37,6 @@ def get_fundamental_variables(self): return variables - def set_initial_conditions(self, variables): - if self.domain == "Separator": - return - - delta_phi_e = variables[self.domain + " electrode surface potential difference"] - if self.domain == "Negative": - delta_phi_e_init = self.param.U_n(self.param.c_n_init(0), self.param.T_init) - elif self.domain == "Positive": - delta_phi_e_init = self.param.U_p(self.param.c_p_init(1), self.param.T_init) - - self.initial_conditions = {delta_phi_e: delta_phi_e_init} - def get_coupled_variables(self, variables): if self.domain == "Negative": @@ -63,6 +49,18 @@ def get_coupled_variables(self, variables): return variables + def set_initial_conditions(self, variables): + if self.domain == "Separator": + return + + delta_phi_e = variables[self.domain + " electrode surface potential difference"] + if self.domain == "Negative": + delta_phi_e_init = self.param.U_n(self.param.c_n_init(0), self.param.T_init) + elif self.domain == "Positive": + delta_phi_e_init = self.param.U_p(self.param.c_p_init(1), self.param.T_init) + + self.initial_conditions = {delta_phi_e: delta_phi_e_init} + def set_boundary_conditions(self, variables): if self.domain == "Separator": return None @@ -166,9 +164,7 @@ def _get_neg_pos_coupled_variables(self, variables): ) variables.update(self._get_domain_current_variables(i_e)) - # TODO: Expression can be written in a form which does not require phi_s and - # so avoid this hack. - phi_s = self.nasty_hack_to_get_phi_s(variables) + phi_s = variables[self.domain + " electrode potential"] phi_e = phi_s - delta_phi variables.update(self._get_domain_potential_variables(phi_e)) @@ -211,37 +207,6 @@ def _get_sep_coupled_variables(self, variables): return variables - def nasty_hack_to_get_phi_s(self, variables): - "This restates what is already in the electrode submodel which we should not do" - - param = self.param - - x_n = pybamm.standard_spatial_vars.x_n - x_p = pybamm.standard_spatial_vars.x_p - tor = variables[self.domain + " electrode tortuosity"] - i_boundary_cc = variables["Current collector current density"] - i_e = variables[self.domain + " electrolyte current density"] - - i_s = i_boundary_cc - i_e - - if self.domain == "Negative": - conductivity = param.sigma_n * tor - phi_s = -pybamm.IndefiniteIntegral(i_s / conductivity, x_n) - - elif self.domain == "Positive": - - phi_e_s = variables["Separator electrolyte potential"] - delta_phi_p = variables["Positive electrode surface potential difference"] - - conductivity = param.sigma_p * tor - - phi_s = -pybamm.IndefiniteIntegral(i_s / conductivity, x_p) + ( - pybamm.boundary_value(phi_e_s, "right") - + pybamm.boundary_value(delta_phi_p, "left") - ) - - return phi_s - class FullAlgebraic(BaseModel): """Full model for conservation of charge in the electrolyte employing the @@ -254,7 +219,7 @@ class FullAlgebraic(BaseModel): The parameters to use for this submodel - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.BaseFull` + **Extends:** :class:`pybamm.electrolyte_conductivity.surface_potential_form.BaseFull` """ # noqa: E501 def __init__(self, param, domain, reactions): @@ -284,7 +249,7 @@ class FullDifferential(BaseModel): The parameters to use for this submodel - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.BaseFull` + **Extends:** :class:`pybamm.electrolyte_conductivity.surface_potential_form.BaseFull` """ # noqa: E501 diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py similarity index 96% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py index 8d46bdb670..57f4103e93 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py @@ -3,7 +3,7 @@ # import pybamm -from ..leading_stefan_maxwell_conductivity import LeadingOrder +from ..leading_order_conductivity import LeadingOrder class BaseLeadingOrderSurfaceForm(LeadingOrder): @@ -20,8 +20,8 @@ class BaseLeadingOrderSurfaceForm(LeadingOrder): reactions : dict Dictionary of reaction terms - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form.BaseModel` - """ # noqa: E501 + **Extends:** :class:`pybamm.electrolyte_conductivity.LeadingOrder` + """ def __init__(self, param, domain, reactions): super().__init__(param, domain, reactions) @@ -38,6 +38,19 @@ def get_fundamental_variables(self): variables = self._get_standard_surface_potential_difference_variables(delta_phi) return variables + def get_coupled_variables(self, variables): + # Use the potential difference in the negative electrode to calculate the + # potential difference and current + if self.domain == "Negative": + delta_phi_n_av = variables[ + "X-averaged negative electrode surface potential difference" + ] + phi_e_av = -delta_phi_n_av + return self._get_coupled_variables_from_potential(variables, phi_e_av) + + else: + return variables + def set_initial_conditions(self, variables): if self.domain == "Separator": @@ -55,19 +68,6 @@ def set_initial_conditions(self, variables): self.initial_conditions = {delta_phi: delta_phi_init} - def get_coupled_variables(self, variables): - # Use the potential difference in the negative electrode to calculate the - # potential difference and current - if self.domain == "Negative": - delta_phi_n_av = variables[ - "X-averaged negative electrode surface potential difference" - ] - phi_e_av = -delta_phi_n_av - return self._get_coupled_variables_from_potential(variables, phi_e_av) - - else: - return variables - def set_boundary_conditions(self, variables): if self.domain == "Negative": phi_e = variables["Electrolyte potential"] diff --git a/pybamm/models/submodels/electrolyte_diffusion/__init__.py b/pybamm/models/submodels/electrolyte_diffusion/__init__.py new file mode 100644 index 0000000000..36b34611cb --- /dev/null +++ b/pybamm/models/submodels/electrolyte_diffusion/__init__.py @@ -0,0 +1,6 @@ +from .base_electrolyte_diffusion import BaseElectrolyteDiffusion +from .leading_order_diffusion import LeadingOrder +from .first_order_diffusion import FirstOrder +from .composite_diffusion import Composite +from .full_diffusion import Full +from .constant_concentration import ConstantConcentration diff --git a/pybamm/models/submodels/electrolyte/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py similarity index 93% rename from pybamm/models/submodels/electrolyte/base_electrolyte_diffusion.py rename to pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index cf99fa04fe..8a0049960d 100644 --- a/pybamm/models/submodels/electrolyte/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -103,6 +103,17 @@ def _get_standard_flux_variables(self, N_e): return variables + def set_boundary_conditions(self, variables): + + c_e = variables["Electrolyte concentration"] + + self.boundary_conditions = { + c_e: { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } + def set_events(self, variables): c_e = variables["Electrolyte concentration"] self.events.append( diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py similarity index 87% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.py rename to pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py index 81328365c2..9b2af2f6a6 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/composite_stefan_maxwell_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py @@ -2,11 +2,10 @@ # Class for composite electrolyte diffusion employing stefan-maxwell # import pybamm +from .base_electrolyte_diffusion import BaseElectrolyteDiffusion -from .full_stefan_maxwell_diffusion import Full - -class Composite(Full): +class Composite(BaseElectrolyteDiffusion): """Class for conservation of mass in the electrolyte employing the Stefan-Maxwell constitutive equations. (Composite refers to composite model by asymptotic methods) @@ -20,13 +19,18 @@ class Composite(Full): extended : bool Whether to include feedback from the first-order terms - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.diffusion.Full` + **Extends:** :class:`pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion` """ def __init__(self, param, reactions, extended=False): super().__init__(param, reactions) self.extended = extended + def get_fundamental_variables(self): + c_e = pybamm.standard_variables.c_e + + return self._get_standard_concentration_variables(c_e) + def get_coupled_variables(self, variables): tor_0 = variables["Leading-order electrolyte tortuosity"] @@ -99,3 +103,9 @@ def _get_source_terms_first_order(self, variables): / self.param.gamma_e for reaction in self.reactions.values() ) + + def set_initial_conditions(self, variables): + + c_e = variables["Electrolyte concentration"] + + self.initial_conditions = {c_e: self.param.c_e_init} diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py similarity index 84% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.py rename to pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py index 09c1b49590..6acbfa5329 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/constant_stefan_maxwell_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py @@ -3,10 +3,10 @@ # import pybamm -from .base_stefan_maxwell_diffusion import BaseModel +from .base_electrolyte_diffusion import BaseElectrolyteDiffusion -class ConstantConcentration(BaseModel): +class ConstantConcentration(BaseElectrolyteDiffusion): """Class for constant concentration of electrolyte Parameters @@ -15,7 +15,7 @@ class ConstantConcentration(BaseModel): The parameters to use for this submodel - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.diffusion.BaseModel` + **Extends:** :class:`pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion` """ def __init__(self, param): diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/first_order_stefan_maxwell_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py similarity index 96% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/first_order_stefan_maxwell_diffusion.py rename to pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py index 9f9b980f85..81600b5de7 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/first_order_stefan_maxwell_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py @@ -2,10 +2,10 @@ # Class for electrolyte diffusion employing stefan-maxwell (first-order) # import pybamm -from .base_stefan_maxwell_diffusion import BaseModel +from .base_electrolyte_diffusion import BaseElectrolyteDiffusion -class FirstOrder(BaseModel): +class FirstOrder(BaseElectrolyteDiffusion): """Class for conservation of mass in the electrolyte employing the Stefan-Maxwell constitutive equations. (First-order refers to first-order term in asymptotic expansion) @@ -17,7 +17,7 @@ class FirstOrder(BaseModel): reactions : dict Dictionary of reaction terms - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.diffusion.BaseModel` + **Extends:** :class:`pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion` """ def __init__(self, param, reactions): diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py similarity index 93% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.py rename to pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py index 31c37a4f7a..8213be4c14 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/full_stefan_maxwell_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py @@ -3,10 +3,10 @@ # import pybamm -from .base_stefan_maxwell_diffusion import BaseModel +from .base_electrolyte_diffusion import BaseElectrolyteDiffusion -class Full(BaseModel): +class Full(BaseElectrolyteDiffusion): """Class for conservation of mass in the electrolyte employing the Stefan-Maxwell constitutive equations. (Full refers to unreduced by asymptotic methods) @@ -18,7 +18,7 @@ class Full(BaseModel): reactions : dict Dictionary of reaction terms - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.diffusion.BaseModel` + **Extends:** :class:`pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion` """ def __init__(self, param, reactions): diff --git a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py similarity index 93% rename from pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.py rename to pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py index 3ef1517e79..9fb1bdc650 100644 --- a/pybamm/models/submodels/electrolyte/stefan_maxwell/diffusion/leading_stefan_maxwell_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py @@ -3,10 +3,10 @@ # import pybamm -from .base_stefan_maxwell_diffusion import BaseModel +from .base_electrolyte_diffusion import BaseElectrolyteDiffusion -class LeadingOrder(BaseModel): +class LeadingOrder(BaseElectrolyteDiffusion): """Class for conservation of mass in the electrolyte employing the Stefan-Maxwell constitutive equations. (Leading refers to leading order of asymptotic reduction) @@ -18,7 +18,7 @@ class LeadingOrder(BaseModel): reactions : dict Dictionary of reaction terms - **Extends:** :class:`pybamm.electrolyte.stefan_maxwell.diffusion.BaseModel` + **Extends:** :class:`pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion` """ def __init__(self, param, reactions): diff --git a/tests/unit/test_expression_tree/test_symbol.py b/tests/unit/test_expression_tree/test_symbol.py index 7faa4992c4..3176adeba2 100644 --- a/tests/unit/test_expression_tree/test_symbol.py +++ b/tests/unit/test_expression_tree/test_symbol.py @@ -316,7 +316,7 @@ def test_symbol_visualise(self): "Positive": {"s": 1, "aj": "Positive electrode" + icd}, } } - model = pybamm.electrolyte.stefan_maxwell.diffusion.Full(param, reactions) + model = pybamm.electrolyte_diffusion.Full(param, reactions) variables.update(model.get_fundamental_variables()) variables.update(model.get_coupled_variables(variables)) diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_diffusion.py deleted file mode 100644 index a4908fdfb1..0000000000 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_diffusion.py +++ /dev/null @@ -1,25 +0,0 @@ -# -# Test base electrolyte diffusion submodel -# - -import pybamm -import tests -import unittest - - -class TestBaseElectrolyteDiffusion(unittest.TestCase): - def test_public_functions(self): - variables = {"Electrolyte concentration": pybamm.Scalar(0)} - submodel = pybamm.electrolyte.BaseElectrolyteDiffusion(None) - 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_electrolyte/test_stefan_maxwell/test_conductivity/test_base_higher_order_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_base_higher_order_stefan_maxwell_conductivity.py deleted file mode 100644 index ceb0394c7b..0000000000 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_base_higher_order_stefan_maxwell_conductivity.py +++ /dev/null @@ -1,23 +0,0 @@ -# -# Test combined stefan maxwell electrolyte conductivity submodel -# - -import pybamm -import unittest - - -class TestComposite(unittest.TestCase): - def test_not_implemented(self): - submodel = pybamm.electrolyte.stefan_maxwell.conductivity.BaseHigherOrder(None) - with self.assertRaises(NotImplementedError): - submodel._higher_order_macinnes_function(None) - - -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_electrolyte/test_stefan_maxwell/test_conductivity/test_base_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_base_stefan_maxwell_conductivity.py deleted file mode 100644 index fea3f3acf0..0000000000 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_base_stefan_maxwell_conductivity.py +++ /dev/null @@ -1,26 +0,0 @@ -# -# Test base stefan maxwell electrolyte conductivity submodel -# - -import pybamm -import tests -import unittest - - -class TestBaseModel(unittest.TestCase): - def test_public_functions(self): - submodel = pybamm.electrolyte.stefan_maxwell.conductivity.BaseModel(None) - std_tests = tests.StandardSubModelTests(submodel) - - with self.assertRaises(KeyError): - 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_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/__init__.py b/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/__init__.py b/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/__init__.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/__init__.py similarity index 100% rename from tests/unit/test_models/test_submodels/test_electrolyte/__init__.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/__init__.py diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_base_electrolyte_conductivity.py similarity index 65% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_conductivity.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_base_electrolyte_conductivity.py index 8e18d1c66a..1993ae2be3 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_base_electrolyte_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_base_electrolyte_conductivity.py @@ -9,8 +9,9 @@ class TestBaseElectrolyteConductivity(unittest.TestCase): def test_public_functions(self): - submodel = pybamm.electrolyte.BaseElectrolyteConductivity(None) - std_tests = tests.StandardSubModelTests(submodel) + variables = {"Electrolyte potential": pybamm.Scalar(0)} + submodel = pybamm.electrolyte_conductivity.BaseElectrolyteConductivity(None) + std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_composite_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py similarity index 51% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_composite_stefan_maxwell_conductivity.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py index bfe620ec2b..372f5565d5 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_composite_stefan_maxwell_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_composite_conductivity.py @@ -27,7 +27,33 @@ def test_public_functions(self): "Leading-order x-averaged positive electrolyte tortuosity": a, "X-averaged cell temperature": a, } - submodel = pybamm.electrolyte.stefan_maxwell.conductivity.Composite(param) + submodel = pybamm.electrolyte_conductivity.Composite(param) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + def test_public_functions_first_order(self): + param = pybamm.standard_parameters_lithium_ion + a = pybamm.PrimaryBroadcast(0, "current collector") + c_e = pybamm.standard_variables.c_e + + variables = { + "Leading-order current collector current density": a, + "Electrolyte concentration": c_e, + "Leading-order x-averaged electrolyte concentration": a, + "X-averaged electrolyte concentration": a, + "X-averaged negative electrode potential": a, + "X-averaged negative electrode surface potential difference": a, + "Leading-order x-averaged negative electrode porosity": a, + "Leading-order x-averaged separator porosity": a, + "Leading-order x-averaged positive electrode porosity": a, + "Leading-order x-averaged negative electrolyte tortuosity": a, + "Leading-order x-averaged separator tortuosity": a, + "Leading-order x-averaged positive electrolyte tortuosity": a, + "X-averaged cell temperature": a, + } + submodel = pybamm.electrolyte_conductivity.Composite( + param, higher_order_terms="first-order" + ) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_full_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py similarity index 93% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_full_stefan_maxwell_conductivity.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py index 80870cbc68..4f16b15b15 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_full_stefan_maxwell_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_full_conductivity.py @@ -29,7 +29,7 @@ def test_public_functions(self): "Positive": {"s": 1, "aj": "Positive electrode" + icd}, } } - submodel = pybamm.electrolyte.stefan_maxwell.conductivity.Full(param, reactions) + submodel = pybamm.electrolyte_conductivity.Full(param, reactions) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_leading_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py similarity index 90% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_leading_stefan_maxwell_conductivity.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py index 9d8b44933c..98650b6dac 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_leading_stefan_maxwell_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_leading_order_conductivity.py @@ -17,7 +17,7 @@ def test_public_functions(self): "X-averaged negative electrode open circuit potential": a, "X-averaged negative electrode reaction overpotential": a, } - submodel = pybamm.electrolyte.stefan_maxwell.conductivity.LeadingOrder(param) + submodel = pybamm.electrolyte_conductivity.LeadingOrder(param) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/__init__.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/__init__.py similarity index 100% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/__init__.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/__init__.py diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py similarity index 92% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py index 530ee7206d..d438ff0527 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_full_surface_form_stefan_maxwell_conductivity.py @@ -31,6 +31,8 @@ def test_public_functions(self): "Negative electrode temperature": a_n, "Separator temperature": a_s, "Positive electrode temperature": a_p, + "Negative electrode potential": a_n, + "Positive electrode potential": a_p, } icd = " interfacial current density" reactions = { @@ -40,7 +42,7 @@ def test_public_functions(self): } } - spf = pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form + spf = pybamm.electrolyte_conductivity.surface_potential_form submodel = spf.FullAlgebraic(param, "Negative", reactions) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() @@ -62,6 +64,8 @@ def test_public_functions(self): "Positive electrolyte concentration": a_p, "Positive electrode interfacial current density": a_p, "Positive electrode temperature": a_p, + "Negative electrode potential": a_n, + "Positive electrode potential": a_p, } submodel = spf.FullAlgebraic(param, "Positive", reactions) std_tests = tests.StandardSubModelTests(submodel, variables) diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py similarity index 96% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py rename to tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py index aaada829c8..35d6533fb5 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_conductivity/test_surface_form/test_leading_surface_form_stefan_maxwell_conductivity.py @@ -29,7 +29,7 @@ def test_public_functions(self): "Positive": {"s": 1, "aj": "Positive electrode" + icd}, } } - spf = pybamm.electrolyte.stefan_maxwell.conductivity.surface_potential_form + spf = pybamm.electrolyte_conductivity.surface_potential_form submodel = spf.LeadingOrderAlgebraic(param, "Negative", reactions) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/__init__.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/__init__.py similarity index 100% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_conductivity/__init__.py rename to tests/unit/test_models/test_submodels/test_electrolyte_diffusion/__init__.py diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_base_stefan_maxwell_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_base_diffusion.py similarity index 87% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_base_stefan_maxwell_diffusion.py rename to tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_base_diffusion.py index 59e5cf493b..2f21b96869 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_base_stefan_maxwell_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_base_diffusion.py @@ -10,7 +10,7 @@ class TestBaseModel(unittest.TestCase): def test_public_functions(self): variables = {"Electrolyte concentration": pybamm.Scalar(0)} - submodel = pybamm.electrolyte.stefan_maxwell.diffusion.BaseModel(None) + submodel = pybamm.electrolyte_diffusion.BaseElectrolyteDiffusion(None) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_constant_stefan_maxwell_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py similarity index 86% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_constant_stefan_maxwell_diffusion.py rename to tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py index 49db0d000b..ee1819d610 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_constant_stefan_maxwell_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_constant_concentration.py @@ -10,7 +10,7 @@ class TestConstantConcentration(unittest.TestCase): def test_public_functions(self): param = pybamm.standard_parameters_lithium_ion - submodel = pybamm.electrolyte.stefan_maxwell.diffusion.ConstantConcentration( + submodel = pybamm.electrolyte_diffusion.ConstantConcentration( param ) std_tests = tests.StandardSubModelTests(submodel) diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_full_stefan_maxwell_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py similarity index 94% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_full_stefan_maxwell_diffusion.py rename to tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py index 87b8de8d9f..e6386f71ed 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_full_stefan_maxwell_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_full_diffusion.py @@ -36,7 +36,7 @@ def test_public_functions(self): "Positive": {"s": 1, "aj": "Positive electrode" + icd}, } } - submodel = pybamm.electrolyte.stefan_maxwell.diffusion.Full(param, reactions) + submodel = pybamm.electrolyte_diffusion.Full(param, reactions) std_tests = tests.StandardSubModelTests(submodel, variables) std_tests.test_all() diff --git a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_leading_stefan_maxwell_diffusion.py b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py similarity index 95% rename from tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_leading_stefan_maxwell_diffusion.py rename to tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py index fc3d23e750..6596974b8e 100644 --- a/tests/unit/test_models/test_submodels/test_electrolyte/test_stefan_maxwell/test_diffusion/test_leading_stefan_maxwell_diffusion.py +++ b/tests/unit/test_models/test_submodels/test_electrolyte_diffusion/test_leading_order_diffusion.py @@ -33,7 +33,7 @@ def test_public_functions(self): "X-averaged negative electrode interfacial current density": a, "X-averaged positive electrode interfacial current density": a, } - submodel = pybamm.electrolyte.stefan_maxwell.diffusion.LeadingOrder( + submodel = pybamm.electrolyte_diffusion.LeadingOrder( param, reactions ) std_tests = tests.StandardSubModelTests(submodel, variables) From f591eec7e3d79cf82371359da877710446570981 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 28 Mar 2020 14:42:02 -0400 Subject: [PATCH 2/9] #923 some under-the-hood optimizations --- pybamm/__init__.py | 1 + pybamm/expression_tree/functions.py | 2 +- .../operations/unpack_symbols.py | 89 ++++++++++++++++++ pybamm/expression_tree/symbol.py | 14 ++- pybamm/expression_tree/unary_operators.py | 4 +- pybamm/models/base_model.py | 90 +++++++++---------- .../base_electrolyte_conductivity.py | 20 +++-- .../composite_conductivity.py | 14 +-- .../full_conductivity.py | 7 +- .../leading_order_conductivity.py | 5 +- .../base_electrolyte_diffusion.py | 15 ++-- .../composite_diffusion.py | 6 +- .../constant_concentration.py | 3 +- .../first_order_diffusion.py | 10 +-- .../electrolyte_diffusion/full_diffusion.py | 6 +- .../leading_order_diffusion.py | 3 +- .../submodels/interface/base_interface.py | 20 ++++- .../submodels/porosity/base_porosity.py | 12 ++- .../submodels/porosity/constant_porosity.py | 9 +- .../porosity/full_reaction_driven_porosity.py | 21 +++-- .../leading_reaction_driven_porosity.py | 25 ++++-- .../models/submodels/thermal/base_thermal.py | 23 ++--- .../thermal/isothermal/isothermal.py | 3 +- .../submodels/thermal/x_full/base_x_full.py | 10 ++- .../thermal/x_lumped/base_x_lumped.py | 3 +- .../thermal/xyz_lumped/base_xyz_lumped.py | 3 +- pybamm/parameters/print_parameters.py | 5 +- .../test_models/standard_model_tests.py | 7 +- .../test_operations/test_unpack_symbols.py | 61 +++++++++++++ .../unit/test_expression_tree/test_symbol.py | 3 +- .../test_composite_conductivity.py | 17 ++-- 31 files changed, 349 insertions(+), 162 deletions(-) create mode 100644 pybamm/expression_tree/operations/unpack_symbols.py create mode 100644 tests/unit/test_expression_tree/test_operations/test_unpack_symbols.py diff --git a/pybamm/__init__.py b/pybamm/__init__.py index 7292636f60..50533168c9 100644 --- a/pybamm/__init__.py +++ b/pybamm/__init__.py @@ -101,6 +101,7 @@ def version(formatted=False): ) from .expression_tree.operations.jacobian import Jacobian from .expression_tree.operations.convert_to_casadi import CasadiConverter +from .expression_tree.operations.unpack_symbols import SymbolUnpacker # # Model classes diff --git a/pybamm/expression_tree/functions.py b/pybamm/expression_tree/functions.py index 614ac959fd..1d5b3580a3 100644 --- a/pybamm/expression_tree/functions.py +++ b/pybamm/expression_tree/functions.py @@ -86,7 +86,7 @@ def diff(self, variable): children = self.orphans partial_derivatives = [None] * len(children) for i, child in enumerate(self.children): - # if variable appears in the function,use autograd to differentiate + # if variable appears in the function, differentiate # function, and apply chain rule if variable.id in [symbol.id for symbol in child.pre_order()]: partial_derivatives[i] = self._function_diff( diff --git a/pybamm/expression_tree/operations/unpack_symbols.py b/pybamm/expression_tree/operations/unpack_symbols.py new file mode 100644 index 0000000000..2deed0d3c6 --- /dev/null +++ b/pybamm/expression_tree/operations/unpack_symbols.py @@ -0,0 +1,89 @@ +# +# Helper function to unpack a symbol +# + + +class SymbolUnpacker(object): + """ + Helper class to unpack a (set of) symbol(s) to find all instances of a class. + Uses caching to speed up the process. + + Parameters + ---------- + classes_to_find : list of pybamm classes + Classes to identify in the equations + unpacked_symbols: dict {variable ids -> :class:`pybamm.Symbol`} + cached unpacked equations + """ + + def __init__(self, classes_to_find, unpacked_symbols=None): + self.classes_to_find = classes_to_find + self._unpacked_symbols = unpacked_symbols or {} + + def unpack_list_of_symbols(self, list_of_symbols): + """ + Unpack a list of symbols. See :meth:`EquationUnpacker.unpack()` + + Parameters + ---------- + list_of_symbols : list of :class:`pybamm.Symbol` + List of symbols to unpack + + Returns + ------- + list of :class:`pybamm.Symbol` + List of unpacked symbols with class in `self.classes_to_find` + """ + all_instances = {} + for symbol in list_of_symbols: + new_instances = self.unpack_symbol(symbol) + all_instances.update(new_instances) + + return all_instances + + def unpack_symbol(self, symbol): + """ + This function recurses down the tree, unpacking the symbols and saving the ones + that have a class in `self.classes_to_find`. + + Parameters + ---------- + symbol : list of :class:`pybamm.Symbol` + The symbols to unpack + + Returns + ------- + list of :class:`pybamm.Symbol` + List of unpacked symbols with class in `self.classes_to_find` + """ + + try: + return self._unpacked_symbols[symbol.id] + except KeyError: + unpacked = self._unpack(symbol) + self._unpacked_symbols[symbol.id] = unpacked + return unpacked + + def _unpack(self, symbol): + """ See :meth:`EquationUnpacker.unpack()`. """ + + children = symbol.children + + # If symbol has no children, just check its class + if len(children) == 0: + # found a symbol of the right class -> return it + if isinstance(symbol, self.classes_to_find): + return {symbol.id: symbol} + # otherwise return empty dictionary + else: + return {} + + else: + # iterate over all children + found_vars = {} + for child in children: + # call back unpack_symbol to cache values + child_vars = self.unpack_symbol(child) + found_vars.update(child_vars) + return found_vars + diff --git a/pybamm/expression_tree/symbol.py b/pybamm/expression_tree/symbol.py index b5032ab881..ed072faa84 100644 --- a/pybamm/expression_tree/symbol.py +++ b/pybamm/expression_tree/symbol.py @@ -485,9 +485,8 @@ def diff(self, variable): return pybamm.Scalar(1) elif any(variable.id == x.id for x in self.pre_order()): return self._diff(variable) - elif variable.id == pybamm.t.id and any( - isinstance(x, (pybamm.VariableBase, pybamm.StateVectorBase)) - for x in self.pre_order() + elif variable.id == pybamm.t.id and self.has_symbol_of_classes( + (pybamm.VariableBase, pybamm.StateVectorBase) ): return self._diff(variable) else: @@ -609,7 +608,7 @@ def is_constant(self): ) # do the search, return true if no relevent nodes are found - return not any((isinstance(n, search_types)) for n in self.pre_order()) + return not self.has_symbol_of_classes(search_types) def evaluate_ignoring_errors(self, t=0): """ @@ -720,15 +719,14 @@ def shape(self): Shape of an object, found by evaluating it with appropriate t and y. """ # Default behaviour is to try to evaluate the object directly - # Try with some large y, to avoid having to use pre_order (slow) + # Try with some large y, to avoid having to unpack (slow) try: y = np.linspace(0.1, 0.9, int(1e4)) evaluated_self = self.evaluate(0, y, y, inputs="shape test") # If that fails, fall back to calculating how big y should really be except ValueError: - state_vectors_in_node = [ - x for x in self.pre_order() if isinstance(x, pybamm.StateVector) - ] + unpacker = pybamm.SymbolUnpacker(pybamm.StateVector) + state_vectors_in_node = unpacker.unpack_symbol(self).values() if state_vectors_in_node == []: y = None else: diff --git a/pybamm/expression_tree/unary_operators.py b/pybamm/expression_tree/unary_operators.py index 84c4bfb94a..5eec4e7bbe 100644 --- a/pybamm/expression_tree/unary_operators.py +++ b/pybamm/expression_tree/unary_operators.py @@ -224,7 +224,7 @@ def _unary_jac(self, child_jac): # when trying to simplify the node Index(child_jac). Instead, search the # tree for StateVectors and return a matrix of zeros of the correct size # if none are found. - if all([not (isinstance(n, pybamm.StateVector)) for n in self.pre_order()]): + if not self.has_symbol_of_classes(pybamm.StateVector): jac = csr_matrix((1, child_jac.shape[1])) return pybamm.Matrix(jac) else: @@ -297,7 +297,7 @@ def _unary_simplify(self, simplified_child): search_types = (pybamm.Variable, pybamm.StateVector, pybamm.SpatialVariable) # do the search, return a scalar zero node if no relevent nodes are found - if all([not (isinstance(n, search_types)) for n in self.pre_order()]): + if not self.has_symbol_of_classes(search_types): return pybamm.Scalar(0) else: return self.__class__(simplified_child) diff --git a/pybamm/models/base_model.py b/pybamm/models/base_model.py index 641ef347fa..1cb327d2e4 100644 --- a/pybamm/models/base_model.py +++ b/pybamm/models/base_model.py @@ -398,13 +398,13 @@ def check_for_time_derivatives(self): for node in eq.pre_order(): if isinstance(node, pybamm.VariableDot): raise pybamm.ModelError( - "time derivative of variable found ({}) in rhs equation {}" - .format(node, key) + "time derivative of variable found " + "({}) in rhs equation {}".format(node, key) ) if isinstance(node, pybamm.StateVectorDot): raise pybamm.ModelError( - "time derivative of state vector found ({}) in rhs equation {}" - .format(node, key) + "time derivative of state vector found " + "({}) in rhs equation {}".format(node, key) ) # Check that no variable time derivatives exist in the algebraic equations @@ -433,37 +433,43 @@ def check_well_determined(self, post_discretisation): # For equations we look through the whole expression tree. # "Variables" can be Concatenations so we also have to look in the whole # expression tree + unpacker = pybamm.SymbolUnpacker((pybamm.Variable, pybamm.VariableDot)) + for var, eqn in self.rhs.items(): + # Find all variables and variabledot objects + vars_in_rhs_keys_dict = unpacker.unpack_symbol(var) + vars_in_eqns_dict = unpacker.unpack_symbol(eqn) + + # Store ids only + # Look only for Variable (not VariableDot) in rhs keys vars_in_rhs_keys.update( - [x.id for x in var.pre_order() if isinstance(x, pybamm.Variable)] - ) - vars_in_eqns.update( - [x.id for x in eqn.pre_order() if isinstance(x, pybamm.Variable)] - ) - vars_in_eqns.update( - [x.get_variable().id for x in eqn.pre_order() - if isinstance(x, pybamm.VariableDot)] + [ + var_id + for var_id, var in vars_in_rhs_keys_dict.items() + if isinstance(var, pybamm.Variable) + ] ) + vars_in_eqns.update(vars_in_eqns_dict.keys()) for var, eqn in self.algebraic.items(): + # Find all variables and variabledot objects + vars_in_algebraic_keys_dict = unpacker.unpack_symbol(var) + vars_in_eqns_dict = unpacker.unpack_symbol(eqn) + + # Store ids only + # Look only for Variable (not VariableDot) in algebraic keys vars_in_algebraic_keys.update( - [x.id for x in var.pre_order() if isinstance(x, pybamm.Variable)] - ) - vars_in_eqns.update( - [x.id for x in eqn.pre_order() if isinstance(x, pybamm.Variable)] - ) - vars_in_eqns.update( - [x.get_variable().id for x in eqn.pre_order() - if isinstance(x, pybamm.VariableDot)] + [ + var_id + for var_id, var in vars_in_algebraic_keys_dict.items() + if isinstance(var, pybamm.Variable) + ] ) + vars_in_eqns.update(vars_in_eqns_dict.keys()) for var, side_eqn in self.boundary_conditions.items(): for side, (eqn, typ) in side_eqn.items(): - vars_in_eqns.update( - [x.id for x in eqn.pre_order() if isinstance(x, pybamm.Variable)] - ) - vars_in_eqns.update( - [x.get_variable().id for x in eqn.pre_order() - if isinstance(x, pybamm.VariableDot)] - ) + vars_in_eqns_dict = unpacker.unpack_symbol(eqn) + vars_in_eqns.update(vars_in_eqns_dict.keys()) + # If any keys are repeated between rhs and algebraic then the model is # overdetermined if not set(vars_in_rhs_keys).isdisjoint(vars_in_algebraic_keys): @@ -501,11 +507,12 @@ def check_algebraic_equations(self, post_discretisation): equation """ vars_in_bcs = set() - for var, side_eqn in self.boundary_conditions.items(): - for eqn, _ in side_eqn.values(): - vars_in_bcs.update( - [x.id for x in eqn.pre_order() if isinstance(x, pybamm.Variable)] - ) + unpacker = pybamm.SymbolUnpacker(pybamm.Variable) + for side_eqn in self.boundary_conditions.values(): + all_vars = unpacker.unpack_list_of_symbols( + [eqn for eqn, _ in side_eqn.values()] + ) + vars_in_bcs.update(all_vars.keys()) if not post_discretisation: # After the model has been defined, each algebraic equation key should # appear in that algebraic equation, or in the boundary conditions @@ -524,7 +531,7 @@ def check_algebraic_equations(self, post_discretisation): # with the state vectors in the algebraic equations. Instead, we check # that each algebraic equation contains some StateVector for eqn in self.algebraic.values(): - if not any(isinstance(x, pybamm.StateVector) for x in eqn.pre_order()): + if not eqn.has_symbol_of_classes(pybamm.StateVector): raise pybamm.ModelError( "each algebraic equation must contain at least one StateVector" ) @@ -553,12 +560,8 @@ def check_ics_bcs(self): for x in symbol.pre_order() ): raise pybamm.ModelError( - """ - no boundary condition given for - variable '{}' with equation '{}'. - """.format( - var, eqn - ) + "no boundary condition given for " + "variable '{}' with equation '{}'.".format(var, eqn) ) def check_default_variables_dictionaries(self): @@ -581,12 +584,9 @@ def check_default_variables_dictionaries(self): def check_variables(self): # Create list of all Variable nodes that appear in the model's list of variables - all_vars = {} - for eqn in self.variables.values(): - # Add all variables in the equation to the list of variables - all_vars.update( - {x.id: x for x in eqn.pre_order() if isinstance(x, pybamm.Variable)} - ) + unpacker = pybamm.SymbolUnpacker(pybamm.Variable) + all_vars = unpacker.unpack_list_of_symbols(self.variables.values()) + var_ids_in_keys = set() model_and_external_variables = ( diff --git a/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py index 9edd9291ec..2501103ac3 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/base_electrolyte_conductivity.py @@ -24,17 +24,19 @@ def __init__(self, param, domain=None, reactions=None): super().__init__(param, domain) self.reactions = reactions - def _get_standard_potential_variables(self, phi_e, phi_e_av): + def _get_standard_potential_variables(self, phi_e_n, phi_e_s, phi_e_p): """ A private function to obtain the standard variables which can be derived from the potential in the electrolyte. Parameters ---------- - phi_e : :class:`pybamm.Symbol` - The potential in the electrolyte. - phi_e_av : :class:`pybamm.Symbol` - The cell-averaged potential in the electrolyte. + phi_e_n : :class:`pybamm.Symbol` + The electrolyte potential in the negative electrode. + phi_e_s : :class:`pybamm.Symbol` + The electrolyte potential in the separator. + phi_e_p : :class:`pybamm.Symbol` + The electrolyte potential in the positive electrode. Returns ------- @@ -45,8 +47,8 @@ def _get_standard_potential_variables(self, phi_e, phi_e_av): param = self.param pot_scale = param.potential_scale - phi_e_n, phi_e_s, phi_e_p = phi_e.orphans + phi_e = pybamm.Concatenation(phi_e_n, phi_e_s, phi_e_p) phi_e_n_av = pybamm.x_average(phi_e_n) phi_e_s_av = pybamm.x_average(phi_e_s) phi_e_p_av = pybamm.x_average(phi_e_p) @@ -277,15 +279,15 @@ def _get_whole_cell_variables(self, variables): phi_e_n = variables["Negative electrolyte potential"] phi_e_s = variables["Separator electrolyte potential"] phi_e_p = variables["Positive electrolyte potential"] - phi_e = pybamm.Concatenation(phi_e_n, phi_e_s, phi_e_p) - phi_e_av = pybamm.x_average(phi_e) i_e_n = variables["Negative electrolyte current density"] i_e_s = variables["Separator electrolyte current density"] i_e_p = variables["Positive electrolyte current density"] i_e = pybamm.Concatenation(i_e_n, i_e_s, i_e_p) - variables.update(self._get_standard_potential_variables(phi_e, phi_e_av)) + variables.update( + self._get_standard_potential_variables(phi_e_n, phi_e_s, phi_e_p) + ) variables.update(self._get_standard_current_variables(i_e)) return variables diff --git a/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py index da7b883ef2..097f5660b0 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/composite_conductivity.py @@ -39,7 +39,10 @@ def get_coupled_variables(self, variables): c_e_av = variables["Leading-order x-averaged electrolyte concentration"] i_boundary_cc_0 = variables["Leading-order current collector current density"] - c_e = variables["Electrolyte concentration"] + c_e_n = variables["Negative electrolyte concentration"] + c_e_s = variables["Separator electrolyte concentration"] + c_e_p = variables["Positive electrolyte concentration"] + delta_phi_n_av = variables[ "X-averaged negative electrode surface potential difference" ] @@ -53,8 +56,6 @@ def get_coupled_variables(self, variables): T_av_s = pybamm.PrimaryBroadcast(T_av, "separator") T_av_p = pybamm.PrimaryBroadcast(T_av, "positive electrode") - c_e_n, c_e_s, c_e_p = c_e.orphans - param = self.param l_n = param.l_n l_p = param.l_p @@ -129,9 +130,6 @@ def get_coupled_variables(self, variables): - i_boundary_cc_0 * (1 - l_p) * (param.C_e / param.gamma_e) / kappa_s_av ) - phi_e = pybamm.Concatenation(phi_e_n, phi_e_s, phi_e_p) - phi_e_av = pybamm.x_average(phi_e) - # concentration overpotential eta_c_av = ( chi_av @@ -149,7 +147,9 @@ def get_coupled_variables(self, variables): + param.l_p / (3 * kappa_p_av) ) - variables.update(self._get_standard_potential_variables(phi_e, phi_e_av)) + variables.update( + self._get_standard_potential_variables(phi_e_n, phi_e_s, phi_e_p) + ) variables.update(self._get_standard_current_variables(i_e)) variables.update(self._get_split_overpotential(eta_c_av, delta_phi_e_av)) diff --git a/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py index 608c4bfc7e..6e77284ea8 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/full_conductivity.py @@ -25,10 +25,11 @@ def __init__(self, param, reactions): super().__init__(param, reactions=reactions) def get_fundamental_variables(self): - phi_e = pybamm.standard_variables.phi_e - phi_e_av = pybamm.x_average(phi_e) + phi_e_n = pybamm.standard_variables.phi_e_n + phi_e_s = pybamm.standard_variables.phi_e_s + phi_e_p = pybamm.standard_variables.phi_e_p - variables = self._get_standard_potential_variables(phi_e, phi_e_av) + variables = self._get_standard_potential_variables(phi_e_n, phi_e_s, phi_e_p) return variables def get_coupled_variables(self, variables): diff --git a/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py index f1841f5d7a..e951d53b4d 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py +++ b/pybamm/models/submodels/electrolyte_conductivity/leading_order_conductivity.py @@ -44,14 +44,15 @@ def _get_coupled_variables_from_potential(self, variables, phi_e_av): phi_e_n = pybamm.PrimaryBroadcast(phi_e_av, ["negative electrode"]) phi_e_s = pybamm.PrimaryBroadcast(phi_e_av, ["separator"]) phi_e_p = pybamm.PrimaryBroadcast(phi_e_av, ["positive electrode"]) - phi_e = pybamm.Concatenation(phi_e_n, phi_e_s, phi_e_p) i_e_n = i_boundary_cc * x_n / l_n i_e_s = pybamm.PrimaryBroadcast(i_boundary_cc, ["separator"]) i_e_p = i_boundary_cc * (1 - x_p) / l_p i_e = pybamm.Concatenation(i_e_n, i_e_s, i_e_p) - variables.update(self._get_standard_potential_variables(phi_e, phi_e_av)) + variables.update( + self._get_standard_potential_variables(phi_e_n, phi_e_s, phi_e_p) + ) variables.update(self._get_standard_current_variables(i_e)) eta_c_av = pybamm.Scalar(0) # concentration overpotential diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index 8a0049960d..d026ec6af1 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -20,17 +20,19 @@ class BaseElectrolyteDiffusion(pybamm.BaseSubModel): def __init__(self, param, reactions=None): super().__init__(param, reactions=reactions) - def _get_standard_concentration_variables(self, c_e): + def _get_standard_concentration_variables(self, c_e_n, c_e_s, c_e_p): """ A private function to obtain the standard variables which can be derived from the concentration in the electrolyte. Parameters ---------- - c_e : :class:`pybamm.Symbol` - The concentration in the electrolyte. - c_e_av : :class:`pybamm.Symbol` - The cell-averaged concentration in the electrolyte. + c_e_n : :class:`pybamm.Symbol` + The electrolyte concentration in the negative electrode. + c_e_s : :class:`pybamm.Symbol` + The electrolyte concentration in the separator. + c_e_p : :class:`pybamm.Symbol` + The electrolyte concentration in the positive electrode. Returns ------- @@ -40,7 +42,8 @@ def _get_standard_concentration_variables(self, c_e): """ c_e_typ = self.param.c_e_typ - c_e_n, c_e_s, c_e_p = c_e.orphans + + c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) c_e_av = pybamm.x_average(c_e) c_e_n_av = pybamm.x_average(c_e_n) c_e_s_av = pybamm.x_average(c_e_s) diff --git a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py index 9b2af2f6a6..60a6b743a5 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py @@ -27,9 +27,11 @@ def __init__(self, param, reactions, extended=False): self.extended = extended def get_fundamental_variables(self): - c_e = pybamm.standard_variables.c_e + c_e_n = pybamm.standard_variables.c_e_n + c_e_s = pybamm.standard_variables.c_e_s + c_e_p = pybamm.standard_variables.c_e_p - return self._get_standard_concentration_variables(c_e) + return self._get_standard_concentration_variables(c_e_n, c_e_s, c_e_p) def get_coupled_variables(self, variables): diff --git a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py index 6acbfa5329..6de013290c 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py +++ b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py @@ -25,9 +25,8 @@ def get_fundamental_variables(self): c_e_n = pybamm.FullBroadcast(1, "negative electrode", "current collector") c_e_s = pybamm.FullBroadcast(1, "separator", "current collector") c_e_p = pybamm.FullBroadcast(1, "positive electrode", "current collector") - c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) - variables = self._get_standard_concentration_variables(c_e) + variables = self._get_standard_concentration_variables(c_e_n, c_e_s, c_e_p) N_e = pybamm.FullBroadcastToEdges( 0, diff --git a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py index 81600b5de7..ecb88a80ee 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/first_order_diffusion.py @@ -108,12 +108,12 @@ def get_coupled_variables(self, variables): c_e_p_1_av += A_e # Update variables - c_e = pybamm.Concatenation( - c_e_0 + param.C_e * c_e_n_1, - c_e_0 + param.C_e * c_e_s_1, - c_e_0 + param.C_e * c_e_p_1, + c_e_n = c_e_0 + param.C_e * c_e_n_1 + c_e_s = c_e_0 + param.C_e * c_e_s_1 + c_e_p = c_e_0 + param.C_e * c_e_p_1 + variables.update( + self._get_standard_concentration_variables(c_e_n, c_e_s, c_e_p) ) - variables.update(self._get_standard_concentration_variables(c_e)) # Update with analytical expressions for first-order x-averages variables.update( { diff --git a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py index 8213be4c14..418c99bc8a 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py @@ -25,9 +25,11 @@ def __init__(self, param, reactions): super().__init__(param, reactions) def get_fundamental_variables(self): - c_e = pybamm.standard_variables.c_e + c_e_n = pybamm.standard_variables.c_e_n + c_e_s = pybamm.standard_variables.c_e_s + c_e_p = pybamm.standard_variables.c_e_p - return self._get_standard_concentration_variables(c_e) + return self._get_standard_concentration_variables(c_e_n, c_e_s, c_e_p) def get_coupled_variables(self, variables): diff --git a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py index 9fb1bdc650..2893feee13 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/leading_order_diffusion.py @@ -29,9 +29,8 @@ def get_fundamental_variables(self): c_e_n = pybamm.PrimaryBroadcast(c_e_av, ["negative electrode"]) c_e_s = pybamm.PrimaryBroadcast(c_e_av, ["separator"]) c_e_p = pybamm.PrimaryBroadcast(c_e_av, ["positive electrode"]) - c_e = pybamm.Concatenation(c_e_n, c_e_s, c_e_p) - return self._get_standard_concentration_variables(c_e) + return self._get_standard_concentration_variables(c_e_n, c_e_s, c_e_p) def get_coupled_variables(self, variables): diff --git a/pybamm/models/submodels/interface/base_interface.py b/pybamm/models/submodels/interface/base_interface.py index b00349cd26..b3b13a89e8 100644 --- a/pybamm/models/submodels/interface/base_interface.py +++ b/pybamm/models/submodels/interface/base_interface.py @@ -189,11 +189,14 @@ def _get_standard_interfacial_current_variables(self, j): j_scale = i_typ / (self.param.a_p_dim * L_x) # Average, and broadcast if necessary - j_av = pybamm.x_average(j) if j.domain == []: + j_av = j j = pybamm.FullBroadcast(j, self.domain_for_broadcast, "current collector") elif j.domain == ["current collector"]: + j_av = j j = pybamm.PrimaryBroadcast(j, self.domain_for_broadcast) + else: + j_av = pybamm.x_average(j) variables = { self.domain @@ -297,13 +300,16 @@ def _get_standard_exchange_current_variables(self, j0): j_scale = i_typ / (self.param.a_p_dim * L_x) # Average, and broadcast if necessary - j0_av = pybamm.x_average(j0) if j0.domain == []: + j0_av = j0 j0 = pybamm.FullBroadcast( j0, self.domain_for_broadcast, "current collector" ) elif j0.domain == ["current collector"]: + j0_av = j0 j0 = pybamm.PrimaryBroadcast(j0, self.domain_for_broadcast) + else: + j0_av = pybamm.x_average(j0) variables = { self.domain @@ -415,13 +421,16 @@ def _get_standard_surface_potential_difference_variables(self, delta_phi): pot_scale = self.param.potential_scale # Average, and broadcast if necessary - delta_phi_av = pybamm.x_average(delta_phi) if delta_phi.domain == []: + delta_phi_av = delta_phi delta_phi = pybamm.FullBroadcast( delta_phi, self.domain_for_broadcast, "current collector" ) elif delta_phi.domain == ["current collector"]: + delta_phi_av = delta_phi delta_phi = pybamm.PrimaryBroadcast(delta_phi, self.domain_for_broadcast) + else: + delta_phi_av = pybamm.x_average(delta_phi) variables = { self.domain + " electrode surface potential difference": delta_phi, @@ -459,13 +468,16 @@ def _get_standard_ocp_variables(self, ocp, dUdT): """ # Average, and broadcast if necessary - ocp_av = pybamm.x_average(ocp) if ocp.domain == []: + ocp_av = ocp ocp = pybamm.FullBroadcast( ocp, self.domain_for_broadcast, "current collector" ) elif ocp.domain == ["current collector"]: + ocp_av = ocp ocp = pybamm.PrimaryBroadcast(ocp, self.domain_for_broadcast) + else: + ocp_av = pybamm.x_average(ocp) dUdT_av = pybamm.x_average(dUdT) if self.domain == "Negative": diff --git a/pybamm/models/submodels/porosity/base_porosity.py b/pybamm/models/submodels/porosity/base_porosity.py index 8d9157635e..c373e6fa8e 100644 --- a/pybamm/models/submodels/porosity/base_porosity.py +++ b/pybamm/models/submodels/porosity/base_porosity.py @@ -19,9 +19,11 @@ class BaseModel(pybamm.BaseSubModel): def __init__(self, param): super().__init__(param) - def _get_standard_porosity_variables(self, eps, set_leading_order=False): + def _get_standard_porosity_variables( + self, eps_n, eps_s, eps_p, set_leading_order=False + ): - eps_n, eps_s, eps_p = eps.orphans + eps = pybamm.Concatenation(eps_n, eps_s, eps_p) variables = { "Porosity": eps, @@ -60,9 +62,11 @@ def _get_standard_porosity_variables(self, eps, set_leading_order=False): return variables - def _get_standard_porosity_change_variables(self, deps_dt, set_leading_order=False): + def _get_standard_porosity_change_variables( + self, deps_n_dt, deps_s_dt, deps_p_dt, set_leading_order=False + ): - deps_n_dt, deps_s_dt, deps_p_dt = deps_dt.orphans + deps_dt = pybamm.Concatenation(deps_n_dt, deps_s_dt, deps_p_dt) variables = { "Porosity change": deps_dt, diff --git a/pybamm/models/submodels/porosity/constant_porosity.py b/pybamm/models/submodels/porosity/constant_porosity.py index da07259ac5..ad76154908 100644 --- a/pybamm/models/submodels/porosity/constant_porosity.py +++ b/pybamm/models/submodels/porosity/constant_porosity.py @@ -24,17 +24,16 @@ def get_fundamental_variables(self): eps_s = self.param.epsilon_s eps_p = self.param.epsilon_p - eps = pybamm.Concatenation(eps_n, eps_s, eps_p) - deps_n_dt = pybamm.FullBroadcast(0, "negative electrode", "current collector") deps_s_dt = pybamm.FullBroadcast(0, "separator", "current collector") deps_p_dt = pybamm.FullBroadcast(0, "positive electrode", "current collector") - deps_dt = pybamm.Concatenation(deps_n_dt, deps_s_dt, deps_p_dt) - variables = self._get_standard_porosity_variables(eps, set_leading_order=True) + variables = self._get_standard_porosity_variables( + eps_n, eps_s, eps_p, set_leading_order=True + ) variables.update( self._get_standard_porosity_change_variables( - deps_dt, set_leading_order=True + deps_n_dt, deps_s_dt, deps_p_dt, set_leading_order=True ) ) diff --git a/pybamm/models/submodels/porosity/full_reaction_driven_porosity.py b/pybamm/models/submodels/porosity/full_reaction_driven_porosity.py index 7f911abed6..6361915573 100644 --- a/pybamm/models/submodels/porosity/full_reaction_driven_porosity.py +++ b/pybamm/models/submodels/porosity/full_reaction_driven_porosity.py @@ -22,8 +22,11 @@ def __init__(self, param): def get_fundamental_variables(self): - eps = pybamm.standard_variables.eps - variables = self._get_standard_porosity_variables(eps) + eps_n = pybamm.standard_variables.eps_n + eps_s = pybamm.standard_variables.eps_s + eps_p = pybamm.standard_variables.eps_p + variables = self._get_standard_porosity_variables(eps_n, eps_s, eps_p) + return variables def get_coupled_variables(self, variables): @@ -31,15 +34,17 @@ def get_coupled_variables(self, variables): j_n = variables["Negative electrode interfacial current density"] j_p = variables["Positive electrode interfacial current density"] - deps_dt_n = -self.param.beta_surf_n * j_n - deps_dt_s = pybamm.FullBroadcast( + deps_n_dt = -self.param.beta_surf_n * j_n + deps_s_dt = pybamm.FullBroadcast( 0, "separator", auxiliary_domains={"secondary": "current collector"} ) - deps_dt_p = -self.param.beta_surf_p * j_p - - deps_dt = pybamm.Concatenation(deps_dt_n, deps_dt_s, deps_dt_p) + deps_p_dt = -self.param.beta_surf_p * j_p - variables.update(self._get_standard_porosity_change_variables(deps_dt)) + variables.update( + self._get_standard_porosity_change_variables( + deps_n_dt, deps_s_dt, deps_p_dt + ) + ) return variables diff --git a/pybamm/models/submodels/porosity/leading_reaction_driven_porosity.py b/pybamm/models/submodels/porosity/leading_reaction_driven_porosity.py index e2eb57e691..e2fce51015 100644 --- a/pybamm/models/submodels/porosity/leading_reaction_driven_porosity.py +++ b/pybamm/models/submodels/porosity/leading_reaction_driven_porosity.py @@ -22,8 +22,15 @@ def __init__(self, param): def get_fundamental_variables(self): - eps = pybamm.standard_variables.eps_piecewise_constant - variables = self._get_standard_porosity_variables(eps) + eps_n_pc = pybamm.standard_variables.eps_n_pc + eps_s_pc = pybamm.standard_variables.eps_s_pc + eps_p_pc = pybamm.standard_variables.eps_p_pc + + eps_n = pybamm.PrimaryBroadcast(eps_n_pc, "negative electrode") + eps_s = pybamm.PrimaryBroadcast(eps_s_pc, "separator") + eps_p = pybamm.PrimaryBroadcast(eps_p_pc, "positive electrode") + + variables = self._get_standard_porosity_variables(eps_n, eps_s, eps_p) return variables def get_coupled_variables(self, variables): @@ -31,19 +38,21 @@ def get_coupled_variables(self, variables): j_n = variables["X-averaged negative electrode interfacial current density"] j_p = variables["X-averaged positive electrode interfacial current density"] - deps_dt_n = pybamm.PrimaryBroadcast( + deps_n_dt = pybamm.PrimaryBroadcast( -self.param.beta_surf_n * j_n, ["negative electrode"] ) - deps_dt_s = pybamm.FullBroadcast( + deps_s_dt = pybamm.FullBroadcast( 0, "separator", auxiliary_domains={"secondary": "current collector"} ) - deps_dt_p = pybamm.PrimaryBroadcast( + deps_p_dt = pybamm.PrimaryBroadcast( -self.param.beta_surf_p * j_p, ["positive electrode"] ) - deps_dt = pybamm.Concatenation(deps_dt_n, deps_dt_s, deps_dt_p) - - variables.update(self._get_standard_porosity_change_variables(deps_dt)) + variables.update( + self._get_standard_porosity_change_variables( + deps_n_dt, deps_s_dt, deps_p_dt + ) + ) return variables diff --git a/pybamm/models/submodels/thermal/base_thermal.py b/pybamm/models/submodels/thermal/base_thermal.py index 9f532cadae..f9a22d0bfd 100644 --- a/pybamm/models/submodels/thermal/base_thermal.py +++ b/pybamm/models/submodels/thermal/base_thermal.py @@ -19,9 +19,9 @@ class BaseThermal(pybamm.BaseSubModel): def __init__(self, param): super().__init__(param) - def _get_standard_fundamental_variables(self, T, T_cn, T_cp): + def _get_standard_fundamental_variables(self, T_cn, T_n, T_s, T_p, T_cp): param = self.param - T_n, T_s, T_p = T.orphans + T = pybamm.Concatenation(T_n, T_s, T_p) # Compute the X-average over the current collectors by default. # Note: the method 'self._x_average' is overwritten by models which do @@ -35,24 +35,25 @@ def _get_standard_fundamental_variables(self, T, T_cn, T_cp): q = self._flux_law(T) + T_n_av = pybamm.x_average(T_n) + T_s_av = pybamm.x_average(T_s) + T_p_av = pybamm.x_average(T_p) + variables = { "Negative current collector temperature": T_cn, "Negative current collector temperature [K]": param.Delta_T * T_cn, - "X-averaged negative electrode temperature": pybamm.x_average(T_n), - "X-averaged negative electrode temperature [K]": param.Delta_T - * pybamm.x_average(T_n) + "X-averaged negative electrode temperature": T_n_av, + "X-averaged negative electrode temperature [K]": param.Delta_T * T_n_av + param.T_ref, "Negative electrode temperature": T_n, "Negative electrode temperature [K]": param.Delta_T * T_n + param.T_ref, - "X-averaged separator temperature": pybamm.x_average(T_s), - "X-averaged separator temperature [K]": param.Delta_T - * pybamm.x_average(T_s) + "X-averaged separator temperature": T_s_av, + "X-averaged separator temperature [K]": param.Delta_T * T_s_av + param.T_ref, "Separator temperature": T_s, "Separator temperature [K]": param.Delta_T * T_s + param.T_ref, - "X-averaged positive electrode temperature": pybamm.x_average(T_p), - "X-averaged positive electrode temperature [K]": param.Delta_T - * pybamm.x_average(T_p) + "X-averaged positive electrode temperature": T_p_av, + "X-averaged positive electrode temperature [K]": param.Delta_T * T_p_av + param.T_ref, "Positive electrode temperature": T_p, "Positive electrode temperature [K]": param.Delta_T * T_p + param.T_ref, diff --git a/pybamm/models/submodels/thermal/isothermal/isothermal.py b/pybamm/models/submodels/thermal/isothermal/isothermal.py index 9f99df373e..3c6a2e0a56 100644 --- a/pybamm/models/submodels/thermal/isothermal/isothermal.py +++ b/pybamm/models/submodels/thermal/isothermal/isothermal.py @@ -27,12 +27,11 @@ def get_fundamental_variables(self): T_n = pybamm.PrimaryBroadcast(T_x_av, "negative electrode") T_s = pybamm.PrimaryBroadcast(T_x_av, "separator") T_p = pybamm.PrimaryBroadcast(T_x_av, "positive electrode") - T = pybamm.Concatenation(T_n, T_s, T_p) T_cn = T_x_av T_cp = T_x_av - variables = self._get_standard_fundamental_variables(T, T_cn, T_cp) + variables = self._get_standard_fundamental_variables(T_cn, T_n, T_s, T_p, T_cp) return variables diff --git a/pybamm/models/submodels/thermal/x_full/base_x_full.py b/pybamm/models/submodels/thermal/x_full/base_x_full.py index 3b939d8a72..42b78127bd 100644 --- a/pybamm/models/submodels/thermal/x_full/base_x_full.py +++ b/pybamm/models/submodels/thermal/x_full/base_x_full.py @@ -22,11 +22,13 @@ def __init__(self, param): super().__init__(param) def get_fundamental_variables(self): - T = pybamm.standard_variables.T - T_cn = pybamm.BoundaryValue(T, "left") - T_cp = pybamm.BoundaryValue(T, "right") + T_n = pybamm.standard_variables.T_n + T_s = pybamm.standard_variables.T_s + T_p = pybamm.standard_variables.T_p + T_cn = pybamm.BoundaryValue(T_n, "left") + T_cp = pybamm.BoundaryValue(T_p, "right") - variables = self._get_standard_fundamental_variables(T, T_cn, T_cp) + variables = self._get_standard_fundamental_variables(T_cn, T_n, T_s, T_p, T_cp) return variables def get_coupled_variables(self, variables): diff --git a/pybamm/models/submodels/thermal/x_lumped/base_x_lumped.py b/pybamm/models/submodels/thermal/x_lumped/base_x_lumped.py index 9fff53d818..0726d3e9be 100644 --- a/pybamm/models/submodels/thermal/x_lumped/base_x_lumped.py +++ b/pybamm/models/submodels/thermal/x_lumped/base_x_lumped.py @@ -27,12 +27,11 @@ def get_fundamental_variables(self): T_n = pybamm.PrimaryBroadcast(T_x_av, "negative electrode") T_s = pybamm.PrimaryBroadcast(T_x_av, "separator") T_p = pybamm.PrimaryBroadcast(T_x_av, "positive electrode") - T = pybamm.Concatenation(T_n, T_s, T_p) T_cn = T_x_av T_cp = T_x_av - variables = self._get_standard_fundamental_variables(T, T_cn, T_cp) + variables = self._get_standard_fundamental_variables(T_cn, T_n, T_s, T_p, T_cp) return variables diff --git a/pybamm/models/submodels/thermal/xyz_lumped/base_xyz_lumped.py b/pybamm/models/submodels/thermal/xyz_lumped/base_xyz_lumped.py index e4cbb17696..4e8faf7a93 100644 --- a/pybamm/models/submodels/thermal/xyz_lumped/base_xyz_lumped.py +++ b/pybamm/models/submodels/thermal/xyz_lumped/base_xyz_lumped.py @@ -29,12 +29,11 @@ def get_fundamental_variables(self): T_n = pybamm.PrimaryBroadcast(T_x_av, "negative electrode") T_s = pybamm.PrimaryBroadcast(T_x_av, "separator") T_p = pybamm.PrimaryBroadcast(T_x_av, "positive electrode") - T = pybamm.Concatenation(T_n, T_s, T_p) T_cn = T_x_av T_cp = T_x_av - variables = self._get_standard_fundamental_variables(T, T_cn, T_cp) + variables = self._get_standard_fundamental_variables(T_cn, T_n, T_s, T_p, T_cp) return variables diff --git a/pybamm/parameters/print_parameters.py b/pybamm/parameters/print_parameters.py index a78b9f31f7..d529f37be2 100644 --- a/pybamm/parameters/print_parameters.py +++ b/pybamm/parameters/print_parameters.py @@ -67,9 +67,8 @@ def print_parameters(parameters, parameter_values, output_file=None): proc_symbol = parameter_values.process_symbol(symbol) if not ( callable(proc_symbol) - or any( - isinstance(x, (pybamm.Concatenation, pybamm.Broadcast)) - for x in proc_symbol.pre_order() + or proc_symbol.has_symbol_of_classes( + (pybamm.Concatenation, pybamm.Broadcast) ) ): evaluated_parameters[name].append(proc_symbol.evaluate(t=0)) diff --git a/tests/integration/test_models/standard_model_tests.py b/tests/integration/test_models/standard_model_tests.py index 421c79164d..11ea6afe81 100644 --- a/tests/integration/test_models/standard_model_tests.py +++ b/tests/integration/test_models/standard_model_tests.py @@ -48,12 +48,7 @@ def test_processing_parameters(self, parameter_values=None): self.model.check_well_posedness() # No Parameter or FunctionParameter nodes in the model for eqn in {**self.model.rhs, **self.model.algebraic}.values(): - if any( - [ - isinstance(x, (pybamm.Parameter, pybamm.FunctionParameter)) - for x in eqn.pre_order() - ] - ): + if eqn.has_symbol_of_classes((pybamm.Parameter, pybamm.FunctionParameter)): raise TypeError( "Not all Parameter and FunctionParameter objects processed" ) diff --git a/tests/unit/test_expression_tree/test_operations/test_unpack_symbols.py b/tests/unit/test_expression_tree/test_operations/test_unpack_symbols.py new file mode 100644 index 0000000000..e99d271a98 --- /dev/null +++ b/tests/unit/test_expression_tree/test_operations/test_unpack_symbols.py @@ -0,0 +1,61 @@ +# +# Tests for the jacobian methods +# +import pybamm +import unittest + + +class TestSymbolUnpacker(unittest.TestCase): + def test_basic_symbols(self): + a = pybamm.Scalar(1) + unpacker = pybamm.SymbolUnpacker(pybamm.Scalar) + + unpacked = unpacker.unpack_symbol(a) + self.assertEqual(unpacked, {a.id: a}) + + b = pybamm.Parameter("b") + unpacker_param = pybamm.SymbolUnpacker(pybamm.Parameter) + + unpacked = unpacker_param.unpack_symbol(a) + self.assertEqual(unpacked, {}) + + unpacked = unpacker_param.unpack_symbol(b) + self.assertEqual(unpacked, {b.id: b}) + + def test_binary(self): + a = pybamm.Scalar(1) + b = pybamm.Parameter("b") + + unpacker = pybamm.SymbolUnpacker(pybamm.Scalar) + unpacked = unpacker.unpack_symbol(a + b) + # Can't check dictionary directly so check ids + self.assertEqual(unpacked.keys(), {a.id: a}.keys()) + self.assertEqual(unpacked[a.id].id, a.id) + + unpacker_param = pybamm.SymbolUnpacker(pybamm.Parameter) + unpacked = unpacker_param.unpack_symbol(a + b) + # Can't check dictionary directly so check ids + self.assertEqual(unpacked.keys(), {b.id: b}.keys()) + self.assertEqual(unpacked[b.id].id, b.id) + + def test_unpack_list_of_symbols(self): + a = pybamm.Scalar(1) + b = pybamm.Parameter("b") + c = pybamm.Parameter("c") + + unpacker = pybamm.SymbolUnpacker(pybamm.Parameter) + unpacked = unpacker.unpack_list_of_symbols([a + b, a - c, b + c]) + # Can't check dictionary directly so check ids + self.assertEqual(unpacked.keys(), {b.id: b, c.id: c}.keys()) + self.assertEqual(unpacked[b.id].id, b.id) + self.assertEqual(unpacked[c.id].id, c.id) + + +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_expression_tree/test_symbol.py b/tests/unit/test_expression_tree/test_symbol.py index 3176adeba2..e8626f25d3 100644 --- a/tests/unit/test_expression_tree/test_symbol.py +++ b/tests/unit/test_expression_tree/test_symbol.py @@ -322,8 +322,7 @@ def test_symbol_visualise(self): model.set_rhs(variables) - c_e = pybamm.standard_variables.c_e - rhs = model.rhs[c_e] + rhs = list(model.rhs.values())[0] rhs.visualise("StefanMaxwell_test.png") self.assertTrue(os.path.exists("StefanMaxwell_test.png")) with self.assertRaises(ValueError): 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 372f5565d5..5cf5c432d6 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 @@ -11,11 +11,14 @@ class TestComposite(unittest.TestCase): def test_public_functions(self): param = pybamm.standard_parameters_lithium_ion a = pybamm.PrimaryBroadcast(0, "current collector") - c_e = pybamm.standard_variables.c_e - + c_e_n = pybamm.standard_variables.c_e_n + c_e_s = pybamm.standard_variables.c_e_s + c_e_p = pybamm.standard_variables.c_e_p variables = { "Leading-order current collector current density": a, - "Electrolyte concentration": c_e, + "Negative electrolyte concentration": c_e_n, + "Separator electrolyte concentration": c_e_s, + "Positive electrolyte concentration": c_e_p, "X-averaged electrolyte concentration": a, "X-averaged negative electrode potential": a, "X-averaged negative electrode surface potential difference": a, @@ -34,11 +37,15 @@ def test_public_functions(self): def test_public_functions_first_order(self): param = pybamm.standard_parameters_lithium_ion a = pybamm.PrimaryBroadcast(0, "current collector") - c_e = pybamm.standard_variables.c_e + c_e_n = pybamm.standard_variables.c_e_n + c_e_s = pybamm.standard_variables.c_e_s + c_e_p = pybamm.standard_variables.c_e_p variables = { "Leading-order current collector current density": a, - "Electrolyte concentration": c_e, + "Negative electrolyte concentration": c_e_n, + "Separator electrolyte concentration": c_e_s, + "Positive electrolyte concentration": c_e_p, "Leading-order x-averaged electrolyte concentration": a, "X-averaged electrolyte concentration": a, "X-averaged negative electrode potential": a, From 85e1ec6e09aecd2de5c27ffc1781e6256cc6619c Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 28 Mar 2020 14:53:12 -0400 Subject: [PATCH 3/9] #923 make casadi default solver for lead-acid --- .../full_battery_models/lead_acid/base_lead_acid_model.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 4a9da79620..fafdf3b176 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 @@ -50,9 +50,7 @@ def default_solver(self): """ if len(self.algebraic) == 0: return pybamm.ScipySolver() - elif pybamm.have_scikits_odes(): - return pybamm.ScikitsDaeSolver() - else: # pragma: no cover + else: return pybamm.CasadiSolver(mode="safe") def set_reactions(self): From 6cabf93fe0b2805eb8705f790af7b9c9a3e4684d Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 28 Mar 2020 15:19:40 -0400 Subject: [PATCH 4/9] #923 changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4895abe060..9369ed3908 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,8 +17,14 @@ - Added `CasadiAlgebraicSolver` for solving algebraic systems with CasADi ([#868](https://github.com/pybamm-team/PyBaMM/pull/868)) - Added electrolyte functions from Landesfeind ([#860](https://github.com/pybamm-team/PyBaMM/pull/860)) +## Optimizations + +- Sped up model building +- Changed default solver for lead-acid to `CasadiSolver` + ## Bug fixes +- Reformatted electrolyte submodels - Fixed bug raised if function returns a scalar ([#919](https://github.com/pybamm-team/PyBaMM/pull/919)) - Fixed event handling in `ScipySolver` ([#905](https://github.com/pybamm-team/PyBaMM/pull/905)) - Made input handling clearer in solvers ([#905](https://github.com/pybamm-team/PyBaMM/pull/905)) From 40e07e4b6916207886bc619e1c337f322eb0bad6 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 28 Mar 2020 15:22:07 -0400 Subject: [PATCH 5/9] #923 docs --- docs/source/expression_tree/operations/index.rst | 1 + docs/source/expression_tree/operations/unpack_symbol.rst | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 docs/source/expression_tree/operations/unpack_symbol.rst diff --git a/docs/source/expression_tree/operations/index.rst b/docs/source/expression_tree/operations/index.rst index 31004a2204..2064dcaae2 100644 --- a/docs/source/expression_tree/operations/index.rst +++ b/docs/source/expression_tree/operations/index.rst @@ -9,3 +9,4 @@ Classes and functions that operate on the expression tree evaluate jacobian convert_to_casadi + unpack_symbol diff --git a/docs/source/expression_tree/operations/unpack_symbol.rst b/docs/source/expression_tree/operations/unpack_symbol.rst new file mode 100644 index 0000000000..56de8cd49e --- /dev/null +++ b/docs/source/expression_tree/operations/unpack_symbol.rst @@ -0,0 +1,5 @@ +Symbol Unpacker +=============== + +.. autoclass:: pybamm.SymbolUnpacker + :members: From aae94027a4156ad9a29599423d0c280e64fc0f41 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sat, 28 Mar 2020 18:29:28 -0400 Subject: [PATCH 6/9] #923 fix interface tests --- CHANGELOG.md | 6 +-- .../submodels/interface/kinetics/tafel.py | 4 +- .../test_interface/test_diffusion_limited.py | 46 ++++++++++++++++++ .../test_base_diffusion_limited.py | 27 ----------- .../test_inverse_kinetics/__init__.py | 0 .../test_inverse_butler_volmer.py | 29 ++++++++---- .../test_interface/test_kinetics/__init__.py | 0 .../test_kinetics/test_base_kinetics.py | 27 ----------- .../test_kinetics/test_butler_volmer.py | 28 +++++++---- .../test_kinetics/test_tafel.py | 47 ++++++++++++++----- 10 files changed, 124 insertions(+), 90 deletions(-) create mode 100644 tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited.py delete mode 100644 tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited/test_base_diffusion_limited.py create mode 100644 tests/unit/test_models/test_submodels/test_interface/test_inverse_kinetics/__init__.py create mode 100644 tests/unit/test_models/test_submodels/test_interface/test_kinetics/__init__.py delete mode 100644 tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_base_kinetics.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e387a15c9..fcdf64819d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,12 +21,12 @@ ## Optimizations -- Sped up model building -- Changed default solver for lead-acid to `CasadiSolver` +- Sped up model building ([#927](https://github.com/pybamm-team/PyBaMM/pull/927)) +- Changed default solver for lead-acid to `CasadiSolver` ([#927](https://github.com/pybamm-team/PyBaMM/pull/927)) ## Bug fixes -- Reformatted electrolyte submodels +- Reformatted electrolyte submodels ([#927](https://github.com/pybamm-team/PyBaMM/pull/927)) - Fixed bug raised if function returns a scalar ([#919](https://github.com/pybamm-team/PyBaMM/pull/919)) - Fixed event handling in `ScipySolver` ([#905](https://github.com/pybamm-team/PyBaMM/pull/905)) - Made input handling clearer in solvers ([#905](https://github.com/pybamm-team/PyBaMM/pull/905)) diff --git a/pybamm/models/submodels/interface/kinetics/tafel.py b/pybamm/models/submodels/interface/kinetics/tafel.py index 4c74296430..4aff0c6a75 100644 --- a/pybamm/models/submodels/interface/kinetics/tafel.py +++ b/pybamm/models/submodels/interface/kinetics/tafel.py @@ -74,8 +74,8 @@ class BackwardTafel(BaseKinetics): **Extends:** :class:`pybamm.interface.kinetics.BaseKinetics` """ - def __init__(self, param, domain): - super().__init__(param, domain) + def __init__(self, param, domain, reaction): + super().__init__(param, domain, reaction) def _get_kinetics(self, j0, ne, eta_r, T): return -j0 * pybamm.exp(-(ne / (2 * (1 + self.param.Theta * T))) * eta_r) 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 new file mode 100644 index 0000000000..a3c3c70c65 --- /dev/null +++ b/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited.py @@ -0,0 +1,46 @@ +# +# Test diffusion limited submodel +# + +import pybamm +import tests +import unittest + + +class TestBaseModel(unittest.TestCase): + def test_public_function(self): + param = pybamm.standard_parameters_lead_acid + + a_n = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["negative electrode"]) + a_s = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["separator"]) + a = pybamm.Scalar(0) + variables = { + "Current collector current density": a, + "Negative electrode potential": a_n, + "Negative electrolyte potential": a_n, + "Negative electrolyte concentration": a_n, + "X-averaged positive electrode oxygen interfacial current density": a, + "Separator tortuosity": a_s, + "Separator oxygen concentration": a_s, + } + submodel = pybamm.interface.DiffusionLimited( + param, "Negative", "lead-acid oxygen", "leading" + ) + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() + + submodel = pybamm.interface.DiffusionLimited( + param, "Negative", "lead-acid oxygen", "full" + ) + 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_interface/test_diffusion_limited/test_base_diffusion_limited.py b/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited/test_base_diffusion_limited.py deleted file mode 100644 index d21c7d52e2..0000000000 --- a/tests/unit/test_models/test_submodels/test_interface/test_diffusion_limited/test_base_diffusion_limited.py +++ /dev/null @@ -1,27 +0,0 @@ -# -# Test base kinetics submodel -# - -import pybamm -import unittest - - -class TestBaseModel(unittest.TestCase): - def test_not_implemented(self): - submodel = pybamm.interface.diffusion_limited.BaseModel(None, None) - with self.assertRaises(NotImplementedError): - submodel._get_exchange_current_density(None) - with self.assertRaises(NotImplementedError): - submodel._get_diffusion_limited_current_density(None) - with self.assertRaises(NotImplementedError): - submodel._get_open_circuit_potential(None) - - -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_interface/test_inverse_kinetics/__init__.py b/tests/unit/test_models/test_submodels/test_interface/test_inverse_kinetics/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 29d46f6fbd..fb0128b0b6 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 @@ -12,22 +12,31 @@ def test_public_functions(self): param = pybamm.standard_parameters_lithium_ion a = pybamm.Scalar(0) - variables = {"Negative electrode open circuit potential": a} + variables = { + "Negative electrode open circuit potential": a, + "Negative particle surface concentration": a, + "Negative electrode temperature": a, + "Negative electrolyte concentration": a, + "Current collector current density": a, + } submodel = pybamm.interface.inverse_kinetics.InverseButlerVolmer( - param, "Negative" + param, "Negative", "lithium-ion main" ) std_tests = tests.StandardSubModelTests(submodel, variables) - - with self.assertRaises(NotImplementedError): - std_tests.test_all() - - variables = {"Positive electrode open circuit potential": a} + std_tests.test_all() + + variables = { + "Positive electrode open circuit potential": a, + "Positive particle surface concentration": a, + "Positive electrode temperature": a, + "Positive electrolyte concentration": a, + "Current collector current density": a, + } submodel = pybamm.interface.inverse_kinetics.InverseButlerVolmer( - param, "Positive" + param, "Positive", "lithium-ion main" ) std_tests = tests.StandardSubModelTests(submodel, variables) - with self.assertRaises(NotImplementedError): - std_tests.test_all() + std_tests.test_all() if __name__ == "__main__": diff --git a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/__init__.py b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_base_kinetics.py b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_base_kinetics.py deleted file mode 100644 index f60988b366..0000000000 --- a/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_base_kinetics.py +++ /dev/null @@ -1,27 +0,0 @@ -# -# Test base kinetics submodel -# - -import pybamm -import unittest - - -class TestBaseModel(unittest.TestCase): - def test_not_implemented(self): - submodel = pybamm.interface.kinetics.BaseModel(None, None) - with self.assertRaises(NotImplementedError): - submodel._get_exchange_current_density(None) - with self.assertRaises(NotImplementedError): - submodel._get_kinetics(None, None, None) - with self.assertRaises(NotImplementedError): - submodel._get_open_circuit_potential(None) - - -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_interface/test_kinetics/test_butler_volmer.py b/tests/unit/test_models/test_submodels/test_interface/test_kinetics/test_butler_volmer.py index 28fdd3c8b7..575c8c53fd 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 @@ -7,33 +7,41 @@ import unittest -class TestBaseModel(unittest.TestCase): +class TestButlerVolmer(unittest.TestCase): def test_public_functions(self): param = pybamm.standard_parameters_lithium_ion + a_n = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["negative electrode"]) + a_p = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["positive electrode"]) a = pybamm.Scalar(0) variables = { "Current collector current density": a, "Negative electrode potential": a, "Negative electrolyte potential": a, "Negative electrode open circuit potential": a, + "Negative electrolyte concentration": a, + "Negative particle surface concentration": a, + "Negative electrode temperature": a, } - submodel = pybamm.interface.kinetics.BaseModel(param, "Negative") + submodel = pybamm.interface.ButlerVolmer(param, "Negative", "lithium-ion main") std_tests = tests.StandardSubModelTests(submodel, variables) - with self.assertRaises(NotImplementedError): - std_tests.test_all() + std_tests.test_all() variables = { "Current collector current density": a, - "Positive electrode potential": a, - "Positive electrolyte potential": a, - "Positive electrode open circuit potential": a, + "Positive electrode potential": a_p, + "Positive electrolyte potential": a_p, + "Positive electrode open circuit potential": a_p, + "Positive electrolyte concentration": a_p, + "Positive particle surface concentration": a_p, + "Negative electrode interfacial current density": a_n, + "Negative electrode exchange current density": a_n, + "Positive electrode temperature": a_p, } - submodel = pybamm.interface.kinetics.BaseModel(param, "Positive") + submodel = pybamm.interface.ButlerVolmer(param, "Positive", "lithium-ion main") std_tests = tests.StandardSubModelTests(submodel, variables) - with self.assertRaises(NotImplementedError): - std_tests.test_all() + std_tests.test_all() if __name__ == "__main__": 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 8c9e4cf06a..77abcd70ec 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 @@ -1,21 +1,46 @@ # -# Test base butler volmer submodel +# Test base Tafel submodel # - import pybamm +import tests import unittest class TestTafel(unittest.TestCase): - def test_forward_tafel(self): - submodel = pybamm.interface.kinetics.ForwardTafel(None, None) - j = submodel._get_kinetics(pybamm.Scalar(1), pybamm.Scalar(1), pybamm.Scalar(1)) - self.assertIsInstance(j, pybamm.Symbol) - - def test_backward_tafel(self): - submodel = pybamm.interface.kinetics.BackwardTafel(None, None) - j = submodel._get_kinetics(pybamm.Scalar(1), pybamm.Scalar(1), pybamm.Scalar(1)) - self.assertIsInstance(j, pybamm.Symbol) + def test_public_function(self): + param = pybamm.standard_parameters_lithium_ion + + a_n = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["negative electrode"]) + a_p = pybamm.PrimaryBroadcast(pybamm.Scalar(0), ["positive electrode"]) + a = pybamm.Scalar(0) + variables = { + "Current collector current density": a, + "Negative electrode potential": a_n, + "Negative electrolyte potential": a_n, + "Negative electrode open circuit potential": a_n, + "Negative electrolyte concentration": a_n, + "Negative particle surface concentration": a_n, + "Negative electrode temperature": a_n, + } + submodel = pybamm.interface.ForwardTafel(param, "Negative", "lithium-ion main") + std_tests = tests.StandardSubModelTests(submodel, variables) + + std_tests.test_all() + + variables = { + "Current collector current density": a, + "Positive electrode potential": a_p, + "Positive electrolyte potential": a_p, + "Positive electrode open circuit potential": a_p, + "Positive electrolyte concentration": a_p, + "Positive particle surface concentration": a_p, + "Negative electrode interfacial current density": a_n, + "Negative electrode exchange current density": a_n, + "Positive electrode temperature": a_p, + } + submodel = pybamm.interface.BackwardTafel(param, "Positive", "lithium-ion main") + std_tests = tests.StandardSubModelTests(submodel, variables) + std_tests.test_all() if __name__ == "__main__": From a06580fb97a4705fa1189a6bd5551553f616d8b9 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Wed, 1 Apr 2020 19:15:33 -0400 Subject: [PATCH 7/9] #923 generalize broadcasts --- pybamm/expression_tree/broadcasts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pybamm/expression_tree/broadcasts.py b/pybamm/expression_tree/broadcasts.py index 2f85f11e7a..052b76cba7 100644 --- a/pybamm/expression_tree/broadcasts.py +++ b/pybamm/expression_tree/broadcasts.py @@ -252,8 +252,8 @@ class FullBroadcast(Broadcast): "A class for full broadcasts" def __init__(self, child, broadcast_domain, auxiliary_domains, name=None): - if auxiliary_domains == "current collector": - auxiliary_domains = {"secondary": "current collector"} + if isinstance(auxiliary_domains, str): + auxiliary_domains = {"secondary": auxiliary_domains} super().__init__( child, broadcast_domain, From 3c1c6cf847ed1715702b22d3a7b4cb89b2c1840e Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Thu, 2 Apr 2020 12:17:43 -0400 Subject: [PATCH 8/9] #923 Rob and Scott comments --- ...ity.rst => full_surface_form_conductivity.rst} | 0 .../surface_form/index.rst | 4 ++-- ....rst => leading_surface_form_conductivity.rst} | 0 examples/scripts/compare_lead_acid.py | 6 +++--- .../full_battery_models/base_battery_model.py | 3 +-- .../surface_potential_form/__init__.py | 4 ++-- ...ivity.py => full_surface_form_conductivity.py} | 0 ...ty.py => leading_surface_form_conductivity.py} | 0 .../base_electrolyte_diffusion.py | 11 ----------- .../electrolyte_diffusion/composite_diffusion.py | 15 +++++++++++---- .../constant_concentration.py | 2 -- .../electrolyte_diffusion/full_diffusion.py | 11 +++++++++++ 12 files changed, 30 insertions(+), 26 deletions(-) rename docs/source/models/submodels/electrolyte_conductivity/surface_form/{full_surface_form_stefan_maxwell_conductivity.rst => full_surface_form_conductivity.rst} (100%) rename docs/source/models/submodels/electrolyte_conductivity/surface_form/{leading_surface_form_stefan_maxwell_conductivity.rst => leading_surface_form_conductivity.rst} (100%) rename pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/{full_surface_form_stefan_maxwell_conductivity.py => full_surface_form_conductivity.py} (100%) rename pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/{leading_surface_form_stefan_maxwell_conductivity.py => leading_surface_form_conductivity.py} (100%) diff --git a/docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_conductivity.rst similarity index 100% rename from docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_stefan_maxwell_conductivity.rst rename to docs/source/models/submodels/electrolyte_conductivity/surface_form/full_surface_form_conductivity.rst diff --git a/docs/source/models/submodels/electrolyte_conductivity/surface_form/index.rst b/docs/source/models/submodels/electrolyte_conductivity/surface_form/index.rst index 313f40d282..4bd385b080 100644 --- a/docs/source/models/submodels/electrolyte_conductivity/surface_form/index.rst +++ b/docs/source/models/submodels/electrolyte_conductivity/surface_form/index.rst @@ -3,5 +3,5 @@ Surface Form .. toctree:: - full_surface_form_stefan_maxwell_conductivity - leading_surface_form_stefan_maxwell_conductivity + full_surface_form_conductivity + leading_surface_form_conductivity diff --git a/docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst b/docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_conductivity.rst similarity index 100% rename from docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_stefan_maxwell_conductivity.rst rename to docs/source/models/submodels/electrolyte_conductivity/surface_form/leading_surface_form_conductivity.rst diff --git a/examples/scripts/compare_lead_acid.py b/examples/scripts/compare_lead_acid.py index eb9548f554..9f41b8c52f 100644 --- a/examples/scripts/compare_lead_acid.py +++ b/examples/scripts/compare_lead_acid.py @@ -17,9 +17,9 @@ # load models models = [ - # pybamm.lead_acid.LOQS(), - # # pybamm.lead_acid.FOQS(), - # pybamm.lead_acid.Composite(), + pybamm.lead_acid.LOQS(), + pybamm.lead_acid.FOQS(), + pybamm.lead_acid.Composite(), pybamm.lead_acid.Full(), ] diff --git a/pybamm/models/full_battery_models/base_battery_model.py b/pybamm/models/full_battery_models/base_battery_model.py index 97119f2b73..616c60d125 100644 --- a/pybamm/models/full_battery_models/base_battery_model.py +++ b/pybamm/models/full_battery_models/base_battery_model.py @@ -22,8 +22,7 @@ class BaseBatteryModel(pybamm.BaseModel): (default), 1 or 2. * "surface form" : bool or str, optional Whether to use the surface formulation of the problem. Can be False - (default), "differential" or "algebraic". Must be 'False' for - lithium-ion models. + (default), "differential" or "algebraic". * "convection" : bool or str, optional Whether to include the effects of convection in the model. Can be False (default), "differential" or "algebraic". Must be 'False' for diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py index 67731f871b..58468cb3f4 100644 --- a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py +++ b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/__init__.py @@ -1,11 +1,11 @@ # Full order models -from .full_surface_form_stefan_maxwell_conductivity import ( +from .full_surface_form_conductivity import ( FullAlgebraic, FullDifferential, ) # Leading-order models -from .leading_surface_form_stefan_maxwell_conductivity import ( +from .leading_surface_form_conductivity import ( LeadingOrderDifferential, LeadingOrderAlgebraic, ) diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/full_surface_form_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py b/pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_conductivity.py similarity index 100% rename from pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_stefan_maxwell_conductivity.py rename to pybamm/models/submodels/electrolyte_conductivity/surface_potential_form/leading_surface_form_conductivity.py diff --git a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py index d026ec6af1..9022acf7d2 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/base_electrolyte_diffusion.py @@ -106,17 +106,6 @@ def _get_standard_flux_variables(self, N_e): return variables - def set_boundary_conditions(self, variables): - - c_e = variables["Electrolyte concentration"] - - self.boundary_conditions = { - c_e: { - "left": (pybamm.Scalar(0), "Neumann"), - "right": (pybamm.Scalar(0), "Neumann"), - } - } - 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 60a6b743a5..f53fe24e7e 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py @@ -45,10 +45,6 @@ def get_coupled_variables(self, variables): param = self.param N_e_diffusion = -tor_0 * param.D_e(c_e_0_av, T_0) * pybamm.grad(c_e) - # N_e_migration = (param.C_e * param.t_plus) / param.gamma_e * i_e - # N_e_convection = c_e * v_box_0 - - # N_e = N_e_diffusion + N_e_migration + N_e_convection if v_box_0.id == pybamm.Scalar(0).id: N_e = N_e_diffusion @@ -111,3 +107,14 @@ def set_initial_conditions(self, variables): c_e = variables["Electrolyte concentration"] self.initial_conditions = {c_e: self.param.c_e_init} + + def set_boundary_conditions(self, variables): + + c_e = variables["Electrolyte concentration"] + + self.boundary_conditions = { + c_e: { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } diff --git a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py index 6de013290c..8b90396f7e 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py +++ b/pybamm/models/submodels/electrolyte_diffusion/constant_concentration.py @@ -38,5 +38,3 @@ def get_fundamental_variables(self): return variables - def set_boundary_conditions(self, variables): - return None diff --git a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py index 418c99bc8a..a388148825 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/full_diffusion.py @@ -86,3 +86,14 @@ def set_initial_conditions(self, variables): c_e = variables["Electrolyte concentration"] self.initial_conditions = {c_e: self.param.c_e_init} + + def set_boundary_conditions(self, variables): + + c_e = variables["Electrolyte concentration"] + + self.boundary_conditions = { + c_e: { + "left": (pybamm.Scalar(0), "Neumann"), + "right": (pybamm.Scalar(0), "Neumann"), + } + } From 796f8d08c180ece6d49c8042f32a3d087166a891 Mon Sep 17 00:00:00 2001 From: Valentin Sulzer Date: Sun, 5 Apr 2020 15:09:48 -0400 Subject: [PATCH 9/9] #923 fix composite extended model --- examples/scripts/compare_lead_acid.py | 4 ++-- .../electrolyte_diffusion/composite_diffusion.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/examples/scripts/compare_lead_acid.py b/examples/scripts/compare_lead_acid.py index 9f41b8c52f..252523292c 100644 --- a/examples/scripts/compare_lead_acid.py +++ b/examples/scripts/compare_lead_acid.py @@ -19,13 +19,13 @@ models = [ pybamm.lead_acid.LOQS(), pybamm.lead_acid.FOQS(), - pybamm.lead_acid.Composite(), + pybamm.lead_acid.CompositeExtended(), pybamm.lead_acid.Full(), ] # load parameter values and process models and geometry param = models[0].default_parameter_values -param.update({"Current function [A]": 10, "Initial State of Charge": 1}) +param.update({"Current function [A]": 85, "Initial State of Charge": 1}) for model in models: param.process_model(model) diff --git a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py index f53fe24e7e..8c0016a2de 100644 --- a/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py +++ b/pybamm/models/submodels/electrolyte_diffusion/composite_diffusion.py @@ -92,11 +92,17 @@ def _get_source_terms_leading_order(self, variables): ) def _get_source_terms_first_order(self, variables): + param = self.param + c_e_n = variables["Negative electrolyte concentration"] + c_e_p = variables["Positive electrolyte concentration"] + return sum( pybamm.Concatenation( - reaction["Negative"]["s"] * variables[reaction["Negative"]["aj"]], + (reaction["Negative"]["s"] - param.t_plus(c_e_n)) + * variables[reaction["Negative"]["aj"]], pybamm.FullBroadcast(0, "separator", "current collector"), - reaction["Positive"]["s"] * variables[reaction["Positive"]["aj"]], + (reaction["Positive"]["s"] - param.t_plus(c_e_p)) + * variables[reaction["Positive"]["aj"]], ) / self.param.gamma_e for reaction in self.reactions.values()