{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "ChEn-5310: Computational Continuum Transport Phenomena Spring 2021 UMass Lowell; Prof. V. F. de Almeida **29Apr21**\n", "\n", "# 15. Peclet Interface-Coupled 1D with Dirichlet Boundary Conditions\n", "$ \n", " \\newcommand{\\Amtrx}{\\boldsymbol{\\mathsf{A}}}\n", " \\newcommand{\\Bmtrx}{\\boldsymbol{\\mathsf{B}}}\n", " \\newcommand{\\Mmtrx}{\\boldsymbol{\\mathsf{M}}}\n", " \\newcommand{\\Imtrx}{\\boldsymbol{\\mathsf{I}}}\n", " \\newcommand{\\Pmtrx}{\\boldsymbol{\\mathsf{P}}}\n", " \\newcommand{\\Lmtrx}{\\boldsymbol{\\mathsf{L}}}\n", " \\newcommand{\\Umtrx}{\\boldsymbol{\\mathsf{U}}}\n", " \\newcommand{\\Smtrx}{\\boldsymbol{\\mathsf{S}}}\n", " \\newcommand{\\xvec}{\\boldsymbol{\\mathsf{x}}}\n", " \\newcommand{\\avec}{\\boldsymbol{\\mathsf{a}}}\n", " \\newcommand{\\bvec}{\\boldsymbol{\\mathsf{b}}}\n", " \\newcommand{\\cvec}{\\boldsymbol{\\mathsf{c}}}\n", " \\newcommand{\\rvec}{\\boldsymbol{\\mathsf{r}}}\n", " \\newcommand{\\fvec}{\\boldsymbol{\\mathsf{f}}}\n", " \\newcommand{\\mvec}{\\boldsymbol{\\mathsf{m}}}\n", " \\newcommand{\\gvec}{\\boldsymbol{\\mathsf{g}}}\n", " \\newcommand{\\zerovec}{\\boldsymbol{\\mathsf{0}}}\n", " \\newcommand{\\norm}[1]{\\bigl\\lVert{#1}\\bigr\\rVert}\n", " \\newcommand{\\transpose}[1]{{#1}^\\top}\n", " \\DeclareMathOperator{\\rank}{rank}\n", " \\newcommand{\\Reals}{\\mathbb{R}}\n", " \\newcommand{\\thetavec}{\\boldsymbol{\\theta}}\n", "$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "## Table of Contents\n", "* [Objectives](#obj)\n", "1. [Plotting Functions](#plotting)\n", "

\n", "1. [Problem Statement](#problem)\n", " + [Strong Form](#dbcstrong)\n", " + [Interfacial Coupling](#interfacialcoupling)\n", " + [Weak Form](#dbcweak)\n", "

\n", "1. [Problem Solution](#solution)\n", " + [Code an Interfacial Partition Kernel](#partitionkernel)\n", " + [Compile and Link Application](#compile)\n", " + [Input File](#dbcinput)\n", " + [Run Application](#dbcrun)\n", "

\n", "1. [Linear Lagrange FEM Results](#dbclinearfemresults)\n", " + [Compute Error](#linearerror)\n", "

\n", "1. [Quadratic Lagrange FEM Results](#dbcquadfemresults)\n", " + [Compute Error](#quaderror)\n", "

\n", "1. [High Peclet Number](#highpe)\n", " + [Quadratic Lagrange FEM Results](#highperesults1)\n", " - [Compute Error](#highperesults1error)\n", " + [Quadratic Lagrange FEM Results](#highperesults2)\n", " - [Compute Error](#highperesults2error)\n", "

\n", "1. [Application Tree](#tree)\n", "---" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Objectives](#toc)\n", "\n", "+ Introduce interface-coupling (with and without discontinuity) in the context of a Peclet problem studied in the notebook series 12/13/14; all past notebooks must be thoroughly reviewed.\n", "+ Present the Galerkin weak form of the Peclet 1D problem with two unknown variables as described below ([OneNote notes here](https://studentuml-my.sharepoint.com/:o:/g/personal/valmor_dealmeida_uml_edu/Eib-vZHIpRlPlOMtz0Gf_asBegEFKsl9dOK4nHyDbgSeUA?e=sLu1td)).\n", "+ Some initial code is provided in the course repository but no full source code is given out. A significant effort in programing is often necessary to learn the subject well. However the material in this course is helpful with this task. Hands-on work during lectures will try to fill in existing gap. The steps in this notebook are necessary for a basic understanding of the subject. \n", "+ The reader is supposed to consult the [`MOOSE source documentation`](https://mooseframework.inl.gov/source/index.html) to fill in gaps in reproducing the steps below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Plotting Functions](#toc)\n", "\n", "This is an auxiliary section for holding plotting functions used later." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "code_folding": [ 2 ] }, "outputs": [], "source": [ "'''Plot function for FEM Solution'''\n", "\n", "def plot_solution(df1, df2, \n", " title='No Title', \n", " u1_legend='no u1 legend',\n", " u2_legend='no u2 legend',\n", " u1_flux_legend='no u1 flux legend',\n", " u2_flux_legend='no u2 flux legend',\n", " flux_decimal_digits=5):\n", " \n", " import matplotlib.pyplot as plt\n", " %matplotlib inline\n", " plt.style.use('dark_background')\n", " import numpy as np\n", "\n", " (fig, ax1) = plt.subplots(1, figsize=(15, 6))\n", "\n", " ax1.plot(df1['x'], df1['u1'],'r*-',label=u1_legend)\n", " ax1.plot(df2['x'], df2['u2'],'r*--',label=u2_legend)\n", "\n", " ax1.set_xlabel(r'$x$ [cm]', fontsize=18)\n", " ax1.set_ylabel(r'$u_h(x)$ [g/cc]', fontsize=18, color='red')\n", " ax1.tick_params(axis='y', labelcolor='red', labelsize=14)\n", " ax1.tick_params(axis='x', labelsize=14)\n", " ax1.legend(loc='center left', fontsize=12)\n", " #ax1.set_ylim(0,1)\n", " ax1.grid(True)\n", "\n", " if 'diffFluxU1_x' in df1.columns:\n", " # create a twin x axis to be shared\n", " ax2 = ax1.twinx()\n", "\n", " ax2.plot(df1['x'], np.round(df1['diffFluxU1_x'],flux_decimal_digits),'*-', color='yellow', label=u1_flux_legend)\n", " \n", " if 'diffFluxU2_x' in df2.columns:\n", " ax2.plot(df2['x'], np.round(df2['diffFluxU2_x'],flux_decimal_digits),'*--', color='yellow', label=u2_flux_legend)\n", "\n", " ax2.set_ylabel(r\"$q_h(x)$ [g/cm$^2$-s]\", fontsize=16, color='yellow')\n", " ax2.tick_params(axis='y', labelcolor='yellow', labelsize=14)\n", " ax2.legend(loc='center right', fontsize=12)\n", " #ax2.set_ylim(0,2)\n", " #ax2.grid(True)\n", "\n", " plt.title(title, fontsize=20)\n", " fig.tight_layout() # otherwise the right y-label is slightly clipped\n", " plt.show()\n", " print('')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Problem Statement](#toc)\n", "\n", "There exists two kinds of coupling of unknown variables (or fields), one kind is when the fields share the same domain $\\Omega$ and are coupled tightly over the entire $\\Omega$. This is the kind that will be studied here. The other kind is when the fields do not share the same domain $\\Omega$ and the coupling takes place on a portion of the boundary of $\\Omega$ shared by the fields. This latter case will be described in a future notebook.\n", "\n", "The following sections describe an extension of the Peclet problem described in previous notebooks for the case when two fields are coupled through a source term." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Strong Form of Problem Statement](#toc)\n", "\n", "Solve the Peclet model problem. Find $u_1:[a,b]\\subset\\Reals\\rightarrow\\Reals$ and $u_2:[b,c]\\subset\\Reals\\rightarrow\\Reals$ for $D_1 > 0$ and $D_2 > 0$ such that:\n", "\n", "\\begin{align*}\n", " v\\, u_1' &= -\\bigl(-D_1\\, u_1'\\bigr)'(x) + S(u_1, u_2) \\quad \\forall \\quad x\\in [a,b[, \\\\\n", " u_1(a) &= A_1,\n", "\\end{align*}\n", "\n", "and\n", "\n", "\\begin{align*}\n", " v\\, u_2' &= -\\bigl(-D_2\\, u_2'\\bigr)'(x) - S(u_1, u_2) \\quad \\forall \\quad x\\in\\, ]b,c], \\\\\n", " u_2(c) &= A_2.\n", "\\end{align*}\n", "\n", "The *diffusion flux* associated to the quantity $u_i, \\, \\ i=1,2$ is denoted $q_i := -D_i\\,u_i'$, and it is often of interest as a derived quantity. Here a point-wise *convective sink (or sweep)* is given by $v\\,u_i'$. There exists two Peclet numbers: \n", "\n", " + Peclet number: $\\frac{v\\,L}{D_i}$. \n", "\n", "whose effects has been described in earlier notebooks.\n", "\n", "Likewise in the single-field Peclet 1-D problem (Notebook 09), the values of the dependent variables are given on the two end points of the domain (*essential* boundary conditions or *Dirichlet boundary conditions*)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Interfacial Coupling](#toc)\n", "\n", "Consider the following interfacial continuity requirement:\n", "\n", "\\begin{align*}\n", " u_1(b) &= u_2(b) \\\\\n", " q_{n,1}(b) &= q_{n,2}(b),\n", "\\end{align*}\n", "\n", "that is, the fields and their **normal fluxes** are continuous at the interface $x = b$.\n", "\n", "Consider the following interfacial conditions requirement:\n", "\n", "\\begin{align*}\n", " u_1(b) &= K\\,u_2(b) \\\\\n", " q_{n,1}(b) &= q_{n,2}(b),\n", "\\end{align*}\n", "\n", "that is, the fields are discontinuous at the interface and their **normal fluxes** are continuous at the interface $x = b$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Weak Form of the Problem Statement](#toc)\n", "\n", "The Galerkin weak formulation with interfacial continuity condition is as follows. Find $u_1 \\in H^1\\!\\bigl([a,b]\\bigr)$ and $u_2 \\in H^1\\!\\bigl([b,c]\\bigr)$\n", "so that \n", "\n", "\\begin{align*}\n", " \\int\\limits_a^b v\\, u_1'(x)\\, w(x)\\,dx + \\int\\limits_a^b D\\, u_1'(x)\\,w'(x)\\,dx + \\int\\limits_a^b S_1\\,w(x)\\,dx &= 0 \\quad \\forall \\quad w \\in H^1_0\\!\\bigl([a,c]\\bigr), \\text{and}\n", " \\\\\n", " \\int\\limits_b^c v\\, u_2'(x)\\, w(x)\\,dx + \\int\\limits_b^c D\\, u_2'(x)\\,w'(x)\\,dx + \\int\\limits_b^c S_2\\,w(x)\\,dx &= 0 \\quad \\forall \\quad w \\in H^1_0\\!\\bigl([a,c]\\bigr),\n", "\\end{align*}\n", "\n", "where $H^1\\!\\bigl([x_i,x_j]\\bigr) := \\bigl\\{ u:[x_i,x_j]\\subset\\Reals\\rightarrow \\Reals \\mid \\int_{x_i}^{x_j} u'^2\\,dx < \\infty\\bigr\\}$ and $H^1_0\\!\\bigl([a,c]\\bigr) := \\bigl\\{ w \\mid w \\in H^1(a,c), w(a) = 0, w(c) =0 \\bigr\\}$. Both function sets as just defined are Hilbert spaces. The function $w$ is called a test function. Because $w$, $u_1$, $u_2$ are sought in very similar sets of functions, this weak form is called Galerkin's weak form.\n", "\n", "In view of the continuity of the fields and their normal fluxes at the interface, $x=b$ ([interfacial coupling](#interfacialcoupling)), the first modification needed in setting up a computational solution to the problem requires a geometric manipulation of the domain, that is, the domain $\\Omega = [a,c]$ needs to be partitioned into sub-domains\n", "\n", "\\begin{align*}\n", "\\Omega &= \\Omega_1 \\cup \\Omega_2, \\quad \\text{or here in 1-D:}\\\\\n", "[a,c] &= [a,b] \\cup [b,c].\n", "\\end{align*}\n", "\n", "This will be presented in the input file below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The implementation of the finite element kernels in MOOSE does not allow for the continuous test function shown above. Therefore an independent weak form need to be implemented and the interface condition enforced in a weak sense. That is, the additional kernel resulting from the following weak statement on the interface:\n", "\n", "\\begin{align*}\n", " \\bigl(u_1 - K\\,u_2\\bigr) \\, w(b) = 0 \\quad \\forall \\quad w \\in L_2(b), \\quad \\text{for 2-D this reads:}\n", " \\int_{I_{1,2}} \\, \\bigl(u_1 - K\\,u_2\\bigr) \\, w \\, da &= 0 \\quad \\forall \\quad w \\in L_2(I_{1,2}),\n", "\\end{align*}\n", "\n", "needs to be created. The implementation is given in full below since a residual needs to be created for both finite elements sharing the interface." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the test function in MOOSE is built separately in each sub-domain, the continuity of the normal flux is obtained by providing the statement of the flux at the boundary between $\\Omega_1$ and $\\Omega_2$, that is $\\{b\\}$,\n", "\n", "\\begin{align*}\n", " q_{n_1,1}(b) \\, w(b) = -q_{n_2,2}(b) \\, w(b) =0 \\quad \\forall \\quad w \\in L_2(b), \\quad \\text{for 2-D this reads:} \\int_{I_{1,2}} \\, q_{n_1,1} \\, w \\, da = \\int_{I_{1,2}} \\,-q_{n_2,2} \\, w \\, da \\quad \\forall \\quad w \\in L_2(I_{1,2}),\n", "\\end{align*}\n", "\n", "for each sub-domain finite element at the interface. This is a matter involves details about meshing, therefore a full implementation is given below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Problem Solution](#toc)\n", "\n", "We will leverage the Peclet 1D, bulk coupling development (Notebook 11) to modify the domain of the problem and introduce the interface conditions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Code an Interface Jump Condition Kernel](#toc)\n", "\n", "An interfacial kernel is needed to enforce the jump condition. This is provided in the course template repository.\n", "\n", "1. Starting from the project home directory.\n", "1. `cd include`\n", "1. `mkdir interfkernels`\n", "1. `cd interfkernels`\n", "1. Copy the [header file](https://github.com/dpploy/engy-5310/blob/main/moose-app-templates/InterfacePartition.h)\n", " + `cp *path-to*/moose-app-templates/InterfaceJump.h .`\n", " + Note the important members:\n", " ```c++\n", "protected:\n", " virtual Real computeQpResidual(Moose::DGResidualType type) override;\n", " virtual Real computeQpJacobian(Moose::DGJacobianType type) override;\n", " /// Jump coefficient\n", " Real _kCoeff;\n", " ```\n", "
\n", "1. `cd ../..`\n", "1. `cd src`\n", "1. `mkdir interfkernels`\n", "1. `cd interfkernels`\n", "1. Copy the [implementation file](https://github.com/dpploy/engy-5310/blob/main/moose-app-templates/InterfacePartition.C)\n", " + `cp *path-to*/moose-app-templates/InterfaceJump.C .`\n", " + Edit the file `InterfaceJump.C` with a text editor addressing the `FIXME` instances.\n", " + Note the important members:\n", " - Residual:\n", "```c++\n", "Real\n", "InterfaceJump::computeQpResidual(Moose::DGResidualType type)\n", "{\n", " Real r = 0;\n", " switch (type)\n", " {\n", " // Primary residual = u_primary - k * u_neighbor\n", " // Weak form for primary domain is: (u_primary - k*u_neighbor, test)\n", " case Moose::Element:\n", " r = _test[_i][_qp] * (_u[_qp] - _kCoeff * _neighbor_value[_qp]);\n", " break;\n", " // Secondary residual: -(u_primary - k*u_neighbor, test),\n", " // flip the sign because the integration direction is opposite.\n", " case Moose::Neighbor:\n", " r = - _test_neighbor[_i][_qp] * (_u[_qp] - _kCoeff * _neighbor_value[_qp]);\n", " break;\n", " }\n", " return r;\n", "}\n", "```\n", " - Jacobian diagonal:\n", " ```c++\n", "Real\n", "InterfaceJump::computeQpJacobian(Moose::DGJacobianType type)\n", "{\n", " Real jac = 0;\n", " switch (type)\n", " {\n", " case Moose::ElementElement:\n", " jac = _test[_i][_qp] * _phi[_j][_qp];\n", " break;\n", " case Moose::NeighborNeighbor:\n", " jac = -_test_neighbor[_i][_qp] * -_kCoeff * _phi_neighbor[_j][_qp];\n", " break;\n", " case Moose::NeighborElement:\n", " jac = -_test_neighbor[_i][_qp] * _phi[_j][_qp];\n", " break;\n", " case Moose::ElementNeighbor:\n", " jac = _test[_i][_qp] * -_kCoeff * _phi_neighbor[_j][_qp];\n", " break;\n", " }\n", " return jac;\n", "}\n", " ```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Code an Interface Flux Condition](#toc)\n", "\n", "1. An interface normal (or any other direction) flux kernel is needed to enforce the flux condition required. While the normal flux is the only flux interfacial condition sought here, others can be implemented modifying the provided code below. Following similar steps as [above](#partitionkernel) create a kernel to enforce the continuity of the normal flux:\n", "\n", " + [Header file](https://github.com/dpploy/engy-5310/blob/main/moose-app-templates/InterfaceNormalFluxContinuity.h)\n", " + [Implementation file](https://github.com/dpploy/engy-5310/blob/main/moose-app-templates/InterfaceNormalFluxContinuity.C)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Compile and Link Application](#toc)\n", "\n", "1. Make sure you are in the problem project:\n", " + `cd ../..`\n", " + `pwd`\n", "1. You should see: `..../engy5310p1`\n", "1. Compile and link the application\n", " + `make`\n", "1. If all is sucessfull you should see among other things in the screen output:\n", " + Linking Library `.../engy5310p1/lib/libengy5310p1-opt.la...`\n", " + Linking Executable `.../engy5310p1/engy5310p1-opt...`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Input File](#toc)\n", "\n", "The domain partition and interface data set generation is as follows:\n", "\n", "```\n", "[Mesh]\n", " [omega1]\n", " type = GeneratedMeshGenerator\n", " dim = 1\n", " xmin = ${replace xmin}\n", " xmax = ${replace xmax}\n", " nx = 25\n", " []\n", " [omega1]\n", " type = GeneratedMeshGenerator\n", " dim = 1\n", " xmin = ${replace xmin}\n", " xmax = ${replace xmax}\n", " nx = 25\n", " []\n", "# Stitch the domains\n", " [omega]\n", " type = StitchedMeshGenerator\n", " inputs = 'omega1 omega2'\n", " stitch_boundaries_pairs = 'right left'\n", " clear_stitched_boundary_ids = 'true'\n", " []\n", "# Label subdomains: Omega_1 and Omega_2\n", " [mod1]\n", " type = SubdomainBoundingBoxGenerator\n", " input = omega\n", " block_id = 1\n", " block_name = omega_1\n", " bottom_left = '${replace xmin} 0 0'\n", " top_right = '${replace x_interface} 1 0'\n", " []\n", " [mod2]\n", " type = SubdomainBoundingBoxGenerator\n", " input = mod1\n", " block_id = 2\n", " block_name = omega_2\n", " bottom_left = '${replace x_interface} 0 0'\n", " top_right = '${replace xmax} 1 0'\n", " []\n", "# Create interface of subdomains: Omega_1 and Omega_2\n", " [mod3]\n", " type = SideSetsBetweenSubdomainsGenerator\n", " input = mod2\n", " primary_block = omega_1\n", " paired_block = omega_2 \n", " new_boundary = interface_12\n", " []\n", "# Create the shared boundary of subdomains: Omega_1 and Omega_2\n", " [mod4]\n", " type = SideSetsAroundSubdomainGenerator\n", " input = mod3\n", " block = omega_1\n", " normal = '-1 0 0'\n", " new_boundary = omega_1_left\n", " []\n", " [mod5]\n", " type = SideSetsAroundSubdomainGenerator\n", " input = mod4\n", " block = omega_2\n", " normal = '1 0 0'\n", " new_boundary = omega_2_right\n", " []\n", "[]\n", "```\n", "Enforcing the field partition at the interface:\n", "\n", "```\n", "[InterfaceKernels]\n", " [jump]\n", " type = InterfaceJump\n", " variable = u1\n", " neighbor_var = u2\n", " boundary = interface_12\n", " kCoeff = ${replace partition_coeff} # partition coefficient u1 = k * u2\n", " []\n", " [normal-flux-continuity]\n", " type = InterfaceNormalFluxContinuity\n", " variable = u1\n", " neighbor_var = u2\n", " boundary = interface_12\n", " diffCoeff = ${replace diff_coeff_1}\n", " diffCoeffNeighbor = ${replace diff_coeff_2}\n", " []\n", "[]\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Run Application](#toc)\n", "\n", "1. In the `engy5310p1/` directory run the application with the Linux shell command:\n", " + `./engy5310p1-opt -i input.hit`\n", "2. Compare your results with this notebook results below.\n", "3. Return here to follow instructions on how to implement the calculation of the total energy." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Linear Lagrange FEM](#toc)\n", "\n", "Solve problem with parameter values:\n", "\n", "> + $a = 0$ cm\n", "> + $b = 11$ cm\n", "> + $c = 25$ cm\n", "\n", "> + Pe$_\\text{ave} = 5$\n", "> + $K=1.2$\n", "\n", "| $u_1$ **Parameter** | **Value** | $u_2$ **Parameter** | **Value** |\n", "|:-------------------:|:----------:|:-------------------:|:---------:|\n", "| $A_1$ | 3 g/cc | $A_2$ | 0 g/cc |\n", "| $D_1$ | 0.1 cm^2/s | $D_2$ | 0.3 cm^2/s |\n", "| $S_1$ | $1\\times 10^{-3}$ g/cc-s | $S_2$ | $-1\\times 10^{-2}$ g/cc-s |\n", "\n", "FEM parameters:\n", "\n", "> + Basis Functions: First Order Lagrangian\n", "> + Num. of finite elements: 25" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "'''Domain'''\n", "\n", "x_a = 0\n", "x_b = 25\n", "x_interface = 11\n", "\n", "x_length = x_b - x_a" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "'''Parameters and data'''\n", "\n", "Pe_ave = 5 # mildly convective dominated\n", "\n", "diff_coeff_1 = .1\n", "source_s_1 = 3e-3\n", "\n", "diff_coeff_2 = .3\n", "source_s_2 = -1e-2\n", "\n", "velocity = (Pe_ave * (diff_coeff_1+diff_coeff_2)/2/x_length, 0, 0) # length scale is the x length\n", "\n", "u1_a = 3\n", "u2_c = 1\n", "\n", "partition_coeff = 1.2" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "code_folding": [] }, "outputs": [], "source": [ "'''FEM Solution'''\n", "\n", "n_felem_1 = 8\n", "n_felem_2 = 10\n", "\n", "order = 'first'\n", "\n", "n_plot_pts_1 = n_felem_1 + 1\n", "n_plot_pts_2 = n_felem_2 + 1\n", "\n", "try: \n", " from engy_5310.toolkit import write_engy5310_1d_interfacial_coupling_input_file \n", "except ModuleNotFoundError:\n", " assert False, 'You need to provide your own code here. Bailing out.'\n", "\n", "write_engy5310_1d_interfacial_coupling_input_file(x_left=x_a, x_right=x_b, \n", " x_interface=x_interface,\n", " u1_left=u1_a,\n", " diff_coeff_1=diff_coeff_1, source_s_1=source_s_1,\n", " u2_right=u2_c, \n", " diff_coeff_2=diff_coeff_2, source_s_2=source_s_2,\n", " jump_coeff=partition_coeff,\n", " interface_thickness_percent=0.01,\n", " velocity=velocity,\n", " n_felem_1=n_felem_1, n_felem_2=n_felem_2,\n", " order=order, \n", " n_plot_pts_1=n_plot_pts_1, n_plot_pts_2=n_plot_pts_2,\n", " compute_diffusion_flux=True)\n", " #solver='fdp-newt-full')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Engy-5310 Problem 1: Poisson 1D FEM\r\n", "# UMass Lowell Nuclear Chemical Engineering\r\n", "# Prof. Valmor F. de Almeida\r\n", "# 17May21 17:06:41\r\n", "\r\n", "# Parameters\r\n", "xmin = 0.00000e+00\r\n", "xmax = 2.50000e+01\r\n", "x_interface = 1.10000e+01\r\n", "\r\n", "u1_left = 3.00000e+00\r\n", "diff_coeff_1 = 1.00000e-01\r\n", "source_s_1 = 3.00000e-03\r\n", "\r\n", "u2_right = 1.00000e+00\r\n", "diff_coeff_2 = 3.00000e-01\r\n", "source_s_2 = -1.00000e-02\r\n", "\r\n", "velocity = '4.00000e-02 0.00000e+00 0.00000e+00'\r\n", "jump_coeff = 1.20000e+00\r\n", "\r\n", "[Problem]\r\n", " type = FEProblem\r\n", " coord_type = XYZ\r\n", "[]\r\n", "\r\n", "[Mesh]\r\n", " [omega1]\r\n", " type = GeneratedMeshGenerator\r\n", " dim = 1\r\n", " xmin = ${replace xmin}\r\n", " xmax = ${replace x_interface}\r\n", " nx = 8\r\n", " []\r\n", " [omega2]\r\n", " type = GeneratedMeshGenerator\r\n", " dim = 1\r\n", " xmin = ${replace x_interface}\r\n", " xmax = ${replace xmax}\r\n", " nx = 10\r\n", " []\r\n", " [omega]\r\n", " type = StitchedMeshGenerator\r\n", " inputs = 'omega1 omega2'\r\n", " stitch_boundaries_pairs = 'right left'\r\n", " clear_stitched_boundary_ids = 'true'\r\n", " []\r\n", "# Create subdomains: Omega_1 and Omega_2\r\n", " [mod1]\r\n", " type = SubdomainBoundingBoxGenerator\r\n", " input = omega\r\n", " block_id = 1\r\n", " block_name = omega_1\r\n", " bottom_left = '${replace xmin} 0 0'\r\n", " top_right = '${replace x_interface} 1 0'\r\n", " []\r\n", " [mod2]\r\n", " type = SubdomainBoundingBoxGenerator\r\n", " input = mod1\r\n", " block_id = 2\r\n", " block_name = omega_2\r\n", " bottom_left = '${replace x_interface} 0 0'\r\n", " top_right = '${replace xmax} 1 0'\r\n", " []\r\n", "# Create interface of subdomains: Omega_1 and Omega_2\r\n", " [mod3]\r\n", " type = SideSetsBetweenSubdomainsGenerator\r\n", " input = mod2\r\n", " primary_block = omega_1\r\n", " paired_block = omega_2 \r\n", " new_boundary = interface_12\r\n", " []\r\n", "# Create boundaries of subdomains: Omega_1 and Omega_2\r\n", " [mod4]\r\n", " type = SideSetsAroundSubdomainGenerator\r\n", " input = mod3\r\n", " block = omega_1\r\n", " normal = '-1 0 0'\r\n", " new_boundary = omega_1_left\r\n", " []\r\n", " [mod5]\r\n", " type = SideSetsAroundSubdomainGenerator\r\n", " input = mod4\r\n", " block = omega_2\r\n", " normal = '1 0 0'\r\n", " new_boundary = omega_2_right\r\n", " []\r\n", "[]\r\n", "\r\n", "[Variables]\r\n", " [u1]\r\n", " block = omega_1\r\n", " order = first\r\n", " family = lagrange\r\n", " initial_condition = ${replace u1_left}\r\n", " []\r\n", " [u2]\r\n", " block = omega_2\r\n", " order = first\r\n", " family = lagrange\r\n", " initial_condition = ${replace u2_right}\r\n", " []\r\n", "[]\r\n", "\r\n", "[AuxVariables]\r\n", " [diffFluxU1]\r\n", " order = CONSTANT\r\n", " family = MONOMIAL_VEC\r\n", " []\r\n", " [diffFluxU2]\r\n", " order = CONSTANT\r\n", " family = MONOMIAL_VEC\r\n", " []\r\n", " [diffFluxU1_x]\r\n", " order = CONSTANT\r\n", " family = MONOMIAL\r\n", " []\r\n", " [diffFluxU2_x]\r\n", " order = CONSTANT\r\n", " family = MONOMIAL\r\n", " []\r\n", "[]\r\n", "\r\n", "[Kernels]\r\n", " [diffusion-term-1]\r\n", " block = omega_1\r\n", " type = DiffusionTerm\r\n", " variable = u1 # produced quantity\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " []\r\n", " [source-term-1]\r\n", " type = SourceTerm\r\n", " block = omega_1\r\n", " variable = u1 # add to produced quantity\r\n", " sourceS = ${replace source_s_1}\r\n", " coupledVariable = u1\r\n", " []\r\n", " [convection-term-1]\r\n", " type = ConvectionTerm\r\n", " block = omega_1\r\n", " variable = u1 # produced quantity\r\n", " velocity = ${replace velocity}\r\n", " []\r\n", " [diffusion-term-2]\r\n", " type = DiffusionTerm\r\n", " block = omega_2\r\n", " variable = u2 # produced quantity\r\n", " diffCoeff = ${replace diff_coeff_2}\r\n", " []\r\n", " [source-term-2]\r\n", " type = SourceTerm\r\n", " block = omega_2\r\n", " variable = u2 # add to produced quantity\r\n", " sourceS = ${replace source_s_2}\r\n", " coupledVariable = u2\r\n", " []\r\n", " [convection-term-2]\r\n", " block = omega_2\r\n", " type = ConvectionTerm\r\n", " variable = u2 # produced quantity\r\n", " velocity = ${replace velocity}\r\n", " []\r\n", "[]\r\n", "\r\n", "[InterfaceKernels]\r\n", " [jump]\r\n", " type = InterfaceJump\r\n", " variable = u1\r\n", " neighbor_var = u2\r\n", " boundary = interface_12\r\n", " jumpCoeff = ${replace jump_coeff} # jump coefficient u1 = k * u2\r\n", " []\r\n", " [normal-flux-continuity]\r\n", " type = InterfaceNormalFluxContinuity\r\n", " variable = u1\r\n", " neighbor_var = u2\r\n", " boundary = interface_12\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " diffCoeffNeighbor = ${replace diff_coeff_2}\r\n", " []\r\n", "[]\r\n", "\r\n", "[AuxKernels]\r\n", " [diffusion-flux-1]\r\n", " execute_on = timestep_end\r\n", " type = DiffusionFlux\r\n", " field = u1\r\n", " block = omega_1\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " variable = diffFluxU1 # produced quantity\r\n", " []\r\n", " [diffusion-flux-x-1]\r\n", " execute_on = timestep_end\r\n", " type = VectorVariableComponentAux\r\n", " variable = diffFluxU1_x # produced quantity\r\n", " block = omega_1\r\n", " component = x\r\n", " vector_variable = diffFluxU1 \r\n", " []\r\n", " [diffusion-flux-2]\r\n", " execute_on = timestep_end\r\n", " type = DiffusionFlux\r\n", " field = u2\r\n", " block = omega_2\r\n", " diffCoeff = ${replace diff_coeff_2}\r\n", " variable = diffFluxU2 # produced quantity\r\n", " []\r\n", " [diffusion-flux-x-2]\r\n", " execute_on = timestep_end\r\n", " type = VectorVariableComponentAux\r\n", " variable = diffFluxU2_x # produced quantity\r\n", " block = omega_2\r\n", " component = x\r\n", " vector_variable = diffFluxU2 \r\n", " []\r\n", "[]\r\n", "\r\n", "[BCs]\r\n", " [left]\r\n", " type = DirichletBC\r\n", " variable = u1\r\n", " boundary = omega_1_left\r\n", " value = ${replace u1_left}\r\n", " []\r\n", " [right]\r\n", " type = DirichletBC\r\n", " variable = u2\r\n", " boundary = omega_2_right\r\n", " value = ${replace u2_right}\r\n", " []\r\n", "[]\r\n", "\r\n", "[Executioner]\r\n", " type = Steady\r\n", " solve_type = 'PJFNK'\r\n", " petsc_options_iname = '-pc_type -pc_hypre_type'\r\n", " petsc_options_value = 'hypre boomeramg'\r\n", "[]\r\n", "\r\n", "[VectorPostprocessors]\r\n", " [omega_1]\r\n", " type = LineValueSampler\r\n", " execute_on = 'timestep_end final'\r\n", " variable = 'u1 diffFluxU1_x' # output data\r\n", " start_point = '${replace xmin} 0 0'\r\n", " end_point = '${fparse x_interface-2.50e-03} 0 0'\r\n", " num_points = 9\r\n", " sort_by = id\r\n", " []\r\n", " [omega_2]\r\n", " type = LineValueSampler\r\n", " execute_on = 'timestep_end final'\r\n", " variable = 'u2 diffFluxU2_x' # output data\r\n", " start_point = '${fparse x_interface+2.50e-03} 0 0'\r\n", " end_point = '${replace xmax} 0 0'\r\n", " num_points = 11\r\n", " sort_by = id\r\n", " []\r\n", "[]\r\n", "\r\n", "[Outputs]\r\n", " console = true\r\n", " [csv]\r\n", " type = CSV\r\n", " file_base = 'output'\r\n", " execute_on = 'final'\r\n", " []\r\n", "[]\r\n" ] } ], "source": [ "'''Display MOOSE input file created'''\n", "\n", "!cat engy5310p1/input.hit" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "In ReplicatedMesh::stitch_meshes:\n", "This mesh has 1 nodes on boundary 1.\n", "Other mesh has 1 nodes on boundary 0.\n", "Minimum edge length on both surfaces is 1.375.\n", "In ReplicatedMesh::stitch_meshes:\n", "Found 1 matching nodes.\n", "\n", "\n", "Framework Information:\n", "MOOSE Version: git commit a7f499ed31 on 2021-04-30\n", "LibMesh Version: 27141d18f3137f77e33cdb3d565fd38ebfbfc46f\n", "PETSc Version: 3.15.0\n", "SLEPc Version: 3.14.2\n", "Current Time: Mon May 17 17:06:42 2021\n", "Executable Timestamp: Mon May 17 10:40:56 2021\n", "\n", "Parallelism:\n", " Num Processors: 1\n", " Num Threads: 1\n", "\n", "Mesh: \n", " Parallel Type: replicated\n", " Mesh Dimension: 1\n", " Spatial Dimension: 1\n", " Nodes: \n", " Total: 19\n", " Local: 19\n", " Elems: \n", " Total: 18\n", " Local: 18\n", " Num Subdomains: 2\n", " Num Partitions: 1\n", "\n", "Nonlinear System:\n", " Num DOFs: 20\n", " Num Local DOFs: 20\n", " Variables: \"u1\" \"u2\" \n", " Finite Element Types: \"LAGRANGE\" \"LAGRANGE\" \n", " Approximation Orders: \"FIRST\" \"FIRST\" \n", "\n", "Auxiliary System:\n", " Num DOFs: 72\n", " Num Local DOFs: 72\n", " Variables: { \"diffFluxU1\" \"diffFluxU2\" } { \"diffFluxU1_x\" \"diffFluxU2_x\" } \n", " Finite Element Types: \"MONOMIAL_VEC\" \"MONOMIAL\" \n", " Approximation Orders: \"CONSTANT\" \"CONSTANT\" \n", "\n", "Execution Information:\n", " Executioner: Steady\n", " Solver Mode: Preconditioned JFNK\n", " PETSc Preconditioner: hypre boomeramg \n", "\n", " 0 Nonlinear |R| = \u001b[32m2.539549e+00\u001b[39m\n", " 0 Linear |R| = \u001b[32m2.539549e+00\u001b[39m\n", " 1 Linear |R| = \u001b[32m2.682542e-02\u001b[39m\n", " 2 Linear |R| = \u001b[32m2.388515e-04\u001b[39m\n", " 3 Linear |R| = \u001b[32m3.679989e-05\u001b[39m\n", " 4 Linear |R| = \u001b[32m9.311840e-10\u001b[39m\n", " 1 Nonlinear |R| = \u001b[32m9.220975e-09\u001b[39m\n", "\u001b[32m Solve Converged!\u001b[39m\n", "WARNING! There are options you set that were not used!\n", "WARNING! could be spelling mistake, etc!\n", "There is one unused database option. It is:\n", "Option left: name:-i value: engy5310p1/input.hit\n" ] } ], "source": [ "'''Run Engy5310P1 MOOSE App'''\n", "\n", "!engy5310p1/engy5310p1-opt -i engy5310p1/input.hit" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "code_folding": [ 5 ] }, "outputs": [ { "data": { "image/png": "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FStGhw4d2LVrFx07duSvv/6KX9/FxYUNGzbQokULLl++zG+//UZQUBDly5enY8eO7Nq1i3PnzqUaQ8uWLVm1ahUuLi6sW7eOc+fO4enpyauvvsorr7xCkyZN4qvojh07lg4dOuDl5ZWkaqYtqjW3adOG9u3b89dffzF79myefPJJXnnlFerVq8eTTz7JvXv3LI6hbNmybNu2jQoVKrBjxw42bdpE3rx5adOmDZs2beK9995LdrMM0KlTJ15++eX4GMqXL8/hw4fT3OeIESOoVq0a//77Lxs2bCBXrly88MILjBs3jsaNG9O8eXNiY2Pj92OL/9ukSZOIjY3F19eXa9euUbBgQZo2bcqMGTOoV68eb731Vrr/F+XLl6dFixaEhYUxZcqUNJePjIyM/7tu3br8888/5M+fnz///JMTJ05QrVo1evToQfv27WnWrBkHDhxId2yJLV++nHr16rFixQqioqJo374948aNo27durRr1y5D2y5UqBC7d+8mMjKSFStWkCtXLjp16sT8+fOJjY1l4cKFSZZfuXIlbdq04cyZM/zwww+4uLjQq1cvatSoYfW+mzdvTnR0NHv37k02z1Rd/6effuLmzZupbifx/wVg0aJF9OjRg8uXLzNv3jyUUnTs2JEff/yRBg0aJEt4gOXHwVT1ulevXsmaP1y8eDHN1+zi4sLff/9NqVKl+Ouvv4iOjqZDhw5MnjyZXLlyZbjDSBcXFzZv3kzjxo05efIkM2fOJE+ePHTq1Inly5czceJERo4cmaF9LFiwgO7du/Pff/+xcOFCwsLCKFWqFA0aNODll1/G29s7Q9vPLNOmTaNx48a89tpr9OvXL77ZUsmSJVm8eDHh4eF06dKF8PDwJOvt3r0bgBYtWvDTTz+luR9vb2+ef/55GjZsyObNmwH9Zf65554DSPbFpWnTpvHrPapjx47cvn2bXbt2Wflqzbtz5w5z5sxh1KhR9OjRg7Vr11q03scff0yLFi1Yt24dPj4+FCxYMNXlCxUqhI+PD15eXpw6dYpffvmFyMhIKlWqxDvvvMOqVau4fft2knWmTJlCy5YtWbduHX///TdNmjShb9++PPHEExYnxubNm0fv3r25cuUKq1atIjAwkPr16zNhwgSaNWtGixYtiImJif+8Gzt2bJImN2C+2YU16tSpQ9GiRbl48SJ3796Nn963b18A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ww+55JJLOPXUU+nZsydNmjRh/Pjx7LnnnnGnJm0j733T91Ql1ejRo7n44ov5+c9/znXXXUe7du146623qF27dtypqRoaMmQI06ZN29I/wPdQJc3W5yj4Plqd1Io7ARUtiqJCrzMyMrZZJsVh9OjRhV5PnDiR2bNn06NHD+67776YspJ2zPdUJdXIkSO3PP/888+ZOnUqc+fO5fTTT+fFF1+MMTNVN3/5y1/o2LEjHTt2JDc3t9A630OVBEWdo76PVh+OwEigpUuXkpOTs01Vu1GjRttUv6UkWLt2LV988QUHHnhg3KlI21i4cCGA76lKGwsWLGDevHm+p6pSDRo0iAsvvJAuXbowZ86cLct9D1VSFHWObo/vo1WXBYwE2rRpE1OnTqVr166Flnft2pXx48fHlJVUtDp16nDwwQc7laoSac6cOSxYsKDQe2qdOnXo1KmT76lKpL322ot99tnH91RVmsGDB3PRRRfRpUsXZs6cWWid76FKgh2do9vj+2jVFnsnUWPbOO+886INGzZEv/3tb6ODDz44Gjx4cLR69epov/32iz03w7jnnnuizp07R/vvv3/Url276JVXXolWrlzp+WnEFvXq1YsOP/zw6PDDD4/Wrl0b9e3bNzr88MOjZs2aRUB04403RitXrozOOuusqE2bNtGIESOi+fPnR/Xr1489d6Pqx47Oz3r16kX33HNP1L59+6h58+bR8ccfH40fPz767rvvPD+NSokHHnggWrlyZXTiiSdGjRs33hL16tXbso3voUacsbNz1PfRahexJ2AUEVdccUU0Z86caP369dGUKVOiTp06xZ6TYQBb/nDZsGFDNG/evOi5556LWrduHXteRvWN448/PtqeYcOGbdkmKysr+v7776Ps7OzonXfeidq0aRN73kb1iB2dn3Xr1o1Gjx4dLVq0KNqwYUP0zTffRMOGDYv23Xff2PM2qkcUJSsrq9B2vocaccXOzlHfR6tXZKSeSJIkSZIkJZY9MCRJkiRJUuJZwJAkSZIkSYlnAUOSJEmSJCWeBQxJkiRJkpR4FjAkSZIkSVLiWcCQJEmSJEmJZwFDkiRJkiQlngUMSZIkSZKUeBYwJEmq5rKysoiiaEv87Gc/iy2XY489tlAuWVlZseUiSZKSpVbcCUiSpGS49tprWbp0KTNnzowth6+++opf/epXNGzYkMGDB8eWhyRJSh4LGJIkCYBRo0Yxd+7cWHNYtmwZw4cPp3nz5hYwJElSId5CIkmSJEmSEs8ChiRJaa5u3bp89913zJ07l9q1axda9+ijj5KTk8P5559f6uNnZmZyww03MG3aNNauXcuKFSuYPHkyV1555ZZtevToQRRFdOnShb59+/LNN9+wbt06Jk6cyLHHHgtA586dee+991izZg3ff/89t912W6lzkiRJ1Y8FDEmS0tz69evJyspiv/32o3fv3luWDxw4kMsuu4yrr76akSNHlurYmZmZjBkzhrvvvptFixbRr18/br31VqZOncrZZ5+9zfZ33XUX3bp1Y8iQIdx+++20bNmSMWPG8Itf/IIXXniB9957j+uvv54ZM2Zwxx130L1791J/35IkqfqJDMMwDMNI76hRo0b02WefRYsWLYrq1asX9enTJ4qiKOrbt+9O983KyoqiKIqaN2++zbobbrghiqIouvPOO7dZl5GRseV5jx49oiiKoqlTp0aZmZlblp955plRFEXRpk2bomOOOWbL8szMzOj777+Pxo8fv92cmjdvHkVRFGVlZcX+szUMwzAMIxnhCAxJkqqA3NxcbrrpJho1asSoUaMYNGgQ999/P3fccUeZjtu9e3eWL1/OgAEDtlkXRdE2yx5++GE2bdq05fV7770HwMSJE5kyZcqW5Zs2bWLSpEkceOCBZcpPkiRVHxYwJEmqIl577TWmTp3KSSedxMiRI+nTp0+Zj3nggQcyY8YMNmzYUKztZ8+eXej1ihUrAJgzZ8422/7www80bNiwzDlKkqTqwQKGJElVxC9/+UuOOOIIAFavXl1ux93eSIuibN68uUTLJUmSissChiRJVUDXrl156qmnePHFFxkxYgS/+c1vOPjgg8t83FmzZtG6dettZjeRJEmqbBYwJElKc+3ateOFF17ggw8+oHv37tx2223k5ubypz/9qczHHj58OHvuuadTnkqSpNjVijsBSZJUegcffDCvvfYas2bNolu3bmzcuJHZs2fz2GOPccUVV9ChQwfGjx9f6uMPGTKEM888k759+9K2bVvGjh3L+vXradOmDa1ataJr167l+N1IkiQVzREYkiSlqWbNmjF27FhWrlzJqaeeWqjvxYABA1i3bh133313mb7Gpk2bOPnkk7n11ltp1qwZAwcOZODAgVtGfUiSJFWWDMJ8qpIkqZrKysqif//+HHnkkXz33XesWLEitqabNWvWZPfdd6dZs2ZMmzaN/v37c/vtt8eSiyRJShZHYEiSJACmTZvG0qVLad++fWw5HHPMMSxdupRp06bFloMkSUomR2BIklTNtWjRgpYtW255PXnyZFatWhVLLrvtthvt2rXb8nr27NnMmTMnllwkSVKyWMCQJEmSJEmJ5y0kkiRJkiQp8SxgSJIkSZKkxLOAIUmSJEmSEs8ChiRJkiRJSjwLGJIkSZIkKfEsYEiSJEmSpMT7f73HtvpSRlphAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Show FEM Solution'''\n", "\n", "import pandas as pd\n", "df1 = pd.read_csv('output_omega_1_0002.csv')\n", "df2 = pd.read_csv('output_omega_2_0002.csv')\n", " \n", "plot_solution(df1, df2, title='Peclet Interfacial Coupling (Continuous Flux) w/ Dirichlet BC FEM Solution', \n", " u1_legend=r'$u_1$ Linear Lagrange', u2_legend=r'$u_2$ Linear Lagrange',\n", " u1_flux_legend=r'$u_1$ Diff. Flux Constant Monomial',\n", " u2_flux_legend=r'$u_2$ Diff. Flux Constant Monomial')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comments:**\n", "\n", "1. The jump in the fields at the interface leads to discontinous derivatives but the flux is enforced to be continuous. Note that the constant Lagrange basis functions used for computing the flux barely enforce the continuity accurately." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [FEM Error](#toc)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'coming...'" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'''Error Compared to Exact Dimensionless Solution'''\n", "\n", "'''coming...'''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comments:**\n", "\n", "1. TBA\n", "1. TBA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Quadratic Lagrange FEM](#toc)\n", "\n", "Solve problem with the same parameter values as above.\n", "\n", "FEM parameters:\n", "\n", "> + Basis Functions: Second Order Lagrangian\n", "> + num. of finite elements: 20" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "code_folding": [ 12 ] }, "outputs": [], "source": [ "'''FEM Solution'''\n", "\n", "order = 'second'\n", "\n", "n_plot_pts_1 = 2*n_felem_1 + 1\n", "n_plot_pts_2 = 2*n_felem_2 + 1\n", "\n", "try: \n", " from engy_5310.toolkit import write_engy5310_1d_interfacial_coupling_input_file \n", "except ModuleNotFoundError:\n", " assert False, 'You need to provide your own code here. Bailing out.'\n", "\n", "write_engy5310_1d_interfacial_coupling_input_file(x_left=x_a, x_right=x_b, \n", " x_interface=x_interface,\n", " u1_left=u1_a,\n", " diff_coeff_1=diff_coeff_1, source_s_1=source_s_1,\n", " u2_right=u2_c, \n", " diff_coeff_2=diff_coeff_2, source_s_2=source_s_2,\n", " jump_coeff=partition_coeff,\n", " velocity=velocity,\n", " n_felem_1=n_felem_1, n_felem_2=n_felem_2,\n", " order=order, \n", " n_plot_pts_1=n_plot_pts_1,\n", " n_plot_pts_2=n_plot_pts_2,\n", " compute_diffusion_flux=True)\n", " #solver='fdp-newt-full')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Engy-5310 Problem 1: Poisson 1D FEM\r\n", "# UMass Lowell Nuclear Chemical Engineering\r\n", "# Prof. Valmor F. de Almeida\r\n", "# 17May21 17:06:43\r\n", "\r\n", "# Parameters\r\n", "xmin = 0.00000e+00\r\n", "xmax = 2.50000e+01\r\n", "x_interface = 1.10000e+01\r\n", "\r\n", "u1_left = 3.00000e+00\r\n", "diff_coeff_1 = 1.00000e-01\r\n", "source_s_1 = 3.00000e-03\r\n", "\r\n", "u2_right = 1.00000e+00\r\n", "diff_coeff_2 = 3.00000e-01\r\n", "source_s_2 = -1.00000e-02\r\n", "\r\n", "velocity = '4.00000e-02 0.00000e+00 0.00000e+00'\r\n", "jump_coeff = 1.20000e+00\r\n", "\r\n", "[Problem]\r\n", " type = FEProblem\r\n", " coord_type = XYZ\r\n", "[]\r\n", "\r\n", "[Mesh]\r\n", " [omega1]\r\n", " type = GeneratedMeshGenerator\r\n", " dim = 1\r\n", " xmin = ${replace xmin}\r\n", " xmax = ${replace x_interface}\r\n", " nx = 8\r\n", " elem_type = edge3\r\n", " []\r\n", " [omega2]\r\n", " type = GeneratedMeshGenerator\r\n", " dim = 1\r\n", " xmin = ${replace x_interface}\r\n", " xmax = ${replace xmax}\r\n", " nx = 10\r\n", " elem_type = edge3\r\n", " []\r\n", " [omega]\r\n", " type = StitchedMeshGenerator\r\n", " inputs = 'omega1 omega2'\r\n", " stitch_boundaries_pairs = 'right left'\r\n", " clear_stitched_boundary_ids = 'true'\r\n", " []\r\n", "# Create subdomains: Omega_1 and Omega_2\r\n", " [mod1]\r\n", " type = SubdomainBoundingBoxGenerator\r\n", " input = omega\r\n", " block_id = 1\r\n", " block_name = omega_1\r\n", " bottom_left = '${replace xmin} 0 0'\r\n", " top_right = '${replace x_interface} 1 0'\r\n", " []\r\n", " [mod2]\r\n", " type = SubdomainBoundingBoxGenerator\r\n", " input = mod1\r\n", " block_id = 2\r\n", " block_name = omega_2\r\n", " bottom_left = '${replace x_interface} 0 0'\r\n", " top_right = '${replace xmax} 1 0'\r\n", " []\r\n", "# Create interface of subdomains: Omega_1 and Omega_2\r\n", " [mod3]\r\n", " type = SideSetsBetweenSubdomainsGenerator\r\n", " input = mod2\r\n", " primary_block = omega_1\r\n", " paired_block = omega_2 \r\n", " new_boundary = interface_12\r\n", " []\r\n", "# Create boundaries of subdomains: Omega_1 and Omega_2\r\n", " [mod4]\r\n", " type = SideSetsAroundSubdomainGenerator\r\n", " input = mod3\r\n", " block = omega_1\r\n", " normal = '-1 0 0'\r\n", " new_boundary = omega_1_left\r\n", " []\r\n", " [mod5]\r\n", " type = SideSetsAroundSubdomainGenerator\r\n", " input = mod4\r\n", " block = omega_2\r\n", " normal = '1 0 0'\r\n", " new_boundary = omega_2_right\r\n", " []\r\n", "[]\r\n", "\r\n", "[Variables]\r\n", " [u1]\r\n", " block = omega_1\r\n", " order = second\r\n", " family = lagrange\r\n", " initial_condition = ${replace u1_left}\r\n", " []\r\n", " [u2]\r\n", " block = omega_2\r\n", " order = second\r\n", " family = lagrange\r\n", " initial_condition = ${replace u2_right}\r\n", " []\r\n", "[]\r\n", "\r\n", "[AuxVariables]\r\n", " [diffFluxU1]\r\n", " order = FIRST\r\n", " family = MONOMIAL_VEC\r\n", " []\r\n", " [diffFluxU2]\r\n", " order = FIRST\r\n", " family = MONOMIAL_VEC\r\n", " []\r\n", " [diffFluxU1_x]\r\n", " order = FIRST\r\n", " family = MONOMIAL\r\n", " []\r\n", " [diffFluxU2_x]\r\n", " order = FIRST\r\n", " family = MONOMIAL\r\n", " []\r\n", "[]\r\n", "\r\n", "[Kernels]\r\n", " [diffusion-term-1]\r\n", " block = omega_1\r\n", " type = DiffusionTerm\r\n", " variable = u1 # produced quantity\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " []\r\n", " [source-term-1]\r\n", " type = SourceTerm\r\n", " block = omega_1\r\n", " variable = u1 # add to produced quantity\r\n", " sourceS = ${replace source_s_1}\r\n", " coupledVariable = u1\r\n", " []\r\n", " [convection-term-1]\r\n", " type = ConvectionTerm\r\n", " block = omega_1\r\n", " variable = u1 # produced quantity\r\n", " velocity = ${replace velocity}\r\n", " []\r\n", " [diffusion-term-2]\r\n", " type = DiffusionTerm\r\n", " block = omega_2\r\n", " variable = u2 # produced quantity\r\n", " diffCoeff = ${replace diff_coeff_2}\r\n", " []\r\n", " [source-term-2]\r\n", " type = SourceTerm\r\n", " block = omega_2\r\n", " variable = u2 # add to produced quantity\r\n", " sourceS = ${replace source_s_2}\r\n", " coupledVariable = u2\r\n", " []\r\n", " [convection-term-2]\r\n", " block = omega_2\r\n", " type = ConvectionTerm\r\n", " variable = u2 # produced quantity\r\n", " velocity = ${replace velocity}\r\n", " []\r\n", "[]\r\n", "\r\n", "[InterfaceKernels]\r\n", " [jump]\r\n", " type = InterfaceJump\r\n", " variable = u1\r\n", " neighbor_var = u2\r\n", " boundary = interface_12\r\n", " jumpCoeff = ${replace jump_coeff} # jump coefficient u1 = k * u2\r\n", " []\r\n", " [normal-flux-continuity]\r\n", " type = InterfaceNormalFluxContinuity\r\n", " variable = u1\r\n", " neighbor_var = u2\r\n", " boundary = interface_12\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " diffCoeffNeighbor = ${replace diff_coeff_2}\r\n", " []\r\n", "[]\r\n", "\r\n", "[AuxKernels]\r\n", " [diffusion-flux-1]\r\n", " execute_on = timestep_end\r\n", " type = DiffusionFlux\r\n", " field = u1\r\n", " block = omega_1\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " variable = diffFluxU1 # produced quantity\r\n", " []\r\n", " [diffusion-flux-x-1]\r\n", " execute_on = timestep_end\r\n", " type = VectorVariableComponentAux\r\n", " variable = diffFluxU1_x # produced quantity\r\n", " block = omega_1\r\n", " component = x\r\n", " vector_variable = diffFluxU1 \r\n", " []\r\n", " [diffusion-flux-2]\r\n", " execute_on = timestep_end\r\n", " type = DiffusionFlux\r\n", " field = u2\r\n", " block = omega_2\r\n", " diffCoeff = ${replace diff_coeff_2}\r\n", " variable = diffFluxU2 # produced quantity\r\n", " []\r\n", " [diffusion-flux-x-2]\r\n", " execute_on = timestep_end\r\n", " type = VectorVariableComponentAux\r\n", " variable = diffFluxU2_x # produced quantity\r\n", " block = omega_2\r\n", " component = x\r\n", " vector_variable = diffFluxU2 \r\n", " []\r\n", "[]\r\n", "\r\n", "[BCs]\r\n", " [left]\r\n", " type = DirichletBC\r\n", " variable = u1\r\n", " boundary = omega_1_left\r\n", " value = ${replace u1_left}\r\n", " []\r\n", " [right]\r\n", " type = DirichletBC\r\n", " variable = u2\r\n", " boundary = omega_2_right\r\n", " value = ${replace u2_right}\r\n", " []\r\n", "[]\r\n", "\r\n", "[Executioner]\r\n", " type = Steady\r\n", " solve_type = 'PJFNK'\r\n", " petsc_options_iname = '-pc_type -pc_hypre_type'\r\n", " petsc_options_value = 'hypre boomeramg'\r\n", "[]\r\n", "\r\n", "[VectorPostprocessors]\r\n", " [omega_1]\r\n", " type = LineValueSampler\r\n", " execute_on = 'timestep_end final'\r\n", " variable = 'u1 diffFluxU1_x' # output data\r\n", " start_point = '${replace xmin} 0 0'\r\n", " end_point = '${fparse x_interface-2.50e-02} 0 0'\r\n", " num_points = 17\r\n", " sort_by = id\r\n", " []\r\n", " [omega_2]\r\n", " type = LineValueSampler\r\n", " execute_on = 'timestep_end final'\r\n", " variable = 'u2 diffFluxU2_x' # output data\r\n", " start_point = '${fparse x_interface+2.50e-02} 0 0'\r\n", " end_point = '${replace xmax} 0 0'\r\n", " num_points = 21\r\n", " sort_by = id\r\n", " []\r\n", "[]\r\n", "\r\n", "[Outputs]\r\n", " console = true\r\n", " [csv]\r\n", " type = CSV\r\n", " file_base = 'output'\r\n", " execute_on = 'final'\r\n", " []\r\n", "[]\r\n" ] } ], "source": [ "'''Display MOOSE input file created'''\n", "\n", "!cat engy5310p1/input.hit" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "In ReplicatedMesh::stitch_meshes:\n", "This mesh has 1 nodes on boundary 1.\n", "Other mesh has 1 nodes on boundary 0.\n", "Minimum edge length on both surfaces is 1.375.\n", "In ReplicatedMesh::stitch_meshes:\n", "Found 1 matching nodes.\n", "\n", "\n", "Framework Information:\n", "MOOSE Version: git commit a7f499ed31 on 2021-04-30\n", "LibMesh Version: 27141d18f3137f77e33cdb3d565fd38ebfbfc46f\n", "PETSc Version: 3.15.0\n", "SLEPc Version: 3.14.2\n", "Current Time: Mon May 17 17:06:43 2021\n", "Executable Timestamp: Mon May 17 10:40:56 2021\n", "\n", "Parallelism:\n", " Num Processors: 1\n", " Num Threads: 1\n", "\n", "Mesh: \n", " Parallel Type: replicated\n", " Mesh Dimension: 1\n", " Spatial Dimension: 1\n", " Nodes: \n", " Total: 37\n", " Local: 37\n", " Elems: \n", " Total: 18\n", " Local: 18\n", " Num Subdomains: 2\n", " Num Partitions: 1\n", "\n", "Nonlinear System:\n", " Num DOFs: 38\n", " Num Local DOFs: 38\n", " Variables: \"u1\" \"u2\" \n", " Finite Element Types: \"LAGRANGE\" \"LAGRANGE\" \n", " Approximation Orders: \"SECOND\" \"SECOND\" \n", "\n", "Auxiliary System:\n", " Num DOFs: 144\n", " Num Local DOFs: 144\n", " Variables: { \"diffFluxU1\" \"diffFluxU2\" } { \"diffFluxU1_x\" \"diffFluxU2_x\" } \n", " Finite Element Types: \"MONOMIAL_VEC\" \"MONOMIAL\" \n", " Approximation Orders: \"FIRST\" \"FIRST\" \n", "\n", "Execution Information:\n", " Executioner: Steady\n", " Solver Mode: Preconditioned JFNK\n", " PETSc Preconditioner: hypre boomeramg \n", "\n", " 0 Nonlinear |R| = \u001b[32m2.543673e+00\u001b[39m\n", " 0 Linear |R| = \u001b[32m2.543673e+00\u001b[39m\n", " 1 Linear |R| = \u001b[32m2.963384e-02\u001b[39m\n", " 2 Linear |R| = \u001b[32m5.432196e-03\u001b[39m\n", " 3 Linear |R| = \u001b[32m5.115396e-03\u001b[39m\n", " 4 Linear |R| = \u001b[32m3.994781e-09\u001b[39m\n", " 1 Nonlinear |R| = \u001b[32m9.268823e-08\u001b[39m\n", " 0 Linear |R| = \u001b[32m9.268823e-08\u001b[39m\n", " 1 Linear |R| = \u001b[32m4.039570e-08\u001b[39m\n", " 2 Linear |R| = \u001b[32m2.782457e-08\u001b[39m\n", " 3 Linear |R| = \u001b[32m6.273787e-10\u001b[39m\n", " 4 Linear |R| = \u001b[32m3.689082e-16\u001b[39m\n", " 2 Nonlinear |R| = \u001b[32m2.267002e-14\u001b[39m\n", "\u001b[32m Solve Converged!\u001b[39m\n", "WARNING! There are options you set that were not used!\n", "WARNING! could be spelling mistake, etc!\n", "There is one unused database option. It is:\n", "Option left: name:-i value: engy5310p1/input.hit\n" ] } ], "source": [ "'''Run Engy5310P1 MOOSE App'''\n", "\n", "!engy5310p1/engy5310p1-opt -i engy5310p1/input.hit" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "code_folding": [ 6 ] }, "outputs": [ { "data": { "image/png": "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DjnkkFK55OTkxJaLJElKlnpxJyBJkpLh0ksvZfHixcyePTu2HD777DN+//vf06xZM4YOHRpbHpIkKXksYEiSJACeeuop5s2bF2sO3333HaNGjWL33Xe3gCFJkkpxCokkSZIkSUo8CxiSJKW5Ro0a8dVXXzFv3jwaNGhQat/9999PYWEhJ5988mafv379+lx11VXMmDGDFStWsGTJEqZOncoFF1yw7pg+ffoQRRHdu3dnwIABfPHFF+Tn5zN58mQOOeQQAA477DDeeOMNli9fzjfffMN111232TlJkqTMYwFDkqQ0t3LlSnJycthtt93o16/fuu2DBw/mnHPO4aKLLmLMmDGbde769eszfvx4br31VnJzcxk4cCDXXnst06dP54QTTtjg+FtuuYWePXty5513csMNN9C6dWvGjx/Pb3/7W8aOHcsbb7zBlVdeyaxZs7jxxhs57bTTNvvnliRJmScyDMMwDCO9o06dOtEHH3wQ5ebmRk2aNIkuueSSKIqiaMCAAZt8bU5OThRFUbT77rtvsO+qq66KoiiKbrrppg32ZWVlrfu6T58+URRF0fTp06P69euv237cccdFURRFq1evjg4++OB12+vXrx9988030aRJkzaa0+677x5FURTl5OTE/mdrGIZhGEYywhEYkiTVAmvXrqV///5kZ2fz1FNPMWTIEP7+979z4403btF5TzvtNL7//nsGDRq0wb4oijbYdu+997J69ep1z9944w0AJk+ezLRp09ZtX716NVOmTGGvvfbaovwkSVLmsIAhSVIt8fzzzzN9+nR++ctfMmbMGC655JItPudee+3FrFmzWLVqVYWOnzNnTqnnS5YsAWDu3LkbHPvDDz/QrFmzLc5RkiRlBgsYkiTVEieddBIHHHAAAMuWLauy825spEVZ1qxZU6ntkiRJFWUBQ5KkWqBHjx48/PDDPPnkk4wePZqzzjqLNm3abPF5P/nkE9q2bbvB6iaSJEk1zQKGJElprkOHDowdO5Y333yT0047jeuuu461a9dy8803b/G5R40axQ477OCSp5IkKXb14k5AkiRtvjZt2vD888/zySef0LNnT3788UfmzJnDgw8+yPnnn0/nzp2ZNGnSZp//zjvv5LjjjmPAgAG0b9+eCRMmsHLlStq1a8c+++xDjx49qvCnkSRJKpsjMCRJSlMtW7ZkwoQJLF26lGOOOaZU34tBgwaRn5/PrbfeukXfY/Xq1Rx11FFce+21tGzZksGDBzN48OB1oz4kSZJqShZhPVVJkpShcnJyuP766znwwAP56quvWLJkSWxNN+vWrct2221Hy5YtmTFjBtdffz033HBDLLlIkqRkcQSGJEkCYMaMGSxevJiOHTvGlsPBBx/M4sWLmTFjRmw5SJKkZHIEhiRJGa5Vq1a0bt163fOpU6eSl5cXSy5bb701HTp0WPd8zpw5zJ07N5ZcJElSsljAkCRJkiRJiecUEkmSJEmSlHgWMCRJkiRJUuJZwJAkSZIkSYlnAUOSJEmSJCWeBQxJkiRJkpR4FjAkSZIkSVLi/T8O0TN+t5x5dgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Show FEM Solution'''\n", "\n", "import pandas as pd\n", "df1 = pd.read_csv('output_omega_1_0002.csv')\n", "df2 = pd.read_csv('output_omega_2_0002.csv')\n", " \n", "plot_solution(df1, df2, title='Peclet Coupled Variables w/ Dirichlet BC FEM Solution', \n", " u1_legend=r'$u_1$ Quadratic Lagrange', u2_legend=r'$u_2$ Quadratic Lagrange',\n", " u1_flux_legend=r'$u_1$ Diff. Flux Linear Monomial',\n", " u2_flux_legend=r'$u_2$ Diff. Flux Linear Monomial')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comments:**\n", "\n", "1. The use of a higher order method with the same number of finite elements does a much better job at enforcing the continuity of the flux.\n", "1. Capturing discontinuities at an interface accurately often requires higher order methods." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [FEM Error](#toc)\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'comming...'" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'''Error Compared to Exact Dimensionless Solution'''\n", "\n", "'''comming...'''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comments:**\n", "\n", "1. TBA" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [High Peclet Number](#toc)\n", "\n", "Highly convective problems may lead to numerical difficulties. Below, enough finite elements are chosen so to avoid oscillations. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### [Quadratic Lagrange FEM](#toc)\n", "\n", "Solve problem with the same parameter values above.\n", "\n", "FEM parameters:\n", "\n", "> + Basis Functions: Second Order Lagrangian\n", "> + Num. of finite elements: 25" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "'''Parameters and data'''\n", "\n", "Pe_ave = 50 # convective dominated\n", "\n", "velocity = (Pe_ave * (diff_coeff_1+diff_coeff_2)/2/x_length, 0, 0) # length scale is the x length" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "code_folding": [ 15 ] }, "outputs": [], "source": [ "'''FEM Solution'''\n", "\n", "n_felem_1 = 12\n", "n_felem_2 = 15\n", "\n", "order = 'second'\n", "\n", "n_plot_pts_1 = 2*n_felem_1 + 1\n", "n_plot_pts_2 = 2*n_felem_2 + 1\n", "\n", "try: \n", " from engy_5310.toolkit import write_engy5310_1d_interfacial_coupling_input_file \n", "except ModuleNotFoundError:\n", " assert False, 'You need to provide your own code here. Bailing out.'\n", "\n", "write_engy5310_1d_interfacial_coupling_input_file(x_left=x_a, x_right=x_b, \n", " x_interface=x_interface,\n", " u1_left=u1_a,\n", " diff_coeff_1=diff_coeff_1, source_s_1=source_s_1,\n", " u2_right=u2_c, \n", " diff_coeff_2=diff_coeff_2, source_s_2=source_s_2,\n", " jump_coeff=partition_coeff,\n", " velocity=velocity,\n", " n_felem_1=n_felem_1, n_felem_2=n_felem_2,\n", " order=order, \n", " n_plot_pts_1=n_plot_pts_1,\n", " n_plot_pts_2=n_plot_pts_2,\n", " compute_diffusion_flux=True)\n", " #solver='fdp-newt-full')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "# Engy-5310 Problem 1: Poisson 1D FEM\r\n", "# UMass Lowell Nuclear Chemical Engineering\r\n", "# Prof. Valmor F. de Almeida\r\n", "# 17May21 17:06:44\r\n", "\r\n", "# Parameters\r\n", "xmin = 0.00000e+00\r\n", "xmax = 2.50000e+01\r\n", "x_interface = 1.10000e+01\r\n", "\r\n", "u1_left = 3.00000e+00\r\n", "diff_coeff_1 = 1.00000e-01\r\n", "source_s_1 = 3.00000e-03\r\n", "\r\n", "u2_right = 1.00000e+00\r\n", "diff_coeff_2 = 3.00000e-01\r\n", "source_s_2 = -1.00000e-02\r\n", "\r\n", "velocity = '4.00000e-01 0.00000e+00 0.00000e+00'\r\n", "jump_coeff = 1.20000e+00\r\n", "\r\n", "[Problem]\r\n", " type = FEProblem\r\n", " coord_type = XYZ\r\n", "[]\r\n", "\r\n", "[Mesh]\r\n", " [omega1]\r\n", " type = GeneratedMeshGenerator\r\n", " dim = 1\r\n", " xmin = ${replace xmin}\r\n", " xmax = ${replace x_interface}\r\n", " nx = 12\r\n", " elem_type = edge3\r\n", " []\r\n", " [omega2]\r\n", " type = GeneratedMeshGenerator\r\n", " dim = 1\r\n", " xmin = ${replace x_interface}\r\n", " xmax = ${replace xmax}\r\n", " nx = 15\r\n", " elem_type = edge3\r\n", " []\r\n", " [omega]\r\n", " type = StitchedMeshGenerator\r\n", " inputs = 'omega1 omega2'\r\n", " stitch_boundaries_pairs = 'right left'\r\n", " clear_stitched_boundary_ids = 'true'\r\n", " []\r\n", "# Create subdomains: Omega_1 and Omega_2\r\n", " [mod1]\r\n", " type = SubdomainBoundingBoxGenerator\r\n", " input = omega\r\n", " block_id = 1\r\n", " block_name = omega_1\r\n", " bottom_left = '${replace xmin} 0 0'\r\n", " top_right = '${replace x_interface} 1 0'\r\n", " []\r\n", " [mod2]\r\n", " type = SubdomainBoundingBoxGenerator\r\n", " input = mod1\r\n", " block_id = 2\r\n", " block_name = omega_2\r\n", " bottom_left = '${replace x_interface} 0 0'\r\n", " top_right = '${replace xmax} 1 0'\r\n", " []\r\n", "# Create interface of subdomains: Omega_1 and Omega_2\r\n", " [mod3]\r\n", " type = SideSetsBetweenSubdomainsGenerator\r\n", " input = mod2\r\n", " primary_block = omega_1\r\n", " paired_block = omega_2 \r\n", " new_boundary = interface_12\r\n", " []\r\n", "# Create boundaries of subdomains: Omega_1 and Omega_2\r\n", " [mod4]\r\n", " type = SideSetsAroundSubdomainGenerator\r\n", " input = mod3\r\n", " block = omega_1\r\n", " normal = '-1 0 0'\r\n", " new_boundary = omega_1_left\r\n", " []\r\n", " [mod5]\r\n", " type = SideSetsAroundSubdomainGenerator\r\n", " input = mod4\r\n", " block = omega_2\r\n", " normal = '1 0 0'\r\n", " new_boundary = omega_2_right\r\n", " []\r\n", "[]\r\n", "\r\n", "[Variables]\r\n", " [u1]\r\n", " block = omega_1\r\n", " order = second\r\n", " family = lagrange\r\n", " initial_condition = ${replace u1_left}\r\n", " []\r\n", " [u2]\r\n", " block = omega_2\r\n", " order = second\r\n", " family = lagrange\r\n", " initial_condition = ${replace u2_right}\r\n", " []\r\n", "[]\r\n", "\r\n", "[AuxVariables]\r\n", " [diffFluxU1]\r\n", " order = FIRST\r\n", " family = MONOMIAL_VEC\r\n", " []\r\n", " [diffFluxU2]\r\n", " order = FIRST\r\n", " family = MONOMIAL_VEC\r\n", " []\r\n", " [diffFluxU1_x]\r\n", " order = FIRST\r\n", " family = MONOMIAL\r\n", " []\r\n", " [diffFluxU2_x]\r\n", " order = FIRST\r\n", " family = MONOMIAL\r\n", " []\r\n", "[]\r\n", "\r\n", "[Kernels]\r\n", " [diffusion-term-1]\r\n", " block = omega_1\r\n", " type = DiffusionTerm\r\n", " variable = u1 # produced quantity\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " []\r\n", " [source-term-1]\r\n", " type = SourceTerm\r\n", " block = omega_1\r\n", " variable = u1 # add to produced quantity\r\n", " sourceS = ${replace source_s_1}\r\n", " coupledVariable = u1\r\n", " []\r\n", " [convection-term-1]\r\n", " type = ConvectionTerm\r\n", " block = omega_1\r\n", " variable = u1 # produced quantity\r\n", " velocity = ${replace velocity}\r\n", " []\r\n", " [diffusion-term-2]\r\n", " type = DiffusionTerm\r\n", " block = omega_2\r\n", " variable = u2 # produced quantity\r\n", " diffCoeff = ${replace diff_coeff_2}\r\n", " []\r\n", " [source-term-2]\r\n", " type = SourceTerm\r\n", " block = omega_2\r\n", " variable = u2 # add to produced quantity\r\n", " sourceS = ${replace source_s_2}\r\n", " coupledVariable = u2\r\n", " []\r\n", " [convection-term-2]\r\n", " block = omega_2\r\n", " type = ConvectionTerm\r\n", " variable = u2 # produced quantity\r\n", " velocity = ${replace velocity}\r\n", " []\r\n", "[]\r\n", "\r\n", "[InterfaceKernels]\r\n", " [jump]\r\n", " type = InterfaceJump\r\n", " variable = u1\r\n", " neighbor_var = u2\r\n", " boundary = interface_12\r\n", " jumpCoeff = ${replace jump_coeff} # jump coefficient u1 = k * u2\r\n", " []\r\n", " [normal-flux-continuity]\r\n", " type = InterfaceNormalFluxContinuity\r\n", " variable = u1\r\n", " neighbor_var = u2\r\n", " boundary = interface_12\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " diffCoeffNeighbor = ${replace diff_coeff_2}\r\n", " []\r\n", "[]\r\n", "\r\n", "[AuxKernels]\r\n", " [diffusion-flux-1]\r\n", " execute_on = timestep_end\r\n", " type = DiffusionFlux\r\n", " field = u1\r\n", " block = omega_1\r\n", " diffCoeff = ${replace diff_coeff_1}\r\n", " variable = diffFluxU1 # produced quantity\r\n", " []\r\n", " [diffusion-flux-x-1]\r\n", " execute_on = timestep_end\r\n", " type = VectorVariableComponentAux\r\n", " variable = diffFluxU1_x # produced quantity\r\n", " block = omega_1\r\n", " component = x\r\n", " vector_variable = diffFluxU1 \r\n", " []\r\n", " [diffusion-flux-2]\r\n", " execute_on = timestep_end\r\n", " type = DiffusionFlux\r\n", " field = u2\r\n", " block = omega_2\r\n", " diffCoeff = ${replace diff_coeff_2}\r\n", " variable = diffFluxU2 # produced quantity\r\n", " []\r\n", " [diffusion-flux-x-2]\r\n", " execute_on = timestep_end\r\n", " type = VectorVariableComponentAux\r\n", " variable = diffFluxU2_x # produced quantity\r\n", " block = omega_2\r\n", " component = x\r\n", " vector_variable = diffFluxU2 \r\n", " []\r\n", "[]\r\n", "\r\n", "[BCs]\r\n", " [left]\r\n", " type = DirichletBC\r\n", " variable = u1\r\n", " boundary = omega_1_left\r\n", " value = ${replace u1_left}\r\n", " []\r\n", " [right]\r\n", " type = DirichletBC\r\n", " variable = u2\r\n", " boundary = omega_2_right\r\n", " value = ${replace u2_right}\r\n", " []\r\n", "[]\r\n", "\r\n", "[Executioner]\r\n", " type = Steady\r\n", " solve_type = 'PJFNK'\r\n", " petsc_options_iname = '-pc_type -pc_hypre_type'\r\n", " petsc_options_value = 'hypre boomeramg'\r\n", "[]\r\n", "\r\n", "[VectorPostprocessors]\r\n", " [omega_1]\r\n", " type = LineValueSampler\r\n", " execute_on = 'timestep_end final'\r\n", " variable = 'u1 diffFluxU1_x' # output data\r\n", " start_point = '${replace xmin} 0 0'\r\n", " end_point = '${fparse x_interface-2.50e-02} 0 0'\r\n", " num_points = 25\r\n", " sort_by = id\r\n", " []\r\n", " [omega_2]\r\n", " type = LineValueSampler\r\n", " execute_on = 'timestep_end final'\r\n", " variable = 'u2 diffFluxU2_x' # output data\r\n", " start_point = '${fparse x_interface+2.50e-02} 0 0'\r\n", " end_point = '${replace xmax} 0 0'\r\n", " num_points = 31\r\n", " sort_by = id\r\n", " []\r\n", "[]\r\n", "\r\n", "[Outputs]\r\n", " console = true\r\n", " [csv]\r\n", " type = CSV\r\n", " file_base = 'output'\r\n", " execute_on = 'final'\r\n", " []\r\n", "[]\r\n" ] } ], "source": [ "'''Display MOOSE input file created'''\n", "\n", "!cat engy5310p1/input.hit" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "In ReplicatedMesh::stitch_meshes:\n", "This mesh has 1 nodes on boundary 1.\n", "Other mesh has 1 nodes on boundary 0.\n", "Minimum edge length on both surfaces is 0.916667.\n", "In ReplicatedMesh::stitch_meshes:\n", "Found 1 matching nodes.\n", "\n", "\n", "Framework Information:\n", "MOOSE Version: git commit a7f499ed31 on 2021-04-30\n", "LibMesh Version: 27141d18f3137f77e33cdb3d565fd38ebfbfc46f\n", "PETSc Version: 3.15.0\n", "SLEPc Version: 3.14.2\n", "Current Time: Mon May 17 17:06:44 2021\n", "Executable Timestamp: Mon May 17 10:40:56 2021\n", "\n", "Parallelism:\n", " Num Processors: 1\n", " Num Threads: 1\n", "\n", "Mesh: \n", " Parallel Type: replicated\n", " Mesh Dimension: 1\n", " Spatial Dimension: 1\n", " Nodes: \n", " Total: 55\n", " Local: 55\n", " Elems: \n", " Total: 27\n", " Local: 27\n", " Num Subdomains: 2\n", " Num Partitions: 1\n", "\n", "Nonlinear System:\n", " Num DOFs: 56\n", " Num Local DOFs: 56\n", " Variables: \"u1\" \"u2\" \n", " Finite Element Types: \"LAGRANGE\" \"LAGRANGE\" \n", " Approximation Orders: \"SECOND\" \"SECOND\" \n", "\n", "Auxiliary System:\n", " Num DOFs: 216\n", " Num Local DOFs: 216\n", " Variables: { \"diffFluxU1\" \"diffFluxU2\" } { \"diffFluxU1_x\" \"diffFluxU2_x\" } \n", " Finite Element Types: \"MONOMIAL_VEC\" \"MONOMIAL\" \n", " Approximation Orders: \"FIRST\" \"FIRST\" \n", "\n", "Execution Information:\n", " Executioner: Steady\n", " Solver Mode: Preconditioned JFNK\n", " PETSc Preconditioner: hypre boomeramg \n", "\n", " 0 Nonlinear |R| = \u001b[32m2.544311e+00\u001b[39m\n", " 0 Linear |R| = \u001b[32m2.544311e+00\u001b[39m\n", " 1 Linear |R| = \u001b[32m3.617429e-01\u001b[39m\n", " 2 Linear |R| = \u001b[32m3.445005e-02\u001b[39m\n", " 3 Linear |R| = \u001b[32m3.108096e-03\u001b[39m\n", " 4 Linear |R| = \u001b[32m4.143224e-04\u001b[39m\n", " 5 Linear |R| = \u001b[32m6.936237e-05\u001b[39m\n", " 6 Linear |R| = \u001b[32m1.400624e-05\u001b[39m\n", " 1 Nonlinear |R| = \u001b[32m1.399833e-05\u001b[39m\n", " 0 Linear |R| = \u001b[32m1.399833e-05\u001b[39m\n", " 1 Linear |R| = \u001b[32m8.716352e-06\u001b[39m\n", " 2 Linear |R| = \u001b[32m7.007850e-06\u001b[39m\n", " 3 Linear |R| = \u001b[32m1.896957e-06\u001b[39m\n", " 4 Linear |R| = \u001b[32m2.242170e-07\u001b[39m\n", " 5 Linear |R| = \u001b[32m1.468834e-08\u001b[39m\n", " 6 Linear |R| = \u001b[32m2.280239e-09\u001b[39m\n", " 7 Linear |R| = \u001b[32m8.013613e-11\u001b[39m\n", " 2 Nonlinear |R| = \u001b[32m8.057731e-11\u001b[39m\n", "\u001b[32m Solve Converged!\u001b[39m\n", "WARNING! There are options you set that were not used!\n", "WARNING! could be spelling mistake, etc!\n", "There is one unused database option. It is:\n", "Option left: name:-i value: engy5310p1/input.hit\n" ] } ], "source": [ "'''Run Engy5310P1 MOOSE App'''\n", "\n", "!engy5310p1/engy5310p1-opt -i engy5310p1/input.hit" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "code_folding": [ 6 ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABDAAAAGoCAYAAACwmRWfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAChdUlEQVR4nOzdd3gU1f7H8XcaTTqhS400QUGkiSJNVOSCoNivICJcRVBREexi7wqi1ysoiKD86IKAihQFqSJFEKSFJhEIBBIggZTz++Pspm6S3c2G3SSf1/OcZ7Mzc2a+szvZzH5zShBgEBEREREREREJYMH+DkBEREREREREJDdKYIiIiIiIiIhIwFMCQ0REREREREQCnhIYIiIiIiIiIhLwlMAQERERERERkYCnBIaIiIiIiIiIBDwlMESkwHrxxRcxxtCxY0d/h1IoTJw4EWMMderUybdjFMT3bNmyZRiT9xnHIyMjiYyMdHv7OnXqYIxh4sSJeT52UeTt9ZzX97tjx44YY3jxxRfdrlMQfy/EP3z1eZSbC/H3QETEG0pgiIjHjDEZSlJSEseOHWPJkiXcfffd/g7PY764UbvuuuuYMmUKe/fu5cyZM5w9e5Zdu3YxefJkbrzxRh9GWzQ0aNAAYwyHDh0iODjnP1Xt27fHGMOmTZsuTHCSJ1WqVCEpKYkxY8bkum1kZGSGz5rz588THR3Nli1bmDx5Mn379iUsLOwCRF0wePtZ5ky6ZC5nzpxh69atvPHGG1SoUCHb+hdffDFvvPEGv/32GydOnOD8+fMcOXKExYsX88gjj1C2bFm34nAmcrIrmROAOW3rLOmTQv37909dvnz58mzjqFOnDsnJyanbeqJVq1ZMmTKFffv2kZCQwKlTp9i9ezfz5s1jxIgRlCpVyqP95RclzUSkoAr1dwAiUnC99NJLAISFhdGoUSN69+5Nly5duPLKK3niiSf8G9wFUrp0aSZPnkyfPn2Ij49n6dKlzJ49m8TEROrVq8dNN93Evffey7vvvsuIESP8HW6BsWvXLpYvX06nTp3o0aMH8+fPz3bbBx54AIDPPvssX2Lp169fwHzpKAxuvvlmQkJCmDNnjtt1PvzwQ06ePElwcDBly5alUaNG9OnTh3vvvZedO3dy7733sm7dugx1nn76ad58803+/vtvj+Iryu/3vn37mDRpEgBBQUGEh4dz4403MmrUKPr06cOVV17JmTNnMtQZOHAg48aNo0SJEmzatIlvvvmGmJgYKlWqxDXXXMOYMWN4/vnnqVy5sttxLF++3GWC4eTJky63d/4tyu6cMktMTKRjx440bNiQnTt3Zln/wAMPEBwcTGJiokcJsnvuuYcvv/ySoKAgli5dypw5c0hOTqZevXq0atWKnj17Mnv2bPbs2eP2Pv3F298fEZELwaioqKh4UpwyL+/SpYtJTk42ycnJpk6dOvkex4svvmiMMaZjx4552s/EiRONMcbjmIOCgsyiRYuMMcYsWbLEVK9ePcs2xYoVM4888ogZN26c39+3/Hod8us9u+uuu4wxxnz77bfZblOmTBkTFxdnTp8+bcqWLev31zCnEhkZaSIjI93evk6dOsYYYyZOnOj32H1ZFi5caI4dO2aCg4Pdes2yuybLli1rxowZY4wxJiYmxjRq1Mjv5waYjh07GmOMefHFF92u4+/PMmfMy5Yty7IuLCzMrF+/3hhjTP/+/TOsc/6OHj9+3Nx0000u992+fXuzceNGj14Hd1+77P4WZVf69+9vjDFm9uzZxhhj3n777SzbBAcHm0OHDpm1a9eagwcPur3/kiVLmpMnT5rExETTpUsXl9tcddVVply5cnl6j5ctW+bROef3NaeioqJyoYu6kIiIzyxdupQdO3YQHBxM69atU5fXrFmTjz76iD179pCQkEB0dDTffvstrVq1crmf4OBg/vOf/7By5UpOnjyZ2h1j/PjxXHLJJW7F0qhRIyZOnMiBAwdISEjgn3/+YerUqTRs2DDDdsYY7rvvPsD+py67psqu3HXXXdx4443s2rWLnj17EhUVlWWb8+fPM3bsWB5//PEMy4sVK8bIkSPZvHkzZ86c4dSpU/zyyy/cdtttWfaRW596V2MrOJtK9+/fn5tuuolff/2V06dPc+LECWbMmOH26+jUpk0bZsyYQVRUFOfOnePAgQN8+umnVK9e3eX2LVu2ZNGiRcTGxnLq1CkWL15Mu3btPDrmrFmziI6O5qabbsr2OHfffTelS5dm+vTpxMbGUr16dZ5//nlWrlyZGuvff//N1KlTady4cZb66ceZaNCgAdOmTePIkSMkJyenNq121ec8LCyMhx9+mAULFqQ2FT9+/DiLFy/OtctQ2bJl+eijjzh06BDx8fFs27aNYcOGefTalCxZklGjRrFx40ZOnz5NXFwcq1at4s4773S5fb9+/fj11185evQo8fHxHDhwgO+//57bb78912MNHjwYY0xqSxenAQMGpHYzKFasWIZ1a9euJT4+nhIlSmQ59y5dujB//nxSUlI8OufMYmNjefTRR/nyyy8pX748b775Zob1rrpTePt+O3Xr1o158+Zx5MgREhISOHDgAHPnzqVr164ut2/evDnfffcdMTExnDlzhuXLl3PVVVd5dJ4X4rMsJ4mJifz8888AGVpRlC5dmo8++giAO++8k4ULF7qsv2rVKtq2bZunGHxt27ZtrFq1iv79+xMamrExco8ePahZsybjx4/3aJ/NmjWjXLlybN26laVLl7rcZvXq1Zw6dSrL8i5durBo0SKOHz9OfHw8f/31F2+88YbbXW/Sf967Yoxh2bJlqc8jIyNTW60sX748Q5cbp5y6I9122238/PPPqX+ft2zZwqhRo7J8DjiPFRkZScmSJXn77bfZv38/CQkJ7Nq1i6eeesqt8xMRSU9dSETEp4KCggBSb4SuuOIKfvzxRypWrMgPP/zA7NmzCQ8Pp3fv3qxcuZI+ffqwaNGi1PphYWEsWLCAbt26ceDAAb7++mtiY2OpW7cuffr0YeXKlezevTvHGG644QZmz55NWFgY8+fPZ/fu3Vx88cXccsst9OjRg86dO7Nx40bANj3u3bs3LVq0SG2mDtk3VU5v8ODBALz77rucPXs2x23Pnz+f4Rx/+OEHOnXqxPbt2/n4448pVaoUffv2Zfr06bz++us8++yzuR7fHbfccgvdu3dnzpw5LF++nBYtWtC3b186d+5M+/btXTafzuy+++5j/PjxnDt3jnnz5nHw4EEaNGjAAw88QM+ePWnXrh0HDx5M3f6qq67ip59+olixYsyePZvdu3fTokULli9fnu2NvSvnz5/nq6++Yvjw4QwYMIDXX389yzbOL9XOLxvXXnsto0aNYtmyZcyaNYvTp0/ToEED+vbtS69evbj66qvZsmVLlv1ERESwdu1adu7cydSpUylZsiSxsbHZxlaxYkXGjBnDqlWrWLx4MceOHaN69er07NmTRYsW8cADD/D5559nqVesWDF++uknypcvz7Rp0yhWrBi33norY8eOpVGjRgwdOjTX16VcuXIsXbqUli1bsmHDBr744guCg4O54YYb+Oabb2jatCnPP/986vav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6yrjqdKlS9OgQQMOHTrEX3/9lWW9s4vFFVdc4XVs6Tmb9aeXkpLCypUrueSSS7jiiis4cOBAtvWdr2fHjh0zjGviVKVKFUJDQ2nYsCG///47LVu2dOu4nhg/fjwdOnRg0KBBqc30S5QowT333EN8fDxfffVVhu1vuukmHnzwQVq1akV4eHiWWQTCw8P5559/MizbvHmzx83cL730UkaMGMG1115L9erVKVmyZIb1NWvWzFInMTGRVatWZVnunHEht/e9devWhIaGZjsmivNcmzRpkrps6tSpPPLII2zbto0ZM2bw888/s3r16ly7TKS3dOlSBgwYQNeuXfnjjz9Su48sWbKEunXr8vjjj1O6dGlOnz5Nly5diIuLyzIryPXXX0+ZMmU8mn3EXZm7ruXG0/e7Xbt2pKSk8P3337tdJ313C6ekpCSOHDmS45SkThfqsyy95cuX07lz59TnFStWpH379owdO5ZffvmF3r17p3b58/Q198RLL73E6NGj3d7e28/j8ePH89BDDzFw4EBefPFFBg4cyObNm1m/fr1X+zt48CBdunShcePGdOvWjVatWtGmTRvatm1L27ZtGTJkCJ06dUrtsuH8vHTVte7kyZNs3LiRjh070rhxY5dd3y60nOLdtWsXhw4don79+pQrVy5Dt5eTJ0+6nHnF2fXQnd8HEREnJTBExGu53TRWqlQJINeBAkuXLg1A+fLlAfI0bZvzmM7xKXI7preOHz/OuXPnKF68ODVr1mTv3r1u1StXrhxAtgka53Lna5FXR44ccbnc+QXeGU92nK9nboOtOV9P5/5yO64npk+fntpnu1KlShw/fpzbbruN8uXL89VXX2Xo4z9s2DDGjh3LiRMnWLx4MQcOHODs2bMYY1LHByhevHie42rbti1Lly4lNDSUJUuWMG/ePGJjY0lJSaFFixb07t3b5XGio6NdDl7p6fvRpk0b2rRpk+126a/v4cOHs2fPHu6//36efvppnn76aRITE1m4cCFPPPGEW1M6ph8H48MPP6Rr164cPHiQXbt2sWTJEkaOHEnHjh1Zv349zZo1Y8GCBSQnJ2fYR58+fTh37hwLFizI9XieqlGjBgDHjh1za3tP3+/y5csTExOTZUyPnGQ39kRSUhIhISG51r9Qn2U5OXHiBN999x3x8fH89NNPfPDBB6kJjMOHDwNw8cUX59vx89vGjRvZsGEDAwYMYM2aNdStW9etcWhys2PHDnbs2JH6vFGjRnzxxRe0b9+eDz74gD59+gAX/u9BXrkTb506dVwmMFxxjpXhzu+DiIiTEhgikm+cNzC9evVi/vz5uW7vvMlx9Z9rT495+eWX88cff3i9n9wkJyezZs0aOnbsSNeuXd1OYDjjq1atmsv1ztk20t/8Ob/wZh4t3ynzzWJ6VatWdbncefzcBodzri9btqxbgyM6t8/tuJ44d+4cU6ZM4ZFHHqFfv3588MEHDBo0CIDPPvssdbuQkBBGjx5NVFQULVu2zPIlNafZHzz9L/Jzzz1HqVKl6NSpU5bWJqNGjaJ3794u64WHhxMcHJwlieHp+/H+++/zxBNPuBVrSkoKY8eOZezYsVSuXJlrrrmGO++8k9tvv52mTZvStGnTXFsjREVFsWPHDjp27EixYsXo1KkT3377LQArV67k3LlzXHfddamzJmT+D21wcDA9e/Zk6dKlHrX8cEdERAS1atUiMTGRDRs2uFXH0/f75MmTVKpUiRIlSniUxMiLC/VZ5o61a9cC9ot42bJliY2NZeXKlQwcOJCuXbvywgsv+DW+vPjss8/43//+x6effsrZs2eZMmWKz4/x119/ce+997Jnz57U1kuQ8e/Bn3/+maWeq78HruT0NyK3pKgn0sfr6m+eu/GKiOSFplEVkXyzZs0aADp06ODW9jt27CAmJobLL78822kzfX1MIPU/xZ7+F8j55fnJJ5/M0n0gM+f0cqdPn2b37t3UrFnTZVcKZ/Pt33//PXVZTEwMALVq1cqyfURERI7Nb52zB6QXHBzMNddcA5A6g0F2PH09nXHndlxPOV/rBx54gEaNGtGhQwe2b9/OypUrU7cJDw+nQoUKrFq1Kkvy4qKLLkpt/uwLl1xyCcePH3fZVcbVuTuFhYXRvn37LMs7deoE5P5+rFu3juTkZI+u7/SOHTvGnDlzuOOOO1iyZAmXXHIJzZo1c6vukiVLKFOmDA899BAVKlRIbZURHx/PmjVr6Nq1a4auJelde+21hIeH50v3EeeX5/nz53P69Gmf7x/s70FwcHCuU+T6+phwYT7LcpP+MyY42N46zpw5k+PHj9O+fftsp5F1cjW9ZqBwzqRRq1YtZsyYkW9fvp0J4PQtF52/787f//TKlStHixYtiI+Pz7WLUE5/I7KbrtybayWneCMiIrj44ovZu3evEhgikq+UwBCRfPPtt9+ye/duHn74Ybp37+5ym3bt2qV++U9JSeGTTz6hVKlSfPrpp1luesPCwggPD8/xmBMnTiQmJoYXX3zR5ZgNQUFBWb5gOqe/q127ttvnBvDNN9/w/fff07BhQ7799luXrQvCwsIYMmQI7733Xuoy57SX77zzTuqXAbBNxp3TX37xxRepy3fs2MGpU6e4+eabqVy5curyEiVKMHbs2Bxj7Nq1Kz169MiwbOjQoVxyySUsXbo0x/EvAMaNG8f58+f54IMPUscsyXx+6ZMSq1atSv1Pfa9evVwe1xvbtm1j9erVXHrppanJDOfUqU5Hjx7lzJkzXHnllVx00UWpy0NDQxkzZkyG1y6v9u3bR6VKlbjssssyLL///vtz/ZL7xhtvZLi2K1SowHPPPQfY6zcnx44dY+rUqbRu3ZrnnnvO5ZeP+vXrU7duXcB+cUz/H1+n0NBQKlasCOD2dI/OVhVPP/10hufOny+77DJ69epFdHQ0mzdvzlD3lltuITk5ObXVhi+UKVOGMWPG0K9fP2JiYhg1apTP9p3ZRx99BMB7772X2l0lPVfL8upCfpbl5vHHHwfs2CHOlnKnT5/mkUceAeD//u//uP76613Wbdu2LatXr/ZpPL50+vRpbrzxRnr37p36e+iNunXrMmzYsNRWSJk5p8b+5ZdfUpdNmTKF8+fPM2zYMCIiIjJs/8orr1CuXLnUbXLy22+/kZyczN13350hmV6hQgXefvttl3W8uVacf5eee+65DH+Lg4ODeffddwkJCXE5fbSIiC+pC4mI5JukpCRuueUWfvjhBxYuXMivv/7Kpk2bOHv2LLVq1aJ169ZERERQrVo14uPjARg9ejRt27alV69e7Ny5k++++464uDhq1arF9ddfz4gRI/jyyy+zPeaJEyfo27cvc+bMYc2aNSxZsoRt27aRkpJC7dq1ueqqq6hUqVKGm7wlS5bw1FNPMX78eGbOnMnp06c5efIkH3/8cY7nZ4zhtttu46uvvqJ3797s3buXJUuWsH37dpKTk6lTpw5du3alSpUqvPPOO6n13n33Xbp3707v3r3ZvHkzCxcupFSpUtx2221UrVqVt956i19//TXD6zhmzBheeOEFNm7cyJw5cwgNDaVbt24cPnw4xzFD5s2bx5w5c5gzZw67d++mefPm9OjRg+PHjzNkyJBc38O//vqL+++/ny+++IJt27bx/fffs3PnTsLCwqhduzYdOnTg2LFjGQaNHDhwIIsXL2bWrFnMnj079bjXXXcdixYtyjaZlZvPPvuMq666imuvvZaEhIQs14ExhrFjx/L000/zxx9/8O2331KsWDE6d+5MxYoVWbp0qcsv89748MMPufHGG1m5ciXTp0/n1KlTtGrVimuuuYYZM2Zw2223uax3+PBhihcvztatW5k3bx5hYWH07duXGjVq8PHHH7NixYpcjz106FAaNGjAK6+8wr333svKlSs5cuQINWrUoEmTJrRp04Y777yTffv2UbJkSZYsWUJkZCRr165l//79lChRgm7dunHppZfy7bffZuirn5Nly5aRnJxM1apV2b59e+oYCGB/h0aPHk2VKlWYMWNGlrq9e/dm1apVHD161K1jZfbYY49x8uRJgoKCKFu2LI0aNeLaa6+ldOnS/PXXX/z73/9m165dXu3bHYsXL+bll1/mhRdeYPv27cydO5eDBw9StWpVrrnmGtasWcOAAQN8eswL+VnmVLdu3QwDhjoH8WzVqhVnz57NMj7E119/TcmSJRk3bhw//PADGzduZNWqVcTExFCpUiWuuuoqWrRo4fbYJN5yNcip09y5c7Mk1DJL/3nrrXLlyjF27Fjeeecdfv31V7Zu3UpcXBxVqlShS5cuREREcOTIkQxdv/bv389jjz3GJ598wu+//8706dM5duwYHTt2pH379mzfvp2RI0fmeux//vmHqVOn0q9fPzZt2sSCBQsoW7YsN910E7/88ovL1mfO3+c33niDZs2apbbieO2117I9zurVq3nrrbcYOXIkW7duZebMmZw5c4bu3btz2WWXsWLFigx/60RE8ovfp0JRUVEpWMXJ3e0rV65s3njjDfPHH3+YM2fOmLi4OLNz504zY8YMc88995iQkJAM24eEhJiHH37YrF271sTFxZnTp0+bnTt3mv/9738ZpmLLaRq4OnXqmI8++sjs3LnTxMfHm1OnTpnt27ebyZMnm5tvvjnL9sOHDzd//vmnSUhIMMaYLNOS5la6detmpk6davbu3WvOnj1r4uPjzZ49e8zUqVPNDTfckGX74sWLm6efftr88ccf5uzZsyY2NtasWLHC3HnnndkeY+TIkWb37t3m3LlzZv/+/eatt94yJUuWzHEa1f79+5sePXqYVatWmdOnT5uYmBgzc+ZM06BBgyz7z2kKxmbNmpmJEyeaffv2mYSEBHP8+HHzxx9/mE8//dR07tw5y/YtW7Y0ixYtMrGxsSY2NtYsXrzYtGvXLtep+3IqJUuWNDExMcYYY6ZOnepym5CQEDN8+HCzbds2c/bsWRMVFWUmT55sateuneO0mumnKs1csptGtUePHmb16tUmNjbWxMTEmB9++MF06NAh2ykNne9T2bJlzbhx48yhQ4dMQkKC+fPPP11OBZtTbGFhYebhhx82v/76qzl58qRJSEgw+/fvNz/99JN59NFHTcWKFQ3YaTtHjBhhFi5caPbv32/i4+PN0aNHzerVq81//vMfExYW5tF78NtvvxljjBk3blyG5aGhoSYuLs4YY6dWTb+uVatWxhhjhg8f7vF77pyC0en8+fPm+PHjZsuWLWby5Mnm1ltvzfYcfP1+A6Z79+5m0aJF5vjx4yYhIcEcOHDAzJ49O8PvgDfTHvv7syy7aVQTEhLMnj17zPjx403Dhg2zrX/xxRebN99802zYsMHExMSY8+fPm6NHj5qlS5eaRx99NMv0odkV5+uQ3WuXubgj/e9h5mlUcyueTKNarFgxc/PNN5uPP/7YbNiwwfzzzz/m/Pnz5uTJk+a3334zr776qgkPD3dZt1u3buaHH34wJ06cMAkJCWbXrl3mrbfeMuXKlXP7+ixWrJh5++23zcGDB825c+fMrl27zKhRo0xISIgxJus0qoC55557zMaNG83Zs2dTX6+cfn+c5Y477jArVqwwsbGxJj4+3mzdutU888wzLqcUd3W9u3Pdq6ioqGRXghw/iIhIIdK/f38mTZrEfffdl2OLFZH89tprr/HMM89Qr1691OkjRURERLyhMTBEREQk3/Tp04dNmzYpeSEiIiJ5pjEwREREJN9ceuml/g5BRERECgm1wBARERERERGRgKcxMEREREREREQk4BXZLiTJycmp0zYWBMWLF+fcuXP+DkPELbpepSDR9SoFja5ZKUh0vUpBU5Cu2ZIlSxISEuLvMC6oIpvAiI+Pp3Tp0v4Ow23r16+ndevW/g5DxC26XqUg0fUqBY2uWSlIdL1KQVOQrtnTp0/7O4QLTmNgiIiIiIiIiEjAUwJDRERERERERAKeEhgiIiIiIiIiEvCUwBARERERERGRgKcEhoiIiIiIiIgEPCUwRERERERERCTgKYEhIiIiIiIiIgFPCQwRERERERERCXhKYIiIiIiIiIhIwFMCQ0REREREREQCnhIYIiIiIiIiIhLwlMAQERHJo2rAcqCqn+MQERER71WrBo0aDaaq/qAHLCUwREQkIOQ1CZCX+nk99vPANcALXtYXERER/3v+eShdehMv6A96wAr1dwAiIhIYqgHTgDuAI36onz4J8LAP6gcBYS5KaKbnpbZvZxzQAfgM+B9Q3FFKpPvZ1fOHyPiHdIijJABlgCQvzkNEREQurLNnoWRJ5zPDkCEwZAjEx0OpUv6MTDJTAkNEJID4M4ng6wSC8wu/s5TM9NxZ/g8olm4/ziRAEvBfF3Uz/9yYjM0JnfXd1q8flzp+7OUoOUnGJijOAceBi4BSmWIoAZwBdgPbHeVPx+NfQHymfeb1fRcRERHv1a8PU6ZAly4QFARnzsCcOfDkk/6OTDJTAkNEJJ3C1gohlOy/+Dsf5+E6gZAIfOhi+8z7aEEeEwguGOA8cA/2y36Co8Snezzh+PlPoDlQF9uiIhGbKPgBiHE8T1+S0v18EfDBFVdQbONGSjj2twx4BziMTVI4kxXOkpwp1k+AwY6YigGzgflAE0dpBtxM2h/cFGA/aYmN7cBN5O19FxEREe/98w+EhtrkRUpKGCVKJBIbC0f0X4WAowSGiAScwtQKwclV4iD9soVkn0R4N5s66R9b4fskQpjjHDInDpyPZ7AtEA5hv6TXImMCYR4QTVryIXNJn5h4Drgbm7Qohu3G4cnrnzmJsBJ4ys26b9Srx0UbN6bWjcQmMdxVBfgU2/1kMPb6+yrTNsWAS7AJjUtJS250x3Z1cXK+b/HYVh0iIiJyYVSvDklJ8NdfX7B8+b1Uq+bviMQVJTBEJIu8JhDCoqNZnof6+ZVECCH7RMAKbJcHp/QJhBfImjDIvI/OuE4gGDJ+QfVUGPAErlshOH8+DnyP/UJcC/vBngjsABZgkwg51U/Aftm/A5tACAPGY8d3cJerBMLzHtQvRdYkgCdcJRHcFXbiRJ6O3Tfdz0Oz2eY8tqXIn8CsdMtrYF+7G0jrdjIHUItVERGRC2vrVkhOhvj4xgzN7g+6+J0SGCKFkL+7MVSfMIFmOdRPPzZC+oTAarJPIjzjYvvMiYRu2CRF5voG2+zfmw+8MOANx89ncd0aIQGbAInAvvbOBMJuYAkZWyG4asngXPckcBtpSYTPsUmEFDdjzZxEWAE87WbdYtjxJvyRQAD3kgD5VX/PO+8wtHVrr4+dF4cdJQz7vpUAYtE4GCIiIhdajRqwZw9qeRHglMAQySeB3g0imKytCLbiOoFwHniE3BMIt+BIIMyalaG+AU6m295TYdgxCXDEkl1LgrVAHexUmKHYsQ72AEtJGy8hpwTCUKA3ad0YvgQec6w770acmRMIy4BhHpxnKFmTCO4mLyBvSQR/JhCKurwmf0RERCTvrrrKzjjy88/+jkRyogSGFFr+TCCA+60YiuE6IfAcdlrHCcBEsu/6kP6xH65bIKRgxylIXzfMg3Mphv2ClZ6rRMBWoDpQOTiYoJQUkoADwK/YwRSzG4wx/eMQ7CwQziTCV6R1oXA1gGJmmZMIS3C/FcnDZE0gxLpZFwp2KwTxH71vIiIigeHsWX9HILlRAkPyVaC3QnAKJmti4FVsAuG/5DyVY+bH+8n4i5U+iRCZaR8lyDhugiv/chRXksiYANgHVADKYRMZydjm6b9hW0BkN/5B+mUDsAMLJmKTHP+H7b6RfrtzOcT7CfCgMakJhO/xrBvKf8iaRDjuQX21QhARERERT1x6KYwYAa++6u9IJDcBk8AYgv3iUtfxfBv2C+TCHOo0A8YBbbDNw/8HvJJ/IRZIBaUVglMYGb/gv4FNInyMfa9zmsrR+fgo2ScQtmRTN/3sD5n1cZScpP9y/zc2gVCGtCRCFLAROIXrpEH6n4sDdwFtHbHFY1sRvA4czLS9q9YImVsgzMezBMJdZE0g7POgfhXg2K230m3mTLVCEBEREZGA16IF3HcfvPWWvyOR3ARMAuMQMBLYhf2PdH9gLnAl8IeL7csAi4FfgNZAI2ASdgT39/M92gurGtBo8GCqcmGmhAwi7cv9m9gEwodkncrRVSLA+fOTuE4iJAO/Z1O3JNm3RrjVUXKSjP3SfirT/pKxgyj+6ViX3fgJzsfi2LEcrnT8nAD8DLyHvU4z1z2HHeMhvcxJhHl4lkRojn3fnPUPYAe4dEcgdGNYP3IkW2bOVAJBRERERAJeRASkpEBkpL8jkdwETAJjXqbnz2FH378K1wmMe7DT7vXHfonchp1C8HEKVwIjBPuf99KbNvE+8Ba5D6RYEniJjGMcpE8g/JxDvRJkHMTR6U5HcUcCNpEURloXiWRsN4C/sGMKZNd9wflzMeBmoCVpSYQV2Pf2cDZ1k9LFkDmBMAvPEggR2BYQzvp7sAkzd+U1ieDPbhAiIiIiIkVJRAT8/Tecy6mftASEgElgpBeMnUqwNLAqm22uwn6hTUi37Adst5O6eNbkPVCdJd2MDcZwN3C3m3WTsWMYhGJbVKRgWx/scyyLA46SfQIhDLgRuAybQDiHfS8+wXaHyG4AxvStETInEWbiWRKhDrZ7kLP+Lux4Cu7wZwIB1A1CRERERKSgiIiwU6hK4Asia+t3v2mGbSZfAjiNbWWR3RgYP2Cb8w9Mt6wWtqn9VcAaF3UGDRrE4MGDAWjZsiW///67bwLPJ2HR0dR6+23Kr1hBcFISKWFhnGnWjKO33EJS5cqkFCtGSvHipBQrhilRIvW5KV4cExJC7TffpPKcOZiwMIISEzl2yy0cGDXK7ePXfuONPNWPGDGCxPBwjvXpQ+U5cwiLjmbPO+/kXtFH9cV/mjRpwvbt2/0dhohbdL1KQaNrVgoSXa9SEDRqNJj4+PocODCqQF2zTZo0oXTp0v4O44IzgVLCwESAuRLM62COgWmazbY/gJmQaVltMAZMWzeOdfr0ab+frzvlEzBJYJKLFTNJYD72oO5MMOPAXO54nOnhsfNaX6XolvXr1/s9BhUVd4uuV5WCVnTNqhSkoutVpaCVgnTNFpTvtL4sAdWFJBE71gDABuzgnMOBB1xs+w9Zm/VXcTx6M1tGoHJ2Zeg0cSLL77lHU0KKiIiIiIhIkZTdpA8BIRjXA0qC7WrSIdP6btgpLPflb1gXVF9s8iC+YUOGkjGpICIiIiIiIt7r2hV++glq1fJ3JOKOgElgvIGdNrIOdiyM14FOwFTH+teBn9Jt/zV2kMtJQFOgDzCKwjUDiYiIiIiIiOSf5s1tEiMuzt+RiDsCpgtJNWCK4/EUsAXoDvzoWF8dO7WlUyy2xcXHwG9ADPAeSmCIiIiIiIiIeyIi4MQJOHnS35GIOwImgTHAi/VbgY75EIuIiIiIiIgUfppCtWAJmC4kIiIiIiIiIhdS/fqwd6+/oxB3KYEhIiIiIiIiRdLOnbB2rb+jEHcFTBcSERERERERkQvpX//ydwTiCbXAEBEREREREZGApwSGiIiIiIiIFDkDBsBff0GlSv6ORNylBIaIiIiIiIgUOY0bQ+3adhpVKRiUwBAREREREZEiJyICIiPBGH9HIu5SAkNERERERESKnIgI2LPH31GIJ5TAEBERERERkSJHCYyCRwkMERERERERKVKKF4eZM+GXX/wdiXgi1N8BiIiIiIiIiFxI587B/ff7OwrxlFpgiIiIiIiISJFSrJi/IxBvKIEhIiIiIiIiRcrIkRAXB2Fh/o5EPKEEhoiIiIiIiBQpEREQEwOJif6OJP899BDs3Qvx8fDbb3DNNe7Vu+QSiI21iZ5AoQSGiIiIiIiIFClFZQaS22+HMWPg9dfhiitg1SpYtAhq1cq5XlgYTJsWeIOcKoEhIiIiIiIiRUpRSWA8/jhMmgQTJsCOHfDIIxAVZVtl5OStt2DLFpgx44KE6TYlMERERERERKTIKFUKqle33SoKs7AwuPJK+PHHjMt//BHat8++3k03wb/+ZZMdgUYJDBERERERESkyQkNh9GhYutTfkeRNaGgo69evTy2DBg3KsD483J7rkSMZ6x05AtWqud5ntWowfjzcey+cPp1PgedBqL8DEBEREREREblQYmPhpZf8HUXeJSUl0bp161y3Mybj86CgrMucpkyB//4X1q71QYD5QC0wREREREREpMioUgUqVfJ3FPkvOhqSkrK2tqhSJWurDKeuXeHFF+3sLImJ8PnnULq0/TlTAw+/UAJDREREREREiowXX4Rdu/wdRf5LTIQNG6Bbt4zLu3Wzs5G40qwZtGiRVl54Ac6etT8HwoCe6kIiIiIiIiIiRUZRmYEE4P334auvYN06+PVXePBBqFEDPv3Urn/9dWjTBq67zj7fti1j/VatICUl63J/UQJDREREREREioz69WHjRn9HcWFMn267yzz3nJ15ZetWO8vIgQN2ffXqNqFTUKgLiYiIiIiIiBQJISFQt27RaYEBdlDOevWgRAnbomLFirR1AwbYddn58ksoUyb/Y3SXEhgiIiIiIiJSJNSqBWFhRSuBUZgogSEiIiIiIiJFwqlTdjaN5cv9HYl4Q2NgiIiIiIiISJEQEwMTJvg7CvGWWmCIiIiIiIhIkdC0KVx2mb+jEG+pBYaIiIiIiIgUCaNH2yRGkyb+jkS8oRYYIiIiIiIiUiRERGgAz4JMCQwREREREREpEpTAKNiUwBAREREREZFCr3JlKFNGCYyCTAkMERERERERKfQiIuyjEhgFlwbxFBERERERkULvzz/hhhvgt9/8HYl4SwkMERERERERKfRiY+HHH/0dheSFupCIiIiIiIhIoXf99dCli7+jkLxQCwwREREREREp9J5/HpKTYelSf0ci3lILDBERERERESn0NIVqwacEhoiIiIiIiBRqJUtC9epKYBR0SmCIiIiIiIhIoVa/vn1UAqNgUwJDRERERERECrWICPuoBEbBpkE8RUREREREpFD7/nto2lQJjIJOCQwREREREREp1M6fhz//9HcUklfqQiIiIiIiIiKF2gMPwC23+DsKySslMERERERERKRQGzEC7rjD31FIXimBISIiIiIiIoVWcDDUravxLwoDJTBERERERESk0KpVC4oVUwKjMFACQ0RERERERAotTaFaeCiBISIiIiIiIoVWrVr2UQmMgk8JDBERERERESm0vvwSypaFQ4f8HYnkVai/AxARERERERHJT3Fx/o5AfEEtMERERERERKTQeust6NfP31GILyiBISIiIiIiIoXWgw/ClVf6OwrxBSUwREREREREpFAKD7fjX2gAz8JBCQwREREREREplDSFauGiBIaIiIiIiIgUSkpgFC5KYIiIiIiIiEihVLo0xMTAvn3+jkR8QQkMERERERERKZQ++wwqVoSEBH9HIr6gBIaIiEiAqAYsB6r6OQ4RERGRQKQEhoiISIB4HrgGeMHfgYiIiBQS8+bBAw/4OwrxFSUwRERE/OwsYIAhQIjj0QAJQDOguJv7UQsOERGRNCVLQs+eUKWKvyMRX1ECQ0RExM/qA1OxCQuwyQuwiYs/gJaO5/8CFgMTgVeA/wA9gFKO9WrBISIikqZ+ffuoGUgKj1B/ByAiIlLU/QPEAmFAPFAMm9D4FLgY+NOxXSg2WdEFqEHaH/EEoES6/Q1xlCTgMWACcM6xzTnSEiSZVQOmAXcAR/J8ViIiIv7lnEJ1717/xiG+oxYYIiIiAaAKNmHRzvF4EbAamAGccmwzF7gaqINtnVEDaANcQsYWHMlAHJACjMEmMgDec2wTCawAvgHeTBfD29gWHC96eQ7qwiIiIoHEmcBQC4zCI2ASGKOAddibtKPAPKBpLnXqYP+LlLnckH9hioiI5Iu+wFBgi+Oxby7bpwBRwHrgbzK24AD4Ctvioho2oQHwHfAu8AtwHts1pQ9pY3Dcix2D4yHH82Tgk3TH7EBaAiXMRUzqwiIiIoHkzBlYvRpOnPB3JOIrAZPA6IS9SWqPbRqbBPwEVHCj7g3YGzRnWZo/IYqIiASszC04qmKTENHptlkEPAv0B7oCjRwl8xgc54E92FYa5dPVHwOsBPY5tokCPif7QUjPengOasEhIiK+9Nln0L69v6MQXwqYMTBuzPT8XmxrjKux/zHKyXHUV1dERIq29C02hnpY19UYHD8AD2fa7i5s64uL05VIbALkXeBuICjd9iWxCY6BjufvYf9mH3KUv4GDpCU60rfgyHxsERERkYBJYGRWBvtfnBg3tp2NbSa7C/gAmJWPcYmIiBRGzhYcnwGDsa0hMvvLUVyJxXZrScQmQJZhW0Q6tw8D/u04TnrvYVtslEy3zDkI6TmgLjbB4g4NQioiIk7BwbB7N7z5pm2JIYVDENkPRu5X/wc0AFphb4hcqYRtBvsrtstJL9Kaxk51sf2gQYMYPHgwAC1btuT333/3cdT5p0mTJmzfvt3fYYi4RderFCS6Xn0jYsQIEsPDOdanD5XnzCEsOpo977yTZbugc+coduwYYUeOUOzoURJq1yaxalVqvfUWFX7+mSBjMKS15DgwfDhH776b4gcPcsnjj5NYpQrnnaVqVWLbtOH8xRdDSgq1336byrNnc+yWWzgwatQFPf8LSdesFCS6XsVfihU7zOWX38y+fc8QHd3H7XoF6Zpt0qQJpUuX9ncYF5yrcTD9Wt4D8zeYel7U/RjMZje2O336tN/P05Oyfv16v8egouJu0fWqUpCKrtfAKJ+ASQJz1vE4GUx7MBc71l8CZjqYVWAOOLYxYG511DEuSiKY+o76pcFUBhOUQwzVwCwHUzUAXo+ciq5ZlYJUdL2q+Kt06YIxBtO5s2f1CtI1W9C+0/qiBMwgnk7vY/vYdsH2q/XUWmzLDRERESk4Mg9CWgpYhR0rA2A3cDt2sO/a2GlkawLfY8fg+A7bfQXs7CmnsS04wx3LbsHOchaPHaD0F+Br7DgeOPb5EZpGVkSksNAUqoVTQI2B8SFwJ3ZGkuz62OamBXZUdBERESk4PB2ENBk47Pj5DHYw0GDSBiGdnGk/a7ADg9YibQDS1o79nCXjGBwPOUoKUBE7qHhb7ACmzgFID2O7r6anQUhFRAJHRAScPw+HDuW+rRQcAZPAGIedeaQ3duBO538vTmNvTABeB9oA1zme98P+t2Uj9iajJ/aGYeQFiVhEREQChatBSE269TsdxZX62Kncu2MHBU8EDmATFXGObe4DHkxXJwWbNKlL1gSIcxDSeGxLEndpEFIREd/ZuRMmT4aU7AZUlAIpYBIYzv9ULM20/CVgtOPn6kBEpvXPYf8jkoy9Mbkf1wN4ioiISOGV12lk/yHnaWSfwv6zJf0Uss5h0+pju7DWzrTf6HQ/v4D958yhdGUfGbvLqgWHiIjvfPGFLVK4BEwCIyj3TRiQ6flkRxERERHJi9ymkY0DtjlKZv8ACxz10k8jOyXdNs2AzqSNyQGwAriW7FtwnMO2CHGXWnCIiKQJDYWkzH39pMALuEE8RURERC60vtiWG1scj31z3jwLZwKkLfBf4CQwKd3624HK2C4lDbDJjGcd6+oDe7GtSdNbmO7nfdjkyQ9A3Zdf5iXHPpzKk7EFh4hIURYeDvHxcP/9/o5EfC1gWmCIiIiIFFTudmGJx86osjvdsn+wiYnBpHVh+Zq0REQwMJe0ritl16zheWwyZJmjTvqWGplbcIQBTbHdVtJ3a8lMLThEpLCIiLAtMI4e9Xck4mtqgSEiIiLiZ66mkd3nWJcCPIZNkrQDtixcSHHsOGFgkxO/kXUaWed0sBHYAc+PAQnY5Mly4HrH+orYQdTHkrcWHJpGVkQChaZQLbzUAkNERETEzzwdhDSJtGlc9wLrgSvIOI3sW471h4E+pLXgcE4la9KtL55u35lbcDTCztCSfgDSKLJ2edEgpCISKOrXt4+RkTlvJwWPEhgiIiIiBVxOg5DGYrugZOdS4COgCxmnke3vWH8V8EGmOsnAlcBmbKsOVwkQTSMrIv4SEQF//w0JCf6ORHxNCQwRERGRAi4v08juBfaTdRrZXx3rJwHfknEK2YuxSQ5Im/K+WKb9tnY8DgR6AgfJ2IpjBbZ7jJNacIiIr/z4I/z5p7+jkPygBIaIiIhIEZfbNLIxjvKHi7pvArXJOI3scsD53eEioB7QATveBtjuKc6pYxPJeEOauQVHKGndZXKiFhwi4vTNN/6OoGjav9/zOsZAjx6wzdU85S4ogSEiIiJSxOWlBQe4ToA4x9gY6yhgExI1Hds717+ATVhUB0Icy+Kw080CzMdOT5u+9cZm4GPH+trYaWvVgkNEwM4+Ur06HDpkvxwLPPQQjBhhX5dt2+Cxx2DlStfbNmkCH38Ml14K5crB4cMwbRq89BIkJrqu43TxxbBwIRw75l5cwcHw739DscxN+HKgBIaIiIiI5Im7CZCzwC5HcXoDO7Bo+mlkZ5HWimK6Y3tn15UWwCWkJTAiyTitXuYWHB2xrUcOOh5zolYcIgVfo0awdSvcdZf94l3U3X47jBkDQ4bYpMWQIbBokU1QHDyYdfvz5+HLL2HjRjh5Epo3h/HjbWJo5Mjcj/fyy7B+vXuxhYTAvfd6dDqaRlVERERE/CvzNLJl0q2bCDwC3AK0AWoAXdOtfwD4nYzTyG7HdlsBmIdtsXECOAP8BTydrv5g7BgdVwCvo6lkRQo6TaGa0eOPw6RJMGEC7NgBjzwCUVG2VYYre/bYBMaWLXDgAMyfD1OnQocOuR/r+eddJ0Wyk5xs6/z9t/t11AJDRERERPzK0y4s6VuFT8QOGNqctBYcy0hrQXE9WQcgPeFYVxb4n4v9O1txJABjSOu64hyI9GimGJzUjUXE/5xTqCqBAWFhcOWV8O67GZf/+CO0b+/ePiIi4MYbYd683Ld9/XXPY/S0jhIYIiIiIlKg5TQI6VpHcSUOO/ZGc2yrjKuwCZAEYCbwCTYZUjxTvSHAf4H6wKvAbeQ8EKm71IVFJO8iImzXhxMnct20wAsNDWV9uv4an332GePHj099Hh5uu34cyfSBcuQIXHddzvv+9Vdo2RJKlIDPPoNnnvEstqAgO8ZFcnLasuuvh2bNYOlS2LTJs/05KYEhIiIiIgWat4OQGuAfR7kZ23rC2YojFliNnS0lnIwtOJY76lcCWpF1JhVnAmQWdjra9K03DgFLcD0eh1pwiORdRETRaX2RlJRE69atc90u82CmQUG5D3B6xx1QpowdA+Odd+z4F2++6X5s33wD585B//72+X/+A598Yn9OTLQzjyxZ4v7+nJTAEBEREZEiL7tWHAY45igbM9VZDzR0/Pw5cB82mRGGTYDEYAcubQ78i7TWGFc41g0AXsaO65HdQKRlsON6uEMtOERg3DgoWTL37YqC6GhISoJqmebGrlIla6uMzA4dso/bt9vBNidMsImMZDc/kNq1yzjo54gRdh9PPGFbdDz7rBIYIiIiIiJeyetUsuWw3UrSJ0B+dhSn8tgWHM5ZWPYBi7FdUVpgx+QIwiY9ZmOTEOeAKDKOwzEKOI+dkjbIsT4ZteAQATuNp1iJibBhA3TrBjNnpi3v1g1mzXJ/P8HBtitKSIj7CYwqVdIG54yIgHr1bHLp9GmYOBG+/tr946eXawLjee/2m2oysD+P+xARERERCWTuJEBOOorTMkcBO97GYGxioji2Bcc84DR2mtmLgUux08I+7qjzMnA/tpVIULr9OltwnHNsfxDbTSYll3NQCw4p6EqXhssuszNonDnj72gCw/vvw1dfwbp1dlyLBx+EGjXg00/t+tdfhzZt0sbE+Pe/ISEB/vjDTqnaqhW88YZNgJw/7/5xY2OhUiX7c6dOtjXIH3/Y58nJdmwNb+SawHiJrB+K7jLASpTAEBERERHJiasuLL84Snb+ix2nozHQG6gLhGCni52DTXyscWybBBwGVgF3OZb1cTwedBS14JCCrnVrO0Bkly6wbFnu2xcF06fbRMJzz0H16rB1K9x0k50iFewy59SzYLucPP00NGhgx8rYvx8+/hg++MCz465aBaNG2f099ljGljGXXJLWRcVTbnUhGQ586+GOKwIbPA5HRERERKTo8aYLy2+OAnZ8jcHYcTNKYFtwDAYisIkMZzmerv7r2ORHZs4WHInAMGxy44CjxOYQj1pwiL85v4gXlUE83fXf/9riyoABGZ9Pm2ZLXj31FCxYYKdf3bsXXnopbd0dd8Dq1d7t160ERjT2A8sTpz2PRUREREREvOCqBcdOR8nONdikxuXYpEkL7ACkzhYcPR37TG+8Y/8A47BdUw5gkxz3oxYc4l8REbabg7f/3Rff2b0bGjWCihWzTmn76KPwzz/e7TfXBMZVwG4vdnzSUfdPL+qKiIiIiIj7vGnBcdxRNgHtgJZkbMFREZsIqQXUdjzucNQt7ThmVRf7dbbgSAaOjRnDw9gu5QeAPdgEiStqwSF5FREBkZGQktuAL3LBZE5egO3G4q1cExjrvNxxSh7qioiIiIjIheOqBUcKdtyMw8DaTNufdmxTHDst7MvAtY7nZ7Czq1wG1Js+nXHp6j3kOE4D4H3SEhv7gdtQCw7Jm4gIdR8JRMHBtmVM69awMfN81B7SNKoiIiIiIkWct9PInsMOFLob6EJaC47D2EFC169YQY+2bamDbcXxu6NeOezMKlcDFTLtM30Ljk+ByHTlT8cxXVELjqKtWjX7OG5cztuJfwR5MyuIC8GeVhiCzahm5wfS+sWJiIiIiEjh52zB0c7xmNq1JDiYo8B6YBY2CQF28NErsN1UGgDfAQmOdWeApcA24G7gXUfd34GGjm16O5a9i22tcRO2RYezBYcUPc8/D82bw7/+5e9IxBVjfLMfj1tg3EfaaMeu7MQO4POZlwGJiIiIiEjB4m0LDrCtNw5iBxB1tuDYQVo3knJAPUfZ5VhWHmgCdAdKZtqfswVHEjAC+/1kFzZ5kpRDHGrBUTCdPQsl010EQ4bYEh8PpUr5Ly7JyG8tMBoAf+SwfptjGxEREREREXdk24IDOIUdaHQOaa00JgGXAhcBzbGtwJ1dS85gv6+cBj4AFmCTGNHp9nkndjyO67BdW4KA51ELjoKofn2YOhXOOS6A+HiYMgXq1fNvXJImJQU6d4a//sr7vjxugRGGzYpmp0Qu60VERERERNLztgWHAbYAe7HJCGcLjhXYFhyVsP9cbYhtyeE00LG9K84WHAnYBIkmtAhs//wDsbEQFmafFytmnx9RM5qA8ssvvtmPxy0wdgLdclh/PXZ6JBERERERkQshuxYcx7GDjE4GPkq3fTegBtAJeBI7OOh5x7oz2NYbzulk1wITgFtziaEasBzXU8tK/qpSBXbutEmLTz+FqnoTLqi6deGnn+wMMO+9B8WLp61bm3kKozzyuAXGN8Ab2KmSXgES0+3oOWwC4zlfRSciIiIiIpILb1pwRDnKz0AE0Ii0FhyzgUXYqWAvA3piW2TMAkKw43bswrb++MPx+B80Day/9O0LP/8MR4/CUE8HYZE8++QTmD0b1qyBYcNgyRK48UY4fTqtZYyveJzA+AA7WM6z2H5jO7BNt5pgRxFeAbznwwBFRERERETyk7MFx2fYGRWrARMzbeP8HlYaWIZNbAwh+0FEE1ysk/wTEQE//ujvKIqmqlVtEgNgwAAYNcomMbp1893sI04eJzCSsK0shmOnNbrCsXwn8CYwhpxH9xUREREREQkk7rTgcLY8P4WddRFsf/yrgNeB1tiERQJp4wLux/6DdyW29cYxn0Yt6V19tb8jKLrSdxkBePNNSEy0SYwyZXx7LI/HwACboHgHm7wo7SgtsS0vlLwQEREREZGiIAX4FTsTYzFsF5QwYDowDDv+Rhfgv9gxNwA6AE9hEx/pW9drDI282b/fFrnwdu6E6zKNivvee/D117ZljC95lcAQERERERERK/MgoiHAOOAObOIiAjtWBkBX4C1gFbY1x3Ls2IIvomlcvXX55fDEE1CuXO7biu/deafrWUY++ABq1fLtsTxOYAwBFuew/gdsvzEREREREZGioC+268kWx2PfTOv3kjYd60vYhEcfbMuMDthJEB7EJj6GYMcYPJvfQRciXbrAu+9CSIi/Iymazp+3xZXDh317LI/HwLgP+C2H9TuxfcI+8zIgERERERGRwuwYMNdR3sF2xb8ZuAib6AjGJjH+D5iGnRElwQ9xFhQREXDyJJw44e9IJLOLL7atMEqUyLpu2TLP9+dxAqMBWUfkTW8bdnBPERERERERydk/2K4kJbBjaBQD5gCHgduA27ETJTwGBGG/wCW62lERFhEBe/f6OwpJr149mDoV2rSxz4OC7KMx9mdjINTjbIQXCYww7C9Xdkrksl5ERERERETSuJrGdSjwKNAJ+NuxXTvgO2A2tnXGMiDZsa4atrXGHcCRCxR3oIiIgM2b/R2FpDdhAtSuDY89Bjt2ZN/FxFMeJzB2At2AD7JZfz2wJy8RiYiIiIiIFCHZTeOaDCxJ9zwOm8C4HXgAOArMBJ53FOcgoA/nZ7ABJijIdlGYPdvfkUh6rVvDfff5/n3xeBDPb7BJipfJOO1PKHZAmuuBr30RmYiIiIiIiKTaCvQnbRDQZcBDwHHs4J9FcRBQY6B8eXj9dX9HIukdOuS7VhfpedwC4wOgO/As9pdlB/YXpAlQEViBHYSmoAoNDaV379506tSJMmXKEOTsrONnJ0+eZPLkyf4OQwoQYwz79u3jww8/JCYmxt/hiIiIiIiPnCNtENAnsNOy9sYOAmqATdgER1GR0ywY4h+vvw4jR8LSpXDWh9k0jxMYSdhWFsOxg3Ve4Vi+E3gTO8BMkq+i84Phw4eTmJjI6NGjOX78OCkpKblXugCaNGnC9u3b/R2GFCAhISH06NGDxx57jBdffNHf4YiIiEghVKFCBR577DHq1q3r8h9/+ifchVEe2IBNXjjfhYnASeC0f0K6YEqUgFKlICbGtsbIq0C5Zo0xxMXFsXz5cubOnUtSUsH6lj1lCjRuDPv2wZo19v1JzxjbxcRTXoz7aRMU7zhKYdO0aVMGDRpEYqLG9pWCLTk5mQULFnDrrbf6OxQREREppB577DF+++03Xn75ZZKTk7Os1z/hLoz62JlJooFwoBQ2kXERsAuI9V9o+a5mTahaFX7/3Tf7C5RrNjg4mEqVKnHPPfcwfPhw3nmnYH377t8fnn4akpOhZcusLWS8TTa5NQbGAWAs0MXdCgVYcHCwkhdSaCQnJwdMNygREREpfOrWrcvChQtdJi/kwtkLHMROw3oQ+Avb1T998qIiUNIv0eWv4sXh3Dl/R+F7KSkpHDt2jI8//pimTZv6OxyPjR4Nc+ZA5cpw8cVQv37GEhHh3X7dykfMw/apWgwcAyY7nhfGXwAREREREXFPUFCQkhcBLH3Li5rApUBdMk7GUNAV1gSGU2JiIsHBBa8ZQaVK8MkncOqUb/fr1isxFKiNnXf4f0ArYBa2idJc7Ei4FX0bl4iIiIiIiPjIn8A/2O9tl2ETGiF+jcg3CnsCo6BauRKaNPH9fj1K5awHnsFm7i4FXgGqAZ9jfxmWAsOwyQ4REREREREJDMnA38AfwAns97ji6daHAg3xcpBEPwkOhpQUJTAC0aOPwqBBcPfdULEiBAVlLd7wui3KX9hZR9phExbDsb8U72L7YG0AbvB25yIiIiIiIuJzicA+YAvgnN2yBlAPKOP4uaBISYEtW+DoUX9HIplt3w6XXQaTJ9v3JzExY/F22lufdKY5DHwMdAOqAAOwvxTNfLFzKRQmTpzIK6+84tN9bt26lY4dO/p0nyIiIiIinkp/X9qwYUN+//13YmNjGTZsWJbneREZGUnXrl19ETLOaQuuAKoDZR3PKwNXOpaD7rm95cnr5sv3NVC8/LIdyPPll10Xb78a+ryF0CngK0eRwNa/f3+eeOIJIiIiiI2NZfbs2Tz99NPExgbeREuRkZE88MADLFmyJHVZs2aep8hc7UdEREREJDuRkZFUrVqVpKQkkpOT+fPPP5k8eTKfffYZxjEXZPr70qeeeorly5fTsmVLACZMmJDhubvHSz84asOGDYmKivLhWaX5w3HM1x54gPWOe+STwH7Hem/uufNDZGQkNWrUoEaNGhw/fhyA8HD4+eeNXHppC+rWrcv+/ftz2cuFEyivm7+MHp0/+/W4BcaSXMpPwHxgHHCzz8IsOKoBy4Gqfo4jN48//jhvvfUWI0aMoFy5crRr1466devy448/Ehp6YXu+hYQUhuGD0hS28xEREREp6nr27EnZsmWpU6cOb775JiNHjuTzzz93uW2dOnXYtm1bts/dPV6ZMmVSS34lLwCSAAMEOR7BdiXx19wyOd1LR0ZGctddd6U+b9myGaVKaW7MosTjBEZ9oCnQyVFaOIrzeTOgLfAQdqaSn4FSeQ6z4HgeuAZ4IR+P8eqrr/LBBx+kPq9ZsyanT58myM2RUMqUKcPo0aMZNmwYP/zwA0lJSezfv5/bb7+devXqcffddwNgjCEi3QS9mbuBjBw5kt27dxMbG8u2bdvo3bt36roWLVqwYcMGYmNjmTZtGiVKlMgQQ2RkJE899RSbN2/mzJkzhISEZLu/yZMnU7t2bebPn09cXBwjRoxI3YezqdXFF1/MrFmzOHr0KNHR0Xz00Ufuv6BunM8VV1yR2vRv+vTpTJs2LcNr4cn5OLd/4okn2Lx5MydPnmTatGkUL17c7eNVr16dmTNncvToUfbu3Zvn5ogiIiIiF1q1arB8OVTNx//85fW+ObPY2Fjmz5/PHXfcQf/+/WnatCmQdl+6ZMkSOnfuzLhx44iLi8vyvEGDBj45L6fs7tfr16/P8ePHueIK2xGkevXqHDt2LNsuDUHYVhfbsQN8xpOWzEh/z53bPWxO96i53Rtnvpd25auvvqJfv36pz++4oz9z5kzOsE3jxo1ZtmwZMTExbN26lZ49e2ZYn9M5NG7cmEmTJuVY98knn2Tz5s2cPn2aCRMmUKVKFRYuXEhsbCyLFy+mfPnyWV633M6/MHrqKRg71vW6MWPgySe926/HCYxO2MFe3sG2MqjkKFWxA3iewU6zGg68R/5/mc9vHwDL3CjOzOUQ7HREQxzPk9yom/aR6p4WLVqwefPm1OfNmzdn27ZtqU3YctO+fXtKlCjB7NmzMyw/c+YMixYt4vrrr3drP3v27KFDhw6UK1eO0aNHM2XKFKpVq0ZYWBhz587lq6++omLFisyYMYNbb701S/277rqLHj16UL58eZKTk7PdX79+/Thw4EBqJvqdd97JsJ/g4GC+++479u/fT926dalZsybTpk1z6xzcPZ85c+YwadIkKlasyDfffEOfPn28Ph+n22+/nRtvvJF69epx+eWXc9999wHkerygoCDmz5/P5s2bqVmzJl27duWxxx5z+30TERERCQTPPw/XXAMv5OOXhbzeN2dn/fr1HDp0iA4dOmRY3rVrV1asWMHQoUMpU6ZMlue7du3K03HdtXfvXkaOHMnUqVMpWbIkEydOZNKkSfz8888ut08CjmITF5HYCRvAfqfL/IUxu3vY3O5Rc7s3znwv7cqaNWsoW7YsjRs3Jjg4mJtuuoNZs6akrg8NDWX+/Pn8+OOPVKlShWHDhjF16lQaNmyY6zk4665atSrHurfeeivdunWjYcOG9OzZk0WLFvHMM88QHh5OcHAwjzzyiMvYczv/wmbAADvAqiubNtn13vA4gfEB8CswCohOtzwaGAmscmwT43i+AMj61bXwWQscIa2pVbLj+dp8OFaLFi3Yku5qaN68OVu2bKFs2bKsXbuWuLi41GywK+Hh4URHR7v8YIiKiqJy5cpuxTFz5kyioqIwxjB9+nR27dpFmzZtaNeuHWFhYXz44YckJSUxa9Ys1q9fn6X+2LFjOXToEAkJCTnuLzdt2rShRo0ajBgxgrNnz3Lu3Dl+/fVXt87B3fMJDQ1l7NixJCUlMWfOHNatW5fn8xk7dixRUVHExMQwf/58WrRoAZDr8Vq3bk3lypV55ZVXSExMJDIykvHjx3PnnXd6fM4iIiIivvLBB7BsWcYyadL+LMuSksAYGDIEQkLsozF2eeZtM5cPPPzPX17vm3Ny+PBhKlas6FXd3MydO5eYmBhiYmKYM2eOV/uYMGECu3btYu3atVSvXp1nn33W431UxA6aWD7dsuzuYXO7R3Xn3jj9vXR2nK0wrr++G/v372D//r9T17Vr147SpUvz5ptvkpiYyLJly/juu+8ydDvJ7hycdcePH59j3Y8++oijR49y+PBhVqxYwdq1a9m0aRPnz59nzpw5qa1eMvP2u05BVbs2ZJev27sX6tTxbr8eD3bQGZuYyM5K7PSqTj9hZycpqIZ7sO0nwGBs5rIYtgvNwz6OJzw8nKpVq2boR9e8eXNWrlzJ2bNn6dGjR5YWCplFR0cTHh5OSEhIliSGs3mZO+69914ef/xx6tatC0Dp0qUJDw+nZMmS/P333xm2dTWgzsGDB93aX25q1arF/v37s83UusuT88kcu6tluZ3PP//8k/rz2bNnqVHDTlpVo0aNHI9Xp04datSoQUxMTOqykJAQVqxY4cHZioiIiPjH2rUQEWEHYAwJgeRkiI6GPXt8exxf3DfnpGbNmpw4ccIXoWbRu3dvnww6P378eObPn8+gQYM478W8lbuAFOxMk9Udy7K7h83tHjW3e2NX99eufPXVV/zyyy9ERNRj9uzJxMenratRowYHDx7M0MJm//791KxZM8M+XJ2Du3WPHDmS+nN8fHyW56VLl3YZt7ffdQqqs2ch00uX6uKL4dw57/brcQIjCGicw/rGjm2ckrFf6IuCKsCnwGfYREZ+NAhq2rQpu3bt4pzjHQ8JCaFz58588sknJCUlER0dncseYPXq1Zw7d45bbrmFGTNmpC4vVaoU3bt357nnngNsl5JSpdJGMKlWrRqHDh0CoHbt2owfP56uXbuyevVqUlJS2LhxI0FBQURFRWX5Ra9duzZ7Mv1VSv/hkNP+Mm+b2cGDB6ldu7bLhIy7PD2fWrVq5el8cpLb8Q4ePEhkZGSW5mwiIiIi/jTcxX/+mjSpw/bt27Ms/+QTGDwY4uOhWDGYNQse9vF//nxx35ydVq1aUbNmTVauXOmrcL2S0/36RRddxIcffsiECRN46aWXmDVrVobkgjucXeJPATWwXeWzk9M9qjv3xu526zlw4ACRkZHceONNDBgwMMMX4cOHD1OrVi2CgoJS91e7dm127tyZ637T100ftzt1c5OX7wYF1YoVMGIEzJwJ6XNnxYrBE0/Y9d7wuAvJT9gBOu9wse5O4EFgcbplrYB93kRWAPUFhgJbHI998+EYQUFBlCpVipCQEIKCgnj77bepUqVKhqZxuYmNjWX06NF89NFH3HDDDYSGhlKnTh1mzJhBdHQ0U6dOBWDTpk3cfffdBAcHc8MNN2QY9Oeiiy7CGJPaWuO+++5LnSpo9erVJCUl8cgjjxASEkKfPn1ybR6V0/7AZjrr16/vsu66deuIiorizTffpFSpUhQvXpz27dtne6ywsDCKFy+eWkJCQnI9n+TkZIYOHUpISAi9evXK8/nkJLfjrVu3jtjYWJ566ilKlChBcHAwTZs2pVWrVm7tX0RERMTfqlSBTz+Fdu3sY34M5OmL++bMypQpQ48ePZg2bRpTpkxh69atPozYczndr48ZM4YNGzYwaNAgFixYwKeffprjvlzdIzsdAXKbByWne9S83Bu7MnDgQLp06cLZs2czLF+7di1nzpzhqaeeIjQ0lI4dO9KzZ0+3xsdz1h04cKDHdXPj6/MvCF56CRo0gJ074dVX4aGH7OPOnXa5t2PfeJzAeBw4BkwFDpI2EOVBYAp2LIwnHNsWB+oAk7PuRry0YsUKtmzZwo4dO1i8eDEHDhzg4MGDnDx50qP9vPPOOzzzzDO8++67xMXFsW/fPkqVKsV1112X+kHw6KOP0rNnT06ePMk999zD3LlzU+tv376d9957j9WrV3PkyBEuu+yy1HEnEhMTueWWW7jvvvuIiYnhjjvuyDJgaGY57Q/gjTfe4LnnniMmJoYnnngiQ92UlBR69uzJJZdcwoEDBzh06BB33OEqxWYtWrSIhISE1PLSSy+5dT4DBw7k5MmT/Pvf/+a7775LzeZ7cz45ye14zvNt0aIFkZGRREdHM2HCBMqVK+fW/kVERET8rW9fGDrUDvI3dKh97mu+um8GmD9/PrGxsRw8eJBnn32W999/nwHejkIILFy4kKefftrr+k7Z3a/36tWLG2+8kQcffBCAxx9/nJYtW6bONuiKq3vk9A6TNt5fKbJ+kczpHjUv98au7N27l6ioDWSe1CUxMZFevXrRvXt3oqOj+eSTT+jXrx9//fWX6x25qNuhQweP6+bG1+dfEGzZAp07w/79MHIkjBtnHyMjoVOn7Af4dIfxtFQA8xaYbWDOOsqfjmUVvdifP8rp06ddLp88ebLfY3NVmjRp4va2EydONE2bNvVo/wMGDDAHDhwwtWrV8vu5FoSyZs0ac9999xWI4/njml6/fr3f3yMVFXeLrleVglZ0zaoEUsntPsOTe1h/FG/um4t6CQbTHEwTMKF+jOOSSzBNmvh+v4F4zWb3e5bdd1p/lXbtXC8vUQJTvbp9zOsxPG6BAWkzjDTFZt9KAZc6luXPMDbirgULFnD99dczfvx4+vfv73a9iRMn8swzz+TY9aIou/baa6latSohISH069ePyy+/nO+//77QHE9ERESkqPH2vrmoS8FOtVoCO/5hMT/FUby49wNBSv5YuRIOH7bdwm64AUIdI24mJEBUlH3MK48H8ZTA1qNHD6/rTpkyJfeNiqhGjRoxffp0SpcuzZ49e+jbt2+G0YsL+vFEREREipq83DcXdbHAX0ADbBJjFxd+4obixcGL3kCSj2rWhD594OabYe5cm2D6/nuYMwcWLoS4uLwfI9cWGFdh5//1ZsdXAa4nkREpWMaPH0+1atUoXbo0zZs3Z+HChYXqeCIiIiIinjgL7MC266+C/c94Qy7Mf8iLFYOgILXACDRHjtjWF927Q+XK8OCDYIxddvSoTWb85z9QvXru+8pOrgmMFcANXuy4vKNuay/qioiIiIiISGA7B2wHDmCnWS3jeLwQYmIg0yQkEkBOn4Zp0+Cuu2wyo08fO4Dn88/DwYOwZo0d1NNTuSbIgoBKQC0Pd1zRUVdEREREREQKp8vI+F/xyo6SAmzMp2OePw979+bTzsXnkpJs64vvv7fTqbZrB717Q79+8NZbnu3LrRY+HzqKp4wXdURERERERKRg+AP7z+7ypCUyTgAH/RWQBLw1a2wZNcrzurkmMEZ7E1E6SoyJiIiIiIgUTklAMjZ5YbCt8Is5lueX+vUhLAz++isfDyIBKdcExssXIgoREREREREpkEKBo0A0cAlwERAGJObT8YoXh8T82rn4xJIl2a9LSYFTp2DDBvj8czvAp7tyHcTzQhkFrANOYS/+eUBTN+o1A5ZjR8E9BDyfT/GJiIiIiIhIVnuxXUbigZ2OZVXz8XjFi2sGkkAXFASNGkGnTlCnDpQoYR87dYImTaBePTug59at9rm7AiaB0Qn4BGgPdME2OfoJqJBDnTLAYuAIdraTR4ARwOP5GaiIiIiIiIi4dA74C/g7n/YfEmKLEhiB7f33ISEBrrwSLrkErr7aPrZubZePHg0NGsCxY/Daa+7v90JM0+uWGzM9vxfbGuNq4Lts6twDlAL6AwnANqAJNoHxfv6EKSIiIiIiIjk443h0jovhy8kdihe3j0pgBLZXX4WXXoJNmzIu//13m7x49VW4/HJ45x1491339xswLTAyKwOEADE5bHMVsAKbvHD6AagJ1M23yERERERERNJs3bqVjh07AtCwYUN+//13YmNjGTZsWJbneREZGUnXrl19EbLb0p+bJ0KwQwJU83E8yclw5AjEx/t4xz7myevmj/c1vzVsCNHRrtcdO2ZbYwDs2QMXXeT+fgOmBUZmY7DzBq/OYZtq2HEv0juSbt2+TOsGDRrE4MGDAShZsiTr16/Pss+TJ0/SxJNOOBdIiRIlAjIud7322mscOXKEsWPH+myf8+bN45VXXnH5Pkqa6tWrX/DXqEmTJnpfpMDQ9SoFja5ZCSS53TsX9HtYgMWLF1OpUiWSk5NJTk5mz549zJs3j+nTp2OMbVtw2223Afb385VXXmHLli3cc889ALz++usZnuf2ejiPl5KSkrqse/fuHDt2jLCwMOrUqePz13Tx4sW88MILrF6d9dtX+nPzVPDff1MjLo4K9ephnE0n8hBjlSpV6NixIydPnqRMGbt89uzZNG7cmOuuu47Dhw/n6Rjgu2vWk9ctt/fVH/fzebVvHzzwAHz/fdZ1gwfb9QDh4XD8uGf7NoFW3gPzN5h6uWz3A5gJmZbVBmPAtM2l7unTp10unzx5st/P31Vp0qSJz/fZv39/s2XLFnPmzBkTFRVlPv74Y1O2bNl8iX/ixInmlVde8bp+ZGSk6dq1a57j8NV+ClLxxzW9fv16v5+3ioq7RderSkErumZVAqnkdp+RH/ewF7qkv38sW7as6dmzp9m7d6/54osvXG6/ePFiM3DgwGyfe3I8T9b56hx9WULBtADTwIM6ISEh2ca4Y8cO8+ijQ01QkF3WrFkzs2PHDmOMMXXq1PFJzP64ZnN7/bP7PcvuO20glDvvxCQlYTZvxrzwAubBB+3j5s2Y5GTMHXfY7T7+GDNrlvv7DbguJO8Dd2EH8ozMZdt/yNokqYrj8Qj+UQ07K0p+jrrrC48//jhvvfUWI0aMoFy5crRr1466devy448/Ehp6YRvmhISEXNDj5bfCdj4iIiIi+aFaNVi+HKrm443zq6++ygcffJD6vGbNmpw+fZqgoCCv9hcbG8v8+fO544476N+/P02b2nkTnV0AlixZQufOnRk3bhxxcXFZnjdo0MAn5+VkjCEiIiL1+cSJE3nllVeoX78+x48f54orrgDsf/CPHTvmVVeQ9N0bIiMjeeKJJ9i8eTMnT55k2rRpFE/XsqJ69erMnDmTo0ePsnfvXh4aNoy/gbLASyNHsnv3bmJjY9m2bRu9e/fOcIynnnqKzZs3c+bMmWzvp7/66isGDuxHw4b2ef/+/Zk8eXKGbRo3bsyyZcuIiYlh69at9OzZM8v5ZHcOjRs3ZtKkSTnWffLJJ9m8eTOnT59mwoQJVKlShYULFxIbG8vixYspX758ltcNYGQO518YTZsGN94Ip0/DM8/Axx/bx7g4uP56+L//s9s9/jjccYf7+/UqgdEA6A0MBgY5fr7Emx1l8iFwNzZ58Zcb268GOgDpGyN1w454u88H8XjjeeAa4IV8PEZeP4jLlCnD6NGjGTZsGD/88ANJSUns37+f22+/nXr16nH33XcD2X8gOuX0S9iiRQs2bNhAbGws06ZNo0SJEhlicPUhld3+Jk+eTO3atZk/fz5xcXGMGDEidR/OD4WLL76YWbNmcfToUaKjo/noo4/cf0HdOJ8rrrgite/i9OnTmTZtWobXwpPzcW6f04d/bsfL/Mchr/0pRURERC6055+Ha66BF/LxxrlFixZs3rw59Xnz5s3Ztm1batcPb61fv55Dhw7RoUOHDMu7du3KihUrGDp0KGXKlMnyfNeuXXk6rrv27t3LyJEjmTp1KiVLlmTixIlMmjSJn3/+Oc/7vv3227nxxhupV68el19+Offddx8AQUFBzJ8/n82bN1OzZk26du3KY489xhXXX88Z4OiePXTo0IFy5coxevRopkyZQrVqaf+Ovuuuu+jRowfly5cnOTnZ5bHXrFlDmTJlufjixgQHB3PHHXcwZcqU1PWhoaHMnz+fH3/8kSpVqjBs2DCmTp1KQ2fGI4dzcNZdtWpVjnVvvfVWunXrRsOGDenZsyeLFi3imWeeITw8nODgYB555BGXse/J5fwLo59+srOPlCxpE5YlS9rf+SVL0rY5dw6Sktzfp9sJjMbYBMPfwHZgJvBf4FPHzzsc6z5wbOupccAAbOuLGGwLhqpA+vE8XsdOrer0NXAWmIQdIKYPMArfz0CyzEV5yLGupON5ErZNyxDsgDVDHM/js6l/u6P+xV7Ek9cP4vbt21OiRAlmz56dYfmZM2dYtGgR119/vVv7ye6XMCwsjLlz5/LVV19RsWJFZsyYwa233pqlfuYPqez2169fPw4cOEDPnj0pU6YM77zzTob9BAcH891337F//37q1q1LzZo1mTZtmlvn4O75zJkzh0mTJlGxYkW++eYb+vTp4/X5OGX34Z/b8bL74+Du+yYiIiKSX5Yty1gmTdrPQ44b55Il7bKkJDAGhgyx02EOGWKfx8dnrb9sGdzuuHG+2Isb5xYtWrBly5bU582bN2fLli20a9eOVatWsXz5cr7++muvWiAfPnyYihUreh6UG+bOnUtMTAwxMTHMmTPHq31MmDCBXbt2sXbtWqpXr86zzz7rk9jGjh1LVFQUMTExzJ8/nxYtWgDQunVrKleuzCuvvEJiYiKRkZGMHz+eO++8k13AJzNnEhUVhTGG6dOns2vXLtq0aZNhv4cOHSIhIcH1gYGgIFi06Ctuvrkf3bp1Y8eOHfz9d9qEre3ataN06dK8+eabJCYmsmzZMr777jvuuuuuXM/BWXf8+PE51v3oo484evQohw8fZsWKFaxdu5ZNmzZx/vx55syZk9rqJbOZuZx/YWaMHbgzj3lDwI0ERn1gBrAVGAhsBkYD/YCbgB6On192rHvAse10oJ4HgTyMbVq0FNs1xFmeTLdNdSAi3fNYbIuLGsBvwMfAe/hnCtW12G4rzlzhOWAK0DIfjpXXD+Lw8HCio6NdZjajoqKoXLmyW3Fk90vYrl07wsLC+PDDD0lKSmLWrFkuB53J/CHl7S91mzZtqFGjBiNGjODs2bOcO3eOX3/91a1zcPd8QkNDGTt2LElJScyZM4d169bl+Xyy+/DP7Xg5/XEQERERCXRr19pZJJy3oufOwZQp0NLHN87h4eFUrVqVbdu2pS5r3rw5mzdvZv/+/XTp0oVOnTqxd+9ebr75Zo/3X7NmTU6cOOHLkFP17t2bChUqUKFCBZf/OHPX+PHjueyyy/joo484f/68T2L7559/Un8+e/YspUuXBqBOnTrUqFEjNfESExPDM888Q9WqVUkG7r33XjZt3Ji6rlmzZoSHh6fu6+DBg7keOywMFiz4it697+a+++7L0n2kRo0aHDx4MMM/dvfv30/NmjVzPQd36x45kjZYQXx8fJbnztcjs3vvvZeNOZx/YbBkCTRq5P72QUG2ziUedOfINdX4J/AHcB8wG9viISelgL7AI466Jd0MxJ3ODwNcLNsKeN6TyzOdc1gXn279J9huNfFAMWyCZXsu9TPPopKb7D6IV65cmfpBnJCQwKuvvsrNN9/MrFmzsuwjOjqa8PBwQkJCsiQxnP3j3HHvvffy+OOPU7duXQBKly5NeHg4JUuWzJAJBfvLn1nmD6ns9pebWrVqsX///mybmrnLk/Nx9QHr6flk/uCsUaMGYD94czpe+j8OTiEhIaxYscKDsxURERHxvc6ZbnybNKnD9u3bAdvCwrn+k0/sTATx8VCsGMTGwvbtWeund8jDG+emTZuya9cuzp07B9j7pc6dO/PJJ58QFRWVul1SUlKGGT/c0apVK2rWrMnKlSs9C8rHzpw5Q6lSpVKfV6tWjUOOF+qiiy7iww8/ZMKECbz00kvMmjUrw/2jrx08eJDIyMgsXS4Aateuzfjx43mga1c2rl7NtpQUNm7cmKELvDutycPC4O+/DxAZGclNN93EwIEDM6w/fPgwtWrVIigoKHV/tWvXZufOnbnuO33d9HG7Uzc3zvPv2rUrq1evJsXF+RcGnTqROjuMO4KCPK+TawuM24HW2NYEuSUvcGwzGWgFeDAWR6FQBdulpp3jMT/GI8rug3jLli1ERUWl/vc/pw/i1atXc+7cOW655ZYMy0uVKkX37t1T+8a5+kB0cv4SDh06lEqVKlGhQgW2bt1KUFAQUVFRWTKVtWvXzhJH+g+pnPaXedvMDh48SO3atfM0eKan51OrVq08nU9Ocjue84+DMytfoUIFypYtS48ePTw9bRERERG/qFIFPv0U2rWzj/kxkGdQUBClSpUiJCSEoKAg3n77bapUqZKhJXPdunXp3r073333nVv7LFOmDD169GDatGlMmTKFrVu3+j5wD2zatIm7776b4OBgbrjhhgyDdI4ZM4YNGzYwaNAgFixYwKeffprjvsLCwihevHhq8fTeet26dcTGxvLUU09RokQJgoODadq0Ka1ateKiiy7CGMNfx45RChh23300a9bM4/NNTLSJrIEDB9KlSxfOns34DXXt2rWcOXOGp556itDQUDp27EjPnj3d6l7urDtw4ECP6+bGef7OfxTf5+X5FwRz58KePe6VXbs871aSawJjnpeB57VuQdQXGApscTz2zYdj+OKDODY2ltGjR/PRRx9xww03EBoaSp06dZgxYwbR0dFMnToVyPkDMadfwtWrV5OUlMQjjzxCSEgIffr0ybUrSG6/1EeOHKF+/fou665bt46oqCjefPNNSpUqRfHixWnfvn22x3L14Zzb+SQnJzN06FBCQkLo1atXns8nJ7kdL6c/DiIiIiIFQd++MHQobNliH/vmw43zihUr2LJlCzt27GDx4sUcOHCAgwcPcvLkScAmI7788kvuvfdeEhMTc9zX/PnziY2N5eDBgzz77LO8//77DBjgqn24exYuXMjTTz/tdX2nRx99lJ49e3Ly5Enuuece5s6dC0CvXr248cYbefDBBwE7A2HLli1TB+t3ZdGiRSQkJKSWl156yaNYUlJS6NmzJy1atCAyMpLo6GgmTJhAuXLl2L59O++99x7fr17ND0eO0Oayy1jlRZfv8+dt96Pdu/eyYcOGLOsTExPp1asX3bt3Jzo6mk8++YR+/frx11+5TxHhrNuhQweP6+bGef6rV6/myJEjXHbZZV51effWQw/B3r22xdNvv9mBNLPTsaNNQhw+DGfOwObN4O6l/uWX8OOP8PPP7pfJkyE62rPz8Wg+19sCYE5ZX5Ts5szNbS5rfxXnfMQhISFm3rx5ZteuXeann34yjz76qDlw4EDqdmXKlDE///yzadiwYa77vP/++80ff/xh4uPjjTHGLFu2zFSvXj11/ZVXXmm2bt1qYmNjzeTJk83XX39tXnnlldT1r776qjl+/Lg5duyYee+998zy5ctT57i+8sorze+//25iY2PNtGnTzLRp0zLUdTXXcU7769Wrl9m/f7+JiYkxTzzxRJZ91KpVy8yZM8dER0ebY8eOmTFjxrg858jISJOZM67czmfjxo0mLi7OTJ8+3cyaNcs899xzXp9P5u1ffPFF89VXX2V47XM6XvXq1c3XX39toqKizIkTJ8zq1auznTvaH9f0+vXr/f47o6LibtH1qlLQiq5ZlUAqud1nOO9hA62EhISY7777znTu3NnvsRS1UhxMSzD1vKhbsiQmLCx/4wvEaza737PsvtOmL7ffjjl/HvPAA5jGjTFjx2Li4jC1arne/umnMa+8gmnfHlOvHubBBzGJiZi77vL/6+AonlVIBDPY/0HnuRTUBEZOJS8fxAMGDDAHDhwwtWrV8vu5FoSyZs0ac9999xWI4ymBoaKSc9H1qlLQiq5ZlUAqBTWB8e9//9scO3bMLFu2zCxbtszcfvvtfo+pKJXqYOp4Ua9pU0z9+vkbWyBes3lJYKxZg/nss4zLdu7EvP66+8f/v//DzJzp/9cBMG5Po+o0CTtY5TPZrG8H/OLpTsUn7rrrLtq2bcsLL7zAsmXLuN0555QbJk6cyDPPPJNj14ui7Nprr6Vq1aqEhITQr18/Lr/8cr7//vtCczwRERGRomTKlClUrlyZzp0707lzZ6ZPn+7vkIqUKCDrEP+5K17czlojVmhoKOvXr08tgwYNyrA+LAyuvNJ260jvxx/Bk699ZctCPo7/6hGPJzweBBwDXgHCgccdyxsCbwA3Y2fhkAtvypQpTJkyJU/1xbVGjRoxffp0SpcuzZ49e+jbt2+GWUQK+vFERERERC60UthZK4+7sW2xYnbWCiUw0iQlJdG6dets14eHQ2ioHTckvSNH4Lrr3DtGjx7QtStcfXUeAvUhjxMYYFtfHAHeAyoDp4H7sW06/ge87KvoRALE+PHjGT9+fKE9noiIiIjIhVYVqID9PplbXqJYMfuoBIbnMs/0ERSUdZkr7dvD11/DI4/A+vX5E5unvEpgAIwHegB3YxMX04DngUjfxCUiIiIiIiKF2EGgHFAb2JXLtiVK2EclMNwXHQ1JSVCtWsblVapkbZWR2dVXw8KF8MILdqrjQOHxGBihwCPAHqAL8Ds2gRGGvQBFRERERKRoMMYQHOzxVwoRAJKAv4Gy2JYYOTl1yk4Fev58/scVSEJCQjDuNJdwITERNmyAbt0yLu/WDVatyr5ehw6waBGMHg1jxnh16HzjcQuMXUAt4E9gILAQuA2Y7Pi5D3DGhwFeaMYYQkJCSE5O9ncoInkWHBzs9QeeiIiISG7i4uKoVKkSx44d83coUkAdw46tWAuogv1HeZKL7RITA2cgyQupXr16REdHe13//ffhq69g3Tr49Vd48EGoUSOtVcXrr0ObNmljYnTsCAsWwCefwNSpULWqXZ6cbFt0uKttW7jxRmjXzh6vZElb/6+/4OefYe5cOHnS8/PxOF0agh3Iszk2YQEwA+iFnYFkGVDJ8zgCRnR0NPXq1fN3GCI+ER4eTmxsrL/DEBERkUJq+fLl3HPPPYSFhfk7FCnA9gPngdJAjWy2KVcurRtJURASEsIll1zCo48+mqdZcqZPh8ceg+eeg02b4Jpr4Kab4MABu756dYiISNv+vvvgootgxAj455+04u4YGP36wZYttoXHY49BqVKwaxesXWsTUG3bwoQJ8PffMHEi1K3r2fkEYXuAuK042Q+w0gZYAJwAGnkWxwV3+vRpSpcunWV527Zt+fe//82YMWOIjIwMmJYYTZo0Yfv27f4OQwqQsLAwhg4dysGDB5k5c+YFPfb69etzHBFZJJDoepWCRtesBJLQ0FCGDx9O06ZNXXYlqV69OlFRUX6ITAqK2tgvpZkZ4EC657VqwZkzcOJE/sYTKNesMYbo6GimT5/O2rVrXW6T3Xdaf9m0yY6vMXkyTJtmn7tStiz8619wzz3QqRMMGGATLe7wuAtJTmOmrAM6AD94utMA4rw4HnroIcLDwwkKcvXrdOEFyi+SFBwpKSls27aNuXPn+jsUERERKaSSkpJ45513sl2/fv16umXugC+STjXgXaA3cBH2++YM4EnszJcAFSvC8eMwfDh8+GH+xqNr1nsTJ9quKbkNtBoba2c3+fpruPzyrIOM5sTrWUiyswMIkClivbZ27dpss1z+ol8kEREREREpbP4BYoESQDJQzPE8/SQZzi4Oe/de4ODEI94M+Llliy3uynUMjC6ex8Ahx2NXL+qKiIiIiIhI0VEF+BR4FdudpHGm9c4Exp49FzQsyYMrrsif/eaawPgeWAL0cGdjbJOO3sBy0gb5FBEREREREXGlLzAUGIMdzHNjpvVqgVHwLFtmx7fwtVxzEldgp7GZB0QBU4BHsAmNq4D2wL+A4cD/ObaZBZwFWvg+XhERERERESmEYrD/QL+DjAN7fvyxneozPt4/cYnnvv4aFi6EW27Juu7qq2HFCu/2m+sYGNuAG7BTpA4BbgbuIuvUJUHYvkqzgf8Cv3kXj4iIiIiIiBRRX2O7lFTFjo8BcPKk+9N4SmAYMgSiouxsJMOGwf/+B82aweuvQ48e4O0Em24P4rnGUYKBK4FLgcrYRMYxYCu2qY9Hc7KKiIiIiIiIOPyfo6Q3fDisXg1r1vgjIvHWK6/A33/Df/8Ld91lW14cPAj332+nWvWGx7OQpADrHUVERERERETE18pihyUILQHvvw8vvKAERkFToQI0bAjJydChA6xaZcfFSE72fp/ujMvptjKOIiIiIiIiIuKNK7HTqF4P1Ktnl2kGkoLlhRfsoKsPPwzvvWdbXbRqZZNReeFxC4zsvAo8je1C8je2O8nvjsf5vjqIiIiIiIiIFGpbsK0v7gL+T1OoFkjPPgsTJsDo0XD0qF124ADMmQNVq8K//w1JSZ7v12ctMB4GrgYqAP8GlgL1gVd8dQAREREREREp9BKBmUBvoLESGAVSkya29YUzeQF2atXOnaFjR/j+e+/267MWGCeAddgxMlY4ioiIiIiIiIinvgYGA53rQWwsREf7OyLxxN69rpdv3AjXXAM//ODdfvPUAuN2oLFjJ59im/iIiIiIiIiI5MUK7NAE54dDgwb+jkZ8ac8eaN/eu7p5SmAMx85Gcga4F5vEeA/oAJTOy45FRERERESkyEoBBgKjTMZuCBK45s6FFi3c2/boUShe3E6R+5//uH+MPCUwrsLOOtICeA0YB1yKnbf3JLCTrHP4ioiIiIiIiORmcTAM/9SOmSCB78ABO9XtmjUwbBhccQWEhGTcpnp1uPlmO8BnVJSdneT3390/hk/GwPjLUdInK6oAVwDNfXEAERERERERKVIuvtj+d77qBvj5Z39HI7l55BH48EN47DF46SUoVw6MsWOYnDsHFSpAWBgEBcG6dXa7r76y27jL4wTGc9ipUTcCh3PY7ijwg6OIiIiIiIiIeKJ+ffvYay9UA/7xazTijr17bSLjiSfgqqugbVuoUQNKlIDjx2HHDvjlF9tawxseJzBGA84EyXFsImMTaUmNnd7FISIiIiIiIpIqwjGFavAeO4HEWL9GI55ITLSJil9+8e1+PU5g1AGuzFS6kZbUOAtsAa7xUYAiIiIiIiJS9ERE2C/CWw/aGS+VwCj4SpaEa6+FEydg82Y4f96z+h4nMA45yrfplkUA9wAjgb1AWU93KiIiIiIiIpJOmTKwezd8kwxvA/Wx3zel4Pr+e/tYrBg0bWqnVP3tNxg0yL36PhnEcw/wMvAjMBto5YudioiIiIiISJE1bJgd8PFi4CFsbwAlMAq2iy9O6xoUEgKXXQatPEgg+CSB4bQGWIgdJ8PNBIqIiIiIiIiIS8bAQWzrCyn4NmyA4sXtrCTJybBpky3uCvZ1QJuAHr7eqYiIiIiIiBQZFSrAwoXQuXPaslCgtN8ikryIjoZFi+DsWZg+PW2GGU95nMCIBGYATwPXA5UyrW8OXORdLCIiIiIiIiJccgl0727HwQAoDuwHnvFnUOK1+vXhnXdg+3Y7MOuyZfD33/Dtt/DCC+7vx+MuJHuBLsAtpM08cgjYhs2GXQ384OlORURERERERByc/6Hfs8c+ngM2A3eiJEZBFBsLS5fa4lSlCrRubYu7PE5gdHU81sVOodrSUZphW158jx1gRURERERERMQbzoEe96YbtfMbYDLQDjv+ogSuJ56A33+35dQp19scPQoLFtjiLq8H8dznKLO83YGIiIiIiIiICxERcPgwxMenLZsLxAN3oQRGoBs9GkqUsD/v35+WzHCWY8e8269PZyERERERERERyavYWPj114zL4oDvgDuAx4HkCx+WuOmqq+wgrIcOwe7dULs2PPMMlCxp10dFpSUzNmyA775zb79KYIiIiIiIiEhAGT7c9fI3gI+BlAsZjHjsf/+DqVNh1Ki0ZZUrw2uvwQ03wP/9HzRvDg8/DBUrQqibmQmfT6MqIiIiIiIikh82Aj+TNqGEBKYWLWwLjPSOHYPBg+GXX+z4FzfcYAfyrFfP/f0qgSEiIiIiIiIBo2FD2LoVOnZ0vf4S4G3s1KoSmKKioFkz1+u+/BL+85+05wcPur9fJTBEREREREQkYDRoAE2bQkKC6/X1gBHATRcyKPHI55/DSy/BFVdkXRceDlWrerdfjYEhIiIiIiIiAcM5heqePa7XLwWOYGcjmXOBYhLPvPkmXH45rFsHM2fCDz/Y2UguuQRefNEO3OkNJTBEREREREQkYERE2FlIoqNdr08GZgADgTLY2UkksKSkwJ13Qr9+MHIk3H47GANBQbBjBzz4oHf7VRcSERERERERCRgREdm3vnD6GigJ9L4A8Yj3Jk+23YHq1YNrr4UmTezYGH/95d3+1AJDREREREREAsYff8DGjTlvsxrYDFS8EAFJnh04YEteKYEhIiIiIiIiAePpp93brkW+RiGBSF1IREREREREpMAq5+8A5IJRAkNEREREREQCQseOcPIktG3r3vazgfn5GZAEFCUwREREREREJCBEREC5cnDkiHvbbwA6ALXyMygJGEpgiIiIiIiISECIiIDERDh40L3tpzke78i3iCSQKIEhIiIiIiIiASEiAvbtg+Rk97bfA6wF7srHmCRwKIEhIiIiIiIiASEiAvbs8azON0BLoFF+BCQBRdOoioiIiIiISECYPRv++cezOt8ACcB44DbAzeEzpABSAkNEREREREQCwhtveF7nKHA50B54AXjYtyFJAFEXEhEREREREfG7kiWhbFnP6pwFDDAECHE8GsdyKXyUwBARERERERG/69ULTp2CSy91v059YCoQ73h+DpgC1PN5dBIIlMAQERERERERv4uIsI+Rke7X+QeIBYphW14UczzXOBiFkxIYIiIiIiIi4ncRERAVBfHxuW+bXhXgU+B3bEKjqu9DkwChBIaIiIiIiIj4nTdTqAL0BYYCvwJlsDORSOGkBIaIiIiIiIj4Xf363iUwnDYDxYFavgpIAo4SGCIiIiIiIuJX1arZriMLFni/j6+B0sABXwUlASegEhgdgG+BQ9gBWPrnsn0dx3aZyw35GKOIiIiIiIj41vPP2y4knTp5v48E4LyvApKAFFAJjNLAVuBRPJu39wagWrqy1PehiYiIiIiIiI+dPQvGwJAhEBJiH42xy70xHHjVpxFKIAmoBMYi4FlgFpDiQb3j2GlynCXR96GJiIiIiIiIj9WvDz//bJMWAGfOwJQpUK+ed/u7gtxb8kvBFVAJDG/NxiYuVgK3+jkWERERERERcU+zZnD11fbn+HgoUQJiY+HIEe/2twm4GAj3UXwSWEL9HUBenAaewE6XkwT0Av4Pm3Gb6mL7QYMGMXjwYABKlizJ+vXrL1CkedekSZMCFa8UbbpepSDR9SoFja5ZKUh0vUpOSpfeTIMGQzEmhOjorhw9egeVK8/hrrui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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "'''Show FEM Solution'''\n", "\n", "import pandas as pd\n", "df1 = pd.read_csv('output_omega_1_0002.csv')\n", "df2 = pd.read_csv('output_omega_2_0002.csv')\n", " \n", "plot_solution(df1, df2, title='Peclet Coupled Variables w/ Dirichlet BC FEM Solution', \n", " u1_legend=r'$u_1$ Quadratic Lagrange', u2_legend=r'$u_2$ Quadratic Lagrange',\n", " u1_flux_legend=r'$u_1$ Diff. Flux Linear Monomial',\n", " u2_flux_legend=r'$u_2$ Diff. Flux Linear Monomial')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Comments:**\n", "\n", "This is a more challenging problem where convection dominates and leads to a boundary layer at the right side of the domain." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### [Compute Error](#toc)\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'coming...'" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'''Flux Error Compared to Exact Dimensionless Solution'''\n", "\n", "'''coming...'''" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## [Application Tree](#toc)\n", "\n", "This tree printout helps the understanding of various pieces of the `MOOSE` application repository created after all the above steps including future implementations in the notebooks following the present one that covers various boundary conditions." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[01;34mengy5310p1\u001b[00m\r\n", "├── LICENSE\r\n", "├── Makefile\r\n", "├── README.md\r\n", "├── \u001b[01;34m__pycache__\u001b[00m\r\n", "│   └── chigger.cpython-38.pyc\r\n", "├── \u001b[01;34mbuild\u001b[00m\r\n", "│   ├── \u001b[01;34mheader_symlinks\u001b[00m\r\n", "│   │   ├── \u001b[01;36mBoundaryEnergy.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/postprocessors/BoundaryEnergy.h\r\n", "│   │   ├── \u001b[01;36mBulkEnergy.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/postprocessors/BulkEnergy.h\r\n", "│   │   ├── \u001b[01;36mConvectionTerm.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/kernels/ConvectionTerm.h\r\n", "│   │   ├── \u001b[01;36mDiffusionFlux.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/auxkernels/DiffusionFlux.h\r\n", "│   │   ├── \u001b[01;36mDiffusionFluxComponent.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/auxkernels/DiffusionFluxComponent.h\r\n", "│   │   ├── \u001b[01;36mDiffusionTerm.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/kernels/DiffusionTerm.h\r\n", "│   │   ├── \u001b[01;36mEngy5310P1App.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/base/Engy5310P1App.h\r\n", "│   │   ├── \u001b[01;36mInterfaceDiffusion.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/interfkernels/InterfaceDiffusion.h\r\n", "│   │   ├── \u001b[01;36mInterfaceJump.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/interfkernels/InterfaceJump.h\r\n", "│   │   ├── \u001b[01;36mInterfaceNormalFluxContinuity.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/interfkernels/InterfaceNormalFluxContinuity.h\r\n", "│   │   ├── \u001b[01;36mNormalFluxBC.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/bcs/NormalFluxBC.h\r\n", "│   │   └── \u001b[01;36mSourceTerm.h\u001b[00m -> /home/dealmeida/OneDrive/uml-courses/engy-5310/2021-01-05-spring/jupynb-repo/notebooks/engy5310p1/include/kernels/SourceTerm.h\r\n", "│   └── \u001b[01;34munity_src\u001b[00m\r\n", "│   ├── auxkernels_Unity.C\r\n", "│   ├── auxkernels_Unity.x86_64-pc-linux-gnu.opt.lo\r\n", "│   ├── auxkernels_Unity.x86_64-pc-linux-gnu.opt.lo.d\r\n", "│   ├── bcs_Unity.C\r\n", "│   ├── bcs_Unity.x86_64-pc-linux-gnu.opt.lo\r\n", "│   ├── bcs_Unity.x86_64-pc-linux-gnu.opt.lo.d\r\n", "│   ├── interfkernels_Unity.C\r\n", "│   ├── interfkernels_Unity.x86_64-pc-linux-gnu.opt.lo\r\n", "│   ├── interfkernels_Unity.x86_64-pc-linux-gnu.opt.lo.d\r\n", "│   ├── kernels_Unity.C\r\n", "│   ├── kernels_Unity.x86_64-pc-linux-gnu.opt.lo\r\n", "│   ├── kernels_Unity.x86_64-pc-linux-gnu.opt.lo.d\r\n", "│   ├── postprocessors_Unity.C\r\n", "│   ├── postprocessors_Unity.x86_64-pc-linux-gnu.opt.lo\r\n", "│   └── postprocessors_Unity.x86_64-pc-linux-gnu.opt.lo.d\r\n", "├── \u001b[01;32mengy5310p1-opt\u001b[00m\r\n", "├── heat.hit~\r\n", "├── \u001b[01;34minclude\u001b[00m\r\n", "│   ├── \u001b[01;34mauxkernels\u001b[00m\r\n", "│   │   ├── DiffusionFlux.h\r\n", "│   │   ├── DiffusionFlux.h~\r\n", "│   │   ├── DiffusionFluxComponent.h\r\n", "│   │   └── DiffusionFluxComponent.h~\r\n", "│   ├── \u001b[01;34mbase\u001b[00m\r\n", "│   │   └── Engy5310P1App.h\r\n", "│   ├── \u001b[01;34mbcs\u001b[00m\r\n", "│   │   └── NormalFluxBC.h\r\n", "│   ├── \u001b[01;34minterfkernels\u001b[00m\r\n", "│   │   ├── InterfaceDiffusion.h\r\n", "│   │   ├── InterfaceJump.h\r\n", "│   │   ├── InterfaceJump.h~\r\n", "│   │   ├── InterfaceNormalFluxContinuity.h\r\n", "│   │   ├── InterfaceNormalFluxContinuity.h~\r\n", "│   │   └── InterfaceReaction\r\n", "│   ├── \u001b[01;34mkernels\u001b[00m\r\n", "│   │   ├── ConvectionTerm.h\r\n", "│   │   ├── ConvectionTerm.h~\r\n", "│   │   ├── DiffusionTerm.h\r\n", "│   │   ├── SourceTerm.h\r\n", "│   │   └── SourceTerm.h~\r\n", "│   └── \u001b[01;34mpostprocessors\u001b[00m\r\n", "│   ├── BoundaryEnergy.h\r\n", "│   └── BulkEnergy.h\r\n", "├── input-test.hit\r\n", "├── input.hit\r\n", "├── input.hit~\r\n", "├── \u001b[01;34mlib\u001b[00m\r\n", "│   ├── \u001b[01;32mlibengy5310p1-opt.la\u001b[00m\r\n", "│   ├── \u001b[01;36mlibengy5310p1-opt.so\u001b[00m -> \u001b[01;32mlibengy5310p1-opt.so.0.0.0\u001b[00m\r\n", "│   ├── \u001b[01;36mlibengy5310p1-opt.so.0\u001b[00m -> \u001b[01;32mlibengy5310p1-opt.so.0.0.0\u001b[00m\r\n", "│   └── \u001b[01;32mlibengy5310p1-opt.so.0.0.0\u001b[00m\r\n", "├── mesh_test.i\r\n", "├── output_omega_1_0002.csv\r\n", "├── output_omega_2_0002.csv\r\n", "├── partition-test.i\r\n", "├── \u001b[01;34msrc\u001b[00m\r\n", "│   ├── \u001b[01;34mauxkernels\u001b[00m\r\n", "│   │   ├── DiffusionFlux.C\r\n", "│   │   ├── DiffusionFlux.C~\r\n", "│   │   ├── DiffusionFluxComponent.C\r\n", "│   │   └── DiffusionFluxComponent.C~\r\n", "│   ├── \u001b[01;34mbase\u001b[00m\r\n", "│   │   ├── Engy5310P1App.C\r\n", "│   │   ├── Engy5310P1App.x86_64-pc-linux-gnu.opt.lo\r\n", "│   │   └── Engy5310P1App.x86_64-pc-linux-gnu.opt.lo.d\r\n", "│   ├── \u001b[01;34mbcs\u001b[00m\r\n", "│   │   ├── NormalFluxBC.C\r\n", "│   │   └── NormalFluxBC.C~\r\n", "│   ├── \u001b[01;34minterfkernels\u001b[00m\r\n", "│   │   ├── InterfaceJump.C\r\n", "│   │   ├── InterfaceJump.C~\r\n", "│   │   ├── InterfaceNormalFluxContinuity.C\r\n", "│   │   └── InterfaceNormalFluxContinuity.C~\r\n", "│   ├── \u001b[01;34mkernels\u001b[00m\r\n", "│   │   ├── ConvectionTerm.C\r\n", "│   │   ├── ConvectionTerm.C~\r\n", "│   │   ├── DiffusionTerm.C\r\n", "│   │   ├── DiffusionTerm.C~\r\n", "│   │   ├── SourceTerm.C\r\n", "│   │   └── SourceTerm.C~\r\n", "│   ├── main.C\r\n", "│   ├── main.C~\r\n", "│   ├── main.x86_64-pc-linux-gnu.opt.lo\r\n", "│   ├── main.x86_64-pc-linux-gnu.opt.lo.d\r\n", "│   └── \u001b[01;34mpostprocessors\u001b[00m\r\n", "│   ├── BoundaryEnergy.C\r\n", "│   └── BulkEnergy.C\r\n", "├── subdom_test2.i\r\n", "├── \u001b[01;34mtest\u001b[00m\r\n", "│   └── \u001b[01;34mlib\u001b[00m\r\n", "│   ├── \u001b[01;32mlibengy5310p1_test-opt.la\u001b[00m\r\n", "│   ├── \u001b[01;36mlibengy5310p1_test-opt.so\u001b[00m -> \u001b[01;32mlibengy5310p1_test-opt.so.0.0.0\u001b[00m\r\n", "│   ├── \u001b[01;36mlibengy5310p1_test-opt.so.0\u001b[00m -> \u001b[01;32mlibengy5310p1_test-opt.so.0.0.0\u001b[00m\r\n", "│   └── \u001b[01;32mlibengy5310p1_test-opt.so.0.0.0\u001b[00m\r\n", "└── vtkviz.py\r\n", "\r\n", "21 directories, 94 files\r\n" ] } ], "source": [ "!tree engy5310p1" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "220.75px" }, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }