\n",
"1. [Energy Postprocessing](#energypostpro)\n",
" + [Code the Energy Postprocessor](#postpro)\n",
"
\n",
"1. [Application Tree](#tree)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## [Objectives](#toc)\n",
"\n",
" + This is a continuation of the Poisson 1D problem with Dirichlet boundary conditions detailed in [Notebook 06](https://nbviewer.jupyter.org/github/dpploy/engy-5310/blob/main/notebooks/06-poisson-1d-dirichlet.ipynb); some information may not be duplicated here.\n",
" + Introduce the Galerkin variational (weak) form of the Poisson 1D problem below ([OneNote notes here](https://studentuml-my.sharepoint.com/:o:/g/personal/valmor_dealmeida_uml_edu/Eib-vZHIpRlPlOMtz0Gf_asBegEFKsl9dOK4nHyDbgSeUA?e=sLu1td)).\n",
" + Introduce the use of combined Dirichlet and Neumann boundary conditions.\n",
" + Use second order accurate finite element Lagrange basis functions to solve the problem numerically.\n",
" + Some initial code is provided in the course repository but no full source code is given out. If you do not do a minimum of programing you will not learn basic aspects of this subject. Hands-on work during lectures will fill in this gap. If you do all the steps proposed in this notebook and attend the working lectures you will only have an initial knowledge of the subject."
]
},
{
"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(df, \n",
" title='No Title', \n",
" basis_functions_type='No basis functions type',\n",
" flux_basis_functions_type='No basis functions type'):\n",
" \n",
" import matplotlib.pyplot as plt\n",
" %matplotlib inline\n",
" plt.style.use('dark_background')\n",
"\n",
" (fig, ax1) = plt.subplots(1, figsize=(14, 5))\n",
"\n",
" ax1.plot(df['x'], df['u'],'r*-',label=basis_functions_type)\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 'diffFluxU_x' in df.columns:\n",
" # create a twin x axis to be shared\n",
" ax2 = ax1.twinx()\n",
"\n",
" ax2.plot(df['x'], df['diffFluxU_x'],'*-', color='yellow', label=flux_basis_functions_type)\n",
"\n",
" ax2.set_ylabel(r\"$q_h(x)$ [g/cm2-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": "code",
"execution_count": 2,
"metadata": {
"code_folding": [
2
]
},
"outputs": [],
"source": [
"'''Plot Function for Error Compared to Exact Dimensionless Solution'''\n",
"\n",
"def plot_solution_error(df, fem_type='No FEM type'):\n",
" \n",
" from engy_5310.toolkit import engy5310_p1_exact_solution\n",
"\n",
" import matplotlib.pyplot as plt\n",
" %matplotlib inline\n",
" plt.style.use('dark_background')\n",
" \n",
" (u_hat, _, _) = engy5310_p1_exact_solution(x_a, x_b, u_a, u_b, diff_coeff, source_s)\n",
"\n",
" L = df['x'].max() - df['x'].min()\n",
" x_mean = (df['x'].max() + df['x'].min())/2.0\n",
" x_hat = (df['x'] - x_mean)/L\n",
" a_hat = u_a/source_s*diff_coeff/L**2\n",
" b_hat = u_b/source_s*diff_coeff/L**2\n",
"\n",
" uh_hat = df['u']/source_s*diff_coeff/L**2\n",
"\n",
" plt.figure(1, figsize=(14, 5))\n",
" \n",
" plt.plot(x_hat, uh_hat,'r-*',label=fem_type)\n",
" \n",
" plt.plot(x_hat, u_hat(x_hat, a_hat, b_hat), 'x', color='yellow', label='Exact Solution')\n",
"\n",
" plt.plot(x_hat, uh_hat-u_hat(x_hat, a_hat, b_hat), 'x', color='magenta', label=r'$\\hat{u}_h-\\hat{u}$')\n",
" \n",
" plt.title('Dimensionless FEM Solution and Error', fontsize=20)\n",
" plt.ylabel(r'$\\hat{u}_h, \\hat{u}$', fontsize=18)\n",
" plt.xlabel(r'$\\hat{x}$', fontsize=18)\n",
" plt.xticks(fontsize=16)\n",
" plt.yticks(fontsize=16)\n",
" plt.legend(loc='best',fontsize=12)\n",
" plt.grid(True)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"code_folding": [
2
]
},
"outputs": [],
"source": [
"'''Plot Function for Error Compared to Exact Dimensionless Solution'''\n",
"\n",
"def plot_flux_error(df, fem_type='No FEM type'):\n",
" \n",
" from engy_5310.toolkit import engy5310_p1_exact_solution\n",
" \n",
" import matplotlib.pyplot as plt\n",
" %matplotlib inline\n",
" plt.style.use('dark_background')\n",
" \n",
" (_, flux_hat, _) = engy5310_p1_exact_solution(x_a, x_b, u_a, u_b, diff_coeff, source_s)\n",
"\n",
" L = df['x'].max() - df['x'].min()\n",
" x_mean = (df['x'].max() + df['x'].min())/2.0\n",
" x_hat = (df['x'] - x_mean)/L\n",
" \n",
" a_hat = u_a/source_s*diff_coeff/L**2\n",
" b_hat = u_b/source_s*diff_coeff/L**2\n",
"\n",
" flux_h_hat = df['diffFluxU_x']/source_s/L\n",
"\n",
" plt.figure(1, figsize=(14, 5))\n",
" \n",
" plt.plot(x_hat, flux_h_hat, 'r-*', label=fem_type)\n",
" \n",
" plt.plot(x_hat, flux_hat(x_hat, a_hat, b_hat), 'x', color='yellow', label='Exact Solution')\n",
"\n",
" plt.plot(x_hat, flux_h_hat-flux_hat(x_hat, a_hat, b_hat),'x',color='magenta',label=r'$\\hat{q}_h-\\hat{q}$')\n",
" \n",
" plt.title('Dimensionless FEM Solution and Error', fontsize=20)\n",
" plt.ylabel(r'$\\hat{q}_h, \\hat{q}$', fontsize=18)\n",
" plt.xlabel(r'$\\hat{x}$', fontsize=18)\n",
" plt.xticks(fontsize=16)\n",
" plt.yticks(fontsize=16)\n",
" plt.legend(loc='best',fontsize=12)\n",
" plt.grid(True)\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## [Problem Statement](#toc)\n",
"\n",
"The following sections describe what is referred in the literature as the one-dimensional Poisson problem with Dirchlet-Neumann boundary conditions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Strong Form of Problem Statement](#toc)\n",
"\n",
"Solve the Poisson model problem. Find $u:[a,b]\\subset\\Reals\\rightarrow\\Reals$ for $D > 0$ such that:\n",
"\n",
"\\begin{align*}\n",
" -\\bigl(-D\\, u'\\bigr)'(x) + S &= 0 \\quad \\forall \\quad x\\in [a,b], \\\\\n",
" u(a) &= A, \\\\\n",
" q_n(b) &= q_{nb}.\n",
"\\end{align*}\n",
" \n",
"Solve this problem analytically for the constants: diffusion coefficient, $D$, source, $S$, entry concentration, $A$, and exit normal flux, $q_{nb}$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Natural (Normal Flux) Boundary Condition Case (Neumann)](#toc)\n",
"\n",
"The diffusion flux associated to $u$ is defined as\n",
"\n",
"\\begin{equation*}\n",
" q(x) := -D\\,u'(x).\n",
"\\end{equation*}\n",
"\n",
"The normal diffusion flux evaluated at boundary points is defined in 1D as:\n",
"\n",
"\\begin{align*}\n",
" q_n(a) &:= - q(a), \\quad \\text{the normal flux at $a$ is equal to the negative of the flux at $a$}, \\\\\n",
" q_n(b) &:= q(b) \\quad \\text{the normal flux at $b$ is equal to the flux at $b$}.\n",
"\\end{align*}\n",
"\n",
"Therefore a positive value of normal flux $q_n$ at any boundary point indicates that the quantity $u$ is removed at the boundary. Otherwise, when $q_n$ is negative, $u$ is greater at the boundary as compared to the interior. The *normal* qualification here refers to the direction of the outward pointing vector at the boundary. Since this is a 1D problem, at the exit $b$, the normal aligns with the coordinate $x$ direction. At $a$ the normal is pointing in the opposite direction of the coordinate system; therefore the minus sign in the above definition.\n",
"\n",
"In the literature, the **Neumann boundary condition** is given on the *normal derivative* (or normal gradient) of the unknown variable. This is not the same as the normal diffusion flux but related.\n",
"\n",
"Here we will employ a mix of Dirichlet boundary condition on the entry point and a normal flux boundary condition on the exit point. That is:\n",
"\n",
"\\begin{align*}\n",
" u(a) &= A, \\\\\n",
" -D\\,u'(b) &= q_n(b) = q_{nb},\n",
"\\end{align*}\n",
"\n",
"where $q_b$ is the value to be specified. If this value is positive, $u$ will be depleted at the boundary."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Variational Form of Problem Statement](#toc)\n",
"\n",
"The Galerkin weak formulation is as follows. Find $u \\in H^1\\!\\bigl([a,b]\\bigr)$ so that \n",
"\n",
"\\begin{align*}\n",
" \\int\\limits_a^b -D\\, u'(x)\\,v'(x)\\,dx - q_n(b)\\,v(b) + \\int\\limits_a^b S\\,v(x)\\,dx &= 0 \\quad \\forall \\quad v \\in H^1_0\\!\\bigl([a,b]\\bigr), \n",
"\\end{align*}\n",
"\n",
"where $H^1\\!\\bigl([a,b]\\bigr) := \\bigl\\{ u:[a,b]\\subset\\Reals\\rightarrow \\Reals \\mid \\int_a^b u'^2\\,dx < \\infty \\bigr\\}$ and \n",
"$H^1_0\\!\\bigl([a,b]\\bigr) := \\bigl\\{ v \\mid v \\in H^1\\!\\bigl([a,b]\\bigr), v(a) = 0 \\bigr\\}$. This variational form is a modified Galerkin's weak form including the Neumann boundary condition."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Poisson-Dirichlet Energy](#toc)\n",
"\n",
"The associated energy that the variational form minimizes is the **mixed Dirichlet/Neumann total energy**:\n",
"\n",
"\\begin{align*}\n",
" \\Phi[u] := \\int\\limits_a^b \\,\\frac{1}{2}\\bigl(q(x)\\bigr)^2 - D\\,S\\,u(x) \\,dx + D\\,q_n(b)\\,u(b).\n",
"\\end{align*}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## [Problem Solution](#toc)\n",
"\n",
"The previously developed code for the Dirichlet boundary condition (Notebook 06) case remains unchanged and usable.\n",
"To setup the new term in the weak form, there exist two options (you should do both): \n",
"\n",
" 1. The first, is to use the internal `MOOSE` framework implementation of the `NeumannBC` type in the boundary condition block of the input file. Start by just modifying your `MOOSE` boundary condition block in the input file as described [below](#moosefluxbc).\n",
" 1. The second, involves the implementation of a new MOOSE kernel to be added to the weak form terms. This is the approach followed [here](#fluxbc) and there is a template in the course repository, `EquationFluxBC` which can be used as a starting point. In the Input file blocks shown below, the `type = NormalFluxBC` was created in the `Engy5310P1App` for this example. This approach implements an extended version of the normal diffusion flux [(see also Notebook 08)](https://nbviewer.jupyter.org/github/dpploy/engy-5310/blob/main/notebooks/08-poisson-1d-robin.ipynb).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Use Neumann Boundary Condition from MOOSE](#toc)\n",
"\n",
"```\n",
"[BCs]\n",
" [entry]\n",
" type = DirichletBC # part of MOOSE\n",
" variable = u\n",
" boundary = left\n",
" value = 3.00000e+00\n",
" []\n",
" [exit]\n",
" type = NeumannBC # part of MOOSE\n",
" variable = u\n",
" boundary = right\n",
" value = 4.10000e-01 # part of MOOSE\n",
" []\n",
"[]\n",
"\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Code a Normal Flux Boundary Condition Kernel](#toc)\n",
"\n",
"To make this useful for the Robin boundary condition case later (Notebook 08), implement a linear transfer function as follows:\n",
"\n",
"\\begin{equation*}\n",
" q_n(x) = q_\\text{bias} + h\\,\\bigl(u(x) - u_\\infty\\bigr).\n",
"\\end{equation*}\n",
"\n",
"but set $h$ to zero at the moment.\n",
"\n",
"1. `cd include`\n",
"1. `mkdir bcs`\n",
"1. `cd bcs`\n",
"1. Create a `NormalFluxBC.h` class interface as folows:\n",
" + Use the `EquationFluxBC.h` [course template](https://github.com/dpploy/engy-5310/blob/main/moose-app-templates/EquationFluxBC.h) as follows:\n",
" + `cp *path-to*/moose-app-templates/EquationFluxBC.h .`\n",
" + `mv EquationFluxBC.h NormalFluxBC.h`\n",
" + Edit the file `NormalFluxBC.h` with a text editor by replacing all instances of `EquationFluxBC` with `NormalFluxBC`.\n",
" + Suggestion: you will need to declare member variables named `_bias`, `_transferCoeff`, `_reference`, as `Real` data type.\n",
"1. `cd ../..`\n",
"1. `cd src`\n",
"1. `mkdir kernels`\n",
"1. `cd kernels`\n",
"1. Create a `NormalFluxBC.C` class implementation as follows:\n",
" + Use the `EquationFluxBC.C` [course template](https://github.com/dpploy/engy-5310/blob/main/moose-app-templates/EquationFluxBC.C) as follows.\n",
" + `cp *path-to*/moose-app-templates/EquationFluxBC.C .`\n",
" + `mv EquationFluxBC.C NormalFluxBC.C`\n",
" + Edit the file `EquationFluxBC.C` with a text editor by replacing all instances of `EquationFluxBC` with `NormalFluxBC`.\n",
" + You will need to program the *residual* and *Jacobian* methods. This portion of the implementation is covered in class."
]
},
{
"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": [
"## [\"Draining\" Boundary Condition (input file)](#toc)\n",
"\n",
"The *draining* boundary condition uses a positive normal diffusion flux at the exit point, therefore there exists diffusion *removal* of material at that point.\n",
"\n",
"Using the previous `input.hit` input file (edit with a text editor), the `exit` block was modified as follows:\n",
"\n",
"```\n",
"[BCs]\n",
" [entry]\n",
" type = DirichletBC # part of MOOSE\n",
" variable = u\n",
" boundary = left\n",
" value = 3.00000e+00\n",
" []\n",
" [exit]\n",
" type = NormalFluxBC # user built\n",
" variable = u\n",
" boundary = right\n",
" bias = 4.10000e-01 # user built\n",
" []\n",
"[]\n",
"\n",
"```\n",
"\n",
"\n",
"Save the input file in the `.../engy5310p1/` directory."
]
},
{
"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`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### [Quadratic Lagrange FEM](#toc)\n",
"\n",
"Solve problem with parameter values:\n",
"\n",
"> + a = 0 cm\n",
"> + b = 25 cm\n",
"> + A = 3 g/cc\n",
"> + qn_b = 0.41 g/cm^2-s (the bias parameter)\n",
"> + D = 0.1 cm^2/s\n",
"> + S = 5e-2 g/cc-s\n",
"\n",
"FEM parameters:\n",
"\n",
"> + Basis Functions: Second Order Lagrangian\n",
"> + num. of finite elements: 1"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"'''Domain'''\n",
"\n",
"x_left = 0\n",
"x_right = 25\n",
"\n",
"x_length = x_right - x_left"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"'''Parameters and data'''\n",
"\n",
"diff_coeff = 0.1\n",
"source_s = 5e-2\n",
"\n",
"u_left = 3\n",
"qn_right = 0.41 # draining on the exit boundary; normal diffusion flux is positive"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"'''FEM Solution'''\n",
"\n",
"n_felem = 1\n",
"\n",
"order = 'second'\n",
"\n",
"n_plot_pts = 2*n_felem + 1\n",
"n_plot_pts = 10\n",
"\n",
"try: \n",
" from engy_5310.toolkit import write_engy5310_p1_1d_input_file \n",
"except ModuleNotFoundError:\n",
" assert False, 'You need to provide your own code here. Bailing out.'\n",
"\n",
"write_engy5310_p1_1d_input_file(x_left=x_left, x_right=x_right, u_left=u_left, qn_bias_right=qn_right, \n",
" diff_coeff=diff_coeff, source_s=source_s, n_felem=n_felem, order=order, \n",
" n_plot_pts=n_plot_pts, compute_diffusion_flux=True)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"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",
"# 19Apr21 13:07:16\r\n",
"\r\n",
"# Parameters\r\n",
"xmin = 0.00000e+00\r\n",
"xmax = 2.50000e+01\r\n",
"diff_coeff = 1.00000e-01\r\n",
"source_s = 5.00000e-02\r\n",
"u_left = 3.00000e+00\r\n",
"qn_bias_right = -5.00000e-01\r\n",
"\r\n",
"[Problem]\r\n",
" type = FEProblem\r\n",
" coord_type = XYZ\r\n",
"[]\r\n",
"\r\n",
"[Mesh]\r\n",
" [1d]\r\n",
" type = GeneratedMeshGenerator\r\n",
" dim = 1\r\n",
" xmin = ${replace xmin}\r\n",
" xmax = ${replace xmax}\r\n",
" nx = 1\r\n",
" elem_type = edge3\r\n",
" []\r\n",
"[]\r\n",
"\r\n",
"[Variables]\r\n",
" [u]\r\n",
" order = second\r\n",
" family = lagrange\r\n",
" initial_condition = ${replace u_left}\r\n",
" []\r\n",
"[]\r\n",
"\r\n",
"[AuxVariables]\r\n",
" [diffFluxU]\r\n",
" order = FIRST\r\n",
" family = MONOMIAL_VEC\r\n",
" []\r\n",
" [diffFluxU_x]\r\n",
" order = FIRST\r\n",
" family = MONOMIAL\r\n",
" []\r\n",
"[]\r\n",
"\r\n",
"[Kernels]\r\n",
" [diffusion-term]\r\n",
" type = DiffusionTerm\r\n",
" variable = u # produced quantity\r\n",
" diffCoeff = ${replace diff_coeff}\r\n",
" []\r\n",
" [source-term]\r\n",
" type = SourceTerm\r\n",
" variable = u # add to produced quantity\r\n",
" sourceS = ${replace source_s}\r\n",
" []\r\n",
"[]\r\n",
"\r\n",
"[AuxKernels]\r\n",
" [diffusion-flux]\r\n",
" execute_on = timestep_end\r\n",
" type = DiffusionFlux\r\n",
" field = u\r\n",
" diffCoeff = ${replace diff_coeff}\r\n",
" variable = diffFluxU # produced quantity\r\n",
" []\r\n",
" [diffusion-flux-x]\r\n",
" execute_on = timestep_end\r\n",
" type = VectorVariableComponentAux\r\n",
" variable = diffFluxU_x # produced quantity\r\n",
" component = x\r\n",
" vector_variable = diffFluxU \r\n",
" []\r\n",
"[]\r\n",
"\r\n",
"[BCs]\r\n",
" [entry]\r\n",
" type = DirichletBC\r\n",
" variable = u\r\n",
" boundary = left\r\n",
" value = 3.00000e+00\r\n",
" []\r\n",
" [exit]\r\n",
" type = NormalFluxBC\r\n",
" variable = u\r\n",
" boundary = right\r\n",
" bias = ${replace qn_bias_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",
" [x-data]\r\n",
" type = LineValueSampler\r\n",
" execute_on = 'timestep_end final'\r\n",
" variable = 'u diffFluxU_x' # output data\r\n",
" start_point = '${replace xmin} 0 0'\r\n",
" end_point = '${replace xmax} 0 0'\r\n",
" num_points = 10\r\n",
" sort_by = id\r\n",
" []\r\n",
"[]\r\n",
"\r\n",
"[Outputs]\r\n",
" console = true\r\n",
" [file-x-data]\r\n",
" type = CSV\r\n",
" file_base = 'output'\r\n",
" execute_on = 'final'\r\n",
" show = 'x-data'\r\n",
" []\r\n",
"[]\r\n"
]
}
],
"source": [
"'''Display MOOSE input file created'''\n",
"\n",
"!cat engy5310p1/input.hit"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"\n",
"Framework Information:\n",
"MOOSE Version: git commit 52562be492 on 2021-04-09\n",
"LibMesh Version: 27141d18f3137f77e33cdb3d565fd38ebfbfc46f\n",
"PETSc Version: 3.15.0\n",
"SLEPc Version: 3.14.2\n",
"Current Time: Mon Apr 19 13:07:34 2021\n",
"Executable Timestamp: Sat Apr 17 21:27:24 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: 3\n",
" Local: 3\n",
" Elems: \n",
" Total: 1\n",
" Local: 1\n",
" Num Subdomains: 1\n",
" Num Partitions: 1\n",
"\n",
"Nonlinear System:\n",
" Num DOFs: 3\n",
" Num Local DOFs: 3\n",
" Variables: \"u\" \n",
" Finite Element Types: \"LAGRANGE\" \n",
" Approximation Orders: \"SECOND\" \n",
"\n",
"Auxiliary System:\n",
" Num DOFs: 4\n",
" Num Local DOFs: 4\n",
" Variables: \"diffFluxU\" \"diffFluxU_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[32m1.093700e+00\u001b[39m\n",
" 0 Linear |R| = \u001b[32m1.093700e+00\u001b[39m\n",
" 1 Linear |R| = \u001b[32m3.044605e-07\u001b[39m\n",
" 1 Nonlinear |R| = \u001b[32m3.185802e-08\u001b[39m\n",
" 0 Linear |R| = \u001b[32m3.185802e-08\u001b[39m\n",
" 1 Linear |R| = \u001b[32m7.732334e-15\u001b[39m\n",
" 2 Nonlinear |R| = \u001b[32m3.540550e-15\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": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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ktq9ezfff/89Xbp0YdWqVUycOJFSpUrRvn175s6dm2ZP/zfffEOtWrV47LHHWL16NQBr1qzh6aef5tNPP2Xo0KF06tQp12IODQ1NMwkF+wDsu+++y/D5O3bsSChYdjruuece3n33XdatW8eiRYsICwujePHiXHzxxVxzzTUEBgby1FNPJZvD/X//938sWLCA9957j+uuu45ly5ZRo0YNbrvtNk6dOkX37t2z9KHBe++9x/XXX8/48eMZNWoUBw8e5KqrrqJOnTrMmjUroTc+3rFjx1i8eDEtWrRgxIgRbNiwgdjYWCZMmMDatWvTfZ2uXbsybdo0Ro0axfjx4/nnn3+44IILCA0N5ciRI3Tp0iVPpoyIiOQkz0vJq6mpFYyW0okTJ9y+ffvcsmXL3ODBg93111+f7vrDGS2vldFyWGktsxbf7r77bjd79mwXHh7uIiMj3ebNm92IESPcZZddlnBMdpZwSmuJoPhWr149N3ToULd161Z34sQJd+DAAbd27Vr3xRdfuNatWyc7NjAw0L3xxhtu06ZNCeuVz5o1ywUHB7uDBw+68ePH59nvOmXr2rWrW7lypYuIiHD79u1zY8aMcfXq1UtYoqhly5aZ/p7SOxbSX1IpO9dBetdA1apV3bfffuv27t3rjh8/7lauXOm6dOnibrnlFuecc0888USWruuUy6ylbHXr1nXR0dHOubSXgitcuLB74YUX3Nq1a93x48fdkSNH3Lx589ydd96Z5d9LVven9e+Q0e8pKCjIPfnkk+6vv/5yx48fd2FhYW7YsGGuZs2a2VoKK7140/s/mtVrs1ChQu6dd95xO3bscFFRUW7jxo2ud+/eLigoKNXP/OijjzrnnBs3blyar/HLL78455zr1atXjseflWXWUv77OJe4zFpmzddl1ho0aOBefPFFN2PGDLd582Z3/PhxFxkZ6f799183YsQI16xZszSfV7VqVffZZ5+5rVu3uqioKLdv3z43duxYd/nll6c6NqP30JtuusktXbrURUZGuv3797uRI0eme20B7pxzznETJkxw+/fvd7GxscnOm9H7wPnnn++GDRvmdu3a5U6ePOl27drlhg8f7s4///xUx2bnfUlNTU0tj5vnAaipqampJWlt27Z1zjnXrVs3z2MpiO311193zjl33XXXeR6LmpqampqamlrSpjnoIiJ+pnPnzsTE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n3Q/wA033EC/fv04//zzCQwMpFixYqxdm7UFuGrUqMGmTZuydGx6AgMDeeONN7jtttuoUKECp+LKMpYvX56iRYsSEhKSLOaU8ae17amnnuLBBx+katWqOOcoVapUwu8IYPfu3QnfHz9+nKJFixIUFETVqlX577//0j13rVq16Nq1K4899ljCtkKFClG1atVs/vSn7zJgBHARMBC4etgwVufAECURyVlFikDbtrY++U032R/9qCiYNg3eeAN+/RX27vU6ShE5Uz3pww3zZ59Bz54QGWlzfH/5BR7JqRvmbEh5Xxd/X5bZfVtG99SQ9j1nWnbs2MG///7LgAED2LhxIzt37ky2v2rVqqxI8mnrsWPHOHDgANWqVUu4V0/5M5QoUSLhuUnv53ft2kVISAiVkkz+35MkY42MjEz1OP5cKWV2v5wbDhywlpnly20N8rZtYeRI21atGtStCwszmQv95JM2XL19e6vmfjpiYuD3363973/QpIn9He/SBd5+O+vnyTRBf/U0gizoKgJfYGu39yR1AbvT8ccffxAVFcXNN9/MTz/9lLC9WLFitGvXjpdeegmw/7TFihVL2F85yUSLmjVrMmTIENq0acMff/zBqVOnWLlyZUKxt7CwMGrUqJHs+JScSxwHUahQIX755Re6dOnC+PHjE3qN48+X9Ni07NixI9knjdlx991306lTJ6699lq2bt1K6dKlCQ8PJyAggH379hEdHU316tUT5pcn/fnS+pmaN2/O888/T5s2bfjrr79wznHw4MEsFcQLCwujWooFFpN+CLFjxw7eeOMNBgwYcDo/co4IBJ7D/j/vBa4FZgBLk8y7EhFvlS0LN95of8yvvx6KF4fwcJg40ea4/f67fVIvIpKfVKxoxbQGD7ZE3Zc5wXkpo/u2zO6pIfP74KSGDRvGN998Q/fu3VPt27VrV7Le8mLFinHWWWel6hRKS8rnVqlShejoaPbs2UP16tWzHF9Kp3O/nBeOHLHaK+++ax9exy+ztmYNTJ+eeNz06dbj3qePPX7mGfvQ+957bd3y+M8xIiPtnKdr0SJrvXv79rwsDXGXtN0KPIpVv3407nFOOXLkCP379+fjjz/m+uuvJzg4mFq1avHTTz+xf/9+vv/+ewBWrVpF+/btKVu2LJUqVaJXr14J5yhevDjOuYTe9m7dulGvXr2E/aNHj+bxxx+nWrVqlClTht6ZXD2FChWicOHC7Nu3j5iYGG644Qauu+66hP179uzhrLPOSihGkdL333/Ptddey2233UZQUBDlypVLGC6eluDgYAoXLpzQgoODKVmyJFFRURw4cIBixYolexM9deoUY8aM4ZVXXqFo0aJccMEFdOnSJcOfqWTJksTExLBv3z6Cg4Pp27dvuvGn9McffxAbG8ujjz5KUFAQHTt2TPYBxJAhQ/i///u/hG3FihWjffv26X4ymVtqYSsNvAmMwSq1z8jTCEQkPTVqwKOP2k3D3r0wbBhceaUVe2vb1m5s770Xfv5ZybmI5E+33mrvc2vW2Ndbc/KGOYmQkJBk942+rtaT0X1bZvfUvho1ahTXXXcdo0ePTrXvhx9+oHv37lx66aUUKlSIAQMGsHjx4jRHuqY0cuRInnzySWrXrk3x4sXp1asXo0aNSnPKrC9O5345rzz5JIwZk7iueUSEjUBLugb6OedAknp7PPKIjeoYPdqGyce3Dz/M+/iTUoLux95991369OnDe++9x9GjR9m6dSvFihXj2muv5fjx4wAMHz6c1atXs3XrVqZOncqoUaMSnr9u3Tref/99/vjjD/bs2cMll1zCgiRjN4YMGcKUKVNYvXo1K1asYMyYMRnGExERweOPP87o0aM5dOgQd999NxOSlDlcv349I0eOZPPmzRw6dChZxUmwTybbt2/P008/zcGDB1m1alWGCfoXX3zBiRMnEtrQoUMZNmwY27Zt47///uPvv/9m0aJFyZ7z6KOPUrp0aXbv3s3w4cMZOXIkUVFR6b7GlClTmDx5Mhs2bGDbtm2cOHEiy0OUoqOjufnmm3nggQcIDw/n3nvv5bfffkt4veXLl9OjRw8++eQTDh06xL///ku3bt2ydO6c0gX7AKk+cC9wJ1o+TcRr9erBSy/BsmWwfTt8/LHdMLzzDlxxRfKkPTra62hFRPKHyZMnJ7tvTK+Senoyum/L7J7aVydOnGDGjBlpzlWfOXMmffv25ZdffiEsLIxzzjmHO++8M0vn/eabbxg+fDhz585ly5YtnDx5MtmQ/ew6nfvlvBIVZXPJy5e3EWgdO9pSa0nVqQNJBy3UqQMBAalbGgMb0jVjRvpt2jT7gP2FF+wDd19kq7pcfmtZreLuVUtZxT2t1r17d7d9+3ZXo0YNz+PNL+2tt95y3377bZ693qJFi1y3bt2y9dycvBbLgRuNrSwwG1zNdI4rKJVl1fJfO5OuvcBAXLNmuHffxW3cmFh5dsEC3LPP4s4/3/sYz5R2Jl13av7TCsp15y/3zGpZb1nJL/KiZbeKe35oM2fidu7Excbi/v3X/rb/+6893rkTt3w57vhx3N69uLp1s3ZO9aDnI0OHDqVPnz5cddVVXofity644IKENSsbN27MAw88wNixY3Pt9a6++moqVapEUFAQXbp0oX79+vz++++59npZ0RZYC3QCngeuAbZ7GpHImadwYejQAYYMgbAwmD/fPtnfuBEeesh6zJs1s/lyGzZ4Ha2IiIhkxwcfwIkT0KgRnHuu/W0/91xo3Ni29+9vq63s22fz3bMi0yJx4l9SLsUgyZUsWZKRI0dStWpV9u7dy/vvv8/48eNz7fUuuOACRo8eTYkSJdi0aRO33nprssqaeakI8BbwBPAX0AFY5UkkImemMmWsCmxoKLRrByVKWJGZ+CJvkyfD0aMeBykiIiI55vXX4ZVXYNWq5NtXrLDk/PXXoX59+0D+vfeydk4l6FKgLFu2jPPOOy/PXm/IkCEMGTIkz14vPQ2w5dMuBj4EegPpr8ApIjmlWjXo1MmS8latICTEesxHjICxY2H2bFv6RURERAqe88+H/fvT3rdvn/WmA2zaZHPjs0IJukg+Fgg8A7wG7AeuA6Z5GpFIwVe3riXknTvbEDaA9evh/fetp3zJEvBhtR0RERHJp7ZuhQcftKVQU+rZ0/aDFa/LyprukM0E/Tysp64iNpN9H/An8G92TuYx5xxBQUGnvfyAyOkICgryaf1MsOXThgFXAz8B/wcczPnQRM54AQHQpIkl5aGh9mk5JK5tOm6cJegiIgWZ7pklO0JCQjiVdK2zAubVV23U3OrV8MsvtmRqxYpwyy22asvdd9tx114Lixdn7ZxZTtAvxBKA24C4NdyJX5o+Pq3YA4wGvgT+yeqJPbZ161Y6dOjAxIkT9YYjnggKCqJDhw5sjf+ILQvuBT7B/g92AYbnTmgiZ6xCheCaa6yXvGNHqFzZljybORMGDoQJE2DXLq+jFBHJO7pnFl8EBgZSvnx57rnnHv766y+vw8k1P/5oQ9z794c+fWyqW3S0LaV63XW23BrAU09BVv/bZJqgnw28DXQGIoF5wB/AJuAAliCUA84FmgAPAo8BY7AK0lt8+Qk9MGjQIHr16sUtt9xCQEBA5k/IJVWqVCEsLMyz1xfvOOfYunUrgwYNyvTYssAXwO3Y/8X7gG25Gp1IwVa5sv1xveMOiIxMLPLWvj2ULGlF3SZNSizydviw1xGLiHjDX+6ZJeu8zC+ccxw5coQ5c+Ywbtw4T2LIK9OnWwsIsKHs+/ennuoWFeXbOTNch+0EuKXg7gVXLAvrthUD1wXcMnCRfrA2XXzz93X2CsoamWq519qA2wnuJLjnwQXmwDl13al51fzl2hs61NYq3bYNFxVl65Pv3o378ktcu3a4woW9j1Et55q/XHdqZ1bTdafmVfP3a8/f8zOvWqY96LcDEzI7KInj2LzYYUBHH54nImkrArwJ9AL+Bm4CVnoZkEg+d8EFsHatDUOLV7OmfY2KgqpVoQBPlxMREZHTMGMGPPxw1uvPBARYD/tDD8G/WSjaFpjZAb4k5zn5XBGB+sBSLDn/CGiEknMRXwUEwJVXwptvwrp18M8/lpwfOJC4BNqxY1bkpVYtJeciIiKSvlatbBpcVgUE+PYcn6u434ZVjBaR3BMIPAW8gS2fdj0w1dOIRPKXkBBo3drmk3fqZL3i0dG2LvnHH1uRtz59bAmUyEgoUgSOHIE9e7yOXERERPzduHG+zSv3ZbEmnxP0H7BCVYN9faKIZElN4DugFfAL0BMtnyaSFSVLQrt2iUXeSpeGiAhbm3TsWCv2Fh6eeHzFivDFFzB4sCXqlSt7FbmIiIjkF999l73n7d+fteN8TtC/BT4DygMD0tjfBHgHW5tZRHxzN/b/KxDohiXqIpK+SpVsGbTOnaFNG1sebe9e+Okn+3R7xgw4cSLt5956a+L3jz6aJ+GKiIhIPnf//bl7fp8T9B7APuA1LEl/Km77+Vghq07YcmwiknVlgM+BO4H52NrmW7wMSMSPnXee9ZKHhkKTJhAYCJs2wUcfWVL+xx+aRy4iIiL5k88JOkAfYA/wPlABiADux+rCfwm8mlPRiZwBrsF6yith/7feBpRbiCQKCIBGjayXPDQULrrIti9fDv36WVL+559eRigiIiKSM7KVoAMMATpgQ3Id8CPQF/X6iWRVYWyayFPAP9jokxWeRiTiP0JCoGXLxCJv1atDTAzMmQOffw7jx8OOHV5HKSIiIpKzfE7Qg4GHgRew3vMVQAMgBNC9kkjWXAJ8H/f1E+A5NDVEpEQJuP566ynv0AHKlIHjx63IW58+MHEiHFTFRBERESnAfE7QNwI1gL+BB4BJ2NJrw+K+7wwcy8EARQqSABKXTzsItAN+9zQiEW9VrAg33WQ95ddea8ud7d8PY8bY0PXp020ZNBEREZEzgc8JehBWKO5bbGg72Lro4diSULOwpONAjoQnUnDUwOaatwbGYMun6f+JnInOOQcqVRrOvHlw1VVW5G3LFhu6PnYsLFwIsbFeRykiIiKS93xO0M8D0lqTfRpwLTARWAhccHpxiRQod2HLpwUB3bEPuETOJA0bJlZev+QSgI/Yvx/697ee8jVrPA1PRERExGdXXgk33GCrylStCkWL2kjA9eutbs64cRAe7ts5A30NIq3kPN4SoAVQxNeTYvPaVwOH49pCoH2KY/oB/wHHsZ76i7LxOiJ5qQw21/wH4C/gUpScy5khOBiuucaWPtu2zSqu9+kDBw7AE0/AmjXjadgQXn1VybmIiIjkL1262P3LwoXQqxcUKwYbN8LixXDokCXuX30F//0HQ4dC7dpZP3e2q7in5x+gWTaetxN4HpvjHgh0BcYBjYC1WBGtp4FuwHrgZazX/gJsmTcRf9MaG9JeGXgJeAvQqF0pyIoVsyJvoaFw441QrpzNH58yBV5+GX77zRJ0gPvuq+pprCIiIiLZsWqV1dAZNswS9VWr0j6uVCm7H7rnHvjrL+jeHUaPzvz8mSbo1wAzfQrZkm2ANsCMLD5nQorHLwH/A5piCXovLMEZE7e/K7AXW+ZtsI/xieSmQlgRuGewD5OaAss9jUgk95Qvn1jkrW1bG9p14ABMmGDDuqZNs0rsIiIiIgXB0KHwxRcQldHQcuDIEfjhB2v160Plylk7f6YJ+u/APOADYDJwKgsnvBFLqJtiaz37KhCrDF8CG+peB6gCTE1yzAlgLnAVStDFf9TDhrTXx+acP4tNyRApSOrUsbXJO3eGZs0gKMiGsQ8ebEn5vHkq8iYiIiIF04cf+v6cNWuyPqUv0wT9Miw5nwDsx4aVLwE2YctEBQDlsOJxTbAe93LAFGx9dF/UA/7A5rBHYEu2/Ykl+gB7Uhy/B6iWwfl69OhBz549AShatChLly71MaK8U7duXb+OTzJx6hSVRo6k2qefEluyJBtffpkrmjVjjtdxZULXnWSNo2jRDZQtO5syZeZQrNhGAI4fP5c9e1px6FArIiPPp1mzAJplcY6Trj3xgq478YKuO/GKrr3cd9llsHJlzp/XZaU1ATcM3GFwseBiUrRYcIfAfQ3u8iyeM2ULAXcOuEbgBoDbB+5icE3BOXDVUxz/DbjJWTx3REREtmLKq7Z06VLPY1DLXqsObjp2jY4FV94PYspq03Wnll4LCsK1bIkbNAi3dSvOOVxsLG7OHNyTT+LOPvv0zq9rT82LputOzYum607Nq+bv156/52dZaeHhuFatcvacWS4StyiuBWKF2y4CKsSdZR/W070y7nF2RWM982BzdhsDT2LzecGKbe1McnxFUveqi+SlO4DPgRDgAeAbb8MROS1Fi8J119l88ptugrPOghMnYOpUWw7tt99g3z6voxQRERHxDz/8AJMmwb33wpgxyfc1awZvvQUtWvh2Tp+ruJ8Clsa13BaIzWHfAoQBbYFlcfsKY0u6PZsHcYikVBr4FLgHm5ZxL7DZ04hEsqdcucQib9ddZ5XYDx2yZHzsWEvOjx3zOkoRERER//PwwxAWBj/+CI89Bl9+CfXqwYAB0KEDrFvn+zl9Xgc9IyXjWna8CTQHamFz0QcArbCCWwCDgN7YvPSLsbWkI7D1pUXyUktgDdZ73hf7oEjJueQntWrB44/DzJmwdy98+y00agRffw1t2tjSIV26WIKu5FxERET8XaFC8NFHNtIvIgLGj4dqGRUrS+HOO8E5+PVX31/7tdfg//7PXn/2bJuTXq8e3H8/XHKJ7+fLsXXQXwdewIa4/4cNd18R9zUrP2dlYETc18NYAtSOxMrt7wBFsV7LssBi4Dq0BrrknULYdf408C+2goDKbkh+Ub++9ZKHhlpBE4A//4Q337REfMUKL6MTERERyb5Bg2yFmbvusuVeP/jARgM2agSnMlmGrE4dePddmDs3e69dtiycf76tYNOiBSxcCK1aZX9FmxxL0B8BmgF/YdXbLwMaAjeTtQS9exaO6R/XRPLaxdhojkuxOefPoOXTxL8FBtrcp/ik/Oyz7Q/UwoXwzDP2yfK//3odpYiIiMjpKVUKHngAuneH6dNt23332RKw115r0/XSExwMI0fCiy9C69ZQvrxvr/3yy/Dkk3ae99+3e6svvrAPCJ54Ins/T44l6Aex5ddOYeumz8upE4t4KAB4ApuCcRi4EZjoaUQi6StSBNq2TSzyVqECREXBtGk2F+rXX21Iu4iIiEhB0aiRDXFPmojv3Gnzv6+6KuME/Y03YOtWGDbMEnRfvfgifPWVFdONv8favt1GJ1aqZMXjYmJ8O+dpJei3Y0PRNwBfAHeROGdcJL+rhtU6uBYYD/TAViwQ8Sdly1oRktBQuOEGKF4cwsNh4kQYNw5+/93mYomIiIj4k+Dg4GTrtA8ePJghQ4b4fJ7KlS0J3r8/+fY9e2xfetq2hTvugAYNfH7JBHXrwuYUxahmzbJkf9Ikuw+79lrfznlaCfqTWEG3YGAjUAcb1j4Om3uue0LJr24DvsTmnfcAvvI2HDmDVa5slUHvuMP+0ADUqGHzrEJDoWVLG1b1339W7G3cOJgzB6KjPQxaREREJBMxMTE0btw43f2vvQYvvZTxOVq1Sn9fQIAVfkvLWWfZfdPdd1vHRnalTM7jrVwJzZvDlCm+n/O0EvSmcV8vwOadx7e7sDXKN2OJ+h2n8yIieagU8AlwH7Ao7qum6YqX+va1N/hBg6yoW+fONpQL4O+/4Z13LClftiz9P0IiIiIi+c2gQTBiRMbHbN8OTZpYZ0X58sl70StWTL/wW716ULVq4px1sPo9YJ0cF18MGzacVvhs2mRD7H2VI3PQ18e1UUm2VcQKxV2aEy8gkgeuBoZhQ9v7AW8A2Sy+KHLajh+HokUTH995p309dQqee86KvJ3uHw4RERERf3XggLXMLF8OJ0/akPWRI21btWo2/HzhwrSfs3SpJelJvf66TR185BHYsiX91xs3Dl55BVatyjy2vXuhcGFbL/34cVsnPTM+J+gvYb3iK4FdGQUDTIlrIv6sEPAq8CywCVuNYImnEcmZqnBhW4c8NNTmjRctar3iAQFW7O233+yPRvxQdxEREZEz3ZEj8PXXtlTa3r2Jy6ytWZO8h3z6dFiyBPr0sWT5r7+Snyc83HriU25Paft2WLTIEvTvv4f58+21ki6rVqUKXHGFFe29+Wabinj//Vn7eXxO0Ptja50DHMAS9VUkJu3q0JH85CKssGEDbM7508AxLwOSM06ZMtC+vSXl7dpBiRL2h2biRJsf1aaNfSpcqJAl5krORURERJJ78kkrFDdqlHVwzJgBXbokXwP9nHNgx47Tf63HH7fh9716WU966dLWoXLkiHWolC0LISHWwbJkiR03fHjWpyL6nKDXAhqlaG1JTNqPY5Xdm/t6YpE8FAA8BrwNHAFuAn7zNCI5k1SrlljkrVUrexMPC7N5VuPGWfXPkyfh559tLc3Bg6Fnz4wrkYqIiIicqaKiLHF+/PH0j6lTJ+NzdO+e9dfbvNle6+mnoWlTuPJKm9NepIj14P/zj81/37496+eM53OCvjOujU+y7RzgHuB5rDBcKd/jEMkzVYGhwHXAr8CD2JQMkdxUt64l5KGhNuQJYP16eP99S8qXLEn9yeqttyZ+/+ijeRSoiIiIiGRJdLQl4ukVo8uOHCkStwmbwzsVGANcnhMnFckFt2JD2QsDPQHfV1oUyZqAAKsqGp+Un3++bV+0CHr3tqR8/XoPAxQRERGRHFe0KFx9NRw8CKtX26hIX+RIgh5vETAJm6feIydPLHIaKgM/YUUNbwcWY8unbfQyKCmQChWCa66xhLxTJxuSHh0NM2fCwIEwYQLsyqi6poiIiIjka7//bl8LFbLl2jZtsuVwe2QxQc7RBB2sYFyfnD6pyGn4DKvM7oBXsOXTYrwMSAqUUqUSi7y1bw8lS8LRozBpkvWST54Mhw97HaWIiIiI5IXq1a0gHUBQEFxyCVzuwxBznxP0LcAyYAWwPK4lXZ7uUqC4rycVyQXHgSTLSBOAJejPA8W8CEgKjCpVoGNH6NwZWrdOrLA+cqQl5TNnWrESERERETmzLF9uS+dGRdnSa6tWZW3N9Hg+J+ibgWuAm0ms3L4T+AsogfVUau1z8Vogtnzag1hveTC2fNpY4BkP45L864ILEueTN2li2zZutGU2xo2DxYuTL+UhIiIiImeO/fth6VLrtBk92pZ+27zZ9/P4nKC3iftaG1tirWFcq4f1nP8O/M/3OERyTAlgJHAjNuXiEiASKIItqaZlpCUrAgKgcWNLyDt3hgsvtO1Ll8KLL1pS/vffXkYoIiIiIv7i7LNtKHvjxtZmzYLgYJt/vnw5vPpq1s6T7TnoW+PaL9k9gUguqIatZ14PeAhbSm0BMBir2q5lpCUjISE2ZD2+yFvVqlbkbfZs+PhjK/K2c6fXUYqIiIiIvzlyxKY5zpyZuK1ixcSEPatyvEiciFcuw5Lz4kB7YBqWmMfTMtKSlpIloV27xCJvpUtDRIRV4Bw3DiZOhPBwj4MUEREREb/z9NOwYoW1tIoC791r95ITJ2b9nErQpUDoCPwA7MN6zf/yNhzxc5UqWZG30FBo08YKeezdCz/9ZEn5jBlw4oTXUYqIiIiIP+vfH4oUse+3bUtM1uPbvn2+n1MJuuR7vYD3gaVAJzTHXNJ27rk2lzy+yFtgoK1L+cknMHYs/PGHiryJiIiISNY1bWpL6+7cCf/+CzVrQp8+UDRuKamwsMRkffly+O23zM+pBF3yrSDgI+Bh4GegC1YMTgSsyFujRomV1y++2LYvXw79+llP+Z9/ehigiIiIiORrX34J338PvXsnbqtQAd54A66/HkaNgksvhUcegXLlrGhcZpSgS75UEhgN3AC8CbxI4rJ/cuYKCYGWLROLvFWvDjExMHcufPGFFXnbvt3rKEVERESkIGjQIHlyDjasvWdPGD7cplBef71tr1Eja+dUgi75Tk2sGNyFwAPAN96GIx4rUcLe+Dp3hg4doEwZOH7cirz16WNFOQ4e9DpKERERESlowsKgXj3rDErpu+/g88/hvffs8Y4dWTunEnTJVy4HfsXWNL8BmJnx4VJAVawIN91kPeXXXmvFOfbvhzFjbOj69OkQqfkOIiIiIpKLvv4aXnnFahmtXJl8X/nyVpjYV0rQJd/oDIwAdgOtgX+8DUfy2Dnn2LD1zp3hqqusyNuWLfbJ5LhxsGABxMZ6HaWIiIiInCneegvq14clS+Dnn2HKFKvmfu65VvNo+XLfz+k3CXpv4GbgAiAKWAS8QOrlsvoBPYGywGLgEeDvvAtTPPIs8A6wEAjFllOTgq9hw8Qib5dcYttWrrQlLcaNgzVrPAxORERERM5op07BnXdCly7w/PNw++3gnBUr/ucf+L//8/2cfpOgtwI+w5bKCgBeBaYDFwGH4o55Dnga6AasB14GpmFJfUSeRit5JRi7LnoAP2L/9lFeBiS5KjgYrr46schbzZrWKz5vHvTqZUn5tm0eBykiIiIiksSwYdZq1rQixfv3w8aNlqz7ym8S9BtSPL4POAw0wwqCga13/RYwJu5xV2AvcDcwOPdDlDxWGvgJaAu8ho2eUKX2gqdYMSvyFhoKN95oS1BERtoQoZdftvUiDxzwOkoRERERkYxt3376Kwb5TYKeUklsnev43vM6QBVgapJjTgBzgatQgl7Q1AYmAudiH8QM8zQayWnlyycWeWvbFooWtUrrv/5qveRTp1oldhERERGRM0kAftopOQo4D6vafQpois0/rgkkrVD/NVCN1D3wAD169KBnz54ANGzYkBUrVuRmyKelbt26rFu3zusw/ELxNWs495lnCIiNZdM773C0USOvQyqw8vK6K1RoJ2XLzqVMmdmUKLGagIBTREVVJjy8JeHhrTh6tAF+/Jmh5DC954kXdN2JF3TdiVf8/dqrW7cuJUqU8DoMv+T8rb0P7j9wdZJsa2pD+F31FMd+A25yFs4ZERHh+c+VUVu6dKnnMfhDuw1cJLiN4M73g3gKesvt665BA9wrr+BWrcI5Z231atvWoIH3P7+ad03veWpeNF13al40XXdqXjV/v/b8PT/zqvldd9UHwJ3YMlpbkmzfHfe1MrAzyfaKwJ68CU1y2QvAAGAetqSaph3nD5Urw48/wh13WEGM5s1tKbTQUKhVy6pbzp8PTz0F48fD5s1eRywiIiIi4p/8KkEfhCXnrbAq7UltAcKwgmHL4rYVBlpgS3BJ/hUCfAl0x9Y5fwA46WlE4ov+/aFFC5g9GypUgLPOghMnYNo02/fbb7BP6+KJiIiIiGTKbxL0T7DK7aFYYbhKcdsjgGNx3w8CXgT+ATYAL8Xt/yEP45ScVRb4BRsx0Q9bXk/8X7lyEBYGhQolbrvwQvt68qQVgTt2LO3nioiIiIhI2gK9DiDeI0ApYCY2nD2+PZPkmHewIfCfYr3oVYDr0Bro+dXZwB9YFf57UHLu72rVgscfh5kzYe9eS86PHYPoaNt/7BiMGGHrPyo5FxERERHxnd/0oAdk8bj+cU3yt2bAuLjvrwXmexeKZOCSSxLnk192mW378094801bDu2BB6BnT1u3vEgROHIE9qgohIiIiIhItvhNgi5njruAocBWoAOwydNoJKnAQGjWzBLy0FA4+2wr8rZwITzzjBV5+/ffxONfeAG++AIGD7ZEvXJlryIXEREREcn/lKBLnuqLDWWfBdyC1RsQbxUpAm3bWkJ+001W6C0qCqZPt57yX39Nv1f81lsTv3/00TwJV0RERESkwPKbOehSsBUChmHJ+bfA9Sg591LZsnDvvXDOOc+xfz9MmAA33wxTp8Jtt1mRtxtvhK++0pB1EREREfFvhQrBRx/ZykERETbqs1q1zJ9XsiR8+CH895+tQrRxo90Le0k96JLrygFjgauxKvwDvA3njFW9euLQ9ZYtITgYTp78k6++grFjYc6cxIJvIiIiIiL5xaBB0KkT3HUXHDgAH3xgS/02amTTNdMSHGydU4cOwe23w86ddr8cFZWnoaeOy9uXl4LuPGAiUAO4AxjtbThnnIsvTkzKL7/ctv39N7zzjhV5++yz33jkkSs9jFBEREREJPtKlbLCxd272xRNgPvug23b4NprLQlPS/fuULEiXH11YifVtm15E3NGlKBLrrka6zmPwdY5X+RtOGeEwEBo2jQxKT/3XNv+xx/w3HM23GfDhmTPyPsgRUREROSMFxwczNKlSxMeDx48mCFDhvh8nkaNbIh70kR8505Ytw6uuir9BD00FBYsgI8/tt73gwdh9Gh44w2IifE5jByjBF1yxX3AV1iF9g7AFm/DKdAKF4Y2bexNpmNHqFQJTp6EGTPg3Xdtfvnu3V5HKSIiIiKSKCYmhsaNG5/2eSpXtoR6//7k2/fsyXiFobPPhmuugR9+gA4doHZt+PRTKFECnn32tMPKNiXokuNexaq1TwduBQ57G06BVLq0vZGEhkK7dvZGcuQITJpk88knT4ajR72OUkREREQke157DV56KeNjWrVKf19AADiX/v7AQNi7F3r0sHnqK1bAWWfBwIFK0KWAKIytb34X1nv+P2x4u+SMatWshzw0FFq3hpAQCAuDESNsPvmsWdZzLiIiIiKS3w0aZPe5Gdm+HZo0sYJv5csn70WvWBHmzk3/uWFhNvc8aRG5deugePHU58pLStAlR5QHxgNXAc8B73obToFRt27ifPIrrrBt69fD++9bUr5kScafDIqIiIiI5EcHDljLzPLl1knVti2MHGnbqlWz++iFC9N/3oIFcPfdyXvazz8fjh3zLjkHJeiSAy7EKrVXAW4BxngbTr4WEABXXpmYlF9wgW1fvBheeMGS8n/+8TBAERERERE/cuQIfP211V7auzdxmbU1axKruoN9v2QJ9Oljjz//HB591NZB/+QTm4Pevz989pknP0YCJehyWlpjCfkJoCWwNOPDJQ2FClmBitBQqyBZubINt5k504b2TJgAu3Z5HaWIiIiIiH968kkrFDdqFBQtasWSu3RJPnz9nHNgx47Exzt3wnXXWTK/apUVVf7mG3j99TwPPxkl6JJt3YEvgfVYpfbt3oaTr5QqZcXdOne2r6VKWVG3yZOtl3zSJDis6noiIiIiIpmKioLHH7eWnjp1Um9bvBiaNcu9uLJDCbr4LAB4A3gBmALcDhzxNKL8oUqVxCJv11xjPed79sCPP1pS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\n",
"text/plain": [
"