{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Perfect model $k-\\varepsilon$ calibration on Kato-Phillips case\n", "In this notebook, we will demonstrate how get started with _Tunax_ to run a forward model and do a perfect model calibration. Our approach will use the $k-\\varepsilon$ closure and will be based on the idealized Kato-Phillips [1] case. This case is characterized by the absence of heat flux and the presence of uniform zonal wind forcing. In a _perfect-model_ framework, the “observations” used for calibration are outputs of a forward model run, generated using a specific set of $k-\\varepsilon$ parameters. The goal is for _Tunax_ to successfully retrieve these original parameters through the calibration process." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import jax.numpy as jnp\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.pyplot import Figure, Axes\n", "from typing import List, Tuple, TypeAlias\n", "subplot_1D_type: TypeAlias = Tuple[Figure, List[Axes]]\n", "subplot_2D_type: TypeAlias = Tuple[Figure, List[List[Axes]]]\n", "plt.rc('text', usetex=True)\n", "plt.rcParams.update({\n", " 'text.usetex': True,\n", " 'figure.figsize': (8, 5),\n", " 'axes.titlesize': 18,\n", " 'figure.titlesize': 18,\n", " 'axes.labelsize': 14,\n", " 'xtick.labelsize': 12,\n", " 'ytick.labelsize': 12,\n", " 'legend.fontsize': 12,\n", " 'lines.linewidth': 2,\n", " 'lines.markersize': 6\n", "})\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Forward model\n", "In this part we will run the single column model that goes with _Tunax_, with the $k-\\varepsilon$ closure with some initial parameters and on the Kato-Phillips case to create our database of \"observations\". To make a model, _Tunax_ needs a geometry, a initial state, a physical case and some time parameters.\n", "\n", "### Geometry\n", "First we have to define the geometry of the water column for our model with the class `Grid`. We use a simple linear geometry with the class method `linear` to create a regular grid with 100 points on a depth of 50 meters. This object contains in part the vector of the depths of the centers of the cells `zr` and the vector of the vector of the interfaces `zw`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Grid(nz=50, hbot=f32[], zr=f32[50], zw=f32[51], hz=f32[50])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax import Grid\n", "grid = Grid.linear(50, 50)\n", "grid" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initial state\n", "The initial state for the Kato-Phillips idealized case is defind by zero velocities, a fully stratified temperature and a constant salinity. The class `State` represent these 4 variables state of the water column. To built our initial state we follow these steps\n", "1. we initialize a `State` object defined on our `grid`, every variable is set to 0\n", "2. we reinitialize the temparature and the salinity to our specific case with `init_t` and `init_s` (note that we use the default slope of the stratification for the temperature)\n", "We are obliged to create a new instance of the `State` object everytime that we want to modify an attribute as long as JAX doesn't allow in place modification. It will be the case for all _Tunax_ usage." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "State(\n", " grid=Grid(nz=50, hbot=f32[], zr=f32[50], zw=f32[51], hz=f32[50]),\n", " u=f32[50],\n", " v=f32[50],\n", " t=f32[50],\n", " s=f32[50]\n", ")" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax import State\n", "init_state = State.zeros(grid)\n", "init_state = init_state.init_t(hmxl=0., t_sfc=16.)\n", "init_state = init_state.init_s(hmxl=100)\n", "init_state" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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v1+GYVS9dmaui/+BmX72s5/phz/8oSTpyiuv1F133eVyIgAAAEht1MzMdepYMplUsVh0pvP5vHPPGWAhtm0rkUg407t27dKFF17oYiIAAACUeb6ZMU1TmUxG2WxWpVJJiUSi4p4z8XhclmUpn88rn89rdHSUe8ygZj/+8Y/1t3/7t5KkD33oQ7rttttcTgQAAICylrpmZin8fr/i8bji8fic80x/rpHX5KC9nTlzRlu2bHGmBwcHtWqV5zcZAACAtuH5IzNAs3z3u9/VP/zDP0iSPv7xj+tzn/ucy4kAAAAwHc0MUMWJEye0c+dOZzqdTsvn87mYCAAAADPRzABVfOtb39LLL78sSbrhhht0/fXXuxsIAAAAs9DMADMcO3ZM+/fvlyT5fD6lUimXEwEAAKAamhlghkwm4wz1/fnPf17XXnuty4kAAABQDc0MMM2rr76qr3/965Kk8847T3v37nU5EQAAAOZCMwNMc++99+qdd96RJN1xxx16//vf724gAAAAzIlmBvj/fvGLX+jAgQOSpEsuuUTbtm1zOREAAADmQzMD/H/bt2/XmTNnJEn33HOPLrvsMpcTAQAAYD40M4Ck0dFRjYyMSJLe+9736stf/rLLiQAAALAQmhl0PNu2lUgknOmdO3fq4osvdjERAAAAakEzg473xBNP6Kc//akk6QMf+IAGBgZcTgQAAIBa0Mygo509e1Zbtmxxpvft26fVq1e7mAgAAAC1oplBR/ve976n5557TpLU39+vSCTibiAAAADUjGYGHevUqVPavn27Mz00NKQVK9gkAAAAvII9N3SsbDarw4cPS5JCoZCCwaDLiQAAALAYNDPoSMePH9fevXud6aGhIRfTAAAAYCloZtCR7r//fr3xxhuSpD/6oz9SIBBwOREAAAAWi2YGHef111/XfffdJ0latWpVxREaAAAAeAfNDDrOvn379Oabb0qSYrGYPvCBD7icCAAAAEtBM4OOYpqmHn74YUnSRRddpB07dricCAAAAEtFM4OOsmPHDp0+fVqS9Gd/9md673vf63IiAAAALBXNDDrGs88+q8cee0yS9J73vEd/9md/5nIiAAAA1INmBh0jmUw6/79jxw6tWbPGxTQAAACoF80MOsJTTz2lxx9/XJL0/ve/X7FYzOVEAAAAqBfNDNqebdvasmWLM7137151dXW5mAgAAACN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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "zr = grid.zr\n", "\n", "sp: subplot_1D_type = plt.subplots(1, 4, sharey=True, figsize=(8, 4))\n", "fig, [ax_t, ax_s, ax_u, ax_v] = sp\n", "fig.tight_layout(rect=[0, 0.0, 1, 0.94])\n", "fig.subplots_adjust(wspace=0.1)\n", "\n", "ax_t.plot(init_state.t, zr, 'k', label='initial state')\n", "ax_s.plot(init_state.s, zr, 'k')\n", "ax_u.plot(init_state.u, zr, 'k')\n", "ax_v.plot(init_state.v, zr, 'k')\n", "\n", "ax_t.set_xlabel(r'$T [{}^\\circ\\mathrm C]$')\n", "ax_s.set_xlabel(r'$S \\ [\\mathrm{psu}]$')\n", "ax_u.set_xlabel(r'$u \\left[\\mathrm m \\cdot \\mathrm s^{-1}\\right]$')\n", "ax_v.set_xlabel(r'$v \\left[\\mathrm m \\cdot \\mathrm s^{-1}\\right]$')\n", "ax_t.set_ylabel(r'$z [\\mathrm m]$')\n", "ax_t.legend()\n", "fig.suptitle('Initial state of Kato-Phillips case')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Physical case of Kato-Phillips\n", "Here we will initialize the physical case of our Kato-Phillips experiments, which as we said correspond to no heat flux and a constant zonal wind of $0.01 \\text m \\cdot \\text s ^{-1}$. The class `Case` contains all the physical parameters (forcings and physical constants) for a run of the model. Calling the constructor of this class create an instance with default values in it, they need to be modified to add the forcings." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Case(\n", " rho0=1024.0,\n", " grav=9.81,\n", " cp=3985.0,\n", " alpha=0.0002,\n", " beta=0.0008,\n", " t_rho_ref=0.0,\n", " s_rho_ref=35.0,\n", " vkarmn=0.384,\n", " fcor=0.0,\n", " ustr_sfc=0.0001,\n", " ustr_btm=0.0,\n", " vstr_sfc=0.0,\n", " vstr_btm=0.0,\n", " tflx_sfc=0.0,\n", " tflx_btm=0.0,\n", " sflx_sfc=0.0,\n", " sflx_btm=0.0,\n", " rflx_sfc_max=0.0\n", ")" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax import Case\n", "import equinox as eqx\n", "kp_case = Case()\n", "kp_case = kp_case.set_u_wind(0.01)\n", "kp_case" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Initialization of the model\n", "Now that we have a initial condition, a grid and a physical case, we can defined the forward model instance with the class `SingleColumnModel`. For that we need to add the lentght of our model `time_frame`, the duration of one time-step `dt` the time between 2 outputs `out_dt`, and last but not least, the name of the closure that we will use, here it's `'k-epsilon'`. Here we do a simulation of $30 \\text h$." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "SingleColumnModel(\n", " nt=3600,\n", " dt=30.0,\n", " n_out=10,\n", " init_state=State(\n", " grid=Grid(nz=50, hbot=f32[], zr=f32[50], zw=f32[51], hz=f32[50]),\n", " u=f32[50],\n", " v=f32[50],\n", " t=f32[50],\n", " s=f32[50]\n", " ),\n", " case=Case(\n", " rho0=1024.0,\n", " grav=9.81,\n", " cp=3985.0,\n", " alpha=0.0002,\n", " beta=0.0008,\n", " t_rho_ref=0.0,\n", " s_rho_ref=35.0,\n", " vkarmn=0.384,\n", " fcor=0.0,\n", " ustr_sfc=0.0001,\n", " ustr_btm=0.0,\n", " vstr_sfc=0.0,\n", " vstr_btm=0.0,\n", " tflx_sfc=0.0,\n", " tflx_btm=0.0,\n", " sflx_sfc=0.0,\n", " sflx_btm=0.0,\n", " rflx_sfc_max=0.0\n", " ),\n", " closure=Closure(\n", " name='k-epsilon',\n", " parameters_class=,\n", " state_class=,\n", " step_fun=\n", " )\n", ")" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax import SingleColumnModel\n", "time_frame = 30.\n", "dt = 30.\n", "out_dt = 300.\n", "model = SingleColumnModel(time_frame, dt, out_dt, init_state, kp_case, 'k-epsilon')\n", "model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Closure parameters\n", "The $k-\\varepsilon$ closure is included in the _Tunax_ sources. One can find it in `src/closures/k_epsilon.py`. Here we initialize the parameters of $k-\\varepsilon$ with their default values, by calling the constructor of `KepsParameters` class which contains all these parameters." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "KepsParameters(\n", " c1=5.0,\n", " c2=0.8,\n", " c3=1.968,\n", " c4=1.136,\n", " c5=0.0,\n", " c6=0.4,\n", " cb1=5.95,\n", " cb2=0.6,\n", " cb3=1.0,\n", " cb4=0.0,\n", " cb5=0.3333,\n", " cbb=0.72,\n", " c_mu0=0.5477,\n", " sig_k=1.0,\n", " sig_eps=1.3,\n", " c_eps1=1.44,\n", " c_eps2=1.92,\n", " c_eps3m=-0.4,\n", " c_eps3p=1.0,\n", " chk_grav=1400.0,\n", " galp=0.53,\n", " z0s_min=0.01,\n", " z0b_min=0.01,\n", " z0b=1e-14,\n", " akt_min=1e-05,\n", " akv_min=0.0001,\n", " tke_min=1e-06,\n", " eps_min=1e-12,\n", " c_mu_min=0.1,\n", " c_mu_prim_min=0.1,\n", " dir_sfc=False,\n", " dir_btm=True,\n", " gls_p=3,\n", " gls_m=1.5,\n", " gls_n=-1,\n", " sf_d0=19913.90625,\n", " sf_d1=5087.41065,\n", " sf_d2=571.8541632000001,\n", " sf_d3=103.99979766988804,\n", " sf_d4=172.80647999999997,\n", " sf_d5=-0.6715392000000003,\n", " sf_n0=2124.1500000265514,\n", " sf_n1=345.3003360057121,\n", " sf_n2=-2.40000000003,\n", " sf_nb0=2231.25,\n", " sf_nb1=90.0,\n", " sf_nb2=17.66630399938841,\n", " lim_am0=42300123.961466245,\n", " lim_am1=17682701.851643827,\n", " lim_am2=2123751.491340626,\n", " lim_am3=59670.13560796435,\n", " lim_am4=1214704.020776464,\n", " lim_am5=418372.60492247937,\n", " lim_am6=35911.165079938415\n", ")" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax.closures import KepsParameters\n", "keps_default_params = KepsParameters()\n", "keps_default_params" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run the model\n", "Now we can run our model with these default values of $k-\\varepsilon$ parameters. The run don't modify the `model` instance (as long as we use JAX which don't allow in place modification) but returns a object of the class `Trajectory`. This class is simply the set of the timeseries of the velocities and the tracers. It's like a _pandas_ dataframe but defined inside _Tunax_." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Trajectory(\n", " grid=Grid(nz=50, hbot=f32[], zr=f32[50], zw=f32[51], hz=f32[50]),\n", " time=f32[360],\n", " t=f32[360,50],\n", " s=f32[360,50],\n", " u=f32[360,50],\n", " v=f32[360,50]\n", ")" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traj_obs = model.compute_trajectory_with(keps_default_params)\n", "traj_obs" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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mD59OgCpVUYLi2babDbY7XYIggCr1Rpv9YjFYmhtbcX06dNzGpeU7eckk1yOd9l+hpSu16X8TJYVVSeGpjGNts5MPos0pSM/Rl5Eaqy52kVRTFnsyWq1in6/X/T7/aLVah2xwOBoz51JrtvP9rUQRWn+eHkBPPOni5hFo1HR5XKlnb8+l3hzXWcml7iL+ZqHQqGURQHlupDutchUX3KJMZttyXHZbLb4e2Wz2VLm5c8l7my0t7fHn09emDDTWg1KrDMz1qKU8rpImRY6VOp1zmW/xyKvM5PrgptKHdeUXGfGZrOJXV1dKa9NujUzlKqH6ep78mJ6opj9e59LTGN9zrKRzXGnvb19RDzRaDS+MGAh63dkS16vI90ChEDmhWsL/R5Vaj/cbnfabcnvodvt1sximaKYWANHPubJx5d0a01la6zPyVjvVbbHu2w/Q/nU67G+n5X4TBqJSRQLHMVERERURmKxWPysaLFneyIiosJwzAwREREREekSkxkiIiIiItIlJjNERERERKRLTGaIiIiIiEiXOAEAERERERHpEltmiIiIiIhIl5jMEBERERGRLjGZISIiIiIiXWIyQ0REREREusRkhoiIiIiIdInJDBERERER6RKTGSIiIiIi0iUmM0REREREpEtMZoiIiIiISJeYzBARERERkS4xmSEiIiIiIl1iMkNERERERLrEZIaIiIiIiHSpUu0A9GBoaAjvvfcepkyZApPJpHY4RCOIooidO3di1qxZGDcuv3MUrOekB6zrZASs52QUStR1JjNZeO+99zB79my1wyAa09atW3HIIYfk9VjWc9IT1nUyAtZzMopC6jqTmSxMmTIFgPRCT506VeVoiEbq7e3F7Nmz43U1H6znpAes62QErOdkFErUdSYzWZCbZ6dOncoDAmlaIV0JWM9JT1jXyQhYz8koCqnrnACAiIiIiIh0ickMERERERHpEpMZIiIiIiLSJcOMmfH5fDCbzQAAQRDgdrvVDYiIiIiIiApiiGTG5/MBAFwuFwAgHA6jsbERfr9fzbCIiIiIysbAwAD27dundhikAVVVVaisrCzJGkeGSGZaWlqwefPm+GWbzQa73c5khoiIiKhAoijif//7Hz7++GO1QyENqaysxMEHH4zp06cXNakp+2QmFotBEIR4F7Nk4XAYNput9EERERERlQk5kTn44IMxefLk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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "zr = grid.zr\n", "\n", "sp: subplot_1D_type = plt.subplots(1, 4, sharey=True, figsize=(8, 4))\n", "fig, [ax_t, ax_s, ax_u, ax_v] = sp\n", "fig.tight_layout(rect=[0, 0.0, 1, 0.94])\n", "fig.subplots_adjust(wspace=0.1)\n", "\n", "ax_t.plot(traj_obs.t[0, :], zr, 'k', linewidth=1)\n", "ax_t.plot(traj_obs.t[-1, :], zr, 'r')\n", "ax_s.plot(traj_obs.s[0, :], zr, 'k', linewidth=1)\n", "ax_s.plot(traj_obs.s[-1, :], zr, 'r')\n", "ax_u.plot(traj_obs.u[0, :], zr, 'k', linewidth=1)\n", "ax_u.plot(traj_obs.u[-1, :], zr, 'r')\n", "ax_v.plot(traj_obs.v[0, :], zr, 'k', linewidth=1, label='initial state')\n", "ax_v.plot(traj_obs.v[-1, :], zr, 'r', label='final state')\n", "\n", "ax_t.set_xlabel(r'$T [{}^\\circ\\mathrm C]$')\n", "ax_s.set_xlabel(r'$S [\\mathrm{psu}]$', labelpad=15)\n", "ax_u.set_xlabel(r'$u \\left[\\mathrm m \\cdot \\mathrm s^{-1}\\right]$')\n", "ax_v.set_xlabel(r'$v \\left[\\mathrm m \\cdot \\mathrm s^{-1}\\right]$')\n", "ax_t.set_ylabel(r'$z [\\mathrm m]$')\n", "ax_v.legend(framealpha=1.)\n", "fig.suptitle(r'Initial and final states of Kato-Phillips case run with $k-\\varepsilon$ closure')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we can notice the Stokes drift effect on the zonal velocity $u$ from the wind forcing. We notice that there is no effect on $v$ because we don't consider rotation and Coriolis effect (possible to change it by changing the latitude in `Case`). Then we notice that the Stokes drift has an effect on the temperature a create a mixed layer with almost constant temperature." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Perfect model calibration\n", "Here we will show how to use the calibration part of _Tunax_ for a problem of a perfect model calibration : we will try to find back the parameters of $k-\\varepsilon$ that we just used for the forward model. To configure a experience of calibration, _Tunax_ needs a database, a configuration on the parameters of the closure to calibrate, a loss function and some parameters for the optimizer algorithm.\n", "\n", "### Database\n", "In _Tunax_, a `Database` is a list of _obervations_, and an _observation_ (`Obs` class) is the joint of a `Trajetory` object (time-series of the evolution of the state) and a `Case` object that represent a physical situation. These _obervations_ are the basis on what our calibration algorithm is going to make the model and the closure fit on. Typically these observations are extracted from measurments or Large Eddy Simulations (LES), but here, as we are working in a perfect model framework to be more simple, the _observation_ will be created from the output of the model that we just ran." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Database(\n", " observations=[\n", " Obs(\n", " trajectory=Trajectory(\n", " grid=Grid(nz=50, hbot=f32[], zr=f32[50], zw=f32[51], hz=f32[50]),\n", " time=f32[360],\n", " t=f32[360,50],\n", " s=f32[360,50],\n", " u=f32[360,50],\n", " v=f32[360,50]\n", " ),\n", " case=Case(\n", " rho0=1024.0,\n", " grav=9.81,\n", " cp=3985.0,\n", " alpha=0.0002,\n", " beta=0.0008,\n", " t_rho_ref=0.0,\n", " s_rho_ref=35.0,\n", " vkarmn=0.384,\n", " fcor=0.0,\n", " ustr_sfc=0.0001,\n", " ustr_btm=0.0,\n", " vstr_sfc=0.0,\n", " vstr_btm=0.0,\n", " tflx_sfc=0.0,\n", " tflx_btm=0.0,\n", " sflx_sfc=0.0,\n", " sflx_btm=0.0,\n", " rflx_sfc_max=0.0\n", " )\n", " )\n", " ]\n", ")" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax import Obs, Database\n", "obs = Obs(traj_obs, kp_case)\n", "database = Database([obs])\n", "database\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Configurations of parameters to calibrate\n", "To define what parameters of our closure we are going to calibrate, we use the class `FittableParameter` which describes for one parameter if we fit it or not and the initial value in this case. The class `FittableParametersSet` represents the set of all the parameters of the closure that we want to calibrate. Here we calibrate only the parameter $c_1$ of $k-\\varepsilon$, the initial value during the calibration is 15. The other parameters are set to the default ones. The default value of $c_1$ used previously in the perfect model is 5, so we expect the value of 15 decrease to 5 during the calibration." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FittableParametersSet(\n", " coef_fit_dict={'c1': FittableParameter(do_fit=True, val=15.0)},\n", " closure=Closure(\n", " name='k-epsilon',\n", " parameters_class=,\n", " state_class=,\n", " step_fun=\n", " )\n", ")" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tunax import FittableParameter, FittableParametersSet\n", "c1_par = FittableParameter(True, 15.)\n", "coef_fit_params = FittableParametersSet({'c1': c1_par}, 'k-epsilon')\n", "coef_fit_params" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loss function\n", "Then we have to define the loss function used in the calibration. This loss function must have the signature `Callable[[List[Trajectory], Database], float]` and the output should be positive. Here we take the squared $L_2$ norm of the difference of the temperature between the obervations and the model at every hour and every depth. This loss function will be wrapped to be a function of the parameters to calibrate. To be more specific, let's note $\\theta$ the set of parameters of the closure that we want to calibrate and $U_i$ the vectors of the state at each iteration of the model. Then we can write $\\mathcal M_\\theta$ the operator of the model that passes from one step to another one\n", "$U_{i+1} = \\mathcal M_\\theta (U_i)$. The perfect model that we ran previously with the parameters $\\theta_p$ can be written\n", "$$U_{\\text{obs}} = \\mathcal M_{\\theta_p}^N (U_0)$$\n", "where $N$ is the number of iterations. Now we can write the loss function that we define of a set of the $k-\\varepsilon$ parameters $\\theta$\n", "$$\\mathcal L(\\theta) = \\sum_{i \\in H} \\int_h^0 \\left( T\\left(U_{\\text{obs}}^i\\right) - T\\left(\\mathcal M_\\theta^i(U_0)\\right) \\right) ^2 \\, \\text d z$$\n", "where $T$ is only the projection that keeps the temperature part of a state $U$, $h=-50$ m is the depth of our column and $H$ is the set of index $i$ so that the time $t_i$ is a multiple of one hour." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from tunax import Trajectory\n", "from typing import List\n", "def loss(trajectories: List[Trajectory], database: Database):\n", " t_obs = database.observations[0].trajectory.t\n", " t_scm = trajectories[0].t\n", " return jnp.sum((t_scm[::10]-t_obs[::10])**2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here `trajectories` represent the different run of the model with the configuration of every case in the database (here we just have one). We can visualize there the location of the observations space with the vertical red lines." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxUAAAIwCAYAAADwC0Y7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABk00lEQVR4nO3dfWwjeZ7f9w8pdavnqZfqs+PN+ca3w87Zd84D9tg9RpAECbJD7cFBEgO3Uk/iIE7sXIu7MfJHNjfkyoYzMzDstrR7yB+BsyvOnRM7iJOWuAc4QWLcibMHBAkSoLuZRYLcQ+7E3vPEm/V5WqpRP0l8qvxBVqlIVrEepaJK7xcgUCJZX/7IIkX++Kvf75MzTdMUAAAAAESUT7sBAAAAAC42OhUAAAAAYqFTAQAAACAWOhUAAAAAYqFTAQAAACAWOhUAAAAAYqFTAQAAACAWOhUAAAAAYqFTgTPVbre1vLwc6Qc4K+12W7lcTmtra2k3JVW1Wk03b95ULpfTzZs3027OmLT3kfW4NJtNz+sYhmFfr16vn2Pr4rl165ZyudzUz/LyslZWVjzvS1L7xKtO2vscQDyLaTcA2Xbjxg3dvn3b/rtQKEgavhlbb9arq6v2eUCWNJtNraysqFQq6dGjR2k3Z8za2poajYZWV1e1urqqVquVdpMunHfeeUftdlvValXr6+tpNye0arU61pl89OiRms2mKpWKtre39fHHH9v/s6NI6vk/z68jAKfoVOBMFQoF7e3tTZ1vGIY9GrG7u3vezQIutWazqUajoc3NTVWr1bSbcyGtrKyo1WppdXVVm5ubaTcnknfffVelUmnq/Eqlonq9rrt37/L/GUBgdCoA4IyUy2UdHh6m3YwpVkffGiVEOJVKRc1mU6VSKZMfure3t+2OZ6vVcu14BJHU839eX0cAxjGnAriAKpWKcrmc2u122k259Pz2RaFQiHUIyVmw2nrjxo1U23ERn8dbW1uq1+sqFov6+OOPE6k5j4+D1eF8+PBhrDpJPf/n8XUEYBydCgAAAmg0GqrVavZhnVn+kGvNtdjf30+5JQAuCjoVAAD4aLVa9qpEH3/8sYrFYsotOlvWIXIrKysptwTARUGnAnOvXq/bSyDeunVLW1tbY5e3223dvHlTtVpN7XZba2trWl5e1s2bN1WpVOxVpba2tuzlH2/duqVGozF1W4Zh6NatW6rVajIMQ5VKxd5mZWXF8/AEvzZaS0/WarWxtlQqFfs61gony8vLdp3JpR2twySs86225XK5sftjLc3o9oFgZWVl6lCLIO0Lcj/DmFWrVqspl8t51rfuw+SKRY1Gw34MJ/d/EGEetyD7wm+JzKDtnXyOW21ZXl4OtfxmvV4fa5/1XJusEaRdQZ8zboI+j53333pd+93nJJ+jztt/5513JEnFYjHQHIMkX89S/Od2GK1WS41GQ4VCQeVy2fU6QfbJWS5BG+V/tXMJZb/lcwFEYAIpODw8NCWZfk/B1dVVU5JZKpXMarVqlkolU5K5vr5uX2d/f9+UZBaLRbNQKJirq6vm+vq6WSgUTElmuVw2V1dXzWKxaK6vr5vlctm+7UePHo3dnlXL2rZUKpmrq6v234VCwTw8PIzcxtXVVfv6hULB3N7enroPq6urZrVaNYvFoinJ3NzctOvs7e2Zm5ub9mXVatXc3Nw0Nzc3zf39/anbK5fLU4+pdf/dru/VvqD3Myi/WlZ7SqXS1LbWc6dYLI6dv76+bp+/vr4+dj/29vbGruu8v27nB3ncguwLr9uJ2t5Zz/Eg9vf3XdvsvL2g7QrynPES5rELc5+TfI5abdvd3bV/t36cr0k3Sb+ewzxXgrAeF7f/f5ubm/b9jPs89HudxTk/7P9q6/Vr7Q/rPWHy/wiA6OhUIBVBOhXb29v2G62T9QZrvWFYby6Sxj7QOG9j8sOpVWOytvONyvmmfnh4OPbGH6eNhULB3N3dnbq/bh8OrDdIr46Ms41u9yNsp8KrfUHvZxBBa1kffCbvo7W988PZ7u6u64dHa79NfsBIolNhmbUvvG4nanutD7nO6wfpnE/yanOYdgV5Tkdtx2T9IPc5yeeoaZ52KqzX4Pr6urm3t2fftl+9pF7PYZ8rQVivLa+fYrE41eEwzfD75Lw6FX7/q632uXXuvf6HAgiPTgVSEeTDUKFQMAuFwtT51puJ9aHS+eYyyfogOPntqfXhYPKNetaHykePHk3dTtg2Tr4Z+7E+EE1+QDnLToVb+4LezyCC1rK+MZ38kOjW2fCqaZqnH8qcddLuVERtr9s2Xp2vWbzaHKZdUZ/TQdrhrB/0Pif5HDVNc2x0wvl8sNrs9gHVT5TXc9jnShDOERxrZGRzc9Pc3t527UxYwu6T8+hUBPlfbb3fBB3RAxANORWYS4Zh2McL53I51+s8ePBg7O9ZEyedqd7S6VKaBwcHgdtUKpVUKBTsdkVpY6FQCJwN0G637fadV9q4W/ui3E8vYWqtr6+rVqvZIW3W9ta6+db+brfbMgzD89hv63wrwT1tcdrr9hxPalnYqO0K85yOIsh9TvI5OqlUKo0FeH700UdqNBpqNBpqNpuej9ekKK/ns35ur62tBW6/01k+D5Mw+b+6UCioVCqp2WxqeXlZd+7c0a1bt3Tnzp1Mr+AFnDc6FZhL1iS7crnsOfFz8s1g1ptaUm8cxWJRrVbLfrMP28bJzo1Tu93W9va2Go1GauvVu7Uvyr7wEqaWNUm02WzaHQlrUqVzW6umV6fSqjcvGQBx2nuWH9yitmvWczoJQe5zks/RSZNp2YVCQZubm6rVaqpUKp5Lribxeg67T27dujW1eIF1H5JMTp+nDoQX5/9qK1Pk7t27ajQa9v+RWq2m3d3dSB0rANPoVGAuOd9E5yn11/km7/y2MWgbvT7YNBoNra2tqVgsqlKpqFwuq1gsqlarnevqJG7tS3JfhK1lJRffv39fpVJJ9+/flyTduXNnqqbXBzdrP83LEqDz2t6o7ZqHb3rP+/9FtVrV9va22u22tra2pj6wJ/V6DrtPNjY2XK97GT80T3bICoWCdnd3ZRiGms2m9vb2VK/XtbKyItM002wqkBl0KjCXCoWCisWims2mDMM49w8ubodFtVotGYYx9iaVVButQK3zCJoK+61pkvczbC3rA2Kj0dDGxoZarZbK5fLYdtb+8Kq5s7MjKf436kmNdJxXe7PSriDS+H+xvb2tlZUV1Wo1ra+vj91mUq/nsPtknr6AOS9B/lc7WYfrra6u2ksihzmMDYA3ciowt7a3tyXJdY3zZrPpup59Uqxhc4thGHY7rHX5k2yjdVuTx1p7HSvt9g2mV77BZL0oH46T3Bdha62urqrdbrse+jRZ8+7du2Pnt9tte39NHsYyS5jHLei+OMv2JuW82xXlsfNy3v8vyuWy/SHe7fGSknk9z+tzZV4E+V9tGIbrCNGTJ0/Op5HAJcFIBeZWuVxWtVq1Q7Wsb5IePnyoVqularV6pt/MWRP5Dg4O7G8Ky+Wy1tfXE2/j+vq66vW63nrrLfvQnp2dHc8PWDdv3pR0OtHS+gbf+gBSLBZVKBTUbrftUKj9/X3t7OyMTWAMKsl9EbZWpVJRo9HQvXv3JLl/G7u+vq69vT01Gg0tLy+rXC7bhzlI0u7ubqBvr6M8bn77wk1S7U3aebcrymPnJY3/F16TtpN8Pc/rc2We+P2vfvjwoSqVimq1mm7fvq1isah2u61ms6liscgoBZCUtJefwuUUZn39vb09s1wu20srlsvlsSUsoywDai05OGtJ0UePHtm3WywWZy7bGLSNs5ahdAZalUolc3t729ze3jZLpZLrmvfWfbMCsdwyBwqjdfGd17FCwYIs/Rj2foYRppZ1P/zat7u7O7bPVldXQy31atUI+rhZvPaF3+Matr1hnuOz+C1JHKRdQZ8zfvweu7D3OannqLWkrF+4nLX08WSI2lm8noM8V4Kwln8NG5wXJ1TTrU5SS8oG+V+9t7c3Fo5nPc5hMz4AeMuZJjOUAEu73ba/5XQuIwkAmB/8rwbmD3MqAAAAAMRCpwIAAABALHQqAAAAAMRCpwIAAABALEzUBgAAABALIxUAAAAAYqFTAQAAACAWOhUAPK2srCiXy4VK4G6328rlclpbWzu7hiGwWq2mmzdvKpfL2cnNcVyU/XtR2gkAWUGnAgBGms2mcrmcbt26lXZTErG2tqatrS2VSiVVq1UVi8W0m4QUZe35DWC+LKbdAABA8prNphqNhjY3N1WtVtNuDgAg4+hUAMBIuVzW4eFh2s1IxN7eniRpdXU15ZZgXmTp+Q1g/nD4E4BLpVKpKJfLqd1uu15eKBRUKBTOt1FnwLp/N27cCL2t32OE+XVZnt8A5g+dCgAAAACx0KkAAAAAEAudClwazWZTa2trWl5etpfXrNVqY8ulNptNrays2Ne5deuW6vW6az3nUp3Ly8taWVlxvW69XtetW7fseltbW5HbH6Rt7Xbbvm/tdtteFnZ5eXnm8pqVSkXLy8u6efOm1tbW1Gq1IrXTT6PRsO/HzZs3ValUZi5Zm9R+sw4Lsc639l0ul1Oj0ZDkvwxp0LZH3Qd+gtx+vV4fu0/WYxLkdoM8RpP309o3fvctqddB2OeP1c5KpaKbN2/a7XQ7PCip17RhGPb+l6StrS27rbVaTblczvP+W88V5+svC8/voI8tgAvMBC6Bzc1NU5JZKBTMcrlsrq6umqVSyZRkbm5umqZpmvv7+6Yks1gsmqurq2a1WjWLxeLYdSzlctmUZF9vdXXVLBaLZrFYHLve6uqqKckslUpmtVq1b3N9fT1U+8O0zXndQqFgrq6umuvr62ahUDAlmeVyeaq+1a5CoWCur6+bq6ur9vUlmYeHh6Hburq6OnXZ+vq63Tbrdqzb3dvbm7p+kvttb2/P3NzctC+rVqvm5uamubm5ae7v7yfa9ij7wE/Q29/f33e9n26P76Qwj1GY+5bU6yDKPigUCvbzZ3193b5vxWJx7Hmd5Gva+TxytnF7e9u+rFQqTd2/w8NDu22TtS7y8zvoYwvgYqNTgczb29uz38QnPxw/evTIfsO1rjvJeqO0trXe+N3emJ21tre37Td3J+vNO8wH9aBts9pgdQZ2d3ft8612T36XYH1wn3x89vf3Xev78frgsru76/pB8vDw0P5w4rydpPebxfqw5Nw+6baH3Qd+wt6+3/30E+QxCnrfknodRN0HhUJh6n5YH3KtNiX9mnY+RoVCYexxMs3TTvxku6z6k18UXOTnd9DHFsDFR6cCmef1Bh6U9YHBemO33iT9vm22viGdZL0hT35wSKJtzvput+32WFgfTtweH+v6SXQqvB4P0zz9UOP8sJb0frNE+dAVtu1h94GfsLdvmmffqQjz/EridRB1H7i9Tq3XsFUv6de014dui9WRn9xnYZ4bF+X5HfSxBXDxMacCmddqtVQsFiOlCbfbbR0cHEiSfWxxoVBQqVRSs9nU8vKyKpWK6vX62LHHhmHYP9ZxzdbPzZs3JUkPHjyIdb/c2ubkdn/dlhc1DEOFQuFM05bb7bYMw9Dt27ddLy+Xy5KGx45bkt5vUUVpuyXoPjir2z9LQe5bUq+DpB8D6/l+1q/pQqHgmhOyvr4uSWPzVAzDUKvVUqlU8n3OX6Tnd5DHFkA2EH6HTLMmYwb9YNput7W9va1GozFzjf6PP/5Yd+/eVaPRsCcb1mo17e7uqlwu29uWy2VVKhXXGmHXig/aNkuQD69WHa8PFEnx2w/WY2Fd76z2WxRh2+4UJSMiyds/S2GeX3FfB2fxGDi3KRaLZ/Ka9npdFQoFlctlNZtNuyNh3aZb7Yv+/PZ7bAFkA50KZJr1RhnkjbjRaGhtbU3FYlGVSkXlclnFYlG1Wm1qlZJCoaDd3V0ZhqFms6m9vT3V63WtrKzINM2xN+gkEo3DtC2MMI9PHH63Y31raV3vrPbbebQ9aWnffhxJvQ7O4jGY/DB9Fq/pWR2mSqWiZrOp+/fvq1Qq6f79+5KkO3fujF0vC89vv8cWQDbQqUDmlUoltVot+xtJL7VaTYVCQfv7+4FrW4c3rK6u2kssNptN+42/2WzahxfFEaVtQRUKBfsQiLNK2rUed6/HY2dnR9L4N7tnud/CiNL2LN1+HNZhRnFfB3EeA+swISfr+e72vDqv17TVMWk0GtrY2FCr1VK5XJ6qm6Xn96zHFsDFx5wKZN7m5qYkaW1tbeo43larZX/bZ31TN3mdyWOJDcNw/YbwyZMnY39vb2/btzup2Wy6rvvvJWjbotjY2JA03c5Wq5VoVoX1eNy9e3fs/Ha7ba/nb+0r5+9J7TeL2zezfsd3h2170s779qM8Rl6Seh1EfQysjqnFMAy7LdZ2abympWHHot1u+x76ZLVx8vbczNvzO+hjCyADUp4oDpyLarVqr1ZirR1vredurYRiraZSGGU1ONddl2MVF2upU+fa99YSlZPrrlu3a639vr6+bq+OMrnyyyxB22aas1e9sdo5uTKMc+1+Z05FkkvKmqY5tvb96uqq3Z7J+2BJcr9ZrGU7rZrWfU6y7VH2gZ+wj12c1Z+CPEZh7ltSr4Mo+8DrueFsf9Kv6VnPIyfn7Xq9HV/053eYxxbAxUanApfG3t6eWS6Xx8Kwtre3x67jfGMtlUrm9va2ub29bZZKpbGlG/f29sYC4qw3brcP32636/Yh0E/QtkX50Hd4eDjWkVhdXTX39/ftD0xJdSpMc7hEpfV4WIFesz74JrnfJh8Ha78FCQcL0/az6FSEuX3TjNepcLbT6zEKe9+Seh0EfQwODw/NUqlkrq+vm48ePRrbxq0jk+RrOminwjRPl3Sedd2L/vwO89gCuLhypsksKQAAAADRMacCAAAAQCx0KgAAAADEQqcCAAAAQCx0KgAAAADEQqcCAAAAQCx0KgAAAADEsph2Ay6CwWCgH/7wh3rjjTeUy+XSbg4AAECqTNPU06dP9eM//uPK5+fnO+rj42N1Op3E6169elXXrl1LvG6W0KkI4Ic//KHefPPNtJsBAAAwVz755BP9xE/8RNrNkDTsULz1k6/rR3/QT7z25z//eT1+/JiOxQx0KgJ44403JEmfSHr9V/+o9M8sSZIGMtU3B/bvw9OBvV3fNO3zLQOZyv3fJ1r+yoEOv3tD/X/6qvqO/MGBpP7ENv2JeMLB+J9a/M2e3lw90CeNGzr+mStT7e8r5/q7Xc88Pe+V3+zon7rzqX5n5w/r5Z+8OlFn/JsI05yu5az/6m+d6J+98yP9Xzuf14ufWVLfnP4mY+DSHq92vvqbXb39b/0DPfjv/pie/sxSoDoDjyP8XvvNjv7Ff7ut//W/LeroZ9z/QXht23e535/7rRf6V/7svr73d39Kn/3Mq67bSdLA5TEYq628ln/7uVb+7G9r7+/+tA5/+rWJNs3m1ubl33quP/3v/Kb+/n/zJ/XpT7/hs/3skbjCb77Qn/l3/0/9vf/6n9OTn3nd83qTzxUvN37zub7y5/4Pfffv/Kw+danntQ+mrmfm9Yd++0jv/rlHuv93bunTn77u0qZgo4wDM69/4rc/05/99x7o7/7tt/UHP/05z+sGfdv6w7/1TH/u3//f9Xf+q39e/8ilbWM1fZ4jf+S3P9Of//P/m/7Wf/kv6B/NaFvQmn/ktz/T3b/wv+ijv/Uv2fUGLs9xz9qOffRP/o6hr/6F/1nf+Vv/sv6/P1GYum6YupL0+d850l/8D35Df/NX/lX90KWea3s8buOP/s6h/qNf+A3957/8r+of/onlSO2RJNPM68d/51D/8XpT/1m9rB+Oas1sk89z74/+zoH+k/Wmfqle1id//EboNjn/r/zE7x6ouv7r2qp/Wf/vT/nX8nvN/8TvHugb67+mv1H/Obue12Ps18Y/9rtP9Je/+vf1177zp/UPfurHgm03o31/7P95or/ytf9Jf/Xb/5r+wR+frmcGfM1btf7Tr/2P+uDb/3rgtk211bEffvJ3P9WH/+H/oPf/i39Dv/9Tf8hnu9nt/Mnf/VR/9S/+9/orf/PfdK3ltw8na/21v/j39Jf/5p/R7//UH4r0GpCGbe4+76j5lb9tf0aaB51ORz/6g75+/9EXdP2N5EZPjp4O9JO3fqBOp0OnYgY6FQFYhzxdl/T6a3npjQVJww6E9YH/tFNxyq1T0Zep/Gt5XZfUfy2v3hv5+J2KV4f13ng1r0WXF1GoTsWo1uuv5rUwUWvyg6LbPyNn/dcctXJv5D06FR4f3N06Fa/2dX1UdzDaB6d1vDonHp2KUdteezWv3kQt37a53O/XXl0Y1VtQ16OeFKxT8eqo1quvLuhkopbfm7lbm531Xnl99kve783JWevFjFpBOxV+bQtaZ2Dm9eqri6Nai7rmWit4p+KVUa1XPGqFrTleb7rjP1bT5znirLXkUytITbd6UTsV10a1rnm0LewHGL96ru3xuA23WlE+UA3M/FitqwHa5fc8ufbqlVG9K7r6+tWZ1/Vqk13rlVGtV4LV8nvNu9WL2qlYGtVaCti24XbetzVW77XpemE+bDtrXXGpFYRzP4Sp5/c89KsV537G6VRY5vGw8NffyOn1N5JrV5jH+DKjUwEAAIDM6JuDqS9k49aDv/mZWQMAAADgQmKkAgAAAJkx0PTh53HrwR8jFQAAAABiYaQCAAAAmTEYW4szmXrwR6cCAAAAmdE3zbGVNZOoB390KkJ6YXaUGy2llnccPWb1YseXhzWnlocdyLS36pvWsrOnnNd3rlzg1ke2lim0duLAdL988ne7ps+SsKfnuSwFG3Bbabic5eSSlrPyBybrzFoOM+xSsn71ZrUtyjKKds0AS8nOvDzCUrJh25DEknnBl4CdfVthlpINIujSr2EEqRm0fXbNANcPs/Z+0JqWqEvJJl07aD6JU5jXZ9SlZMM6i+ddUqK83uP8D4wi8nKn5/y4R3lunG4br61R76tp5hJZThZwolMBAACAzGCidjqYqA0AAAAgFkYqAAAAkBluh5/HrQd/jFQAAAAAiIWRCgAAAGQGcyrSQacCAAAAmcGSsung8CcAAAAAsTBSEdJLs6/uoGv/bfXKFnJWdsX4+s2TQ2Z901RudJap0/wJr3wKOa4zvJ5b3sTsy6NmVMTJp3DLppDC5VNYddzMWpvba/38qPkUw22j5SoEWb/8rDMqksqn8Hv8guQWJLW++VnkUyRdM8za9UGzJMKsSR8mn0IKl38RJqMi7D6/zBkVUTJ7o7QtSrZB9EyDCO2LkwkUMbfhvLMt4kqjvRcpn2KgaK+nWfXgj5EKAAAAALEwUgEAAIDM6Ce8pGyStbKMTgUAAAAyo29OH0oetx78cfgTAAAAgFgYqQAAAEBmMFE7HYxUAAAAAIiFkQoAAABkxkC5SMs6z6oHf4xUAAAAAIiFkYqQng+kE9eD60z79Moo3e5KTlqYCpQz7etaS545VxVwKz3Z2x54hOPNCskLGlpn9cadvXKvwJswYXXDmtOXeX2TMLuOu1mBXLNC9KKG3vkFgPmFPvlvn5t5+34hYf5hfz6BfoHD4AIGt0UMEJyuEyRQ8AwC6s6gphTscQ77LVmY4LuzCr2TwoVlEXoXcps5D70bbnt+wXdxvkk+z2C/2LcZ836aFyjALo6BOf1ZKW49+KNTAQAAgMzoJ3z4U5K1sozDnwAAAADEwkgFAAAAMoORinQwUgEAAAAgFkYqAAAAkBkDMxdrkQG3evBHpwIAAACZweFP6eDwJwAAAACxMFIBAACAzOgrHzpXZ3Y9BEGnIqTn5qJemFdnX8kRkrIwijVakBWIN9Crg+EwWsfM6WTiOD2vgJVZQ2/50WXO4b7J4/9mbe/2whvI/XjEsIF30jBcywq2mtmOGQF1w1OXbSIGwM0KEPIL1IoTeuff3tnHgcYNvDutEz/4Lsg/7KDHoQYZWg4aNJVkrTA1g9YNE0wnhQu7ClM77DHCYd6gzRDHM5916J0058F3oe/L+YTehX2Mx27vHEPvpHABjkndZtTgu1i3mcr95LAfBEenAgAAAJkR5ouNoPXgjzkVAAAAAGJhpAIAAACZwepP6aBTAQAAgMzom/nQ89dm10usVKZx+BMAAACAWBipAAAAQGYMHKtOJlOPoYogGKkAAAAAEAsjFQAAAMgMJmqng05FSE8H1/S0fy3y9gu5gT43eKkvSPq0f03Pe0u6musrnxsOrS1oYAflBZUbTUbqmXl1XSYmeYVWua3hfBo05/6CnDXxaXKo0XQJ5Qtab1bIz8AjKdNvUtasodC4gXfWfZ0MYQoSGBYkZCqJ0LvhcHD48MGx69ghhn4BgPMZehemnlUz0TaGWOv8LELvwqzbHiWNNuxa7mEOT4gSxnbWoXde/ydn1z+fID5723MKvksjDC5K6F3U24u1D2JmHEQNvYtz24TeIQo6FQAAAMiM5Fd/Yk5FEHQqAAAAkBl+I/NR6sEfE7UBAAAAxMJIBQAAADLDa+5l9Hoc/hQEIxUAAAAAYmGkAgAAAJnBRO100KkAAABAZgyUJ1E7BRz+BAAAACAWRipCejG4qqeD6OF3kqT+8MTovyqj/6oWcqc94LwGuprrjX4fnn8111deg6kyCznrvOFpRws6NoPvUrehwSvmgn2Zdblv8JpXsJ0VpDdjGNJrmTa3CVbOdsQNurOCfQZmbiroyT/Yze/x8Auqm700nTOA0O1+BA46c9Rxb0fQULnkgtWC1zr/wDtnraQC76zHOGiYWNjAu7MIvZPCBd+FqR31m8NBiC8JzztcLtztnGOoXMglNaME3knR2jdw/A8OvW3EpT3jhLmlEXwXdwnTePf34i+f2nd5b49bD/4YqQAAAAAQCyMVAAAAyIx+wkvK9plTEQgjFQAAAABiYaQCAAAAmTEw84nOlRqwpGwgdCoAAACQGRz+lA4OfwIAAAAQCyMVAAAAyIyBkl0GdnpRf7ihUxHSc3NJTwevxKpxxeyHqpXXwM6yuJLraWH09LbO6/WfS5KeDq7paFRvwfESyIcYtrPa1jEXdWxeCbSN13raPTvnYnidoEORnpkWo/N75oJ/dobPPxOrLbOGSMPkUTjrBW2DfTu+98X/cQuypvkwkyNexobFDLjOfOB68j/+NWgmhZR8zkWomiGP452fbIrgr9Gzzqbo2zkyAW8j5H2Ncqy187kSdJ+dVy7FIELbLFE+eEXOzohyWzHyGtLIpnBmIEXaPqX7m8T2AJ0KAAAAZMZA+chhm1714I9OBQAAADIjzKhu0Hrwx6MEAAAAIBZGKgAAAJAZA+VizU9xqwd/jFQAAAAAiIWRCgAAAGQGcyrSwaMEAAAAIBZGKgAAAJAZszKootaDPzoVIb3oL+lp/1qsGtf63URq5Ufhdye94W78x73rOuy+JklayA10JTcMshsLwsud/r7gkhFphd8dm1f0wlyK3DZJWjJ7kqSOeUXH5tXA23mFMdlhembOvk6YF7ozzMgcTboylZsKOQoe0ucInHIEHo2dH6DW5LDqwL6fp8O3QSeJuQ3RugUaBbmPbtuZEWud1hy/rumxbdBQurF9OmqbWxvD1jRHdU1zdihf2CFxM8TkwTC1wwfdOYMbZ28bLbAs+Brx0cLXoge2hQk1CxOOeHo74bdxPt8C306MiaNRH/NIwXxxAujO6fGXxv9/nGe4n3QxA+8GAQNQ05J0++b5vs4Tul4AAAAAYmGkAgAAAJkxSPjwJxK1g+FRAgAAABALIxUAAADIjIHPfLgo9eCPTgUAAAAyo69cpIUWZtWDP7peAAAAAGJhpAIAAACZweFP6aBTAQAAACTAMAzt7Oxod3dXe3t7Y5c1m01tb29rZWVFxWJRe3t7evvtt7W6uupZL8o2aaFTEdKzwTV91n81Vo1XBt3EaknSUn8YMnfYf1X/qHd96vIFmXbonTMQzwrPs0LwFnIDLfSH533Wf1VPeq/b51vyLoF5C6M6k66Owu9emlf1fOAdpGfdvt/ybyfqjk7DhelZnIFPXXPBPu2MfncTdBk5K7yoZy6oawZ7WXkFHlnnD0ZBaWFC0NweQ+s8Z8JomCAft6C04fGq7qF9wWrmpk69jlkN+w1RkGNpQ9eMGUpmzmhPlAA96zTIfgwXThgt6M7td9e2nFPQVpRvFSMF3Sn8YxbnG88oIWnRH/Pw/yvOO+jOuW2cQMRIt5lC0F2c27W2dQa1hn/uXpx5BX0lOw+iH/B6rVZLDx8+lGEYOjg4mLrcMAw1m001Gg0Vi0XVajXfzkGUbdJCpwIAAACIqVQqqVQqqdFoeF7n8ePHKhQKoepG2SYNdCoAAACQGcypSAedCgAAAGRG38yHPrTUr54kHR0djZ2/tLSkpSXvw7vd7Ozs6MaNGzo4OND+/r42NzfPZJs0ZKJTMWtSjCRtbW3Zw0aGYaharZ5zCwEAAHCRvfnmm2N/v//++/rggw8Cb18qlSRJxWJRklSv17W2tqbd3d1Et0nLhe9U+E2K2drakiStr69LGs6ir1Qq2t7ePtd2AgAA4OyZo4VOkqwnSZ988omuXz9dECfsKIXVMbDcuXNHlUpFhmF4zpmIsk1aLvxBYqVSSevr61MPuuXevXt2h0KSyuWy6vX6eTUPAAAAGXD9+vWxn7CdiskJ3FanoN1uJ7pNWi58p2KWdrvt2ZNrNpvn3yAAAACcKWtORZI/cRmGobW1tbHOgGEYkqZHI+Jsk6bMdyrcFAoFe6e4OTk50dHR0dgPAAAA5p+Vw5HkTxhuh+MXCgVVq9WxzkC9Xtfq6urY6IN12H7QbebJhZ9TEYU1g97LvXv39OGHH7pe9nxwVU/712Ld/huDl4nVctZ71r+mz3rBwvQWHCF2dghebqBBd/jC+bT3hv6g98bouuboeoOx32fVkqTF/jAu5kXf+346g/W85Ee32Rks2qfHgyu+283SGQXUdcxFnZjxaknD0Lvhad4O1gvDGVA2Hszn/RIN+k/ONK1gvnBtc1tCzxy109T0cn1hgoasba22mWbOc8m+oHWt65kRlhKc/BbKCgzrm9Phg2GO07W2dZ76feMV9s0rTLid220498HMbUKF6IUPXXO7336PRZRlHgcBwhH92uH/X8vaLlr7oupPhJsF2QdRl8qME4QW53h35+2GqZFG0J29fZxgPzMX+DXqtX3U20V47XZbjUZD9+/fV6vVUq1WG0u/3tjYGOs0PHnyZGzCtZWe7VxQyG+beTJXnQprR/jZ2NiwZ8NHMatDYdX/+te/bv99dHQ0NeMfAAAA86evfKQvXGbVC6JYLKparXquMmqNPHhZX18fmwccZJt5MleditXV1USjx2cdozbrWLQo6w4DAAAAl1Wm51QUi0UVCgXXuRXlcjmFFgEAAOAspT2n4rLKTKfC65CmjY2NsZWeGo3G1NASAAAAgOjm6vCnKPwmxVSrVW1tbdnr/D548IDgOwAAgIwaKB9qcYkg9eDvwncq/CbFSBq7LMk5GwAAAJgv/YCrn4WpB390vQAAAADEcuFHKgAAAABL0pOrmagdDJ2KkF72rup5L95ysy97VxOrlXS9V7odSdKnndf1o5PPTV1+GpRnKj+KgLqS69uXWWF2eZla7A3PN/qv6dNRkF5+IuzOCtObvMx5vmVp0JMkPRtc09NBuNDAhYm4qtcGJ5KSCdKz6kjDEDy3gLkw62X3RiFNXmF1YUOcehrWcAbWhQ3/Cto2N7Nuy7qsPxFIFiWoqjcYtsctsM6LVyiVaQXpuYR0Ba3tWS/gm5PXc2b8MZsI5osSjjWqEeYYZK9DAQbTL9t4bRs91oMQgYZezze/ALIo7YsStOjWHut3vzZGPQQjieC3KB/SJu+PGfD/TpwPcHHuq3XbkQPjIuzTyduOdLsJfODlQzOSQKcCAAAAmRGnw+9VD/7oVAAAACAzJke/k6gHf3S9AAAAAMTCSAUAAAAyY2AmO09k1nwxnGKkAgAAAEAsjFQAAAAgM8KsGBe0HvzxKAEAAACIhZGKkF4OruhZ/2rsGknVSrqes9ZRL1wWhDTMr7B1hr//qPOGPjle1pXcwM6icMu7sOQdNZz5Eku9riTps94rOuy9Nr6NS67FsP7A9fxXzWFOxXPzaqDMC7fcDKdj83h0ekUvBvGyQrrmon16EjFDw7lSxckoT+LEXNCxGe8l3xvV8srj8G3XxLc9VrZEb7Cg7iBY26JkS7jddpB29swFdQfh76c0njMxK1tikt9xwOboctOxnn7QfAn32zs9DZqD4NVGv0yDON/2RVl9xdmGgeM0yLHWs9o6a3nJMLkE07eZi5RF4Wzr+D7wf7yTyGSIsm30TIbT+zT+WgiYTePz3PXcLoHVf+Ie4x830G1g5mSOXu9mhDkHk9ef52yLgcf7QJx68EenAgAAAJnRj9hBn1UP/jj8CQAAAEAsjFQAAAAgM5ionQ4eJQAAAACxMFIBAACAzIizGIBXPfijUwEAAIDM8FoFME49+OPwJwAAAACxMFIBAACAzIib6eFWD/7oVIR03L+iF7144WbH/SuJ1Uq6XpK1XvSGQXxPu6/osPOa63XyjnA6K/QuL/P099zADtR7pduRJB32XtEfdN4Yq+MMp3OrORbKJ+n13jCs7mnvFR12XxsL3Buv6x6e56wtSa/3h/We95f0tO8dpucVxud0PAq8Ox5c0YtB/HBEK1SuO4gepmfp2aFwedfwuzABc8M6wcP0/P6pj9XyCazzC6DrjS6fFVYX5k0mycA6v30QxFgonE9g3fh2fsF9eft08rqRwutG2/RiHh89MPN2YJ0ZYlUYr8MnrPNnBWyFWdc+6aBAq2bocDOX++IXKjl5m2Hrn24b//7G2j7APg3TBrfXfJDtzuLyoPjgjLjoVAAAACAzWFI2HTxKAAAAAGJhpAIAAACZwZyKdNCpAAAAQGbEmRvjVQ/+OPwJAAAAQCyMVAAAACAzOPwpHYxUAAAAAIiFkQoAAABkBiMV6aBTEdKL3hU968YLJHvRu5JYraTrzUsttzC6149fSpI+PX5D//BFYex6+ZypvBy/j0Lm3AL1JOn17rDWYfdV/ePO62PheHmfID2LM3DvNEzvmo560+F3XuF6di3H5S8GS/bpM5cgvfyMQD43Y2F6/Xj7NMlakuzwtq65oJNBvH9HzlC4EzNeyF9/1K6+uWCH6p1eFv7NxS+wLswb1qywuihrqTsD66KG6dm1HGF13Rjrultt6kcIrHO2w+28oBM4Z+1n5z7wul6o9jrq9XyCG4PWChJW51dDmnjcAj5Pve77eCCc9+MT/HZyY6f2+QlNqk3ig2TcD7cDMydz9PZgmuHb5PXYhNmfzu2cZr+r4TKiUwEAAIDMYKQiHXQqAAAAkBl0KtLBRG0AAAAAsTBSAQAAgMwwlWxgHfNHgmGkAgAAAEAsjFQAAAAgM5hTkQ46FQAAAMgMOhXp4PAnAAAAALEwUhHScW/RDnWLUyOpWknXm9da0mmY3vPuFR11lmZe1y1sbiz8zgrSO3lNP3p5fSwcbyxQzyM877TmMIju9d6w3lHvmj7tvG5v43bbzkA9izP87nrvxfB+9q7qqOsWpOcffue8PSuk7kX/qp71px+3hRBT0I77V+zTlyHD79za3RkFfXUG8cPvnG076cer1ekv2Kdxa0lSZ3TfOoPFBEL+FuxTK6wuzrdoPUdg3VjoWYTwullhdVEmTboF1kUJH5TcA+ui3Ednrd4gHzusTjp93PpmPtbk0oGZU3/0XWHYcLPh9tOPR9DAusl2zDrf71vkoI+BX6BhmPs/fj8nQyUjPHfHXksJhfFF2KdT24cMgXSt4xE6OE8YqUgHIxUAAAAAYmGkAgAAAJnBSEU6GKkAAAAAEAsjFQAAAMgM08zZ82SSqgd/dCoAAACQGXEmonvVgz8OfwIAAAAQCyMVAAAAyAwmaqeDkQoAAAAAsTBSEdJJf1HHMYPcrDCtJGolXW9eayVd71lnGNz29GRJxvErY5e5hdzlctNBdnmZ9vmfO34uSTo4eVWfHr9mXy8/ESyXd6kz+XuhO6xldF/Rk85rniF6p+dNh8o5r7fcGwbePest6alLmN6s2pO383IwfNxfDq7oWYDwuwWfmi8HV+3T5y7BfK7t8Ajrs4Lgumb8IL0ka0nj4WadBNsWt5YkdUc1uokE8+Xt0+5k+F2EoLneIG+fdl1C5sJ8e+isNSuwLsix03bIn89x20HbNxZINisULsBjGDSsLnDbfALrwhxrPit4Lco3wV6BdXHC6pz3M86306Z5ehr3W+4kAusmuYX8ZQkTtdNBpwIAAACZweFP6eDwJwAAAACxMFIBAACAzODwp3QwUgEAAAAgFkYqAAAAkBlJT0RnpCIYRioAAAAAxMJIBQAAADLD1OmyvknVgz86FSF1+ws66cVcZ76/kFitpOvNa615b9vRyTD/4bPja/rHz1+XNJFtMfqXlMtN50HkcqZ9Xi5n6sdOhrkZn51c05OXr7pmZMz6ffLvH+sO8x+edpdkdMYzOdy2nXXeM0fmxVH3lbH75mVW/sWL3lX79HnPP/diVs2X/Sv26fMAGRpTNR3343iUiXLcX7TrxuGsZ+WtRNUZPXc7/YXYtST3/Iaoa+FbWRLdQTIZGlYexDCTwztbIlCt0cB8X3k7T8MpTI6GM3dkVubF9G24P6790T7o+2RouNac2FfOrBC3+xmopqOdY/c1Yj2r5vj9jFdrWOf0NE49SepbNc34tSSpN3q+9ZSPlS0xMHOnuSgxD+lx7oO4S64OEnqczspAOeUSyvSw6sHf/D4jAAAAAFwIjFQAAAAgM1hSNh2MVAAAAACIhZEKAAAAZMbAzCmX4OhCksvTZhmdCgAAAGSGaSa8+hPLPwXC4U8AAAAAYmGkAgAAAJnBRO10MFIBAAAAIBZGKkI66S7quBPvYTvpLiZWK+l681ori23LeXzxYbwYhd+9fEVPnr82uu7pAZ253GmQnjQMgrPOcwvZ++z4NEzv4PhVl3Z4BOppOqTvx05G4XedqzJGgX+zwu1mhfJJ0jM7/O6KjjrXfLefdbkzSO/ZKPAvaJ1JL0fheceDK3oRIUhvkhUE1xks6jhmmF6StZKuNxZ+l0Awn1XPLxQuSDBVksF8XgFzUSdzxgmYm7zNpALmTuslFzBnHZdumvHD16TT/T7QeK0oQWVjtVy2D9tW65ttv8C6IHWt6wR9zGZdZ3IfBOV23XmevMxIRToYqQAAAAAQCyMVAAAAyAyWlE0HnQoAAABkBkvKpoPDnwAAAADEwkgFAAAAMmM4UpHkRO3ESmUaIxUAAAAAYmGkAgAAAJnBkrLpoFMBAACAzDBHP0nWC8owDO3s7Gh3d1d7e3tjlzWbTW1vb2tlZUXFYlF7e3t6++23tbq6OrPm1taWCoWCXb9arYa8B+eDTkVI/X5evZ53CFPQGknVSrrevNa6TG3r9Ya1Ot0FnQQN5pvxJcrR8TAI7ujlNT15OjtML2//bk6F7EnSs86w1tPONRmjUL3JkLzJbfIut2V53rk6qrekz0KE37nd5vPuFfv0qBMs/M7r/Be9Ya2XvSt61vUPv/ML13sxCpV70b9iB/7Z24Z86zsehcod9xftdgZth5tOf8E+PY4ZWJdkraTr9Uav0V4/b9dNs5ZzicruKFSuO4jftv6obt8MF1bnFRjXGx0l3VP4YD6vWl1zQZ0ZYYZBBQ0NDLIcaJzQQLf6SYUGDsxcogGEA/v5kbfvc1R8ez+t1Wrp4cOHMgxDBwcHU5cbhqFms6lGo6FisaharRaoQyFJ6+vrkoYdk0qlou3t7eTvQEx0KgAAAJAZaR3+VCqVVCqV1Gg0PK/z+PFje9QhiHv37unx48f23+VyWSsrK3PZqWCiNgAAADBn2u22DMNw7YQ0m83zb5APRioAAACQHWc0qeLo6Gjs7KWlJS0tLbls4G1nZ0c3btzQwcGB9vf3tbm56Xnddrvten6hUJBhGKFu9zxkolNhHW+2v78vSVNDQhdlggsAAADm05tvvjn29/vvv68PPvgg8PalUkmSVCwWJUn1el1ra2va3d0N1Q6rUzJvLnynolarjfXyKpWKVlZW7Bn3F2mCCwAAAGJKeE6FRrU++eQTXb9+3T477CiF1Zmw3LlzR5VKxfMQJy/z2KGQLvicCsMw1Gq1xoaAKpWKms2mPWR07949u0MhDSe41Ov1824qAAAAzsEwUTvZH0m6fv362E/YTsXkBG6rI+F1mNNkJ8RiGIbnZWm60J0KSXr48OHYzrAeZMMwLtwEFwAAAGSPYRhaW1sb+8xqfSnu1UEoFosqFAqunY5yuXwm7YzjQncqCoWCDg8P7WPUpNPOQrFYjDzB5eTkREdHR2M/AAAAmH/WkrJJ/oThdnhSoVBQtVod60DU63Wtrq6OjVhYh+1bNjY2xr4IbzQaY0fgzJMLP6di0r1797S9vT3z2DS/CS737t3Thx9+6HpZv5dXrxsznGgUbpZEraTrzWst2hZdr7Ngn3ZOgr3kc27/P3Omnr0YBtQ9e76kz56+MnbdXM60Q/js4LyxmtOBek+Ph/WenyzpsxevjG3r3M6rbc6wt+fdJfv02cn0kLTbffIMvxuF8j3rXNXRybWZ13Vr46TjUUjdce+KnruE6YUJwDvuLdqnk+F3Xma1fVaYXth6J4NF+zSJ8Luk6uVz5litoMFrXqFpSd/P7qg93UH8ULgka0nuoXBBwuTcWKGBSYS4WXUkqZtAoGGUgLlZHzSdwXyxQ+ZG/0kHytt1oxqMvks2lfMMPAy6f+OGIWZRu91Wo9HQ/fv31Wq1VKvVxhKzNzY2xjoNT548GZukbSVuOxcUqlar2trasg+devDgwdzOC56rToW1I/xsbGyMjU5YarWa3n33Xd8enN8El42NDX3961+3/z46Opqa8Q8AAIA5ZObsydWJ1QugWCyqWq16rjJqjVZ4WV9fd/0M69zGL4E7TXPVqVhdXY38YDUaDd28eXNsZ0Sd4BJl3WEAAACkzzm5Oql68JeJsSvrWDOrQ2FN0r5oE1wAAACAi+jCdyparZZarZZKpZLa7bba7bbq9bpu3Lgh6WJNcAEAAEBM5hn8wNdcHf4UlmEYeuedd2QYhmq12thl1vFnF2mCCwAAAHARXehOhbWkrJ+LMsEFAAAA8URZBtavHvxd+MOfAAAAAKTrQo9UAAAAAFOYB3Hu6FSENOjlNejGDJ8ZhZslUSvpevNai7bNR71+Z7h9r7Og3nHIfx+O0WMrLO74xTBs7cXzq3r29NrpZXaIniQ7MM90bK+p854fD0PlXpxc0dHLa143PVFnuqYkPR+F373sXNWz46Wp67r97VbH8qJzxT61gvm8tvcLwnvZu2qfPu+4L309K+xu8rZfjgLvXvau6IVbMJ9PLaexYL7uVd9QQD8no2C57mDB/j0qZyjcy4Ahf361eoO8ujFD16w6SdVLspazXhL7oGcu2KfdBIL5rHpRQ+GcIW9Jt80Zfhc0JM7rEJueHUCYix2k5wz5c9aKEmgYty1nicOf0jG/zwgAAAAAFwIjFQAAAMiOpJeB5VCqQBipAAAAABALIxUAAADIkJzGZ9MlUQ9+GKkAAAAAEAsjFQAAAMgO5lSkgk4FAAAAsoNORSroVITVz8vsxTxqrJ9PrlbS9ea1lle9qC90a/teXmYCWRCJ1rsEbbN2m9lZsE8HJ8HXhnfLgug+H2YPdJ5d1cnTUX6DfT3HEyXnyGlwybtQTjoZZXAcH1/RixdLdlbG1HVd2jNZS5JenFi5F1fsPI2Jq3jWnjz/xcmV01on47W8MiVm5UUcdxftUytPY3xbz02nbvNklFNx0lvUy+54rTCZFVZWR6e3YLftpUvb3Hi119m2426wWl6PZ3fUrk5vUccxMy+sOl71wmZ9dEbZFJ1+/FwJZ71uP37uRXf0PzyJWknWM82c+qNa/X5evQTalmS9wSgPYjDIz8yGCJI10bMzVhZi74PBHOdUIB10KgAAAJAdZm74k2Q9+KKbCQAAACAWRioAAACQGaY5/EmyHvzRqQAAAEB2MFE7FRz+BAAAACAWRioAAACQHUzUTgWdCgAAACAjfu7nfi6ROqZpKpfL6dd+7dcCXZ9OBQAAADIjZ47FCyVS7yIxTVO//uu/nkitL3/5y4GvS6cirG5OuU7MqSjdXHK1kq43r7WSrtfL2ae5RALmEqx3WdsWd59a23fy0ssZoU656Tl3Y3/nTA1eDP819p8vqv90GEZmj35PBOdJjsC1nDmRZjc86b4chZu9uKKT5xPhdy5heVPnOy7vnIxqnSzq+OXV8TZ5bOsWCGdd52QUKnfSuaKXE2F6M2u6XOfYrrWolyfeoXB+gW5We62QuuPuFb3onLbNK5Ru1u107MC6BTvwL0rbJOnYCuXrLeilo5ZfUKCXk1EI2Ul/QcejILyg93FS1w6rW7AD/8JyPgbOsLROzLC0JGsl3jYzb592Ewh1S7JelFqmx+E6/UHOPu3FbFffZFruvFpbW0us1srKSuDr0qkAAABAdlzy1Z/u3r2bWK333nsv8HXpVAAAACA7mKgtSfrmN7+pg4ODsfPu3btn//7d735XuVxOP//zP5/I7QXqVKQ14QMAAABAeOvr61pbW1O73dY3vvGNqcOivvKVr+jx48f65je/qZWVFX3xi1+MdXuBOhVpTfgAAAAAQrnkhz9ZPve5z6lUKs38DP/WW2/pvffe00cffaRisajr169Hvr1As2zSmvABAAAAILxvfetb+kt/6S8Fuu7du3dVr9dj3V6gTkXUCR8/+MEPps4LM+EDAAAACMU8g58LKszIg2nGu6Nnuh7Y5ubmWZYHAAAAxtGpkCTt7++Huv7kpO6wYq3+dHR0pFqtpocPH05dZhiG2u22vv3tb8e5CQAAAAAhhe0kGIYR6/ZidSp+4Rd+QZJ0584dFQqFscsODw9jH5s1j3K9nHLdeEuL5UaBX0nUSrrevNaibfNR73K07TSIL9fJK3c8+j3Ypu5GYXp6sSgdjULhRgFjYysV5k5rmC6heGZOGhyPgvleLqr3fNE9hM9R37Vdjr+7x1dGp4vqPL8ydblXOJ/b5d2TUcBcZ1Enx9Phd67hcC4hb1bNbmfBPj0Zhf55Bcz5hdadjELqTrqLdkhfmO3t60nqjkLlur1FOzwwSpss3e6CfdrpRg9xy+Wkzqhtnd6ifZ+jsML3uqOgv25vQZ0Y9cLUCvq49fp5+9SqHVWStea5bf1R4F1/kLfrRq4Vc/szxZKykqTl5WV973vf05e+9CXf637/+9+PffhTrP8Qb7/99sw5Ermo8aIAAAAAIqvVarpz546+973v6Y033vC83tHRke7evavd3d1Ytxermzk5OjGJSdkAAAA4Tzkz+Z+L6K233tLa2pq+8IUv6Fd+5Vd0dHQ0dvnR0ZF++Zd/WW+99ZbeffddfeELX4h1e7FGKorFor7//e97hmVsbGyMJfcBAAAAOB/ValWFQkF3797V+vq6CoWCbty4oYODA3sOxXe+853IK706xepUvPPOO9rY2NDdu3d1+/btsZELwzDUbDbpVAAAAOD8EH43Zn19XeVyWZubm/r444+1v7+vYrGotbU11Wo1vfXWW4ncTqxOxVe/+lXt7Ozo9u3bevLkiZ48eWJfZhhG7KWpAAAAAMRTLBa1vb19prcRbykHzV6u6hvf+Ebc8gAAAAAiOjo6ChWCF1WsTsXKysrMyzc2NuKUBwAAAELJKdnJ1Rd1LdPHjx+rVqvpT/2pP6VPP/1UuVzuTKclxB6pmNX72d3dtbMsAAAAAJyPra0t7ezs2H9/97vf1a/+6q/q53/+58/k9mKv/lSr1VQoFPT2229PXb69vZ25TkWun7NDtuLUSKpW0vXmtRZtm496l6VtSd/P/CiML9/NKd+x6kWom5Pyz4fhV/nnC1p4uuheJme6ZzU5zrMvfzFaWfzlgvR88fR6VuCeo6ZbnYHz91Ew3+B4Uf0Xi1PXtTf3CumbuH5vFHjX6yyqNxamN+MrSI+Avt4omK93sqDucYTgNWdgoCOUr3NyWss3msmjthWm1+stqNOZ/bbsdxtjQXqdxcBBcuM3cvprZxS21uktBA7T87rN7igsrdvP23VDNGW63hkG80V63Bx6vbx9Gjv8bk5r9XuE3100X/nKV7SxsTGfnYp33nlHhmGoUCi4Tv747LPP4pQHAAAAwmH1J0maSsj+3ve+p9u3b5/Z7cUeqXj48KHn5V/96lfjlAcAAAAQgZWo/eUvf1m/93u/N99zKj766KOZl1cqlTjlAQAAgHAYqZA0TNTe2dnR48ePtba2ps997nNnenuBDoj72te+5nr+z/7sz87czu1yr1oAAAAA4pn8rP3WW29F7lCE+dweaKRif38/UkPOuhYAAADglDMTXlL2go1UpPW5PVCnolQq6ctf/rJyvktb+Lt161bsGgAAAACmpfW5PVCn4m/8jb8RuTEAAADAubnkcyrS+tweO/wOAAAAmBuXvFORllidim9+85uqVCqeidpZlO/l7CCrODWSqpV0vXmtRdsSqteJ2TbXELf5qDevtc60bScetUIMeS++HAZgLb5Y0OKz6bU7xjKfvH4fXS//YhTM92JBC8+s8Dtzuo5LjfHbGb2Dvxy150Veeu4I6vKpNXkAtJmTzOPh9ubxggYvJ976AgTe2WflpMEooG7QWRwG/oXY3u28/ihMr9dZUG9GMJ9fXmIuZ6rfHT5m/W7eDvwLmrPoFvjW7+TtU7teiJqntaX+KJiv311Qzyfkb7jR7E9yvVF4W6+3YIf+jd9m8E+CVpBbv5e3A+JcmxTwfvf6C/ZpL27I3CBvn/b78QLnEq0Vc3ucve9///sqFAr6whe+cC63F+sZ8d577+nu3bv6/ve/P3b+V7/6VX3rW9+KUxoAAAAIzZqoneTPRfSlL31JlUpF3/rWt/Stb31LR0dHZ3p7sbuZy8vLOjg40Pe+9z37vO985zv6vd/7Pf3SL/1S3PIAAAAAQrp9+7Z+7dd+Tb/4i7+oX/zFXzzzI4tidSq+9rWv6fDwUF/60pdkmubYiMXa2pr++l//63HbBwAAAARn5pL/uYCKxeK53l6sTsX9+/f17rvvSpLeeecd7e/v6wc/+IEkaXd3V++8807sBgIAAACBmWfwcwEtLy+f6+3F6lR84xvf0P379+2/v/KVr2hvb08/+MEPdHBwoJ2dndgNBAAAABBOu90+19uL1amoVqv6xje+MXbY0927d7W3t6ebN2/GbRsAAAAQChO1h/b29rSwsKC3335bv/RLvzS1sNKkX/3VX411e7Enav/sz/6svvjFL46dd/fuXd2+fVu//Mu/HLc8AAAAgJBu376t9957T6Zp6r333tOtW7e0sLCgn/u5n3PtZDx48CDW7Z1Z+N1XvvKVsyqdqlxXynfi10iqVtL15rVW0vUubdu6MWv1Tk/j1kq63rzWSrpe4m1zPj+8ci8CFZIWjofbL7zMafFZ7vQCTf9qmZr/6Ph78YUjQ+Oplblw+pWh6bwJr8yL0eX5UR5H/nhBC89n1PLivBtWfsZxXnrhzG4wXa/ve97JqN7JgvRyPN/Db3tnu01J5ihLwuwsaHDikY8QIt5k0F20Twcdn7wFn8fQmVPRn1kr2NfCdoZGN+9T75RXdoUzp8K1VsiXxlheyKhemNwMv1qR2+XM43DJ9phl8vkxiJm/caYIv5MklUqlsXTtZrOpvb09ffzxx3rvvfeUG+3UlZUVlctlNZtN3bt3L/LtkagNAAAAZMxnn3029ne5XFa5XLb/dnYyqtWq3cmIik4FAAAAsiPpeRAXdKTCb6K2s5NhGMZYhyMKMtYBAACQHSwpK2k4R+I3fuM3Al23UCjQqQAAAAAwbmdnR9/+9rf1rW99y86Rm+XHfuzHYt0ehz8BAAAgO5ioLWn88Kbvfve7unHjhq5fv+55/ffeey/W7dGpAAAAADLsPFZlpVMBAACAzEg6sO6iht+dN+ZUAAAAAIiFkYqQ8n0p34tfI6laSdeb11pJ16Nt6ddKut681kq63ly3rXd6mkQw38LJ6eniC+vcnG/gl1uQ3eKL4ZmLz3O6cjQezDd2fcdFbuebOWlhFH63+DKvxeeO7+a8wvR8gvDyx3n7NP8iP72N6/but5UbBenljvPKv/APSvMM/bPqjwINdZyTXs4IOwsS9meH/OWHtfy+/vVom93mUSicOnk79G+4nXfdsUucwYGjIDizuzAV8hdq6f7RbZujkDmzl5c5aqdnq3zqWyFzg96CBpOBdSFjBaZrRf8KftDle2mMo1MBAACA7GCidiroZgIAAACIhZEKAAAAZAYTtdPBSAUAAACAWBipAAAAQLYwunDu6FQAAAAgO5ionQoOfwIAAAAQC50KAAAAZIY1UTvJn6AMw1C9XtfKyorvdYNcp9lsam1tTfV6Xc1mU7VaTY1GI3iDzhGHP4WUSyDUKddLrlbS9ea1VtL1aFv6tZKuN6+1kq5H26LJd05PF47DNmT8z8Xno9Nn0tUjZ4BcznUbMzd9njNMb/H5KJjvRU5Xno3fmGeIniORzXmdhVF43oIjmM814G7yvKkwveEVFkbBfAsnebt24BC9ifPskL+TvP272+3PrOkoawf9udULWMu+7ZPRFU5yyk21bWZp98s7p8F8OpkRGujWlknd3Onpifc+8DJ23x21zM6MxyzAp2iT8LsprVZLDx8+lGEYOjg4mHndRqOhZrPpW9MwDDWbTTUaDRWLRdVqNa2uribV5ETRqQAAAEB2pDSnolQqqVQq+Y4kBOl0OD1+/FiFQiHw9dNCNxMAAAA4Jzs7O7pz507azUgcIxUAAADIjLMKvzs6Oho7f2lpSUtLS6FqNZtNlcvlUNvs7Ozoxo0bOjg40P7+vjY3N0Ntf14ufKfCMAzt7OxIkvb399Vut/XRRx+NDRNtbW3ZfxuGoWq1mkJLAQAAcObO6PCnN998c+zs999/Xx988EGoUoZhqFgsyjCMQNcvlUqSpGKxKEmq1+taW1vT7u5uqNs9Dxe+U1Gr1VSr1ewHu1KpaG1tTXt7e5KGHQpJWl9flzTsIVYqFW1vb6fTYAAAAFw4n3zyia5fv27/HXaUol6v259Hg7I+31ru3LmjSqUiwzDmbp7FhZ9T0W63xybE3Lx5Uw8fPrT/vnfv3tgOLJfLqtfr59pGAAAAnBPzDH4kXb9+fewnTKei1Wrp9u3boe/K5KRvqyPRbrdD1zprF36kwhqRsDx48MA+Vq3dbnv25KIc0wYAAACEdXBwoFarZS8ju7+/L2l4RE2xWHRdJtYwDK2trWl/f98esbAOm5ocwZgHF75T4dRoNGQYhn2cmVcvrlAozDyW7eTkRCcnJ/bfkxNzAAAAMJ/OaqJ2UG7LxZbL5bEvs1utlur1+tg8X+voG+u8QqGgarU61oGo1+taXV2du0OfpIx0KqzJ2laPzu+BtmbQe7l3754+/PBD18vySYQw9ZKrlXS9ea2VdD3aln6tpOvNa62k69G2OavViVdLkhZfjk5fSFeeDn/3DGubCq07/dXMDWtM1nIG7U1uNxbc53L54stRCN7LnB3S5xe85hWEt3DsUsvexj040LXm6PeFE0cw30vvRvk/lrnTWp28HfgXfPtp+VGwXL7jEczn8Sl17HGwrjqqlevk7cC/mXLef1q11A1ay/vTdKDt05JSToXVKbh//75arZZqtZrefvvtqVEI6zrScG7wysqKyuWyms2mtre3xzoaGxsb9vxgSXry5MlcTtKW5qxT4XyQZ9nY2LBnw0vDnpw1b6Jer2t5eVmPHz/23N4vcGRjY0Nf//rX7b+Pjo6mZvwDAAAAlmKxqGq16rvK6OrqquvhTuvr61MTua3RiotgrjoVXg+yF8MwdO/ePW1sbNijE+Vy2Y40d3Y8JrebdSxalHWHAQAAMAdSGqm47OZ47Mpfu93W1tbW2MiDNVeiUCioWCyqUCi4zq1gkjYAAACQjAvdqSiVSlMTWO7fv69SqWR3GjY2NuyZ9tLwEKuwawQDAADgYrAmaif5A39zdfhTFJMTWAzD0Mcff2z/Xa1WtbW1Za/z++DBA4LvAAAAgARd+E5FkAkszsvDzNkAAADABcOcilRc+E4FAAAAYEk7p+KyolMRUr53ukZ5nBpJ1Ypcz+MFMq/rwiddj7alXyvpevNaK+l6tC1btZKutzjKbV08Ps2/CMrtbWHx+fD0yjPp6mejMyeyMWwz8jDkyNBYeCktPpu+fFbNsXZaORUvHfWeu1zRq6bL5W4ZGn7bzDovP6qXP85p4YVbBsfpeZ45GKOrjeVxHEfI43DUyndG9/MkN13LdfsZj0XnQk/LxRmgUwEAAIDs4PCnVNDNBAAAABALIxUAAADIDkYqUkGnAgAAAJmRk8cUkRj14I/DnwAAAADEwkgFAAAAsoPDn1LBSAUAAACAWBipAAAAQGYQfpcOOhUh5XpSvhO/RlK1kq43VitmCFOStZKuR9vSr5V0vXmtlXQ92patWknXS/r9xWpPvistnIRtzPifVvjdlefS1afD36MEzFnbXHl+enrlyOW6AQP1zJy04Azme+7dDr9gPus8K3hw8eXp/Y5ac+H49HTxxfgVAj9+dq2cfbr4IucdmBegbn9GEB8uJzoVAAAAyA7mVKSCTgUAAACyhY7AuWOiNgAAAIBYGKkAAABAZjBROx2MVAAAAACIhZEKAAAAZAcTtVNBpwIAAACZweFP6eDwJwAAAACxMFIRUj6BcKJ8L7laSdeb11pJ16Nt6ddKut681kq6Hm3LVq2k612YtiUQzOcMhbOC8CTNDH/zuvyqI0jv6tH09aZC4twuc5znDL+78mx6u7Evvn2C5hadwXzPpi/3bKPL9RZG7RoG6UULH7RvK2wY4nni8KdUMFIBAAAAIBZGKgAAAJAZzKlIByMVAAAAAGJhpAIAAADZwZyKVNCpAAAAQHbQqUgFhz8BAAAAiIWRCgAAAGQGE7XTwUgFAAAAgFgYqQgp3zW10I3XZc2Ptk+iVtL15rUWbZuPepelbZflftK29GvRtvmol+8Mt184MbV4HL9ti89N+/TqkUs91/C6nOvlVvjdlefS1afeddxC+MbC7XKnoXwLL6VFr8DAIMF6OSlP+B0m0KkAAABAZuRMUzkzuZ5AkrWyjMOfAAAAAMTCSAUAAACyg8OfUsFIBQAAAIBYGKkAAABAZrCkbDoYqQAAAAAQCyMVAAAAyA7mVKSCTgUAAAAyg8Of0kGnIqR8T8p349dIqlbS9ea1VtL1aFv6tZKuN6+1kq5H2+a7VpQPHwu909OFTry2JVkr6XqXqW2L3dPTxYAhcabHk2fxpWmfXnke8AnmEmAnSVefmfbp0pLpeX23sLvJy/odPmljHJ0KAAAAZAeHP6WCidoAAAAAYmGkAgAAAJnBnIp00KkAAABAdnD4Uyo4/AkAAABALIxUAAAAIFM4ZOn8MVIBAAAAIBZGKkLKd00tnMTr/ua7ZmK1kq43r7Vo23zUuyxtuyz3k7alX0uScqN6ua6pfMy1/5OsRdvmo16iz91RWxZOTDv/IhCX3Ited46HAkxz+JNkPfhipAIAAABALIxUAAAAIDNYUjYddCoAAACQHSwpmwoOfwIAAAAQCyMVAAAAyIzcYPiTZD34Y6QCAAAAQCyMVAAAACA7mFORCjoVAAAAyAxWf0oHnYqQFnqmFmIGviz0zMRqJV1vXmvRtvmod1nadlnuJ21LvxZtm496l6VtSdYy5zn8DqmgUwEAAIDsIFE7FUzUBgAAABALIxUAAADIDOZUpIORCgAAAACxMFIBAACA7GBJ2VTQqQAAAEBmcPhTOjj8CQAAAEAsjFQAAAAgO1hSNhV0KkLKdU3lO4PYNZKqlXS9ea1F2+aj3mVp22W5n7Qt/Vq0bT7qXZa2JVkr343/OCFb6FQAAAAgM5hTkQ7mVAAAAACIhZEKAAAAZAdLyqaCTgUAAAAyg8Of0sHhTwAAAABiYaQCAAAA2TEwhz9J1oMvRioAAAAAxMJIBQAAALIjxYnahmFoZ2dHu7u72tvbm3ndlZUV3+tI0tbWlgqFgl2/Wq0Gb9A5olMRUr5nKt+N90zN98zEaiVdb15r0bb5qHdZ2nZZ7idtS78WbZuPepelbWdRax7llPBE7YDXa7VaevjwoQzD0MHBwczrNhoNNZtN35pbW1uSpPX1dUlSs9lUpVLR9vZ2wFadHzoVAAAAQEylUkmlUkmNRmPm9YJ0Oiz37t3T48eP7b/L5bJWVlbmslPBnAoAAABkh2km/5OgnZ0d3blzx/d67XZbhmHYhz45BRnlOG+MVAAAAAA+jo6Oxv5eWlrS0tJSqBrNZlPlcjnQddvttuv5hUJBhmGEut3zkLlOhdukl4sywQUAAADxnFX43Ztvvjl2/vvvv68PPvggVC3DMFQsFmN1Cm7cuBH48KnzlKlOhdukl4s0wQUAAADz6ZNPPtH169ftv8OOUtTrdfvzaBzz2KGQMtSp8Jr0cpEmuAAAACCmM1pS9vr162OdijBarZZu374daptiseh6vjXaMW8y06mwJr1UKhX7PL8JLkGPaQMAAMDFkDNN5RKcXJ1ErYODA7VaLfuImv39fUnDI2qKxaJWV1entikWiyoUCmq321OdiHn8DJuJToVXByHqBJeTkxOdnJzYf09OzAEAAADcuB05Uy6Xxz6rtlot1ev1sXm+7XZbjUZj7LyNjQ01m037sKlGo5HIIVRnIROdirCTXvwmuNy7d08ffvih62X5bl/5Tj9KM8dqRK3lNvHIqpHv9LVwErNtc1qLts1HvcvStstyP2lb+rVo23zUuyxtS7KW2Yv/OJ2ZwegnyXoBWJ2C+/fvq9VqqVar6e23354ahbCuI0m1Wk0rKysql8tqNpva3t4e61RUq1VtbW3Z2RcPHjyY20P456pT4XyQZ9nY2FCpVJIUbdKL3wSXjY0Nff3rX7f/Pjo6mprxDwAAAFiKxaKq1arvKqOrq6uuhzutr6+7fqZ11nPbbl7MVafC60H24jfpJeoElyjrDgMAACB98zin4jKYq05FWEEmvVykCS4AAACI6YxWf8JsF7pTEWTSy0Wa4AIAAABcRPm0G5CURqOhe/fuSRpOerFGL6rVqgzDUKPRUKPRmOsJLgAAAIjJNJP/ga8LPVLhNGs+xkWZ4AIAAABcRJnpVAAAAAA5030J/jj14I9ORUj57iD+OtHdQWK1JCnfG9insTM05rQWbZuPepelbZflftK29GvRtvmod1nalmytOc6pQCroVAAAACA7kp4HwZyKQOhUAAAAIDNyg+FPkvXgLzOrPwEAAABIByMVAAAAyA4Of0oFIxUAAAAAYmGkAgAAANlhjn6SrAdfdCoAAACQGTnTVC7BQ5aSrJVlHP4EAAAAIBZGKkLKdfvKdXqxayRVK+l681qLts1HvcvStstyP2lb+rVo23zUuyxtS7RWf47D75ionQpGKgAAAADEwkgFAAAAssOUlGRgHQMVgTBSAQAAACAWRioAAACQGaz+lA46FQAAAMgOUwlP1E6uVJZx+BMAAACAWBipAAAAQHawpGwqGKkAAAAAEAsjFSHNW/hM0vXmtRZtm496l6Vtl+V+0rb0a9G2+ah3WdqWbPhd/MfpzAwk5RKuB190KgAAAJAZrP6UDg5/AgAAABALIxUAAADIDiZqp4KRCgAAAACxMFIBAACA7GCkIhWMVAAAAACIhZEKAAAAZAcjFamgUwEAAIDsIKciFXQqwur0lMvHDHyxAmeSqJV0vXmtlXQ92pZ+raTrzWutpOvRtmzVSroebUu/VtL15rTWXIffIRV0KgAAAJAZhN+lg4naAAAAAGJhpAIAAADZwUTtVNCpAAAAQHYMTCmXYEdgQKciCA5/AgAAABALIxUAAADIDg5/SgUjFQAAAABiYaQCAAAAGZLwSIUYqQiCTkVYna6kkwRqJFQr6XrzWivperQt/VpJ15vXWknXo23ZqpV0PdqWfq2k681rrUECjxMyhU4FAAAAsoM5FamgUwEAAIDsGJhK9JAllpQNhInaAAAAAGJhpAIAAADZYQ6GP0nWgy9GKgAAAADEwkgFAAAAsoOJ2qlgpAIAAABALIxUhNXtSuokUCOhWknXm9daSdejbenXSrrevNZKuh5ty1atpOvRtvRrJV1vXmsNuvG2P0us/pQKOhUAAADIDg5/SgWHPwEAAACIhZEKAAAAZIephEcqkiuVZYxUAAAAAIiFkQoAAABkB3MqUkGnAgAAANkxGEhKMAV7QKJ2EBz+BAAAACAWRioAAACQHRz+lAo6FWF1ujIHMQNjet3kaiVdb15rJV2PtqVfK+l681or6Xq0LVu1kq5H29KvlXS9Oa1lmgk8TsgUOhUAAADIDkYqUsGcCgAAAACxMFIBAACA7BiYSjSxbsBIRRB0KgAAAJAZpjmQaSa3DGyStbKMw58AAAAAxMJIBQAAALLDNJM9ZImJ2oEwUgEAAAAgFkYqAAAAkB1mwhO1GakIhE5FSGanI7N3Eq/GKHAmiVpJ15vXWrRtPupdlrZdlvtJ29Kv5Vkvn4tYaxhuZvaSCXFLsh5ty1iteQ6/GwykXIKTq5moHQiHPwEAAACIhZEKAAAAZAeHP6WCkQoAAAAAsTBSAQAAgMwwBwOZCc6pIPwuGEYqAAAAAMTCSAUAAACygzkVqaBTAQAAgOwYmFKOTsV5o1MBAAAAJMAwDO3s7Gh3d1d7e3uul0nS/v6+2u22PvroIxUKBc96zWZT29vbWllZUbFY1N7ent5++22trq6e5d2IhE5FSINOR4Pccbwao8CYJGolXW9eayVaL5fXwOwNa3V7GuTiB/gkWY+2nW2tXIBQMXNUy+z37LCoOJKsR9vmvFYu/FRFaxKoORjINPvDM/tR2zbc0Oz1ZeZ60YqcUT3adnFruf7fnOfJy6YpKcnwu2AjFa1WSw8fPpRhGDo4OJi6vFarqVarqVgsSpIqlYrW1tamOh9OhmGo2Wyq0WioWCyqVqvNZYdCYqI2AAAAEFupVNL6+rrdaZjUbrfVaDTsv2/evKmHDx/61n38+LFM09T+/r7W19cTa2/SGKkAAABAZpgDU2aCcyrMhOZUTI5IPHjwQOVyOZHa84BOBQAAALLDHCjZw5+GtY6OjsbOXlpa0tLSUqSSjUZDhmFod3fX97o7Ozu6ceOGDg4OtL+/r83NzUi3edYufKciyASWra0texKMYRiqVqsptRYAAAAX0Ztvvjn29/vvv68PPvggVA1rsrZhGFpbW5s5SVsaHlIlyT6kql6va21tLVBn5Lxd+E6F3wSWra0tSbKPQWs2m6pUKtre3k6lvQAAADg7Z3X40yeffKLr16/b50cZpSgUCvZn0nq9ruXlZT1+/NizczE5P+POnTuqVCoyDMO3Q3LeMjFRe9YElnv37o2dVy6XVa/Xz7uJAAAAuMCuX78+9hOmU2EYhmq1mgzDsM8rl8v2l+NenBO7JdkdiXa7Hart5yETnQov7Xbbsyc3awcCAADggjIHyf/E1G63tbW1NbbUrNXB8BpxsA6RcnYgrG28VphK04U//EnynsDi1YsrFApjPcVJJycnOjk5sf/+7LPPJElHkjrqqWfGW+O8o15itZKuN6+1kq2XV8cc1TJ76imBtiVYj7adba2c6Z9TkYX7SdvSqhX+u7p5vZ+0bT7qzUMtt/+b1vtwUisjJamnrpRgs8I+7m4ZFaVSSdVqdawzcP/+fZVKJXsFKGvJWWvub6FQmNqmXq9rdXV17g59kqScOY/PhhCsjoNzAsve3p52d3fVbDa1srIy9YS/efOmarWa51q/H3zwgT788MOzbTgAAMAF98knn+gnfuIn0m6GJOn4+FhvvfWWfvSjHyVe+/Of/7weP36sa9eueV7H6hTcv39frVZL1Wp1bPEgwzDGDsG3vgi3Ogj1el2bm5va39+3rzO5zZMnT+Z29ae56lRYO8LPxsaGPRt+kmEYWl5e1uHhoR4+fOjaqVheXtbm5qZnp2JypGIwGOj3f//39cUvfnFqkg7Oz9HRkd588032QYrYB+ljH6SPfTAf2A/pMk1TT58+1Y//+I8rn5+fo+mPj4/V6XQSr3v16tWZHQrM2eFPq6uroaPHG43G2DbOCSxex5sZhjHzWDS3dYetF4w1OQfpYR+kj32QPvZB+tgH84H9kJ7Pfe5zaTdhyrVr1/jwn5L56VpG4DeBpVgsqlAouM6tyFKCIQAAAJCmC92pCDKBZWNjY2ylp0aj4XnYEwAAAIDw5urwpyg2NjbsgDtpOIHFmTJYrVa1tbVlr/P74MGDSMF3S0tLev/99yPHsSM+9kH62AfpYx+kj30wH9gPwHyZq4naAAAAAC6eC334EwAAAID00akAAAAAEAudCgAAAACxXPiJ2udha2vLXk3KMAw7Ph3no9lsant7WysrKyoWi9rb2xtLqETyDMPQzs6Odnd3tbe3N3U5r4mzN2sf8Jo4P9ZCIFbC7eRCH7wWzses/cDrAZgPdCp8WP/IrGVom82mKpVKpBWkEI1hGGo2m2o0GioWi6rVarxZnKFWq6WHDx/KMAwdHBxMXc5r4uz57QNeE+ejVqtpc3PT/rtSqWhlZcXu5PFaOB9++4HXAzAfWP3Jx/Lysh4/fmx/EyVJuVxOPGznp9FoqFwuj+0DnL1Go6F79+7p0aNHY+fzmjg/XvuA18TZs8JVd3d37ce51Wrp1q1b2t/fV7FY5LVwDoLsB14PwHxgTsUM7XZbhmG4/qNyBuoBlwWvCVwmDx8+VLvdtv+2glYNw+C1cI5m7QcA84PDn2Zw/hNzKhQK/DM7Zzs7O7px44YODg60v78/NhSO88NrYn7wmjhbhUJBh4eHY+dZnYVisaiHDx96bsdrITl++8HC6wFIH52KCKx/XDgfpVJJ0ukbSL1et4fDMR94TZwvXhPpuHfvnra3t2ceZsNr4exN7gdeD8B84PCnCHjDOF/FYnHsG6k7d+6o0WjwbeAc4TVxvnhNnL9araZ3333XnpTthdfC2XLbD7wegPlAp2IG5z8pJ8MwPC9D8hqNxtjf1rdTXofi4OzwmpgPvCbOV6PR0M2bN8eWi+W1cP7c9oN1vhOvByAddCpmKBaLKhQKrv+YyuVyCi26fKyVP5z7wPr2iTfu88drIn28Js6Xdfy+9c24NUmb18L58toPvB6A+UGnwsfGxsbYSh6NRsN3+BvJKRQKqlarY28O9Xpdq6urLB94xrwO4+A1cX7c9gGvifPTarXUarVUKpXUbrfVbrdVr9d148YNSbwWzsus/cDrAZgf5FQEsLW1Zf/DevDgAatKnDPDMFSv1+2/nzx5wj44Q+12W41GQ/fv31er1VK1Wp1Kp+U1cbb89gGvibNnGIbeeust1+PynW+bvBbOVpD9wOsBmA90KgAAAADEwuFPAAAAAGKhUwEAAAAgFjoVAAAAAGKhUwEAAAAgFjoVAAAAAGKhUwEAAAAgFjoVAAAAAGKhUwEAGVar1bSysqJKpRJqu3q9rpWVFa2srJxRywAAWUL4HQAkrF6va29vT7u7u2k3RSsrK9rb20ttewDA5cBIBQAk7NGjR2o0Gmk3Y0qr1dLKyoqWl5fVbDbTbg4AIEPoVABARI1GQ4ZhTJ2/vb2teRwELpVK2tvbc20zAABx0KkAgIjW1tb08OHDtJsRWqFQSLsJAICMoVMBAAAAIBY6FQAQ0tramnK5nKThROZcLmf/LUlbW1taXl4e+/vWrVtqtVq6deuWcrmcbt26pWazKcMwtLa2puXlZd28eVP1en3q9hqNxtR2SajX66rX66rVaqrVaonUBABcTnQqACCkjz76SI8ePZIk7e7u6vDwUIeHh57Xf/LkiVqtlu7evavNzU17XsPa2preeecdvfvuu9rd3VWxWFSlUlG73ba3rdfrWltbU6VS0aNHj/Tuu+9qZWVl7DpR7O7u6s6dO1pfX9fm5qbq9fpcTi4HAFwMi2k3AAAumkKhoGKxaP8edI7C5uamyuWypGF+RKVSUblc1urqqiTpxo0b9ohGsViUYRiqVCra3t7W+vq6pOFk6ydPnmhzc1Pb29ux7oOz3bdv39aDBw/stgAAEAadCgA4J7dv37Z/tzolznC5UqkkSTo4OJAkexJ4pVKZCq+zrhvV22+/PfY3k7cBAHHQqQCAc+L2wf3GjRu+2x0eHvKhHwAw15hTAQDnwKtTMKuzYI1mxJ0/AQDAWaNTAQARWJ2BswySKxaLKpVKunfv3tRlBNgBAOYJnQoAiKhQKOj+/ftqtVqqVCpn8kH/o48+UqPRUKVSUavVUrPZVKVS0d27dxO9HcMw6KgAACKjUwEAEW1sbKjRaGhtbe3MbqNUKml/f1/tdlvvvPOOfVsfffRR6FrOzs+9e/dUr9dlGIZqtZoePnyonZ2dqQnhAAAEkTNN00y7EQCAs7GysqK9vb3UtgcAXA6MVAAAAACIhU4FAAAAgFjoVAAAAACIhU4FAGRYqVTSyspK6AnYW1tbY2nfAADMwkRtAAAAALEwUgEAAAAgFjoVAAAAAGKhUwEAAAAgFjoVAAAAAGKhUwEAAAAgFjoVAAAAAGKhUwEAAAAgFjoVAAAAAGKhUwEAAAAglv8fFDT9ppKGGx8AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "time = traj_obs.time/3600\n", "x, y = jnp.meshgrid(time, traj_obs.grid.zr)\n", "\n", "fig, ax = plt.subplots()\n", "fig.tight_layout()\n", "\n", "pcm = ax.pcolormesh(x, y, traj_obs.t.transpose(), shading='nearest')\n", "fig.colorbar(pcm, label=r'$T [{}^\\circ\\mathrm C]$')\n", "\n", "ax.set_xlabel(r'time $[\\mathrm h]$')\n", "ax.set_ylabel(r'$z [\\mathrm m]$')\n", "ax.set_title('Temperature evolution for the Kato-Phillips\\n case and location of the observations')\n", "for t in time[::12]:\n", " ax.axvline(x=t, color='r', linewidth=1)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Definition and call of the fitter\n", "Adding some parametes for the optmizer, we can define the instance of the class `Fitter` that will execute the calibration. An obect of this class contains the informations of how to do the calibration. The call of this object will try to find the best parameters of the closure to minmize the loss functions that we defined just before. First, the fitter compute the gradient function of the loss function, which is doable because JAX is a differentiable langage. Then it does a loop where at each steps it computes the gradient function on a point of the space of the parameters, then an optimization algorithm described by the `Optax` package computes the next point to explore." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " loop 0\n", " x [15.]\n", " grads [0.3391961]\n", " \n", "\n", " loop 1\n", " x [14.500004]\n", " grads [0.3480592]\n", " \n", "\n", " loop 2\n", " x [13.999714]\n", " grads [0.36043194]\n", " \n", "\n", " loop 3\n", " x [13.498813]\n", " grads [0.40461874]\n", " \n", "\n", " loop 4\n", " x [12.996218]\n", " grads [0.41749904]\n", " \n", "\n", " loop 5\n", " x [12.492009]\n", " grads [0.43715474]\n", " \n", "\n", " loop 6\n", " x [11.985976]\n", " grads [0.45326394]\n", " \n", "\n", " loop 7\n", " x [11.47802]\n", " grads [0.47675622]\n", " \n", "\n", " loop 8\n", " x [10.967768]\n", " grads [0.51993597]\n", " \n", "\n", " loop 9\n", " x [10.4543495]\n", " grads [0.5668275]\n", " \n", "\n", " loop 10\n", " x [9.937118]\n", " grads [0.5592757]\n", " \n", "\n", " loop 11\n", " x [9.417005]\n", " grads [0.63479054]\n", " \n", "\n", " loop 12\n", " x [8.892428]\n", " grads [0.66029876]\n", " \n", "\n", " loop 13\n", " x [8.363532]\n", " grads [0.6891761]\n", " \n", "\n", " loop 14\n", " x [7.830332]\n", " grads [0.6885269]\n", " \n", "\n", " loop 15\n", " x [7.293636]\n", " grads [0.69416535]\n", " \n", "\n", " loop 16\n", " x [6.75394]\n", " grads [0.7283362]\n", " \n", "\n", " loop 17\n", " x [6.2107224]\n", " grads [0.666131]\n", " \n", "\n", " loop 18\n", " x [5.6669736]\n", " grads [0.60154927]\n", " \n", "\n", " loop 19\n", " x [5.1257954]\n", " grads [0.39132735]\n", " \n", "\n", " loop 20\n", " x [4.599365]\n", " grads [0.05478675]\n", " \n", "\n", " loop 21\n", " x [4.1147532]\n", " grads [-0.43280727]\n", " \n", "\n", " loop 22\n", " x [3.725699]\n", " grads [-0.4189247]\n", " \n", "\n", " loop 23\n", " x [3.4201264]\n", " grads [-0.55001545]\n", " \n", "\n", " loop 24\n", " x [3.2049959]\n", " grads [-0.727044]\n", " \n", "\n", " loop 25\n", " x [3.0894427]\n", " grads [-0.72363585]\n", " \n", "\n", " loop 26\n", " x [3.0588133]\n", " grads [-0.7552156]\n", " \n", "\n", " loop 27\n", " x [3.1042118]\n", " grads [-0.7055095]\n", " \n", "\n", " loop 28\n", " x [3.210773]\n", " grads [-0.72228235]\n", " \n", "\n", " loop 29\n", " x [3.3719087]\n", " grads [-0.5612357]\n", " \n", "\n", " loop 30\n", " x [3.5679653]\n", " grads [-0.6095512]\n", " \n", "\n", " loop 31\n", " x [3.7989492]\n", " grads [-0.45418835]\n", " \n", "\n", " loop 32\n", " x [4.048833]\n", " grads [-0.4836539]\n", " \n", "\n", " loop 33\n", " x [4.3182073]\n", " grads [-0.25574923]\n", " \n", "\n", " loop 34\n", " x [4.5864506]\n", " grads [0.04923618]\n", " \n", "\n", " loop 35\n", " x [4.8261194]\n", " grads [0.20352697]\n", " \n", "\n", " loop 36\n", " x [5.0247016]\n", " grads [0.3079912]\n", " \n", "\n", " loop 37\n", " x [5.1753783]\n", " grads [0.45818654]\n", " \n", "\n", " loop 38\n", " x [5.2675147]\n", " grads [0.42482185]\n", " \n", "\n", " loop 39\n", " x [5.31006]\n", " grads [0.4522025]\n", " \n", "\n", " loop 40\n", " x [5.3051]\n", " grads [0.45692396]\n", " \n", "\n", " loop 41\n", " x [5.2567787]\n", " grads [0.41007257]\n", " \n", "\n", " loop 42\n", " x [5.1736465]\n", " grads [0.44523564]\n", " \n", "\n", " loop 43\n", " x [5.0556965]\n", " grads [0.33189687]\n", " \n", "\n", " loop 44\n", " x [4.916692]\n", " grads [0.26215872]\n", " \n", "\n", " loop 45\n", " x [4.764993]\n", " grads [0.15116331]\n", " \n", "\n", " loop 46\n", " x [4.6122513]\n", " grads [0.04555369]\n", " \n", "\n", " loop 47\n", " x [4.4688406]\n", " grads [-0.09177426]\n", " \n", "\n", " loop 48\n", " x [4.3477554]\n", " grads [-0.20555884]\n", " \n", "\n", " loop 49\n", " x [4.258763]\n", " grads [-0.31099942]\n", " \n" ] } ], "source": [ "from tunax import Fitter\n", "nloop = 50\n", "nit_loss = 1\n", "learning_rate = .5\n", "dt_cal = 300.\n", "output_path = 'k-epsilon_Kato-Phillips/c1_evolution.npz'\n", "f = Fitter(coef_fit_params, database, dt_cal, loss, nloop, nit_loss=nit_loss, learning_rate=learning_rate, output_path=output_path)\n", "keps_params_calibrated = f()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The output of the fitter is the final value of the calibrated parameters of the closure (here only $c_1$ has changed)." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Array(4.209973, dtype=float32)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "keps_params_calibrated.c1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The evolution of the calibrated parameters and their gradients have been written and we can visualize them." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data = np.load(output_path, allow_pickle=True)\n", "c1_ev = data['x'][0, :]\n", "c1_grad_ev = data['grads'][0, :]\n", "loss_it = data['loss_it']\n", "loss_values = data['loss_values']\n", "\n", "sp: subplot_1D_type = plt.subplots(3, 1, sharex=True, figsize=(8, 6))\n", "fig, [ax_x, ax_g, ax_l] = sp\n", "plt.tight_layout(rect=[0, 0.03, 1, 0.98])\n", "\n", "ax_x.plot(c1_ev, '.', label='$c_1$ calibration')\n", "ax_x.axhline([5.], color='k', linewidth=1, label='$c_1$ obs')\n", "ax_g.plot(c1_grad_ev, '.', label=r'$\\partial_{c_1} \\mathcal L$')\n", "ax_g.axhline(0, color='k', linewidth=1)\n", "ax_l.plot(loss_it, loss_values, '.', label=r'$\\mathcal L$')\n", "\n", "ax_l.set_xlabel('calibration iterations')\n", "ax_x.legend()\n", "ax_g.legend()\n", "ax_l.legend()\n", "fig.suptitle(r'$c_1$ calibration evolution')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check of the results\n", "One can see that the value of $c_1$ has decreased from 15 to around 5 as expected. We can run the model with these calibrated parameters." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "traj_calibrated = model.compute_trajectory_with(keps_params_calibrated)\n", "\n", "keps_params_uncalibrated = coef_fit_params.fit_to_closure(coef_fit_params.gen_init_val())\n", "traj_uncalibrated = model.compute_trajectory_with(keps_params_uncalibrated)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's visualize these results on the final state. Remember that here we did the calibration onlt on the temperature, it's a reason why the calibration on the meridional speed $u$ seems to work less." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sp: subplot_1D_type = plt.subplots(1, 4, sharey=True, figsize=(8, 4))\n", "fig, [ax_t, ax_s, ax_u, ax_v] = sp\n", "fig.tight_layout(rect=[0, 0.0, 1, 0.94])\n", "fig.subplots_adjust(wspace=0.1)\n", "\n", "ax_t.plot(traj_obs.t[0, :], zr, 'k', linewidth=1)\n", "ax_t.plot(traj_obs.t[-1, :], zr, 'r')\n", "ax_t.plot(traj_uncalibrated.t[-1, :], zr, 'g--')\n", "ax_t.plot(traj_calibrated.t[-1, :], zr, 'b--')\n", "ax_s.plot(traj_obs.s[0, :], zr, 'k', linewidth=1)\n", "ax_s.plot(traj_obs.s[-1, :], zr, 'r')\n", "ax_s.plot(traj_uncalibrated.s[-1, :], zr, 'g--')\n", "ax_s.plot(traj_calibrated.s[-1, :], zr, 'b--')\n", "ax_u.plot(traj_obs.u[0, :], zr, 'k', linewidth=1)\n", "ax_u.plot(traj_obs.u[-1, :], zr, 'r')\n", "ax_u.plot(traj_uncalibrated.u[-1, :], zr, 'g--')\n", "ax_u.plot(traj_calibrated.u[-1, :], zr, 'b--')\n", "ax_v.plot(traj_obs.v[0, :], zr, 'k', linewidth=1, label='initial state')\n", "ax_v.plot(traj_obs.v[-1, :], zr, 'r', label='observations')\n", "ax_v.plot(traj_uncalibrated.v[-1, :], zr, 'g--', label='uncalibrated')\n", "ax_v.plot(traj_calibrated.v[-1, :], zr, 'b--', label='calibrated')\n", "\n", "ax_t.set_xlim(14, 15.4)\n", "ax_t.set_ylim(-40, 0)\n", "ax_t.set_xlabel(r'$T [{}^\\circ\\mathrm C]$')\n", "ax_s.set_xlabel(r'$S [\\mathrm{psu}]$', labelpad=15)\n", "ax_u.set_xlabel(r'$u \\left[\\mathrm m \\cdot \\mathrm s^{-1}\\right]$')\n", "ax_v.set_xlabel(r'$v \\left[\\mathrm m \\cdot \\mathrm s^{-1}\\right]$')\n", "ax_t.set_ylabel(r'$z [\\mathrm m]$')\n", "ax_v.legend(framealpha=1.)\n", "plt.suptitle('Final states before and after the calibration of the parameter $c_1$')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## References\n", "1. Kato H, Phillips OM. On the penetration of a turbulent layer into stratified fluid. Journal of Fluid Mechanics. 1969;37(4):643-655. doi : [10.1017/S0022112069000784](https://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/abs/on-the-penetration-of-a-turbulent-layer-into-stratified-fluid/1D763D80170943E6FFA0573DFE20F091)" ] } ], "metadata": { "kernelspec": { "display_name": "tunax-6Pt6l4qB-py3.12", "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.12.6" } }, "nbformat": 4, "nbformat_minor": 2 }