{
"cells": [
{
"cell_type": "markdown",
"id": "28c4658c",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Dynamic Simulation \n",
"\n",
"- **Prepared by:**\n",
" \n",
" - [Joy Zhang](https://qsdsan.readthedocs.io/en/latest/CONTRIBUTING.html)\n",
" \n",
"- **Covered topics:**\n",
"\n",
" - [1. Understanding dynamic simulation with QSDsan](#s1)\n",
" - [2. Writing a dynamic SanUnit](#s2)\n",
" - [3. Other convenient features](#s3)\n",
" \n",
"- **Video demo:**\n",
"\n",
" - [Yalin Li](https://qsdsan.readthedocs.io/en/latest/CONTRIBUTING.html)\n",
" \n",
"To run tutorials in your browser, go to this [Binder page](https://mybinder.org/v2/gh/QSD-Group/QSDsan-env/main?urlpath=git-pull%3Frepo%3Dhttps%253A%252F%252Fgithub.com%252FQSD-group%252FQSDsan%26urlpath%3Dtree%252FQSDsan%252Fdocs%252Fsource%252Ftutorials%26branch%3Dmain).\n",
" \n",
"You can also watch a video demo on [YouTube](https://youtu.be/1Rr1QxUiE5k) (subscriptions & likes appreciated!)."
]
},
{
"cell_type": "markdown",
"id": "2bc790e7",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"---\n",
"From previous tutorials, we've covered how to use QSDsan's [SanUnit](https://qsdsan.readthedocs.io/en/latest/tutorials/5_SanUnit_advanced.html) and [WasteStream](https://qsdsan.readthedocs.io/en/latest/tutorials/3_WasteStream.html) classes to model the mass/energy flows throughout a system. You may have noticed, the simulation results generated by `SanUnit._run` are **static**, i.e., they don't carry time-related information. \n",
"\n",
"In this tutorial, we will learn about the **dynamic** simulation features in QSDsan. First we will focus on performing dynamic simulations with an existing system to understand the basics. Then we'll go over how to implement your own algorithms for dynamic simulations. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "3dc1138e",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"This tutorial was made with qsdsan v1.3.1 and exposan v1.3.1\n"
]
}
],
"source": [
"import qsdsan as qs, exposan\n",
"print(f'This tutorial was made with qsdsan v{qs.__version__} and exposan v{exposan.__version__}')"
]
},
{
"cell_type": "markdown",
"id": "b7f9ccfc",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 1. Understanding dynamic simulation with QSDsan \n",
"\n",
"### 1.1. An example system\n",
"Let's use [Benchmark Simulation Model no.1 (BSM1)](http://iwa-mia.org/benchmarking/#BSM1) as an example. BSM1 describes an activated sludge treatment process that can be commonly found in conventional wastewater treatment facilities. The full system has been implemented in [EXPOsan](https://github.com/QSD-Group/EXPOsan/tree/main/exposan/bsm1).\n",
"\n",
"The activated sludge process is often characterized as a series of biokinetic reactions in parallel (recap on `Process` [here](https://qsdsan.readthedocs.io/en/latest/tutorials/10_Process.html)). The mathematical models of this kind cannot output mass flows or concentrations directly as a function of input. But rather, they describe the rates of change in state variables at any time as a function of the state variables (often concentrations). As a result, simulation of such systems involves solving a series of ordinary differential equations (ODEs). We have developed features in QSDsan for this specific purpose."
]
},
{
"cell_type": "markdown",
"id": "a8a07c91",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"#### 1.1.1. Running dynamic simulation"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a1c82016",
"metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"System: bsm1_sys\n",
"ins...\n",
"[0] wastewater \n",
" phase: 'l', T: 293.15 K, P: 101325 Pa\n",
" flow (kmol/hr): S_I 23.1\n",
" S_S 53.4\n",
" X_I 39.4\n",
" X_S 155\n",
" X_BH 21.7\n",
" S_NH 1.34\n",
" S_ND 0.381\n",
" ... 4.26e+04\n",
"outs...\n",
"[0] effluent \n",
" phase: 'l', T: 293.15 K, P: 101325 Pa\n",
" flow: 0\n",
"[1] WAS \n",
" phase: 'l', T: 293.15 K, P: 101325 Pa\n",
" flow: 0\n"
]
}
],
"source": [
"# Let's load the BSM1 system first\n",
"from exposan import bsm1\n",
"bsm1.load()\n",
"sys = bsm1.sys\n",
"sys.show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "61ef9ac7",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/svg+xml": [
"\n",
"\n",
"\n",
"\n",
"A1\n",
"CSTR:c->A2\n",
"CSTR:c \n",
" \n",
" \n",
"\n",
" ws1 \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"A2\n",
"CSTR:c->O1\n",
"CSTR:c \n",
" \n",
" \n",
"\n",
" ws3 \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O1\n",
"CSTR:c->O2\n",
"CSTR:c \n",
" \n",
" \n",
"\n",
" ws5 \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O2\n",
"CSTR:c->O3\n",
"CSTR:c \n",
" \n",
" \n",
"\n",
" ws7 \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O3\n",
"CSTR:c->A1\n",
"CSTR:c \n",
" \n",
" \n",
"\n",
" RWW \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O3\n",
"CSTR:c->C1\n",
"Flat bottom circular clarifier:c \n",
" \n",
" \n",
"\n",
" treated \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"C1\n",
"Flat bottom circular clarifier:c->A1\n",
"CSTR:c \n",
" \n",
" \n",
"\n",
" RAS \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"C1\n",
"Flat bottom circular clarifier:c->121356496865:w \n",
" \n",
"\n",
" effluent \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"C1\n",
"Flat bottom circular clarifier:c->121356496705:w \n",
" \n",
"\n",
" WAS \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"121356497265:e->A1\n",
"CSTR:c \n",
" \n",
"\n",
" wastewater \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"A1\n",
"CSTR \n",
"\n",
" \n",
"A1 \n",
"CSTR \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"A2\n",
"CSTR \n",
"\n",
" \n",
"A2 \n",
"CSTR \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O1\n",
"CSTR \n",
"\n",
" \n",
"O1 \n",
"CSTR \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O2\n",
"CSTR \n",
"\n",
" \n",
"O2 \n",
"CSTR \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"O3\n",
"CSTR \n",
"\n",
" \n",
"O3 \n",
"CSTR \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"C1\n",
"Flat bottom circular clarifier \n",
"\n",
" \n",
"C1 \n",
"Flat bottom circular clarifier \n",
" \n",
" \n",
" \n",
"\n",
"\n",
"121356497265 \n",
" \n",
" \n",
"\n",
"\n",
"121356496865 \n",
" \n",
" \n",
"\n",
"\n",
"121356496705 \n",
" \n",
" \n",
" \n",
" "
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# The BSM1 system is composed of 5 CSTRs in series, \n",
"# followed by a flat-bottom circular clarifier.\n",
"# sys.units\n",
"sys.diagram()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "03c7b593",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# If we try to simulate it like we'd do for a \"static\" system\n",
"# sys.simulate()"
]
},
{
"cell_type": "markdown",
"id": "07f91f64",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"We run into this error because QSDsan (essentially biosteam in the background) considers this system dynamic, and additional arguments are required for `simulate` to work."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "b349b9a3",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We can verify that by\n",
"sys.isdynamic"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "43772dae",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# This is because the system contains at least one dynamic SanUnit\n",
"# {u: u.isdynamic for u in sys.units}\n",
"\n",
"# If we disable dynamic simulation, then `simulate` would work as usual\n",
"sys.isdynamic = False\n",
"sys.simulate()"
]
},
{
"cell_type": "markdown",
"id": "cc28e85f",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"To perform a dynamic simulation of the system, we need to provide at least one additional keyword argument, i.e., `t_span`, as suggested in the error message. `t_span` is a 2-tuple indicating the simulation period.\n",
"\n",
">**Note**: Whether `t_span = (0,10)` means 0-10 days or 0-10 hours/minutes/months depends entirely on units of the parameters in the system's ODEs. For BSM1, it'd mean 0-10 days because all parameters in the ODEs express time in the unit of \"day\"."
]
},
{
"cell_type": "markdown",
"id": "0c111c81",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Other often-used keyword arguments include:\n",
"\n",
"- `t_eval`: a 1d array to specify the output time points\n",
"- `method`: a string specifying the ODE solver\n",
"- `state_reset_hook`: specifies how to reset the simulation\n",
"\n",
"`t_span`, `t_eval`, and `method` are essentially passed to [scipy.integrate.solve_ivp](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) function as keyword arguments. See [documentation](https://biosteam.readthedocs.io/en/latest/API/System.html#biosteam.System.dynamic_run) for a complete list of keyword arguments. You may notice that `scipy.integrate.solve_ivp` also requires input of `fun` (i.e., the ODEs) and `y0` (i.e., the initial condition). We'll learn later how `System.simulate` automates the compilation of these inputs."
]
},
{
"cell_type": "markdown",
"id": "9c8b4556",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"---\n",
"### Tip\n",
"For systems that are expected to converge to some sort of \"steady state\", it is usually faster to simulate with implicit ODE solvers (e.g., `method = BDF` or `method = LSODA`) than with explicit ones. In case of one solver fails to complete integration through the entire specified simulation period, always try with alternative ones.\n",
"\n",
"---"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "45ef4032",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"System: bsm1_sys\n",
"Highest convergence error among components in recycle\n",
"streams {C1-1, O3-0} after 5 loops:\n",
"- flow rate 1.46e-11 kmol/hr (4.2e-14%)\n",
"- temperature 0.00e+00 K (0%)\n",
"ins...\n",
"[0] wastewater \n",
" phase: 'l', T: 293.15 K, P: 101325 Pa\n",
" flow (kmol/hr): S_I 23.1\n",
" S_S 53.4\n",
" X_I 39.4\n",
" X_S 155\n",
" X_BH 21.7\n",
" S_NH 1.34\n",
" S_ND 0.381\n",
" ... 4.26e+04\n",
"outs...\n",
"[0] effluent \n",
" phase: 'l', T: 293.15 K, P: 101325 Pa\n",
" flow (kmol/hr): S_I 22.6\n",
" S_S 0.67\n",
" X_I 3.3\n",
" X_S 0.142\n",
" X_BH 7.36\n",
" X_BA 0.43\n",
" X_P 1.3\n",
" ... 4.17e+04\n",
"[1] WAS \n",
" phase: 'l', T: 293.15 K, P: 101325 Pa\n",
" flow (kmol/hr): S_I 0.481\n",
" S_S 0.0143\n",
" X_I 36\n",
" X_S 1.55\n",
" X_BH 80.3\n",
" X_BA 4.69\n",
" X_P 14.1\n",
" ... 884\n"
]
}
],
"source": [
"# Let's try simulating the BSM1 system from day 0 to day 50\n",
"# user shorter time or try changing method to 'RK23' (explicit solver) if it takes a long time\n",
"sys.isdynamic = True\n",
"sys.simulate(t_span=(0, 50), method='BDF', state_reset_hook='reset_cache')\n",
"sys.show()"
]
},
{
"cell_type": "markdown",
"id": "972442da",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"#### 1.1.2. Retrieve dynamic simulation data\n",
"The `show` method only displays the system's state at the end of the simulation period. How do we retrieve information on system dynamics? QSDsan uses [Scope](https://qsdsan.readthedocs.io/en/latest/api/utils/scope.html) objects to keep track of values of state variables during simulation."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "3d7a8b0d",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(, )"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# This shows the units/streams whose state variables are kept track of \n",
"# during dynamic simulations.\n",
"sys.scope.subjects"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "5fedeb57",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We see that A1 and effluent are tracked, so we can retrieve their \n",
"# time series data through their `scope` attribute, which stores a \n",
"# `SanUnitScope` or `WasteStreamScope` object\n",
"A1 = sys.flowsheet.unit.A1\n",
"A1.scope\n",
"# eff = sys.flowsheet.stream.effluent\n",
"# eff.scope"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "a7c7fa4d",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "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ERGRP2QFUJ1Oh27duok2GzfHas615Wu1LlFSe4vEdkRERETkJHvk9IknnqibNm2a/vTp08HoT9iTurRCVb0deUu2Y9WeoqD2h4iIiChSyF7H9fXXX9cdPHhQ1bVrV1NaWpojOjq6yfM7d+6sDljvwsiqPUV45pMC3G3bKumn2hnOWthnPinAyKwUlgwQERER+SA7uI4bN87qu1XH4tryVYADf9B/I+mYEpghAigqr8WWwlIM6cHSASIiIqLWyA6uzz77bH0wOhKuGm/5OlhVgFjB97qsrjVcXbiWKxEREZFvXB1AocZbvl6m+lHSMVsdveBo9KPnWq5EREREvskecbXZbJg7d65u+fLl2qNHjwpWq7VJcWZpaanvbaMiSOPR0ssEacG1C065v+darkRERETSyB5x/dvf/qZ/9dVXdTfccIO1oqJCeOihh+quueYaqyAI4vTp0zvUdq9A09HSGKFG0jGN243rl8qJWUREREQSyA6uy5Yt0/773/+unTp1ar1Go8Ett9xiXbRoUe1f//rX+u+//14djE6GMteWrwBwXOwk6ZjG7fJ3FcHukLqIFhEREVHHJTu4njhxQujbt68dAGJiYsSysjIBcK42sGrVKtmlB+FOrRIwrl8qAGC943xJxzRu51pVgIiIiIhaJzu4du3a1XH8+HEVAHTv3t3xxRdfaABgy5Ytap1O1+GGDu0OEfm7nJsInBSl1ao2b8dVBYiIiIh8kx1cx40bZ1u9erUaAP785z/XP/PMM/qePXvG3HnnnVF33HFHh1vjtfGqAglClaRjmrfjqgJEREREvkn+aP+VV17R3nHHHda5c+e6J2DdfPPNtrS0NMvGjRvVvXr1clx77bW24HQzdDUeLb1E2CPpmNNirPt7c7SWqwoQERERSSB5xHXGjBmGrl27mm666aaor776yj0J67LLLrM//vjj9R0xtAJnR0s1sOH36p2SjjmBs0G1zGLFVwXFwegaERERUUSRHFyLiooq//Wvf9UWFRUJubm50RkZGcYZM2boDh8+3KHXcsrJTIA5Wov71SsgSPhJVIhRTXbNEgA880kBVxYgIiIi8kFycI2Ojsadd95p/fbbby0///xz1c0332x9++23dT169DCOHDkyetmyZZr6+o67G+yD6nxJ7XRifZNds0RwZQEiIiIiKfza8rVnz57i7Nmz6woLC6s+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kSNH2nbt2lW9fft2923AgAGOm266ybp9+/bqnJwcvodhprKyEoWFharU1FQxVP8OslQggCZPnlx/1113RV188cX2QYMG2V9++WWdxWIR7r77bmt7941aqqysxP79+92/vB08eFD1ww8/qBITE8WMjAxx0qRJ9c8//7y+V69eju7duzumT5+uT01NFcePH88VBUJAXl6e4T//+Y/2f//7n8VkMonHjx8XAMBsNovR0dEwm82YOHGi9dFHHzUkJCTUxMbGig899JBh0KBBds5mDg2PPfaY/qqrrrKlp6c7KisrhSVLlmjXrVunXrlyZR3fv9AXGxsLV025S0xMjJiYmCi6Hud7GNomT56sHzt2rC0jI8Nx7Ngx1YwZM/QqlUq85ZZbrKH6d5DLYQXYK6+8ov373/+uP3HihNC3b1/7q6++WsffLEPT119/rR4xYkR088dvvfVW67vvvlvrcDgwffp0/YIFC7Tl5eXCkCFD7PPmzavt06cPSwVCgCAIJk+Pv/XWW7X33HOPFXAunj158mTDf//7X21dXR1GjBhhmzdvXm2XLl34MWUImDhxomHt2rWa4uJiITY2VszOznZMnTq1Ljc31w7w/QtHQ4cOjXYthwXwPQx1N9xwQ9SGDRvUpaWlQqdOncRLLrnEPnv27Npzzz1XBELz/WNwJSIiIqKwwBpXIiIiIgoLDK5EREREFBYYXImIiIgoLDC4EhEREVFYYHAlIiIiorDA4EpEREREYYHBlYiIiIjCAoMrEREREYUFBlciojZw2223GcaOHRvV1tedP3++VhAEkyAIpkmTJulba5uenm6cO3eurvF917FnzpwJfmeJiHzQtHcHiIjCnbftZ13++te/1r/22mu1otg+uyTGxsZi7969VUajUVYHtmzZUr1u3Tr1H/7whzYP3EREnjC4EhEpdOzYsSrX9++//7525syZ+r1797ofM5lMosnUarYNKkEQ4M/e4snJyWJCQgL3lCeikMFSASIihbp06SK6bnFxcaIrKLpuJpOpRanA0KFDox988EHDpEmT9PHx8aakpCTjvHnztFVVVbj99tsNJpPJ1KNHD+Onn36qbnyt3bt3q6688spoo9FoSkpKMt58882GkydPCnL7XFxcLFx11VVRUVFRpoyMDOM777zDgQwiCnkMrkRE7WTJkiXaxMREcfPmzdUPPvhg/aRJkwwTJkyIGjJkiH3btm3VI0aMsN1xxx1R1dXVAIAzZ87g97//fXT//v3tW7ZsqV65cqXlxIkTqhtuuEH2R/l33HGH4bffflOtXr3a8t///tcyb948nT8BmIioLTG4EhG1kwsuuMD+9NNP1/fu3dsxffr0eoPBgE6dOol5eXnW3r17O2bMmFFXWloq7Ny5Uw0Ar776qq5fv36OF198sS4rK8tx8cUXOxYtWlTz7bffqvft2yf53/N9+/apvvzyS82bb75Zc+mll9pzcnIcCxYsqK2pqQneiyUiCgB+NERE1E4uuOACh+t7jUaDhIQEMTs72/1YSkqKCAAlJSUCAOzevVu9bt06tdFobFEwe+DAAaFPnz6SrltQUKDSaDQYOHCg+1pZWVkOs9ns/4shImoDDK5ERO1Eq9U2mfgkCAK0Wq37vkrlHER1OJz5sqqqSrjqqqtsL774Ym3zc/kz+YqIKNwwuBIRhYkLL7zQ/tFHH2kyMzPFxgFXrvPOO89hs9mwdetW1eDBgx0AsHfvXlVZWVmgukpEFBSscSUiChOTJk2qP3PmjHDjjTdGbd68WfXLL78IK1euVN9+++0Gm80m+TznnXeeY+TIkfYHHnggauPGjeotW7ao7rnnHkNUFJdrJaLQxuBKRBQmzjnnHHHDhg0Wu92O0aNHx/Tr1884efJkg9lsFl1lBVK9/fbbNampqY7hw4dHX3/99dH33nuvtXPnziw3IKKQJoiiWNHenSAiouCYP3++9tFHHzWUlZVV+nP8119/rR4xYkR0aWlpZXx8fKC7R0QkC0dciYgiXHl5OYxGo+kvf/mLXs5x5513XsyYMWOig9UvIiK5OOJKRBTBKioqUFxcLABAfHw85JQDFBYWClarFQDQo0cPUa1W+ziCiCi4GFyJiIiIKCywVICIiIiIwgKDKxERERGFBQZXIiIiIgoLDK5EREREFBYYXImIiIgoLDC4EhEREVFYYHAlIiIiorDA4EpEREREYeH/AcWk35QFvrqKAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# `Scope` objects include a function for convenient visualization of time-series data\n",
"fig, ax = A1.scope.plot_time_series(('S_NH', 'S_S'))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "51cc75b4",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([], shape=(0, 1), dtype=float64)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Raw time-series data are stored in\n",
"# A1.scope.record\n",
"A2 = sys.flowsheet.unit.A2\n",
"A2.scope\n",
"A2.scope.record"
]
},
{
"cell_type": "markdown",
"id": "8b8727df",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Each row in the `record` attribute is values of `A1`'s state variables at a certain time point."
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "cab34aab",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0.000e+00, 5.096e-10, 1.019e-09, 6.115e-09, 1.121e-08, 6.217e-08,\n",
" 1.131e-07, 3.165e-07, 5.198e-07, 7.231e-07, 1.403e-06, 2.082e-06,\n",
" 2.762e-06, 8.671e-06, 1.458e-05, 2.049e-05, 3.168e-05, 4.286e-05,\n",
" 5.405e-05, 6.524e-05, 1.049e-04, 1.446e-04, 1.842e-04, 2.239e-04,\n",
" 3.090e-04, 3.941e-04, 4.793e-04, 5.644e-04, 6.495e-04, 8.358e-04,\n",
" 1.022e-03, 1.208e-03, 1.395e-03, 1.581e-03, 1.767e-03, 2.185e-03,\n",
" 2.602e-03, 2.895e-03, 3.189e-03, 3.398e-03, 3.567e-03, 3.736e-03,\n",
" 3.905e-03, 4.038e-03, 4.171e-03, 4.304e-03, 4.438e-03, 4.571e-03,\n",
" 4.704e-03, 4.849e-03, 4.993e-03, 5.138e-03, 5.283e-03, 5.427e-03,\n",
" 5.572e-03, 5.832e-03, 6.093e-03, 6.353e-03, 6.613e-03, 6.874e-03,\n",
" 7.332e-03, 7.790e-03, 8.248e-03, 8.706e-03, 9.407e-03, 1.011e-02,\n",
" 1.081e-02, 1.151e-02, 1.273e-02, 1.396e-02, 1.519e-02, 1.641e-02,\n",
" 1.848e-02, 2.055e-02, 2.195e-02, 2.335e-02, 2.476e-02, 2.616e-02,\n",
" 2.857e-02, 3.097e-02, 3.218e-02, 3.338e-02, 3.458e-02, 3.578e-02,\n",
" 3.699e-02, 3.949e-02, 4.116e-02, 4.283e-02, 4.450e-02, 4.616e-02,\n",
" 5.025e-02, 5.433e-02, 5.842e-02, 6.250e-02, 6.937e-02, 7.624e-02,\n",
" 7.709e-02, 7.795e-02, 7.881e-02, 7.967e-02, 8.006e-02, 8.045e-02,\n",
" 8.084e-02, 8.182e-02, 8.280e-02, 8.378e-02, 8.420e-02, 8.462e-02,\n",
" 8.503e-02, 8.548e-02, 8.593e-02, 8.620e-02, 8.646e-02, 8.712e-02,\n",
" 8.778e-02, 9.300e-02, 9.822e-02, 1.096e-01, 1.110e-01, 1.124e-01,\n",
" 1.138e-01, 1.144e-01, 1.150e-01, 1.156e-01, 1.171e-01, 1.185e-01,\n",
" 1.200e-01, 1.208e-01, 1.216e-01, 1.224e-01, 1.229e-01, 1.233e-01,\n",
" 1.236e-01, 1.239e-01, 1.255e-01, 1.262e-01, 1.270e-01, 1.328e-01,\n",
" 1.386e-01, 1.519e-01, 1.652e-01, 1.668e-01, 1.685e-01, 1.702e-01,\n",
" 1.717e-01, 1.733e-01, 1.842e-01, 1.856e-01, 1.870e-01, 1.878e-01,\n",
" 1.886e-01, 1.891e-01, 1.896e-01, 1.899e-01, 1.902e-01, 1.933e-01,\n",
" 1.965e-01, 2.170e-01, 2.375e-01, 2.581e-01, 2.592e-01, 2.603e-01,\n",
" 2.614e-01, 2.723e-01, 2.832e-01, 3.164e-01, 3.496e-01, 3.828e-01,\n",
" 4.503e-01, 5.178e-01, 5.852e-01, 6.527e-01, 7.282e-01, 8.037e-01,\n",
" 8.791e-01, 9.546e-01, 1.105e+00, 1.256e+00, 1.406e+00, 1.557e+00,\n",
" 1.810e+00, 2.063e+00, 2.317e+00, 2.570e+00, 3.003e+00, 3.436e+00,\n",
" 3.869e+00, 4.302e+00, 4.915e+00, 5.528e+00, 6.142e+00, 6.755e+00,\n",
" 7.995e+00, 9.236e+00, 1.048e+01, 1.172e+01, 1.341e+01, 1.511e+01,\n",
" 1.680e+01, 1.850e+01, 2.118e+01, 2.386e+01, 2.654e+01, 2.923e+01,\n",
" 3.427e+01, 3.932e+01, 4.437e+01, 4.942e+01, 5.000e+01])"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# This stores the time data\n",
"A1.scope.time_series"
]
},
{
"cell_type": "markdown",
"id": "c14d81b0",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"The tracked time-series data can be exported to a file in two ways."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "c126483f",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# sys.scope.export('bsm1_time_series.xlsx')\n",
"\n",
"# or\n",
"\n",
"# import numpy as np\n",
"# sys.simulate(state_reset_hook='reset_cache',\n",
"# t_span=(0, 50),\n",
"# t_eval=np.arange(0, 51, 1),\n",
"# method='BDF',\n",
"# export_state_to=('bsm1_time_series.xlsx'))"
]
},
{
"cell_type": "markdown",
"id": "5b93411d",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"We can also (re-)define which unit or stream to track during dynamic simulation."
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "b818bfbf",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(, )"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let's say we want to track the clarifier and the waste activated sludge\n",
"C1 = sys.flowsheet.unit.C1\n",
"WAS = sys.flowsheet.stream.WAS\n",
"sys.set_dynamic_tracker(C1, WAS)\n",
"sys.scope.subjects"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "f6b35327",
"metadata": {
"scrolled": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "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4Ofnp7569SqvIukFgMOHDwssLCzg5eWlBQBfX19NUlKS3lKPxMREQc+ePakCBCGEENICdfL1Q/CM+ZVmgs1btUbwjPno5OvXLOOKiorCnDlzcOLECWRkZOCXX37BhAkToFKpEBAQAAB4++238dVXX+H8+fO4c+cOTpw4gQ8++ACurq5wcys/Cfajjz7CuXPn8Nlnn+GPP/7Azp078Z///AcffPBBk9xHREQEtmzZgm+//Ra///47li1bht9++003U6xWq3Hw4MEq1//ev38fqampeo9nJzONQZ3XABcWFuKDDz4w/f7774UAcP369YKOHTuy4eHhpm3atNEuWLCgjGtfs2fPFg0ZMkTt6Oioffz4MfP9998LT506xf/5559LLS0tERoaqpo1a5aptbV1sYWFBTtt2jRTX19fjb+/vwYAgoKCNG5ubtqxY8eKV65cWZKdnc0sXrxY9P7775eZPtnRGR4eXrZp0yaTGTNmiMLCwlSJiYn83bt3CxISEqqsAEEIIYQQ49fJ1w8uPr64f+0qCvLzILW0Qlt3z2ad+e3bty82bNiAcePGIScnB1ZWVujevTuOHDmCzp07AwACAwOxa9cuLF++HAqFAnK5HAMGDEBUVBQEgvK0zMfHB3v27MG8efPw6aefwtnZGatXr8aYMWOa5D7GjBmD27dvY9asWSgpKUFISAhCQ0Nx4cIFAMDJkychlUrx0ksvVXrvF198gS+++EKvbceOHbrDMowGy7LKujw++OCD0u7du2tOnDhRaGZmxv7++++PWZZV7t69u8jb21tTl77ee++9MgcHB62JiQnbunVrbb9+/dQHDx4srHi9qKhI+f7775dZWVmxEomEDQ4OVt2/f//x033cvn378aBBg1RisZht1aqVNjIysrSsrEzvOomJiYXe3t4aExMT1tnZWfvNN98U12Wc+fn5SgCsQqFgCSGEENIwxcXFbHp6OltcXNzcQ3luLF68mO3atWuj9f/qq6+yY8eOZVmWZSMiItipU6fWq5+GjrOmfzsKhYIFwObn59ea29V5BjghIUG4a9euYn9/f83TC8e9vLw0GRkZdVpSsX379pKaXheLxdi0aVPJpk2bqo1zdnZmDx8+XFxTPwMHDtT8+uuv1S++IYQQQghp4a5cuQKpVIqVK1dWquJQF0VFRdi0aRMCAwPB5/Oxa9cuJCYm4ujR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EaWwiRMnqh1/GwwG5ObmahMmTAguczqdGgDU1tYKAPj888/lLVu2yHa7vccBxQcPHhRjx46NKO/+/fslg8GAkpKSYK7x48er2dnZ/R8MEVGcsAAmIkphRqOxyxfMhBAwGo3B25IU2KmrqoE6taWlRZSVlfmXLl3q7h6rP19yIyJKRSyAiYjSyHnnnaf84x//MIwYMUILLZSjNW7cONXv92P37t3S9OnTVQCoqqqSGhoaYtVVIqIBw2OAiYjSSEVFhbe+vl5cd9111p07d0rffPONWL9+vXzLLbdY/H5/xHHGjRunzp07V7nzzjut27dvl3ft2iXdfvvtFquVp/slouTHApiIKI0MHTpU27ZtW5uiKLjiiitskydPti9evNiSnZ2tdRwuEalnn33WVVBQoF5yySUZP/3pTzPuuOMOX15eHg+jIKKkJzRNa0p0J4iIKHmtWbPGeP/991saGhqa+9N+48aN8pw5czJOnTrVnJOTE+vuERFFjXuAiYhIV2NjI+x2u+O+++4zR9Nu3LhxtiuvvDJjoPpFRNQf3ANMRER9ampqQnV1tQCAnJwcRHOYw5EjR4TP5wMAjBo1SpNlWacFEdHAYwFMRERERGmFh0AQERERUVphAUxEREREaYUFMBERERGlFRbARERERJRWWAATERERUVphAUxEREREaYUFMBERERGlFRbARERERJRW/j82g11cyBFxEgAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Need to rerun the simulation before retrieving results\n",
"# user shorter time or try changing method to 'RK23' (explicit solver) if it takes a long time\n",
"sys.simulate(t_span=(0, 50), method='BDF', state_reset_hook='reset_cache')\n",
"fig, ax = C1.scope.plot_time_series([f'TSS{i}' for i in range(1,11)])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "68dcbad5",
"metadata": {
"scrolled": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGZCAYAAACHRodNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABefUlEQVR4nO3deXhTVf4G8PdmT9qkaYEuLIWKIpQKiAICbihLQUEHxx0YVBwpY2URHRUUVFB0HIFRgVEZ/A24jsuAyIBsym6L7BY3LLJ1AUqStmm2e+/vjzSlpVtS0iZt3s/z9Gl613N7oX17cu73CLIs20BEREREFCEUoW4AEREREVFTYgAmIiIioojCAExEREREEYUBmIiIiIgiCgMwEREREUUUBmAiIiIiiigMwEREREQUUVShbkBz4PF4kJeXh+joaCgU/JuBiIiIKNxIkoSSkhIkJSVBpao74jIA+yEvLw/JycnGULeDiIiIiOp27Nix4g4dOtS5DQOwH4xGb/Y9fvw4TCZTiFtDRERERBey2Wzo0KFDRW6rCwOwHwRBAACYTCYGYCIiIqIw5sttdeGAViIiIiKKKAzARERERBRRGICJiIiIKKJwDHAQiaIIt9sd6ma0CGq1GkqlMtTNICIiohaIATgIZFlGfn4+LBZLqJvSopjNZiQmJvo1mJ2IiIjIXwzAQeALv/Hx8TAYDAxsF0mWZdjtdhQWFgIAkpKSQtwiIiIiakkYgC+SKIoV4bdVq1ahbk6LodfrAQCFhYWIj4/ncAgiIiIKGj4Ed5F8Y34NBkOIW9Ly+L6nHFdNREREwcQe4CDhsIfg4/eUiCKVKMnIyi1CYbED8UYd+qbEQaloWT8TeY0tQ23XGO7XHtIAPHPmTO3cuXM1lZdddtll0s8//1wKAGVlZZg6daruk08+UblcLmHw4MGexYsXO5KSkmTf9kePHhUmTpyo27JliyoqKkoeM2aM+9VXX3Wq1eqKY27cuFH5+OOP6w4fPqxo3769/PTTTzsnTJjAbkUiomYo3H+xXqy1h/Lw/Jc5yLM6KpYlxegwa2Qq0tNaxjMRvMaWfY2jeiZh1f68sL72kA+B6Natm3Ty5MkS38f27dvtvnWTJ0/WffXVV6qPP/64bNOmTaV5eXnC6NGj9b71Ho8Ht9xyi8Hlcglbt24tXbZsWdny5cvVM2bM0Pq2OXLkiDBq1CjDjTfe6NmzZ09pZmamc+LEibo1a9ZwUCkRtQiiJGPnkbNYue8kdh45C1GS69+pmZ537aE8XPvKJtz7zi5M/mgf7n1nF659ZRPWHspr9HM3hbWH8pCxYk+V4AAA+VYHMlbsaRHXyWts2deYZ3Xgn1tyw/7aQz4EQqVSoW3bttV+alosFrz33nvq5cuXlw0ZMkQEgGXLljm6d+8etX37duXAgQPFtWvXKn/88UfFhg0bSny9wrNnz3bOmDFD9+KLLzq1Wi0WLVqk6dixo7RgwQInAHTv3l3avn27av78+doRI0bYLzxvKLX0Xg0iCr5Q9TKF4ry+X7gX/sLw/WJdPKZ32PQuNYQoyXj+y5xq1wcAMgABwPNf5mBIamKz/d3Aawz8GmVZrvS66rGqra+yn29ZzfsjgG0vPJcoyZi16ocar7E24XZ/Qx6Ajxw5okhKSorW6XTo16+fOG/ePEenTp3k7OxspdvtxtChQz2+bVNTU6UOHTrIO3bsUA4cOFDcsWOHqnv37lLlIRHDhw/3ZGZm4uDBg4qrr75a+u6775Q333yzp/I5hw4d6pk+fbqutjY5HA44nc6Kr202W5Cvurqm/mUiiiKuu+46JCYm4vPPP69YbrVakZaWhnHjxmHu3Lm17n/06FGkpKRUfK1Wq5GcnIzx48djxowZFeN3Z8+ejf/+97/Yt29fjfvv3bsXvXr1Cuq1EYVCKP6ADVUgDMV5/QkVs1f9gL6dWgECIMmy90PyvhYlGbIMiOXLZVmGWMs6SZIhyajy+sJ13n3Or5PLjyPJKN9GLt8Hta6Ty48jlW937GxptV6zC68zz+pAxorvkWDSQYb3GDJ8YaX8axnV1smQK1KMd5lcad35r1F53xqOgypfy5WOd8GyWo5jLXP7dY1DX/8WUTpVDcep5RzVrqH8eFWu8/xxal1Xy3WeP17181x4HFGU4a7j3RDfNV76zBoIQs2htaXyXXtWbhH6dw5t5ayQBuBrrrnGs3TpUrFr167SqVOnhBdeeEF7/fXXRx06dKgkPz9f0Gg0iI2NrbJPfHy8nJ+fLwBAQUGBEB8fX+WfS2JiogwA9W1js9lgt9trrN4wZ86camOTG1MofpkolUq899576NWrF95//33cf//9AIDMzEzExcVh1qxZfh1nw4YN6N69O5xOJ7Zt24YJEyYgKSkJDz30UFDbSxTOQtEbGqxeJlmW4RZlOD0iXB4JLlHyfvZIcJZ/+JY73SIcbhHPrqy558e37PH/7MfO385CkgCPJMMjSvBIMtyiBFHyns8j+V5L8JQHBlEqf12+vad8O48ow+EWUeoSa78OAPk2J3rPWe//N7GZ+jqnINRNaHRHzpSGugmN7nzYjjyFxbX/EdRUQhqAb7311oqfZr169UL//v3tnTp1Mn744Ydqg8EQsn8WM2fOdD7xxBMVXcA2mw3JyclGf/eXZRll7tp/UFdW19sI53s1cjDw0tZ+9Sbp1Uq/qyd06dIF8+bNQ2ZmJm666SZkZWXho48+QnZ2NjQa//J/q1atkJiYCADo2LEjli1bhj179jAAU8g0dU9sY/wB6/JIKHOJKHV5YHeJFa/LXCLs5a9zTtn86kkbvnALtCrl+YBbEWYlOMvDbrCVOkX8347fg37cQCkEQCEIUCiEitdKQYAgAEqFUG2d92tAKdS9ThCE8v291WqU5et829W3TqjUlsrrCm0OrPMj3P7hyrboEGsABAECAEEABAjln8u/Lv89UOO68q+968u3q1jnXeZ7Xec54P2iYp+Kc1c9Byqt/6WwGP/Y+Gu91/jEsC7olmSq/RyV2uK7gKrtq9pWXLiuxu9FpWNcuC6A4+w9fg6Pfbiv3mtcfH9vXNUptvz4579ZVb5vlb5/Fy6rvG3l/au8vMhj1RQnBAH47rezGPev7Oor/RRvrPVN+CYT8iEQlcXGxuLSSy+Vfv31V8XQoUM9LpcL586dq9ILXFhYKPh6eRMSEuTs7Owqt8fX81t5m8LCwmrbmEymWmv36nQ66HQNvzllbhGpz61r8P6VeXs1HLhi9td+bZ/zwjAYNP7f1szMTHzxxRcYO3YsDh48iOeeew49e/ZsUFt3796N77//HuPGjWvQ/kQXq8mHEkkyZtfRCwsAT356AD/mF6PMLVYEWHt5sLU7RdjdlV67PChzi3CLwfv7/+eCkoC2VysFaJQKaFQKaFVKaFTe1xqlAlq1ArYyN46crr93bki3eHRrGwOVQoBKKUCtUEClFMq/VkClEKBWKqBUCFArBagUCigrbadWClAqzm936JQVj3+yv97zrnioLwZ0bl0lBDYXoiTj2lc2Id/qqPHflAAgMUaH1+7sFfLxkw0lSjL+s/tEvdc48YZLm+01tjXr8fKaH+u9xqHdQz8OtqEGXtoGSTG6Wq+xNr5r75sS11hN81tYBeDi4mLk5uYqkpKS5D59+ohqtRrr169X3XXXXR4AOHz4sOL48ePCgAEDRAAYMGCA55VXXtHk5+dXhOJ169apTCYT0tLSJADo16+fuHbtWhWAih7dDRs2qPr27etfF20LJwgCFi9ejG7duuGKK67AU089FdD+AwYMgEKhgMvlgtvtxp///OdqAfjgwYOIjo6uskyO1Pd9qEbB6LW92J5YWZZhd4mwlLlxrtQFa5kb5+wuWOxuWMo/n7O7YS1z4Vz5stPFTtgcnlqPCQA2hwcLNvwS0LX4qBQCDBolorQq6DVKGDRKGDQqGDRKOFwiduUW1XuMqYO7oEf7mPJAq7gg0CorhV3vMkU93/edR87i3nd21XveB6+9JKhj/C6Nj8Zr636qN1T079y63msIV0qFgFkjU5GxYg8EVB0b6ruiWSNTm21oAniNkXCNtQm3aw9pAJ46dap25MiRnk6dOkknT55UzJo1S6tQKOT777/fbTabMX78ePf06dN1cXFxZSaTSX7sscd0/fr1EwcOHCgCQHp6uti1a1dpzJgx+ldffdWRn58vzJo1S/vII4+4fD24kyZNci1ZskQzbdo07YQJE9wbNmxQfvbZZ6pVq1Y1WgUIvVqJnBeG+bVtVm4Rxi+r/22E9x7o49dfTHp14NXd/vWvf8FgMCA3NxcnTpxAp06d/N73448/Rrdu3eB2u3Ho0CFkZmYiNjYW8+bNq9jm8ssvx6pVq6rsd/LkSdx4440Bt5VanmD02tY3HhYA/vrZQfx6ugTFZZ5KwdYNS3mgtdrdcInBHw4AAP07xyE1KaZKgNVrlIgqf+1brtcoEaVVwqD2vtaoaq9U6W9v4aM3BbcnrW9KXJ09P43VwxMJoQIA0tOSsHhM72r/JxLDrIbqxeA1tuxrrK0OcLhduyDLcuOXOKjFnXfeqd+2bZuyqKhIaN26tTxgwADxpZdeclx22WUyUGUiDLXT6YRvIozKZdNyc3OFiRMn6rZu3aoyGAzy2LFja5wIY9q0aboff/xR0a5dO/mZZ54JaCIMq9UKs9lstFqtMJlMVdY5HA7k5uYiJSWlQcMm/P0ltu2vNzXKD/YdO3bghhtuwNdff405c+YA8D7YVt9bh7VVcZg3bx6effZZFBcXQ6fTXVQViIv93lL4q63X1vevr6ZeW6dHRIHViTxrGfJtDpyyOLDv2Dm/xk76Q60UYDZoYNarEWvQIMagRqxB7V1mUMOs1yDWoEaMQY3jRXb89bOD9R7zw4evaZQnnn3fP6DmQNjYVSCa+ry+c7f0yQWAyCiLyWtsGcJpJjibzYaYmBhYLJbimJiYOrcNaQ/wf/7zn7K61uv1eixZssSxZMmSWp/0SElJkdetW1fncW6++WZx//79YflIaSh7Nex2O8aPH4+MjAwMGjQIKSkpuOKKK7BkyRJkZGQ06JhKpRIejwcul4uhtYW72B9u/vTaPvHpAWz95QwKbE7k28qQb3XgTImrwW3u2ykOV7SPKQ+w3iBr1pcHW4M38Bo0/j9IKqbIWLDhlybvDfUJVS9TKHu30tOSMCQ1scWHCqVCCHmZqMbGa2wZarvGcL/2sBoDHKlC9cvk6aefhizLFcMVOnXqhNdeew3Tp0/H8OHD/RoKcfbsWeTn58Pj8eDgwYNYuHAhBg0aVK2nnFqWi+mFEyUZJ87ZseZAXp1VDACg2OHB+98dq7Zcq1IgKUaHxBgdkmL0ECUZq/afqrfdU4d0CeoP5HB4Wz5UgTCUQTTcf7ESUfhjAA4TTf3L5Ntvv8Vbb72Fb775pko1jEceeQSff/45HnroIb+GQgwePBiAt+c3KSkJI0aMqHMCDWr+/H3YzFrmxm+nS3DkdCl+O12C306X4rczJTh6xh7QWNshqfG4oUt8lcAba1BX+bcpSjKyjxaFpCc2HMb6hSoQMogSUXMV0jHAzUVjjgGm2vF7G358Y9br6rnVKAUYdSqcLa19mL1WpUC8UYvj5+ocvQTA//GzoRyXCkTGWD8ionDWbMYAE1HTupiQJssy1hysf9iCS5Qrwm+CSYvObaJxSZsoXNLa+7lzm2i0M+shA349AOpvr22oe2LZG0pE1HwwAFONJk6ciBUrVtS4bsyYMViyZEkTt4guVqDjdosdbhw4YcW+4xbsPWbBvuMWnClxVtuuJtOHXo7xAzshWlv3j5hgj5+NlAekiIjo4nAIhB8icQhEYWEhbLaa/2mYTCbEx8c3ehta6vc2FOorN/bmfVeiY6so7DvuDbr7j1vw6+mSavPUKwRA8qPieSBlvyKlrBURETUuDoGgixYfH98kIZcanz/lxv7ywd4a920fq0evDmb06mDGlclmdE00YfDr3wb1YTP22hIRUVNjACZq4bJyi+odtwsAerUCV3eKQ8/23sDbK9mM1tHaats1Rtkvjp8lIqKmxABM1EIVFjuw+cdCLN/5u1/bvzy6B26/sl2924X6YTMiIqKLxQBMFOb8rdwgyzJ+KijGhpwCbDhciH3HLQGdJ8Hk/zhrDlsgIqLmjAGYKIzV94CYyyPhu9yz2Hi4EOtzCnDSUrWubs/2MRjUNR4rdv2OsyWuoE4SwWELRETUXDEAE4WpumZcm7hiD3p3NOOX/BIUOz0V67QqBa69tDUGpybgpq7xFb26XRONIZ2ul4iIKJwwAIcTSQR+3wGUFADRCUDHAYBCGepWUQj4U7lhz+8WAEDraC0Gd4vHzd0ScO2lraHXVP83w3G7RERE5zEAh4ucVcDavwK2U+eXmdoC6a8AqaOCfjpRFHHdddchMTERn3/+ecVyq9WKtLQ0jBs3DnPnzq11/6NHjyIlJaXia7VajeTkZIwfPx4zZsyAIFTtTTxx4gQuueQSdOnSBYcOHQr69bQ0/lZuePH2NNzfNxkKP3pvOW6XiIjISxHqBhC84feTcVXDLwDY8rzLc1YF/ZRKpRLvvfce1q5di/fff79ieWZmJuLi4jBr1iy/jrNhwwbk5eXhl19+wfPPP4+5c+fiX//6V7Xt3nvvPdx1112w2Wz47rvvgnYdLdHxIjuWbvvNr21NOpVf4dfHN273tl7t0L9zK4ZfIiKKSOwBbgyyDLjt/m0ricD/ngRqfbNb8PYMX3Kjf8Mh1AZA8C/UdOnSBfPmzUNmZiZuuukmZGVl4aOPPkJ2djY0Go1fx2jVqhUSExMBAB07dsSyZcuwZ88ePPTQQ+evQpaxbNkyLFq0CO3bt8fSpUvRr18/v47fktRVzUGUZHz7cyFW7DqGzT8VVpuBrTbxRs6QR0REFCgG4MbgtgMvtQ3SwWRvz/C8Dv5t/swpQBPl99EzMzPxxRdfYOzYsTh48CCee+459OzZs0Et3b17N77//nuMGzeuyvLNmzfDbrdj8ODBaNeuHQYMGID58+cjKsr/djZ3tVVzmDqkC86UOPHBd8dw4tz5Cg4DO7fCD3k2WO3uoFZuICIiIgbgiCcIAhYvXoxu3brhiiuuwFNPPRXQ/gMGDIBCoYDL5YLb7caf//znagF46dKluOeee6BUKpGWloZLLrkE//nPfzB+/PggXkn4qq2aQ57VgSc/PVDxdYxejTuvao/7+iXjkjbRFfuxcgMREVFwMQA3BrXB2xPrj993AO//sf7t7v/UWxXCn3MH6F//+hcMBgNyc3Nx4sQJdOrUye99P/74Y3Tr1g1utxuHDh1CZmYmYmNjMW/ePACAxWLB559/jm3btlXsM2bMGCxdujQiAnBd1Rx81EoBc25Pw2292kGnPj/MhZUbiIiIGgcDcGMQBP+HIXS+yVvtwZaHmscBC971nW9qlJJoO3bswPz58/H1119jzpw5eOihh7Bhw4ZqVRxq06FDB1x66aUAgG7duuHIkSN49tlnMXv2bOh0OnzwwQdwOBxVxvzKsgxJkvDzzz+jS5cuQb+mcOJPNQe3KCM5LqpK+PVh5QYiIqLgYxWIUFMovaXOAJx/cxtVv06f1yjh1263Y/z48cjIyMCgQYOwdOlSZGVlYcmSJQ0+plKphMfjgcvlAuAd/vD4449j3759FR/79+/HddddV2O1iJZElmVsyCnwa9vC4tpDMis3EBERBRcDcDhIHQXc9W/AdMFb2qa23uWNUAcYAJ5++mnIslwxXKFTp0547bXX8OSTT+Lo0aN+HePs2bPIz8/HiRMn8L///Q8LFy7EoEGDYDKZsG/fPuzZswcTJkxAWlpalY97770X//d//wePx1P/SZqhXb+dxejFO7B0e65f27OaAxERUdMRZFm2hboR4c5qtcJsNhutVitMJlOVdQ6HA7m5uUhJSYFOd5Ehpglngvv2229x880345tvvsG1115bZd2wYcPg8XjqHApx4UQYSqUSSUlJGD58OObOnYs2bdogMzMTmzZtwg8//FBt//z8fLRr1w5ffPEFRo2qOeAH9XsbRHWVM/vhlBWvrv0J3/58GgCgUymgUgoodYp1VnPY9teb2LNLRER0EWw2G2JiYmCxWIpjYmLq3JZjgMOJQgmkXNckp7rhhhtq7X1dt25dvft36tQJcj3Fat94441a1yUmJkIUxXrPE25qK2c26cbOyD56Dqv2ex9+VCkE3Ns3GZk3XYo9x86xmgMREVEYYQAm8lNd5cyeXXm+l3tUz7aYNqQLOrX2PgjJag5EREThhQGYajRx4kSsWLGixnVjxoy5qAflmiN/yplpVQp88kh/9OxgrraO1RyIiIjCBwMw1eiFF17A9OnTa1x34TjoSOBPOTOnR4LdVfuwDl81ByIiIgotBmCqUXx8POLj40PdjLBRV5myhmxHREREocMyaEFS3wNhFLhw+p4W2PwLtixnRkREFP7YA3yR1Go1AO+kEnq9PsStaVnsdjuA89/jUChziXhl7Y94b8fROrfzlTPrmxLXJO0iIiKihmMAvkhKpRJmsxmFhYUAAIPB4Pc0wlQzWZZht9tRWFgIs9kMpbJxaiHX58AJC6Z+vA9HTpcCAG7o0gZbyuv7spwZERFR88UAHASJiYkAUBGCKTjMZnPF97YpeUQJi745gn9s/AUeSUa8UYtX/9gDN14eX2MdYJYzIyIial44E5wf6poJrjJRFOF2u5uwZS2XWq1u9J7fmmZ0O1Zkx9SP92HfcQsA4JYrkjDn9jTERmnq3I89v0RERKHFmeBCRKlUhuztegpMTT25Jp0KDrcElyjBqFPhxdvScFuvttWGtLCcGRERUfPGAEwRp7YZ3WwO79TQlydEY9kDfdHWzIcaiYiIWiKWQaOI4s+MbjaHBwkmljMjIiJqqRiAKaL4M6NbntWBrNyiJmoRERERNTUGYIoonNGNiIiIGIApopgN/k2qwRndiIiIWi4+BEcRw1rmxpubfq1zG87oRkRE1PIxAFNEKLA58Kd/ZeHH/GLo1Ao43BIEcEY3IiKiSMQhENTi/Xa6BKMX7cCP+cVoY9Tii0kDsWRMbyTGVB3mkBijw+IxvTmjGxERUQvHHmBq0fYft+CB97JRVOpCSuso/PvBvugQZ0C3JBOGpCZyRjciIqIIxABMLdaWn09j4orvYXeJ6NE+BsvG90GraG3Fes7oRkREFJkYgKnZEyW5Wk/u6gOn8Pgn++GRZFx3WWssHnMVorX8505EREQMwNTMrT2Uh+e/zKkyuYVJp6qY1nhUz7Z47c6e0Kg43J2IiIi8GICp2Vp7KA8ZK/ZUm9bYF34HXd4GC+7uBQXH9RIREVEl7BajZkmUZDz/ZU618FvZj/nFda4nIiKiyMQATM1SVm5RlWEPNcmzOpCVW9RELSIiIqLmggGYmqXC4rrDb6DbERERUeRgAKZmKd6oq3+jALYjIiKiyMEATM1S35S4OsuaCQCSYrwl0YiIiIgqYxUIahYurPWbe6YEJU5Pjdv6aj7MGpnKmd2IiIioGgZgCns11fr1SU9LwP7j1irrEmN0mDUyFelpSU3ZTCIiImomGIAprNVW69fntp7t8NZ9V1WbCY49v0RERFSbsBkDPGfOHI0gCMbMzEytb1lZWRkmTpyoi4uLi46Ojjbefvvt+ry8vCrJ5ujRo0J6erreYDAY27RpEz116lSt2+2ucuyNGzcqe/XqFaXVao2dO3eOfvfdd9VNdFl0Eeqr9SsAeGF1DgCgf+dWuK1XO/Tv3Irhl4iIiOoUFgF4165dinfffVeTlpYmVV4+efJk3VdffaX6+OOPyzZt2lSal5cnjB49Wu9b7/F4cMsttxhcLpewdevW0mXLlpUtX75cPWPGjIoQfeTIEWHUqFGGG2+80bNnz57SzMxM58SJE3Vr1qxRNuU1UuDqq/Urg7V+iYiIKHAhD8DFxcUYO3as/p///GdZbGxsRWefxWLBe++9p37ttdccQ4YMEfv27SstW7bMsWvXLuX27duVALB27Vrljz/+qHj//ffLrrrqKunWW28VZ8+e7fznP/+pcTqdAIBFixZpOnbsKC1YsMDZvXt3acqUKe4//OEPnvnz52traRKFCdb6JSIiosYQ8gCckZGhGz58uGfYsGFi5eXZ2dlKt9uNoUOHVjzqn5qaKnXo0EHesWOHEgB27Nih6t69u5SUlFQRnIcPH+6x2Ww4ePCgAgC+++475c0331ylXMDQoUM9WVlZtfYAOxwOWK3Wig+bzRasy6UAsNYvERERNYaQPgT3/vvvq/bu3avcvXt36YXr8vPzBY1Gg9jY2CrL4+Pj5fz8fAEACgoKhPj4+CpDRBMTE2Xf/nVtY7PZYLfbYTAYqrVrzpw52rlz52ou9vro4vRNiYNZr4alzF3jegHeig+s9UtERESBCFkP8O+//y5MnTpV9/7775fp9fr6d2hCM2fOdFoslmLfx7Fjx4pD3aZI9GthCewuscZ1rPVLREREDRWyHuDdu3crT58+LVx99dVRvmWiKGLbtm3KxYsXa9asWWN3uVw4d+5clV7gwsJCwdfLm5CQIGdnZ1dJP76e38rbFBYWVtvGZDLV2PsLADqdDjod31ZvapUnu4jSqjBndQ5cooSuiUZY7G7k21jrl4iIiC5eyALwkCFDPPv3768y9OGBBx7QX3755eJTTz3lSk5OltRqNdavX6+66667PABw+PBhxfHjx4UBAwaIADBgwADPK6+8osnPz68IxevWrVOZTCb4Kkr069dPXLt2rQqA03eeDRs2qPr27Vtz1yKFRG2TXcQZNPjg4WsQo1ez1i8REREFRcgCsMlkQo8ePaqUPYuKipJbtWol+5aPHz/ePX36dF1cXFyZyWSSH3vsMV2/fv3EgQMHigCQnp4udu3aVRozZoz+1VdfdeTn5wuzZs3SPvLIIy5fD+6kSZNcS5Ys0UybNk07YcIE94YNG5SfffaZatWqVfYmv2iqUV2TXRTZXcjKPYv0tCT079yqydtGRERELU/Iq0DUZeHChY4RI0Z47rrrLsOgQYOiEhIS5M8//7zMt16lUmH16tV2pVIpX3vttVHjxo3Tjxkzxj137tyK3t7OnTvLq1atsm/cuFF15ZVXRi1YsEC7ZMkSx4gRI9gDHAb8mezi+S9zIEq1bUFEREQUGEGWZdb4qofVaoXZbDZarVaYTKZQN6dF2XnkLO59Z1e923348DXsASYiIqJa2Ww2xMTEwGKxFMfExNS5bVj3AFPLx8kuiIiIqKkxAFNIcbILIiIiamoMwBRSfVPi0Ca69lmpBQBJnOyCiIiIgogBmELOqK+5GAknuyAiIqLGwABMIfX2lt/w2+lS6FQKtDFW7QlOjNFh8ZjenOyCiIiIgipkdYApMlWe7c3hFvH3r38EALxwexru6N2ek10QERFRo2MApiZT22xvPdqZcOdV7SEIAkudERERUaPjEAhqEr7Z3i4MvwBw4KQN637ID0GriIiIKBIxAFOj42xvREREFE4YgKnRZeUW1djz6yMDyLM6kJVb1HSNIiIioojFAEyNjrO9ERERUThhAKZGx9neiIiIKJz4VQXiiy++CLhaxLBhwzwGgyHwFlGL0zclDkkxulqHQQjw1vzlbG9ERETUFPwKtnfccYc+kIMKgoCffvqp5NJLL+VTTQSlQsAdvdvhzc1Hqq3jbG9ERETU1Pzu2T116lRJYmKiX4HWaDQaG94kammcHhGrD+QBAKI0SpS6xIp1iTE6zBqZytneiIiIqMn4FYDHjBnjNhgMfvfm3nvvve6YmJiGt4palHe35uLoWTvaGLVYP/V6HM4r5mxvREREFDKCLMu2UDci3FmtVpjNZqPVaoXJZAp1c5qVk5YyDP77tyhzi5h/d0/84cr2oW4SERERtUA2mw0xMTGwWCzF9XXEBq0KRE5OjuKyyy6LCtbxqPkSJRk7j5zFyn0nMe3jvShzi+jTKRa392oX6qYRERER+T8GuD4OhwO//fYby6pFuLWH8vD8lznVKj4MTU2EIHCoAxEREYUeAysFzdpDechYsafGcmcvrTmMtYfyQtAqIiIioqoYgCkoREnG81/moK4nJZ//MgeixMp4REREFFoMwBQUWblFtU50AQAygDyrA1m5RU3XKCIiIqIa+D0GODY21ljXGE6PxxOUBlHzVFhce/htyHZEREREjcXvAPz3v/+dyYVqFW/UBXU7IiIiosbidwC+/vrrPZzamGrTNyUOSTG6WodBCPDO+tY3Ja5pG0ZERER0Ab/HAPfq1Ss6NTU16sknn9Tu3LmTY4epCqVCwMPXXVLjOt/AmVkjUznrGxEREYWc3z3Ap0+fLl63bp1q5cqVqttvv90gCAJGjBjhGTVqlGfYsGEevV7fmO2kMCVKMrJyi1BY7MD/ysucaVUKOD1SxTaJMTrMGpmK9LSkUDWTiIiIqEKDpkKWJAnbt29Xrly5UrV69WrViRMnFIMGDfKMHDnSc9ttt3kSEhJa1FAJToVcs9omvZh5Szd0bxuDwmIH4o3eYQ/s+SUiIqLGFMhUyA0KwBf66aefFP/9739VX375pSo7O1v56quvOiZPnuy+2OOGCwbg6nyTXtT0l44AYPGY3uzxJSIioibT5AG4sjNnzghnz54VLr/8cqn+rZsHBuCqREnGta9sqveBt21/vYk9v0RERNQkAgnAfo8B9vniiy9q3EcQBOh0OrlLly5SSwq/VF0gk17079yq6RpGRERE5IeAA/Add9yhFwQBslz1zW/fMkEQMGDAAHHlypX2uDiWvGqJOOkFERERNWcBlzNbu3at/aqrrhLXrl1rt1gsxRaLpXjt2rX2Pn36iCtXrizbvHmz/ezZs8K0adM440ELxUkviIiIqDkLuAd4ypQpun/+85+O6667TvQtGzp0qKjT6ZyPPPKI7vDhw6Xz5893TJgwgXXRWihOekFERETNWcA9wLm5uYqYmJhqD//HxMTIR48eVQBAly5dpLNnz/LppxZKqRAwa2Rqjes46QURERGFu4AD8JVXXilOnz5dV1BQUJFuCgoKhCeeeEJ31VVXiQDw888/K9q3b88H4VqwdmZDjcsTY3QsgUZERERhLeAhEEuXLnXcdttt+uTk5Oj27dvLAHDixAmhU6dO0sqVK8sAoKSkRHjmmWdcwW4shVblWd9W7PodAHB7r7a4u08yJ70gIiKiZiPgANytWzfp8OHDpWvXrlX+9NNPSgDo2rWrOGzYMFGpVAIA7rjjDk+Q20khVtusbz3am1nqjIiIiJqVoE+E0RJF+kQYnPWNiIiIwl2jToQBALt27VJs2rRJdfr0aUGSqg71XbhwobMhx6TwJEoynv8yp8bw6/P8lzkYkprIoQ9ERETULAQcgF944QXN7NmztZdddpmUkJAgC8L50FP5NbUMnPWNiIiIWpqAA/Cbb76pefvttx0TJkxwN0aDKLxw1jciIiJqaQIug6ZQKFB5Egxq2TjrGxEREbU0AQfgxx57zPXmm2+qG6MxFH58s77VNrhFAJDEWd+IiIioGQl4CMRf//pX1/Dhww2XXHJJdNeuXUW1umoW9tUCppbBN+vbxBV7qq3jrG9ERETUHAUcgB999FHdli1blNdff73YqlUrmQ++tXzpaUlIaW1A7hl7leWJMTrMGpnKEmhERETUrAQcgFesWKH+5JNPykaNGsXJLiLE/uMW5J6xQ6UA3rivN1weibO+ERERUbMVcACOjY2VL730Uqn+Lak5qzzt8SfZxwEAo3q2w3D29hIREVEzF3AAfvbZZ53PPfec9v/+7//KoqKiGqNNFGK1TXt8eaIxRC0iIiIiCp4G1QHOzc1VJCYmGpOTk6ULH4Lbt29fadBaR02urmmP5/3vR3RsZeCYXyIiImrWAg7Ao0aN4gQYLRSnPSYiIqJIEHAAfvHFF12N0RAKPU57TERERJEg4IkwqOXitMdEREQUCfwKwHFxccbTp0/7/Z53hw4donNzc/keeTPDaY+JiIgoEvg1BMJiseCrr75SxcTE1DU8tEJRUZEgiuLFtYyanG/a43yro8ZxwAK8k19w2mMiIiJqzvweA/zggw8GvdvvjTfeUP/zn//UHDt2TAEA3bp1E5999lnnrbfeKgJAWVkZpk6dqvvkk09ULpdLGDx4sGfx4sWOpKSkinx29OhRYeLEibotW7aooqKi5DFjxrhfffVVZ+XqFBs3blQ+/vjjusOHDyvat28vP/30084JEybwYb4L+KY9zuC0x0RERNSC+TUEQpKk4kA/Lr300np7izt06CC//PLLzuzs7NKsrKzSG2+8URw9erTh4MGDCgCYPHmy7quvvlJ9/PHHZZs2bSrNy8sTRo8erfft7/F4cMsttxhcLpewdevW0mXLlpUtX75cPWPGDK1vmyNHjgijRo0y3HjjjZ49e/aUZmZmOidOnKhbs2aNsiHfsJYuPS0J4wd2qrY8MUaHxWN6swQaERERNXuCLMu2UDeisri4OOPLL7/suPvuu93x8fHG5cuXl919990eAMjJyVF07949atu2bfaBAweKq1evVt52222GEydOlPh6hd988031jBkzdIWFhcVarRaPP/649n//+58qJyenoj7xnXfeqbdYLML69evt/rTJarXCbDYbrVYrTCZT41x4GLnn7Z3Y9VsR/ti7Pa7r0prTHhMREVHYs9lsiImJgcViKY6Jialz27CpAuHxePD++++rSktLMXDgQDE7O1vpdrsxdOhQj2+b1NRUqUOHDvKOHTuUALBjxw5V9+7dpcpDIoYPH+6x2Wzw9SJ/9913yptvvtlT+VxDhw71ZGVl1doD7HA4YLVaKz5strD6G6FR5Z4pxa7fiqAQgGlDu+C2Xu3Qv3Mrhl8iIiJqMUIegPfv36+Ijo426nQ641/+8hf9p59+WpaWlibl5+cLGo0GsbGxVbaPj4+X8/PzBQAoKCgQ4uPjqwy1SExMlAGgvm1sNhvs9po7gOfMmaM1m81G30dycnLEzAH8cfZxAMANXdqgrVlfz9ZEREREzU/IA3DXrl2lPXv2lOzYsaP04Ycfdj3wwAO6Q4cOhbRdM2fOdFoslmLfx7Fjx4pD2Z6mIEoytv1yGu/v+h0AcOdVHULcIiIiIqLGEfBMcMGm1WrRpUsXGYDct29f5+7du5ULFizQ3H333W6Xy4Vz585V6QUuLCwUfL28CQkJcnZ2dpX35n09v5W3KSwsrLaNyWSCwWCosU06nQ46XeTUul17KA/Pf5lTZRa4F1bnQKEAH3ojIiKiFqdBPa2iKOLHH39UfPvtt8rNmzdX+bjYBsmyDKfTiT59+ohqtRrr16+vCOmHDx9WHD9+XBgwYIAIAAMGDPD88MMPCl/oBYB169apTCYT0tLSJADo16+fuGnTpipBf8OGDaq+ffuyUDG84TdjxZ5qUyAX2BzIWLEHaw/lhahlRERERI0j4B7g7du3K8eMGaM/duyYIMtVK50JggBRFP0eLvDEE09oR4wY4enYsaNUXFwsrFixQr1lyxblmjVrnGazGePHj3dPnz5dFxcXV2YymeTHHntM169fP3HgwIEiAKSnp4tdu3aVxowZo3/11Vcd+fn5wqxZs7SPPPKIy9eDO2nSJNeSJUs006ZN006YMMG9YcMG5WeffaZatWqVXxUgWjJRkvH8lzk1Tnohw1v79/kvczAkNZEPwREREVGLEXAAzsjI0PXu3VtcvXq1s23btpIgNDwYnT59Whg/fry+fEiCnJaWJq1Zs8aenp4uAsDChQsdU6dO1d11110Gp9MJ30QYFY1XqbB69Wr7xIkTdddee22UwWCQx44d6547d67Tt03nzp3lVatW2adNm6Z76623NO3atZOXLFniGDFiRMT3AGflFlXr+a1MBpBndSArtwj9O7dquoYRERERNaKA6wBHRUUZ9+7dW1I+bjcitNQ6wCv3ncTkj/bVu93Ce3rhtl7tGr9BRERERA3UqHWA+/TpI/7yyy8hrx5BFy/e6N+Dfv5uR0RERNQcBDwE4tFHH3VNnz5dl5eX5+rRo4eo0WiqrO/Vq5cUtNZRo+qbEoekGF2twyAEeKdA7psS17QNIyIiImpEAQfgu+66Sw8Af/7znyu6BQVBgCzLAT8ER6F319XtsXDjr9WW+0Z2zxqZygfgiIiIqEUJOAAfOXKkpDEaQk2rptq/lSXG6DBrZCrrABMREVGLE3AATklJiZiH31oqX+3f2m7k1MGX4dGbLmPPLxEREbVIDXqY7ZdffhEmTZqkGzRokGHQoEGGv/zlL9pffvmFaakZqKv2L+Ad+vBR9vGmbBIRERFRkwo4AK9Zs0aZlpYWnZ2drejRo4fYo0cPMSsrS3nFFVdEr1279qJngqPGFUjtXyIiIqKWKOAhEE8//bQuMzPT9dprrzkrL58+fbr2qaee0qWnp5cGr3kUbIXFtYffhmxHRERE1NwE3AP8008/KR5++GH3hcsnTJjg/vHHH1kfOMyx9i8RERFFuoADa+vWreW9e/dW22/v3r2KNm3a8AG5MOer/VsbAUASa/8SERFRCxbwEIgHH3zQlZGRoT9y5Ihz4MCBIgBs27ZN+fe//1372GOPOevbn0Lvnj7JmL/h52rLWfuXiIiIIkHAAXj27Nkuo9GIBQsWaJ599lkBAJKSkuSZM2c6p06d6gp+EylYWPuXiIiICBBkWbY1dGebzburyWQKWoPCkdVqhdlsNlqt1mZ7raz9S0RERC2ZzWZDTEwMLBZLcUxMTJ3bXtRDayaTqdkGwkjC2r9ERERE5/k1BKJXr15RmzZtKo2Li0PPnj2jBKH2XsJ9+/axDFqYCaT2b//OrZquYUREREQh4FcAHjlypFur1fpeewRBYLWHZoS1f4mIiIjO8ysAv/jiixUPt82ZM4eVHpoZ1v4lIiIiOi/gMcApKSnRZ86cqTYG4ty5c0hJSYkOTrMomFj7l4iIiOi8gAPw77//Lng8nmrLHQ6HcPLkSZYQCENKhYBZI1NrXMfav0RERBRp/K4D/MUXX1Rsu3btWlVMTEzFOGBRFLFx40ZVp06dpGA3kC6eKMmI0WvQ3qzDCUvVcb6s/UtERESRxu8AfMcdd+gBQBAEPPjgg1XeT1er1ejYsaP0t7/9jeODw0xNk1+YdCrceVV7DE5NRN+UOPb8EhERUUTxOwBLklQMAJ06dYrOzs4ubdOmDStBhLnaJr8odnjwr+1H0Yfhl4iIiCJQwGOAjx49WsLwG/7qmvzCt+z5L3MgSryVREREFFn87gGurKSkBJs3b1b9/vvvgsvlqtKFOG3aNFdt+1HT4eQXRERERDULOADv3r1bceuttxrKysqE0tJSxMbGymfPnhUMBgPatGkjMwCHB05+QURERFSzgIdATJs2TXfLLbd4ioqKivV6PXbu3Fmam5tbcuWVV4qvvvoq01SY4OQXRERERDULOAAfOHBAOX36dJdSqYRSqYTT6RQ6duwov/LKK84ZM2ZoG6ORFDjf5Be1PeLGyS+IiIgoUgUcgFUqlaxQeHdr06aN9PvvvwsAYDab5ZMnTwZ8PGocvskvanrEjZNfEBERUSQLeAxwz549paysLMXll18uXXfddeKsWbO0Z86ccS1fvlyTmpoqNkYjKXC+yS96dTBj33FLlXWc/IKIiIgiWcAB+KWXXnIUFxcL5a+dY8eO1T/66KP6zp07S0uXLi0LfhMpUDVNfhGlUeKePh04+QURERFFvIACsCRJSEhIkHv06CEBQGJiorx+/Xp74zSNGqK2yS9KXSInvyAiIiJCgGOAZVlGly5doo8dO8axvmGorskvfDj5BREREUW6gIKsUqlE586dpTNnzrALMQwFMvkFERERUaQKuCf35Zdfdj755JPaAwcOsBc4zHDyCyIiIqL6BfwQ3AMPPKC32+248sorozQaDfR6fZX1RUVFxUFrHQWEk18QERER1S/gAPy3v/3N4asDTOHlXKkTCgGobYivAG8JNE5+QURERJEs4AA8YcIEd2M0hC7O2kN5+MsHe+t8AA7g5BdEREREAXflKpVKY35+frUEdebMGUGpVBqD0ywKhD/VHxQC8NZ9vTn5BREREUW8gAOwLNccsxwOBzQazUU3iAJXX/UHwDssIjaK94eIiIjI7yEQr7/+ugYABEHA22+/rY6Ojq5YJ4oitm7dquzSpYvUCG2kerD6AxEREZH//A7A//jHPzSAtwf4nXfe0SiVyop1Go1GTk5OlhcvXsyEFQKs/kBERETkP78D8NGjR0sA4IYbbjB88cUX9rg4VhIIF31T4mA2qGGx1/x8Iqs/EBEREZ0XcBWIb7/91t4YDaGGW5+TX2v4BbwzwLH6AxEREZFXwAHY4/Fg6dKl6k2bNqkKCwuFCx+K++abbxiQm5CvAkRdzAY1hqQmNlGLiIiIiMJbwAE4MzNTt3z5cnV6eronLS1NFAT2KoaSPxUgLHY3snKL0L9zqyZqFREREVH4CjgAf/LJJ6oPP/ywbOTIkZ7GaBAFhhUgiIiIiAITcB1gjUaDyy67jOXOwgQrQBAREREFJuAAPGXKFNeCBQs0ksQMHA76psQh0VR7uBUAJLECBBEREVGFgIdAbN++XbllyxbVunXrVN26dRPVanWV9StXriwLWuuoXutz8uHwiDWu843OZgUIIiIiovMCDsBms1keNWpU7TW3qMmsPZSHjBV7UPPk1N7qDy+PvgLpaUlN2i4iIiKicBZwAP73v//Np6kaWYnDg6kf78Wxc2VIjtVj/t1XIlpX9Vb5yp/VFn4BQKtSsPwZERER0QUCDsAA4Ha7sWnTJuWvv/6qGDt2rNtkMuHEiRNCTEyMbDQag93GiDLqza04cMJW8fVP+cVIm70OPdqbsOrR6yqW+1P+LN/mZPkzIiIiogsE/BBcbm6ukJaWFjV69GjD5MmTdYWFhQIAzJs3TzNt2jSWGrgIF4bfyg6csGHUm1srvmb5MyIiIqKGCTgAP/bYY7qrrrpKLCoqKtbr9RXL//CHP3g2b96sDGrrIkiJw1Nr+PU5cMKGEoe3/DLLnxERERE1TMABePv27cpnn33WpdVqqyxPSUmRTp06FfDxyGvyh98HtN25UifqKuzA8mdERERENQs4sMqyLIhi9bJbx48fV0RHR9f1TFY1L774ouaqq66KMhqNxjZt2kSPHDlSf/jw4SptKisrw8SJE3VxcXHR0dHRxttvv12fl5dXJfodPXpUSE9P1xsMBmObNm2ip06dqnW7qxaq2Lhxo7JXr15RWq3W2Llz5+h33323av22EMv+/Zzf2609lIe/fLAXUj3fbZY/IyIiIqou4AB88803e+bPn6/xfS0IAoqLizF79mxtenp6QNMjb9myRZWRkeHasWNH6bp16+xutxvDhg0zlJSUVGwzefJk3VdffaX6+OOPyzZt2lSal5cnjB49umLshcfjwS233GJwuVzC1q1bS5ctW1a2fPly9YwZMyq6qI8cOSKMGjXKcOONN3r27NlTmpmZ6Zw4caJuzZo1YTNkw+Xxb2IRp1ust/qDQgDeuq83y58RERER1UCQZbnugacXOHbsmDBs2DCDLMs4cuSIonfv3uKvv/6qaNWqlbxlyxZ7YmJiQL3AlRUUFAiJiYnRmzZtsg8aNEi0WCyIj483Ll++vOzuu+/2AEBOTo6ie/fuUdu2bbMPHDhQXL16tfK2224znDhxoiQpKUkGgDfffFM9Y8YMXWFhYbFWq8Xjjz+u/d///qfKyckp9Z3rzjvv1FssFmH9+vX2+tpltVphNpuNVqsVJpOpoZdXp97Pr0NRWf1/Pxg1ChS76g/LHz58Das/EBERUcSw2WyIiYmBxWIpjomJqXPbgHuAk5OT5QMHDpQ+88wzzszMTFevXr2kuXPnOvft21d6MeEX8AZNAGjVqpUMANnZ2Uq3242hQ4dWJMPU1FSpQ4cO8o4dO5QAsGPHDlX37t0lX/gFgOHDh3tsNhsOHjyoAIDvvvtOefPNN1dJl0OHDvVkZWXV2APscDhgtVorPmy2gP5GaFT1DXvwYfUHIiIiopo1qA6wWq3GuHHjPOPGjQtoyENdRFHE5MmTdf379xd79OghAUB+fr6g0WgQGxtbZdv4+Hg5Pz9fALy9xvHx8VVioS+I17eNzWaD3W6HwWCocvw5c+Zo586dq0ETcor+DYFw+bkdqz8QERER1SzgHuAXX3xR8/bbb1d7gOztt99WX0xozMjI0OXk5Cg/+uijsoYeI1hmzpzptFgsxb6PY8eOFTf2OVV+3gm3H/mX1R+IiIiIahdwAH733Xc13bp1qxbD0tLSpHfeeadBATgjI0O3Zs0a1aZNm0qTk5MremoTExNll8uFc+eqVkgoLCwUfL28CQkJsm8yDh9fz29925hMpmq9vwCg0+kQExNT8dFY434r06qC9zzePX2SWf2BiIiIqBYBB+CCggKhbdu21QJwfHy85Aue/pIkCRkZGbqVK1eqNm7caO/cuXOVYQp9+vQR1Wo11q9fXzFU4/Dhw4rjx48LAwYMEAFgwIABnh9++EFR+dzr1q1TmUwmpKWlSQDQr18/cdOmTVWGe2zYsEHVt2/f6vXcQkSWL2r4dBWdWlcP9URERETkFXAAbt++vbRt27ZqY4e3bdumqvwgmj8yMjJ0H374oXrFihVlRqNRPnXqlHDq1CnBbvcWZjCbzRg/frx7+vTpug0bNiizsrIUDzzwgK5fv37iwIEDRQBIT08Xu3btKo0ZM0a/Z88exZo1a5SzZs3SPvLIIy6dzjsOdtKkSa6jR48qpk2bps3JyVH84x//UH/22WeqqVOnOgO9/sbiFIMXgFtHa+vfiIiIiChCBfwQ3IMPPuieNm2a1uVyYfDgwR4AWL9+verpp5/WTpkyxRXIsXxjiW+++eYqXZbvvPOOY8KECW4AWLhwoWPq1Km6u+66y+B0OjF48GDP4sWLK0ocqFQqrF692j5x4kTdtddeG2UwGOSxY8e6586dWxFuO3fuLK9atco+bdo03VtvvaVp166dvGTJEseIESPCpgdYqwzikIXgZWkiIiKiFifgOsCSJOGJJ57QLlq0SONyefOuTqfD448/7nzhhRcCCsDNRVPUAe4352sUlLjr39APC+/phdt6tQvKsYiIiIiag0DqAAfcA6xQKPD3v//dOXv2bOcPP/ygMBgM6NKli+QbbkANo1UHPBqlViyBRkRERFS7BtUBBgCj0YhrrrnGv6K0VC+FEJwAzBJoRERERHULOACXlJRg7ty52s2bNytPnz6tkKSqGTg3N7ckaK2LIHFRahwtuvgSyCyBRkRERFS3hjwEp9+6davyvvvucyclJXkEgWErGNrFGrDn+MVPucwSaERERER1CzgAf/3116pVq1bZr7/++rCpoNASGHXVJtdrEI7/JSIiIqpbwANPzWaz3KpVKxbaCrJg9KRz/C8RERFR/QIOwM8//7zz2Wef1ZaWljZGeyLYxf9NwfG/RERERPULeAjE66+/rsnNzVUkJiYak5OTJbW66lv3+/btYzJuAKP24odAcPwvERERUf0CDsCjRo0KzmwNVEW+9eIrQHD8LxEREVH9Ag7AL774Youc7S30Lm7oQqsoDcf/EhEREfmhwRNhZGVlKQ4fPqwEgO7du4tXX301J8W4CIkxF9d7e1uvthz/S0REROSHgANwfn6+cM899+i3bNmiNJvNAACLxYIbbrhB/Oijj8oSEhJYIaIBSpyei9p/SGpikFpCRERE1LIFXAXi0Ucf1RUXFwsHDx4sLSoqKi4qKio+cOBAqc1mEzIzMzkItYFEueF/N3D4AxEREZH/Au4BXr9+vWrdunWl3bt3rxjykJaWJr355ptlw4cPjwpu8yLH6WJng/fl8AciIiIi/wXcAyxJEi4sfQYAarUaksRhwA0lyQ3/3nH4AxEREZH/Ag7AN9xwg2fKlCm6EydOVHQ5Hj9+XJg2bZruxhtvvLiBrBGs0Naw4hoKAbiqY2yQW0NERETUcgUcgN966y2HzWYTLrnkkmjfR+fOnaNtNpvw5ptvOhqjkZEgIUbboP0kGfj+93NBbg0RERFRyxXwGOCOHTvKe/fuLf3666+Vhw8fVgBAamqqNGzYMDH4zYscCcaGBWAAKCzm3x1ERERE/mpQHWCFQoH09HQxPT2doTdITDpNg/flDHBERERE/vN7CMT69euVXbt2jbJardXWWSwWdOvWLeqbb75RBrV1ESSvgVMhswQaERERUWD8DsALFizQPPTQQ+6YmJhq68xmMx5++GH366+/3vBuzAh3uqRhZdBGsQQaERERUUD8DsAHDx5UjhgxotYqD+np6Z69e/eyB7iBHK6GjSZpb9YHuSVERERELZvfAbiwsFBQq9W1TlemUqnkM2fOsCuygRzuhgXguCh2uhMREREFwu8A3LZtW/ngwYO19vDu379fmZiY2PD5fCOcxe5u0H6JMewBJiIiIgqE3wE4PT3d89xzz2nLyqo/rGW32zF79mztiBEjGpbiCPYGDIEw69V8AI6IiIgoQH6XQXv22Wed//3vf6O6dOkSnZGR4eratasEAIcPH1YsWbJEI4oiZs6c2bDpzAilrsAn0bu5WzwfgCMiIiIKkN8BOCkpSd6+fXvpxIkTdc8++6xWlr2jHQRBwODBgz2LFi1yJCUlcQhEA7mlwPdpFc3xv0RERESBCmgijJSUFHndunVlRUVF+PnnnxWyLOPyyy+X4uL4Nnwo7Pj1bKibQERERNTsNGgmuLi4OFxzzTUN6LOk4GKHOxEREVGg/H4IjhrXbVe0DXifnh3MwW8IERERUQvHABwm2rUKvJzZzFu6N0JLiIiIiFo2BuAwEaNXB7S9AoBew4n3iIiIiALFABwmLGWBVZDjAGwiIiKihmEADhN5Fkeom0BEREQUERiAw0SSWRfQ9h1MHP5ARERE1BAMwGHCrA9sUov7BnRupJYQERERtWwMwGHC5nAHtP1D1zIAExERETUEA3CYkAOc00Kj4q0jIiIiagimqDAhwhPqJhARERFFBAbgMPGvrcdC3QQiIiKiiMAAHCY8YoBjIIiIiIioQRiAw4Re7f+t+PvtnAKZiIiIqKEYgMPE2sk3+L3t7X07NmJLiIiIiFo2BuAwkdzaAH8KOywZ0xtKhdD4DSIiIiJqoRiAw8ivL91SZwheMqY30tOSmq5BRERERC2QKtQNoKp+fekWHDtjx7AF36DMI0OjFPC3O3ri1l5t2fNLREREFAQMwGEoubUBh+eMCHUziIiIiFokDoEgIiIioojCAExEREREEYUBmIiIiIgiCgMwEREREUUUBmAiIiIiiigMwEREREQUURiAiYiIiCiiMAATERERUUQJaQDevHmzcsSIEfqkpKRoQRCMn332WZWJOSRJwjPPPKNNTEyM1uv1xkGDBhl++umnKm0+e/Ys7rnnHr3JZDKazWbj+PHjdcXFxVXOs2/fPsXAgQMNOp3O2L59++iXXnpJ0wSXR0RERERhKKQBuLS0FD169JDeeOMNR03rX375Zc2iRYs0ixYtcuzcubM0KipKTk9PN5SVlVVsc++99xpycnIUa9euta9cudK+bds25YQJE/S+9VarFcOGDTMkJydL2dnZpa+88opjzpw52kWLFqmb4BKJiIiIKMwIsizbQt0IABAEwfjpp5+W3XHHHR7A2/vbtm3b6ClTprieeuopFwBYLBYkJiYaly5dWnb//fd7fvjhB0VaWlrUrl27Svv16ycBwFdffaUcOXKk4dixYyXt27eX33jjDfWsWbN0eXl5xVqtFgAwffp07apVq1Q///xzqT9ts1qtMJvNRqvVCpPJ1EjfASIiIiJqKJvNhpiYGFgsluKYmJg6tw3bMcC//fabUFBQIAwZMsTjW2Y2m9GnTx9x586dSgDYvn270mw2wxd+AWDo0KGiQqHArl27lACwa9cu5cCBAz2+8AsA6enpnl9++UVRVFRU47kdDgesVmvFh80WFn8jEBEREVEQhG0AzsvLUwBAYmKiXHl5fHy8nJ+frwCA/Px8oU2bNlLl9Wq1GrGxsXJeXp5Qvo0iISGhyjF8x/Sd40Jz5szRms1mo+8jOTnZGLwrIyIiIqJQCtsAHEozZ850WiyWYt/HsWPHiuvfi4iIiIiaA1X9m4RGUlKSBHh7edu1a1fRg1tYWCj07NlTBLw9uadPn64S4t1uN86dOyckJSXJ5dtIBQUFQuVt8vPzhcrnuJBOp4NOpwvuBRERERFRWAjbHuBLLrlETkhIkDds2FAR0q1WK7Kzs5X9+/cXAWDgwIGixWJBVlZWxXVs2LBBKUkSrrnmGhEArrnmGnH79u0ql8tVceyvv/5addlll0lxcXFNeEVEREREFA5CGoCLi4vx/fffK77//nsFAPz222+K77//XnH06FFBoVAgMzPTNW/ePO0XX3yh2r9/v2LMmDH6pKQkefTo0R4A6N69uzRkyBDxz3/+s37nzp2KLVu2KB977DHdnXfe6Wnfvr0MAGPHjnWr1Wr5gQce0B08eFDxwQcfqN566y3NlClTXHW1jYiIiIhappCWQdu4caNy8ODBhguXjxkzxr18+XKHJEmYOXOmdunSpWqr1Sr0799fXLx4saNr164VQxfOnj2LSZMm6desWaNSKBS4/fbb3W+++abDaDz/3Nq+ffsUf/nLX3Tff/+9slWrVvKkSZNcM2bM8DsAswwaERERUXgLpAxa2NQBDmcMwEREREThrUXUASYiIiIiagwMwEREREQUURiAiYiIiCiiMAATERERUURhACYiIiKiiMIATEREREQRhQGYiIiIiCIKAzARERERRRQGYCIiIiKKKAzARERERBRRGICJiIiIKKIwABMRERFRRGEAJiIiIqKIwgBMRERERBGFAZiIiIiIIgoDMBERERFFFAZgIiIiIoooDMBEREREFFEYgImIiIgoojAAExEREVFEYQAmIiIioojCAExEREREEYUBmIiIiIgiCgMwEREREUUUBmAiIiIiiigMwEREREQUURiAiYiIiCiiqELdAKpB0Ung7QGAswTQRgN/3gHEtQt1q4iIiIhaBAbgcPNCG0Bynf/aYQH+kQooNMBzp0PWLCIiIqKWgkMgwsmF4bcyyeVdT0REREQXhQE4XBSdrD38+kgu73ZERERE1GAMwOHirT7B3Y6IiIiIasQAHC7E0uBuR0REREQ1YgAmIiIioojCAExEREREEYVl0IiImjtJBH7fAZQU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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = WAS.scope.plot_time_series(('X_BH', 'X_BA'))"
]
},
{
"cell_type": "markdown",
"id": "0eb92bf1",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"So far we've learned how to simulate any dynamic system developed with QSDsan. \n",
"A complete list of existing unit operations within QSDsan is available [here](https://qsdsan.readthedocs.io/en/latest/api/sanunits/_index.html). The column \"Dynamic\" indicates whether the unit is enabled for dynamic simulations. Any system composed of the enabled units can be simulated dynamically as we learned above."
]
},
{
"cell_type": "markdown",
"id": "497d72b8",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "3d13e036",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 1.2. When is a system \"dynamic\"?\n",
"It's ultimately the user's decision whether a system should be run dynamically. This section will cover the essentials to switch to the dynamic mode for system simulation."
]
},
{
"cell_type": "markdown",
"id": "94eab6a5",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"#### `System.isdynamic` vs. `SanUnit.isdynamic` vs. `SanUnit.hasode` \n",
"\n",
"- Simply speaking, when the `.isdynamic == True`, the program will attempt dynamic simulation. Users can directly enable/disable the dynamic mode by setting the `isdynamic` property of a `System` object.\n",
"\n",
"- The program will set the value of `.isdynamic` when it's not specified by users. `.isdynamic` is considered `True` in all cases except when `.isdynamic == False` for all units.\n",
"\n",
"- Setting `.isdynamic = True` does not gaurantee the unit can be simulated dynamically. Just like how the `_run` method must be defined for static simulation, a series of additional methods must be defined to enable dynamic simulation.\n",
"\n",
"- `.hasode == True` means a unit has the fundamental methods to compile ODEs. It is a **sufficient but not necessary** condition for dynamic simulation, because a unit doesn't have to be described with ODEs to be capable of dynamic simulations."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "c130f36f",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{: True,\n",
" : True,\n",
" : True,\n",
" : True,\n",
" : True,\n",
" : True}"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# All units in the BSM1 system above have ODEs\n",
"{u: u.hasode for u in sys.units}"
]
},
{
"cell_type": "markdown",
"id": "7839f0e2",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "33a3d638",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 2. Writing a dynamic `SanUnit` \n",
"\n",
"Whether a system can be simulated dynamically ultimately boils down to whether all the units in the system have the fundamental methods required for dynamic simulations. In this section, you'll learn how to implement your own algorithms to create a `SanUnit` subclass capable of dynamic simulations."
]
},
{
"cell_type": "markdown",
"id": "220c984a",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 2.1. Basic structure \n",
"\n",
"During typical system simulations, `_run` directly defines the static mass and/or energy flows of the effluent `WasteStream` objects of the unit after calculation. \n",
"\n",
"In comparison, during dynamic simulations, all information are stored as `_state` and `_dstate` attributes of the relevant `SanUnit` obejcts as well as `state` and `dstate` properties of `WasteStream` objects. These information won't be translated to mass or energy flows until dynamic simulation is completed.\n",
"\n",
"- `WasteStream.state` is a 1d `numpy.array` of length $n+1$, $n$ is the length of the components associated with the `thermo`. Each element of the array represents value of one state variable."
]
},
{
"cell_type": "markdown",
"id": "b1529db3",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"---\n",
"#### Tip\n",
"\n",
"Typically for a liquid `WasteStream`, the first $n$ element represents the component concentrations \\[mg/L\\], while the last element represents the total volumetric flow \\[m3/d\\]. For a gaseous `WasteStream`, the first $n$ state variables can simply be the mass flows \\[g/d\\] of the components if the last element is fixed at 1. This is because after completing dynamic simulations, the `WasteStream`'s mass flow is defined as the first $n$ element of this array multiplied by the last element.\n",
"\n",
"---"
]
},
{
"cell_type": "markdown",
"id": "d997b05d",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"- `WasteStrem.dstate` is an array of the exact same shape as `WasteStream.state`, storing values of the time derivatives (i.e., the rates of change) of the state variables."
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "a8ae235a",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([3.000e+01, 8.899e-01, 4.389e+00, 1.886e-01, 9.784e+00, 5.720e-01,\n",
" 1.722e+00, 4.897e-01, 1.038e+01, 1.747e+00, 6.884e-01, 1.349e-02,\n",
" 4.954e+01, 2.751e+01, 9.978e+05, 1.806e+04])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sf = sys.flowsheet.stream\n",
"sf.effluent.state"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "ab1496fd",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"sparse([3.000e+01, 8.899e-01, 4.389e+00, 1.886e-01, 9.784e+00, 5.720e-01,\n",
" 1.722e+00, 4.897e-01, 1.038e+01, 1.747e+00, 6.884e-01, 1.349e-02,\n",
" 4.954e+01, 2.751e+01, 9.981e+05])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# sf.effluent.F_vol*24 # convert unit from m3/hr to m3/d\n",
"sf.effluent.conc"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "825050c1",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sf.effluent.dstate.shape == sf.effluent.state.shape"
]
},
{
"cell_type": "markdown",
"id": "eb706d47",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"\n",
"- `SanUnit._state` is also a 1d `numpy.array`, but the length of the array is not assumed, because the state variables relevant for a `SanUnit` is entirely dependent on the unit operation itself. Therefore, there is no predefined units of measure or order for state variables of a unit operation.\n",
"\n",
"- `SanUnit._dstate`, similarly, must have the exact same shape as the `_state` array, as each element corresponds to the time derivative of a state variable."
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "956dbc0f",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"C1._state.shape == A1._state.shape\n",
"# C1._state.shape == C1._dstate.shape"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "561a5589",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{'S_I': 30.0,\n",
" 'S_S': 2.8098296544615704,\n",
" 'X_I': 1147.8970757884535,\n",
" 'X_S': 82.14996504835973,\n",
" 'X_BH': 2551.1712941951987,\n",
" 'X_BA': 148.18576250649838,\n",
" 'X_P': 447.1086242830684,\n",
" 'S_O': 0.004288622012845044,\n",
" 'S_NO': 5.33892893863284,\n",
" 'S_NH': 7.928812844268634,\n",
" 'S_ND': 1.216680910568711,\n",
" 'X_ND': 5.285760801254182,\n",
" 'S_ALK': 59.158219028756534,\n",
" 'S_N2': 25.008073542375985,\n",
" 'H2O': 997794.331078558,\n",
" 'Q': 92229.99999999996}"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Some dynamic units in QSDsan have a `state` property that formats\n",
"# the data in `_state` for better readability\n",
"A1.state"
]
},
{
"cell_type": "markdown",
"id": "68f067f1",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "b6a928f2",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 2.2. Fundamental methods\n",
"In addition to proper `__init__` and `_run` methods ([recap](https://qsdsan.readthedocs.io/en/latest/tutorials/5_SanUnit_advanced.html#2.1.-Fundamental-methods)), a few more methods are required in a `SanUnit` subclass for dynamic simulation. Users typically won't interact with these methods but they will be called by `System.simulate` to manipulate the values of the arrays mentioned [above](#s2.1) (i.e., `._state`, `._dstate`, `.state`, and `.dstate`)."
]
},
{
"cell_type": "markdown",
"id": "976dabeb",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"- `_init_state`, called after `_run` to generate an initial condition for the unit, i.e., defining shape and values of the `_state` and `_dstate` arrays. For example:\n",
"```python\n",
"import numpy as np\n",
"def _init_state(self):\n",
" inf = self.ins[0]\n",
" self._state = np.ones(len(inf.components)+1)\n",
" self._dstate = self._state * 0.\n",
"```\n",
"This method (not saying it makes sense) assumes $n+1$ state variables and gives an initial value of 1 to all of them. Then it also sets the initial time derivatives to be 0. "
]
},
{
"cell_type": "markdown",
"id": "3a3de71d",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"- `_update_state`, to update effluent streams' state arrays based on current state (and maybe dstate) of the SanUnit. For example:\n",
"```python\n",
"def _update_state(self):\n",
" arr = self._state # retrieving the current state of the SanUnit\n",
" eff, = self.outs # assuming this SanUnit has one outlet only\n",
" eff.state[:] = arr # assume arr has the same shape as WasteStream.state\n",
"```\n",
"The goal of this method is to update the values in `.state` for each `WasteStream` in `.outs`."
]
},
{
"cell_type": "markdown",
"id": "8deec2a2",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"- `_update_dstate`, to update effluent streams' `dstate` arrays based on current `_state` and `_dstate` of the SanUnit. The signiture and often the algorithm are similar to `_update_state`.\n",
"\n",
"\n",
"- `_compile_ODE` or `_compile_AE`, used to define the function that updates the `_dstate` and/or `_state` of the `SanUnit` based on its influent streams' `state`/`dstate` and potentially its own current state. The defined function will be stored as `SanUnit._ODE` or `SanUnit._AE`. These methods should follow some general forms like below:\n",
"```python\n",
"@property\n",
"def ODE(self):\n",
" if self._ODE is None:\n",
" self._compile_ODE()\n",
" return self._ODE \n",
"```"
]
},
{
"cell_type": "markdown",
"id": "a431142f",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"```python\n",
"def _compile_ODE(self):\n",
" _dstate = self._dstate\n",
" _update_dstate = self._update_dstate\n",
" def dy_dt(t, y_ins, y, dy_ins):\n",
" _dstate[:] = some_algorithm(t, y_ins, y, dy_ins)\n",
" _update_dstate()\n",
" self._ODE = dy_dt\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "83c50a89",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"```python\n",
"@property\n",
"def AE(self):\n",
" if self._AE is None:\n",
" self._compile_AE()\n",
" return self._AE\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "dd66c263",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"```python\n",
"def _compile_AE(self):\n",
" _state = self._state\n",
" _dstate = self._dstate\n",
" _update_state = self._update_state\n",
" _update_dstate = self._update_dstate\n",
" def y_t(t, y_ins, dy_ins):\n",
" _state[:] = some_algorithm(t, y_ins, dy_ins)\n",
" _dstate[:] = some_other_algorithm(t, y_ins, dy_ins)\n",
" _update_state()\n",
" _update_dstate()\n",
" self._AE = y_t\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "a144502d",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"> **Note**: Within the `dy_dt` or `y_t` functions, `._state[:] = ` rather than `._state = ` because it's generally faster to update values in an existing array than overwriting this array with a newly created array.\n",
"\n",
"We'll learn more about these two methods in the next subsections."
]
},
{
"cell_type": "markdown",
"id": "7cb3c766",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "afd475f2",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 2.3. Making a simple MixerSplitter (`_compile_AE`)\n",
"\n",
"Let's say we want to make an ideal mixer-splitter that instantly mixes all streams at the inlets and then evenly split them across the outlets."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "c38b235a",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# Typically if implemented as a static SanUnit, it'd be pretty simple\n",
"# Let's ignore `_design` and `_cost` for now.\n",
"class MixerSplitter1(qs.SanUnit):\n",
" _N_outs = 3\n",
" _ins_size_is_fixed = False\n",
" _outs_size_is_fixed = False\n",
" def __init__(self, ID='', ins=None, outs=(), thermo=None, \n",
" init_with='WasteStream', **kwargs):\n",
" qs.SanUnit.__init__(self, ID, ins, outs, thermo, init_with, **kwargs)\n",
" self.mixed = qs.WasteStream()\n",
" \n",
" def _run(self):\n",
" mixed = self.mixed\n",
" mixed.mix_from(self.ins)\n",
" n_outs = len(self.outs)\n",
" flow = mixed.get_total_flow('kg/hr')/n_outs\n",
" for out in self.outs:\n",
" out.copy_like(mixed)\n",
" out.set_total_flow(flow, 'kg/hr')\n",
" \n",
" def _design(self):\n",
" pass\n",
" \n",
" def _cost(self):\n",
" pass"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "9b5ce52d",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CompiledComponents([S_I, S_S, X_I, X_S, X_BH, X_BA, X_P, S_O, S_NO, S_NH, S_ND, X_ND, S_ALK, S_N2, H2O])\n"
]
}
],
"source": [
"# Let's try simulating it with the components used in BSM1\n",
"cmps = qs.get_thermo().chemicals\n",
"cmps.show()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "12aa03d9",
"metadata": {
"scrolled": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WasteStream: ws12\n",
"phase: 'l', T: 298.15 K, P: 101325 Pa\n",
"flow (g/hr): S_S 3e+03\n",
" S_NH 2.1e+03\n",
" H2O 8e+05\n",
" WasteStream-specific properties:\n",
" pH : 7.0\n",
" Alkalinity : 2.5 mg/L\n",
" COD : 3711.8 mg/L\n",
" BOD : 2661.3 mg/L\n",
" TC : 1187.8 mg/L\n",
" TOC : 1187.8 mg/L\n",
" TN : 2598.2 mg/L\n",
" TP : 37.1 mg/L\n",
" Component concentrations (mg/L):\n",
" S_S 3711.8\n",
" S_NH 2598.2\n",
" H2O 989803.5\n"
]
}
],
"source": [
"# Now let's make a couple fake influents\n",
"inf1 = qs.WasteStream(H2O=1000, S_O=5)\n",
"inf2 = qs.WasteStream(H2O=800, S_S=3, S_NH=2.1)\n",
"inf2.show()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "4ff4c667",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MixerSplitter1: M1\n",
"ins...\n",
"[0] ws11\n",
"phase: 'l', T: 298.15 K, P: 101325 Pa\n",
"flow (g/hr): S_O 5e+03\n",
" H2O 1e+06\n",
" WasteStream-specific properties:\n",
" pH : 7.0\n",
"[1] ws12\n",
"phase: 'l', T: 298.15 K, P: 101325 Pa\n",
"flow (g/hr): S_S 3e+03\n",
" S_NH 2.1e+03\n",
" H2O 8e+05\n",
" WasteStream-specific properties:\n",
" pH : 7.0\n",
" COD : 3711.8 mg/L\n",
" BOD : 2661.3 mg/L\n",
" TC : 1187.8 mg/L\n",
" TOC : 1187.8 mg/L\n",
" TN : 2598.2 mg/L\n",
" TP : 37.1 mg/L\n",
"outs...\n",
"[0] ws13\n",
"phase: 'l', T: 298.15 K, P: 101325 Pa\n",
"flow (g/hr): S_S 1e+03\n",
" S_O 1.67e+03\n",
" S_NH 700\n",
" H2O 6e+05\n",
" WasteStream-specific properties:\n",
" pH : 7.0\n",
" COD : 1650.8 mg/L\n",
" BOD : 1183.6 mg/L\n",
" TC : 528.3 mg/L\n",
" TOC : 528.3 mg/L\n",
" TN : 1155.6 mg/L\n",
" TP : 16.5 mg/L\n",
"[1] ws14\n",
"phase: 'l', T: 298.15 K, P: 101325 Pa\n",
"flow (g/hr): S_S 1e+03\n",
" S_O 1.67e+03\n",
" S_NH 700\n",
" H2O 6e+05\n",
" WasteStream-specific properties:\n",
" pH : 7.0\n",
" COD : 1650.8 mg/L\n",
" BOD : 1183.6 mg/L\n",
" TC : 528.3 mg/L\n",
" TOC : 528.3 mg/L\n",
" TN : 1155.6 mg/L\n",
" TP : 16.5 mg/L\n",
"[2] ws15\n",
"phase: 'l', T: 298.15 K, P: 101325 Pa\n",
"flow (g/hr): S_S 1e+03\n",
" S_O 1.67e+03\n",
" S_NH 700\n",
" H2O 6e+05\n",
" WasteStream-specific properties:\n",
" pH : 7.0\n",
" COD : 1650.8 mg/L\n",
" BOD : 1183.6 mg/L\n",
" TC : 528.3 mg/L\n",
" TOC : 528.3 mg/L\n",
" TN : 1155.6 mg/L\n",
" TP : 16.5 mg/L\n"
]
}
],
"source": [
"MS1 = MixerSplitter1(ins=(inf1, inf2))\n",
"MS1.simulate()\n",
"MS1.show()"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "72151a1e",
"metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# Obviously, it's not ready for dynamic simulation\n",
"# MS1_dyn = MixerSplitter1(ins=(inf1.copy(), inf2.copy()), isdynamic=True)\n",
"# dyn_sys = qs.System(path=(MS1_dyn,))\n",
"# dyn_sys.simulate(t_span=(0,5))"
]
},
{
"cell_type": "markdown",
"id": "0c4eb0cd",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Since the mixer-splitter mixes and splits instantly, we can express this process with a set of algebraic equations (AEs). Assume its array of state variables follow the \"concentration-volumetric flow\" convention. In mathematical forms, state variables of the mixer-splitter ($C_m$, component concentrations; $Q_m$, total volumetric flow) follow:\n",
"$$Q_m = \\sum_{i \\in ins} Q_i \\tag{1}$$\n",
"$$Q_mC_m = \\sum_{i \\in ins} Q_iC_i$$\n",
"$$\\therefore C_m = \\frac{\\sum_{i \\in ins} Q_iC_i}{Q_m} \\tag{2}$$"
]
},
{
"cell_type": "markdown",
"id": "a37f98d9",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Therefore, the time derivatives $\\dot{Q_m}$ follow:\n",
"$$\\dot{Q_m} = \\sum_{i \\in ins} \\dot{Q_i} \\tag{3}$$\n",
"$$Q_m\\dot{C_m} + C_m\\dot{Q_m} = \\sum_{i \\in ins} (Q_i\\dot{C_i} + C_i\\dot{Q_i})$$\n",
"$$\\therefore \\dot{C_m} = \\frac{1}{Q_m}\\cdot(\\sum_{i \\in ins}Q_i\\dot{C_i} + \\sum_{i \\in ins}C_i\\dot{Q_i} - C_m\\dot{Q_m}) \\tag{4}$$"
]
},
{
"cell_type": "markdown",
"id": "7578a12e",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"For any effluent `WasteStream` $j$:\n",
"$$Q_j = \\frac{Q_m}{n_{outs}} \\tag{5}$$\n",
"$$C_j = C_m \\tag{6}$$\n",
"$$\\therefore \\dot{Q_j} = \\frac{\\dot{Q_m}}{n_{outs}} \\tag{7}$$\n",
"$$\\dot{C_j} = \\dot{C_m} \\tag{8}$$\n",
"Now, let's try to implement this algorithm in methods for dynamic simulation."
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "38abf7cb",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"class MixerSplitter2(MixerSplitter1):\n",
" def _init_state(self):\n",
" mixed = self.mixed\n",
" self._state = np.empty(len(cmps)+1)\n",
" self._state[:-1] = mixed.conc # first n element be the component concentrations of the mixed stream\n",
" self._state[-1] = mixed.F_vol * 24 # last element be the total volumetric flow\n",
" self._dstate = self._state * 0.\n",
" \n",
" def _update_state(self):\n",
" y = self._state\n",
" n_outs = len(self.outs)\n",
" for ws in self.outs:\n",
" if ws.state is None: ws.state = y.copy()\n",
" else: ws.state[:-1] = y[:-1] # equation (6)\n",
" ws.state[-1] = y[-1]/n_outs # equation (5)\n",
" \n",
" def _update_dstate(self):\n",
" dy = self._dstate\n",
" n_outs = len(self.outs)\n",
" for ws in self.outs:\n",
" if ws.dstate is None: ws.dstate = dy.copy()\n",
" else: ws.dstate[:-1] = dy[:-1] # equation (8)\n",
" ws.dstate[-1] = dy[-1]/n_outs # equation (7)\n",
" \n",
" @property\n",
" def AE(self):\n",
" if self._AE is None:\n",
" self._compile_AE()\n",
" return self._AE\n",
" \n",
" def _compile_AE(self):\n",
" _state = self._state\n",
" _dstate = self._dstate\n",
" _update_state = self._update_state\n",
" _update_dstate = self._update_dstate\n",
" def y_t(t, y_ins, dy_ins):\n",
" Q_ins = y_ins[:,-1]\n",
" C_ins = y_ins[:,:-1]\n",
" dQ_ins = dy_ins[:,-1]\n",
" dC_ins = dy_ins[:,:-1]\n",
" _state[-1] = Q = sum(Q_ins) # equation (1)\n",
" _state[:-1] = C = Q_ins @ C_ins / Q # equation (2)\n",
" _dstate[-1] = dQ = sum(dQ_ins) # equation (3)\n",
" _dstate[:-1] = dC = (Q_ins @ dC_ins + dQ_ins @ C_ins - C*dQ) / Q # equation (4)\n",
" _update_state()\n",
" _update_dstate()\n",
" self._AE = y_t"
]
},
{
"cell_type": "markdown",
"id": "da258438",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
">**Note**: \n",
">1. All `SanUnit._AE` must take exactly these three postional arguments (`t`, `y_ins`, `dy_ins`). `t` is time as a `float`. Both `y_ins` and `dy_ins` are **2d** `numpy.array` of the same shape `(m, n+1)`, where $m$ is the number of inlets, $n+1$ is the length of the `state` or `dstate` array of a `WasteStream`.\n",
">\n",
">2. All `SanUnit._AE` must update both `_state` and `_dstate` of the `SanUnit`, and must call `_update_state` and `_update_dstate` afterwards."
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "ba8c9001",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# Now let's see if this works\n",
"MS2 = MixerSplitter2(ins=(inf1.copy(), inf2.copy()), isdynamic=True)\n",
"dyn_sys2 = qs.System(path=(MS2,))\n",
"dyn_sys2.set_dynamic_tracker(MS2)\n",
"dyn_sys2.simulate(t_span=(0,5))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "a4f65bf6",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGZCAYAAACHRodNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABe5klEQVR4nO3deVzU1f4/8NdnFmZhBgYQGFwQNJfcMjdUKndFTS3NstKyXLGfmmZpaeFNsjJv2dXUW960TNOuVnKNtAB3I/flK5bmRiaLV51hGWC2z+8P7xAkyAwCM+O8no/HPIqZ8znz/hyYenE4n/MRRFHMAxERERGRj5C4uwAiIiIiorrEAExEREREPoUBmIiIiIh8CgMwEREREfkUBmAiIiIi8ikMwERERETkUxiAiYiIiMinyNxdgLewWq3IysqCRqOBRMLfG4iIiIg8jd1uR0FBASIiIiCTVR5zGYCdlJWVhcjISK276yAiIiKi28vMzMxv1KhRpa8zADtJq72ZfX///XcEBAS4uRoiIiIi+qu8vDw0atSoNLdVhgHYSYIgAAACAgIYgImIiIg8mCO3Vcati1kXLFjg17FjR3+tVqsNDQ3VDBkyRHX69OlyNV25ckV46qmnlOHh4Rp/f39t+/bt/b/66qtywf3atWsYNWqUKiAgQKvT6bRjx45V5ufnl3uvY8eOSWJjY9VKpVLbsGFDzcKFC/3q4BSJiIiIyMO4NQDv3r1bFh8fb96/f3/h9u3bTRaLBQMGDFAXFBSUthkzZozqzJkz0m+//dZ0/PjxgkceecTy5JNPqg4dOlRa+5NPPqnOyMiQbNu2zbRlyxbT3r17pePHj1c5XjcajRgwYIA6MjLSfvDgwcJ33323ODExUbF8+XJ5HZ8yEREREbmZIIpinruLcMjJyRH0er0mLS3N1KtXLxsAaDQa7bJly4rHjh1rcbQLDg7WLFy4sGTy5MmWU6dOSdq0aeOfnp5eGBMTYweA7777TjpkyBB1ZmZmQcOGDcWlS5fKExISlFlZWfkKhQIAMGvWLEVSUpLszJkzhRXVUlxcjJKSktKv8/LyEBkZqTUajVwCQUREROSB8vLyEBgYCIPBkB8YGFhpO4/az8toNAIAQkJCRMdzMTExto0bN8quXbsGm82GdevWyUpKSoTevXtbAWDfvn1SnU4HR/gFgP79+9skEgnS09OlAJCeni6NjY21OsIvAMTFxVnPnj0ruX79eoW1JCYmKnQ6ndbx4A4QRERERHcHjwnANpsN06dPV3br1s3Wrl270jC7adMmk8ViEerVq6dVKpXaKVOmqDZt2mRq3ry5CADZ2dlCaGiovWxfcrkcQUFBYlZWlvC/NpLw8HCxbBu9Xi8CQFZWVoVjMG/evBKDwZDveGRmZuZX1I6IiIiIvIvH7AIRHx+vzMjIkO7Zs6fckoS5c+cqjUYjtm/fbqpXr574zTffyJ588kn1rl27Cu+77z57Zf3dKaVSCaVSWVvdExEREZGbeEQAjo+PVyYnJ8t27dpVGBkZWTpTe/bsWWHFihXyEydOFLZt29YOAB06dDDv3btXtmzZMr9PPvmkWK/Xi1evXi03i2uxWHDjxg0hIiJCBAC9Xm/Pyckptx9Gdna2AAARERG1FqKJiIiIyPO4dQmE3W5HfHy8csuWLbLU1FRT06ZNyy1TMJlMAoBbbj0slUpht9/MrbGxsTaDwYADBw6UNkpJSZHa7XZ07drVBgBdu3a17du3T2Y2m0v7+OGHH2TNmjWzBwcH19r5EREREZHncesuEJMmTVJu3LhR/vXXX5tatmxZOhOr0+lEtVoNs9mMVq1a+ev1evG9994rrlevnvj111/LX331VcWWLVuKhgwZYgWA/v37q3Nzc4UVK1YUWSwWYdy4ccoOHTrYN27cWAQABoMBLVq00PTt29c6Z84c88mTJyUTJkxQvffee8VTpkyxVFZfWUajETqdrm52gTj5I7D5sT+/1ncCmj4ISGRA9INA1AOARArYbcCFPcDF3YDhMqBrCET3+PP1mmC3AZf2AwU5gCYcaNy98r5daeuNnD2/6ozD3T527uZN4+tNtRJ5O0/+vHlybc5wU/3O7gLh1gAsCEKFOyt88sknxePHj7cAwK+//iqZPXu2Yv/+/dLCwkKhSZMm9pdeeslcdlu0a9euYcqUKark5GSZRCLBI488Ylm2bFlx2dvgHTt2TPLCCy8oDx8+LA0JCRGnTJlinjt3rrmCt69QnQXg+ZV/s0qpgoH7RwNH1wJFNyp+fciHQKuhd1ZLRhKwbTaQd+XP5wLqA3Hv3tq3K229kbPnV51xuNvHzt28aXy9qVYib+fJnzdPrs0ZbqzfKwKwN6mTAOxM+HXF42ur/4OWkQR89QwA8S8v/G8p9eOf/9m3K229kbPnV51xuNvHzt28aXy9qVYib+fJnzdPrs0Zbq6fAbiG1XoA/uuyh5qgrQ+88LPrf3Kw24CPugD5WZU0EICACGDKzze/dLatN/3pxsHZsZi8H1jRzbVxcGWcvXHs3M2bxtebaiXydp78efPk2pzhVP31gRdP1lr9DMA1rNYDcE3P/hIRERF5ome33rymqRZ45Z3giIiIiOguV5Dj7go8Yx9gqkVPb7p55aUrLu0H1jmxHOPpTTf/6WxbV+vwBM6ORd/5QMr8qtuVHQdXxtkbx87dvGl8valWIm/nyZ83T67NGc7Wrwmv/VqqwADsKUZsqvk1wAENgKa9XV9n07T3zTU6eVm4dRE7ULqGp2nv/72Pk209cb1SVZwdi64vAAc+dm0cXBlnbxw7d/Om8fWmWom8nSd/3jy5Nmc4W78HhHcugfAUbfvVfJ9x71TvAyKR3tyqBEDpVZulhPJ9u9LWGzl7fjI/18fhbh87d/Om8fWmWom8nSd/3jy5Nmd4Uf0MwJ5kvtG5dqpgoPs0QBVU+et3sgUacPPYxz+/ebVpWQH1b93CxJW23sjZ86vOONztY+du3jS+3lQrkbfz5M+bJ9fmDC+pn7tAOIl3guOd4HgnOC/mTePrTbUSeTtP/rx5cm3O4J3g7g51GoCJiIiIyGXcBo2IiIiIqAIMwERERETkUxiAiYiIiMinMAATERERkU9hACYiIiIin8IATEREREQ+hQGYiIiIiHwKAzARERER+RQGYCIiIiLyKQzARERERORTGICJiIiIyKcwABMRERGRT2EAJiIiIiKfwgBMRERERD6FAZiIiIiIfAoDMBERERH5FAZgIiIiIvIpDMBERERE5FMYgImIiIjIp7g1AC9YsMCvY8eO/lqtVhsaGqoZMmSI6vTp07fUtHfvXmnPnj3V/v7+2oCAAO0DDzygNplMpa9fu3YNo0aNUgUEBGh1Op127Nixyvz8/HJ9HDt2TBIbG6tWKpXahg0bahYuXOhX+2dIRERERJ7GrQF49+7dsvj4ePP+/fsLt2/fbrJYLBgwYIC6oKCgtM3evXulgwcPVvft29eanp5e+PPPPxe+8MILZonkz9KffPJJdUZGhmTbtm2mLVu2mPbu3SsdP368yvG60WjEgAED1JGRkfaDBw8Wvvvuu8WJiYmK5cuXy+v2jImIiIjI3QRRFPPcXYRDTk6OoNfrNWlpaaZevXrZAKBLly7qPn362N5+++2Sio45deqUpE2bNv7p6emFMTExdgD47rvvpEOGDFFnZmYWNGzYUFy6dKk8ISFBmZWVla9QKAAAs2bNUiQlJcnOnDlT6ExtRqMROp1OazQaERAQUENnTEREREQ1JS8vD4GBgTAYDPmBgYGVtvOoNcBGoxEAEBISIgJAdna2cPDgQWlYWJi9a9eu6rCwMM2DDz6o3rVrl9RxzL59+6Q6nQ6O8AsA/fv3t0kkEqSnp0sBID09XRobG2t1hF8AiIuLs549e1Zy/fr1CmspLi6G0WgsfeTleczvCURERER0BzwmANtsNkyfPl3ZrVs3W7t27ewAcO7cOQkALFiwQDFu3DhLcnKy6f7777f1799f/euvv0qAmyE5NDTUXrYvuVyOoKAgMSsrS/hfG0l4eLhYto1erxcBICsrq8IxSExMVOh0Oq3jERkZqa35syYiIiKiuuYxATg+Pl6ZkZEh3bBhQ5HjObv9Zq4dP368ZcKECZZOnTrZ//GPf5Q0a9bMvmrVqlpdvztv3rwSg8GQ73hkZmbmV30UEREREXk6mbsLAG6G3+TkZNmuXbsKIyMjS2dq69evbweA1q1bl5vhbdmypf3333+XADdncq9evVouyFssFty4cUOIiIgQ/9fGnpOTI5Rtk52dLQBAREREub4dlEollEplTZweEREREXkQt84A2+12xMfHK7ds2SJLTU01NW3atNwyhejoaDEiIkL85ZdfytV59uxZSWRkpB0AYmNjbQaDAQcOHChtk5KSIrXb7ejatasNALp27Wrbt2+fzGw2l/bxww8/yJo1a2YPDg6u1XMkIiIiIs/i1gAcHx+v/PLLL+VffPFFkVarFa9cuSJcuXJFcOzxK5FIMHPmTPPy5cv9Nm7cKDtz5ozw6quvKs6cOSOZMGGCGbg5O9yvXz/bxIkTVT/99JNk9+7d0mnTpilHjhxpbdiwoQgAY8aMscjlcvG5555Tnjx5UrJ+/XrZRx995Pfiiy+ab1MeEREREd2F3LoNmiAIFV5Y9sknnxSPHz/e4vg6MTHRb+XKlX43btwQ2rZta3v33XdLevToYXO8fu3aNUyZMkWVnJwsk0gkeOSRRyzLli0r1mr/7P7YsWOSF154QXn48GFpSEiIOGXKFPPcuXOdDsDcBo2IiIjIszm7DZpH7QPsyRiAiYiIiDybV+4DTERERERU2xiAiYiIiMinMAATERERkU9hACYiIiIin8IATEREREQ+hQGYiIiIiHwKAzARERER+RQGYCIiIiLyKQzARERERORTGICJiIiIyKcwABMRERGRT2EAJiIiIiKfwgBMRERERD6FAZiIiIiIfAoDMBERERH5FAZgIiIiIvIpDMBERERE5FMYgImIiIjIpzAAExEREZFPYQAmIiIiIp/CAExEREREPoUBmIiIiIh8CgMwEREREfkUBmAiIiIi8ikMwERERETkUxiAiYiIiMinMAATERERkU9hACYiIiIin8IATEREREQ+xa0BeMGCBX4dO3b012q12tDQUM2QIUNUp0+frrAmu92O/v37qwVB0G7evFlW9rWLFy8KcXFxKrVarQ0NDdXMmDFDYbFYyh2fmpoqbd++vb9CodA2bdpUs2rVKnktnhoREREReSi3BuDdu3fL4uPjzfv37y/cvn27yWKxYMCAAeqCgoJb2v7973/3EwRB/OvzVqsVgwcPVpvNZmHPnj2Fq1evLlq7dq187ty5Ckebc+fOCUOHDlX37NnTeuTIkcKpU6eWTJ48WZmcnCyt5VMkIiIiIg8jiKKY5+4iHHJycgS9Xq9JS0sz9erVy+Z4/vDhw5KhQ4eqDx48WNigQQPNpk2bikaMGGEFgK1bt0qHDRumvnz5ckFERIQIAMuWLZPPnTtXmZubm69QKPDSSy8pvv/+e1lGRkaho8+RI0eqDAaD8OOPP5oqqqW4uBglJSWlX+fl5SEyMlJrNBoREBBQa2NARERERNWTl5eHwMBAGAyG/MDAwErbedQaYKPRCAAICQkpnektLCzE008/rVq6dGlx/fr1b5kB3r9/v6x169Z2R/gFgIEDB1rz8vJw8uRJCQD8/PPP0j59+ljLHte/f3/rgQMHKp0BTkxMVOh0Oq3jERkZqa2BUyQiIiIiN/OYAGyz2TB9+nRlt27dbO3atbM7nnc8N3z4cGtFx+Xk5AhhYWHlgrFerxcBIDs7W7hdm7y8PJhMFU4AY968eSUGgyHf8cjMzMy/w1MkIiIiIg8gq7pJ3YiPj1dmZGRI9+zZU7pM4ZtvvpHt3LlTevTo0cLbHVsblEollEplXb8tEREREdUyj5gBjo+PVyYnJ8vS0tIKIyMjS2dq09LSpOfPn5cEBQVpZTKZViaTaQHg8ccfVz300ENqAAgPDxdzc3OFsv05Zn4dM8GVtQkICIBara7t0yMiIiIiD+LWAGy32xEfH6/csmWLLDU11dS0adNyyxReffVV87FjxwqPHDlS+gCA9957r2T16tVFANC9e3frqVOnJI7QCwDbt2+XBQQEoE2bNnYAiImJsaWlpZWb7U5JSZF16dLFBiIiIiLyKW5dAhEfH6/cuHGj/OuvvzZptVrxypUrAgDodDpRrVajfv36YkUXvjVu3NjuCMtxcXG2li1b2kePHq1atGhRcXZ2tpCQkKCYNGmS2bGEYcqUKeaVK1f6zZw5UzF+/HhLSkqKdPPmzbKkpKSKFwATERER0V3LrTPAH3/8sdxoNKJPnz7qBg0aaByP9evXO32TCplMhq1bt5qkUqn4wAMP+D/zzDOq0aNHW956663SPcyaNm0qJiUlmVJTU2X333+//5IlSxQrV64sHjRoEGeAiYiIiHyMR+0D7MmMRiN0Oh33ASYiIiLyUF65DzARERERUW1jACYiIiIin8IATEREREQ+hQGYiIiIiHwKAzARERER+RQGYCIiIiLyKQzARERERORTGICJiIiIyKcwABMRERGRT2EAJiIiIiKfwgBMRERERD6FAZiIiIiIfAoDMBERERH5FAZgIiIiIvIpDMBERERE5FMYgImIiIjIpzAAExEREZFPYQAmIiIiIp/CAExEREREPoUBmIiIiIh8CgMwEREREfkUBmAiIiIi8ikMwERERETkUxiAiYiIiMinMAATERERkU9hACYiIiIin8IATEREREQ+hQGYiIiIiHyKWwPwggUL/Dp27Oiv1Wq1oaGhmiFDhqhOnz5dWtO1a9cwZcoUZfPmzf1VKpW2UaNGmhdeeEFhMBjK9XPx4kUhLi5OpVartaGhoZoZM2YoLBZLuTapqanS9u3b+ysUCm3Tpk01q1atktfJSRIRERGRR3FrAN69e7csPj7evH///sLt27ebLBYLBgwYoC4oKAAA/PHHH5IrV64IixYtKjlx4kTBp59+WvTDDz/InnvuOZWjD6vVisGDB6vNZrOwZ8+ewtWrVxetXbtWPnfuXIWjzblz54ShQ4eqe/bsaT1y5Ejh1KlTSyZPnqxMTk6WuuG0iYiIiMiNBFEU89xdhENOTo6g1+s1aWlppl69etkqarNhwwbZs88+qyooKMiXy+XYunWrdNiwYerLly8XREREiACwbNky+dy5c5W5ubn5CoUCL730kuL777+XZWRkFDr6GTlypMpgMAg//vijyZnajEYjdDqd1mg0IiAgoGZOmIiIiIhqTF5eHgIDA2EwGPIDAwMrbedRa4CNRiMAICQkRKysjcFgELRarSiX31zBsH//flnr1q3tjvALAAMHDrTm5eXh5MmTEgD4+eefpX369LGW7ad///7WAwcOVDoDXFxcDKPRWPrIy/OY3xOIiIiI6A54TAC22WyYPn26slu3brZ27drZK2pz9epVYeHChYpx48aVLvDNyckRwsLCygVmvV4vAkB2drZwuzZ5eXkwmSqeAE5MTFTodDqt4xEZGam9w1MkIiIiIg9wRwG4qKiopupAfHy8MiMjQ7phw4YKOzUajRg0aJCqZcuW9gULFpTU2BtXYt68eSUGgyHf8cjMzMyv7fckIiIiotrncgC22WxISEjwq1+/vkar1Wp/++03AQBeffVVxT//+c9q7awQHx+vTE5OlqWlpRVGRkbesvwhLy8PAwYMUGs0GmzZssXk5+dX+lp4eLiYm5srlG3vmPl1zARX1iYgIABqtbrCmpRKJQIDA0sfXPdLREREdHdwOQD/7W9/81u7dq3fO++8U1w2iLZt29b26aefuhSA7XY74uPjlVu2bJGlpqaamjZtekv4NRqN6Nevn9rPzw9bt241qVSqcq93797deurUKYkj9ALA9u3bZQEBAWjTpo0dAGJiYmxpaWmysselpKTIunTpUuGFdkRERER093I5AK9bt85v5cqVRc8884xVKv3zGrL27dvbz5w549K2YvHx8covv/xS/sUXXxRptVrxypUrwpUrVwTHulxH+C0sLBT+9a9/FRmNRsHRxmq9eU1bXFycrWXLlvbRo0erjhw5IklOTpYmJCQoJk2aZFYqlQCAKVOmmC9evCiZOXOmIiMjQ/KPf/xDvnnzZtmMGTNqfSkFEREREXkWWdVNyrty5YrQrFmzWy5Ss9vt+OvNJ6ry8ccfywGgT58+5dYhfPLJJ8Xjx4+3HDp0SHrw4EEpADRv3lxTts25c+cKmjRpIspkMmzdutU0efJk5QMPPOCvVqvFMWPGWN56663ScNu0aVMxKSnJNHPmTOVHH33k16BBA3HlypXFgwYN4gwwERERkY9xOQC3bNnSvnv3bll0dHS5tPvVV1/J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v34d169fBwCEhobeUUAvq85mgB3MZjPUarX2yJEjhe3ateO6XyIiIqIqDB06FDExMRW+die3FL6TcPpXAwYMwIABVe+17Irg4GAEB1e937I7uPSrgp+fHxo1aiTW1MLmBQsW+HXs2NFfq9VqQ0NDNUOGDFGdPn26XE1FRUWYPHmyMjg4WKPRaLSPPPKIKisrq9xai4sXLwpxcXEqtVqtDQ0N1cyYMUPh+I3IITU1Vdq+fXt/hUKhbdq0qWbVqlXefRNrIiIi8gparRb33HNPhY+aDLHkPJfnyufMmVPy2muvKa5du3bHb757925ZfHy8ef/+/YXbt283WSwWDBgwQF1QUFDaZvr06crvvvtOtnHjxqK0tLTCrKwsYfjw4SrH61arFYMHD1abzWZhz549hatXry5au3atfO7cuaUX6507d04YOnSoumfPntYjR44UTp06tWTy5MnK5ORk3rmOiIiIyMe4vAb4vvvu8z9//rzEYrEgMjLSrlary71+7Nixau/YnJOTI+j1ek1aWpqpV69eNoPBgLCwMO3atWuLnnjiCSsAZGRkSFq3bu2/d+9eU2xsrG3r1q3SYcOGqS9fvlwQEREhAsCyZcvkc+fOVebm5uYrFAq89NJLiu+//16WkZFRWtvIkSNVBoNB+PHHHytcmV1cXIySkj83tMjLy0NkZCTXABMREdWiu3ENMNWsOl8DDABDhw61VN2qeoxGIwAgJCREBICDBw9KLRYL+vfvX7rmolWrVvZGjRqJ+/fvl8bGxtr2798va926td0RfgFg4MCB1qlTp+LkyZOSTp062X/++Wdpnz59yq3b6N+/v3XWrFmVfrISExMVb731ll+NnyQRERERuZXLAXjBggXm2ijEZrNh+vTpym7dutkcF9hlZ2cLfn5+CAoKKtc2LCxMzM7OFoCbs8ZhYWHl7kCn1+tFx/G3a5OXlweTyYS/zmIDwLx580pefvnl0ilgxwxwzZwtEREREbnLHd8JrqbEx8crMzIypHv27Kn9m147QalU8k8vRERERHchly+Cs1qteOedd/w6derkHx4ergkODtaWfVSniPj4eGVycrIsLS2tMDIysnSmVq/Xi2azGTdu3CjXPjc3V3DM8oaHh4u5ubnldoVwzPxW1SYgIKDC2V8iIiIib9GzZ08IggBBEHDs2DF3l3OLNWvWlNZXG3etqw6X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9e7du6g231+pVKLsWmMiIiIiujt47AxwaGioKJPJcO+999rKPt+yZUv777//LgA3Z3LNZjNu3LhR7tjc3FzBMcsbHh4u5ubmlpvpdcz8OtoQERERke/w2ACsUCjQsWNH25kzZ8rVePbsWUlkZKQIAJ07d7bJ5XL8+OOPpTPZp0+flvz+++9C9+7dbQDQvXt366lTpyRllzts375dFhAQgDZt2tjr6nyIiIiIyDO4dQlEfn4+ygbc8+fPSw4fPiwJCQkRo6KixFmzZpmfeuop1YMPPmjr06ePNTk5WZacnCxLTU01AYBOp8PYsWMts2bNUgYHBxcFBASI06ZNU8bExNhiY2NtABAXF2dr2bKlffTo0apFixYVZ2dnCwkJCYpJkyaZucSBiIiIyPe4dRu01NRUad++fdV/fX706NGWtWvXFgPAxx9/LF+0aJHfH3/8IWnWrJl9/vz5JcOHDy/d9aGoqAgzZsxQfvXVV/KSkhL07dvXumLFiuL69euXLm+4cOGCMHnyZOWePXtkarVaHDNmjGXRokUlcrnc6Vp5JzgiIiIiz8ZbIdcwBmAiIiIiz+b1+wATEREREdUGBmAiIiIi8ikMwERERETkUxiAiYiIiMinMAATERERkU9hACYiIiIin8IATEREREQ+hQGYiIiIiHwKAzARERER+RQGYCIiIiLyKQzARERERORTGICJiIiIyKcwABMRERGRT2EAJiIiIiKfwgBMRERERD6FAZiIiIiIfAoDMBERERH5FAZgIiIiIvIpDMBERERE5FMYgImIiIjIpzAAExEREZFPYQAmIiIiIp/CAExEREREPoUBmIiIiIh8CgMwEREREfkUBmAiIiIi8ikMwERERETkUxiAiYiIiMinuDUA79ixQzpo0CBVRESERhAE7ebNm2WVtZ0wYYJSEATt4sWL/co+f+3aNYwaNUoVEBCg1el02rFjxyrz8/PLHXvs2DFJbGysWqlUahs2bKhZuHBhuT6IiIiIyHe4NQAXFhaiXbt29qVLlxbfrt2mTZtkP//8szQiIkL862tPPvmkOiMjQ7Jt2zbTli1bTHv37pWOHz9e5XjdaDRiwIAB6sjISPvBgwcL33333eLExETF8uXL5bVxTkRERETk2Sqdca0LDz/8sO3hhx+23a7N77//LkyfPl25bds208MPP6wu+9qpU6ckP/74ozQ9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LytEdcxms2H69OnKbt262dq1a8c/wXqR48ePS2JjY/2Li4uh0WiwadOmIv4Z3XusW7dOdvToUemhQ4c8dgaRKte1a1frv/71L1vLli3tV65cEd58803FQw895P9///d/BQEBAe4uDwADMBFRpeLj45UZGRnSPXv28H/CXqZly5b2I0eOFBgMBuHf//63/LnnnlPu3LnTxBDs+S5duiTMmDFD+cMPP5hUKpW7y6FqePjhh0tn7du3b49u3bqZoqKitF9++aXcU5YhMQB7kNDQUFEqlSInJ6fcnwlyc3OFv84KE1Htio+PVyYnJ8t27dpVGBkZyc+fl1EoFGjevLkIQOzSpUvJoUOHpEuWLPFbtWoVL071cIcOHZJevXpV6NSpU+muATabDXv37pWuWLHCr7i4OF8mY3zxJkFBQbjnnnvsv/32m8f8NdtjCqGb/8G+//77bampqaWfbJvNhh07dsi6du3KNVBEdcButyM+Pl65ZcsWWWpqqqlp06YMv3cBURRRUsLrp7xBv379rMePHy88cuRI6aNDhw72UaNGWY4cOVLI8Ot98vPzceHCBUlERITH/PeUP0UeZsaMGebnn39e1alTJ1tMTIztgw8+8DOZTMK4ceM84k8GVLX8/HycOXOm9JfL8+fPSw4fPiwJCQkRo6KiPObDTxWLj49Xbty4Uf7111+btFqteOXKFQEAdDqdqFar3V0eOeHll19WDBo0yNq4cWN7fn6+8MUXX8h3794tTU5OZgL2AgEBAfjrmnt/f38xJCRE5Fp87zBjxgzFkCFDrFFRUfY//vhDkpCQoJBIJOLTTz/tMVmGAdjDPPXUU9bc3Nzi+fPnK3JycoR27drZvvvuO5Mn/dZEt3fgwAFp3759S5PSK6+8ogCgGD16tGXt2rX886uH+/jjj+UA0KdPn3Jp95NPPikeP368x/zHmyp39epVYezYsars7GwhICBAbNOmjT05OdkUFxfHv6QR1YHLly9Lnn76adX169eFevXqid27d7f99NNPhZ60nJP7ABMRERGRT+EaYCIiIiLyKQzARERERORTGICJiIiIyKcwABMRERGRT2EAJiIiIiKfwgBMRERERD6FAZiIiIiIfAoDMBERERH5FAZgIiIvMWbMGOWQIUNUdf2+q1atkguCoBUEQTt16lTF7do2btxYs3jxYr+yXzuOvXHjRu0XS0TkBN4KmYjIAwiCoL3d63PnzjUvXbq0WBTdcyfRgIAAnD59ukCj0bhUwIEDBwp3794tffzxx+s8uBMRVYYBmIjIA/zxxx8Fjn//8ssv5W+++abi9OnTpc9ptVpRq71tRq5VgiCgfv36Lqfv8PBwMTg42D2pnYioElwCQUTkAerXry86HoGBgaIjcDoeWq32liUQDz30kHrKlCnKqVOnKoKCgrRhYWGaFStWyAsKCvDMM88otVqttmnTppqtW7dKy77XiRMnJP3791drNBptWFiY5qmnnlJevXpVcLXm7OxsYdCgQSqVSqWNiorSfP7555xUISKvwABMROTFvvjiC3lISIiYnp5eOGXKFPPUqVOVI0aMUHXr1s126NChwr59+1qfffZZVWFhIQDgxo0b6NOnj7p9+/a2AwcOFCYnJ5tycnIkI0eOdHmJwrPPPqu8fPmyJCUlxfTVV1+ZVqxY4VedIE1EVNcYgImIvFjbtm1t8+fPN7do0cI+b948s1KpRL169cT4+HhLixYt7AkJCSXXr18Xjh07JgWADz/80O++++6zL1q0qKRVq1b2Tp062VevXl20a9cu6S+//OL0/xN++eUXyQ8//CD7+OOPi2JjY21dunSx/+tf/youKiqqvZMlIqoh/HMVEZEXa9u2rd3x7zKZDMHBwWKbNm1Kn9Pr9SIA5ObmCgBw4sQJ6e7du6UajeaWBcW//fab0LJlS6feNyMjQyKTydC5c+fS92rVqpVdp9NV/2SIiOoIAzARkReTy+XlLjATBAFyubz0a4nk5qSu3X4zpxYUFAiDBg2yLlq0qPivfVXnIjciIm/EAExE5EPuv/9+2zfffCOLjo4WywZlV9177712q9WKgwcPSrp27WoHgNOnT0sMBkNNlUpEVGu4BpiIyIdMnTrVfOPGDeGJJ55QpaenS86ePSskJydLn3nmGaXVanW6n3vvvdfer18/2+TJk1X79++XHjhwQDJ+/HilSsXtfonI8zEAExH5kIYNG4p79+412Ww2DBw40P++++7TzJgxQ6nT6UTHcglnrVmzpigiIsLeu3dv9WOPPaaeMGGCJTQ0lMsoiMjjCaIo5rm7CCIi8lyrVq2Sz5o1S2kwGPKrc3xqaqq0b9++6uvXr+cHBQXVdHlERC7jDDAREVXJaDRCo9FoX3rpJYUrx917773+Dz/8sLq26iIiqg7OABMR0W3l5eUhOztbAICgoCC4sszhwoULgsViAQA0bdpUlEqlVRxBRFT7GICJiIiIyKdwCQQRERER+RQGYCIiIiLyKQzARERERORTGICJiIiIyKcwABMRERGRT2EAJiIiIiKfwgBMRERERD6FAZiIiIiIfMr/B7EmmpyMM1FGAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# You'll see the mass flows stay constant through the simulation period, \n",
"# but still it means the system was simulated dynamically.\n",
"fig, ax = MS2.scope.plot_time_series(('S_S', 'S_NH', 'S_O'))"
]
},
{
"cell_type": "markdown",
"id": "22788b98",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Many commonly used unit operations, such as [Pump](https://qsdsan.readthedocs.io/en/latest/api/sanunits/pumping.html#qsdsan.sanunits.Pump), [Mixer](https://qsdsan.readthedocs.io/en/latest/api/sanunits/abstract.html#mixer), [Splitter](https://qsdsan.readthedocs.io/en/latest/api/sanunits/abstract.html#splitter), and [HydraulicDelay](https://qsdsan.readthedocs.io/en/latest/api/sanunits/pumping.html#hydraulicdelay), have implemented the fundamental methods to be used in a dynamic system. You can always refer to the source codes of these units to learn more about how they work."
]
},
{
"cell_type": "markdown",
"id": "1f5d8d3f",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "a04a8ab5",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 2.4. Making an inactive CompleteMixTank (`_compile_ODE`)"
]
},
{
"cell_type": "markdown",
"id": "21dca6ff",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"As you can see above, it's not very impressive to dynamically simulate a system without any ODEs. So let's make a simple inactive complete mix tank. Assume the reactor has a fixed liquid volume $V$, and thus the effluent volumetric flow rate changes instantly with influents. The mass balance of this type of reactor can be described as:\n",
"$$Q = \\sum_{i \\in ins} Q_i \\tag{9}$$\n",
"$$\\therefore \\dot{Q} = \\sum_{i \\in ins} \\dot{Q_i} \\tag{10}$$\n",
"$$\\frac{d(VC)}{dt} = \\sum_{i \\in ins} Q_iC_i - QC$$\n",
"$$\\therefore \\dot{C} = \\frac{1}{V}(\\sum_{i \\in ins} Q_iC_i - QC) \\tag{11}$$\n",
"Equations (10) and (11) are the governing ODEs of this unit."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "c4706ed2",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"class CompleteMixTank(qs.SanUnit):\n",
" \n",
" _N_outs = 1\n",
" _ins_size_is_fixed = False\n",
" \n",
" def __init__(self, ID='', ins=None, outs=(), thermo=None, \n",
" init_with='WasteStream', V=10, **kwargs):\n",
" qs.SanUnit.__init__(self, ID, ins, outs, thermo, init_with, **kwargs)\n",
" self.V = V\n",
" \n",
" def _run(self):\n",
" out, = self.outs\n",
" out.mix_from(self.ins)\n",
" \n",
" def set_init_conc(self,**concentrations):\n",
" cmps = self.thermo.chemicals\n",
" C = np.zeros(len(cmps))\n",
" idx = cmps.indices(list(concentrations.keys()))\n",
" C[idx] = list(concentrations.values())\n",
" self._init_concs = C\n",
" \n",
" def _init_state(self):\n",
" out, = self.outs\n",
" self._state = np.empty(len(cmps)+1)\n",
" self._state[:-1] = self._init_concs # first n element be the component concentrations of the mixed stream\n",
" self._state[-1] = out.F_vol*24 # last element be the total volumetric flow\n",
" self._dstate = self._state*0.\n",
" \n",
" def _update_state(self):\n",
" out, = self.outs\n",
" out.state = self._state\n",
" \n",
" def _update_dstate(self):\n",
" out, = self.outs\n",
" out.dstate = self._dstate\n",
" \n",
" @property\n",
" def ODE(self):\n",
" if self._ODE is None:\n",
" self._compile_ODE()\n",
" return self._ODE \n",
" \n",
" def _compile_ODE(self):\n",
" _dstate = self._dstate\n",
" _update_dstate = self._update_dstate\n",
" V = self.V\n",
" def dy_dt(t, y_ins, y, dy_ins):\n",
" Q_ins = y_ins[:,-1]\n",
" C_ins = y_ins[:,:-1]\n",
" dQ_ins = dy_ins[:,-1]\n",
" Q = sum(Q_ins) # equation (9)\n",
" C = y[:-1]\n",
" _dstate[-1] = sum(dQ_ins) # dQ, equation (10)\n",
" _dstate[:-1] = (Q_ins @ C_ins - Q*C)/V # dC, equation (11)\n",
" _update_dstate()\n",
" self._ODE = dy_dt"
]
},
{
"cell_type": "markdown",
"id": "472f1577",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
">**Note**: \n",
">1. All `SanUnit._ODE` must take exactly these four postional arguments: `t`, `y_ins`, and `dy_ins` are the same as the ones in `SanUnit._AE`. `y` is a **1d** `numpy.array`, because it is equal to the `_state` array of the unit.\n",
">\n",
">2. Unlike `_AE`, all `SanUnit._ODE` updates only the `_dstate` array of the `SanUnit`, and only calls `_update_dstate` afterwards."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "493239c1",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# Let's see if it works\n",
"CMT = CompleteMixTank(ins=(inf1.copy(), inf2.copy()), V=50,\n",
" isdynamic=True)\n",
"dyn_sys3 = qs.System(path=(CMT,))\n",
"dyn_sys3.set_dynamic_tracker(CMT)\n",
"\n",
"# To make it more interesting, we'll set the initial condition to be \n",
"# something not the steady state.\n",
"CMT.set_init_conc(S_S=500, S_NH=700, S_O=290)\n",
"dyn_sys3.simulate(t_span=(0,5))"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "c3df8f02",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(,\n",
" )"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"CMT.scope.plot_time_series(('S_NH', 'S_S', 'S_O'))"
]
},
{
"cell_type": "markdown",
"id": "3970aeaa",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Many commonly used unit operations described by ODEs have been implemented in QSDsan, such as [CSTR](https://qsdsan.readthedocs.io/en/latest/api/sanunits/suspended_growth_bioreactors.html#cstr), [BatchExperiment](https://qsdsan.readthedocs.io/en/latest/api/sanunits/suspended_growth_bioreactors.html#batchexperiment), and [FlatBottomCircularClarifier](https://qsdsan.readthedocs.io/en/latest/api/sanunits/clarifiers.html)."
]
},
{
"cell_type": "markdown",
"id": "9d9a485a",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "b085b491",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## 3. Other convenient features \n",
"### 3.1. `ExogenousDynamicVariable`\n",
"The [ExogenousDynamicVariable](https://qsdsan.readthedocs.io/en/latest/api/utils/dynamics.html#exogenousdynamicvariable) class is created to enable incorporation of exogenous dynamic variables in unit simulations. By \"dynamic\", it means the variable value changes over time. By \"exogenous\", it means the variable isn't explicitly dependent on any unit operation or stream. \"Ambient temperature\" or \"sunlight irradiance\" is a good example. They are environmental conditions that are often beyond control but have an effect on the operation or performance of the system."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "6e8b6a32",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# Check out the documentation\n",
"from qsdsan.utils import ExogenousDynamicVariable as EDV\n",
"# EDV?"
]
},
{
"cell_type": "markdown",
"id": "d0365c64",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"There are generally two ways to create an `ExogenousDynamicVariable`.\n",
"\n",
"1. __Define the variable as a function of time.__ Let's say we want to create a variable to represent the changing reaction temperature. Assume the temperature value \\[K\\] can be expressed as $T = 298.15 + 5\\cdot \\sin(t)$, indicating that the temperatue fluctuacts around $25^{\\circ}C$ by $\\pm 5^{\\circ}C$. Then simply,\n",
"```python\n",
"T = EDV('T', function=lambda t: 298.15+5*np.sin(t))\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "e2885b32",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"2. __Provide time-series data to describe the dynamics of the variable.__ For demonstration purpose, we'll just make up the data. In practice, this is convenient if you have real data.\n",
"```python\n",
"t_arr = np.linspace(0, 5)\n",
"y_arr = 298.15+5*np.sin(t_arr)\n",
"T = EDV('T', t=t_arr, y=y_arr)\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "a89fa738",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"For convenience, `ExogenousDynamicVariable` also has a `classmethod` that enables batch creation of multiple variables at once. We just need to provide a file of the time-series data, including a column `t` for time points and additional columns of the variable values. See the [documentation](https://qsdsan.readthedocs.io/en/latest/api/utils/dynamics.html#qsdsan.utils.ExogenousDynamicVariable.batch_init) of `ExogenousDynamicVariable.batch_init` for detailed usage."
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "b6401d1c",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"# EDV.batch_init?"
]
},
{
"cell_type": "markdown",
"id": "8a5bd5b7",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Once created, these `ExogenousDynamicVariable` objects can be incorporated into any `SanUnit` upon its initialization or through the `SanUnit.exo_dynamic_vars` property setter. "
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "2639a8b7",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"All impact indicators have been removed from the registry.\n",
"All impact items have been removed from the registry.\n"
]
},
{
"data": {
"text/plain": [
"(,)"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Let's see an example\n",
"from exposan.metab import create_system\n",
"sys_mt = create_system()\n",
"uf_mt = sys_mt.flowsheet.unit\n",
"uf_mt.R1.exo_dynamic_vars"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "a7e11837",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"[295.15]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# The evaluation of these variables during unit simulation is done through \n",
"# the `eval_exo_dynamic_vars` method\n",
"uf_mt.R1.eval_exo_dynamic_vars(t=0.1)"
]
},
{
"cell_type": "markdown",
"id": "0d1b7290",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
},
{
"cell_type": "markdown",
"id": "d8205f55",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### 3.2. `DynamicInfluent`\n",
"The [DynamicInfluent](https://qsdsan.readthedocs.io/en/latest/api/sanunits/DynamicInfluent.html) is a `SanUnit` subclass for generating dynamic influent streams from user-defined time-series data. The use of this class is, to some extent, similar to an `ExogenousDynamicVariable`."
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "3ea577e7",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [],
"source": [
"from qsdsan.sanunits import DynamicInfluent as DI\n",
"# DI?"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "7c2c9521",
"metadata": {
"scrolled": false,
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(,\n",
" )"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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vaB169blktGePXsalUoltm7dak2wT58+LUtJSRH69OnT+JbX85QJERERUaUkrbjOmDFDvX79euWPP/5YoNVqzVevXhUAwMvLy+zm5gYvLy9MmTJFP3v2bLW3t3ehh4eH+dlnn1X36tXLWNFEgUaBp0yIiIiIKiTpOCxBECpc8b948WLdtGnT9IC4AcHMmTPV3377rbKoqAiDBw82LFq0SBcUFGRTq0B2dja8vLwcfxwWERERURNl6zgsh5rjWh+YuBIRERE5Nqec40pEREREVBkmrkRERETkFJi4EhEREZFTYOJKRERERE6BiSsREREROQUmrkRERETkFJi4EhEREZFTkHTnrIZgNov7FOTkNOpxtUREREROy5KnWfK2yjT6xDU3NxcAEBwcLHEkRERERFSV3NxceHl5Vfr9Rr9zlsFgQGpqKjQaDWSy+u+MyMnJQUhIiDY5OTmXO3U5J/4MnR9/hs6NPz/nx5+h82von6HJZEJeXh4CAwOhUFReV230FVeFQiFJtdXDwwNVbVlGjo8/Q+fHn6Fz48/P+fFn6Pwa8mfYrFmzao/h4iwiIiIicgpMXImIiIjIKTBxrWMuLi547bXXil1cXKQOhWqIP0Pnx5+hc+PPz/nxZ+j8HPVn2OgXZxERERFR48CKKxERERE5BSauREREROQUmLgSERERkVNg4kpEREREToGJax1buHChMjQ0VKNWq7U9e/Z0i4uL4/+xE3j77bdV3bt3d9dqtVpfX1/NAw884Hr69Gn+7JzYO++8oxIEQfvMM8841pJYqlJKSorw6KOPqr29vTWurq7ajh07uh84cIB/i07CYDDg1VdfdQkLC9O4urpqW7VqpXnjjTdUJpNJ6tCoAjt37pTfe++9roGBgRpBELQ//PBDuY2pTCYT5syZ4xIQEKBxdXXVDhw40O3s2bOS/j3yyaAOff3114qXXnpJPXfu3KLDhw/nd+7c2XTvvfe6p6WlCVLHRlXbvXu3YsaMGcWxsbH5v//+e4Fer8fQoUPd8vLypA6NamD//v2yJUuWqKKiovhq6UQyMzPRr18/d6VSid9++63g5MmTeQsWLNB5e3ubpY6NbDNv3jzVV199pfzkk090p06dynvvvfd0H374ocvHH3+skjo2ul1+fj46d+5s+vTTT3UVff+9995Tff7556rPP/9cFxcXl+/u7m4eNmyY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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"qs.set_thermo(bsm1.cmps)\n",
"DI1 = DI(outs=('dynamic_stream',))\n",
"sys_di = qs.System(path=(DI1,))\n",
"sys_di.set_dynamic_tracker(DI1)\n",
"sys_di.simulate(t_span=(0, 10))\n",
"DI1.scope.plot_time_series(('S_NH', 'S_S'))"
]
},
{
"cell_type": "markdown",
"id": "786d6034",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"[Back to top](#top)"
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 5
}