{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "# Sommerfeld Boundary Conditions\n", "\n", " Validated for all coordinate systems available in NRPy+ \n", "\n", "## Authors: Terrence Pierre Jacques & Zach Etienne\n", "\n", "## Abstract\n", "\n", "The aim of this notebook is to describe the mathematical motivation behind the Sommerfeld boundary condition, document how it is implemented within the NRPy+ infrastructure in Cartesian coordinates, and record ongoing validation tests against the [Einstein Toolkit's NewRad boundary condition driver](https://www.einsteintoolkit.org/thornguide/EinsteinEvolve/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk).\n", "\n", "**Notebook Status:** Validated against the Einstein Toolkit \n", "\n", "**Validation Notes:** The Sommerfeld boundary condition as implemented in NRPy+ has been validated against [Einstein Toolkit's NewRad boundary condition driver](https://www.einsteintoolkit.org/thornguide/EinsteinEvolve/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk)(ETK) for the case of a scalar wave propagating across a 3D Cartesian grid. We have agreement to roundoff error with the Einstein Toolkit. Specifically, we have achieved:\n", "\n", "1. Roundoff level agreement for the wave propagating toward each of the individual faces\n", "\n", "1. Roundoff level agreement using any combination of input parameters available in the [Einstein Toolkit's NewRad boundary condition driver](https://www.einsteintoolkit.org/thornguide/EinsteinEvolve/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk) (variable value at infinity, radial power, and wave speed)\n", "\n", "[comment]: <> (Introduction: TODO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Table of Contents\n", "$$\\label{toc}$$\n", "\n", "This notebook is organized as follows\n", "\n", "1. [Step 1](#initializenrpy): Set core NRPy+ parameters for numerical grids \n", "1. [Step 2](#sbc): Definition and mathematical motivation\n", " 1. [Step 2.a](#intro): Introduction & background mathematics\n", " 1. [Step 2.b](#sbc_prelims): Preliminaries - The scalar wave equation in curvilinear coordinates\n", " 1. [Step 2.c](#sbc_ansatz): Sommerfeld boundary condition ansatz\n", " 1. [Step 2.d](#sbc_ansatz_dtf): Applying the ansatz to $\\partial_t f$\n", " 1. [Step 2.e](#curvicoords): Implementation in generic curvilinear coordinates\n", " 1. [Step 2.e.i](#cartcoords_byhand): Sommerfeld boundary conditions implementation in Cartesian coordinates, derived by hand\n", " 1. [Step 2.e.ii](#cartcoords_bynrpysympy): Sommerfeld boundary conditions implementation in Cartesian coordinates, derived by NRPy+/SymPy\n", "1. [Step 3](#numalg): Numerical algorithm overview\n", " 1. [Step 3.a](#class): Sommerfeld python class and parameters\n", " 1. [Step 3.b](#partial_rf): Calculate $\\partial_r f$\n", " 1. [Step 3.c](#cfunc): `apply_bcs_sommerfeld()` C function\n", " 1. [Step 3.d](#k): Solving for the subdominant radial falloff proportionality constant $k$\n", " 1. [Step 3.e](#innerbcs): Inner Boundary Conditions\n", "1. [Step 4](#py_validate): Python file validation\n", "1. [Step 5](#interface): NRPy+ Interface for Applying Sommerfeld Boundary Conditions\n", "1. [Step 6](#etk_validation): Validation against the [Einstein Toolkit's NewRad boundary condition driver](https://www.einsteintoolkit.org/thornguide/EinsteinEvolve/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk)\n", "1. [Latex Output](#latex_pdf_output): Output this notebook to $\\LaTeX$-formatted PDF file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Step 1: Set core NRPy+ parameters for numerical grids \\[Back to [top](#toc)\\]\n", "$$\\label{initializenrpy}$$\n", "\n", "Import needed NRPy+ core modules and set working directories." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:09.949014Z", "iopub.status.busy": "2021-03-07T17:25:09.947862Z", "iopub.status.idle": "2021-03-07T17:25:10.277928Z", "shell.execute_reply": "2021-03-07T17:25:10.277354Z" } }, "outputs": [], "source": [ "# Step P1: Import needed NRPy+ core modules:\n", "import NRPy_param_funcs as par # NRPy+: Parameter interface\n", "import reference_metric as rfm # NRPy+: Reference metric support\n", "import grid as gri # NRPy+: Functions having to do with numerical grids\n", "import cmdline_helper as cmd # NRPy+: Multi-platform Python command-line interface\n", "import shutil, os, sys # Standard Python modules for multiplatform OS-level functions\n", "\n", "# Create C code output directory:\n", "Ccodesdir = os.path.join(\"SommerfeldBoundaryCondition_Validate\")\n", "# First remove C code output directory if it exists\n", "# Courtesy https://stackoverflow.com/questions/303200/how-do-i-remove-delete-a-folder-that-is-not-empty\n", "shutil.rmtree(Ccodesdir, ignore_errors=True)\n", "# Then create a fresh directory\n", "cmd.mkdir(Ccodesdir)\n", "\n", "par.set_parval_from_str(\"grid::DIM\",3)\n", "DIM = par.parval_from_str(\"grid::DIM\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Step 2: Sommerfeld Boundary Conditions \\[Back to [top](#toc)\\]\n", "$$\\label{sbc}$$\n", "\n", "\n", "\n", "## Step 2.a: Introduction & background mathematics \\[Back to [top](#toc)\\]\n", "$$\\label{intro}$$\n", "\n", "\n", "When we numerically solve an initial value problem, appropriate initial data must be provided, coupled to a technique for evolving the initial data forward in time (to construct the solution at $t>0$), and we must impose boundary conditions. \n", "\n", "The subject of this notebook is implementation of Sommerfeld boundary conditions, which are often used when solving hyperbolic systems of partial differential equations (PDEs). Sommerfeld boundary conditions are also referred to as a radiation or transparent boundary conditions. \n", "\n", "The essential idea of a transparent boundary is creating a boundary in which wave fronts can pass through with minimal reflections. In other words, the boundary condition acts to map our numerical solution to outside our numerical domain in a smooth fashion. Because this mapping is assumed to be linear, this treatment occurs at the same time-level as calculations within our numerical domain. This point will be revisited later.\n", "\n", "Suppose we have a dynamical variable $f$; i.e., a variable in our hyperbolic system of PDEs that satisfies the equation\n", "\n", "$$\n", "\\partial_t f = \\text{something},\n", "$$\n", "where generally we refer to \"something\" as the \"right-hand side\" or \"RHS\" of the hyperbolic PDE, where we formulate the PDE such that the RHS contains no explicit time derivatives, but generally does contain spatial derivatives (typically computed in NRPy+ using finite differencing, though may in general be computed using other, e.g., pseudospectral techniques).\n", "\n", "To construct the solution at times after the initial data, we adopt the [Method of Lines (MoL)](Tutorial-ScalarWave.ipynb) approach, which integrates the equations forward *in time* using standard explicit techniques typically used when solving *ordinary* differential equations. In doing so, MoL evaluates the RHS of the PDE at all points in our numerical domain (typically using finite difference derivatives), except the ghost zones (i.e., the gridpoints neighboring the precise point needed to evaluate a derivative using e.g., a finite difference derivative).\n", "\n", "After each RHS evaluation we must fill in the data on the boundaries (i.e., the ghost zones), so that data exist at all gridpoints (including the boundaries) at the next MoL substep. In doing so, we have two options:\n", "\n", "1. Perform an MoL substep to push the *interior* solution $f$ forward in time one substep, and then update the boundary values of $f$.\n", "1. During the MoL substep, immediately after evaluating the RHS of the $\\partial t f$ equation, update the boundary values of the RHS of the $\\partial t f$ equation. Then push the solution $f$ forward in time *at all gridpoints, including ghost zones* by one substep.\n", "\n", "Our implementation of the Sommerfeld boundary condition implements the second option, filling in the data for $\\partial_t f$ (cf., our [extrapolation boundary condition implementation](Tutorial-Start_to_Finish-Curvilinear_BCs.ipynb)) on the boundaries (i.e., ghost zones)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 2.b: Preliminaries - The scalar wave equation in curvilinear coordinates \\[Back to [top](#toc)\\]\n", "$$\\label{sbc_prelims}$$\n", "\n", "Our Sommerfeld boundary condition implementation assumes $f$ behaves as a spherically symmetric, outgoing wave at the boundaries. Under these assumptions, the waves satisfy the wave equation in spherical coordinates with angular parts set to zero. I.e., under these assumptions the wavefunction $u(r,t)$ will satisfy:\n", "\n", "\\begin{align}\n", "0 = \\Box\\, u &= \\hat{D}^{\\nu} \\hat{D}_{\\nu} u \\\\\n", "&= \\hat{g}^{\\mu\\nu} \\hat{D}_{\\mu} \\hat{D}_{\\nu} u \\\\\n", "&= \\hat{g}^{\\mu\\nu} \\hat{D}_{\\mu} \\partial_{\\nu} u \\\\\n", "&= \\hat{g}^{\\mu\\nu} \\left[\\partial_{\\mu} (\\partial_{\\nu} u) - \\hat{\\Gamma}^\\alpha_{\\mu\\nu} (\\partial_{\\alpha} u) \\right],\n", "\\end{align}\n", "here the hatted metric is defined as $\\hat{g}^{tt} = -1/v^2$ (where $v$ is the wavespeed), $\\hat{g}^{rr}=1$, $\\hat{g}^{\\theta\\theta}=1/r^2$, and $\\hat{g}^{\\phi\\phi}=1/(r^2\\sin^2\\theta)$ are the only nonzero metric terms for the spherical (contravariant) metric. However, the fact that $u=u(r,t)$ does not depend on the angular pieces greatly simplifies the expression:\n", "\n", "\\begin{align}\n", "\\Box\\, u\n", "&= \\hat{g}^{\\mu\\nu} \\left[\\partial_{\\mu} (\\partial_{\\nu} u) - \\hat{\\Gamma}^\\alpha_{\\mu\\nu} (\\partial_{\\alpha} u) \\right] \\\\\n", "&= \\left(-\\frac{1}{v^2}\\partial_t^2 + \\partial_r^2\\right)u - \\hat{\\Gamma}^\\alpha_{\\mu\\nu} (\\partial_{\\alpha} u) \\\\\n", "&= \\left(-\\frac{1}{v^2}\\partial_t^2 + \\partial_r^2\\right)u - \\hat{g}^{\\mu\\nu} \\left[\\hat{\\Gamma}^t_{\\mu\\nu} \\partial_{t} + \\hat{\\Gamma}^r_{\\mu\\nu} \\partial_{r}\\right]u.\n", "\\end{align}\n", "\n", "We will now refer the reader to the [scalar wave in curvilinear coordinates notebook](Tutorial-ScalarWaveCurvilinear.ipynb) for the remainder of the derivation. The bottom line is, after removing terms implying angular variation in $u$, one obtains the wave equation for spherically symmetric waves:\n", "\n", "$$\n", "\\frac{1}{v^2} \\partial_t^2 u = \\partial_r^2 u + \\frac{2}{r} \\partial_r u,\n", "$$\n", "which has the general solution\n", "\n", "$$\n", "u(r,t) = A \\frac{u(r + vt)}{r} + B \\frac{u(r - vt)}{r},\n", "$$\n", "where the (left) right term represents an (ingoing) outgoing wave. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 2.c: Sommerfeld boundary condition ansatz \\[Back to [top](#toc)\\]\n", "$$\\label{sbc_ansatz}$$\n", "\n", "Inspired by the solution to the scalar wave equation, our Sommerfeld boundary condition will assume the solution $f(r,t)$ acts as an *outgoing* spherical wave ($A=0$), with an asymptotic value $f_0$ at $r\\to\\infty$ and a correction term for incoming waves or transient non-wavelike behavior at the boundaries, with $r^n$ falloff (ignoring higher-order radial falloffs):\n", "\n", "$$\n", "f = f_0 + \\frac{u(r-vt)}{r} + \\frac{c}{r^n},\n", "$$\n", "where $c$ is a constant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 2.d: Applying the ansatz to $\\partial_t f$ \\[Back to [top](#toc)\\]\n", "$$\\label{sbc_ansatz_dtf}$$\n", "\n", "As described in the above section, we will not apply Sommerfeld boundary conditions to $f$ but $\\partial_t f$ instead:\n", "\n", "$$\n", "\\partial_t f = -v \\frac{u'(r-vt)}{r}.\n", "$$\n", "\n", "To get a better understanding of the $u'(r-vt)$ term, let's compute the radial partial derivative as well:\n", "\n", "\\begin{align}\n", "\\partial_r f &= \\frac{u'(r-vt)}{r} - \\frac{u(r-vt)}{r^2} - n \\frac{c}{r^{n+1}} \\\\\n", "\\implies \\frac{u'(r-vt)}{r} &= \\partial_r f + \\frac{u(r-vt)}{r^2} + n \\frac{c}{r^{n+1}}\n", "\\end{align}\n", "\n", "Thus we get\n", "\n", "\\begin{align}\n", "\\partial_t f &= -v \\frac{u'(r-vt)}{r} \\\\\n", "&= -v \\left[\\partial_r f + \\frac{u(r-vt)}{r^2} + n \\frac{c}{r^{n+1}} \\right]\n", "\\end{align}\n", "\n", "To take care of the (as-yet) unknown $\\frac{u(r-vt)}{r^2}$ term, notice our ansatz\n", "\n", "$$\n", "f = f_0 + \\frac{u(r-vt)}{r} + \\frac{c}{r^n}\n", "$$\n", "implies that\n", "\n", "\\begin{align}\n", "\\frac{f - f_0}{r} &= \\frac{u(r-vt)}{r^2} + \\frac{c}{r^{n+1}} \\\\\n", "\\implies \\frac{u(r-vt)}{r^2} &= \\frac{f - f_0}{r} - \\frac{c}{r^{n+1}}\n", "\\end{align}\n", "\n", "so we have\n", "\n", "\\begin{align}\n", "\\partial_t f &= -v \\left[\\partial_r f + \\frac{u(r-vt)}{r^2} + n \\frac{c}{r^{n+1}} \\right]\\\\\n", "&= -v \\left[\\partial_r f + \\frac{f - f_0}{r} - \\frac{c}{r^{n+1}} + n \\frac{c}{r^{n+1}} \\right] \\\\\n", "&= -v \\left[\\partial_r f + \\frac{f - f_0}{r}\\right] + \\frac{k}{r^{n+1}},\n", "\\end{align}\n", "where $k=-v c(n-1)$ is just another constant.\n", "\n", "Thus we have derived our boundary condition:\n", "\n", "$$\n", "\\boxed{\n", "\\partial_t f = -\\frac{v}{r} \\left[r \\partial_r f + (f - f_0)\\right] + \\frac{k}{r^{n+1}}.\n", "}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 2.e: Implementation in generic curvilinear coordinates \\[Back to [top](#toc)\\]\n", "$$\\label{curvicoords}$$\n", "\n", "The core equation\n", "$$\n", "\\boxed{\n", "\\partial_t f = -\\frac{v}{r} \\left[r \\partial_r f + (f - f_0)\\right] + \\frac{k}{r^{n+1}}.\n", "}\n", "$$\n", "\n", "is implemented in NRPy+ using its `reference_metric.py` module ([Tutorial notebook](Tutorial-Reference_Metric.ipynb)), as this module requires *all* coordinate systems to define the spherical coordinate $r$ in terms of input quantities `(xx0,xx1,xx2)`. Thus we need only rewrite the above equation in terms of `(xx0,xx1,xx2)`. Defining $x^i$=`(xx0,xx1,xx2)`, we have, using the chain rule:\n", "\n", "\\begin{align}\n", "\\partial_t f &= -\\frac{v}{r} \\left[r \\partial_r f + (f - f_0)\\right] + \\frac{k}{r^{n+1}} \\\\\n", "&= -\\frac{v}{r(x^i)} \\left[r \\frac{\\partial x^i}{\\partial r} \\partial_i f + (f - f_0)\\right] + \\frac{k}{r^{n+1}}.\n", "\\end{align}\n", "\n", "$\\frac{\\partial x^i}{\\partial r}$ can be impossible to compute directly, as we are given $r(x^i)$ but not necessarily $x^i(r)$. The key here is to note that we are actually given $x^j_{\\rm Sph} = (r(x^i),\\theta(x^i),\\phi(x^i))$ for all coordinate systems, so we can define the Jacobian\n", "\n", "$$\\frac{\\partial x^j_{\\rm Sph}(x^i)}{\\partial x^i},$$\n", "\n", "and NRPy+ can invert this matrix to give us\n", "\n", "$$\\frac{\\partial x^i}{\\partial x^j_{\\rm Sph}},$$\n", "\n", "In summary, the implementation of Sommerfeld boundary conditions in arbitrary curvilinear coordinates $x^i=$`(xx0,xx1,xx2)` is given by\n", "$$\n", "\\boxed{\n", "\\partial_t f = -\\frac{v}{r(x^i)} \\left[r(x^i) \\frac{\\partial x^i}{\\partial r} \\partial_i f + (f - f_0)\\right] + \\frac{k}{r^{n+1}}.\n", "}\n", "$$\n", "\n", "In the next subsections, we'll work through implementation of this general equation in the special case of Cartesian coordinates, first by hand, and then *automatically*, for Cartesian *or other curvilinear coordinate systems supported by NRPy+* using `reference_metric.py`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "### Step 2.e.i: Sommerfeld boundary conditions implementation in Cartesian coordinates, derived by hand \\[Back to [top](#toc)\\]\n", "$$\\label{cartcoords_byhand}$$\n", "\n", "Let's now work this out for Cartesian coordinates in NRPy+, first by hand, and then using `reference_metric.py`:\n", "\n", "In Cartesian coordinates $\\frac{\\partial f}{\\partial r}$ may be expanded as\n", "\n", "$$\n", "\\frac{\\partial f}{\\partial r} = \\frac{\\partial x}{\\partial r} \\partial_x f + \\frac{\\partial y}{\\partial r}\\partial_y f + \\frac{\\partial z}{\\partial r}\\partial_z f.\n", "$$\n", "\n", "Defining $x^i$ to be the $i$th component of the Cartesian reference metric, we have\n", "\n", "\\begin{align}\n", "x^0 = x &= r\\sin\\theta \\cos\\phi \\implies \\frac{\\partial x}{\\partial r}=\\frac{x}{r}, \\\\\n", "x^1 = y &= r\\sin\\theta \\sin\\phi \\implies \\frac{\\partial y}{\\partial r}=\\frac{y}{r}, \\\\\n", "x^2 = z &= r\\cos\\theta \\implies \\frac{\\partial z}{\\partial r}=\\frac{z}{r}.\n", "\\end{align}\n", "\n", "Based on this, we can rewrite the above as\n", "\n", "\\begin{align}\n", "\\frac{\\partial f}{\\partial r} \n", "&= \\frac{x}{r} \\partial_x f +\\frac{y}{r} \\partial_y f +\\frac{z}{r} \\partial_z f \\\\\n", "&= \\frac{x^0}{r} \\partial_0 f +\\frac{x^1}{r} \\partial_1 f +\\frac{x^2}{r} \\partial_2 f \\\\\n", "&= \\frac{x^i}{r} \\partial_i f,\n", "\\end{align}\n", "\n", "yielding the Sommerfeld boundary condition in *Cartesian coordinates*\n", "\n", "$$\n", "\\partial_t f = -\\frac{v}{r} \\left[x^i \\partial_i f + \\left( f - f_0 \\right) \\right] + \\frac{k}{r^{n+1}}.\n", "$$\n", "\n", "\n", "\n", "### Step 2.e.ii: Sommerfeld boundary conditions implementation in Cartesian coordinates, derived automatically by NRPy+/SymPy \\[Back to [top](#toc)\\]\n", "$$\\label{cartcoords_bynrpysympy}$$\n", "\n", "Now let's use NRPy+'s `reference_metric.py` to obtain the same expression for $\\frac{\\partial f}{\\partial r}$ in Cartesian coordinates; i.e.,\n", "\n", "$$\n", "\\frac{\\partial f}{\\partial r} = \\frac{x^i}{r} \\partial_i f,\n", "$$\n", "but using the generic coordinate system interface (`CoordSystem=Cartesian`; feel free to change it to another coordinate system of your choice). Note in the above that me we must also know the functional form of $r(x^i)$, so we use NRPy's `outputC` module to output the C code to calculate $r(x^i)$ and $\\frac{\\partial x^i}{\\partial r} \\partial_i f$, as shown below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Step 3: Numerical algorithm overview \\[Back to [top](#toc)\\]\n", "$$\\label{numalg}$$\n", "\n", "To implement the above Sommerfeld boundary condition, we must specify for each dynamical variable:\n", "\n", "* its wave speed at the boundary, \n", "* its asymptotic value at infinity, and \n", "* its $r^{n+1}$ power that must be applied for the non-wavelike behavior at the boundary. \n", "\n", "Note in our ansatz \n", "\n", "$$\n", "f = f_0 + \\frac{u(r-vt)}{r} + \\frac{c}{r^n},\n", "$$\n", "\n", "in this expansion it would be natural to have $n = 2$, but in the boundary condition we have\n", "\n", "$$\n", "\\partial_t f = -\\frac{v}{r(x^i)} \\left[r(x^i) \\frac{\\partial x^i}{\\partial r} \\partial_i f + (f - f_0)\\right] + \\frac{k}{r^{n+1}}.\n", "$$\n", "\n", "Thus, the exponent in the $k$ term should be 3. And indeed, in our own implementations we have found that $n=2$ exhibits the best results for minimal reflections. The [Einstein Toolkit's NewRad boundary condition driver](https://www.einsteintoolkit.org/thornguide/EinsteinEvolve/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk) documentation page also states similar results, writing \"empirically, we have found that taking (exponent $ = 3$) almost completely eliminates the bad transient caused by the radiative boundary condition on its own\". The following set of code cells implement the above equation, excluding the $\\frac{k}{r^{n+1}}$ term, for a Cartesian grid.\n", "\n", "Our procedure in implementing this boundary condition is as follows:\n", "\n", "0) Define data for $f$ at **all** points in our numerical domain\n", "\n", "1) Evaluate $\\frac{df}{dt}$ at points in the **interior** only, using the prescribed equations to evaluate the RHS and ghost zones for the finite differences at the outer boundaries\n", "\n", "2) For points in the ghost zones, apply the Sommerfeld condition to obtain $\\frac{df}{dt}$ in the ghost zones, assuming advection and radial fall off behavior. When evaluating the spatial derivatives, use forward or backward finite differences for directions perpendicular to the outer boundary face being considered, and centered derivatives for the directions which lie in the plane of the outer boundary face. Furthermore, to minimize error we loop through inner boundary points and work outwards, so that the forward or backward stencils never include untreated points.\n", "\n", "3) Account for non-wavelike evolution of our numerical solution at the boundary\n", "\n", "4) Perform RK-update for all points (interior + ghost zones). Since the mapping to outside our numerical domain is linear, treatment of points in the interior and points on the boundary must be at the same time level." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 3.a: Sommerfeld python class and parameters \\[Back to [top](#toc)\\]\n", "$$\\label{class}$$\n", "\n", "First we define the python class __sommerfeld_boundary_condition_class__, where we store all variables and functions related to the our implementation of the Sommerfeld boundary condition. When calling the class, users can set default values for each dynamical variable's value at infinity, radial fall-off power, and wave speed at the boundary.\n", "\n", "Next we define the function _sommerfeld_params_ which writes these parameters to lists in C, which will be used by the main C code." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.284762Z", "iopub.status.busy": "2021-03-07T17:25:10.284031Z", "iopub.status.idle": "2021-03-07T17:25:10.289064Z", "shell.execute_reply": "2021-03-07T17:25:10.289560Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile $Ccodesdir/Sommerfeld.py\n", "class sommerfeld_boundary_condition_class():\n", " \"\"\"\n", " Class for generating C code to apply Sommerfeld boundary conditions\n", " \"\"\"\n", " # class variables should be the resulting dicts\n", " # Set class variable default values\n", " # radial falloff power n = 3 has been found to yield the best results\n", " # - see Tutorial-SommerfeldBoundaryCondition.ipynb Step 2 for details\n", " def __init__(self, fd_order=2, vars_at_inf_default = 0., vars_radial_falloff_power_default = 3., vars_speed_default = 1.):\n", " evolved_variables_list, _, _ = gri.gridfunction_lists()\n", "\n", " # set class finite differencing order\n", " self.fd_order = fd_order\n", "\n", " NRPy_FD_order = par.parval_from_str(\"finite_difference::FD_CENTDERIVS_ORDER\")\n", "\n", " if NRPy_FD_order < fd_order:\n", " print(\"ERROR: The global central finite differencing order within NRPy+ must be greater than or equal to the Sommerfeld boundary condition's finite differencing order\")\n", " sys.exit(1)\n", "\n", " # Define class dictionaries to store sommerfeld parameters for each EVOL gridfunction\n", "\n", " # EVOL gridfunction asymptotic value at infinity\n", " self.vars_at_infinity = {}\n", "\n", " # EVOL gridfunction wave speed at outer boundaries\n", " self.vars_speed = {}\n", "\n", " # EVOL gridfunction radial falloff power\n", " self.vars_radial_falloff_power = {}\n", "\n", " # Set default values for each specific EVOL gridfunction\n", " for gf in evolved_variables_list:\n", " self.vars_at_infinity[gf.upper() + 'GF'] = vars_at_inf_default\n", " self.vars_radial_falloff_power[gf.upper() + 'GF'] = vars_radial_falloff_power_default\n", " self.vars_speed[gf.upper() + 'GF'] = vars_speed_default\n", "\n", " def sommerfeld_params(self):\n", " # Write parameters to C file\n", "\n", " # Creating array for EVOL gridfunction values at infinity\n", " var_at_inf_string = \"{\"\n", " for _gf,val in self.vars_at_infinity.items():\n", " var_at_inf_string += str(val) + \", \"\n", " var_at_inf_string = var_at_inf_string[:-2] + \"};\"\n", "\n", " # Creating array for EVOL gridfunction values of radial falloff power\n", " vars_radial_falloff_power_string = \"{\"\n", " for _gf,val in self.vars_radial_falloff_power.items():\n", " vars_radial_falloff_power_string += str(val) + \", \"\n", " vars_radial_falloff_power_string = vars_radial_falloff_power_string[:-2] + \"};\"\n", "\n", " # Creating array for EVOL gridfunction values of wave speed at outer boundaries\n", " var_speed_string = \"{\"\n", " for _gf,val in self.vars_speed.items():\n", " var_speed_string += str(val) + \", \"\n", " var_speed_string = var_speed_string[:-2] + \"};\"\n", "\n", " # Writing to values to sommerfeld_params.h file\n", " out_str = \"\"\"\n", "// Sommerfeld EVOL grid function parameters\n", "const REAL evolgf_at_inf[NUM_EVOL_GFS] = \"\"\"+var_at_inf_string+\"\"\"\n", "const REAL evolgf_radial_falloff_power[NUM_EVOL_GFS] = \"\"\"+vars_radial_falloff_power_string+\"\"\"\n", "const REAL evolgf_speed[NUM_EVOL_GFS] = \"\"\"+var_speed_string+\"\"\"\n", "\"\"\"\n", " return out_str" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 3.b: Calculate $\\partial_r f$ \\[Back to [top](#toc)\\]\n", "$$\\label{partial_rf}$$\n", "\n", "Next we generate the C code for calculating $\\partial_r f$ for each dynamical variable $f$ in our coordinate system of choice." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.295161Z", "iopub.status.busy": "2021-03-07T17:25:10.294396Z", "iopub.status.idle": "2021-03-07T17:25:10.297949Z", "shell.execute_reply": "2021-03-07T17:25:10.297442Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Appending to SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile -a $Ccodesdir/Sommerfeld.py\n", "\n", " @staticmethod\n", " def dfdr_function(fd_order):\n", " # function to write c code to calculate dfdr term in Sommerfeld boundary condition\n", "\n", " # Read what # of dimensions being used\n", " DIM = par.parval_from_str(\"grid::DIM\")\n", "\n", " # Set up the chosen reference metric from chosen coordinate system, set within NRPy+\n", " CoordSystem = par.parval_from_str(\"reference_metric::CoordSystem\")\n", " rfm.reference_metric()\n", "\n", " # Simplifying the results make them easier to interpret.\n", " do_simplify = True\n", " if \"Sinh\" in CoordSystem:\n", " # Simplification takes too long on Sinh* coordinate systems\n", " do_simplify = False\n", "\n", " # Construct Jacobian matrix, output Jac_dUSph_dDrfmUD[i][j] = \\partial x_{Sph}^i / \\partial x^j:\n", " Jac_dUSph_dDrfmUD = ixp.zerorank2()\n", " for i in range(3):\n", " for j in range(3):\n", " Jac_dUSph_dDrfmUD[i][j] = sp.diff(rfm.xxSph[i],rfm.xx[j])\n", "\n", " # Invert Jacobian matrix, output to Jac_dUrfm_dDSphUD.\n", " Jac_dUrfm_dDSphUD, dummyDET = ixp.generic_matrix_inverter3x3(Jac_dUSph_dDrfmUD)\n", "\n", " # Jac_dUrfm_dDSphUD[i][0] stores \\partial x^i / \\partial r\n", " if do_simplify:\n", " for i in range(3):\n", " Jac_dUrfm_dDSphUD[i][0] = sp.simplify(Jac_dUrfm_dDSphUD[i][0])\n", "\n", " # Declare \\partial_i f, which is actually computed later on\n", " fdD = ixp.declarerank1(\"fdD\") # = [fdD0, fdD1, fdD2]\n", " contraction = sp.sympify(0)\n", " for i in range(3):\n", " contraction += fdD[i]*Jac_dUrfm_dDSphUD[i][0]\n", "\n", " if do_simplify:\n", " contraction = sp.simplify(contraction)\n", "\n", " r_str_and_contraction_str = outputC([rfm.xxSph[0],contraction],\n", " [\"*_r\",\"*_partial_i_f\"],filename=\"returnstring\",params=\"includebraces=False\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we generate the C code used to calculate all relevant spatial derivatives $\\partial_i f$, using second order accurate finite differences. Specifically, if our ghost zone point lies on one of the faces, on an edge or corner, we use forward or backward differences depending on the specific direction, and centered differences otherwise. Note that all derivatives along the normal of the boundary faces are forward or backward, to minimize using non-updated points in the derivative calculations.\n", "\n", "For example, consider some point with Cartesian coordinates $(i,j,k)$ on our grid, the derivative of $f$ along the $x$ direction will be the forward (backward with change of signs on coefficients)\n", "\n", "$$\n", "\\frac{\\partial f_{ijk}}{\\partial x} \\approx \\frac{1}{2\\Delta x} \\left( -3f_{i,j,k} + 4f_{i+1,j,k} - f_{i+2,j,k} \\right),\n", "$$\n", "\n", "or the centered difference approximation\n", "\n", "$$\n", "\\frac{\\partial f_{ijk}}{\\partial x} \\approx \\frac{1}{2\\Delta x} \\left( f_{i+1,j,k} - f_{i-1,j,k} \\right).\n", "$$\n", "\n", "We determine the signs of the coefficients (corresponding to using either a forward or backward difference) by determining what face the point lies within. The above is applied for all three Cartesian directions. Note the use if the `SHIFTSTENCIL` variable, which helps determine when to use forward/backward difference to take derivatives along normals to boundary faces, or when to use central differences to either take derivatives parallel to the faces or at points on edges and corners." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.304732Z", "iopub.status.busy": "2021-03-07T17:25:10.303727Z", "iopub.status.idle": "2021-03-07T17:25:10.307027Z", "shell.execute_reply": "2021-03-07T17:25:10.307580Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Appending to SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile -a $Ccodesdir/Sommerfeld.py\n", "\n", "\n", " def gen_central_2oFD_stencil_str(intdirn):\n", " if intdirn == 0:\n", " return \"(gfs[IDX4S(which_gf,i0+1,i1,i2)]-gfs[IDX4S(which_gf,i0-1,i1,i2)])*0.5\" # Does not include the 1/dx multiplication\n", " if intdirn == 1:\n", " return \"(gfs[IDX4S(which_gf,i0,i1+1,i2)]-gfs[IDX4S(which_gf,i0,i1-1,i2)])*0.5\" # Does not include the 1/dy multiplication\n", " return \"(gfs[IDX4S(which_gf,i0,i1,i2+1)]-gfs[IDX4S(which_gf,i0,i1,i2-1)])*0.5\" # Does not include the 1/dz multiplication\n", "\n", " def gen_central_4oFD_stencil_str(intdirn):\n", " if intdirn == 0:\n", " return \"\"\"(-c2*gfs[IDX4S(which_gf,i0+2,i1,i2)]\n", " +c1*gfs[IDX4S(which_gf,i0+1,i1,i2)]\n", " -c1*gfs[IDX4S(which_gf,i0-1,i1,i2)]\n", " +c2*gfs[IDX4S(which_gf,i0-2,i1,i2)])\"\"\" # Does not include the 1/dx multiplication\n", " if intdirn == 1:\n", " return \"\"\"(-c2*gfs[IDX4S(which_gf,i0,i1+2,i2)]\n", " +c1*gfs[IDX4S(which_gf,i0,i1+1,i2)]\n", " -c1*gfs[IDX4S(which_gf,i0,i1-1,i2)]\n", " +c2*gfs[IDX4S(which_gf,i0,i1-2,i2)])\"\"\" # Does not include the 1/dy multiplication\n", " return \"\"\"(-c2*gfs[IDX4S(which_gf,i0,i1,i2+2)]\n", " +c1*gfs[IDX4S(which_gf,i0,i1,i2+1)]\n", " -c1*gfs[IDX4S(which_gf,i0,i1,i2-1)]\n", " +c2*gfs[IDX4S(which_gf,i0,i1,i2-2)])\"\"\" # Does not include the 1/dz multiplication\n", "\n", " def gen_central_6oFD_stencil_str(intdirn):\n", " if intdirn == 0:\n", " return \"\"\"( c3*gfs[IDX4S(which_gf,i0+3,i1,i2)]\n", " -c2*gfs[IDX4S(which_gf,i0+2,i1,i2)]\n", " +c1*gfs[IDX4S(which_gf,i0+1,i1,i2)]\n", " -c1*gfs[IDX4S(which_gf,i0-1,i1,i2)]\n", " +c2*gfs[IDX4S(which_gf,i0-2,i1,i2)]\n", " -c3*gfs[IDX4S(which_gf,i0-3,i1,i2)])\"\"\" # Does not include the 1/dx multiplication\n", "\n", " if intdirn == 1:\n", " return \"\"\"( c3*gfs[IDX4S(which_gf,i0,i1+3,i2)]\n", " -c2*gfs[IDX4S(which_gf,i0,i1+2,i2)]\n", " +c1*gfs[IDX4S(which_gf,i0,i1+1,i2)]\n", " -c1*gfs[IDX4S(which_gf,i0,i1-1,i2)]\n", " +c2*gfs[IDX4S(which_gf,i0,i1-2,i2)]\n", " -c3*gfs[IDX4S(which_gf,i0,i1-3,i2)])\"\"\" # Does not include the 1/dy multiplication\n", "\n", " return \"\"\"( c3*gfs[IDX4S(which_gf,i0,i1,i2+3)]\n", " -c2*gfs[IDX4S(which_gf,i0,i1,i2+2)]\n", " +c1*gfs[IDX4S(which_gf,i0,i1,i2+1)]\n", " -c1*gfs[IDX4S(which_gf,i0,i1,i2-1)]\n", " +c2*gfs[IDX4S(which_gf,i0,i1,i2-2)]\n", " -c3*gfs[IDX4S(which_gf,i0,i1,i2-3)])\"\"\" # Does not include the 1/dz multiplication\n", "\n", " def gen_central_fd_stencil_str(intdirn, fd_order):\n", " if fd_order==2:\n", " return gen_central_2oFD_stencil_str(intdirn)\n", " if fd_order==4:\n", " return gen_central_4oFD_stencil_str(intdirn)\n", " return gen_central_6oFD_stencil_str(intdirn)\n", "\n", " def output_dfdx(intdirn, fd_order):\n", " dirn = str(intdirn)\n", " dirnp1 = str((intdirn+1)%3) # if dirn='0', then we want this to be '1'; '1' then '2'; and '2' then '0'\n", " dirnp2 = str((intdirn+2)%3) # if dirn='0', then we want this to be '2'; '1' then '0'; and '2' then '1'\n", "\n", " preface = \"\"\"\n", "// On a +x\"\"\"+dirn+\"\"\" or -x\"\"\"+dirn+\"\"\" face, do up/down winding as appropriate:\n", "if(abs(FACEXi[\"\"\"+dirn+\"\"\"])==1 || i\"\"\"+dirn+\"\"\"+NGHOSTS >= Nxx_plus_2NGHOSTS\"\"\"+dirn+\"\"\" || i\"\"\"+dirn+\"\"\"-NGHOSTS <= 0) {\n", " int8_t SHIFTSTENCIL\"\"\"+dirn+\"\"\" = FACEXi[\"\"\"+dirn+\"\"\"];\n", " if(i\"\"\"+dirn+\"\"\"+NGHOSTS >= Nxx_plus_2NGHOSTS\"\"\"+dirn+\"\"\") SHIFTSTENCIL\"\"\"+dirn+\"\"\" = -1;\n", " if(i\"\"\"+dirn+\"\"\"-NGHOSTS <= 0) SHIFTSTENCIL\"\"\"+dirn+\"\"\" = +1;\n", " SHIFTSTENCIL\"\"\"+dirnp1+\"\"\" = 0;\n", " SHIFTSTENCIL\"\"\"+dirnp2+\"\"\" = 0;\n", "\"\"\"\n", " if fd_order == 2:\n", " return preface + \"\"\"\n", "\n", " fdD\"\"\"+dirn+\"\"\"\n", " = SHIFTSTENCIL\"\"\"+dirn+\"\"\"*(-1.5*gfs[IDX4S(which_gf,i0+0*SHIFTSTENCIL0,i1+0*SHIFTSTENCIL1,i2+0*SHIFTSTENCIL2)]\n", " +2.*gfs[IDX4S(which_gf,i0+1*SHIFTSTENCIL0,i1+1*SHIFTSTENCIL1,i2+1*SHIFTSTENCIL2)]\n", " -0.5*gfs[IDX4S(which_gf,i0+2*SHIFTSTENCIL0,i1+2*SHIFTSTENCIL1,i2+2*SHIFTSTENCIL2)]\n", " )*invdx\"\"\"+dirn+\"\"\";\n", "\n", "// Not on a +x\"\"\"+dirn+\"\"\" or -x\"\"\"+dirn+\"\"\" face, using centered difference:\n", "} else {\n", " fdD\"\"\"+dirn+\"\"\" = \"\"\"+gen_central_fd_stencil_str(intdirn, 2)+\"\"\"*invdx\"\"\"+dirn+\"\"\";\n", "}\n", "\"\"\"\n", " if fd_order == 4:\n", " return preface + \"\"\"\n", "\n", " fdD\"\"\"+dirn+\"\"\"\n", " = SHIFTSTENCIL\"\"\"+dirn+\"\"\"*(u0*gfs[IDX4S(which_gf,i0+0*SHIFTSTENCIL0,i1+0*SHIFTSTENCIL1,i2+0*SHIFTSTENCIL2)]\n", " +u1*gfs[IDX4S(which_gf,i0+1*SHIFTSTENCIL0,i1+1*SHIFTSTENCIL1,i2+1*SHIFTSTENCIL2)]\n", " +u2*gfs[IDX4S(which_gf,i0+2*SHIFTSTENCIL0,i1+2*SHIFTSTENCIL1,i2+2*SHIFTSTENCIL2)]\n", " +u3*gfs[IDX4S(which_gf,i0+3*SHIFTSTENCIL0,i1+3*SHIFTSTENCIL1,i2+3*SHIFTSTENCIL2)]\n", " +u4*gfs[IDX4S(which_gf,i0+4*SHIFTSTENCIL0,i1+4*SHIFTSTENCIL1,i2+4*SHIFTSTENCIL2)]\n", " )*invdx\"\"\"+dirn+\"\"\";\n", "\n", "// Not on a +x\"\"\"+dirn+\"\"\" or -x\"\"\"+dirn+\"\"\" face, using centered difference:\n", "} else {\n", " fdD\"\"\"+dirn+\"\"\" = \"\"\"+gen_central_fd_stencil_str(intdirn, 4)+\"\"\"*invdx\"\"\"+dirn+\"\"\";\n", "}\n", "\"\"\"\n", " if fd_order == 6:\n", " return preface + \"\"\"\n", "\n", " fdD\"\"\"+dirn+\"\"\"\n", " = SHIFTSTENCIL\"\"\"+dirn+\"\"\"*(u0*gfs[IDX4S(which_gf,i0+0*SHIFTSTENCIL0,i1+0*SHIFTSTENCIL1,i2+0*SHIFTSTENCIL2)]\n", " +u1*gfs[IDX4S(which_gf,i0+1*SHIFTSTENCIL0,i1+1*SHIFTSTENCIL1,i2+1*SHIFTSTENCIL2)]\n", " +u2*gfs[IDX4S(which_gf,i0+2*SHIFTSTENCIL0,i1+2*SHIFTSTENCIL1,i2+2*SHIFTSTENCIL2)]\n", " +u3*gfs[IDX4S(which_gf,i0+3*SHIFTSTENCIL0,i1+3*SHIFTSTENCIL1,i2+3*SHIFTSTENCIL2)]\n", " +u4*gfs[IDX4S(which_gf,i0+4*SHIFTSTENCIL0,i1+4*SHIFTSTENCIL1,i2+4*SHIFTSTENCIL2)]\n", " +u5*gfs[IDX4S(which_gf,i0+5*SHIFTSTENCIL0,i1+5*SHIFTSTENCIL1,i2+5*SHIFTSTENCIL2)]\n", " +u6*gfs[IDX4S(which_gf,i0+6*SHIFTSTENCIL0,i1+6*SHIFTSTENCIL1,i2+6*SHIFTSTENCIL2)]\n", " )*invdx\"\"\"+dirn+\"\"\";\n", "\n", "// Not on a +x\"\"\"+dirn+\"\"\" or -x\"\"\"+dirn+\"\"\" face, using centered difference:\n", "} else {\n", " fdD\"\"\"+dirn+\"\"\" = \"\"\"+gen_central_fd_stencil_str(intdirn, 6)+\"\"\"*invdx\"\"\"+dirn+\"\"\";\n", "}\n", "\"\"\"\n", "\n", " print(\"Error: fd_order = \"+str(fd_order)+\" currently unsupported.\")\n", " sys.exit(1)\n", "\n", " contraction_term_func = \"\"\"\n", "\n", "// Function to calculate the radial derivative of a grid function\n", "void contraction_term(const paramstruct *restrict params, const int which_gf, const REAL *restrict gfs, REAL *restrict xx[3],\n", " const int8_t FACEXi[3], const int i0, const int i1, const int i2, REAL *restrict _r, REAL *restrict _partial_i_f) {\n", "\n", "#include \"RELATIVE_PATH__set_Cparameters.h\" /* Header file containing correct #include for set_Cparameters.h;\n", " * accounting for the relative path */\n", "\n", "// Initialize derivatives to crazy values, to ensure that\n", "// we will notice in case they aren't set properly.\n", "REAL fdD0=1e100;\n", "REAL fdD1=1e100;\n", "REAL fdD2=1e100;\n", "\n", "REAL xx0 = xx[0][i0];\n", "REAL xx1 = xx[1][i1];\n", "REAL xx2 = xx[2][i2];\n", "\n", "int8_t SHIFTSTENCIL0;\n", "int8_t SHIFTSTENCIL1;\n", "int8_t SHIFTSTENCIL2;\n", "\n", "\"\"\"\n", " if fd_order == 4:\n", " contraction_term_func +=\"\"\"\n", "// forward/backward finite difference coefficients\n", "const REAL u0 =-25./12.;\n", "const REAL u1 = 4.;\n", "const REAL u2 = -3.;\n", "const REAL u3 = 4./3.;\n", "const REAL u4 = -1./4.;\n", "\n", "// central finite difference coefficients\n", "const REAL c1 = 2./3.;\n", "const REAL c2 = 1./12.;\n", "\n", "\"\"\"\n", " if fd_order == 6:\n", " contraction_term_func +=\"\"\"\n", "// forward/backward finite difference coefficients\n", "const REAL u0 = -49./20.;\n", "const REAL u1 = 6.;\n", "const REAL u2 = -15./2.;\n", "const REAL u3 = 20./3.;\n", "const REAL u4 = -15./4.;\n", "const REAL u5 = 6./5.;\n", "const REAL u6 = -1./6.;\n", "\n", "// central finite difference coefficients\n", "const REAL c1 = 3./4.;\n", "const REAL c2 = 3./20.;\n", "const REAL c3 = 1./60;\n", "\n", "\"\"\"\n", " for i in range(DIM):\n", " if \"fdD\"+str(i) in r_str_and_contraction_str:\n", " contraction_term_func += output_dfdx(i, fd_order)\n", "\n", " contraction_term_func += \"\\n\" + r_str_and_contraction_str\n", "\n", " contraction_term_func +=\"\"\"\n", "} // END contraction_term function\n", "\"\"\"\n", " return contraction_term_func" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 3.c: `apply_bcs_sommerfeld()` C function \\[Back to [top](#toc)\\]\n", "$$\\label{cfunc}$$\n", "\n", "Here, we build up the main C code and define the function `apply_bcs_sommerfeld()` to be used by NRPy's MoL time stepping algorithm.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.314413Z", "iopub.status.busy": "2021-03-07T17:25:10.313339Z", "iopub.status.idle": "2021-03-07T17:25:10.316912Z", "shell.execute_reply": "2021-03-07T17:25:10.317539Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Appending to SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile -a $Ccodesdir/Sommerfeld.py\n", "\n", " def write_sommerfeld_main_Ccode(self, Ccodesdir):\n", " main_Ccode = \"\"\"\n", "// Boundary condition driver routine: Apply BCs to all\n", "// boundary faces of the 3D numerical domain, filling in the\n", "// outer boundary ghost zone layers, starting with the innermost\n", "// layer and working outward.\n", "\"\"\"\n", " main_Ccode += self.sommerfeld_params()\n", " main_Ccode += self.dfdr_function(self.fd_order)\n", "\n", " main_Ccode += \"\"\"\n", "void apply_bcs_sommerfeld(const paramstruct *restrict params, REAL *restrict xx[3],\n", " const bc_struct *restrict bcstruct, const int NUM_GFS,\n", " const int8_t *restrict gfs_parity, REAL *restrict gfs,\n", " REAL *restrict rhs_gfs) {\n", "\n", " #pragma omp parallel for\n", " for(int which_gf=0;which_gfnum_ob_gz_pts[which_gz];pt++) {\n", " const int i0 = bcstruct->outer[which_gz][pt].outer_bc_dest_pt.i0;\n", " const int i1 = bcstruct->outer[which_gz][pt].outer_bc_dest_pt.i1;\n", " const int i2 = bcstruct->outer[which_gz][pt].outer_bc_dest_pt.i2;\n", " const int8_t FACEX0 = bcstruct->outer[which_gz][pt].FACEi0;\n", " const int8_t FACEX1 = bcstruct->outer[which_gz][pt].FACEi1;\n", " const int8_t FACEX2 = bcstruct->outer[which_gz][pt].FACEi2;\n", "\n", " const int8_t FACEXi[3] = {FACEX0, FACEX1, FACEX2};\n", "\n", " // Initialize derivatives to crazy values, to ensure that\n", " // we will notice in case they aren't set properly.\n", " REAL r = 1e100;\n", " REAL partial_i_f = 1e100;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we calculate $\\frac{df}{dt}$ without the $\\frac{k}{r^{n+1}}$ term;\n", "\n", "$$\n", "\\frac{\\partial f}{\\partial t} = -\\frac{v}{r(x^i)} \\left[r(x^i) \\frac{\\partial x^i}{\\partial r} \\partial_i f + (f - f_0)\\right].\n", "$$" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.323755Z", "iopub.status.busy": "2021-03-07T17:25:10.322733Z", "iopub.status.idle": "2021-03-07T17:25:10.326029Z", "shell.execute_reply": "2021-03-07T17:25:10.326596Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Appending to SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile -a $Ccodesdir/Sommerfeld.py\n", "\n", " contraction_term(params, which_gf, gfs, xx, FACEXi, i0, i1, i2, &r, &partial_i_f);\n", "\n", " const REAL invr = 1./r;\n", "\n", " const REAL source_rhs = -char_speed*(partial_i_f + invr*(gfs[IDX4S(which_gf,i0,i1,i2)] - var_at_infinity));\n", " rhs_gfs[IDX4S(which_gf,i0,i1,i2)] = source_rhs;" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Step 3.d: Solving for $k$ \\[Back to [top](#toc)\\]\n", "$$\\label{k}$$\n", "\n", " Here we formulate a way to approximate $k$. If our solution satisfies the advection equation both at the ghost zones and at interior points close to the boundaries, then we may find $k$ by determining the portion of $f$ that is not accounted for by the equation\n", "\n", "$$\n", "\\frac{\\partial f}{\\partial t} = \\left[\\frac{\\partial f}{\\partial t} \\right]_{adv} = -\\frac{v}{r(x^i)} \\left[r(x^i) \\frac{\\partial x^i}{\\partial r} \\partial_i f + (f - f_0)\\right].\n", "$$\n", "\n", "The above is the advection equation we arrive at assuming $f$ behaves purely as an outgoing spherical wave. For an interior point directly adjacent to a ghost zone point, $f$ must satisfy **both** the time evolution equation for prescribed points within the interior, $\\left[\\frac{\\partial f}{\\partial t} \\right]_{evol}$, and the advection equation $\\left[\\frac{\\partial f}{\\partial t} \\right]_{adv}$. We then find the difference as\n", "\n", "$$\n", "\\delta = \\left[\\frac{\\partial f}{\\partial t} \\right]_{evol} - \\left[\\frac{\\partial f}{\\partial t} \\right]_{adv} = \\frac{k}{r^{n+1}},\n", "$$\n", "\n", "i.e. $\\delta$ represents the numerical departure from the expected purely wave-like behavior at that point. We solve for $\\delta$ at this interior point and express $k$ as \n", "\n", "$$\n", "k = \\delta r^{n+1}_{int}.\n", "$$\n", "\n", "Thus, the $\\frac{k}{r^{n+1}}$ term for the associated ghost zone point may be expressed as\n", "\n", "$$\n", "\\frac{k}{r^{n+1}_{gz}} = \\delta \\left( \\frac{r_{int}}{r_{gz}} \\right) ^{n+1}.\n", "$$\n", "\n", "We approximate $k$ in this fashion using the code below. Note that we activate this term only when *radial_falloff_power* > 0, which set to 3 by default." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.332420Z", "iopub.status.busy": "2021-03-07T17:25:10.331555Z", "iopub.status.idle": "2021-03-07T17:25:10.335484Z", "shell.execute_reply": "2021-03-07T17:25:10.336108Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Appending to SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile -a $Ccodesdir/Sommerfeld.py\n", "\n", " /************* For radial falloff and the extrapolated k term *************/\n", " if (radial_falloff_power > 0) {\n", "\n", " // Move one point away from gz point to compare pure advection to df/dt|interior\n", "\n", " const int i0_offset = i0+FACEX0;\n", " const int i1_offset = i1+FACEX1;\n", " const int i2_offset = i2+FACEX2;\n", "\n", " // Initialize derivatives to crazy values, to ensure that\n", " // we will notice in case they aren't set properly.\n", " REAL r_offset = 1e100;\n", " REAL partial_i_f_offset = 1e100;\n", "\n", " contraction_term(params, which_gf, gfs, xx, FACEXi, i0_offset, i1_offset, i2_offset, &r_offset, &partial_i_f_offset);\n", "\n", " const REAL invr_offset = 1./r_offset;\n", "\n", " // Pure advection: [FIXME: Add equation (appearing in Jupyter notebook documentation)]\n", " const REAL extrap_rhs = char_speed*(partial_i_f_offset + invr_offset*(gfs[IDX4S(which_gf,i0_offset,i1_offset,i2_offset)] - var_at_infinity));\n", "\n", " // Take difference between pure advection and df/dt|interior\n", " const REAL diff_between_advection_and_f_rhs =\n", " rhs_gfs[IDX4S(which_gf,i0_offset,i1_offset,i2_offset)] + extrap_rhs;\n", "\n", " // Solve for k/(r_gz)^n+1 term\n", " rhs_gfs[IDX4S(which_gf,i0,i1,i2)] += diff_between_advection_and_f_rhs*pow(r_offset*invr,radial_falloff_power);\n", "\n", " }\n", " } // END for(int pt=0;pt\n", "\n", "## Step 3.e: Inner Boundary Conditions \\[Back to [top](#toc)\\]\n", "$$\\label{innerbcs}$$\n", "\n", "Finally, we apply parity conditions for inner boundary conditions. Since the Sommerfeld boundary condition treats the right hand sides, these data are thus copied over to the right hand sides of points in the inner boundaries, according to appropriate parity conditions. For a detailed discussion on inner boundaries and parity conditions, see [Tutorial-Start_to_Finish-Curvilinear_BCs](Tutorial-Start_to_Finish-Curvilinear_BCs.ipynb)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.343105Z", "iopub.status.busy": "2021-03-07T17:25:10.342062Z", "iopub.status.idle": "2021-03-07T17:25:10.346030Z", "shell.execute_reply": "2021-03-07T17:25:10.346740Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Appending to SommerfeldBoundaryCondition_Validate/Sommerfeld.py\n" ] } ], "source": [ "%%writefile -a $Ccodesdir/Sommerfeld.py\n", "\n", " // Apply INNER (parity) boundary conditions:\n", " for(int pt=0;ptnum_ib_gz_pts[which_gz];pt++) {\n", " const int i0dest = bcstruct->inner[which_gz][pt].inner_bc_dest_pt.i0;\n", " const int i1dest = bcstruct->inner[which_gz][pt].inner_bc_dest_pt.i1;\n", " const int i2dest = bcstruct->inner[which_gz][pt].inner_bc_dest_pt.i2;\n", " const int i0src = bcstruct->inner[which_gz][pt].inner_bc_src_pt.i0;\n", " const int i1src = bcstruct->inner[which_gz][pt].inner_bc_src_pt.i1;\n", " const int i2src = bcstruct->inner[which_gz][pt].inner_bc_src_pt.i2;\n", "\n", " rhs_gfs[IDX4S(which_gf,i0dest,i1dest,i2dest)] =\n", " bcstruct->inner[which_gz][pt].parity[gfs_parity[which_gf]] * rhs_gfs[IDX4S(which_gf, i0src,i1src,i2src)];\n", " } // END for(int pt=0;pt\n", "\n", "# Step 4: Python file validation \\[Back to [top](#toc)\\]\n", "$$\\label{py_validate}$$\n", "\n", "Here we validate the python code generated by this notebook, [SommerfeldBoundaryCondition_Validate/Sommerfeld.py](../edit/SommerfeldBoundaryCondition_Validate/Sommerfeld.py), against the trusted code in [CurviBoundaryConditions/CurviBoundaryConditions.py](../edit/CurviBoundaryConditions/CurviBoundaryConditions.py) line by line. Passing corresponds to complete agreement between the files.\n", "\n", "Note that there is more content [CurviBoundaryConditions/CurviBoundaryConditions.py](../edit/CurviBoundaryConditions/CurviBoundaryConditions.py) relating to more than just the Sommerfeld boundary condition, so we start the comparison where the Sommerfeld code begins." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.367825Z", "iopub.status.busy": "2021-03-07T17:25:10.366870Z", "iopub.status.idle": "2021-03-07T17:25:10.372301Z", "shell.execute_reply": "2021-03-07T17:25:10.371763Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "PASSED: SommerfeldBoundaryCondition_Validate/Sommerfeld.py matches trusted version\n" ] } ], "source": [ "# Then compare all files generated by this notebook\n", "# (output moved in previous code cell to validate/)\n", "# and the separate Python module (output to Baikal\n", "# and BaikalVacuum).\n", "import difflib\n", "\n", "def compare_two_files(filepath1,filepath2, file1_idx1=None):\n", "\n", " with open(filepath1) as file1, open(filepath2) as file2:\n", " # Read the lines of each file\n", " file1_lines = file1.readlines()\n", " file2_lines = file2.readlines()\n", "\n", " if file1_idx1!=None:\n", " file1_lines = file1_lines[file1_idx1:]\n", "# print(file1_lines)\n", "\n", " num_diffs = 0\n", " file1_lines_noleadingwhitespace = []\n", " for line in file1_lines:\n", " if line.strip() == \"\": # If the line contains only whitespace, remove all leading whitespace\n", " file1_lines_noleadingwhitespace.append(line.lstrip())\n", " else:\n", " file1_lines_noleadingwhitespace.append(line)\n", " file2_lines_noleadingwhitespace = []\n", " for line in file2_lines:\n", " if line.strip() == \"\": # If the line contains only whitespace, remove all leading whitespace\n", " file2_lines_noleadingwhitespace.append(line.lstrip())\n", " else:\n", " file2_lines_noleadingwhitespace.append(line)\n", " for line in difflib.unified_diff(file1_lines_noleadingwhitespace, file2_lines_noleadingwhitespace,\n", " fromfile=filepath1,\n", " tofile =filepath2):\n", " sys.stdout.writelines(line)\n", " num_diffs = num_diffs + 1\n", " if num_diffs == 0:\n", " print(\"PASSED: \"+filepath2+\" matches trusted version\")\n", " else:\n", " print(\"FAILED (see diff above): \"+filepath2+\" does NOT match trusted version\")\n", "\n", "import os\n", "\n", "notebook_cfile = 'SommerfeldBoundaryCondition_Validate/Sommerfeld.py'\n", "nrpy_cfile = 'CurviBoundaryConditions/CurviBoundaryConditions.py'\n", "\n", "idx1=258\n", "compare_two_files(nrpy_cfile, notebook_cfile, idx1)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Step 5: NRPy+ Interface for Applying Sommerfeld Boundary Conditions \\[Back to [top](#toc)\\]\n", "$$\\label{interface}$$\n", "\n", "To apply the Sommerfeld boundary condition to any given grid function, its wave speed at the boundaries, asymptotic value at infinity, and radial exponent of the k term (*radial_falloff_power*) must be specified. In general, a (*radial_falloff_power*) of 3 has been found to yield the best results, i.e. minimal initial transients and reflections. \n", "\n", "Here we showcase the features of the NRPy+ interface for implementing this boundary condition and defining these values. The interface is a python class structure that allows the user to specify default values for each grid function, which may then be changed. This may be useful when the user wants to define the default values for several grid functions but wishes to specifically alter few others.\n", "\n", "To begin, we define our global NRPy finite differencing order and our coordinate system of choice. Our Sommerfeld boundary condition driver check that the finite differencing chosen for the driver is less than or equal to the global finite differencing order.\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.377114Z", "iopub.status.busy": "2021-03-07T17:25:10.376412Z", "iopub.status.idle": "2021-03-07T17:25:10.380509Z", "shell.execute_reply": "2021-03-07T17:25:10.381039Z" } }, "outputs": [], "source": [ "import finite_difference as fin # NRPy+: Finite difference C code generation module\n", "FD_order = 6\n", "par.set_parval_from_str(\"finite_difference::FD_CENTDERIVS_ORDER\",FD_order)\n", "\n", "# Set the coordinate system for the numerical grid\n", "# Choices are: Spherical, SinhSpherical, SinhSphericalv2, Cylindrical, SinhCylindrical,\n", "# SymTP, SinhSymTP\n", "CoordSystem = \"Spherical\"\n", "par.set_parval_from_str(\"reference_metric::CoordSystem\",CoordSystem)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, let's define a few grid functions. Note that the boundary condition should be used only for variables defined in three spatial dimensions." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.386405Z", "iopub.status.busy": "2021-03-07T17:25:10.385749Z", "iopub.status.idle": "2021-03-07T17:25:10.388161Z", "shell.execute_reply": "2021-03-07T17:25:10.388804Z" } }, "outputs": [], "source": [ "# Step P3: Defining a couple of grid functions\n", "uu, vv, ww, xx, yy, zz, = gri.register_gridfunctions(\"EVOL\",[\"uu\",\"vv\",\"ww\",\"xx\",\"yy\",\"zz\"])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "NRPy+ can now access these grid function names, and will store default values for the boundary condition. First we import `CurviBoundaryConditions.CurviBoundaryConditions`, and define a class instance _bcs_ using `sommerfeld_boundary_condition_class`.\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:10.395853Z", "iopub.status.busy": "2021-03-07T17:25:10.395072Z", "iopub.status.idle": "2021-03-07T17:25:11.047145Z", "shell.execute_reply": "2021-03-07T17:25:11.047650Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wrote to file \"SommerfeldBoundaryCondition_Validate/boundary_conditions/parity_conditions_symbolic_dot_products.h\"\n", "Evolved parity: ( uu:0, vv:0, ww:0, xx:0, yy:0, zz:0 )\n", "\n", "\n", "Wrote to file \"SommerfeldBoundaryCondition_Validate/boundary_conditions/EigenCoord_Cart_to_xx.h\"\n", "\n", "Successfully generated Sommerfeld boundary condition C code\n" ] } ], "source": [ "import CurviBoundaryConditions.CurviBoundaryConditions as cbcs\n", "cbcs.Set_up_CurviBoundaryConditions(os.path.join(Ccodesdir,\"boundary_conditions/\"),\n", " Cparamspath=os.path.join(\"../\"), BoundaryCondition='Sommerfeld')\n", "\n", "bcs = cbcs.sommerfeld_boundary_condition_class(fd_order=4,\n", " vars_radial_falloff_power_default=3,\n", " vars_speed_default=1.,\n", " vars_at_inf_default=1.)\n", "# bcs.vars_radpower.items()\n", "bcs.vars_at_infinity['VVGF'] = 0.0\n", "bcs.write_sommerfeld_file(Ccodesdir)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the instance _bcs_ we may change these default values using the grid function names, since NRPy+ stores these values in python dictionaries. We then print out the contents of the dictionaries." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:11.054428Z", "iopub.status.busy": "2021-03-07T17:25:11.053352Z", "iopub.status.idle": "2021-03-07T17:25:11.057147Z", "shell.execute_reply": "2021-03-07T17:25:11.057760Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GF values at infinity = dict_items([('UUGF', 5.0), ('VVGF', 0.0), ('WWGF', 1.0), ('XXGF', 1.0), ('YYGF', 1.0), ('ZZGF', 4.0)])\n", "GF speeds = dict_items([('UUGF', 0.5), ('VVGF', 1.0), ('WWGF', 1.0), ('XXGF', 1.0), ('YYGF', 1.0), ('ZZGF', 1.4142135623730951)])\n", "GF radial powers = dict_items([('UUGF', 3), ('VVGF', 3), ('WWGF', 3), ('XXGF', 3), ('YYGF', 3), ('ZZGF', 3)])\n" ] } ], "source": [ "# Changing values for uu\n", "bcs.vars_at_infinity['UUGF'] = 5.\n", "bcs.vars_speed['UUGF'] = 0.5\n", "\n", "# Changing values for zz\n", "bcs.vars_at_infinity['ZZGF'] = 4.\n", "bcs.vars_speed['ZZGF'] = 2.**0.5\n", "\n", "print('GF values at infinity =', bcs.vars_at_infinity.items())\n", "print('GF speeds = ', bcs.vars_speed.items())\n", "print('GF radial powers = ' ,bcs.vars_radial_falloff_power.items())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we write these values into the `sommerfeld_params.h` file, and generate the `radial_derivative.h` file, which defines the function used to calculate the $\\partial_r f$ term, which our C code may read from later, using the function write_sommerfeld_files(), which takes the C codes directory path and finite differencing order as inputs. __Only second and fourth order finite differences are supported at this time.__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Step 6: Validation against the [Einstein Toolkit's NewRad boundary condition driver](https://www.einsteintoolkit.org/EinsteinEvolve/thornguide/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk) \\[Back to [top](#toc)\\]\n", "$$\\label{etk_validation}$$\n", "\n", "Here we showcase some validation results of our Sommerfeld boundary condition as implemented in NRPy+ against [ETK's NewRad boundary condition driver](https://www.einsteintoolkit.org/thornguide/EinsteinEvolve/NewRad/documentation.html#XEinsteinEvolve_NewRad_Alcubierre:2002kk), storing the ETK data and subsequent plots in the [SommerfeldBoundaryCondition folder](SommerfeldBoundaryCondition). Specifically, we do so by\n", "\n", "1. Generating plane wave initial data for ETK using the [ETK_thorn-IDScalarWaveNRPy notebook](Tutorial-ETK_thorn-IDScalarWaveNRPy.ipynb), with the NRPy+ code generation documented [here](Tutorial-ScalarWave.ipynb)\n", "\n", "2. Generating the ETK evolution C codes using the [ETK_thorn-WaveToyNRPy notebook](Tutorial-ETK_thorn-WaveToyNRPy.ipynb), with the NRPy+ code generation generation also documented [here](Tutorial-ScalarWave.ipynb)\n", "\n", "3. Compare results to [Tutorial-Start_to_Finish-ScalarWaveCurvilinear](Tutorial-Start_to_Finish-ScalarWaveCurvilinear.ipynb), adding 1e-16 to the log$_{10}$(relative error) plots to avoid taking the log$_{10}$ of zero where we have perfect agreement. $t$=0.3 represents 6 time steps into the systems\n", "\n", "For both the evolution thorn and NRPy+ code we define the gridfunctions __UUGF__ and __VVGF__, use RK4 time stepping, and fourth order finite differencing. For the boundary condition parameters, we set uu_at_infinity = 2.0, vv_at_infinity = 0.0, and char_speed = 1.0, and var_radial_falloff_power = 3.0 for both evolution variables.\n", "\n", "First we show validation results for the case of a scalar wave propagating in the +x direction (initial data, documented [here](Tutorial-ScalarWave.ipynb), with kk0 = 1, kk1 = kk2 = 0), overlaying $u\\left(x, y=0,z=0,t=0.3\\right)$ from the ETK thorn and from NRPy+, and plotting the relative difference between the two.\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:11.071725Z", "iopub.status.busy": "2021-03-07T17:25:11.063677Z", "iopub.status.idle": "2021-03-07T17:25:11.078345Z", "shell.execute_reply": "2021-03-07T17:25:11.078846Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAJYCAYAAAA6xSjbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd1gUV9sG8HspC9KbYEWsqETFDvYaNRp7I1HRzxpNscSo0TeiJpZo1KhRY4/GGkVjIsbeG/YYWxILIgqK9Lose74/yI4s7MKCwIJ7/65rr5Azc2aemZ1d59lz5hyZEEKAiIiIiIiIjI6JoQMgIiIiIiIiw2BCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERERERERGigkhERERERGRkWJCSEREREREZKSYEBIRERERERkpJoRERAbQpk0byGQyBAQE5GlZcfH48WPIZDLIZDI8fvzY0OHkWUk4x6Q/Dw8PyGQybNq0ydChEBGVOEwIiQpJbGwszMzMIJPJsGjRIp3r3bt3T7qx9vDwyHGbnTt3hkwmg6+vbwFHW7xNmTJFOkcffvihocMxqKVLlyIgIAA3btwwdCjFxsGDB6Xrw93dHSqVytAhEem0b98+BAQEYN++fW+0nbfhu+DEiRPo1asXypYtCwsLC1SoUAGDBg3CtWvX8r3N2NhY/PDDDxg2bBgaNGiA8uXLw8LCAjY2NqhZsyZGjBiBy5cvF+BREJV8TAiJCom9vT3q168PADh58qTO9U6cOCH9HRIS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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 400, "width": 400 } }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAJYCAYAAAA6xSjbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd3gU1foH8O+m90oILY3QJCT0qmhQmkoxXriAQOASwIJIEdRYgAtXLkUgAhcUQaqSXBFQb2giLYCUEBIJTVoSUmlppJfz+yO/HXeT3c0m2ZTdfD/Ps49k5syZd3Z3xnn3zDlHJoQQICIiIiIiokbHqL4DICIiIiIiovrBhJCIiIiIiKiRYkJIRERERETUSDEhJCIiIiIiaqSYEBIRERERETVSTAiJiIiIiIgaKSaEREREREREjRQTQiIiIiIiokaKCSEREREREVEjxYSQiIiIiIiokWJCSERERERE1EgxISQiIiIiImqkmBASERERERE1UkwIiYiIiIiIGikmhERERERERI0UE0IiIiIiIqJGigkhERERERFRI8WEkIiIiIiIqJFiQkhERERERNRIMSEkIiIiIiJqpJgQEhERERERNVJMCImIiIiIiBopJoRERERERESNFBNCIiIiIiKiRooJIRERERERUSPFhJCIiIiIiKiRYkJIRERERETUSDEhJCIiIiIiaqSYEBIRERERETVSTAiJiIiIiIgaKSaEREREREREjRQTQiIiIiIiokaKCSEREREREVEjxYSQiIiIiIiokWJCSERERERE1EgxISQiIiIiImqkmBASERERERE1UkwIiYiIiIiIGikmhERERERERI0UE0KiBkwmk0Emk+HEiRONcv/1bdGiRZDJZPD391dbZuvWrejbty/s7Oyk9yskJERaX1JSgtWrV6Nr166wtraWyuzfv78OjoBqU2M/PwxJXFyc9HnGxcXVdzhERHWKCSGRBvKEoPzL3NwcLVq0wJAhQ7B582YUFRXVd6hVEhISgkWLFiE6Orq+Q9E5f3//Cp+XiYkJHB0d4enpicGDB+PDDz/E6dOna7yvVatWYcqUKTh37hzy8vLQtGlTuLq6wtraWioze/ZsvP/++4iOjkZxcTFcXV3h6uoKCwuLGu+fdOfDDz+Uvi/jx4+v73CINNLFNTwjIwOLFi3CokWL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64KHhwfat29f/YNT4+7duwB09zgqUX1iQkhUQ97e3hgzZgwAYMmSJVKfHmtra7zxxhsAgOXLlyMhIUFjPVUZ4VI+UIvi446KlixZonFUNfloaRkZGVrvU5V27dpJj2/t2LFDah3s1KmT2hudadOmASi7Kb98+bLG+mtz1M+EhASMGDECOTk5MDY2xueff15r+1Jn9OjRcHBwQFFREebOnavxpqy0tLRan1fbtm2lFphPPvmk0psvXb/n8gGHNm/eXOnnLVebMRcWFkqPOP/973+HjY2Nxpf83N63b5/W+xk7diwA4Pfff8eRI0cqrC8uLsbixYsBlJ0rnTp10jr+ysgfM4yLi5NGOVYkhMDSpUtrtI/r169j9uzZAMpGUB4wYABGjhyJd955BwDw1ltv4d69e9Wqu7Jr20cffaRx+wcPHiAwMBBCCIwbNw6BgYHo0aOHdH4vWLBAY6JVXnFxscZWRUtLS+nfqkbgVachXMMVR82s6f8LtH20W9VL/qNcVYwfPx7GxsbIzs7G+vXrK6yPi4uTWmHlIwZXRWU/mFy7dg0//fQTgLp/soSoVlRxmgqiRkWbiemFEOLKlSvSZMgbN26UlicnJ4sWLVoIAKJFixZix44dIisrS1r/4MEDsWfPHvHaa6+JwYMHV6hXvu/y85zJ53YzMTERX3/9tTTpdUpKipg9e7YAIJydndXO8TR+/HgBQPTr1088efJE7XGp27+i9evXS3MGyufGWr58udry2dnZwtfXVwBlk3avW7dOPHr0SFqfnp4uDhw4ICZOnCg6duyoth51NM1DmJeXJ86ePSvmzZsnzZNoZGSkNIG1orqYmH7btm1SmZdfflmcO3dOmuuvpKREXLt2TXzxxReiQ4cOFeaV0xSfoitXrkiT13fo0EHs379f5OXlSesTExPFjh07xIsvviimTp1a5WMQQv13JSsrq8LE9IpzV96+fVv885//FCtXrtRZzJr897//lWK9e/dupeWfPn0qzUO3du1arY65/MT03333nTQv3927d8WIESOkbTVNTK9pjrlJkyapPb8HDRokzcO3detWaWL6+/fvi3HjxtVoYnrF+QZ79+6tNO9kXl6e6NSpkwAg+vTpU+U5RIUQYsKECdLckD/++KNUx927d8W4ceOETCYTjo6OAoBYuHCh0ralpaVi6NChAoDw8vJS+p6VlpZK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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 400, "width": 400 } }, "output_type": "display_data" } ], "source": [ "from IPython.display import Image\n", "from IPython.display import display\n", "\n", "x_axis_plot = Image(\"SommerfeldBoundaryCondition/NRPy_vs_ETK_x-axis.png\", width=400, height=400)\n", "E_relx_axis_plot = Image(\"SommerfeldBoundaryCondition/E_rel_x-axis.png\", width=400, height=400)\n", "display(x_axis_plot,E_relx_axis_plot)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lastly we show validation results for the case of a scalar wave propagating along the -x, -y, +z diagonal, and taking a slice along the y-axis at x=z=0 (initial data, documented [here](Tutorial-ScalarWave.ipynb), with kk0 = -1, kk1 = -1, kk2 = 1), overlaying $u\\left(x=0, y,z=0,t=0.3\\right)$ from the ETK thorn and from NRPy+, and plotting the relative difference between the two.\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:11.084152Z", "iopub.status.busy": "2021-03-07T17:25:11.083224Z", "iopub.status.idle": "2021-03-07T17:25:11.090284Z", "shell.execute_reply": "2021-03-07T17:25:11.090784Z" } }, "outputs": [ { "data": { "image/png": "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cKlSpQpOnz6NsWPHyn36HBwcMGLECFy4cCHX8w/I7Et35coVub5arYazszNGjhyJCxcuGJzfUatSpUo4duwYNm7ciJ49e6JixYpISUlBeno6fHx88Oqrr2LRokX466+/jD52bV/RTp06GT0nXf/+/aFQKKBSqeTHofOiVCrxyy+/YOvWrejevTvc3NyQmJgINzc3dO/eHdu3b8eGDRv0PlJdWJaWlti8eTN++OEHNGvWDLa2tlCr1WjSpAl++OEHrFu3Tn5MUDvxekG99NJL8oAd+gaTya9XXnkFf/31F3r06AEXFxeo1Wq4u7tj9AzbfAMAACAASURBVOjROH/+PDp27Ki33nfffYedO3dCoVAYnG+wU6dOmD59OgDg7bffxo0bN/KMp2fPnli3bh1Gjx4Nf39/ODs7Iz4+Ho6OjmjWrBk+/fRTXL9+HX5+fvk6zhdffBFnzpzBwIED4e7uDo1GA0dHRwwcOBAnTpzI8/vzww8/xOLFi9GkSRO5L2xYWJhRg+5ktXXrVkydOhW1a9eGSqWSvwcK+xhpcfDx8cGVK1fw8ccf44UXXoAkSbCyssKLL76I+fPn49SpU/medxLI/GzWr1+PMWPGyJ95XFwcFAoFatSogQEDBmDTpk04f/58vke/JirLJCE4JjIRUX61b98eR44cwezZsxEYGGjqcMhMCCHg7e2NiIgIrFu3zqibN4acP39eHkQnNDS0wP0HiYiodGMLIRERUSmxfv16REREwNLSEp06dSrUtr799lsAmS2FTAaJiMwXE0IiIqISZMiQIdi6davOXHZRUVGYO3euPILriBEjULFixQLvY8+ePfKIvu+++27hAiYiolLNMu9ViIiIqLj88ccf8oTxdnZ2sLKy0pnepU2bNli4cGG+txsREYHWrVsjJSUFMTExADL7/XXv3r1oAiciolKJCSEREVEJsmTJEvzxxx+4ePEioqOjkZSUhPLly6Nhw4YYPHgwhg8fXqABbdRqNcLCwiBJEqpUqYL+/fsX+aBHRERU+nBQGSIiIiIiIjPFPoRERERERERmigkhERERERGRmWJCSEREREREZKaYEBIREREREZkpJoRERERERERmigkhERERERGRmeI8hKVYz549ERwcDADw9vY2cTREREREREXj33//hb29PR4+fGjqUMo8JoSlnEqlMnUIRERERERFSqVS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jzbWzQBs9W5IUL/plAwsZ3A6ESlMNMZ1HnejA/xdx44dady4MSNGjKBjx45YrdZrfm1ubi7z58/nnXfeIT4+/ob2J2zSpAl16tQhIiKCiIgIQkNDycrKuu7rAOzYsYOuXbtStGhRli1bRtOmFzYFttlsbNy48YauKyIikl+6h1ekbomz+Ew/An99Flr77AYOf9ycpHu+ICy8jbEBRUTkljPVDGF0dDSvvvoqKSkplCpVim7dutGyZUsiIiKoUqXKv85PTk5m/fr1rFq1itmzZ3PixAkqVqzIG2+8wSOPPHLTeby9vcnKyrqhGcIOHTqwePFiFi5ceEOzlddKn56IiMitdvrkMZK/eIwG6WsctWy7lY3Vh9H4wf/DUgif2RcR59IY13lM1RACZGVlMXHiRD755BOSk5Mdz/C5ublRokQJihYtypkzZzh58iQ227mlse12O7fddhsDBw7kySefxMvL65ZkudGGcP/+/YSGhhIaGsru3btvSZbL0ZtFRETyg91mI27GG4TvGou75cJWFBuKtqH6E1PxLVriCq8WEbk5GuM6j+kawr9bvXo1CxYsYM2aNSQkJJCZeWEZ7CJFilC3bl2ioqLo2LEjLVq0uOV//402hNOmTePRRx+lV69eTJ06le+//55ff/2VvLw8br/9dh588EFKlix5SzLqzSIiIvlpe+yPBC55kkBOOGp73YKgezQhNRoamExECjKNcZ3HVM8Q/lOLFi0uavTS09M5deoUxYsXx9fX18BkV7Z9+3YA/Pz8iIqKIjY29qLjL7/8Mv/73/9o3bq1EfFERESuWc3IdhwNXU3ilF7cnr0FgBBbChnftGddo3do1LGvwQlFRORmuNRDAL6+vpQvX97UzSDAiRPnPkWdNGkSO3bsYMaMGRw/fpykpCR69erF8ePH6dKlCwcOHLjma9aqVeuSf/L7llQREZHAssFUH76cmPKPOWreZDP+1yO8OjeRrNzrX8hNRETMwaUaQldx/tnG3NxcPvvsM3r27EnJkiW57bbbmDZtGhEREZw6dYqJEycanFREROTauHt40uSJcWyO+ozT+PJRblfW2OowLXYv3T6JYd+xDKMjiojIDTD1LaOrV6++rvPz4znCG+Hn5+f4Z/fu3f91vE+fPqxfv56ff/75mq95ufunz99fLSIi4gz17ujBwarh/DTvABxMA2DrgVN0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GOF8HB4ertGjR2vo0KHq06ePtmzZoo8//li33HKLW14fQOMxb968ao8TExP16quvKiEhQZMmTdJjjz2mMWPGeKk7AJcCAiEatcOHD2vv3r0X9Jzi4mK39BIaGnre8YuKiiRJYWFhbukBZ1efeXJmv56phYeH11jXVfs1NDRUU6dO1ZQpU/Tll18SCBuY873HL2QeuHIsNCye2rf33HOPnnzySe3du1dpaWlq27ZtvcZD48SxBK5AIESjtn37dm+34NSmTRtJUm5uroqKis76PcKMjAxJUlxcnEd783X1mSfh4eGKiIhQfn6+MjIy9Itf/KLGOq7crx07dpQkHT9+vN5jwbXOvMfP7O+fu5B54Mqx0LB4at9arVbFx8crKytLx48fJxD6KI4lcAW+Qwi4SGRkpPPAvG3bthrLjx49qpycHMXFxZ31KhMarh49ekiStm7dWmNZRUWFdu7cqcDAQHXq1Kner5WbmytJtd6YCN5zrnnw03pdbizkyrHQsHhy33K8AMcSuAKBEHChkSNHSpI+/fTTGsvO1EaPHu3RnlB/59qvK1asUGlpqYYPH67AwMB6v9aSJUsk1X4LcXjPwIEDFRERoYMHD571qvOFvMevueYaWa1Wfffdd8rKyqq2rKysTMuXL5efn5+uu+461zQPj3HlPDmXXbt2ae/evQoODlZCQkK9xkLjxbEErkAgBC5CQkKCEhISdOzYsWr1adOmyc/PT/Pnz9eGDRuc9f379+v555+XzWbTtGnTPN0u6unee+9VeHi4PvvsMy1dutRZz8rKct4K/pFHHqnxvNrmyQsvvKCcnJxqtYqKCv3+97/XJ598oqCgIN11111u2BLUR0BAgKZMmSJJevDBB53fzZGkuXPnKiUlRYMHD1afPn2c9TfffFMJCQmaOXNmtbFatGihW265ReXl5XrggQdUWVnpXDZjxgxlZ2fr9ttvV7Nmzdy8VXA1V86TVatW6V//+leN10hJSdGNN94oY4zuvfdeBQQEuGlr0FBwLIFbGcDHjR071iQlJZmkpCTTunVrI8m0atXKWRs7dmyN50gykszhw4drLJs7d66RZGw2m7n22mvNmDFjTFBQkJFk5s2b54Etgjt8+umnxmq1GovFYoYOHWpuuOEGExkZaSSZ6dOnn/U5tc0TScZut5uBAwea8ePHm+uuu860bNnSSDKBgYFmyZIlHtgiXIySkhKTlJRkJJkWLVqYm266yfk4JibGHDx4sNr6s2fPNpLMhAkTaoyVnZ1t4uPjjSQTHx9vbr75ZtO1a1cjyXTs2NGcPHnSQ1sFV3PVPDlTj4uLM9dff70ZP3686devn7HZbEaSGTJkiCkuLvbglsFVVqxY4TzPSEpKMhaLxUiqVluxYoVzfY4lcCcCIXxeXFyc88T9bD9xcXE1nnOuQGiMMcuWLTODBg0yoaGhJjQ01AwaNMgsX77cvRsCt/v+++/NNddcYyIjI01wcLDp27evef/992tdv7Z58tRTT5lf/epXpk2bNiYoKMgEBgaaDh06mMmTJ5vU1FQ3bwXqq7i42MyaNcvEx8ebgIAA07x5c3PnnXeao0eP1lj3XCdxxhhz8uRJ89BDD5nWrVubgIAA07p1azN16lSTm5vr5q2Au7linqxbt87cfffdplu3bqZp06bGZrOZqKgoM2TIEPPuu++ayspKD20NXG3hwoXnPPeQZBYuXOhcn2MJ3MlijDHuuPIIAAAAAGjY+A4hAAAAAPgoAiEAAAAA+CgCIQAAAAD4KAIhAAAAAPgoAiEAAAAA+CgCIQAAAAD4KAIhAAAAAPgoAiEAAAAA+CgCIQAAAAD4KAIhAAAAAPgoAiEAAAAA+CgCIQAAAAD4KAIhAAAAAPgoAiEAAAAA+CgCIQAAAAD4KAIhAABnsWXLFlksFl1xxRW1rvOHP/xBFotFs2fP9mBnAAC4jsUYY7zdBAAADVGfPn20detW7dy5U4mJidWWGWPUoUMHpaWl6fDhw2rTpo2XugQA4OJxhRAAgFrcd999kqR33323xrLVq1fr0KFDGjFiBGEQANBoEQgBAKjFrbfeqvDwNguxmwAAAfpJREFUcH3wwQcqKyurtmzBggWSpIkTJ3qjNQAAXIJACABALUJCQnT77bfr1KlTWrJkibOek5Ojv//972revLlGjx7txQ4BAKgfAiEAAOdwto+NLlq0SOXl5brrrrtks9m81RoAAPXGTWUAADiPgQMHat26ddq3b586duyoxMRE7dmzRwcOHFD79u293R4AABeNK4QAAJzHmauECxYs0Nq1a7V7924NGzaMMAgAaPS4QggAwHmUlpYqNjZWfn5+Gj58uD788EMtXrxYN910k7dbAwCgXgiEAADUwSOPPKK5c+dKkmJiYpSRkaGAgAAvdwUAQP3wkVEAAOpg8uTJslgskqQJEyYQBgEAlwSuEAIAUEdt2rTR0aNHlZqaqs6dO3u7HQAA6o0rhAAA1MH69et19OhRDR48mDAIALhkEAgBAKiD559/XpI0ZcoUL3cCAIDr8JFRAABqsW7dOr333nvauXOnNm3apN69e2vz5s2yWvl9KgDg0mDzdgMAADRU+/bt01/+8heFhYVp5MiReuuttwiDAIBLClcIAQAAAMBH8WtOAAAAAPBRBEIAAAAA8FEEQgAAAADwUQRCAAAAAPBRBEIAAAAA8FEEQgAAAADwUQRCAAAAAPBRBEIAAAAA8FEEQgAAAADwUQRCAAAAAPBRBEIAAAAA8FH/D7BDZ1KDlxIuAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 400, "width": 400 } }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAJYCAYAAAA6xSjbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAXEQAAFxEByibzPwAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdeXhTVcLH8V+a7oW2FGpBWUUWRUEZRUWURXEbBXFQVAQRBHUUF2TGZRRQZ/R1hRd9ZXRQFDeYUUEdEBlUEBQHHSyKArK17JvQhe5tzvsHk0uSJiVt0jbL9/M8fWhy7z333JCk+eVsNmOMEQAAAAAg6sQ0dgUAAAAAAI2DQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIAAAAAFGKQAgAAAAAUYpACAAAAABRikAIhDCbzSabzaalS5dG5fkb25QpU2Sz2dSvXz+f+8yaNUvnnnuuUlNTrcdr2rRp1vaqqio9//zzOuOMM5SSkmLtM3/+/Aa4AtSnaH99RJJRo0bJZrNp1KhRjV0VAGhwBEKgBs5A4PmTkJCg448/XpdccolmzpypioqKxq5qrUybNk1TpkxRdnZ2Y1cl6Pr161ft/ys2NlbNmjVT+/btdfHFF+v+++/XihUrAj7Xc889p9GjR+ubb75RSUmJjjvuOGVlZSklJcXa55577tF9992n7OxsVVZWKisrS1lZWUpMTAz4/Aie+++/33q+DB8+vLGrA/iUnZ2tKVOmuH3xVBfz58/XlClTwvrLqc2bN+vWW29Vhw4dlJiYqMzMTF1yySV6//33Ayr37bff1l133aU+ffqoffv2SklJUWJiotq2bashQ4YEXD4QcgwAnyZPnmwkGUkmKyvL+klOTrbul2TOPPNMc/DgwaCf31n+F198EdRy27VrZySZWbNm1bhfly5dTJcuXcy///3voJ6/PvXt29dIMnFxcTX+n0kyJ598slm6dKnPsl544QXTpUsXM2LECK/bs7KyjCRz1113mfLy8mrbCwoKTFxcnJFknn76aeNwOIJ2nQieiooK07JlS+t5kZiYaA4dOnTM4+rr9YmG98ADD5guXbqYBx54oLGrckyzZs0ykky7du0CKuemm24yksxNN90UlHo1tAULFri9r6emppqYmBjr9s0331zn99yUlBS3vxVpaWkmPj7e7b6LL77YHD58OMhXBTQOWggBP+3Zs8f6KSoqUm5ursaOHStJ+u6773TXXXc1cg2Db/369Vq/fr169erV2FWptd69e1f7PysuLtZXX32lCRMmKDU1VevWrVP//v3117/+1WsZd955p9avX6/Zs2dX27Z//37t3btXkjR27FjFxcVV22f9+vVW6/Htt98um80WxCtEsCxYsEB79uxRt27dNGDAAJWWluqdd95p7GqhAT355JNav369nnzyycauCvywdetWXXvttSouLtZ5552nDRs2KD8/X/n5+Zo0aZKkI935n3nmmTqVf8stt+iNN97Qxo0bVVpaqry8PJWWlmrz5s0aP368JGnx4sW67777gnZNQGMiEAJ11LZtW73yyisaMGCAJOnvf/+7Dh8+3Mi1Qk2SkpLUu3dvPffcc/rhhx/UvXt3GWN05513avny5bUqq7i42Pq9SZMmdd4Hje/VV1+VJI0YMUIjR450uw9A6Jk0aZKKiorUsmVL/fOf/1Tnzp0lHXmfffTRRzVu3DhJ0l/+8hcdOnSo1uVPmzZNI0eO1EknnaSEhARJR8YMn3jiiZo+fbquv/56SdLs2bPDbsgI4A2BEAjQpZdeKkkqLy/Xxo0bve5TWFio//mf/9G5556rjIwMJSQkqE2bNrruuuu0cuXKOp137dq1mjJligYMGKCOHTsqKSlJqampOuOMM/Twww/rwIED1Y5xjonMzc2VJN18883Vxtu58jZpxtSpU2Wz2ZSVlaXKykqf9TPGqH379rLZbHr88cerbS8vL9dLL72k/v37q0WLFoqPj1fLli01ePBgffLJJ3V6TGqjXbt2+vDDD5WSkqKqqio99NBD1fbxNqnM0qVLZbPZ1L59e+u+Dh06WI9V+/bt9frrr1c7zvUx9jZJzdq1azVu3Dh16tRJycnJatKkibp3764//elPXv8vvdXv/fff18UXX6zjjjtOMTExmjJlitv++/fv18MPP6wzzjhDaWlpSkxM1IknnqgxY8bop59+8noO5/U6nxubNm3S6NGj1aZNGyUkJKh169YaO3asdu7c6fV4p/Lycs2cOVOXXnqpsrKylJCQoFatWuncc8/VY489pq1bt3o9ri51ro3du3dr4cKFiomJ0Y033qjf/e53SklJ0erVq7VmzZqAyi4tLdW0adPUu3dvNWvWTImJiWrXrp1GjhxZ4/hd5+vm9ddfV3l5uZ555hn16NFDKSkpSktL04ABA7Ro0aIaz11UVKTJkyfr5JNPVlJSko477jhdfvnl+uyzz6qdw19//etfZbPZlJGRodLSUp/7ORwOq3zP5+CxHDp0SK+++qquvfZanXbaacrIyLAetxtuuEHffPON1+O+/vprxcbGymazaerUqV732bFjh5o3by6bzWb17nA61qQyc+fO1WWXXaasrCzFxcUpPT1dnTp10qBBg/R///d/NT4e3hQXF+vdd9/VyJEjdfrppyszM9Mam37VVVf5fA+02Wy6+eabJUm5ubnV3r/9ebydr+k33nhDkvTGG29UKyeUJ0oqKiqyxvDdfvvtSk9Pr7bPgw8+KEkqKCiolzGS55xzjiSppKREBw8eDHr5QINr7D6rQChzHUPoy1NPPWXt8+2331bb/v3335vWrVtb+9jtdtO0aVPrts1mM0888YTXslXDGCXnOED9d8xTRkaGsdls1n0nnHCCWb9+vdsxzzzzjMnKyrLGWaSmprqNs8vKyjrm+ffs2WPsdruRZP75z3/6fFyWLl1qXd/WrVvdtuXk5Jhu3bq5PQZpaWlu4zNuu+02n2XXxDmGsG/fvn7tf8cdd1jn3Lx5s9s25/+/a1lfffWVycrKMi1atLCOa9GihfX4nXnmmWbOnDkmKyvLNGvWzOsY1CFDhrid56mnnnIb+5KcnOw2XqVVq1Zm9erV1eruWr8JEyZYj2WzZs2M3W43kydPtvb917/+ZdLT060y4+Li3MbJxMfHmzfeeKPaOb744gtrn88//9w0adLESDJNmzY1sbGx1rbjjz/e7Nixw+tjvGXLFnPqqae6/X83a9bMbfzP3XffXe24uta5Np588kkjyQwcONC6b+TIkUaSGT9+fI3H1vT63LFjh9s1x8XFuT3HY2JizPTp072W63xtv/DCC+bss8+2jnc+9s7H8NVXX/V6/N69e80pp5zidm7n42iz2cyMGTP8HkfsqqCgwKrDm2++6XO/Tz75xHqv27Ztm9/lG+P+nmu3202zZs1MQkKC23X/7//+r9djH3vsMet54fl6qaqqst4bTj75ZFNUVOS2vabxdDfffLPbe1OTJk2qjUn2fI87Fuc4QNf3P88y77vvvmrHZWVlmdTUVOs55Pn+/cwzzxzz3M73sMTEROvvh2c5X331Va2upyEtWrTIeoxWrVrlc7+TTz7ZSDLXXXdd0OswdOhQ67nA2HBEAgIhUAN/AuGAAQOsP+oHDhxw27Zr1y5z3HHHGUnm6quvNt999501+cjevXvNI488Yn2onjdvXrWya/rAOXLkSPP666+b3Nxc676ysjKzZMkS06tXLyPJ9OzZ02ud/f0w6Ov8l112mZFkhg0b5vPYMWPGGEnmggsucLv/8OHDpmvXrkaS6devn1m6dKkpLS01xhiTl5dnnn/+eetD57Rp02qsnze1DYQLFy60rvO1115z2+YtEDpt3br1mB8GXcOULzNnzrQ+WPzlL38xu3fvNsYYU1lZab777jvr+dW6dWtTWFjotX7Ox+v+++83+/btM8YYU1paanJycowxxvzwww8mKSnJSDJjx441P//8s6msrDTGGJObm2t+//vfG0kmNja22pcartfQrFkzM2jQILNu3TpjzJHn29y5c60vOLxNvpOfn286depkHf/KK6+YvLw8a/vmzZvNc889Z55//nm34wKpc2046+YacD777DMjyWRkZFjPTW98vT4qKyutIJeWlmbeeustU1ZWZl3vFVdcYb1nLFy4sFq5ztdns2bNzAknnGDmz59vvW+sX7/enHPOOdb/u+tj6XTppZcaSSYpKcm8+uqr1jVs27bNDBs2zMTHx1vhozaB0BhjbrvtNq+va1dXX321kWSuuOKKWpVtjDEvv/yymTx5svnuu++sx8zhcJgtW7aYu+++29hsNmO3271+QVJVVWX69etnJJnOnTu7Tfjx6KOPGkkmISHBZGdnVzvWVyBcvny5Fb6eeuop8+uvv1rbDhw4YD799FNz0003mZ07d9bqOufPn28mTpxoVqxY4RZOd+3aZR599FFrMqoPP/yw2rHRPqnMs88+a732iouLfe53zTXXGEnmtNNOC8p58/LyzLfffuv2BcGkSZOCUjbQ2AiEQA1qCoS5ublm7Nix1vZBgwZV22f06NFGkrnhhht8nuP55583kkyPHj2qbaspENaksLDQmgFz+fLl1bYHGgjfffdd65vl/Pz8aseVlJRYrSEzZ8502+b8Fr9v375eZ+Y0xpgPPvjASEda3ioqKmq+WA+1DYQ7d+60rvNPf/qT27b6DoQFBQVWy82iRYu87lNRUWF+85vfGElm6tSpXusnyUyYMMHnNTpD5YMPPuhzn7vuustIMoMHD/Z5Df379zdVVVXVjp0+fboVQDz/vx5++GHrg7i3D/H1UWd/LVu2zEhHWjtdP5Q7HA7Tpk0bI8nMmTPH5/G+Xh9z5syxtn366afVjquoqLAC46mnnlptu/P1mZCQYIVvV/v27bNad9566y23bc4A4xlynaqqqkz//v2tfWobCLOzs61jPXsgGHOkB4EzzHz00Ue1Ktsfzhb9MWPGeN2+Y8cO07x5cyPJjBo1yhhjzIoVK6xeDb5aF32FI2cPkIsvvjio13EszzzzjJFkLrzwwmrbQi0Qur4P1eWntq2rzt4QzZo1q3G/e+65x0gyzZs3r/O1Of/Wef4kJCSYBx54wPqSCgh3jCEE/NSyZUvrJyUlRe3atdPf/vY3SVLXrl310ksvue3vOlPh/fff77Nc5yQWa9assWatDFSTJk3Ut29fSQrKenueBg8erNTUVJWWluof//hHte0fffSR8vPzlZiYqKFDh7ptc07WMWHCBK8zc0rSVVddpdTUVB04cED/+c9/gl5/VxkZGdbvDT0W5P3331deXp7OOOMMXXLJJV73iY2NtSYw+PTTT73uExMT4/M5lpOTo88//1yxsbGaOHGiz7o4n4dLlixRVVWV130eeughxcRU/7MxePBgSUfG03iOo33ttdckHZm174wzzvB5/vqqc02cz8Xf/e53Sk5Otu632WwaMWKE2z61MXfuXEnSueeeq4svvrja9tjYWE2ePFnSkbGjP/74o9dyhg4dqq5du1a7PzMzU+eee64k6YcffnDb5nw9tm/f3ut6ijExMXr44YdrcTXuevToYZ37lVdeqbZ91qxZqqioUOvWrXX55ZfX+Ty+/Pa3v5Xk+33thBNOsJ5zr7/+umbMmKEbbrhBVVVVuuKKK2o9G7RzfNr+/fvr9ByrK+d1rly5skHPWxdNmjSx1lety4/dbq/V+QoLCyXJ7TXrjXO7c/+6SEpKqlZPu92uP/7xj7rvvvtqXXcgVMU2dgWAcOErrI0cOVIvv/xytYXG//Of/1gTDXj7UOhNbm6usrKy/K7TP//5T7355pv69ttvtXfvXrdZLZ127Njhd3n+SkpK0tChQ/Xaa6/pzTff1JgxY9y2v/nmm5KOBIW0tDTr/p07d1oT2owZM6bGP6bOGVtzc3N19tlnB/sSQsJXX30lSVq3bp1atmzpc7+SkhJJsh47TyeddJKOO+64Gs/hcDh0yimn+DyH80NnUVGRfv31V6/l+fp/OP74463fXUN1bm6udu3aJUm68sorfZ67PuvsS0FBgd577z1JR4Olq5tuuklPPPGEPvvsM23btk1t27b1u+zvvvtOknTRRRf53Kd///6y2+2qqqrSd999p9NOO63aPjU9752PueeXGKtXr5YkXXDBBT6XOTnvvPMUGxtb46RQNbntttu0cuVKzZ49W08++aTi4+MlScYYzZw5U9KxX9812bJli1566SV98cUX2rx5swoLC+VwONz2qel9bdCgQbrzzjv14osv6ve//70kqVWrVpo1a1at63LhhRcqMTFR33//vc4//3yNGTNGAwYMUIcOHWpdlqe9e/fqpZde0uLFi/XLL78oPz+/WvgrLi7WoUOH1KJFi4DPV18mTpxY4xc34Wzw4MHWF16VlZVat26dnnzyST3++ON65ZVXNG/ePOsLEiCcEQgBPxljrH/37Nmjjz76SA888IBmz56t0047rdofROcHYcl3mPTkLdB543A4dOONN+rdd9+17ouNjVWzZs2sD2f5+fkqLS1VUVGRX2XW1siRI/Xaa6/pyy+/VG5urtq1ayfpyDfpzhkQPT9ouz4mvmbO9OTvY1JXrh+omzdvXq/n8uR8PEpLS/2apdDXY1FTEHKew+FwBPw8bNq0qdf7Y2OP/ilxnYJ9z5491u/O54c/gllnX+bMmaPi4mK1bdvW66yvnTt31jnnnKNvvvlGs2bNslr0/LFv3z5JR1qrfElMTFSLFi20d+9ea39Pvh5v6ehj7jnl/f79+yW5h3RPCQkJatGihdv/T21ce+21uvfee3XgwAF98MEHuu666yRJn3/+uTZv3iy7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53f14osvWmsGOtdPe+qpp3zuX1hYaE477TSj/y7a/cILL5gDBw5Y2w8dOmQWLlxoRowYYU455RSf5fhS0zqEJSUl5uuvvzYTJ0601kmMiYkxr7zyiteyGmJh+tdff93a57LLLjPffPONtdZfVVWV+fnnn82zzz5runbtWm1duZrq5+rHH3+0Fq/v2rWrmT9/vikpKbG279ixw8yePdsMGDDA3HLLLbW+BmN8P1cKCgqqLUzvunblpk2bzKOPPmqeeeaZoNW5Jn//+9+tum7ZsuWY+x8+fNgkJSUZSWb69Ol+XbPnwvRvv/22tebmli1bzKBBg6xja1qYvqY1AmtaQ27gwIFGkklOTjazZs2yFqbfvn27uf766wNamN5VRUWFadmypXUtdrvdbN++vc7l/fLLLyYmJsZIMldffbXZsWOHMcaYsrIyM3fuXJOZmWm9r3l7PrquN+j5f7V06VKr7BdeeKHasb4ez1tuucVcc8015r333jN79+617i8sLDQzZsww8fHxx1wv01NeXp5JSUkxkswFF1xgNmzYYIw58rxZtGiR6dixo9t1er6/bNy40do2d+5cv8/r6W9/+5v1uvS23mUo27Jli/UYnn/++eaXX34xxhx5vT766KPW32Nff4ucfye8reX4+OOPm+HDh5uFCxeaQ4cOWfdXVFSYb775xgwZMsR6/GtaYxgIJwRCoAb+BkJjjBk8eLCRZFq3bm19ADPGmJ9//tl07tzZKicmJsZkZGRYf8ycPxdddFG1Mn194Dx06JDp2rWrW5np6enWH8Fbb721xg+My5Yts/a12+2mVatWpl27dtX+OPoTCA8cOGB9KHLWZefOnTU+Vjt37jTnnHOOdYzNZjPp6ekmNTXV7TE56aSTaizHG+cf+ri4OJOVlWX9OMOF60+3bt3Ml19+6bOshgiExhi3D5b676LHzZs3txb4dv54LkLubyA05siHZc8P782bN7fCjvMn2IHQGGM2b95sTjnllGqvAWcokWTuvvvuoNW5JpdccomRZH7zm9/4fczVV19tJJnTTz/d72vesWOH6datm7VPfHy8SU9Pd3sMfC2SHmgg3L17t9v7Q1xcnHVu5xcgbdu2NZLMu+++6/fj4I3zyylJ5oorrgioLGOMuf/++93+b9PS0qzXQYcOHczbb7/t9fl46NAh65p81eORRx4xkkxiYqL54Ycf3Lb5ejyd9zt/mjRp4vb/KMn06dPHHD58uFbXOWPGjGrlJiYmGunIl2sfffRRje8vF154obW9adOm1vv31KlT/a7DwYMHTWZmplWO80u9du3amZUrV9bqehrDggUL3N5D0tLSrC8EJJmbb77ZOBwOr8fWFAhd/+47/2+aN29uYmNj3e4fNmyY25dUQDgjEAI1qE0gXLVqlbWv5we90tJS8/LLL5uLL77YHHfccSY2NtYkJyebk046yVxzzTXmlVde8dpSV9MHzoMHD5p77rnHtG/f3sTFxZkWLVqY/v37Wx/wavrAaIwxCxcuNPYaV28AACAASURBVBdddJFp3ry59c2553X6EwiNMeaqq66y9h04cGCN+zpVVlaad9991wwaNMgcf/zxJj4+3iQmJpr27dubK6+80kybNs3s2rXLr7JcOf/Qu/7Y7XaTlpZm2rVrZy666CLzxz/+0axYseKYZTVUIHSWN3HiRNOjRw+Tmppq7Ha7adasmTnzzDPN+PHjzb/+9S+r5dCf+nlTUFBgnn32WXPBBReY5s2bG7vdbpo0aWJOPvlkc+ONN5q333672gfbYARCY4608rz00kumX79+Vtg9/vjjzbnnnmsef/xxk5OTE7Q6+7Jt2zbruV5TK7anOXPmWNf3n//8x+9rLikpMc8//7w555xzTFpamomPjzdt2rQxI0aMMN9//73P8wUaCI050oL1yCOPmC5dupiEhATTokULc/nll5ulS5caY4zVQv7JJ58c8/prsmbNGutx+PjjjwMqy2n27NmmV69eJikpySQnJ5uTTz7ZPPTQQyYvL8/n83Ho0KFGkmnZsqXZt2+f13IrKytN7969jSRzyimnmOLiYmubr8dz06ZNZvr06WbIkCGma9euJj093cTGxprjjjvODBw40Lz22mumsrKyTte5YMEC069fPysMduzY0YwfP97s3LnzmO8vhw4dMvfee6/p3LmzFSQlmcmTJ9eqDuvWrTPXXXedOeGEE9y+gDrWe36o2LRpkxk7dqxp37699TwfOHCgee+992o8rqZAmJuba1544QXzu9/9znTt2tVkZGRYf0NOO+00M27cOLN8+fJ6uiKgcdiMYT5jAACixcaNG9W5c2dJR8bStmnTps5lPffcc5o4caLatGmjrVu31nn8IACg8TCpDAAAUcQ5IcYpp5wSUBisqqrSjBkzJB2ZLIowCADhiUAIAEAEWb9+vW655RZ9+eWXbrMNr1+/XjfffLNmzZolSXrggQfqfA6Hw6HJkydr8+bNSklJsWYcBQCEH7qMAgAQQbKzs92WfUlLS1NFRYWKi4ut++666y797//+b63Lfu+99zRx4kQdPHjQCpvPPvus7rvvvsArDgBoFLGNXQEAABA8HTt21LPPPqslS5Zow4YN2rdvn6qqqtSmTRude+65GjdunC688MI6lX348GHl5uYqLi5OXbt21Z133qk77rgjyFcAAGhItBACAAAAQJRiDCEAAAAARCkCIQAAAABEKQIhAAAAAEQpAiEAAAAARCkCIQAAAABEKQIhAAAAAEQp1iEMY4MGDdIXX3whSWrbtm0j1wYAAAAIjm3btiklJUV79uxp7KpEPAJhmKuoqGjsKgAAAABBVVFRoaKiosauRlRgYfow161bN0nSTz/91Mg1AQAAAIKDz7gNhzGEAAAAABClCIQAAAAAEKUIhAAAAAAQpQiEAAAAABClCIQAAAAAEKUIhAAAAAAQpQiEAAAAABClCIQAAAAAEKUIhAAAAAAQpQiEAAAAABClCIQAAAAAEKUIhAAAAAAQpQiEAAAAABClCIQAAAAAEKUIhAAAAAAQpQiEAAAAABClCIQAAAAAEKUIhIAXkz5cq/Of/lwLftjd2FUBAAAA6g2BEPCwYU+hZq/M1faDJXrm0/WNXR0AAACg3hAIAQ+78ktcfi9txJoAAAAA9SviAmFRUZHefPNNjR8/XmeffbYSEhJks9k0ZcqUWpXz5ZdfKiYmRjabTbfcckud6vLTTz/pmmuuUWZmppKSknTaaadp2rRpcjgcdSovlBhjdLisUjvzSrQrr+TYB4SRgpIK6/fySodKK6oasTYAAABA/Ylt7AoE28aNGzVy5MiAyigrK9O4ceMCKmPlypW68MILVVJSol69eql9+/b68ssvde+99+rrr7/W3LlzZbPZAjpHY3r96xw9+vHPkqQBXY/Ta6POauQaBU9ecUW12y3T7I1UGwAAAKD+RFwLYdOmTTVmzBj99a9/1X/+8x899thjtS7jz3/+s3755ReNGTOmTnWoqKjQ8OHDVVJSoueff17//ve/NXfuXG3cuFHnnnuu/vGPf+iNN96oU9mhIi0pzvo9v6Sihj3Dj+f1RNr1AQAAAE4RFwg7duyomTNn6tZbb1XPnj0VFxd37INc/PTTT3r66ac1ZswYnXfeeXWqw7x587R161b16NFD9957r3V/kyZN9OKLL0qSnnvuuTqVHSoIhAAAAED4i7hAGAhjjMaNG6e0tDQ99dRTdS5nwYIFkqShQ4dW29azZ0+deOKJWrt2rXJycup8jsbmGgg9u1iGOwIhAAAAogWB0MWMGTP09ddf67nnnlNGRkady1mzZo2kI+HPG+f9P/zwQ53P0djSk48GwoKSChljGrE2wUUgBAAAQLQgEP7Xzp079eCDD6p///4aMWJEQGVt27ZNktS6dWuv25335+bmBnSexpTq0kJYXuVQaUX4z5zqRCAEAABAtIi4WUbr6s4771RpaalmzJgRcFmHDx+WJCUnJ3vdnpKSIkkqLCz0u8xu3bp5vX/z5s3q2LFjLWsYONcuo5KUV1KupPikBq9HfSggEAIAACBKhFwgHDJkiNatW1erY2bPnq1evXrV+ZwffPCB5s+fr0mTJqlLly51LieaJMTalRRnV8l/1+jLL6lQq7TICISeYyLzi8sbqSYAAABA/Qq5QLh161Zt2LChVscUFxfX+XwFBQUaP368OnXqpIceeqjO5bhq0qSJDh065LNeRUVFko4skeGvn376yev9vloOG0JaUtzRQBhBE8vQZRQAAADRIuQCYXZ2doOeb/Xq1dq1a5fat2+vSy65xG3bnj17JB2ZNbRfv35q2bKl5syZc8wy27Ztq0OHDmnHjh3q3r17te07duyQJLVr1y4IV9B40pLitKegVJKUFyGhqbzSYYVcJwIhAAAAIlXIBcLGkpOT43MZiD179mjPnj1+B7gePXpozZo1Wr16tS6//PJq21evXi1JXsNiOInEtQi9XUekXBsAAADgKepnGe3Xr5+MMV5/Zs2aJUkaM2aMjDF+rxv429/+VpL03nvvVdv2/fffa8uWLTr11FPVvn37YF1Go0jzWHoiEhAIAQAAEE2iPhAGYuTIkeratavmzZvndv+QIUPUoUMHrVmzRlOnTrXuLyoq0h133CFJuu+++xq0rvUheloIKxuhJgAAAED9i8guo0OGDNHu3bslSbt27ZIkzZw5U4sWLZIktWrVqlqIq4tt27Zpw4YNys/Pd7s/Li5Ob731li666CJNmDBBc+fOVbt27bR8+XLt3r1bQ4cO1U033RTw+RubayD0nJkzXHlr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y2470b59e3388cd67733tHr1aq1Zs0bbtm3T6dOnlZ2draSkJF1zzTVq166dunTporvuukvx8fG+qh1BIjkuquLPte0htOKm9FLVbScMw2BPTwAAAFiGqX0I4+Pj1bt3b/Xu3dvb9SAEeWLIqFV7CB1rKbcbyi8pV0K0qb92AAAAgNex7QT8LlQCocTCMgAAALAWAiH8zhPbTjjtQWihQBgZHqa4qEsL3GTX8vkAAAAAb7js2DW73a5FixZp8eLF2rZtm44cOaLc3FxJUp06dZSamqqbbrpJ/fr1U79+/RQWRr5EzTnOsysus6uotLzGq4Q6BsJECwVC6ULgLSgpl0QPIQAAAKyl2kC4YcMGpaenV2wjUdnZs2d19uxZbdq0STNnzlTLli31ySef6LbbbvNqwQg+lYdV5hSWuhUIrTRkVLpQT0Z2kSQCIQAAAKzFZZfe7t271bVrV+3bt099+/bVrFmztH37dmVlZam0tFSlpaXKysrS9u3bNWvWLPXp00d79+7VPffco927d/v6GRDgYiLDFRVx6aNYm+0ZrBwIE9mLEAAAABblsodw8uTJKioq0oIFC9S/f3+Xb0xMTNQNN9ygG264QY888oi++OILDRo0SFOmTNHcuXO9WjSCT3JspE7nFkuqXS+alQOh0xzJWu6zCAAAAHiDyx7ClStX6q677qo2DLoyYMAA3X333fruu+88VhxCh9NKo7VYeMXKgTDZA6uoAgAAAN7gMhDm5eWpXr16NW6sXr16ys/Pd7sohB7nXjQ3A2GctQKhJ7bVAAAAALzBZSBs0aKFVqxYoczMTNMNnTlzRitWrFBaWprHikPocFxp1N0ho1badkKqHAjL/FgJAAAA4MxlIHziiSd0/vx5denSRYsXL1Z5eXm1DZSXl+urr75Sly5dlJWVpeHDh3utWASvRDd60YpKy1VSZq94bbUho0luhl0AAADAW1wuKjNu3DitWbNGX375pR588EHFxsaqbdu2aty4seLi4iRJBQUFOn78uLZv367CwkIZhqEBAwZo3LhxPn0ABAfnOYQ1W3ilcsiy4j6EFxEIAQAAYCUuA2FYWJgWLFigv/71r5o6dap2796tn376ST/99JPLRq6//nqNHz9ew4cPl81m82rBCE7uhKYsh0VooiPCaryHobex7QQAAACsqtqN6W02m0aOHKmRI0fq8OHD2rp1q44ePaq8vDxJUkJCglJSUtSuXTs1bdrUV/UiSLmzEqeVVxiVKi2YU8PeTwAAAMCbqg2Ejpo2bUrog1e5M8/O6oHQMezmFJXJMAx60gEAAGAJLheVAXzNnW0nrB4IHWsqtxvKK2alUQAAAFiDRwPhli1b9M9//tOTTSJEJMVGVfy5pvPsnLacsNgehFLVRW5YWAYAAABW4dFAOHr0aHXr1s2TTSJEVF5UxjAM0+91DFhWW2FUkiLDwxQfdWmhGwIhAAAArMLjQ0Zr8kXeG/Lz8zV79myNHTtWnTp1UnR0tGw2m6ZMmXLZ99lstsv+V1RUZLqGw4cPX7atBg0auPmUwccxEJaWGyooqX7vy8pyLD5kVGLrCQAAAFiTqUVlAsm+ffs0bNiwWr03Pj5eAwcOdHkuPLzmWxlce+216tmzZ5XjSUlJNW4r2FUOctmFpYqPNvfxdFy506qBMDE2UiezL/yjAltPAAAAwCpcfuNu3rx5rRo7efKkW8V4Qp06dTRixAh16NBBHTp00NKlSzVp0iRT761Xr55mzJjhsVpat27t0faCWVREmOKiwit6BrMLS3Vdcqyp91p9URmp8tYTBEIAAABYg8tAeHHIY22Gf/p7Of20tDRNmzat4vU333zjx2pQE0mxkRWBsCahKRACYbIb22oAAAAA3uIyENarV09nz57Vzp07ddVVV5lqyDAM9enTR5s3b/ZogQgdSbGRyvj/wyprEpoCIRAyhxAAAABW5DIQduzYUX//+991/PhxtW7d2nRjkZHW/DJuVn5+vl5//XUdPXpUcXFxuuWWWzRgwAAlJCTUqr1Tp05p8uTJysjIUFJSkjp16qR+/fopKirqym8OQY6hqSbz7LILL+3rZ8VtJyQCIQAAAKyp2kD49ddfa/369erevbuva/KbzMxMTZgwwenY+PHjNXPmTN1///01bm/37t169dVXnY6lpKRo/vz56tixo1u1BqPahCbDMFhlFAAAAKgll9tOdO3aVe3atVN2dnaNGhs5cqTpBVysZtiwYVq2bJlOnDihvLw8bd68WY8++qjOnj2rAQMGaP369abbio6O1ujRo7Vq1SqdOnVKOTk5Wrt2rXr37q2jR4+qR48eOnLkSI3qa9Omjcv/Dhw4UNNHtSynhVcKSy5z5SVFpXaVlNsrXltxH0KJQAgAAABrctlDeNddd9VqLuCIESPcLqh///7atWtXjd4za9Yst3vcZs6c6fT65ptv1qxZs9SkSRO98cYbmjBhgpYvX26qrYYNG+p///d/nY798pe/1NKlS5Wenq5PP/1Ub7zxhv785z+7VXOwqc3CK5WDo1V7CBNrORwWAAAA8CbL7UN46NAh7dmzp0bvKSgo8FI10ksvvaS3335bq1atUklJidvz/37729/q008/NR0uL9qxY4fL423atHGrHitx7kUru8yVlzgGx5jIMEVH1Hy/SF9w7v0kEAIAAMAaLBcIt2zZ4u8SnCQlJemaa65RRkaGzp49q4YNG7rVXsuWLSVJGRkZnigvqDjv1WduyGh2gfXnD0oMGQUAAIA1uZxDiEvsdrtycnIkSfHx8W63d/78eY+1FWyS4i71vpodVhkIW05IUnKlZ7Pba77HJwAAAOBppgJheHi4qf9iYmLUqFEj9enTR3PnzvV27T6xbNky5efnKy0tTYmJiW63t2DBAklS+/bt3W4r2NSmF83xuuRY627n4fhsdkPKKzE3JBYAAADwJlOBsEmTJkpJSZFhGBX/JSUlKSkpyelYgwYNdO7cOX399ddKT0/XgAEDZLfbr3wDP5s7d67LVURXr16tJ598UpL07LPPVjk/bNgwtW7dWgsXLnQ6/vHHH2v37t1Vrv/iiy/0m9/8ptr2Ql1t5tk5BkKrrjAqSYkxzqOzHYe6AgAAAP5iag7h/v37NXjwYNntdk2aNElDhgyp2Kw9Ly9Pn332mV577TXdfPPNmjdvnjZt2qRRo0Zp0aJF+vOf/6zRo0d79SEq69+/f8UcvZMnT0qSpk2bpmXLlkm6sAqoY4hbtmyZZs6cqVatWqlNmzaKjIzU3r17K+YzDh06VOPGjatyn6NHj2rPnj1VtueYM2eOnnrqKd10001q1aqV7Ha7du7cWRESX3zxRfXv39/zDx7gkiutxGm3GwoLs132PYGwB6EkRYSHKSE6QnnFF3oGswtL1cTPNQEAAACmAuFbb72lb7/9Vjt27FBKSorTuYSEBA0fPlz33nuv2rZtq7feekuTJk3SwoUL1aZNG82ePdvngXDz5s1V9vk7ceKETpw4IUlKTU11OjdkyBCVlZVp48aNWrlypfLy8lS3bl316tVLw4cP18CBA2t0/yeffFL169fXli1b9M0336iwsFD169fXgAEDNHr0aHXv3t29BwxSroZVJsZcPuRlBUgglC7UdzEQsvUEAAAArMBUIJw5c6a6detWJQw6Sk1NVbdu3TR79mxNmjRJzZs316233qrt27d7rFizDh8+XKPre/XqpV69etX4PqtWrXJ5PD09Xenp6TVuL9RVHvKZXVB6xUAYKIvKSBee70RWoSRWGgUAAIA1mJpDePz4cUVHR1/xuujoaB0/frzidUpKioqKimpfHUJKeJhNdaIv/RuFmdDkHAgtt4uKE8f62IsQAAAAVmAqEDZo0EArV65Ubm5utdfk5ORo5cqVatCgQcWxs2fPqm7duu5XiZCRFFezlUadAmGctXsIHVdBpYcQAAAAVmAqEA4ZMkRnz55Vjx49tHbt2irn161bp169euncuXMaOnSoJMkwDP373//WL37xC89WjKBW060nAmnIKJvTAwAAwGpMjbGbNGmSVq9erXXr1unOO+9UgwYN1KTJhTUSjx07pp9//lmGYeiXv/ylJk6cKEnaunWrkpKSNHjwYO9Vj6DjtPWEia0ZnFcZte4+hFLNez8BAAAAbzMVCOPi4rR69Wq98847+vOf/6wTJ05UbOsgSY0aNdLTTz+tF198UVFRF76U33zzzdq1a5d3qkbQSq5BaDIMgx5CAAAAwA2mV+GIiorShAkTNGHCBB09erQiEDZs2PCyq48CNVGT0FRQUq7ScsPle60osdI+iwAAAIC/1WpZxpSUFEIgvCLRKRCWXPbayoHR6oGQHkIAAABYTY0D4YkTJ/TDDz9UbPLeqFEjde7cWY0aNfJ4cQg9NVmJ0/F8bGS4oiJMrZHkNzWdHwkAAAB4m+lAeObMGT377LNauHCh7Ha70zmbzab/+I//0Icffqj69et7vEiEjpr0ogXS/EFJSqaHEAAAABZjKhBmZ2frrrvu0p49exQbG6v77rtPTZs2lc1m0+HDh7V8+XLNnz9f27Zt07p165SUlOTtuhGkgjkQOtaYU1Qqu91QWJjNjxUBAAAg1JkKhG+99Zb27NmjQYMGuewFzMzM1JgxY/TZZ5/p7bff1htvvOGVYhH8ajKsMpA2pZecn80wpNzisoAIsgAAAAhepiZdLVy4UE2aNNEnn3zickhovXr1NHv2bDVp0kQLFizweJEIHTXZdiInwHoIEyvVyEqjAAAA8DdTgfDIkSPq3LmzIiOr/9IdGRmpzp076+jRox4rDqHHMdjlFpWp3G5Ue22gDRkND7OpTvSlTnnmEQIAAMDfTAXC2NhYZWZmXvG6zMxMxcbGul0UQldNetEch5QGQiCUKm+rQSAEAACAf5kKhLfeeqtWr16tDRs2VHvNxo0btWrVKt12220eKw6hp050hBzXWblcaAq0HkKJrScAAABgLaYC4fPPP6/S0lLde++9mjhxonbt2qXCwkIVFhZq9+7dmjx5srp3767y8nI9//zz3q4ZQSwszGa6Fy3QAyE9hAAAAPA3U6uM9u7dW6+//romTpyoN954w+UqojabTb/73e/Uq1cvjxeJ0JIUG1nRe5YVZIGwJovmAAAAAN5mqodQkl555RWtW7dOjzzyiJo2baqoqChFRUWpadOmevTRR7V27Vq98sor3qwVIcLsBu45AbbthEQPIQAAAKzFVA/hRbfddptmzpzprVoASeYXXgnEHkICIQAAAKzEdA8h4CuOoam6VUYNwwjIQJho4tkAAAAAXyEQwnKcV+IscXlNfkm5yhz2KAyUQEgPIQAAAKzE5ZDR5s2b17pBm82mAwcO1Pr9gJmFVyofD8RAmFXoOuwCAAAAvuIyEB4+fNjHZQCXmOlFy3bYwy8uKlyR4YHR2U0PIQAAAKzEZSC02+2+rgOoYGbz9kCcPyhV6v1kY3oAAAD4WWB0qyCkJMVGVfzZzJDRQAqEjrXmFpfJ7jAPEgAAAPA1AiEsx8wqozlBEAgNQ8otKvNjNQAAAAh1BEJYjvPCK8HVQ1gnxrlW5hECAADAnwiEsBzHeXYFJeUqLa86p9Vxhc5ACoThYTbVibk0dZdACAAAAH8iEMJyKgc8V6EpUHsIJbaeAAAAgHUQCGE5cVHhigizVbx2tdJoduGluXeBHAjpIQQAAIA/EQhhOTab7YqhyamHMC6wAqHT1hMEQgAAAPgRgRCW5BjyXK00GixDRgmEAAAA8CcCISzpSqEpULedkAiEAAAAsA4CISzJaeGVgqoLrwRyD2GiiX0WAQAAAF8gEMKSkp160Zw3bzcMI6ADIT2EAAAAsAoCISzpcqEpr7hM5XbD5bWBgEAIAAAAqyAQwpIut1df5RCVGMCB0NWWGgAAAICvEAhhSUlxURV/rjzPzjEQxkeFKzI8sD7G9BACAADAKgLrmzRCxuVCUyDPH5Sk5NhLYZdACAAAAH8iEMKSLjes0mnLCYeexEDh+Gy5Rc7zIQEAAABfIhDCksz3EEb4rCZPqdyrmVtELyEAAAD8g0AIS0qOqz4QOvYYBuKQ0ToxEbLZLr1m2CgAAAD8hUAIS3IMesVldhWVlle8DvQ5hGFhNtWJvtSzSSAEAACAvxAIYUmVg55jaAr0QChJSXFsPQEAAAD/IxDCkmIiwxUdcenjGXSBkK0nAAAAYAEEQlhWdaEpGAIhW08AAADACgiEsKzqtp4I9G0nJHoIAQAAYA0EQlhWdSuNBkMPYaJD3TkEQgAAAPgJgRCWVV0vWlYQBEJ6CAEAAGAFBEJYlmMvWnZBiSTJbjech4wSCAEAAIBaIxDCslwtvJJXUia7cemaYAiEbDsBAAAAfyEQwrJc9aJlVwpPiTERCkT0EAIAAMAKCISwrKTYS2GvIhA6hKeE6AhFhAfmR7i6BXMAAAAAXwrMb9MICUkOoeniQjLBMH9Qcq6dVUYBAADgLwRCWJarOYTBsOWE5Fx7bnGZyh0nRgIAAAA+QiCEZbnaqy9YAmFipdrpJQQAAIA/EAhhWZVX4jQMIyj2IJSkOtERstkuvWYeIQAAAPyBQAjLclx4pcxuqKCkPGh6CMPCbEqMqTpHEgAAAPAlAiEsq3Lgyy4sdQ6EcYEbCCW2ngAAAID/EQhhWZHhYYqLCq94nVVQGjQ9hBKBEAAAAP5HIISlJVcKTcGy7YTEXoQAAADwPwIhLC2xUiAMph5CV6uoAgAAAL5EIISlVd7APZgCIUNGAQAA4G8EQlia09YThSXKKgjSQFhAIAQAAIDvEQhhaY7z7LIKSpVTFJyBMKuwxI+VAAAAIFQRCGFpjqHp+PlCGYbrc4GIIaMAAADwNwIhLM0xNB09V+B0LjGoAmGZHysBAABAqCIQwtKS4qIq/nzMIRDWiYlQeJjNHyV5TDKrjAIAAMDPCISwNMdetLP5JS6PB6rKW2oAAAAAvkYghKVVF/yCIRA6PkNecZnKyu1+rAYAAAChiEAIS0sO5kAY5/wMOUXMIwQAAIBvEQhhacHcQ5gQFSHHaZAMGwUAAICvEQhhacEcCMPCbE7zCLMK2IsQAAAAvkUghKVVt7VEMARCib0IAQAA4F8EQlhaeJhNdWIiqhyvPP8uUCUTCAEAAOBHBEJYnqvewGDpIUxkL0IAAAD4EYEQlhfMgZAhowAAAPAnAiEsL9nF8FACIQAAAOA+AiEsjx5CAAAAwDsIhLC8UAmEWQUEQgAAAPgWgRCWlxQb5eJY8AVCeggBAADgawRCWJ6r8FcnJjgCoeP8SAIhAAAAfI1ACMurHAgTYyIUHmbzUzWexbYTAAAA8KegC4T5+fmaPXu2xo4dq06dOik6Olo2m01Tpkwx9f6tW7fq0UcfVePGjRUdHa1rr71WXbt21fTp02tcy/Hjx/XEE0/ouuuuU0xMjFq1aqXJkyerqKioxm2FssqBMFg2pZcYMgoAAAD/ivB3AZ62b98+DRs2rFbvnTZtmkaPHi3DMPTLX/5SXbp00alTp7RlyxbNmTNHTzzxhOm29u/fr9tvv12ZmZlq27atunTpog0bNujVV1/VihUrtGLFCkVHR9eqzlBTeduJYJk/KDk/S35JuUrL7YoMD7p/pwEAAIBFBV0grFOnjkaMGKEOHTqoQ4cOWrp0qSZNmnTF93333Xd66qmnlJaWpq+++krXX399xbmSkhLt2LGjRnU8/vjjyszM1HPPPaf3339fklRWVqbBgwdr4cKFevPNN033Woa6Kj2EQRoIpQvDRq9O4B8KAAAA4BtB1xWRlpamadOmadSoUWrfvr0iI82Fh7Fjx8pms+mLL75wCoOSFBUVpVtuucV0DT/99JN++OEHXXPNNXrnnXcqjkdEROijjz5SZGSkPvjgA5WVlZluM5QFcyBMiHaeD5nFsFEAAAD4UNAFwtr44YcftHPnTnXt2lU33nij2+0tXbpUktS3b98qw0KvvfZadenSRefPn9f333/v9r1CQeU5g8EUCG02mxJjLnXUM48QAAAAvkQg1IXhopJ0xx13qLCwUNOnT9eYMWM0btw4zZo1S4WFhTVqb+vWrZKk9u3buzx/8fi2bdvcqDp0JERFyHFR0cQgCoQSC8sAAADAf4JuDmFt7Ny5U5Jkt9t1yy23aM+ePU7nJ06cqCVLlpjuPTx69KgkqXHjxi7PXzx+5MiR2pYcUsLCbEqMjVRWwYWwlOxio/pAlhQXJZ0tkCTtP5WnlLpxfq4IAADggsiwMKVczXeTYEYglHT+/HlJ0jvvvKMGDRro66+/VufOnXX06FGNHz9e3377rfr27audO3cqLu7KfyHy8vIkqdpr4+PjJUm5ubmma2zTpo3L4wcOHFBaWprpdgJVskMgDKYho5Lz87z+9S69/vUuP1YDAABwSerVcVr94j3+LgNeZLlA2L9/f+3aVbMvxLNmzVLHjh1rfU+73S7pwiqgCxYsqGirbdu2Wrx4sVq0aKEjR45ozpw5evLJJ2t9H9Rew6RYHf7/vWgNk2P8XI1nNQqy5wEAAEDgsFwgPHToUJUhm1dSUFDg1j0TEhIkSTfccEOVYBkdHa2HH35Y77zzjlavXm0qEF5sr7q68vPzJV3YIsOs6ra9qK7nMNiMvbeFTuUW6foGibqrZX1/l+NRwzs309Zj2dp/Os/fpQAAADhhf+TgZ7lAuGXLFp/fMzU1VZLUtGlTl+cvHj99+rSp9lJSUrR582YdP37c5fmLxy/eF1d2R1o9ffdCV3+X4RUtr62jr8d18XcZAAAACEFEfqlij8GLcwkrO3funKRLPX9X0q5dO0nSpk2bXJ6/ePymm26qUZ0AAAAA4EkEQkm9e/dWRESE/v3vf1eEP0erV6+WJNOb099///2SpMWLF6u4uNjp3KlTp7RmzRpdddVV6ty5s5uVAwAAAEDtEQgl1atXT0888YTy8vL03HPPqaSkpOLczJkz9e233yomJkaPP/640/teeeUVtW7dWh9++KHT8Y4dO6pz5846ffq0Xn755YrjZWVleuaZZ1RaWqrnnntOkZHBtVomAAAAgMBiuTmEntC/f39lZGRIkk6ePClJmjZtmpYtWyZJatiwoRYuXOj0nt///vdat26d5syZozVr1ui2227T0aNHtWHDBoWHh+svf/mLmjRp4vSejIwM7dmzR5mZmVVqmD59um6//Xa9//77+u6773TDDTdo/fr1OnjwoO644w698sor3nh0AAAAADAtKHsIN2/erH/961/617/+pWPHjkmSTpw4UXFs8+bNVd6TlJSktWvX6re//a2ioqK0ZMkSHTx4UH369NHq1av16KOP1qiGli1bavPmzXr88cd15swZLVy4UGFhYZo4caJWrFih6OhojzwrAAAAANSWzTAMw99FoPYubjtR3bYUAAAAQKDhO67vBGUPIQAAAADgygiEAAAAABCiCIQAAAAAEKIIhAAAAAAQogiEAAAAABCiCIQAAAAAEKIIhAAAAAAQogiEAAAAABCiCIQAAAAAEKIIhAAAAAAQogiEAAAAABCiIvxdAGqvX79+OnDggCSpTZs2fq4GAAAA8IwDBw4oMjLS32WEBAJhgOMvindcDNppaWl+rgRWxucEZvA5gRl8TmBGKH1OIiMjFR8f7+8yQoLNMAzD30UAVnOxx3XHjh1+rgRWxucEZvA5gRl8TmAGnxN4A3MIAQAAACBEEQgBAAAAIEQRCAEAAAAgRBEIAQAAACBEEQgBAAAAIESxyigAAAAAhCh6CAEAAAAgRBEIAQAAACBEEQgBAAAAIEQRCAEAAAAgRBEIAQAAACBEEQgBAAAAIEQRCAEAAAAgRBEIEdLy8/M1e/ZsjR07Vp06dVJ0dLRsNpumTJniVruLFy/W3XffrcTERCUmJqpr165aunSpZ4qG3/zwww/q3bu36tatq4SEBHXs2FGzZs2qcTszZsyQzWar9r+hQ4d6oXp4SmFhoSZNmqRWrVopJiZG1113nYYPH64TJ07UuK3z589r3LhxSk1NVXR0tFJTU/XrX/9aWVlZXqgcvuSpz0nTpk0v+/ti9+7dXnoCeNPGjRv11ltvacCAAWrcuHHFz7O2+F0Cd0T4uwDAn/bt26dhw4Z5tM333ntPzz//vCIiItS9e3dFR0frm2++UZ8+ffTHP/5RY8aM8ej94BsLFizQkCFDZLfbddddd6levXpasWKFHnvsMW3btk3//d//XeM227Vrp5tvvrnK8U6dOnmiZHhBUVGRunXrpnXr1qlhw4Z64IEHdPjwYU2fPl1LlizRunXr1Lx5c1NtZWZm6vbbb9f+/fvVvHlzPfjgg9qxY4fef/99/f3vf9fatWtVt25dLz8RvMGTn3GC3bsAAAvKSURBVJOLHnvsMZfHk5KSPFEyfOy1117TokWLPNIWv0vgNgMIYfv37zdGjBhh/OlPfzI2btxovPrqq4YkY/LkybVqb/fu3UZ4eLgRHR1t/PjjjxXH9+zZY1x99dVGRESEsW/fPg9VD185e/askZiYaEgyFixYUHH8559/Nlq0aGFIMlauXGm6venTp7v1OYP//Od//qchybj99tuN3NzciuPvvvuuIcm4++67TbeVnp5uSDIGDBhglJaWVhwfO3asIcl47LHHPFg5fMmTn5PU1FSDr2vB56233jImTpxofPXVV0ZGRoYRHR1d658zv0vgLn7DAA7efPNNt76ojx492pBkjBs3rsq5qVOnGpKMMWPGuFklfO3tt982JBkPPPBAlXNffPGFIcno06eP6fYIhIGpuLjYSEpKMiQZmzZtqnL+pptuMiQZGzZsuGJbJ0+eNMLCwoyoqCjj559/djpXVFRk1K9f3wgPDzdOnTrlsfrhG578nBgGgTBU1DYQ8rsEnsAcQsCDLs4THDhwYJVzF48tXrzYpzXBfZf7ud5///2KiYnRP/7xDxUVFfm6NPjQDz/8oOzsbKWlpemWW26pcr4mf8eXLVsmu92uLl266Nprr3U6Fx0drb59+6q8vFxff/21Z4qHz3jycwJcCb9L4AkEQsBDsrKydPToUUly+SWgSZMmqlevno4cOaKcnBxflwc3bN26VZLUvn37KueioqLUtm1bFRUVae/evTVqd+PGjXrxxRc1atQoTZ48WatXr/ZIvfCOy30OHI9v27bNp23BWrz1s/3973+vp59+WuPGjdNf/vIXnTlzxr1CERT4XQJPYFEZwEMuhsGrrrpK8fHxLq9p3LixMjMzdeTIEd14442+LA+1lJOTo+zsbEkXfn6uNG7cWBs2bNCRI0d00003mW57yZIlWrJkScXrV199VXfffbfmzZtX5V964X8X/45f7nMgSUeOHPFpW7AWb/1sX3rpJafXzz//vP74xz9q+PDhtagSwYLfJfAEeggBD8nLy5MkxcXFVXvNxaCYm5vrk5rgvos/V6n6n21Nf64NGzbUlClTtHnzZmVnZ+vnn3/WV199pdatW2v16tXq06ePysvL3S8eHnWlv+M1+Rx4si1Yi6d/tv369dMXX3yhI0eOqKCgQNu3b9f48eNVXFyskSNHemylSgQmfpfAE+ghREDr37+/du3aVaP3zJo1Sx07dvRSRbAiq31OevTooR49elS8TkxMVN++fXXPPffo1ltv1YYNG/TZZ5/poYce8sr9AQSODz74wOl1mzZt9O6776p169Z66qmn9PLLL+uBBx7wU3UAggGBEAHt0KFD2rNnT43eU1BQ4JVaEhISrth+fn6+JKlOnTpeqQGuufM5ufhzvXgsMTGxyrWe+rkmJCToueee05gxY7R8+XICocVc6e94TT4HnmwL1uKrn+2IESM0YcIE7dmzR4cPH1bTpk3dag+Bid8l8AQCIQLali1b/F1ChZSUFEnS+fPnlZ+f73Ie4fHjxyVJqampPq0t1LnzOUlMTFRSUpKys7N1/Phx3XDDDVWu8eTPtWXLlpKkjIwMt9uCZ138O37x511ZTT4HnmwL1uKrn21YWJjS0tJ0+vRpZWRkEAhDFL9L4AnMIQQ8JDk5ueIX8+bNm6ucP3bsmDIzM5WamuqylwnW1a5dO0nSpk2bqpwrLS3V9u3bFRMTo1atWrl9r/Pnz0tStQsTwX8u9zlwPG5mYSFPtgVr8eXPlt8X4HcJPIFACHjQ/fffL0n6/PPPq5y7eKxv374+rQnuu9zPdcmSJSoqKlL37t0VExPj9r0WLFggqfolxOE/nTt3VlJSkg4cOOCy17kmf8d79uypsLAwrVmzRqdPn3Y6V1xcrMWLFys8PFy9e/f2TPHwGU9+Ti5nx44d2rNnj+Li4tS6dWu32kLg4ncJPIFACNRC69at1bp1a504ccLp+Lhx4xQeHq4//elPWrduXcXxffv26fXXX1dERITGjRvn63LhppEjRyoxMVGLFi3SF198UXH89OnTFUvBv/DCC1XeV93n5M0331RmZqbTsdLSUv3Xf/2X5s+fr9jYWD3xxBNeeBK4IyoqSmPGjJEkPfvssxVzcyRp6tSp2rZtm+6++27deuutFcc//PBDtW7dWq+88opTWw0bNtRDDz2kkpISPfPMMyorK6s499JLL+nMmTN65JFHdM0113j5qeBpnvycfP311/ruu++q3GPbtm0aNGiQDMPQyJEjFRUV5aWngVXwuwReZQAh7sEHHzQ6depkdOrUyWjSpIkhyWjUqFHFsQcffLDKeyQZkoxDhw5VOTd16lRDkhEREWH06tXLeOCBB4zY2FhDkvHBBx/44IngDZ9//rkRFhZm2Gw245577jEGDhxoJCcnG5KM8ePHu3xPdZ8TSUZ0dLTRuXNnY+jQoUbv3r2N6667zpBkxMTEGAsWLPDBE6E2CgsLjU6dOhmSjIYNGxqDBw+ueF2/fn3jwIEDTtdPnjzZkGQ89thjVdo6c+aMkZaWZkgy0tLSjCFDhhht27Y1JBktW7Y0zp4966Ongqd56nNy8XhqaqrRr18/Y+jQoUbHjh2NiIgIQ5LRtWtXo6CgwIdPBk9ZsmRJxfeMTp06GTabzZDkdGzJkiUV1/O7BN5EIETIS01Nrfji7uq/1NTUKu+5XCA0DMP46quvjC5duhgJCQlGQkKC0aVLF2Px4sXefRB43ffff2/07NnTSE5ONuLi4ozbbrvNmDFjRrXXV/c5mTRpkvGrX/3KSElJMWJjY42YmBijRYsWxqhRo4zdu3d7+SngroKCAmPixIlGWlqaERUVZTRo0MB4/PHHjWPHjlW59nJf4gzDMM6ePWuMHTvWaNKkiREVFWU0adLEeO6554zz5897+SngbZ74nPz444/G8OHDjRtvvNG4+uqrjYiICKNu3bpG165djY8//tgoKyvz0dPA06ZPn37Z7x6SjOnTp1dcz+8SeJPNMAzDGz2PAAAAAABrYw4hAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAubNiwQTabTXfccUe117zxxhuy2WyaPHmyDysDAMBzbIZhGP4uAgAAK7r11lu1adMmbd++XW3atHE6ZxiGWrRoocOHD+vQoUNKSUnxU5UAANQePYQAAFTj6aefliR9/PHHVc6tWLFCBw8eVI8ePQiDAICARSAEAKAaDz/8sBITEzV79mwVFxc7nZs2bZok6cknn/RHaQAAeASBEACAasTHx+uRRx7RuXPntGDBgorjmZmZWrhwoRo0aKC+ffv6sUIAANxDIAQA4DJcDRudNWuWSkpK9MQTTygiIsJfpQEA4DYWlQEA4Ao6d+6sH3/8UXv37lXLli3Vpk0b7dq1S/v371fz5s39XR4AALVGDyEAAFdwsZdw2rRp+uGHH7Rz507de++9hEEAQMCjhxAAgCsoKipS48aNFR4eru7du+vTTz/VvHnzNHjwYH+XBgCAWwiEAACY8MILL2jq1KmSpPr16+v48eOKioryc1UAALiHIaMAAJgwatQo2Ww2SdJjjz1GGAQABAV6CAEAMCklJUXHjh3T7t279Ytf/MLf5QAA4DZ6CAEAMGHt2rU6duyY7r77bsIgACBoEAgBADDh9ddflySNGTPGz5UAAOA5DBkFAKAaP/74o/76179q+/bt+umnn9S+fXutX79eYWH8eyoAIDhE+LsAAACsau/evfrb3/6mOnXq6P7779f//M//EAYBAEGFHkIAAAAACFH8MycAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEKAIhAAAAAIQoAiEAAAAAhCgCIQAAAACEqP8HeKQq5YuA/QcAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 400, "width": 400 } }, "output_type": "display_data" } ], "source": [ "diagonal = Image(\"SommerfeldBoundaryCondition/NRPy_vs_ETK_diagonal.png\", width=400, height=400)\n", "E_rel_diagonal = Image(\"SommerfeldBoundaryCondition/E_rel_diagonal.png\", width=400, height=400)\n", "display(diagonal, E_rel_diagonal)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "# Step 7: Output this notebook to $\\LaTeX$-formatted PDF file \\[Back to [top](#toc)\\]\n", "$$\\label{latex_pdf_output}$$\n", "\n", "The following code cell converts this Jupyter notebook into a proper, clickable $\\LaTeX$-formatted PDF file. After the cell is successfully run, the generated PDF may be found in the root NRPy+ tutorial directory, with filename\n", "[Tutorial-SommerfeldBoundaryCondition.pdf](Tutorial-SommerfeldBoundaryCondition.pdf) (Note that clicking on this link may not work; you may need to open the PDF file through another means.)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2021-03-07T17:25:11.097517Z", "iopub.status.busy": "2021-03-07T17:25:11.094736Z", "iopub.status.idle": "2021-03-07T17:25:16.392759Z", "shell.execute_reply": "2021-03-07T17:25:16.391877Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Created Tutorial-SommerfeldBoundaryCondition.tex, and compiled LaTeX file\n", " to PDF file Tutorial-SommerfeldBoundaryCondition.pdf\n" ] } ], "source": [ "cmd.output_Jupyter_notebook_to_LaTeXed_PDF(\"Tutorial-SommerfeldBoundaryCondition\")" ] } ], "metadata": { "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.10.0rc2" } }, "nbformat": 4, "nbformat_minor": 2 }