{
"cells": [
{
"cell_type": "markdown",
"id": "c9f37994-6783-4420-ba9e-9022fba036dd",
"metadata": {},
"source": [
"# Collocation grids\n",
"\n",
"The grid discretizes the computational domain into collocation nodes.\n",
"\n",
"Likely all the documentation concerning these grids relevant for non-developer users can be found [here](https://desc-docs.readthedocs.io/en/latest/notebooks/basis_grid.html#Collocation-grids).\n",
"\n",
"The purpose of this notebook is to clarify design choices in `grid.py`.\n",
"This will let new developers learn and maintain the code faster."
]
},
{
"cell_type": "markdown",
"id": "3c115859-2c06-47b2-9163-ce1b6d912662",
"metadata": {},
"source": [
"## The grid has 2 jobs.\n",
"\n",
"- Node placement\n",
"- Node weighting\n",
" - Node volume\n",
" - Node areas\n",
" - Node thickness / lengths\n",
"\n",
"This guide will first discuss these two topics in detail.\n",
"Then it will show an example of a common operation which relies on node weights.\n",
"This will provide a necessary background before we discuss implementation details."
]
},
{
"cell_type": "markdown",
"id": "2907d38a-f96e-4f69-9d92-518bbc110979",
"metadata": {},
"source": [
"## Node placement\n",
"\n",
"To begin, the user can choose from three grid types: `LinearGrid`, `QuadratureGrid`, and `ConcentricGrid`.\n",
"There is also functionality to allow the user to choose how to discretize the computational domain with a grid which has a custom set of nodes.\n",
"\n",
"One difference between the three predefined grids is the placement of nodes.\n",
"All the predefined grids linearly space each $\\theta$ and $\\zeta$ surface.\n",
"That is, For any ζ cross-section, the grid layout is the same.\n",
"`LinearGrid`s in particular, also linearly spaces the $\\rho$ surfaces.1\n",
"As the nodes are evenly spaced in all coordinates, each node occupies the same volume in the domain.\n",
"\n",
"See the $\\zeta$ cross sections below as a visual.\n",
"\n",
"Footnote [1]: If an array is given as input for the `rho` parameter, then sometimes the `rho` surfaces are not given equal $d\\rho$.\n",
"This will be discussed later in the guide."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "8680d734-8ef6-4dbc-b016-3abebe3faa1c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"DESC version 0.12.3+10.g5d0c62825.dirty,using JAX backend, jax version=0.4.33, jaxlib version=0.4.33, dtype=float64\n",
"Using device: CPU, with 4.88 GB available memory\n"
]
}
],
"source": [
"import sys\n",
"import os\n",
"\n",
"sys.path.insert(0, os.path.abspath(\".\"))\n",
"sys.path.append(os.path.abspath(\"../../\"))\n",
"\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"from desc.equilibrium import Equilibrium\n",
"from desc.examples import get\n",
"from desc.grid import *\n",
"from desc.plotting import plot_grid\n",
"\n",
"import warnings\n",
"\n",
"warnings.filterwarnings(\"ignore\")\n",
"np.set_printoptions(precision=3, floatmode=\"fixed\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "de2a2946-0c6a-480f-ae44-85c40a9a1a55",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(,\n",
" )"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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/LH+NpFIhJdeemla101KSoJKpYJUKoWDgwPKysqwffv2aV1DpVLpn6+goCC8++67+OKLL/R+JyUlwcLCYsR9ZuIrIWTEh7ehoQFxcXH63x8/fhyBgYHXrGqys7OxZcsWAMDXX3+NhIQEuLq6QiQSAQDq6+tx+fJlREVF4dNPP8XWrVshEAjg7OyMt956C/fddx96enquuS0sLEy/owGuvCZHjhzB9u3bcebMGbz88svXPIYzZ87gmWeeAQBUVVXB2toaQqEQBw4cwM6dO0f87alTp+Dr6zsiyZKdnY3U1FQcO3YM0dHR8PPzw4EDB3Dx4kV88skneOKJJya0kZCQMKbPjo6O4z4fO3fuHPfxmCRc7+Unory8nNx6660EAFm+fDm59dZb9T8pKSnExcWF+Pv7E6FQSLZt20YIIeTLL78kISEhxMrKimzfvp20t7eThIQEAoAkJCSQ6upqIhaLyZ133klWrVpF0tLSyObNm0lTU5Pe7uuvv078/PzIunXryK9//WsSFRVF/P39yZtvvjni+qmpqaSoqGiEz2KxmDz22GMkPj6epKSkkOjoaJKYmEj27dtHBgYGrvHx6mu8+eab1zweQgiprq4mqampJC4ujqxfv57s2bOHACCpqamkpaWFvPPOOyQ6Onrc5zE/P588/fTThM/nk1/96ldkz5495De/+Q0JDAwkjz76qEFeqwsXLpAnnniCvPzyy2T37t36x0oImdC/wsJCcu+995LAwEDy6aefEkIIeeONN8jPP/9MtFot2bNnD4mMjCTx8fHkP//5z6z91Gq15J133iGvvvoqeemll8idd95JWltb9b/fsGEDeeyxx66535IlS8i+ffvIv//9b/LUU0+RoaEhMjg4SH71q1+R/fv3k/3795N7772XvPrqq6S1tZWo1Wpy2223kX//+98kKyuLEELGvI0QQl5++WXy1ltvkU8++YS8//77+rrKqKgoolKprvElJiaGDA8PE0II6ejoIHfeeSd5/fXXx6zH3LRp0zV1oeXl5eTuu+8eUcO4bds28t5775FLly5NycZYPk/0fEz0eEwRHiFsSuBc5/7774ezszNeffVVrl0ZE1P3bzSff/45fvnLX+r/3dbWhs2bN6OgoIBDrxg0mbNbacYVTp8+jbKyMvz8889cuzImpu7faBobG0ckugAgMzNz1vWTjLkFWzHO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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"L, M, N = 6, 3, 1\n",
"lg = LinearGrid(L, M, N)\n",
"qg = QuadratureGrid(L, M, N)\n",
"cg = ConcentricGrid(L, M, N)\n",
"\n",
"plot_grid(lg)\n",
"plot_grid(qg)\n",
"plot_grid(cg)"
]
},
{
"cell_type": "markdown",
"id": "d345a34a-5a36-4f14-a897-4eb9c4b056b7",
"metadata": {},
"source": [
"Regarding node placement, the only difference between `QuadratureGrid` and `LinearGrid` is that `QuadratureGrid` does not evenly space the flux surfaces.\n",
"\n",
"As can be seen above, although the `ConcentricGrid` has nodes evenly spaced on each $\\rho$ surface, the number of nodes on each $\\rho$ surface is not constant.\n",
"On `ConcentricGrid`s, the number of nodes per $\\rho$ surface decreases toward the axis.\n",
"The number of nodes on each $\\theta$ surface is also not constant and will change depending on the `node_pattern` as documented [here](https://desc-docs.readthedocs.io/en/latest/notebooks/basis_grid.html#Concentric-grids).\n",
"\n",
"### Caution on different grid types\n",
"These differences between the grid types regarding the spacing of surfaces are important to consider in the context of certain computations.\n",
"For example the correctness of integrals or averages along a given surface will depend on the grid type.\n",
"If a grid does not evenly space each $\\theta$ surface, then some $\\theta$ surfaces will be assigned a different \"thickness\" (i.e. a larger d$\\theta$).\n",
"A flux surface average on such a grid would then assign more weight to nodes on some $\\theta$ coordinates than others.\n",
"This may introduce an error to the computation of an average as some locations on the surface would have more weight than others."
]
},
{
"cell_type": "markdown",
"id": "3a028514-fb91-452a-ae65-d67db2dabd50",
"metadata": {},
"source": [
"## Structure of computed quantities\n",
"\n",
"The number of nodes in any given grid is stored in the `num_nodes` attribute.\n",
"The grid object itself is a `num_nodes` $\\times$ 3 numpy array.\n",
"That is `num_nodes` rows and 3 columns.\n",
"Each row of the `grid.nodes` represents a single node.\n",
"The three columns give the $\\rho, \\theta, \\zeta$ coordinates, respectively, of any node.\n",
"\n",
"All quantities that are computed by DESC are either a global scalar or an array with the same number of rows as the grid the quantity was computed on.\n",
"For example, we can think of `nodes` as a vector which is the input to any function $f(\\text{nodes})$.\n",
"The output $f(\\text{nodes})$ is a vector-valued function which evaluates the function at each node.\n",
"See below for a visual."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "80b2df38-2b33-4483-8f9e-6ed697dd6b5c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"grid nodes ψ B \n",
"[0.355 0.000 0.000] [0.020] [0.000 0.380 0.007]\n",
"[0.355 2.094 0.000] [0.020] [0.079 0.339 0.057]\n",
"[0.355 4.189 0.000] [0.020] [0.000 0.339 0.057]\n",
"[0.845 0.000 0.000] [0.114] [0.000 0.303 0.000]\n",
"[0.845 2.094 0.000] [0.114] [0.205 0.379 0.057]\n",
"[0.845 4.189 0.000] [0.114] [0.000 0.379 0.057]\n",
"[0.355 0.000 0.110] [0.020] [0.000 0.380 0.011]\n",
"[0.355 2.094 0.110] [0.020] [0.000 0.319 0.017]\n",
"[0.355 4.189 0.110] [0.020] [0.000 0.381 0.000]\n",
"[0.845 0.000 0.110] [0.114] [0.149 0.425 0.122]\n",
"[0.845 2.094 0.110] [0.114] [0.000 0.259 0.049]\n",
"[0.845 4.189 0.110] [0.114] [0.000 0.364 0.000]\n",
"[0.355 0.000 0.220] [0.020] [0.000 0.380 0.011]\n",
"[0.355 2.094 0.220] [0.020] [0.037 0.381 0.000]\n",
"[0.355 4.189 0.220] [0.020] [0.051 0.319 0.017]\n",
"[0.845 0.000 0.220] [0.114] [0.000 0.425 0.122]\n",
"[0.845 2.094 0.220] [0.114] [0.047 0.364 0.000]\n",
"[0.845 4.189 0.220] [0.114] [0.025 0.259 0.049]\n"
]
}
],
"source": [
"eq = get(\"HELIOTRON\")\n",
"grid = QuadratureGrid(L=2, M=1, N=1, NFP=eq.NFP)\n",
"data = eq.compute([\"B\", \"psi\"], grid=grid)\n",
"\n",
"print(f\"{'grid nodes':25}\", f\"{'ψ':10}\", f\"{'B':10}\")\n",
"for node, psi, b in zip(grid.nodes, data[\"psi\"], np.array(data[\"B\"])):\n",
" b[b < 1e-10] = 0\n",
" print(node, \" \", np.asarray([psi]), \" \", b)"
]
},
{
"cell_type": "markdown",
"id": "8a0dc378-334b-4dea-8420-6bf8787be13b",
"metadata": {},
"source": [
"The leftmost block shows the $[\\rho, \\theta, \\zeta]$ position of each node of the grid.\n",
"\n",
"The middle block is a flux surface function.\n",
"In particular $\\psi$ is a scalar function of the coordinate $\\rho$.\n",
"We can see $\\psi$ is constant over all nodes which have the same value for the $\\rho$ coordinate.\n",
"\n",
"The rightmost block is the magnetic field vector.\n",
"The columns give the $R, \\phi, Z$ cylindrical components of this vector.\n",
"Each row is the evaluation of the magnetic field vector at the node on that same row."
]
},
{
"cell_type": "markdown",
"id": "5b8d87ad-0c81-4646-8669-42c1083e1c45",
"metadata": {},
"source": [
"### Node order\n",
"The nodes in all predefined grids are also sorted.\n",
"The ordering sorts the coordinates with the following order with decreasing priority: $\\zeta, \\rho, \\theta$.\n",
"As shown above, this means the first chunk of a grid represents a zeta surface.\n",
"Within that $\\zeta$ surface, the first chunk represents the intersection of a $\\rho$ surface and $\\zeta$ surface (i.e. a $\\theta$ curve).\n",
"Then within that are the nodes along that $\\theta$ curve."
]
},
{
"cell_type": "markdown",
"id": "93fcd130-536b-4903-bbb6-60ec9af96165",
"metadata": {},
"source": [
"## Node weight invariants\n",
"\n",
"Each node occupies a certain volume in the computational domain which depends on the placement of the neighboring nodes.\n",
"Nodes with larger volume occupy more of the computational domain and should therefore be weighted more heavily in any computation that evaluates a quantity over multiple nodes, such as surface averages.\n",
"\n",
"All grids have two relevant attributes for this.\n",
"The first is `weights`, which corresponds to the volume differential element $dV$ in the computational domain.\n",
"The second is `spacing`, which corresponds to the three surface differential elements $d\\rho$, $d\\theta$, and $d\\zeta$."
]
},
{
"cell_type": "markdown",
"id": "d81ab673-f90d-4628-93a8-c924aee19c0c",
"metadata": {},
"source": [
"### Node volume\n",
"If the entire computational space was represented by 1 node, this node would need to span the domain of each coordinate entirely.\n",
"The node would need to cover every\n",
"- $\\rho$ surface from 0 to 1, so it must occupy a radial length of $d\\rho = 1$\n",
"- $\\theta$ surface from 0 to 2$\\pi$, so it must occupy a poloidal length of $d\\theta = 2\\pi$\n",
"- $\\zeta$ surface from 0 to 2$\\pi$, so it must occupy a toroidal length of $d\\zeta = 2\\pi$\n",
"\n",
"Hence the total volume of the node is $dV = d\\rho \\times d\\theta \\times d\\zeta = 4\\pi^2$.\n",
"If more nodes are used to discretize the space, then the sum of all the nodes' volumes must equal $4\\pi^2$.\n",
"We require\n",
"$$\\int_0^1 \\int_0^{2\\pi}\\int_0^{2\\pi} d\\rho d\\theta d\\zeta = 4\\pi^2$$"
]
},
{
"cell_type": "markdown",
"id": "cf7c3e7b-3952-438f-8f81-42bd9e1c2bc4",
"metadata": {},
"source": [
"### Node areas\n",
"Every $\\rho$ surface has a total area of\n",
"$$\\int_0^{2\\pi}\\int_0^{2\\pi} d\\theta d\\zeta = 4\\pi^2$$\n",
"Every $\\theta$ surface has a total area of\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\zeta = 2\\pi$$\n",
"Every $\\zeta$ surface has a total area of\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\theta = 2\\pi$$\n",
"\n",
"If S is the set of all the nodes on a particular surface in a given grid, then the sum of each node's contribution to that surface's area must equal the total area of that surface."
]
},
{
"cell_type": "markdown",
"id": "9457dbf2-fcea-48f0-9db5-d18787c99639",
"metadata": {},
"source": [
"#### Actual area of a surface\n",
"\n",
"You may ask:\n",
"> The $\\zeta$ surfaces are disks in the computational domain. Shouldn't any integral over the radial coordinate include an area Jacobian of $\\rho$, so that $\\int_0^{1}\\int_0^{2\\pi} \\rho d\\rho d\\zeta = \\pi$?\n",
"\n",
"If we wanted to compute the actual area of a $\\zeta$ surface, we would weight it by the area Jacobian for that surface in our geometry:\n",
"$$\\int_0^1 \\int_0^{2\\pi} \\lvert \\ e_{\\rho} \\times e_{\\theta} \\rvert d\\rho d\\theta$$\n",
"\n",
"When we mention \"node area\" in this document, we are just referring to the product of the differential elements in the columns of `grid.spacing` for the row associated with that node. For a $\\zeta$ surface the unweighted area, which is the sum of these products over all the nodes on the surface, would be $$\\int_0^1 \\int_0^{2\\pi} d\\rho d\\theta = 2\\pi$$\n",
"\n",
"That is an invariant the grid should try to keep. That way when we supply a Jacobian factor in the integral, whether that be for an area or volume, we know that the integral covers the entire domain."
]
},
{
"cell_type": "markdown",
"id": "88087129-a655-435d-af35-8c6740e76529",
"metadata": {},
"source": [
"### Node thickness / lengths\n",
"\n",
"We require\n",
"$$\\int_0^{1} d\\rho = 1$$\n",
"$$\\int_0^{2\\pi} d\\theta = 2\\pi$$\n",
"$$\\int_0^{2\\pi} d\\zeta = 2\\pi$$\n",
"where the integrals can be over any $\\rho$, $\\theta$, or $\\zeta$ curve.\n",
"\n",
"These are the invariants that `grid.py` needs to maintain when constructing a grid."
]
},
{
"cell_type": "markdown",
"id": "46838670-4052-441d-a00e-fd2c6326900b",
"metadata": {},
"source": [
"### Visual: `grid.weights` and `grid.spacing`\n",
"\n",
"Let's see a visual of the `weights` and `spacing` for `LinearGrid`.\n",
"Recall that `LinearGrid` evenly spaces every surface, and therefore each node should have the same volume and area contribution for every surface."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "48b02295-15f6-46ca-aa5a-5ff8e4bef6f4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Notice the invariants mentioned above are maintained in the examples below.\n",
"\n",
"The most basic example: 2 node LinearGrid\n",
" grid nodes dV d𝜌 d𝜃 d𝜁\n",
"[0.000 0.000 0.000] [19.739] [0.500 6.283 6.283]\n",
"[1.000 0.000 0.000] [19.739] [0.500 6.283 6.283]\n",
"\n",
"\n",
"A LinearGrid with only 1 𝜁 cross section\n",
"Notice the 𝜁 surface area is the sum(d𝜌 X d𝜃): 6.283185307179585\n",
" grid nodes dV d𝜌 d𝜃 d𝜁\n",
"[0.000 0.000 0.000] [4.386] [0.333 2.094 6.283]\n",
"[0.000 2.094 0.000] [4.386] [0.333 2.094 6.283]\n",
"[0.000 4.189 0.000] [4.386] [0.333 2.094 6.283]\n",
"[0.500 0.000 0.000] [4.386] [0.333 2.094 6.283]\n",
"[0.500 2.094 0.000] [4.386] [0.333 2.094 6.283]\n",
"[0.500 4.189 0.000] [4.386] [0.333 2.094 6.283]\n",
"[1.000 0.000 0.000] [4.386] [0.333 2.094 6.283]\n",
"[1.000 2.094 0.000] [4.386] [0.333 2.094 6.283]\n",
"[1.000 4.189 0.000] [4.386] [0.333 2.094 6.283]\n",
"\n",
"\n",
"A low resolution LinearGrid\n",
" grid nodes dV d𝜌 d𝜃 d𝜁\n",
"[0.000 0.000 0.000] [1.462] [0.333 2.094 2.094]\n",
"[0.000 2.094 0.000] [1.462] [0.333 2.094 2.094]\n",
"[0.000 4.189 0.000] [1.462] [0.333 2.094 2.094]\n",
"[0.500 0.000 0.000] [1.462] [0.333 2.094 2.094]\n",
"[0.500 2.094 0.000] [1.462] [0.333 2.094 2.094]\n",
"[0.500 4.189 0.000] [1.462] [0.333 2.094 2.094]\n",
"[1.000 0.000 0.000] [1.462] [0.333 2.094 2.094]\n",
"[1.000 2.094 0.000] [1.462] [0.333 2.094 2.094]\n",
"[1.000 4.189 0.000] [1.462] [0.333 2.094 2.094]\n",
"[0.000 0.000 2.094] [1.462] [0.333 2.094 2.094]\n",
"[0.000 2.094 2.094] [1.462] [0.333 2.094 2.094]\n",
"[0.000 4.189 2.094] [1.462] [0.333 2.094 2.094]\n",
"[0.500 0.000 2.094] [1.462] [0.333 2.094 2.094]\n",
"[0.500 2.094 2.094] [1.462] [0.333 2.094 2.094]\n",
"[0.500 4.189 2.094] [1.462] [0.333 2.094 2.094]\n",
"[1.000 0.000 2.094] [1.462] [0.333 2.094 2.094]\n",
"[1.000 2.094 2.094] [1.462] [0.333 2.094 2.094]\n",
"[1.000 4.189 2.094] [1.462] [0.333 2.094 2.094]\n",
"[0.000 0.000 4.189] [1.462] [0.333 2.094 2.094]\n",
"[0.000 2.094 4.189] [1.462] [0.333 2.094 2.094]\n",
"[0.000 4.189 4.189] [1.462] [0.333 2.094 2.094]\n",
"[0.500 0.000 4.189] [1.462] [0.333 2.094 2.094]\n",
"[0.500 2.094 4.189] [1.462] [0.333 2.094 2.094]\n",
"[0.500 4.189 4.189] [1.462] [0.333 2.094 2.094]\n",
"[1.000 0.000 4.189] [1.462] [0.333 2.094 2.094]\n",
"[1.000 2.094 4.189] [1.462] [0.333 2.094 2.094]\n",
"[1.000 4.189 4.189] [1.462] [0.333 2.094 2.094]\n",
"\n",
"\n",
"A ConcentricGrid with only 1 𝜁 cross section\n",
"Notice the node which composes a 𝜌 surface by itself has more weight than any node on a surface with multiple nodes.\n",
"The method of assigning this weight will be discussed later\n",
" grid nodes dV d𝜌 d𝜃 d𝜁\n",
"[0.355 0.000 0.000] [23.687] [0.600 6.283 6.283]\n",
"[0.845 0.000 0.000] [3.158] [0.400 1.257 6.283]\n",
"[0.845 1.257 0.000] [3.158] [0.400 1.257 6.283]\n",
"[0.845 2.513 0.000] [3.158] [0.400 1.257 6.283]\n",
"[0.845 3.770 0.000] [3.158] [0.400 1.257 6.283]\n",
"[0.845 5.027 0.000] [3.158] [0.400 1.257 6.283]\n",
"\n",
"\n"
]
}
],
"source": [
"def print_grid_weights(grid):\n",
" print(\" grid nodes \", \"dV\", \" d𝜌 d𝜃 d𝜁\")\n",
" for node, weight, spacing in zip(grid.nodes, grid.weights, grid.spacing):\n",
" print(node, \" \", np.asarray([weight]), \" \", spacing)\n",
" print()\n",
" print()\n",
"\n",
"\n",
"print(\"Notice the invariants mentioned above are maintained in the examples below.\\n\")\n",
"\n",
"print(\"The most basic example: 2 node LinearGrid\")\n",
"print_grid_weights(LinearGrid(L=1, M=0, N=0))\n",
"\n",
"lg = LinearGrid(L=2, M=1, N=0)\n",
"print(\"A LinearGrid with only 1 𝜁 cross section\")\n",
"print(\n",
" \"Notice the 𝜁 surface area is the sum(d𝜌 X d𝜃):\",\n",
" lg.spacing[:, :2].prod(axis=1).sum(),\n",
")\n",
"print_grid_weights(lg)\n",
"\n",
"print(\"A low resolution LinearGrid\")\n",
"print_grid_weights(LinearGrid(L=2, M=1, N=1))\n",
"\n",
"print(\"A ConcentricGrid with only 1 𝜁 cross section\")\n",
"print(\n",
" \"Notice the node which composes a 𝜌 surface by itself has more weight than any node on a surface with multiple nodes.\"\n",
")\n",
"print(\"The method of assigning this weight will be discussed later\")\n",
"print_grid_weights(ConcentricGrid(L=2, M=2, N=0))"
]
},
{
"cell_type": "markdown",
"id": "50e29eeb-5678-46a7-9ba2-ded3acea90a6",
"metadata": {},
"source": [
"## A common operation which relies on node area: surface integrals\n",
"\n",
"Many quantities of interest require an intermediate computation in the form of an integral over a surface:\n",
"$$integral(Q) = \\int_0^{2\\pi}\\int_0^{2\\pi} d\\theta d\\zeta \\ Q = \\sum_{i} d\\theta d\\zeta \\ Q$$\n",
"\n",
"The steps to perform this computation are:\n",
"1. Compute the integrand with the following element wise product.\n",
"Recall that the first two terms in the product are $d\\theta$ and $d\\zeta$.\n",
"Repeating a previous remark: we can think of `nodes` as a vector which is the input to a function $f(nodes)$.\n",
"In this case $f$ is `integrand_function`. The output $f(nodes)$ evaluates the function at each node.\n",
"```python\n",
"integrand_function = grid.spacing[:, 1] * grid.spacing[:, 2] * Q\n",
"```\n",
"2. Filter `integrand_function` so that it only includes the values of the function evaluated on the desired surface.\n",
"In other words, we need to downsample `integrand_function` from $f(nodes)$ to $f(nodes \\ on \\ desired \\ surface)$.\n",
"This requires searching through the grid and collecting the indices of each node with the same value of the desired surface label.\n",
"```python\n",
"desired_rho_surface = 0.5\n",
"indices = np.where(grid.nodes[:, 0] == desired_rho_surface)[0]\n",
"integrand_function = integrand_function[indices]\n",
"```\n",
"3. Compute the integral by taking the sum.\n",
"```python\n",
"integral = integrand_function.sum()\n",
"```\n",
"\n",
"To evaluate $integral(Q)$ on a different surface, we would need to repeat steps 2 and 3, making sure to collect the indices corresponding to that surface.\n",
"With grids of different types that can include many surfaces, this process becomes a chore.\n",
"Fortunately, there exists a utility function that performs these computations efficiently in bulk.\n",
"The code\n",
"```python\n",
"integrals = surface_integrals(grid=grid, q=Q, surface_label=\"rho\")\n",
"```\n",
"would perform the above algorithm while also upsampling the result back to a length that is broadcastable with other quantities.\n",
"\n",
"We may think of `surface_integrals` as a function, $g$, which takes the nodes of a grid as an input, i.e. $g(nodes)$, and returns an array of length `grid.num_nodes` which is $g$ evaluated on each node of the grid.\n",
"This lets computations of the following form be simple element wise products in code.\n",
"$$H = \\psi \\lvert B \\rvert \\int_0^{2\\pi}\\int_0^{2\\pi} d\\theta d\\zeta \\ Q$$\n",
"```python\n",
"H = data[\"psi\"] * data[\"|B|\"] * surface_integrals(grid=grid, q=Q, surface_label=\"rho\")\n",
"```\n",
"\n",
"Important Note: Please notice that for the examples shown here, the Jacobian term is baked into the function $Q$ we are integrating. As described above, $d\\rho, d\\theta, d\\zeta$ weights doesn't account for the shape of the surfaces. For integrals over constant parameter surfaces, the required 2D Jacobian determinants are as follows,\n",
"\n",
"* over constant $\\rho$ surface : $|e_{\\theta} \\times e_{\\zeta}|$\n",
"* over constant $\\theta$ surface : $|e_{\\zeta} \\times e_{\\rho}|$\n",
"* over constant $\\zeta$ surface : $|e_{\\rho} \\times e_{\\theta}|$\n",
"* for volume integral: $\\sqrt{g}$\n",
"\n",
"So, one needs to multiply $Q$ by these quantities before taking the integral.\n",
"\n",
"Below is a visual of the output generated by `surface_integrals`."
]
},
{
"cell_type": "markdown",
"id": "f975ee87-9381-471a-9f2e-5808eb84f5e3",
"metadata": {},
"source": [
"### Visual: `surface_integrals`"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6eed2d3c-6a41-4a27-8a1a-e7af1aee07e3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Notice that nodes with the same 𝜌 coordinate share the same output value.\n",
" grid nodes 𝜌 surface integrals of |B|\n",
"[0.212 0.000 0.000] [13.923]\n",
"[0.212 2.094 0.000] [13.923]\n",
"[0.212 4.189 0.000] [13.923]\n",
"[0.591 0.000 0.000] [15.226]\n",
"[0.591 2.094 0.000] [15.226]\n",
"[0.591 4.189 0.000] [15.226]\n",
"[0.911 0.000 0.000] [14.889]\n",
"[0.911 2.094 0.000] [14.889]\n",
"[0.911 4.189 0.000] [14.889]\n",
"[0.212 0.000 0.110] [13.923]\n",
"[0.212 2.094 0.110] [13.923]\n",
"[0.212 4.189 0.110] [13.923]\n",
"[0.591 0.000 0.110] [15.226]\n",
"[0.591 2.094 0.110] [15.226]\n",
"[0.591 4.189 0.110] [15.226]\n",
"[0.911 0.000 0.110] [14.889]\n",
"[0.911 2.094 0.110] [14.889]\n",
"[0.911 4.189 0.110] [14.889]\n",
"[0.212 0.000 0.220] [13.923]\n",
"[0.212 2.094 0.220] [13.923]\n",
"[0.212 4.189 0.220] [13.923]\n",
"[0.591 0.000 0.220] [15.226]\n",
"[0.591 2.094 0.220] [15.226]\n",
"[0.591 4.189 0.220] [15.226]\n",
"[0.911 0.000 0.220] [14.889]\n",
"[0.911 2.094 0.220] [14.889]\n",
"[0.911 4.189 0.220] [14.889]\n"
]
}
],
"source": [
"from desc.integrals import surface_integrals\n",
"\n",
"grid = QuadratureGrid(L=2, M=1, N=1, NFP=eq.NFP)\n",
"B = eq.compute(\"|B|\", grid=grid)[\"|B|\"]\n",
"B_integrals = surface_integrals(grid=grid, q=B, surface_label=\"rho\")\n",
"\n",
"print(\"Notice that nodes with the same 𝜌 coordinate share the same output value.\")\n",
"print(\" grid nodes \", \"𝜌 surface integrals of |B|\")\n",
"for node, B_integral in zip(grid.nodes, B_integrals):\n",
" print(node, \" \", np.asarray([B_integral]))"
]
},
{
"cell_type": "markdown",
"id": "202ac51d-e8ed-4bb7-992e-111b31e28f89",
"metadata": {},
"source": [
"## Grid construction\n",
"\n",
"As the above example implies, it is important that correct values for node spacing are maintained for accurate computations.\n",
"This section gives a high-level discussion of how grids are constructed in `grid.py` and how the invariants mentioned above for spacing and weights are preserved.\n",
"\n",
"The code is modular enough that the function calls in the `__init__` method of any grid type should provide a good outline.\n",
"In any case, the main steps are:\n",
"1. Massaging input parameters to protect against weird user inputs.\n",
"1. Placing the nodes in a specified pattern.\n",
"2. Assigning spacing and weight to the nodes based on placement of nodes and their neighbors.\n",
"4. Enforcing symmetry if it was specified by the user.\n",
"5. Post processing to assign useful things as attributes to the grid.\n",
"\n",
"`LinearGrid` is the grid which is most instructive to give a walk-through on.\n",
"The construction process for`QuadratureGrid` and `ConcentricGrid` are similar, with the only difference being that they place the nodes differently in the `create_nodes` function.\n",
"\n",
"There are two ways to specify how the nodes are placed on `LinearGrid`.\n",
"\n",
"The first method is to specify numbers for the parameters `rho`, `theta`, or `zeta` (or `L`, `M`, `N` which stand for the radial, poloidal, and toroidal grid resolution, respectively).\n",
"The second method is to specify arrays for the parameters `rho`, `theta`, or `zeta`."
]
},
{
"cell_type": "markdown",
"id": "a1c0f285-6d90-4b7f-8c3b-edcf15d67904",
"metadata": {},
"source": [
"### $\\rho$ spacing\n",
"\n",
"When we give numbers for any of these parameters (e.g. `rho=8`), we are specifying that we want the grid to have that many surfaces (e.g. 8 $\\rho$ surfaces) which are spaced equidistant from one another with the same $d\\rho$ weight.\n",
"Hence, each $\\rho$ surface should have $d\\rho = 1 / 8$.\n",
"The relevant code for this is below.\n",
"```python\n",
"r = np.flipud(np.linspace(1, 0, int(rho), endpoint=axis))\n",
"dr = 1 / r.size * np.ones_like(r)\n",
"```\n",
"\n",
"When we give arrays for any of these parameters (e.g. `rho=[0.125, 0.375, 0.625, 0.875]`), we are specifying that we want the grid to have surfaces at those coordinates of the given surface label.\n",
"In this case the surfaces are assigned equal thickness (i.e. $d\\rho$), but that is not always the case.\n",
"The rule to compute the thickness when an array is given is that the cumulative sums of d$\\rho$ are node midpoints.\n",
"In terms of how $d\\rho$ is used as a \"thickness\" for an interval in integrals, this is similar to a midpoint Riemann sum.\n",
"\n",
"In the above example, for the first surface we have\n",
"$$(d\\rho)_1 = mean(0.125, 0.375) = 0.25$$\n",
"For the second surface we have\n",
"$$(d\\rho)_1 + (d\\rho)_2 = mean(0.375, 0.625) = 0.5 \\implies (d\\rho)_2 = 0.25$$\n",
"Continuing this rule will show that each surface is weighted equally with a thickness of $d\\rho = 0.25$.\n",
"The algorithm for this is below.\n",
"```python\n",
"# r is the supplied array for rho\n",
"# choose dr such that cumulative sums of dr[] are node midpoints and the total sum is 1\n",
"dr[0] = (r[0] + r[1]) / 2\n",
"dr[1:-1] = (r[2:] - r[:-2]) / 2\n",
"dr[-1] = 1 - (r[-2] + r[-1]) / 2\n",
"```\n",
"\n",
"If instead the supplied parameter was `rho=[0.25, 0.75]` then each surface would have a thickness of $d\\rho = 0.5$.\n",
"An advantage of this algorithm is that the nodes are assigned a good $d\\rho$ even if the input array is not evenly spaced."
]
},
{
"cell_type": "markdown",
"id": "39f9a868-060e-4700-9193-c2ec21de2958",
"metadata": {},
"source": [
"#### An important point\n",
"This touches on an important point.\n",
"When an array is given as the parameter for $\\rho$, the thickness assigned to each surface is not guaranteed to be equal to the space between the two surfaces.\n",
"In contrast to the previous example, if `rho=[0.5, 1]`, then $(d\\rho)_1 = 0.75$ for the first surface at $\\rho = 0.5$ and $(d\\rho)_2 = 0.25$ for the second surface at $\\rho = 1$.\n",
"The first surface is weighted more because an interval centered around the node $\\rho = 0.5$ lies entirely in the boundaries of the domain: [0, 1].\n",
"The second surface is weighted less because an interval centered around the node at $\\rho = 1$ lies partly outside of the domain.\n",
"Since each node is meant to discretize an interval of surfaces around it, nodes at the boundaries of the domain should be given less weight.2\n",
"As half of any interval around a boundary lies outside the domain.\n",
"A visual is provided below.\n",
"\n",
"#### An analogy with a stick\n",
"Footnote [2]: If that explanation did not make sense, perhaps this analogy might.\n",
"Suppose you want to estimate the temperature of an ideal stick of varying temperature of length 1.\n",
"You can shine a laser at any location of the stick to sample the temperature there.\n",
"This sample is a good estimate for the temperature of the stick in a small interval around that point.\n",
"\n",
"You pick the center of the stick, $\\rho = 0.5$ for your first sample.\n",
"You record a temperature of $T_1$.\n",
"This is your current estimate for the temperature of the entire stick from $\\rho = 0 \\ to\\ 1$.\n",
"You decide to measure the temperature of the stick at one more location $\\rho = 1$, recording a temperature of $T_2$.\n",
"\n",
"Now to calculate the mean temperature of the stick, weighing the measurements equally and claiming $T$average $= 0.5 * T_1 + 0.5 * T_2$ would be a mistake.\n",
"Only the temperature of the stick at the midpoint of the measurements, $\\rho = 0.75$, is estimated equally well by either measurement.\n",
"The temperature of the stick from $\\rho = 0\\ to\\ 0.75$ is better measured by the first measurement because this portion of the stick is closer to 0.5 than 1.\n",
"Hence, a more accurate way to calculate the stick's temperature would be $T$average $= 0.75 * T_1 + 0.25 * T_2$"
]
},
{
"cell_type": "markdown",
"id": "6c5e4958-973c-4fdb-893b-55aac9f39ec8",
"metadata": {},
"source": [
"#### Visual: $d\\rho$ \"spacing\""
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "3f4b60b7-be21-4984-b0b5-ee3e6b7959e1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Both of these nodes have 𝑑𝜌=0.5\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAADECAYAAACMc2sOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA7FAAAOxQFHbOz/AAAqIElEQVR4nO3deXxU1fk/8M+dNQkkITsJxGACBJAQECRsCi5salkstl8RbEmlKoqtVmv9Vb+CEnGpG1DXanBDbcF+1Za6gwpVlCUsCilrIGRPCNkmme35/REzJZBlkpnJnbnzefOa14vcmTvznHvmzn3uOeeeq4iIgIiIiEgDdGoHQEREROQtTGyIiIhIM5jYEBERkWYwsSEiIiLNYGJDREREmsHEhoiIiDSDiQ0RERFpBhMbIiIi0gwmNkRERKQZTGyIiIhIM5jYEBERkWYwsSHNGTJkCKZMmYIpU6Zg5MiRUBQF48aNcy2bMmWK2iF22YcffugqSyDobrwvvvgihgwZggEDBnj0+UuXLsXSpUs9eg/A/7Z7V8vlre1JFFCESGMmT57s+v+mTZsEgBw9erTN5wNJS1kChTvxPvDAA+fUR25urqSkpHj02fX19VJfX+/Re7Twp+3enXJ1tj3bqgOiQGZQN60i8r6VK1d69DwFvrCwMLVD8AmtlovIm9gVRZozfvz4Dp9//fXXodfrkZmZiU8++QQAsGTJEtx6660AgL179yIzMxNpaWnYsWMHAKC8vBwLFy7EpEmTMGnSJCxcuBDl5eVtvv+Zzf+rV6/G1KlTkZqaitdee63V6zp7z4MHD2LKlCm46KKLMGvWLOTl5bVav7S0FP/zP//jWv/222+HxWJxPf/MM89g3LhxuOyyyzBhwgQ89dRT7W6TVatW4bLLLsMVV1yB8ePH47nnnutyeTqL92xr1qzB2rVrkZeXhylTpuDyyy9v9XxHn9VR2desWYMBAwa4uhzPjn/GjBkIDw/H2rVr24zL3XLk5eXh1VdfxerVq2Gz2c55fsmSJV3+nnWlXGfGOmbMGMycORM5OTlQFAVTpkzB8ePHO92endUBUUBSu8mIyJfa6ooSEbn44oslJydHREQcDof0799fEhMTxel0iojIQw89JJs2bRIREafTKePGjZPbbrvNtf5tt90m48ePd73+bLm5uWI0GuXDDz8UEZF169ZJRESE2O12t97TZrPJ4MGD5e677xYREZvNJrNnz3Z1iTgcDsnKypIlS5aIiIjdbpdZs2bJ0qVLRUTkwIEDEhkZKQ0NDSIicuLECUlPT293Oz355JOu1zY2NsrAgQNl69atbpens3jb015XlNFolI8++qjNz+qs7G29b25urphMJtmwYYOIiLz77ruycePGc+Jxtxxffvml3HnnnSIi8tprr8ny5cvbLF9XvmddLVdbsV511VXnxNrZ9mRXFGkNExvStPYSm2eeeUZGjRolIiJffPGF/Pa3vxWTySRbtmwREZFp06aJw+EQEZFt27YJAMnPz3etn5+fLwBk27ZtbX5ubm6uREZGuv7ev3+/AJCioiK33nPLli0CQA4ePOh6/q9//avroNWy/oEDB1zPr1+/XkJDQ8XpdMqJEyckNDRU1qxZI6dOnRIRkdra2na30+effy4zZsyQiRMnyuTJkyUyMlIee+wxt8vTWbztaS+x6dOnj+vvAwcOtLnt2it7W++bm5srERERHcbibjnsdrtkZGTI6dOnRUTkgw8+kMsvv7zN9+vO98zdcrm7zTvbnkxsSGs4xoaC0k9/+lP89re/xdGjR7F+/XrcdNNNyM/Px4YNGxAfH4+0tDTodM09tceOHQMA9O3b17V+QkICAKCgoABjx45t8zP69Onj+n9ISAgAoKmpya33dDqdAID4+HjX87Gxsa7/t6y/ePFiV5yNjY2Ij49HeXk5+vfvj61bt+Lpp5/GsmXLMHbsWNx///0YN27cOXEePXoUM2fOxLPPPovs7GwAwJQpU1BfX+92eQoLCzuMt6siIyNd/zebza0+q7OynxnDmaKiojr9XHfK8dVXX+H8889HREQEAGD37t3tfmZ3vmfulqsr27yj7UmkNUxsKCj169cP48aNw9/+9jfs378fF1xwAebNm4cHH3wQsbGxmDdvnuu1LZfKlpSUuA5mpaWlAICUlJRufX5n72m32wEAZWVlrucrKirOWf/tt99GUlKSa3lZWRni4+PR0NCA5ORkvPrqq2hqasLKlSsxdepUlJaWnjMAdceOHWhqasLcuXNdy6xWa5fKk5yc3GG83tRZ2T3hTjk2b96MSy65xPX33//+dzzxxBNtvl93vmfulqsntzlRIOHgYQpa8+bNw2OPPeYabDxnzhycPHkSr7/+OiZPnux63ZgxYzB27FisXr3atWz1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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left node has 𝑑𝜌=0.75, the right has 𝑑𝜌=0.25\n"
]
},
{
"data": {
"image/png": "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q1evFgDy6KOPBq1mLcjNzZUNGzZIYWGhAJDCwkKf99Xq52qnBZumD8mlS5c22/7iiy8KAPn+++8vu/+UKVMkPj5eHA6Hd5vdbheLxSJTp04NSs1a4E+7f/fdd9K/f/9Ltn/22WcCQObOnRvwerXC39d7k/z8fJk3b548/fTTDDY+8LfdH3/8cRk0aJA3yDepqqqSr7/+OuD1aoW/7R4dHS1Dhw69ZPvQoUOlZ8+eAa1Va5xOp4hIh4KNVj9XO20o6v333wcATJ48udn2KVOmAADee++9VvetqanBF198gWuvvRZGo9G73WQy4dprr8Xnn3+OmpqaIFQd/vxp95ycHOzZs+eS7VdccQUA4NSpU4EqU3P8afcm3333HT799FMsXrw48AVqlD/t7nA48F//9V+49dZbodfrm90WHx+Pa6+9NsDVaoe/r/eYmJgWh6ycTidMJlOAqtSmji62p+XP1U4LNlu3bgUADBgwoNn2tLQ0AMC2bdta3be4uBgej8d73wsNHDgQHo8n/McEg8SfdlcUpdkLvsnOnTsBAJMmTQpUmZrjT7sDjXMO7r//fjz//POIjY0NTpEa5E+779ixA2fOnEFycjIWLFiAkSNHIj09HePGjcOrr74K4VqmrfL39f7cc8/hwIEDWL58OTweDzweD5YtW4Y9e/bgiSeeCE7RXZyWP1c7bV3l6upqmM1mmM3mZtsjIiJgMplQXV192X2BxlR/saZtl9u/K/On3VsiIli2bBlycnJw9913B7JUTfG33VesWIHo6Gi2cTv50+6HDx8GADz55JO47777sH79ehiNRrz//vv4xS9+gc2bN+PNN98MZvlhy9/X+1133YWePXti/vz5ePLJJwEAsbGxWLNmDW677bag1d2VaflzNSRO91YURZV9u7qOtN1zzz2HY8eO4cMPP9T89UaCpa12r6iowDPPPINXXnmlkyrqGtpqd5vNBqBx2On5559HREQE9Ho9Zs+ejdtvvx1vvfUWtm/f3hmlaoov7zMFBQW47bbbsHjxYpw6dQqnTp3Cs88+i9mzZ+P111/vhCrpQuH+udppwSY+Ph52ux12u73Z9oaGBtjtdsTHx192XwCora295LazZ882uw8150+7X2zFihUoLCxEUVER+vTpE+hSNcWfdn/kkUdw9913IzMzM9hlao4/7d70LXXEiBHQ6Zq/Nebk5ABonPdEl/Kn3Xfv3o2nnnoKM2fOxKxZs6DX66HX63HXXXdhxowZeOCBB3Do0KFgH0KXo+XP1U4LNldffTUA4ODBg822N62HMmLEiFb3HT58OHQ6XYtrp+zfvx86nQ5ZWVkBrFY7/Gn3Cy1atAhvvfUW1q1bh9TU1MAWqUH+tHtRURE+//xzDB8+3Pvz2muvAQB++ctfYvjw4XjssceCVHl486fdhw4dCqBxftPFmiYTc02VlvnT7iUlJRARDB48+JLbMjIy4HK5sHnz5gBWS4C2P1c7LdjccccdAIAvv/yy2fbPP/8cADBr1izvtqqqKjidTu/vcXFxuOGGG7B27dpmM+edTifWrl2LyZMnIy4uLpjlhy1/2h1onFPz4IMP4ssvv8TatWuRmJgIoHG4ZPr06cEsPaz50+4VFRX48ccfUVxc7P257777AAB/+MMfUFxcjN/97nfBPoSw5E+7DxgwACNGjEBJScklAaZp8mteXl5Q6g53/rR7UlISgP+b43ShpqCUkJAQ0Hq7oi71udqZ55bfc889kpycLAcOHBARkf3790tiYqLcc8893vts2LBB9Hq93Hjjjc32bVpI6Le//a13IaHf/OY3Yb+QUGfoaLs7HA6ZNWuWxMfHyxtvvCGrVq3y/rz00kuSmpra2YcSVvx5vV+M69j4zp92X7dunZjNZlm4cKF32+effy4mk6nZ/nSpjra72+2WsWPHitlslq+++sq7/YsvvhCTySS5ubmXrCtEl7rcOjZd7XO1U4ON0+mUxYsXy+DBgyUzM1PS09Nl0aJF3gWGRERKSkqkV69eMmfOnEv2Ly4ulqlTp0p6erpceeWVMmXKFNm2bVsnHkF46mi7f/LJJwKg1R8Gm8vz9/UuIvLyyy9LVlaWJCYmCgBJS0uTrKws2bBhQ2cdRtjxt93/+c9/yqRJkyQ1NVUGDhwow4YNk2XLlonb7e7Mwwg7/rT7uXPnZMmSJZKVlSVDhgyRIUOGyLBhw6SgoECsVmtnH0pYWbx4sWRlZUnfvn0FgPTt21eysrJkyZIl3vt0tc9VRYSLMxAREZE2hMTp3kRERESBwGBDREREmsFgQ0RERJrBYENERESawWBDREREmsFgQ0RERJrBYENERESawWBDREREmsFgQ0RERJrBYENERESawWBDREREmmFQuwAi6lqOHz+OlStXwuFwIDU1Ffn5+WqXREQawmBDRJ2mpKQE999/P/76178iLi4OU6ZMgdlsxp133ql2aUSkERyKIqJO0dDQgNtuuw2LFy9GXFwcACA7OxuFhYUqV0ZEWsJgQ0Sd4q233kJERASuu+4677ZTp06hpqZGxaqISGsYbIioU6xevRq33HJLs21bt27FwIED1SmIiDSJwYaIgs7hcOCHH37ANddc491WUVGBLVu24Pbbb1exMiLSGgYbIgq6TZs2oaGhAcOHD/due/XVV5GVlYWZM2eqVxgRaQ6DDREF3bp165CQkICioiIAjWdHffjhh1izZg30er3K1RGRligiImoXQUTadvPNN2PgwIGYMGECSktLAQBz586FxWJRuTIi0hoGGyIKKhGBxWLBm2++iVtvvVXtcohI4zgURURBVVpaijNnzmD8+PFql0JEXQCDDREF1aZNmzBixAgOOxFRp+BQFBEFldVqRX19PRITE9UuhYi6AAYbIiIi0gwORREREZFmMNgQERGRZjDYEBERkWYw2BAREZFmMNgQERGRZjDYEBERkWYw2BAREZFmMNgQERGRZjDYEBERkWb8L6WdKSkiwJqcAAAAAElFTkSuQmCC",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"The left node has 𝑑𝜌=0.625, the middle node has 𝑑𝜌=0.25, the right has 𝑑𝜌=0.075\n"
]
},
{
"data": {
"image/png": "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M4Cf5judqy4opaamtmq90S6iPpfDeW357bffLmlpaXLgwAEREdm/f7907NhRbr/9dv99Nm7cKGazWa655pp6j61bCOi///u//QsB/f73v9d8IaBI09I2cLlcMnXqVElJSZGXX35Z3njjDf/X008/Lenp6eE+lYgWzHvhfFzHpmWCaYP169dLbGyszJ07139szZo1EhMTU+/xdHEtbQOv1yuXXXaZxMbGymeffeY//sknn0hMTIwMGzbsgjWG6OIuto5NpH0uhzXYuN1umT9/vvTp00f69+8vmZmZMm/ePP8CQSIiBQUF0qFDB5kxY8YFj9+xY4dcffXVkpmZKb1795YJEybI9u3bw3gGka+lbfD+++8LgEa/GGyaJ9j3gojIs88+K9nZ2dKxY0cBID179pTs7GzZuHFjuE4jogXbBl999ZWMGzdO0tPTpVevXjJgwABZvHixeL3ecJ5GRAumDaqqqmTBggWSnZ0tffv2lb59+8qAAQMkPz9fKisrw30qEWv+/PmSnZ0t3bp1EwDSrVs3yc7OlgULFvjvE2mfy4oIF10gIiIiY9DF5d5ERERErYHBhoiIiAyDwYaIiIgMg8GGiIiIDIPBhoiIiAyDwYaIiIgMg8GGiIiIDIPBhoiIiAyDwYaIiIgMg8GGiIiIDIPBhoiIiAzDonUBRBRdjh8/juXLl8PlciE9PR3Tp0/XuiQiMhAGGyIKm4KCAtx111344IMPkJycjAkTJiA2Nha33HKL1qURkUFwKIqIwqK2thY33HAD5s+fj+TkZABAbm4uli1bpnFlRGQkDDZEFBavvvoq4uLicMUVV/iPlZeXo6ysTMOqiMhoGGyIKCxWrlyJ6667rt6xb7/9Fr169dKmICIyJAYbIgo5l8uFb775Bpdffrn/WFFREbZt24abbrpJw8qIyGgYbIgo5LZs2YLa2loMHDjQf+yFF15AdnY2pkyZol1hRGQ4DDZEFHLr169Hamoq1q5dC8B3ddSqVauwevVqmM1mjasjIiNRRES0LoKIjO3nP/85evXqhdGjR2Pnzp0AgJkzZ8Jut2tcGREZDYMNEYWUiMBut+OVV17B9ddfr3U5RGRwHIoiopDauXMnTp8+jVGjRmldChFFAQYbIgqpLVu2ICcnh8NORBQWHIoiopCqrKxETU0NOnbsqHUpRBQFGGyIiIjIMDgURURERIbBYENERESGwWBDREREhsFgQ0RERIbBYENERESGwWBDREREhsFgQ0RERIbBYENERESGwWBDREREhvG/s3I60yt3Ut4AAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"rho = np.linspace(0, 1, 100)\n",
"\n",
"print(\"Both of these nodes have 𝑑𝜌=0.5\")\n",
"figure, axes = plt.subplots(1)\n",
"axes.add_patch(plt.Circle((0.25, 0), 0.1, color=\"m\"))\n",
"axes.add_patch(plt.Circle((0.75, 0), 0.1, color=\"c\"))\n",
"axes.add_patch(plt.Rectangle((0, -0.0125), 0.5, 0.025, color=\"m\"))\n",
"axes.add_patch(plt.Rectangle((0.5, -0.0125), 0.5, 0.025, color=\"c\"))\n",
"axes.plot(rho, np.zeros_like(rho), color=\"k\")\n",
"axes.set_aspect(\"equal\")\n",
"axes.set_yticklabels([])\n",
"plt.title(\"Two nodes and their d\" + r\"$\\rho$\" + \" weight\")\n",
"axes.set_xlabel(r\"$\\rho$\", fontsize=13)\n",
"plt.xticks(fontsize=13)\n",
"plt.show()\n",
"\n",
"print(\"The left node has 𝑑𝜌=0.75, the right has 𝑑𝜌=0.25\")\n",
"figure, axes = plt.subplots(1)\n",
"axes.add_patch(plt.Circle((0.5, 0), 0.15, color=\"m\"))\n",
"axes.add_patch(plt.Circle((1, 0), 0.05, color=\"c\"))\n",
"axes.add_patch(plt.Rectangle((0, -0.0125), 0.75, 0.025, color=\"m\"))\n",
"axes.add_patch(plt.Rectangle((0.75, -0.0125), 0.25, 0.025, color=\"c\"))\n",
"axes.plot(rho, np.zeros_like(rho), color=\"k\")\n",
"axes.set_aspect(\"equal\")\n",
"axes.set_yticklabels([])\n",
"axes.set_xlabel(r\"$\\rho$\", fontsize=13)\n",
"plt.xticks(fontsize=13)\n",
"plt.title(\"Two nodes and their d\" + r\"$\\rho$\" + \" weight\")\n",
"plt.show()\n",
"\n",
"print(\"The left node has 𝑑𝜌=0.625, the middle node has 𝑑𝜌=0.25, the right has 𝑑𝜌=0.075\")\n",
"figure, axes = plt.subplots(1)\n",
"axes.add_patch(plt.Circle((0.5, 0), 0.13, color=\"m\"))\n",
"axes.add_patch(plt.Circle((0.85, 0), 0.05, color=\"r\"))\n",
"axes.add_patch(plt.Circle((1, 0), 0.015, color=\"c\"))\n",
"axes.add_patch(plt.Rectangle((0, -0.0125), 0.675, 0.025, color=\"m\"))\n",
"axes.add_patch(plt.Rectangle((0.675, -0.0125), 0.25, 0.025, color=\"r\"))\n",
"axes.add_patch(plt.Rectangle((0.925, -0.0125), 0.075, 0.025, color=\"c\"))\n",
"axes.plot(rho, np.zeros_like(rho), color=\"k\")\n",
"axes.set_aspect(\"equal\")\n",
"axes.set_yticklabels([])\n",
"axes.set_xlabel(r\"$\\rho$\", fontsize=13)\n",
"plt.xticks(fontsize=13)\n",
"plt.title(\"Three nodes and their d\" + r\"$\\rho$\" + \" weight\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "6339d93b-09bc-41f6-a1f4-6e8238f190ac",
"metadata": {},
"source": [
"### $\\theta$ and $\\zeta$ spacing\n",
"\n",
"When a number is provided for any of these parameters (e.g. `theta=8` and `zeta=8`), we are specifying that we want the grid to have that many surfaces (e.g. 8 $\\theta$ and 8 $\\zeta$ surfaces) which are spaced equidistant from one another with equal $d\\theta$ or $d\\zeta$ weight.\n",
"Hence, each $\\theta$ surface should have $d\\theta = 2 \\pi / 8$.\n",
"\n",
"When we give arrays for any of these parameters (e.g. `theta=np.linspace(0, 2pi, 8)`), we are specifying that we want the grid to have surfaces at those coordinates of the given surface label.\n",
"\n",
"In the preceding discussion about $\\rho$ spacing, recall that even if a linearly spaced array is given as input for `rho`, $d\\rho$ may not always be the same for every surface, because we computed $d\\rho$ so that its cumulative sums were node midpoints.\n",
"The reason for doing this was because nodes which lie near the boundaries of $\\rho = 0, or\\ 1$ should be given less thickness in $d\\rho$.\n",
"For $\\theta$ and $\\zeta$ surfaces, the periodic nature of the domain removes the concept of a boundary.\n",
"This means any time a linearly spaced array of coordinates is an input, the resulting $d\\theta$ or $d\\zeta$ will be constant.\n",
"\n",
"The rule used to compute the spacing when an array is given is: $d\\theta$ is chosen to be half the cyclic distance of the surrounding two nodes.\n",
"In other words, if we parameterize a circle's perimeter from 0 to $2\\pi$, and place points on it according to the given array (e.g. `theta = np.linspace(0, 2pi, 4)`), then the $d\\theta$ assigned to each node will be half the parameterized distance along the arc between its left and right neighbors.\n",
"The process is the same for $\\zeta$ spacing.\n",
"A visual is provided in the next cell.\n",
"\n",
"The algorithm for this is given in\n",
"```python\n",
"desc.grid._periodic_spacing\n",
"```\n",
"\n",
"An advantage of this algorithm is that the nodes are assigned a good $d\\theta$ even if the input array is not evenly spaced."
]
},
{
"cell_type": "markdown",
"id": "378f5e80-a393-41f5-a1fb-81ccce030d63",
"metadata": {},
"source": [
"#### Visual: $\\theta$ and $\\zeta$ spacing\n",
"\n",
"Here we are visualizing the $d\\theta$ spacing of a $\\theta$ curve (intersection of $\\rho$ and $\\zeta$ surface).\n",
"Let the node's coordinates be at the values given by the filled circles.\n",
"The $d\\theta$ spacing assigned to each node is the length of arc of the same color."
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "3da00639-9c05-4076-8660-f6f5b4c183fc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Each node is assigned a 𝑑𝜃 of 2𝜋/4\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXEAAAF2CAYAAACYgqgcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA7FAAAOxQFHbOz/AABYvklEQVR4nO3deVzU1f7H8dcMOwIKCG7kgormvmNpallmt7LlWi7t135Zttl2s7TMyrJbtzLT9s1ss+yWLdriUpnmgvuG+44oIuuwz/n9cYRUvt9hBmZgBj5PHvMgOd/5cobgzeGsFqWUQgghhE+y1nQFhBBCVJ6EuBBC+DAJcSGE8GES4kII4cMkxIUQwodJiAshhA+TEBdCCB8mIS6EED5MQlwIIXyYhLgQQvgw/5qugPBNqampPP3006xfv56AgAAKCgpo0qQJ119/Pddeey2BgYHce++9AMyYMaOGa2vsgQceYOnSpQQGBtKvXz9efvnlmq6SWyil+Oijj/j4448BOHnyJH369GHatGk0aNCgZisn3E8J4aIDBw6ouLg4NWvWrLKPlZSUqFdeeUUBat26dUoppXJzc1Vubm4N1dKxpUuXqtDQUGWz2VRJSYmaPn16TVfJbbKzs1W9evVUcnKyUkopm82mzjvvPDV8+PAarpnwBOlOES6755576NGjB3fddVfZx6xWK+PHj2fAgAFlHwsNDSU0NLQmqlihffv2ERMTQ0hICFarlfvuu6+mq+Q2AQEBPPXUUyQkJAAQEhLCqFGj+OGHH1Cy312tIyEuXJKRkcH333/PsGHDDMt//PFHOnfuzOuvv07Lli0ZNGgQAG+//Tbt27enZcuWzJgxg6FDhxIeHs6HH35IamoqN9xwA/3792fQoEEMHTqUJUuWADB9+vQz7rN+/Xq6deuGxWIp+5xn33vw4MG0bduWhQsXMm/ePC6//HJatWpV1r3w9ttv8/zzz3P06FEGDRrEuHHjAN1FNHLkSPr370///v257777yMvLc6r+zj7vkksuIT4+ntmzZ5/xdXP0NXB0fyNBQUE8/PDDZ3zMZrMRGxt7xtdN1BI1/aeA8C0rV65UgPrpp58qvHby5Mlq4MCBZf/+4IMPVGBgoJo3b55SSqmvv/5aff/996pPnz7qnnvuKbvu1VdfVbfccovpfZYsWaLO/tb94IMPVEBAgFq0aJFSSqmXXnpJNWnSRH3yySdKKaXmzp2r6tevr0pKSsqub9GiRdnzS0pKVGJioho3bpxSSqni4mI1bNgwde+991ZYf2eeFxAQoBYuXKiUUurTTz9VERERqri4uOxzm30NnKlXRex2u+rVq5eaOXPmGV/Tjh07qhYtWqh27dqVvX/ppZecvq/wDhLiwiVVDfGIiAjD+5X23yqlVE5Ojvrrr79M72MW4g0aNCj79y+//KIAlZGRoZRSaseOHQpQR44cKbv+9BAvrcf27dvLPvbVV1+pkJAQZbfbK6x/Rc+rX79+Wfm2bdvOqIujr4Ez96/IK6+8oq699tqy67/88ku1dOlSZbPZ1JtvvqnS0tLUG2+84dS9hPeR2SnCJQkJCfj5+XHw4MFKPT8yMvKMf+/btw+Axo0bl32sXr16JCYmunzv+vXrl/23v7//GR8LCAgAoKCgwPC5pfX4v//7P6xW3cuYn59PbGwsx48fJzY21mH9K3re6bNCgoODz6iLo6/B3Llznbq/mS+//JJffvmFefPmlXWlXHvttVitVubNm0efPn1Yvnw5cXFxDu8jvJeEuHBJgwYNuOaaa5g/fz5jxow5o6ykpISrr76ayZMn06tXL6fu17JlS0D3+0ZERACQl5dHcnIy3bp1AyAwMPCM8D158mTVX4hJPT7//HOaNm1a9vFjx445DMrKPs/oHkZfg6rcf+7cuXz00UfMmzeP4OBgdu7cSfPmzQkKCgJg3rx5zJkzh99++402bdo4VVfhfWRgU7hsxowZbNq0iTfffLPsY0VFRTzyyCNkZ2fTs2dPp+/Vq1cv+vTpw6xZs8o+Nn36dObMmVP277Zt25KcnIzNZgPgm2++qfqLMKnH6a9pyZIlpgO4VX2e0T2MvgaVvf8XX3zBzJkz+fDDDykuLiYnJ4cpU6aQkpICwJYtW7Db7VitVgoKCtiyZYvT9RVepqb7c4RvSk1NVWPHjlWJiYlq4MCBKjExUU2YMEHl5OQopZSaMWOGatGihapfv74aPny4+vzzz1W7du1UUFCQGjhwYNlccqWUOnr0qBo9erTq16+f6t+/v/rXv/6l8vLyysoLCwvVddddp9q1a6euvfZa9eqrrypADRw4UB06dOiMe48YMUKtW7dOde3ateyalJQUlZiYqACVmJio3nzzzTPq8v3335fVY9SoUeq8885TF154obrqqqvUgQMHlFKqwvo787wRI0aUq0tpX7ejr4Gj+xtJSUlRfn5+Cij32Lt3r1JKqRdeeEHNnz9fKaXHD+67774qfDeImmRRSiaOCiGEr5LuFCGE8GES4kII4cMkxIUQwodJiAshhA+TEBdCCB/mEyGulCIvL092YBNCiLP4RIjn5+cTGhpKfn5+TVdFCCG8ik+EuBBCCGMS4kII4cMkxIUQwodJiAshhA+TEBdCCB8mIS6EED5MQlwIIXyYhLgQQvgwCXEhhPBhEuJCCOHDJMSFEMKHSYgLIYQP86/pCgjhlfLzITsbCgogMBDCwiA0tKZrJUQ5EuJCAGzfDj/9BElJsGIF7N4NZ2993KIF9O0LvXvDxRdD1641U1chTuMTp93n5eURGhqKzWYjJCSkpqsjaouiIvj2W3jtNfjjD/D318FdUmL+HKtVP4qLoWdPuP9+uO46CA6uvnoLcRoJcVE3/fgjjBkDR4/qULbbXb+H1apDv0EDmDkTRo4Ei8XtVRXCERnYFHVLRgbccgtcfjkcO6Y/VpkAL32eUnDyJIweDVdfDamp7qqpEE6RlrioOzZuhCFD4MQJ3R3ibv7+UK8efP899O/v/vsLYUBa4qJuWLUK+vWDtDTPBDjo+2Zn60HPX37xzOcQ4iwS4qL227RJB2tenuNBS3ew26GwEK68Ev7807OfSwgkxEVtl5ur+79tNs8HeCml9MyXK6+E48er53OKOktCXNRujz4KR45UX4CXstt118q4cdX7eUWdIyEuaq/fftNT/6o7wEsVF8NXX+mHEB4is1NE7aQUnHsu7NxZ+SmE7mCxQEwMHDoEAQE1Vw9Ra0lLXNROf/wByck1G+Cgf5kcO6ZXhgrhARLionZ6/XU9b9sbWK16ab8QHiDdKaL2OXYMmjSp+Vb42bZtg/bta7oWopbxkqaKEJVUXKzDMSkJ1qzR7zdv9r4AB+jRAzp21Btn9ewJvXrpfwcG1nTNhA+TlrjwHUaBvWGDXsTjqwIDoUuXv4O9Z0/o1EmCXTjNbSG+ZcsW7r77boYOHcqECRPKlc+dO5dVq1Zhs9kYOXIkAwYMcPreEuJ11JEjevn66tW1I7CddXqw9+qlV5u2bFnTtRJeym0h/sUXX7B582bq1atXLsSzsrIYNGgQSUlJ5Ofn07t3bzZu3IjV6ty4qoR4HaGU3qRq/nz9WLOmpmvkPbp00StAhw3Twe7kz46o/dzWJz5ixAi2bdtmWLZy5UratWuHxWIhJCSEevXqsXv3btq2bWt4fVFREcWnbVKUVxdaX3VVYSEsXQrffaeD+8CBaq9CCZBz1iMXPXXL3+QRCEQB9YBq2UF840b9mDoVGjf+O9AHDwZp2NRp1TKwmZaWRlhYWNm/w8PDSUtLMw3xqVOnMmXKlOqomqgJ6en6UIb582HhQr083c0UcBw4BBw87X3pfx8GstCBXZUmQhDQEIg5630sEA+0PfVoUIXPUc7Ro/DOO/oREqK3173ySrjiCmjUyJ2fSfiAagnxhg0bkpOTU/bv7OxsGjZsaHr9xIkTefTRR8v+nZeXR3R0tEfrKDwsJwc++QQ++wyWLXPrUvhUYNNZj62A7bRrooBzgDigA3AJOljDTj3CT/vvMHQLWwHFBo8ioAA4if5FkXbqUfrfa4GjwD50Kx90sLfh71BvB/QCWlHFlnxenl5I9O23enVoYiKMGKEPvoiMrMqdhY/waIgfOHCA5s2bk5iYyKOPPopSivz8fHJzc2ndurXp8wICAgiQJcq1w9at8MYb8NFHbmlxpwPLgD+AdcBGdHiCDsrOwPnAWHRLOO7UoybOqS8C9gM7T3vsApYDewE7EA30PvXoc+p9pdvSSsFff+nH44/r04bGjdNTG0Wt5baBzXnz5jFz5kwCAgIYN24cl1xyCR07dmTXrl34+fkxd+5cVqxYgc1mY/To0QwcONDpe8vApo8pKoJvvoFZs3R/dxUcRQf2b8Dv6FY26NZ0b6ALOrg7o8PPV064tKF/Ca0GVp16v+tUWXPgPGDIqUdcVT9ZYqIO8+uvlwOdayGZJy7c59Chv/tqU1IqdYtCdGB/A/wK7EAPMHYHBpx69Ee3umubE8AadKD/fupRAHREh/ml6Ndf6Z+A6Gj417/gzjshPr7qFRZeQUJcVI1SsHixbnV/+22l+rqzgIXo4P4RyES3sP8BDER3j0S4rcK+w4YO8p+An9H9/MHoIB8GXIceQHWZxQJDh+rW+WWXgZ+fm2osaoKEuKickhL4+GOYNk3vFuiiE8BX6OBehB4AvAC4GrgKPeAnznQQHeYL0b/sCoDBwCj0161BZW7aogU8/DDccYesEvVREuLCNUrpqYGPP64HLV1Qgu4ieR8d3n7AUHRoX07t7CLxlFzgO+AzYAF6LOAf6EC/gkoM5LZqBc88A6NGyUIiHyMhLpz3++8wYQKsWOHS03YDHwAfoedo9wNuA65HT+1zG6tVHwTRsyc0bar/SvAW48fr2Tlr1sCWLXofGDc5CfwPHeiL0QF+MzAO3Z/uki5d4PnndTeLxVeGies2CXFRsY0b4bHH9AIdJxWhu0veQg9UNgZuQYd3O3fUqTSwe/X6e+Oorl2hXr2/r7nwQj0n3Y2B6TI/P0hI0MFdGor5+fprmpT092PzZrfUMxWYA7yB/uU5CLgb/deOS5N2BwzQvwTPO6/KdRKeJSEuzO3dC088AZ9+qrtRnJADvAu8gm51DwPGoLtNqrQoITpaD8YlJhoHtpEdO6BzZ720v6ZYLHredp8+jq/Lz4dNm3RLfdUqvZL16NFKf1o7ekB0Jrr/vAl67vwd6F+oTrvqKnjuOejQodJ1ER6mfIDNZlOAstlsNV2VuuHoUaXuvVepgACldHxX+EgB9RioBqBCQN0DareTzzV9tGun1COPKPXHH0oVF1futfz3v0pZLFWrR2Uffn5KPfpo5epdUqLUypVKTZyoVJcuVarHblCPgIoC5Q/qNlC7XLmH1arUbbcptX9/5V6L8CgJcfG3wkKlnn1WqXr1nP4B3wZqDKhAUDGgngaVVtnAsVqVuuACpV58Uant293zmoqLlerbVyl//+oNcH9/pRISlMrLc8/r2LtXqddeU+riiyv9Wmyg3gHVGpQfqFtA7XDlHkFBSv3730rl5rrnNQm3kBAX2vr1SnXr5vQP9H5Qt4KygmoL6s1TIeFyuISFKTV8uFKzZyuVluaZ13bsmFKtW1dfkPv7K9W4sVL79nnm9WRkKPX550qNHq1UgwYu168I1Ieg2pz6/3cTqGRX7tG2rVLLlnnmtQmXSYjXdYWFSj31lNMBlwbqQVBBoFqC+hhUcWWCrlcvpd5/v/padYcOVU+QlwZ4cnL1vK6CAh3oAwZUKsxng0o4FeY34ELL3GJR6sEHpVXuBSTE6zIXWt85oJ4FFYHuNpkOKt/VgAsOVurWW5VatapmXu/x40r16+e5PnKrVfdf11Tf8aZNSo0bp/+6caHexaDmgGoHKgDUw6AynH2+tMprnIR4XeRC67sY3VXSGFQYqMmgslwNt9atlXrpJc91l7iipET3LQcFua9V7u+vBzGfeUZ/bWtaZqZSM2cq1bGjyy3zGaAiQcWi+8+d+itLWuU1SkK8rnGh9Z0Eqjd6RsM9oFJdbZUOG6bUwoU6OL3Nrl1KDRnydwhXJrxLZ+/066fUhg01/YrKs9uV+u03pUaMcOk1pp36/+0Hqjuo3539ekirvEZIiNcVLrS+s0CNR/eTng9qoyvBFhSkW2WeGtRzt507lXroIaXCw89sVZv9YioN7pAQpe66S3dh+IKUFKWeeMKlrpZNoC4GBajrQR2UVrlXksU+dcGWLXDjjbB+vcPLFHpPk/vQe3O8gF6o49ROGlYr3HYbPPUUxFV5B+zql5enF9qUrqBcuRIyM/VCoYAACA/Xq0NLH717w2lHDvqMY8f04p1Zs/S+7xVQ6D1aHkCfWvQKetVthQvy27bVG6QlJlaxwqJCNf1bxBnSEq+Cb75xqvW1D9QVp1pdN7nadXLttUpt3VrTr1S4Yu9epW66yelB3lz0rCQLqEtBHXDm+yIwUKkPP6zpV1rryXZltZVS+mT0q6/W51s6MAd9Ms4O9Laws3Fyn+pBg/SS8nnz9D4mwne0bAmzZ8OGDfqA5QqEAv9FH423F72x1rvo3/qmCgvh1lvhoYdqdv+aWk5CvDay2WDkSJg0yeFlGcANwE3oP5HXAxc5c/9u3fTeHosXy5/Lvq5zZ/juO/jjD+jXr8LLz0d/n9xx6jEUOFDRk15+GS6/HE6erGJlhREJ8drmwAHo3x/mznV42TKgG7rl/SMwHSeO/YqP16fVJyXBpZfKVqW1Sf/+Osi/+w46dXJ4aQjwEvp7aB/QCfiyovv//LP+hb99uxsqK04nIV6b/PmnHnBbt870kiLgCfSxZ53Qp8VfVtF9rVb497/1AOnIkXJoQG1lseiulXXrdFdcgOPNa0tb5Tei94a/D31GqqmdO3WQL1jgpgoLkBCvPd57T++ffeyY6SX70UegvQTMQM86qLDvu317/cvhhRfkpPS6wt9fn9y0dq3e9teBEGAW8An6xKYL0N9nprKydNfKiy/qcRtRZRLivq64GO6/H26/3eGUsd+BXuj9vtegT31x2BlS2vpetw769nVnjYWv6NRJD1w70SofDaxGf3/1AH5wdLFS+nvr5pv1PuqiSiTEfVl6uj5G67XXHF72JvpA3QuAFThxZJe0vkUpF1rl5wKr0OelXgE8DjickzJnDgwcCEeOuKu2dZKEuK9KTdVT/H791fSSQuBO4C5gEvq4NIdnWkrrW5hxslVeD32W6tvAy8CVQLaj+65apQdV9+1zY2XrFlmx6YsOH4aLL3Y40n8M+CewDvgYuKaie7ZvDx98IOEtKrZ5s57/nZTk8LJV6BBvAnwPOFzHGxenp6y2beuuWtYZ0hL3NQcO6D9BHQT4BnT/92F090mFAX733dL6Fs4rbZU/8YTDy/oAf6H/IkxEz2QxdeiQPpx561Z31bLOkBD3Jbt362/03btNL/kDPX0wHj3Q1NnR/QIC4J134PXXpe9buMbfH55+Gr76CkJDTS9rBfwJJKDHZBY6uufRo7qLcMMGd9a01pMQ9xF790L2uEdhv/kErh+AIcCF6B+WaEc3jI3Vf77efrtb6ynqmH/+E5YvhxYtTC+JRH8/Xo0e8Hzb0f2OH6dg7FiSc3PdWctaTULcB+zdqxvgQ058RkZCH8Nr5gBXoad6fQk4bFd36warV+sBJSGqqmtX/f00YIDpJUHoPXkmAmOBpzDed8XWujVXTZ9Ov3Xr2FTBnj9CkxD3cgcPwuDBusvwr6QABgct40SrXmdc8xp6/5MH0JsS+Tu64XXXwbJl0Ly5x+os6qCYGPjlFxg71vQSCzAF3RJ/Gj1j6vQgz2nZkis+/pif8vI4UVzMxRs2sF1a5BWSEPdiKSk6wPfu/ftjazcFcGHQn6Se0wsFPAncD0wDXqSCBTzPPgtffAH16nmw1qLOCgyEN9/Ue5X7+Zle9n/Ae8DzwAR0kGe2aMHQOXNYUlBQdt2xoiIGb9jA7rw8D1fct8kUQy917Jge49m2zbi8XXwBg1Nb8kbuUd5C/2CYCgvTG/RffbXb6ymEoSVL9F99J06YXvIxcCtwZ3g4q77/njV2u+F1zYOC+L17d1rI4LshaYl7odxcvRDTLMABkve8xKzco7wU3tJxgLdsqQeeJMBFdbrwQt1P7mBHxJuAmVFRzMrNZc306aZ7qRwoKODiDRtId+IkorpIQtzLKKVPOVu71tFVr6J7FGfyWngyuyN7GV9Wuny+s8OJhkJ4RqtW8PvvemdNA0fj4pjx9dd63/tvvgEHQb4rL4/rt2yh2KS1XpdJiHuZqVPhS4ebM7+DHsL8DzCO/UcCGeD/J8nhZwV5587w22/QtKnH6ipEhSIj9dYQZx04cSgujoEff8xWpXSr/ckn9V7m775reqtFGRk85GCNRF0lIe5Fvv22okVwn6InaD0JPFL20SPHAxkYsJzNoaemH/bsqfskY506ZE0Iz4qI0CdBXXghAPuaN2fA7NnsOP2agQPhkUfg00/hf/8zvdVrhw/zXkqKZ+vrY2Rg00ts2gTnn+/oOMxv0buhjMdsHkp0/SJ+O/cuOi54CRo08FBNhaikvDz23347F4wZw0Gzg0XmzIH334fJk3WwGwiwWFjSrRv96tf3YGV9h7TEvUBaGlx1laMAXwWMBMbgaCJhfEIAcQvekQAX3ikkhEazZ9Mu2sFa4htugGHDdL+iyfL7IqW4dvNmDshe5ICEeI0rKoLrrz9zLviZDqLXYg4EZmIW4N26wU8/Qf0Gcu6l8F7Bfn5826kTA8xa0RYL3Huv3oxt4kTTH4xjRUVctXkzuSUlHqytb5AQr2EPPKC7r43lAMOAKOALzNZiduyoz6GNjPRIFYVwq1A/P77v3JnzIiKML/Dz0wEeH6/3tzc5cnB9Tg63bd+OD/QIe5SEeA16+22YOdOs1I6eSXsQfRqmccslIUEP/sfEeKSKQnhEuL8/C7p0oVe4yTElQUG6S6VePT3aX2h8BPOXx4/z3IEDHqyp95MQryG//6638Tb3OHpfwv+hN5YtLzZWb1fRuLH76yeEp9X392dB5860MluJGR6ut4o4fBhefdV0DvmkvXv5Ni3NcxX1chLiNSA1FYYP12ccG/sIeAG9VdAFhlcEBMDXX8s+VsK3NQwMZH6nToSZ7bUSFwePPQYLFsD335ve58Zt2+rsHisS4tVMKRg3Do4fN7tiPXAHeh74rab3eeONcusnhPBJncLCmHPuueYX9OsHN94IM2aY7kWRU1LCv7Zvx14H+8clxKvZ3Lm6BW0sBxiBPszqOdN73HcfjBnj/roJUVOuatiQZ1u1Mr/g1lv1FKzJk+HkScNLfs/MZObhwx6pnzeTxT7VKDVVzyQx39jtFvSRshswO1Z28GC9+M3f4abhQvgepRQjt25lrtmfqVlZer/yxo3hpZcMt7sNtVrZ2Ls3rX04J1wlLfFqUtqNYh7gs089PsQswFu31tuBS4CL2shisfB++/Z0DwszviAiQp/ruXUrfPSR4SU2u73OdatIiFcTx90oycA49JL6Kw2vCA/Xe6s4WuwmhK+r5+fHN506ERsQYHxB27Zw553wySc6zA3UtW4V6U6pBo67UfKB89C/T5ejTyM8k8WiA/xK43wXotb5MzOTC9evp8gonux2ePRROHoU3nkHDKYo1qVuFWmJe1jF3SiPAbvQKzLLBzjoNQ8S4KIu6Ve/Pm8kJBgXWq16JefJk3rFnIG61K0iIe5hX3zhqBtlBTD91KON4RVXXgkTJnimbkJ4szFNmjDGbCVbTAzcf7/etnbNGsNL6kq3inSneJDjbpRCoDvQBPgFo42tIiNhyxZo0sSj1RTCa2UVF9Np9WoOnnaAchmlYMoU/UPy/vt64OgsdaFbRVriHlJxN8o0YC/wFmY7E772mgS4qNsi/P15t10740KLRe8gZ7frHxYDdaFbRULcQxYscNSNshV4FngaaG14xbBhemtlIeq6IVFR3G7WmqlfHx56SO8Cl5RkeMnvmZl8nJrqwRrWLOlO8QC7Hbp3h40bDUuB/ujulL8w2l5WulGEOJPDbhXQW9cePAjvvac3FjpL86Agkvv0IdhsjxYf5taW+Ny5c3n44YcZN24cv//+e7nyli1bMmjQIAYNGsTrr7/uzk/tVT77zCzAAWahT+p5F7P9waUbRYgzOexWAbjnHj0I9dVXhsUHCgp448gRD9WuZrmtJZ6VlcWgQYNISkoiPz+f3r17s3HjRqynnaX31FNP8dRTT7l8b19qiRcWQvv2ZgeSpAJtgbuB5w2fP2wYfPON7u4TQpzp/5KTedfsoOSPPoLPP4fZsw032I/292dP375E1LIlz25ria9cuZJ27dphsVgICQmhXr167N69+4xr/vjjD1588UUmT57MoUOHTO9VVFREXl7eGQ9f8dZbjo5amwyEA5MMSyMj4c03JcCFMPPf1q05J8h4PQWjRkFUFMyaZVh8oriYlw4e9GDtaobbQjwtLY2w0/Y8CA8PJ+2sjdpfeOEFHnnkEW666SauueYa03tNnTqV0NDQske0j6w1z86GZ54xK90KvIMe0KxneIV0owjhmMNulcBA3a2ydKnpIOfLBw+SanJKkK9yW4g3bNiQnNOOa8/OzqZhw4ZnXNOrVy8A2rRpw6FDh864/nQTJ07EZrOVPU6Yz9PzKq+84mif8EeATsDNhqUyG0UI5zicrXLeefrx2mtgcIhyrt3Os/v3e7iG1cttIZ6YmEhycjJKKfLy8sjNzSU+Pp6Dp/58WbRoEb/88gsAmZmZ+Pn5ndFyP11AQAAhISFnPLzd8eN6d0xjvwI/Av8Fyo+OBwbC9OnSjSKEs6bFxxNhNtPk7rv1kW4//WRY/NaRI+zxoS7airgtxCMiIpgwYQIPPvgg48ePZ+bMmezdu5fhw4cDEBsby1tvvcVzzz3H+PHjee+999z1qb3Cc8/p7pTySoCHgcuAiw2fe9dd0LKlx6omRK0THRDAo2ZnEzZrBpddpgc4DbpOipTiCfOBK58j88TdYP9+feq8cVfbh8AYYCPQsVxpWBjs2SOn1QvhqtySEtqsXMlRox+8Y8f0kW533QUm42/revakm8FSfV8jKzbdYPJkswAvBJ5Eh3j5AAd4+GEJcCEqo56fH0+2aGFcGBsLV1wBc+ZAfr7hJY/Xkta4hHgVbd+u/2ozNgdIASYalsbEwIMPeqhiQtQBtzdpQmuD/cQBPVMgNxfmzzcsXpCezrKMDM9VrppIiFfRzJl6s6vySoAXgBsB49bCpEmGG68JIZwUYLWaH7AcHQ1XXw2ffgo2m+ElM2rBVrUS4lWQk2N61B/wNbATeNSwtGVLfearEKJqro+NNT+Xc9Qo3ddpshvd12lppJjtx+IjJMSr4JNPzGakKOA54J9Ae8PnPv00mC08E0I4z2qx8Hx8vHFh/fp6YPPrrw0HroqVMl/G7yMkxCtJKdPVvcBCYD366LXyOneG0aM9Uy8h6qIhkZFc2KCBceHVV0NWFixebFj81pEjFNvtHqubp0mIV9Ly5Y52KnwOuBToYVj6/PNQC3fEFKLGWCwWppm1xmNiYNAgvcOhwQDW4cJCvvORVeFGJMQrybwVvhxYhlkrvGdP+Mc/PFQpIeqwPhERXBYVZVz4z3/C7t2wYYNh8Swf3qZWQrwSjh2DL780K30TfXbmAMPSu++W5fVCeMrdzZoZF5x7rj7w1mS/8V9PniTZZAaLt5MQr4T33oOiIqOSdGAucAdmBx+PGOHZuglRlw2NiqKl2bzx4cN1P6jJtMI3fbQ1LiHuopISvee3sY/Rp/UYj1redhuEhnqoYkII/CwW7mza1Ljwggt0//j//mdY/EFKCrkGOx96OwlxF/34Ixw4YFSi0CfXjwIiDJ97552eq5cQQvtX48YEGvVZ+vnpmSoLF4LB3PDMkhI+P3bM8xV0MwlxF5kPaP4JbAOMV/AMGQJt23qoUkKIMjGBgVwfG2tcOGQI5OXBn38aFs88fBgf2BPwDBLiLti/X/8SN/YWekCzp2HpuHEeqpQQopxxZl0q0dHQowecOtvgbOtyclhrcliNt5IQd4HJPjroAc0v0a3w8n/GnXMOXH655+olhDhT34gIupktxR8yBFatgpMnDYu/OetYSW8nIe4C8xAv3ZdhlGHp2LFQyw7YFsKrWSwW89Z4//76OC2TFZzzJcRrp8xMff6qsa+AoRgNaAYEwO23e65eQghjoxs1or7R0uiQEBgwwLRLZWNuLvt86Pg2CXEnLVwIxcVGJenAImC44fP++U9o1MiDFRNCGKrn58etjRsbFw4ZAsnJZlPNfGoZvoS4k8y7Uuajv4xXGpbKCfZC1JzRZi2obt2gYUPT1vh8CfHapahIzw839hUwBKhfriQkBAYP9mDFhBAO9QoPp3FgYPkCPz/dpWIy1XBpRgaZxn96ex0JcSf8+ScYn+KUCfyMWVfKkCE6yIUQNcNqsXBldLRxYd++sHcvHD1arqhYKX5KT/dw7dxDQtwJ5l0p36FXag4zLB1m/GEhRDUaZhbiXbtCcDD89Zdhsa/MUpEQr4BSFU0tHAxEliuxWGRuuBDeYHBkJCFWg6gLDIRevUxD/If0dIp84LAICfEKbNumtyEurwRYDBhvDp6YKLNShPAGIX5+XBJZvqEF6C6VdesgP79cUUZxMX9mZnq4dlUnIV4B81b4WnSf+EWGpdKVIoT3GNawoXFBYqI+e3PdOsNiX5ilIiFege++MytZDMQCHQ1LJcSF8B5XREcbbIiBnmbYtq1P94tLiDtQUACrV5uVLkK3wst/a8THQ4cOHqyYEMIljQIDSYww3iKavn31XioGdufnk1pY6MGaVZ2EuAObNpmd4FOAPkfTvCtFjmATwruYzlLp0kVPMzRpdSdlZ3uwVlUnIe7AmjVmJX8BeeiZKeVJV4oQ3se0X/zcc3Wra8sWw+I1EuK+KynJrGQx0AJoVa4kIADOP9+DlRJCVEqH0FBiAgLKF9SrB61amYa4tMR9mHmI/w4Mwqg/vEsXCAryXJ2EEJVjsVjoFR5uXNixo4R4bVNQAJs3G5UoYB3Q2/B5PY0P9hFCeIGejkJ850493fAshwsLvXpwU0LchPmg5l70/PDuhs+TEBfCe/U0O+2nY0f9A79jh2GxN7fGJcRNmHelrEN3o3QxLJUQF8J7mbbEmzWD+vV9sktFQtyE+cyUtUACUP43ekAAdOrkwUoJIaokLijIeHDTYtGzVLZvN3yeN89QkRA34bgl3sOwpHNnGdQUwptZLBbz1niLFqYn/UhL3MeYD2qCDnHpDxfCV5n2i7doAQcPQklJuSJvHtyUEDdgPqiZAhzFLMR79fJgpYQQbmE6zbBFC/2Db3BIBHhva1xC3MD69WYlW0+972xYKi1xIbyfaXdK8+b6vUmXyrqcHA/VqGokxE9TWAiffQYvvmh2xV4gFL174ZlkUFMI32A6uBkWBtHRsH+/4fPeOnyY91NSsBl0t9QkCXHg8GGYOBEaN9an05tMFUWHeCuMVmparfDBB5CX58GKCiGqpMhuZ3ZqKvlmJ/Y0b24a4gcLC/m/5GQaL1/Og7t2scdLftjrdIgrBW+/DQkJ8J//wMmT+mPm9mG0XwrowdC779Zb0JocoC2EqEEbcnLosWYNt23fTrZZa9rBDBUAO5BdUsLrhw/TftUqXjpwgBLHoeFxdTbEDxyAwYPhzjvBZoPiYmeetRdoaVpqt+vB7QsugAcekFa5EN6gyG5nyr599Fyzhu02Gw4jt1kzSEmp+J5KUaQUj+7ZQ9+1a9mem+u2+rqqTob4unXQrRv88UdFLe+zlXanmCsp0fecMQMGDtSteyFEzbCVlHD5pk08vW8fJUCFbbXoaMjIMJxmaMQOrM/OpmdSEr9lZFSprpVV50J8zRrdUs7Kcrb1XSoPPb3QcYiXKinRvywGDJAgF6Im2EpKGLJhA0syMnD6zPqoKN0Kc+GHthjIt9sZsmEDi2rgh71OhfiOHXDxxfpga9cHmEsHO1o6/YziYr2K99JLDQ/TFkJ4SIlSXLt5Myuzsih25c/t0tN/0tNd+nx2oFgprti0iTVZWS49t6rqTIgXF8PIkZCbW5kABzhy6n2cy5937VqYPLkyn1MIURnTDx3i55MnK+4+OVtUlH5fiVPu7ej+9+u2bq3WaYh1JsT/+1/YsMHVLpTTZZx638DlZ5aU6LnnK1dW9nMLIZyVbLPx2J49jgcwzYSEQHCwyy3xUiXAwfx8Ju3dW6nnV0adCPFt22DSJD17pPIygHqAwSIBJ1itcOON0q0ihCfZleLmbduc7wM/m8WiW+NV6NsuAV49dIjlmZmVvocr6kSIP/OMO+6SQWVa4aVKSmD3bvj8c3fURQhhZGF6Oquys13rBz9bVFSlulNOZ4Vqa43X+hA/dgy+/LIq3SilTlKVEAf9S3769KrWQwhhZsbhw/hV9SYREXr6WhWUAEsyMthhs1W1NhWq9SH+3nuuzgU3kwFEVukOdrveXGv1anfURwhxur15efyUnk6VhxQDA822MXVJgMXCm0eOVHxhFdX6EH/nncrORjlbBlVtiYPeKOujj6p8GyHEWT5OTcXfUn5fI5cFBRkemOyqIqV4LyUFu4eX5dfqED95EtzXLZWBO0K8qEivFBVCuNefmZlV6wsvFRjolhAHyCopYZeH99+o1SG+dq0775YHhLjlTlu3uu17RAgBKKVYnZ1duWmFZ3NjiFvw/GES/u682dy5c1m1ahU2m42RI0cyYMCAM8qnT59Oeno6R44c4YEHHqBDhw7u/PTlJCXp7gs3dG+d4oY/1dCDrFu2QHfjA4KEEC46XFDAyarPXtDcGOIBFgtJ2dmMatTILfcz4rYQz8rKYtq0aSQlJZGfn0/v3r3ZuHEjVqtu7O/evZsffviBn3/+mf3793PLLbewdOlSd316Q7t2uWtQ0/127ZIQF8JddrtzAYYbQ7xQKXb6SnfKypUradeuHRaLhZCQEOrVq8fu3bvLyhcvXkzPU+eXtWjRgu3bt1No8oUqKioiLy/vjEdl5OVVdYGPZ1itsk2tEO6U585l7idOmB4MURm5Hl6C77YQT0tLI+y0U6TDw8NJS0szLQ8LC+OEyYT6qVOnEhoaWvaILt2UxkXe2goH766bEL7GrT9Obj5L09PtSLeFeMOGDck57cVnZ2fTsGFD0/KcnBzTcJ44cSI2m63sYRb2FQkJ0a1eb2O367oJIdwj2J0/6C1b/n1oshvU86vy8iOH3PbKExMTSU5ORilFXl4eubm5xMfHc/DgQQAuuugikpKSANi/fz/t27cnMDDQ8F4BAQGEhISc8aiMuDjvDHHQdRNCuEdcUJD7blZYqPvF3SDAYqG5O+tmwG0DmxEREUyYMIEHH3wQm83GzJkz2bt3LzfccAMrV66kdevWXH755UycOJGjR48ya9Ysd31qUz17eudUPotFnywkhHCP1iEh1LNayXXHIJgbQ7xEKXqFh7vlXmbcOsXw+uuv5/rrrz/jYytP23/1/vvvd+enq9CpcVQ3CQTcMwLepg2EhrrlVkIIwGqx0CM8nD/csXOgG0PcDvT0cIh7aWeDezRpArGx7rpbA6Dq3yD+/tCvX5VvI4Q4y3kREQS4Y9m9G0M8yGKhg4dbbLU6xAFuuUUv+Km6SPROhlVTXAyjR1e9NkKIM42KjaXIHdO+3BTiARYLI2Nj8ffwwFytD/E773THNrSgW+IZVb5Ly5YweHCVbyOEOEu38HB6h4dXPdTcFOJFSnF3s2ZVvk9Fan2Ix8fDkCFQ9Vk+DahqiPv5wX33ee+MGSF83f1xcVWfM56dDfXqVekWFqBrvXr0joioam0qVCfiZNIkd2xH24CqhLjFAg0awG23VbUeQggzw2NiaBEcXLWDIdLT/z71vpIUMLllyyrdw1l1IsT794e7765qazwSyIJKbjmvlD6gokGDqtRBCOFIkNXKnHPPrdoqyfR0iKz8ATD+FgvDY2K4JiamKrVwWp0IcYAXXoCmTavSldHg1PsMl5/p7w+jRsFVV1X2cwshnNWvfn3ub9ascq3x/HzIza10S9wChPv5Matt20o9vzLqTIjXqweffqpDvHKzkEq3kjzq0rP8/fVUx9dfr8znFEJUxtT4eNqFhrp+0k/pKfdRUZX+3B+1b0+Mm6YoOqPOhDjobpWvvtIh7nqQtzz13vmjgvz99ffCb79V6XtCCOGiUD8/FnfrRlxQkGtBXrpPUyV/YN9p144rT9szqjrUqRAH3aXx9dc6YF3rIw8HonE2xP39oVEjWL4cWrWqREWFEFXSKDCQ5d270zo42PkgT0/X713oE7eiu1E+aNeOMU2auFzPqqpzIQ46yH/7Dc45x9UgbwXsc+rKiy7Sp9q3bl2JCgoh3KJJUBArevTg2lOt4wqj/MQJiIhwep64v8VCTEAAC7t04dYaCHCooyEOcN55+oi0e+/VXSv+Tu0i0xJHLfGAAN33/v77sHCh7gsXQtSsyIAAvujYkXkdOxLp7++4VZ6Sov+ErkBp2+/G2FiSExMZUoP9pXU2xEFvQvXKK7rL4/LL9aCn4zBvhVmIW60wbhxs367ngrtjCwchhPtcGxNDcp8+PBQXZx7kBw443Es8wGLBAgyOjOTXrl354Nxzqe9cC9Bj6nSIl+rbF775Rp/I9PjjUL++2ZXm3SnBwfDf/8o+4UJ4s4aBgUxr3ZrGZt0l+/dDixaGRaFWK+Pj4tiVmMhPXbsyuApzyd1JQvw0cXEwZQpMnWp2RUv0PPHyG2HZbLoVLoTwbscLCzlUUFC+ID8fUlNNW+IPn3MO/2ndmngvO5ZLQtxAly5mJeeeer/FsPTUwUVCCC+WlJ1tXHDwoF5abdIS73LaGcHeRELcQPfuZn3aLdDL79cZPk9CXAjvl2R2EPL+/Xpwy2TnQU+f0FNZEuIGwsKgfXujEgvQDQlxIXyXaUv8wAEd4AYHEET7+3v8rMzKkhA3YX60Ww9grWHJunXu2C1RCOFJa8xCfN8+066UnuHhWLx0ypmEuAnzEO+O7hMvPzAig5tCeLfjhYUcNBrUBEhOBpONqzx9TmZVSIibcBzixcjgphC+x7Qr5fhxOHYMOnY0LJYQ90Hmg5vtgBDMulQkxIXwXqaDmlu26EHNc881LPbWQU2QEDdlPrjpB3QFjNNaQlwI72XaEt+yRe9UZ3AyvTcPaoKEuEPmXSr9gN8NS2RwUwjvZRrimzc77Erx1kFNkBB3yDzEBwNbMTogwmaT1rgQ3mhfXh4HjAY1Cwpg1y7o1Mnwed7cHw4S4g6Zh/gFgD+w2LD0u+88VCEhRKV9V3rgw9l27IDiYp8c1AQJcYfMBzfDgETMQnz+fA9WSghRKfPNQnzjRn0IhMne0d48qAkS4g6FhTnaR+UiYJFhycaNegWvEMI7ZBYXszQjw7hw1Sro1cuwxdY4MNCrBzVBQrxCV1xhVjIYvS2t8f7i0qUihPf4KT2dYqXKF2Rn60HNvn0Nn3dldLRXD2qChHiFhg0zK+mLni9u3BqXLhUhvMf8tDTjgtWr9fvevQ2Lh0VHe6hG7iMhXoFevaBxY6OSIPQA50+Gz1u6FDIzPVcvIYRziux2fig9APlsf/2lZ6UY9HuHWK1ec/CDIxLiFbBaHXWpXA0sAGzlSoqK4CfjfBdCVKM/MzPJKC4uX1BSAitXmnalXBIZSYhrJ6nXCAlxJ5h3qVyDDvCFhqXSpSJEzTOdlbJtG2RlmYb4sIYNPVgr95EQd8LgwWB8IlNjdJfKV4bP++EH3SIXQtQMpZR5f/hff+m+0pYtyxVZgCt8oD8cJMSdEhoKl1xiVjoc+A7IL1eSkQF//um5egkhHNtms7E7v/zPJkrBH3/AeecZTi1MjIigkdlhyl5GQtxJ5l0q1wI5wM+GpV984aEKCSEqNPfYMeOC5GR9ks/FFxsW+8KslFIS4k664gqz1ZvNgPMx61KZM0dPRRVCVK8iu513UlKMC3/+GeLiTLee9ZX+cJAQd1qjRtCnj1npcOBbjE77ycnRQS6EqF7zT5zgSGFh+YLiYliyRPeRGrTMWgUH08FgS1pvJSHuAvMulevQXSrfGJbOnKm74IQQ1Wfm4cPGBatX6wErk4GuYT6wSvN0EuIuuOoqs5I44B/A24alW7boMRQhRPXYlpvLErO9Un7+GTp3Nt3wype6UkBC3CUdO0JiolnpWPSuhjsNS2fN8lClhBDlvHHkiHFBTo6eMmbSCo8PDmZQgwaeq5gHSIi7aNw4s5Kh6Bb5O4al8+bB0fJnSAgh3CynuJiPzH7YlizR7wcNMiy+q2lTrD7UlQIS4i67/nqIijIq8QduBz7AaICzuBjefdezdRNCwKfHjpFldEaiUvC//8HAgYZ7pQRZLNxm0sXizSTEXRQcDGPGmJWOAdKB/xmWvvWWDnMhhGcopcwHNNeuhb17Yfhww+KRsbFEBwR4sHaeISFeCWPHms0ZjwMux2yA89Ah+P57D1ZMiDpuRVYWG3NzjQvnzdMDmu3aGRaPa9bMgzXzHAnxSmjdGoYONSsdCywBNhuWzpzpoUoJIZhl1go/dAhWrIB//tOwuGdYGL29/Bg2MxLilWQ+wHkZ0AGYZlj666/6NCghhHvtstn44vhx48Kvv9Yr9vr3Nywe16yZT80NP52EeCVddhm0aGFUYgUeAz4D9hg+d8IEWfwjhLtN2rvX+Ai2nBxYsACuvRYM9gdv4O/PyNjYaqihZ0iIV5KfH9x5p1npSKA58B/D0iVL4JdfPFQxIeqgtdnZ5q3wH37Qg1j/+Idh8W2NGxPqA4c/mJEQr4J//QuMd6v0B/6Nnm5ovOhgwgSw2z1XNyHqksf2GP/VS36+3kr08sshLMzwkjubNvVgzTxPQrwKYmPhuuvMSm8DIoGXDUvXrYO5cz1UMSHqkMUnT/LzyZPGhd98A3l5MGqUYfElkZEk+NBmV0YkxKvonnvMSoKBh4A30XPHy5s0SU7+EaIqlFJMMGuF22zw2WdwzTVmK/S420enFZ5OQryK+vbVg5zG7gQCMWuN794tqziFqIqv09JYbbZh/7x5enXdiBGGxb3Cw33q8AczEuJu8PzzZiXhwKPoEDeev/r002C2NkEIYa7YbmeiWSs8O1v3hV93HdSvb3jJtPh4n51WeDoJcTfo2hVGjzYrvR+IASYZlh49CtOne6hiQtRiHx49SnJennHh3LlgtZousb84MpLBkZEerF31cWuIT5o0ialTp3L77bdzxGAryKVLl9KtWzcGDRrEoEGDWLZsmTs/fY165hnw9zcqCQaeBz4C1hs+94UX4MQJj1VNiFonr6SEp/btMy7MyICvvoKRI01npEyLj/dY3aqb20J88eLFpKamMnHiRG666SYee+wxw+teffVVli5dytKlS+lvsnrKF8XH6z1VjI0EegEPA+UXI2Rl6UFOIYRzXjhwgMNGR6+BHmgKDdUDmgauj4mhp48usTfithBftGgRvXr1AqBPnz78+uuvhtfNmTOHl156iRdeeIH8/HzDa4qKisjLyzvj4QueeALq1TMqsQIvAYuABYbPffNNWLzYc3UTorZYn53N1AMHjAu3bYMff9Qr8UJCyhX7Ac+0auXZClYzt4V4WloaYaf+dAkJCSHD4GikDh068OSTT/Lwww8TExPD448/bnivqVOnEhoaWvaI9pER5EaN4MEHzUoHAFcDjwDG+9GOGaNXCAshjBXa7dy6fbvx8vqSEj3A1LkzXHyx4fNvb9LE5+eFn82ilPO7eJSUlDBw4MByH+/SpQuRkZE0b96csWPHkpeXR5s2bThstqMYkJyczA033MCaNWvKlRUVFVF82sbbeXl5REdHY7PZCDH47epNsrJ014pxH/cOoCN6tsq9hs+/6y45yk0IM1P27TPvC//uO3j1VXjnHf1DeJYQq5VdiYk0DQryaB2rm0stcT8/P5YtW1buMWvWLAYPHlwWyKtWreLiU78JbTYbaWlpAEybNq2shb5nzx5amfxZExAQQEhIyBkPXxERARMnmpUmoFvijwPGfw6+8YZ0qwhhZH12Ns/u329cmJmp+8KvvdYwwAHuj4urdQEOLrbEKzJx4kQCAwPZv38/zz77LE2bNmX27NmsW7eOV155hc8//5yFCxeSkJDAli1beOaZZ4h3YpQ4Ly+P0NBQn2iJg96uISEBDh40Ks0DugJtge+B8vNUW7aETZtMB9aFqHMK7Xb6JCWxwWxRxcsvw7JlMHu24Q9OpL8/exITaeCDJ/dUxK0h7im+FuIAH34It91mVvobMAj4FDDe00G6VYT4m8NulG3b4O679a5yQ4YYXvKf+Hgead7ccxWsQRLiHlJSAhdcoA8TMTYW+BrYBjQ0vGLRIrjoIs/UTwhfsT47m95r1xoPZhYU6Lm9kZG6NW6wAvPc0FDW9uxJsA9vN+uIrNj0ED8/+OADfbCysReAAMB0OovMVhF1nsPZKKD7wY8fh0cfNQxwK/Bh+/a1NsBBQtyj2rWDZ581K20AzAI+BhYaXrFvH/z7356omRC+4bn9+837wdet0ysz770XGjc2vOSRc86hT0SEB2tY86Q7xcNKSmDAAFi+3OyK64DlwAbMulU+/dR0O2Qhaq2f09O5bONGDM9OycmB22+HNm30nhd1sBullLTEPczPD95/31G3ypvo/w23YrQkH/QJQklJHqmeEF5pp83GiK1bjQMcYOZM3R/+0EN1thullIR4NXDcrRKNPlR5AfCq4RX5+XDVVXrHQyFqu8ziYoZt3kxGsfHKZpYtg4ULdYCb7ERYF7pRSkmIV5Px4+H8881K+wNT0HuPl1/BCnD4sF7HUFDgkeoJ4RVKlOKGrVvZbrMZX3DsGLz0Elx6KZhsoHduaChPtWzpuUp6GQnxalLxbJXHgAvQOx5mGV6xYoXe18f7RzGEqJyJe/bwQ7rxcYYUFsLkydCgAdx3n+EldakbpZSEeDVKSICpU81K/YA56AAfi1n/+IcfyiESonb6JDWVF4yXOWuvvQYHDujjsEw2sapL3SilJMSr2f33O+pWaQLMBj5HD3gae+gh+Pln99dNiJqyOiuL25OTzS/44Qf9mDABTFZe1rVulFIS4tWstFvFfKbkUGAyepfDRYZX2O367NedOz1TRyGqU0pBAVdv3ky+3WQuyvbt+s/P0aP1MmgDVuCDOtaNUkpCvAYkJMB77zm64kngn8Bw9Pa15WVkwLBhevM2IXxVfkkJ12zezBGzU3oyMnQ/eNeueq6tiZfbtCGxjnWjlJIQryGjRum/DI1ZgQ/ROx1eARgP9Gzfrqcemg3kC+HNiux2Rm3bxsrsbJMLinT/t8Wizy80aWX/q3Fj7mvWzIM19W4S4jXo2WfhiivMSkOAbwEbelVnkeFVv/2mjxI0OelOCK9UohQ3bdvGN6fOGijHbtcniG/frldk1q9veNn5ERHMSkjAYrDgp66QEK9Bfn7wySdw7rlmVzQBvgP+Au7BbMbKzz/DddfpGVhCeDu7Uvxr+3a+OH7c/KK334alS3VLvG1bw0vigoL4ulMngqx1O8bq9qv3AhERMH++6cIzoDt66uHbwH9N7/P993rcx2yRmxDeQCnFXTt2MDs11fyir76CL77QOxOeOnz9bCFWK9926kSjwEAP1dR3SIh7gTZt9PeseYPiGvS5nI+gw9zYd/MV34w+gL3IdMcJIWqMsiuSHtrB8uUOAnzxYr0vyh13wCWXmF72Qfv29AgP90AtfY+EuJe45BK9p725B4CngDvRLfMzBQcppjXYTsMv97D1+q3YCyTIhfdQJYrk/0sm55UUZvzbSseDBtGzbh1Mm6b3lxg50vReE5s3Z0RsrAdr61skxL3Iffc5nEWFnnr4MHrHw6/LPhoaongxahvdj+sWTto3aWy+ZjMleSWeq6wQTrIX29l28zaOvn9qB7e0YmY+YqVjymmzTbZvhyee0Cvh7r7bcGdCgKuio3na5ID1ukr2E/cyBQX6SDbz/ccVcDfwLjCf8LBL+W/UNtoeOFbuygaDG9D528741at7CyCEd7AX2tk6eitp88rPQrE2C+CuVxRbj2/Up5906KCnbJn0c3cMDWVFjx6E+/t7uto+RULcCx09Cr17w6FDZlfYgduAuTza5A2GprQ0vVfE+RF0+l8nAmNlAEhUr+LMYraO2kr6ApMNrYCtjZO5N/NB7F27wJQppgEe5e/Pqp49aV0Hfv5dJd0pXqhxY/jlFzDv9rMSFfkufcIGMD3lLpIwPzEia3kWSb2TyF5vsqBCCA+w7bSxtu9ahwG+gQ08dHQ851t70OGR500DPNzPj4VdukiAm5AQ91Lt28Ovv0JUVPmyRrGKN+J28GzOw5zHeTzGY/zO76b3KjhQwLp+6zj2ZfkuFyHcLf2XdNb2WYttu/lS4nWsYwIT6E1vnsx9krcnhdAlL6jcdfWsVhZ06ULvOrqk3hkS4l6sc2e9kOf0xWrNmirePGcbsZuOE0AAE5nIZVzGFKbwAz+Y3stus7P1+q3sfXIvyu71PWjCBymlOPjqQTYO3UhxhvmChSSSeIzHSCSRJ3mSAAIo2pbHGxP86Fb494b7wVYr33XuTD+T1ZpCkz5xH/DXX3oKYnSU4vW4bYQtP7NFrVB8wAd8zMfcwR2MwvGpyg2vbkj7j9vjHyYDRMI97AV2dty1g6MfOD5D8Fd+5T/8hwu4gMd5HD/OHHQP7lmPe/5jZ5NfPvM7d+ZSoz9FxRkkxH3E8uVge24H/j8cMb3mK75iJjMZwQjGMhYL5vtJ1Otcj07fdiKkVd38egr3KThawJZrt5C1wvhEKtANjU/4hPd4j+EM507uLBfgpeoNjCBzXgsujo72VJVrFQlxH5L5ZyYbL9tISbb5/O+f+In/8B+GMIQHeZAAAkyv9Y/2p+NXHYkcZLrmXwiHspOy2Xz1ZgoOmR/+WkwxL/MyP/ET93AP13CN6bWWIAud5nUi+nIJcGdJiPuYrFVZbLzUcZ/jClbwNE/TlrZMYQqRmIe0xd9Cm1fb0HRc0zq9E5xwXeqnqSSPScaeb746OIccpjCFzWzmCZ7gfEyPtcIaYqXTt52IukS6UFwhIe6Dstdls+GSDRSfMA/y3exmEpOwY+cZniGBBIf3jPpHFO3ebkdQs/IzBIQ4XWFaIbvu3cWxzx3PdjrGMR7jMTLI4Dmeox3tTK/1C/Oj8/edaTCwgZtrW/vJ7BQfFN49nG5LuxHQyLyrpDWteZM3aUYz7uM+FrPY4T3Tf0xnVcdVpHyQgg/8Xhc15PjXx1ndcXWFAb6e9dzFXdixM5OZjgM8wo8uP3eRAK8kaYn7MNtOG5uu2ETejjzTa4op5g3e4Gu+ZjSj+Rf/Mh1QKiWtcnE2Z1vfdux8yqd8wAf0ox//5t+EEWZ6fVBcEJ3mdyK8u+xIWFkS4j6uKKOIrSO3cvKnkw6vW8ACXuEVetCDx3iM+jiee+tX3482r7Sh8a2Npa+8jjv+9XF23LWDomPGp0uVyiST53meNaxhLGMZznCHM6Qizoug49cdCWosjYWqkBCvBVSJYvejuzn0X9PNVgDYylYmMxmACUygJz0rvLe0yusuZ1vfoL+3nuZp7Nh5kifpRCeH1ze+rTEJbyRgDZIe3aqSEK9Fjs4+SvIdyagC8/+lWWTxMi/zG79xPdczhjEE4nhzLGmV1z3Otr4Viq/5mjd5k+50ZyITHf+VZ4U2L7eh2X3N5HvJTSTEa5mslVlsvmYzhSnmB24qFAtZyGu8RhxxTGISLWhR4b0jL44k/oV4wntI/2Vtlbs9l72P7SXtG5MDjE+TSiov8RJJJHErt3IjN2J1MFfCv4E/HeZ2kCmEbiYhXgsVHC5g8zWbyV7teOfCwxzmWZ5lD3sYxziGMcxhH2apmBExtHq2FaFtQt1VZVHD8g/ls++pfXrZfAWHQikUP/Ijs5hFNNH8m39X2H0Sem4onb7tRGhb+Z5xNwnxWqokr4Qdd+wgdY6D8wzRs1c+4iM+4RN60YvxjKcpTSu8v8XfQpPbm9DiyRYENZH+cl9VlF7EgecPcGjGIYfdcKVOb31fz/Xcxm0E4fj/f9TlUXT4tAP+EbJXjydIiNdiSikOvnSQPY/u0QcCObCJTfyX/5JCCjdxEyMY4XDJfilrqJW48XE0/3dz/OvLD6mvKMkt4dD0Qxz4zwFKMis+xk+h+IEfeIM3iCaaR3mUjnSs8HnNJzSn1bOtsPhJ/7enSIjXAScWnGD7rdsrHKQqooi5zGU2s2lCEx7gAbrS1anP4R/lT/PHmtPsnmb4BfvmcXCFxwvJTsomJymHnPU5FKUVYc+3YwmyEBAVQFjXMMJ6hhHeM9xn//qwF9lJeTeF/U/vp/Co+bjJ6fayl9d5nfWs5zquc6r17Vffj4Q3Emg0qpE7qi0ckBCvI1yZLnaEI0xnOqtYxVCGcid3VjivvFRQXBAtJreg0Y2NfCLMS2wlHPvsGIemHyJ3Uy4AlgALqlid+deL5dTHC/UHg9sEE3dfHI1vbuwTf4HYi+wc//I4+ybvI2+X+eKw02WRxYd8yLd8SzzxjGe8U63vqMuiSHg7geC44AqvFVUnIV7HuDJ1bClLeZ3XKaaYW7mVK7jCqS4W0DskNhnThKZ3NvXK7W6Ls4rZ9/Q+jrx5BHueXQe2qz8JVrAGWml0SyNaPdOKwBjvO8e04HABR945QsrbKQ5nLJ2uhBLmM58P+RArVm7ndoYytMKVvjIVtWZIiNdBrrTKc8gpa43FEssYxjCIQQ6nkp3BoltmzcY1I2polFf0jab/nM72W7ZTlFakW9xVZPG34BfuR8LbCcQONz0YtdoopchYksHhWYf1VMGKu7zLJJHE67zOIQ5xLddyEzc5XDZfSlrfNUdCvA5ztlUOkEIKH/ABv/IrbWjDHdxBL3q59PmCWwbT9M6mNP5X4xpptdoL7Oy8dycp76Tord8qmErnEgugIGZ4DO3eb4d/ePV3sRRlFJE6O5UjbxxxeL6lkWSS+YiPWMEKzuM87uIuzuGcCp8nre+aJyFexxWmFbLznp0c/+K4U9fvYhfv8i4rWUkPenAHdzjcoc6IJdBC7IhYmo5rSkRiRLX88BfnFLN52GYyfs9wqWXqKou/hXqd69H1l64ERDvX9VRV2euzOfLGEVLnpGK3ufabaTvb+YiP+Iu/SCCBMYyhD32ceq60vr2DhLgA4Pi8U63y4xW3ykFvNfo2b7ONbZzHeYxgBF3o4tRiodOFdgwl5poYoodFE94zHIvV/YFekl/CxiEbyVqR5Zbuk4pY/C2Edgil++/dPTLoqZQid2MuafPTSPs2jZykHJfvsZWtzGY2K1lJe9pzMzfTl75O/f/zi/CjzavS+vYWEuKiTGFaIbvu38WxTyvuKwc9+Lmc5XzGZ2xhC+1pz0hG0p/+FQ6CGQlsHEj0ldFED4smcnAkfiFVn92ilGLriK0c//q4R1vgZ7P4W4joF0G3xd3c8ovJXmgn47cMTsw/Qdr8NAoOmB+HZkah2MxmPuZjVrOaczmXW7iFPvRx+pdv9BXRtH2jrbS+vYiEuCgna00Wex/by8lfHW9ve7rNbOYLvuBP/qQJTRjOcC7jMoKp3A+7NcRK5JBIGg5rSPTl0QQ2qlwf+rEvjrF15NZKPbfKLNBmehvi7o2r1NOL0otIX5BO2vw00hekOzxb1ZECCljEIr7hG3ayk4505GZupje9nQ7viL4RxE+Ll4MbvJCEuDCV/ms6eybscenP9YMc5Eu+ZCELCSGEK7iCy7iMOCoXZABYICIxgqjLo4hIjCC8ZzgBURX3NxceK2RlwkpKskpcnz7oJpYgC3229CGkdcXft8WZxWSvzSZ7dTYnfjxB5rLMKv31cJjDzGc+C1hAHnkMYABXczWd6OR0eIeeG0qr51rR8KqG0nXipSTEhUPKrjg+7zh7J+4lb6dzi0QATnKS//E/FrCANNLoQhcu4zIGMpAQqv7/MLhlsF492Suc8J7hhsG+ZeQW0ualVUs/uJnSbpXuS7uf8fGywD61QjQ7Kdulr6+ZEkpYzWq+4RtWsYpoohnGMC7ncqJwfvfAoHOCaDmlJY1vbuwV00KFOQlx4RR7kZ2jHxxl31P7nF40An+HygIWsJzlBBDAhVzIUIa61CJ0Rlmw9wwnqHkQ22/c7rZ7V1XC2wkUZxbrwF6T7fSqSWcoFFvZyiIWsZSlnOQk3enOVVzl8viEf5Q/LSa2oOm4pj6x4lZIiAsXldhKODzjMAemHaA4o9il52aQwa/8ygIWsIc9nMM5XMAF9KMf7Wnv/AIigUKxm90sPvWWSirncA6DGcyFXEhzmrt0P2uolXMePIdzHj7HJ7YREH+TEBeVUnSyiAPTDnB45mHsua7NTVYodrCDX/iFP/mToxwlmmjO53z6059udKvwtKG6qIQStrKV1azmN37jAAdoRCMu5EIGM5jWtHb5LxtLkIUmY5rQ4okWctalj5IQF1VSnFVM6sepHJ51GNtW11YJwt8tyj9Pve1kJ6GE0oc+JJJIN7rRiEZu7XbxJUc5yupTb2tZSy65xBJLP/pxERfRgQ6V+gsmOD6Ypnc1pcltTaptUZLwDAlx4RZKKTJ/z9T7dXxd+cHEoxxlOctZxjI2s5kiioglli50oStd6UIXzuGcWhnqCkUqqSSTzAY2sIY1HOQgQQTRjW70ohd96FP512/R87ybjmtK1JAojyysEtVPQly4XUFKASnvpnDkrSMUHnZ+ELTcfShgG9vYyEY2sIEtbKGAAiKJpAtdaEc7WtGKeOKJIcbngj2TTJJJZhvbSCaZ7WznJCexYCGeeHrRi970pjOdq9S9FBATQJPbm9DkjiaEtJSfn9rGrSH+3XffMX78eD755BP69u1reM2kSZMICQlh7969PP300zRtWvFRYBLivslebOfEdyc4MuuISwuHzBRRxE52soENbGQju9hFGvpA3zDCygI9nnha0YomNCGSyEqtHnWXEko4xjEOnXo7whEOcYgDHOAIRwBoTGPa0Y5zOZd2tCOBBEKp+lmUEf0iaDauGTH/jMEaJIPGtZXbhqEzMjLw9/fnnHPMdz5bvHgxqampvPPOO/z222889thjfPTRR+6qgvAyVn8rMdfEEHNNDLZkG4ffOMzxL447faLM2QIIoMOpt1GMAvTBBXvYw172soc97GIXv/ALNnT/vB9+NDz1FkssMae9hRFGiMFbAAGGrXr7qbfiU29ZZJFBBpkGb+mkc4QjpJBCEXo/mjDCiCOOZjRjCENod+otkshKfoXL84/2J2Z4DM3uakZY14q3kBW+z+3dKYMGDWLatGmGLfGJEyfSvHlzxo4dS15eHm3atOHw4cPlrisqKqK4+O/pa3l5eURHR0tLvBZQdkX2mmzS5qdxYv6JstN03Po5TvUtp5LK8dPejp16SyONk5j/ZeCHX9l2ASWnvdkd7F0bQAANTr3VP/XWlKbEnXprRjMiiPBIl09IuxAaXtmQ6GHRRJwXgdVfWt11SbVOCE1LS6NDhw4AhISEkJGRYXjd1KlTmTJlSjXWTFQXi9VCRJ8IIvpEEP9sPHn78jjx3QlOzD9BxtIM9xzSgIXGp97MFFFEHnnYsJFn8mbFij/++Jm81T/tLZjg6uuTt0L9fvWJHhZNwysbEtqu6l0vwne5FOIlJSUMHDiw3Me7dOnCrFmzKnx+w4YNycnR+3Dk5eXRoEEDw+smTpzIo48+Wvbv0pa4qH1CWoYQd28ccffGUZxZTPrCUxs+/Zju8mIiVwSceosgwmOfw538wvyIvFRvCBb1jygCG8o8eqG5FOJ+fn4sW7bMpU9QXFzM8ePHadKkCYMHD+azzz5j7NixrFq1iosvvtjwOQEBAQQEyNzVusa/vj+xI2KJHRGLvchO5rJM0n9KJ3uN3l/Ek6HubfzC/QjrobcQiBoSRYNBDWRwUhhya3fKyy+/zP79+/nwww8JDg6mW7duLFu2jBkzZjBv3jwuuugiFi1axJQpU9i/fz/PP/+8Oz+9qEWsAVYiL4wk8kI96KeUIn9vPtlJ2WSv+XvjqNoQ7KcHdnjPcMJ7hRPSJkTmcQunyDxx4bN8MdglsIW7SYiLWkUpRfbabNb2WlvTVSmn84LOslJSuJ10solaxWKxENEzggYXNqAG1/icyQKhHUKJulQCXLifhLiolZrd16xaz9R0yAJx98fJyTjCIyTERa0UfUU0AY28Y4aTNcRK7OjYmq6GqKUkxEWtZPW30uaVNjVdDbBA/NR4/MPkoAXhGRLiotaKHRlL9JXRWPxrphvD4m8hIjGCZvc2q5HPL+oGCXFRa1ksFhLeTsAaaqVGdqn1g/Yft5fBTOFREuKiVgtqHETHLztW/3e6Bdp/2J7QNrKvifAsCXFR60UNiaLjFx31lMNqahQnvJlAo5GNqueTiTpNQlzUCTH/jKHzt52xBFo810fuT1kXStM7Kj7sRAh3kBAXdUb05dH03tCbsO5h7v/Ot0JoQig9V/ek8Y3mW+AK4W4S4qJOCW0XSo8VPWj9Ymu3tMot/hbwgxaTWtBrXS/Cu4e7qaZCOEf2ThF1VsFRfaDz4dcPU5RahCXAgipy4sfBHygB/wb+NL2rKU3vaEpwi2CP11cIIxLios6zF9s58f0J0hemk7UiC9tWm/EJQ366JR9xXgSRgyOJuVYOIBY1T0JciLPYC+3YttsozijGXmDHGmjFL8KP0HND8Qv2ll21hNBkLbAQZ7EGWgnrIifFC98gfwsKIYQPkxAXQggfJiEuhBA+TEJcCCF8mIS4EEL4MAlxIYTwYRLiQgjhwyTEhRDCh0mICyGED5MQF0IIHyYhLoQQPswn9k4p3aMrLy+vhmsihBDVKzg4GIvFfN97nwjx/Px8AKKjo2u4JkIIUb0q2r3VJ7aitdvtZGRkVPgbyZPy8vKIjo7mxIkTdW47XHntde+119XXDd732mtFS9xqtRIVFVXT1QAgJCTEK/7H1gR57XXvtdfV1w2+89plYFMIIXyYhLgQQvgwCXEn+fv7M3nyZPz9faIHyq3ktde9115XXzf43mv3iYFNIYQQxqQlLoQQPkxCXAghfJiEuBBC+DDf6LmvYd999x3jx4/nk08+oW/fvobXTJo0iZCQEPbu3cvTTz9N06ZNq7mW7lfRa1q6dCnjx4+nQYMGADz77LP079+/BmrqHnPnzmXVqlXYbDZGjhzJgAEDziifPn066enpHDlyhAceeIAOHTrUUE3dr6LX3rJlS1q2bAnA8OHDueeee2qglu63ZcsW7r77boYOHcqECRPKlVf0dfEKSjh08uRJ9eOPP6qBAweqFStWGF6zaNEidfvttyullFq6dKm6+eabq7OKHuHMa1qyZIlasmRJNdfMMzIzM1X37t2V3W5XNptNdezYUZWUlJSV79q1S11yySVKKaX27dunBg4cWEM1db+KXrtSSk2ePLlmKudhn3/+uZo0aZJ6/vnny5U583XxBtKdUoEGDRpw2WWXObxm0aJF9OrVC4A+ffrw66+/VkfVPMrZ1zRnzhxeeuklXnjhhbI9bnzRypUradeuHRaLhZCQEOrVq8fu3bvLyhcvXkzPnj0BaNGiBdu3b6ewsLCmqutWFb12gD/++IMXX3yRyZMnc+jQoRqqqfuNGDECPz8/wzJnvi7eQELcDdLS0ggLCwP0Ut2MjIyarZAbOPOaOnTowJNPPsnDDz9MTEwMjz/+eDXX0n1Of70A4eHhpKWlmZaHhYVx4sSJaq2jp1T02gFeeOEFHnnkEW666Sauueaa6q5ijXDm6+INpE8cKCkpYeDAgeU+3qVLF2bNmlXh8xs2bEhOTg6gN88p7SP2do5etzOvKTY2tuy/+/Xr59TXylud/noBsrOzadiw4Rnle/bsKft3Tk5OrdlVs6LXDpT9VdamTRsOHTpETk7OGQFXGznzdfEG0hIH/Pz8WLZsWbmHo1AqLi4mJSUFgMGDB7NmzRoAVq1axcUXX1wt9a4qR6/b7DXZbLay1si0adPKWuh79uyhVatWNfI63CExMZHk5GSUUuTl5ZGbm0t8fDwHDx4E4KKLLiIpKQmA/fv30759ewIDA2uyym5T0WtftGgRv/zyCwCZmZn4+fnV6gA/cOAAYPx1ad26dQ3XrjxZsemEl19+mRkzZnDppZdy55130q1bN5YuXcqMGTOYN28eABMnTiQwMJD9+/fz7LPP1orZKUavafbs2axbt45XXnmFzz//nIULF5KQkMCWLVt45plniI+Pr+lqV9rcuXNZsWIFNpuN0aNH06xZM2644QZWrlwJ6Nkpx44d4+jRozz00EO1bnaK2WvftGkTU6ZMoUePHuzcuZORI0dy6aWX1nSV3WLevHnMnDmTgIAAxo0bxyWXXELHjh3ZtWsXfn5+5b4uRn+51jQJcSGE8GHSnSKEED5MQlwIIXyYhLgQQvgwCXEhhPBhEuJCCOHDJMSFEMKHSYgLIYQPkxAXQggfJiEuhBA+TEJcCCF82P8D7Z1wZZqqKF0AAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from matplotlib.patches import Arc\n",
"\n",
"print(\"Each node is assigned a 𝑑𝜃 of 2𝜋/4\")\n",
"theta = np.linspace(0, 2 * np.pi, 100)\n",
"radius = 1\n",
"a = radius * np.cos(theta)\n",
"b = radius * np.sin(theta)\n",
"\n",
"figure, axes = plt.subplots(1)\n",
"axes.plot(a, b, color=\"k\")\n",
"axes.add_patch(plt.Circle((0, 1), 0.15, color=\"r\"))\n",
"axes.add_patch(plt.Circle((1, 0), 0.15, color=\"c\"))\n",
"axes.add_patch(plt.Circle((0, -1), 0.15, color=\"m\"))\n",
"axes.add_patch(plt.Circle((-1, 0), 0.15, color=\"b\"))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=45, theta2=135, color=\"r\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-45, theta2=+45, color=\"c\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-135, theta2=-45, color=\"m\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=135, theta2=225, color=\"b\", linewidth=10))\n",
"axes.set_aspect(1)\n",
"plt.title(\"Circumference 2$\\pi$\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "5cf2d2ec-4f85-4d73-90a7-332c4ed4499b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Non-uniform spacing\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Non-uniform spacing\")\n",
"theta = np.linspace(0, 2 * np.pi, 100)\n",
"radius = 1\n",
"a = radius * np.cos(theta)\n",
"b = radius * np.sin(theta)\n",
"\n",
"figure, axes = plt.subplots(1)\n",
"axes.plot(a, b, color=\"k\")\n",
"axes.add_patch(plt.Circle((0, 1), 0.15, color=\"r\"))\n",
"axes.add_patch(plt.Circle((1, 0), 0.1, color=\"c\"))\n",
"axes.add_patch(plt.Circle((0, -1), 0.15, color=\"m\"))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=45, theta2=180, color=\"r\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-45, theta2=+45, color=\"c\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-180, theta2=-45, color=\"m\", linewidth=10))\n",
"axes.set_aspect(1)\n",
"plt.title(\"Circumference 2$\\pi$\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ce65e824-a77c-48c1-bcf3-3f8a55662110",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Two nodes with symmetry set to false\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"Two nodes with symmetry set to false\")\n",
"theta = np.linspace(0, 2 * np.pi, 100)\n",
"radius = 1\n",
"a = radius * np.cos(theta)\n",
"b = radius * np.sin(theta)\n",
"\n",
"figure, axes = plt.subplots(1)\n",
"axes.plot(a, b, color=\"k\")\n",
"axes.add_patch(plt.Circle((0, 1), 0.15, color=\"r\"))\n",
"axes.add_patch(plt.Circle((1, 0), 0.15, color=\"c\"))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=45, theta2=225, color=\"r\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-135, theta2=+45, color=\"c\", linewidth=10))\n",
"axes.set_aspect(1)\n",
"plt.title(\"Circle with circumference 2$\\pi$\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "ea43241a-c0e6-4cc3-ab65-95b4929de5d0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The same two nodes with symmetry set to true\n",
"Notice now the red node is given more weight\n",
"because there is implicitly a duplicate of that node (black one at the bottom) across the axis of symmetry.\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAUMAAAF2CAYAAAD0hPoZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA7FAAAOxQFHbOz/AABU0klEQVR4nO2dd3hUVfrHP5MGCQQCBJBepCi9B6QKIpYFV8WK/lwL4tIWEFYUV0RhBSyICHaxoIsUV0FdFeko0kTpRVqogQQCSWZCksn5/XGSEMK9k5nkzkxm8n6e5z6T3HPPnffeufOdU97zvjallEIQBKGUE+JvAwRBEEoCIoaCIAiIGAqCIAAihoIgCICIoSAIAiBiKAiCAIgYCoIgACKGgiAIgIihIAgCIGIoCIIAiBhaQkJCAsOGDaNr16706tWLLl26cMcddzB//nwyMjIAGDFiBCNGjCjW+7zwwgvUr1+fXr16WWC1exRm97vvvss111xD/fr1ffq+/mb06NG0bduWuLg4xowZ429zLEMpxUcffUSfPn3o06cP7dq144knniA5OdnfpnkfJRSL+Ph4Vbt2bTVnzpy8fU6nU82YMUMBauvWrUoppdLS0lRaWlqx32/ixImqZ8+exT6PuxS02+j9586dq+rVq+fV9y1JrFq1SkVFRSm73a6cTqeaOXOmv02yjJSUFFWuXDm1d+9epZRSdrtddenSRQ0cONDPlnkfaRkWk+HDh9OuXTv+/ve/5+0LCQlh1KhR9OjRI29fVFQUUVFR/jCxWPjL7pJ8vw4fPkzVqlWJjIwkJCSEkSNH+tskywgPD+f555+nSZMmAERGRnLffffx7bffooI8pouIYTFITk7mm2++YcCAAYbl3333HS1btuTNN9+8rHubv2s5a9YsbrrpJqKjo/noo49ISEhg0KBBdOvWjV69enHTTTexcuVKUxsSEhK499576datG926dWPkyJE4HA7DY4cOHUpoaCitW7dm2bJlefuGDRsGwPbt22ndujVXX301W7ZsucLuN998k48++ojff/+dXr160adPn8vOP2vWLPr27UvDhg355JNPXN47V9dp1f2aOXPmZef5/fffadOmDTabLc+Ogufu06cPjRs35vvvv2fx4sXceuutNGjQgE8//TTv+JdeeolTp07Rq1cvhg4dWujn4Mp+V3UL1jO7t4U9M548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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"print(\"The same two nodes with symmetry set to true\")\n",
"print(\"Notice now the red node is given more weight\")\n",
"print(\n",
" \"because there is implicitly a duplicate of that node (black one at the bottom) across the axis of symmetry.\"\n",
")\n",
"theta = np.linspace(0, 2 * np.pi, 100)\n",
"radius = 1\n",
"a = radius * np.cos(theta)\n",
"b = radius * np.sin(theta)\n",
"\n",
"figure, axes = plt.subplots(1)\n",
"axes.plot(a, b, color=\"k\")\n",
"axes.add_patch(plt.Circle((0, 1), 0.3, color=\"r\"))\n",
"axes.add_patch(plt.Circle((0, 1), 0.15, color=\"k\"))\n",
"axes.add_patch(plt.Circle((0, -1), 0.15, color=\"k\"))\n",
"axes.add_patch(plt.Circle((1, 0), 0.1, color=\"c\"))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=45, theta2=180, color=\"r\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-45, theta2=+45, color=\"c\", linewidth=10))\n",
"axes.add_patch(Arc((0, 0), 2, 2, theta1=-180, theta2=-45, color=\"r\", linewidth=10))\n",
"axes.set_aspect(1)\n",
"plt.title(\"Circle with circumference 2$\\pi$\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "fe14e7f0-ad7f-4181-acd4-bcb8d87df6e9",
"metadata": {},
"source": [
"## Symmetry\n",
"\n",
"For many stellarators we can take advantage of [stellarator symmetry](https://www.sciencedirect.com/science/article/pii/S0167278997002169?via%3Dihub).\n",
"When we set stellarator symmetry on, we delete the extra modes from the basis functions.\n",
"This makes equilibrium solves and optimizations faster.\n",
"\n",
"Under this condition, we can usually also delete all the nodes on the collocation grid above the midplane $\\theta$ coordinate > $\\pi$.3\n",
"Reducing the size of the grid saves time and memory.\n",
"\n",
"There are some caveats discussed in the next section.\n",
"When we delete the nodes above the midplane, we need to preserve the node volume and node area invariants mentioned earlier.\n",
"In particular, on any given $\\theta$ curve (nodes on the intersection of a constant $\\rho$ and constant $\\zeta$ surface), the sum of the $d\\theta$ of each node should be $2\\pi$.\n",
"(If this is not obvious, look at the circle illustration above.\n",
"The sum of the distance between all nodes on a theta curve sum to $2\\pi$).\n",
"To ensure this property is preserved, we upscale the $d\\theta$ spacing of the remaining nodes.\n",
"The upscale factor is given below.\n",
"$$d\\theta = \\frac{2\\pi}{\\text{number of nodes remaining on that } \\theta \\text{ curve}} = \\frac{2\\pi}{\\text{number of nodes on that } \\theta \\text{ curve}} \\times \\frac{\\text{number of nodes on that } \\theta \\text{ curve}}{\\text{number of nodes on that } \\theta \\text{ curve} - \\text{number of nodes to delete on that } \\theta \\text{ curve}} $$\n",
"The term on the left hand side is our desired end result.\n",
"The first term on the right is the $d\\theta$ spacing that was correct before any nodes were deleted.\n",
"The second term on the right is the upscale factor.\n",
"\n",
"For `LinearGrid` this scale factor is a constant which is the same for every $\\theta$ curve.\n",
"However, recall that `ConcentricGrid` has a decreasing number of nodes on every $\\rho$ surface, and hence on every $\\theta$ curve, as $\\rho$ decreases toward the axis.\n",
"This poses an additional complication because it means the \"number of nodes to delete\" in the denominator of the rightmost fraction above is a different number on each $\\theta$ curve.\n",
"\n",
"After the initial grid construction process described earlier, all grid types (except `QuadratureGrid` which doesn't have symmetry attribute) have a call to a function named `enforce_symmetry()` which\n",
"1. identifies all nodes with coordinate $\\theta > \\pi$ and deletes them from the grid\n",
"2. properly computes this scale factor for each $\\theta$ curve\n",
" - The assumption is made that the number of nodes to delete on a given $\\theta$ curve is constant over $\\zeta$.\n",
" This is the same as assuming that each $\\zeta$ surface has nodes patterned in the same way, which is an assumption\n",
" we can make for the predefined grid types.\n",
"3. upscales the remaining nodes' $d\\theta$ weight\n",
"\n",
"Specifically, we upscale the $d\\theta$ spacing of any node with $\\theta$ coordinate not a multiple of $\\pi$, (those that are off the symmetry line), so that these nodes' spacings account for the node that is their reflection across the symmetry line.\n",
"\n",
"Footnote [3]: We could also instead delete all the nodes with $\\zeta$ coordinate > $\\pi$."
]
},
{
"cell_type": "markdown",
"id": "94494043-c549-4868-a67d-b2bae085f19f",
"metadata": {},
"source": [
"### Why does upscaling $d\\theta$ work?\n",
"\n",
"Deleting all the nodes with $\\theta$ coordinate > $\\pi$ leaves a grid where each $\\rho$ and $\\zeta$ surface has less area than it should.\n",
"By upscaling the nodes' $d\\theta$ weights we can recover this area.\n",
"It also helps to consider how this affects surface integral computations.\n",
"\n",
"After deleting the nodes, but before upscaling them we are missing perhaps $1/2$ of the $d\\theta$ weight.\n",
"So if we performed a flux surface integral over the grid in this state, we would be computing\n",
"$$ \\int_0^{\\pi}\\int_0^{2\\pi} d\\theta d\\zeta Q\\ + 0 \\times \\int_{\\pi}^{2\\pi}\\int_0^{2\\pi} d\\theta d\\zeta Q \\approx \\int_0^{2\\pi}\\int_0^{2\\pi} (\\frac{1}{2} d\\theta) \\ d\\zeta \\ Q$$\n",
"\n",
"The approximate equality follows from the assumption that $Q$ is stellarator symmetric. Clearly the integrals over $\\rho$ and $\\zeta$ surfaces would be off by some factor.\n",
"Notice that upscaling $d\\theta$ alone is enough to recover the correct integrals.\n",
"This should make sense as deleting all the nodes with $\\theta$ coordinate > $\\pi$ does not change the number of nodes over any $\\theta$ surfaces $\\implies$ integrals over $\\theta$ surfaces are not affected."
]
},
{
"cell_type": "markdown",
"id": "09fd0f43-c35e-4a54-9a35-4e8497e243e4",
"metadata": {},
"source": [
"### Poloidal midplane symmetry is not stellarator symmetry\n",
"\n",
"The caveat mentioned above with deleting nodes above the midplane is discussed here.\n",
"Recall from `R.L. Dewar, S.R. Hudson, Stellarator symmetry, doi 10.1016/S0167-2789(97)00216-9`, that stellarator symmetry is a property of a curvilinear coordinate system, $(\\rho, \\theta, \\zeta)$, such that $f(\\rho, \\theta, \\zeta) = f(\\rho, -\\theta, -\\zeta)$ `Dewar, Hudson eq.8`. The DESC coordinate system will be a stellarator symmetric coordinate system if the Fourier expansion of the flux surfaces have either the cosine or sine symmetry.\n",
"\n",
"Now, assuming stellarator symmetry gives the first relation\n",
"$$f(\\rho, -\\theta, -\\zeta) = f(\\rho, \\theta, \\zeta) \\neq f(\\rho, -\\theta, \\zeta \\neq 0)$$\n",
"but the second relation does not follow (hence the $\\neq$). So we should not expect any of our computations to be invariant to truncating the poloidal domain to above the midplane $\\theta \\in [0, \\pi] \\subset [0, 2 \\pi)$.\n",
"\n",
"If we are computing some function $g \\colon \\rho, \\theta, \\zeta \\mapsto g(\\rho, \\theta, \\zeta)$ that is just a pointwise evaluation of the basis functions, then we will of course still compute $g$ accurately above the midplane. However, if we are computing any function that is not a pointwise evaluation of the basis function, i.e. a function whose input takes multiple nodes as input and performs some type of reduction, e.g. $F \\colon \\rho, \\theta, \\zeta \\mapsto \\int f(\\rho, \\theta, \\zeta) d S$, then in general $F$ will not be computed accurately if the computational domain is truncated to above the midplane.\n",
"\n",
"In general, given\n",
"\n",
"1. $f$ that evaluates the basis functions pointwise\n",
"1. $F$ that performs a reduction on $f$\n",
"2. stellarator symmetry: $f(\\rho, \\theta, \\zeta) = f(\\rho, -\\theta, -\\zeta)$\n",
" \n",
"then $F$ is guaranteed to be able to be computed accurately on the truncated domain of computation $\\theta \\in [0, \\pi] \\subset [0, 2\\pi)$ only[^1] if $F$ is a linear reduction over $D \\equiv [0, \\pi] \\times [0, 2 \\pi) \\ni (\\theta, \\zeta)$.\n",
"\n",
"> This means that if $F$ is a flux surface integral or volume integral of $f$, then it can be computed on grids that have nodes only above the midplane, i.e. grids such that `grid.sym == True`.\n",
"\n",
"If $F$ is a nonlinear reduction or any reduction that is over a proper subset of $D$, then $F$ may not be computed accurately when the domain is truncated to above the midplane unless there is the additional symmetry\n",
"$$f(\\rho, \\theta, \\zeta) = f(\\rho, -\\theta, \\zeta)$$\n",
"Stellarator symmetry implies this relation holds for $\\zeta = 0$. Therefore, stellarator symmetry and $\\partial f / \\partial \\zeta = 0$ is sufficient, but not necessary, for this additional symmetry.\n",
"\n",
"> This means that if $F$ is a non-flux surface integral or line integral, then it cannot be computed accurately on grids that have nodes only above the midplane, i.e. grids such that `grid.sym == True`, unless the additional symmetry is satisfied."
]
},
{
"cell_type": "markdown",
"id": "24578df1-15da-410d-a734-4f194c5000a5",
"metadata": {},
"source": [
"## On NFP: the number of field periods\n",
"The number of field periods measures how often the stellarator geometry repeats over the toroidal coordinate.\n",
"If NFP is an integer, then all the relevant information can be determined from analyzing the chunk of the device that spans from $\\zeta = 0$ to $\\zeta = 2\\pi / \\text{NFP}$.\n",
"So we can limit the toroidal domain (the $\\zeta$ coordinates of the grid nodes) at $\\zeta = 2\\pi / \\text{NFP}$.\n",
"\n",
"In regards to the grid, this means after the grid is constructed according to the node placement and spacing rules above, we need to modify the locations of the $\\zeta$ surfaces.\n",
"We scale down the $\\zeta$ coordinate of all the nodes in a grid by a factor of NFP.\n",
"If there were $N \\ \\zeta$ surfaces before, there are still that many - we do not want to change the resolution of the grid.\n",
"The locations of the zeta surfaces are just more densely packed together within $\\zeta = 0 \\ to \\ 2\\pi / \\text{NFP}$.\n",
"\n",
"Note that we do not change the $d\\zeta$ weight assigned to each surface just because there is less space between the surfaces.\n",
"The quick way to justify this is because scaling down $d\\zeta$ would break the invariant we discussed earlier that the total volume or `grid.weights.sum()` equals 4$\\pi^2$.\n",
"\n",
"Another argument follows.\n",
"Supposing we did scale down $d\\zeta$ by NFP, then we would have surface integrals of the form $\\int_0^{2\\pi}\\int_0^{2\\pi} d\\theta (\\frac{d\\zeta}{\\text{NFP}}) Q$.\n",
"The results for these computations would depend on NFP, which is not desirable.\n",
"For example, a device which repeats its geometry twice toroidally has NFP = 2.\n",
"After $\\zeta = 2 \\pi / \\text{NFP}$, the same pattern restarts.\n",
"Of course, you could claim every device has NFP = 1 because $\\zeta$ is periodic.\n",
"After $\\zeta = 2 \\pi$, the same pattern restarts.\n",
"In this sense any device with NFP >= 2, also could be said to have NFP = 1.\n",
"If the result of the above computation depended on NFP, then the computed result would be different on the same device depending on your arbitrary choice of defining where it repeats.\n",
"\n",
"To emphasize: the columns of `grid.spacing` do not correspond to the distance between coordinates of nodes.\n",
"Instead they correspond to the differential element weights $d\\rho, d\\theta, d\\zeta$.\n",
"These differential element weights should have whatever values are needed to maintain the node volume and area invariants discussed earlier.\n",
"The docstring of `grid.spacing` defines this attribute as\n",
"\n",
" Quadrature weights for integration over surfaces.\n",
"\n",
" This is typically the distance between nodes when ``NFP=1``, as the quadrature\n",
" weight is by default a midpoint rule. The returned matrix has three columns,\n",
" corresponding to the radial, poloidal, and toroidal coordinate, respectively.\n",
" Each element of the matrix specifies the quadrature area associated with a\n",
" particular node for each coordinate. I.e. on a grid with coordinates\n",
" of \"rtz\", the columns specify dρ, dθ, dζ, respectively. An integration\n",
" over a ρ flux surface will assign quadrature weight dθ*dζ to each node.\n",
" Note that dζ is the distance between toroidal surfaces multiplied by ``NFP``.\n",
"\n",
" On a LinearGrid with duplicate nodes, the columns of spacing no longer\n",
" specify dρ, dθ, dζ. Rather, the product of each adjacent column specifies\n",
" dρ*dθ, dθ*dζ, dζ*dρ, respectively.\n",
"\n",
"Below the issue of duplicate nodes are discussed."
]
},
{
"cell_type": "markdown",
"id": "69a08420-a56a-4811-a8d8-45936bf6a56a",
"metadata": {},
"source": [
"## Duplicate nodes\n",
"\n",
"When grids are created by specifying `endpoint=True`, or inputting an array which has both 0 and $2\\pi$ as the input to the `theta` and `zeta` parameters, a grid is made with duplicate surfaces.\n",
"```python\n",
"# if theta and zeta are scalers\n",
"t = np.linspace(0, 2 * np.pi, int(theta), endpoint=endpoint)\n",
"...\n",
"z = np.linspace(0, 2 * np.pi / self.NFP, int(zeta), endpoint=endpoint)\n",
"...\n",
"r, t, z = np.meshgrid(r, t, z, indexing=\"ij\")\n",
"r = r.ravel()\n",
"t = t.ravel()\n",
"z = z.ravel()\n",
"nodes = np.column_stack([r, t, z])\n",
"```\n",
"\n",
"The extra value of $\\theta = 2 \\pi$ and/or $\\zeta = 2\\pi / \\text{NFP}$ in the array duplicates the $\\theta = 0$ and/or $\\zeta = 0$ surfaces.\n",
"There is a surface at $\\theta = 0 \\text{ or } 2\\pi$ with duplicity 2.\n",
"There is a surface at $\\zeta = 0 \\text{ or } 2\\pi / \\text{NFP}$ with duplicity 2.\n",
"\n",
"There are no duplicate nodes on `ConcentricGrid` or `QuadratureGrid`."
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "e74adbc8-f1db-417a-bbc0-11db702f3b42",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A grid with duplicate surfaces\n",
" grid nodes \n",
" 𝜌 𝜃 𝜁\n",
"[[0.000 0.000 0.000]\n",
" [0.000 3.142 0.000]\n",
" [0.000 6.283 0.000]\n",
" [1.000 0.000 0.000]\n",
" [1.000 3.142 0.000]\n",
" [1.000 6.283 0.000]\n",
" [0.000 0.000 3.142]\n",
" [0.000 3.142 3.142]\n",
" [0.000 6.283 3.142]\n",
" [1.000 0.000 3.142]\n",
" [1.000 3.142 3.142]\n",
" [1.000 6.283 3.142]\n",
" [0.000 0.000 6.283]\n",
" [0.000 3.142 6.283]\n",
" [0.000 6.283 6.283]\n",
" [1.000 0.000 6.283]\n",
" [1.000 3.142 6.283]\n",
" [1.000 6.283 6.283]]\n"
]
}
],
"source": [
"lg = LinearGrid(L=1, N=1, M=1, endpoint=True)\n",
"print(\"A grid with duplicate surfaces\")\n",
"print(\" grid nodes \")\n",
"print(\" 𝜌 𝜃 𝜁\")\n",
"print(lg.nodes)"
]
},
{
"cell_type": "markdown",
"id": "6a1c9f9f-84c4-423b-9f57-2b555b4cf533",
"metadata": {},
"source": [
"### The problem with duplicate nodes\n",
"\n",
"For the above grid, all the nodes are located in two cross-sections at $\\zeta = 0 \\text{ and } \\pi$.\n",
"However the $\\zeta = 0$ surface has twice as many nodes as the $\\zeta = \\pi$ surface because of the duplicate surface at $\\zeta = 2\\pi$.\n",
"\n",
"If we wanted to sum a function which was 1 at the $\\zeta = 0$ cross section and -1 at $\\zeta = \\pi$ cross section, weighting all the nodes equally would result in an incorrect answer of $\\frac{2}{3} (1) + \\frac{1}{3} (-1) = \\frac{1}{3}$.\n",
"We would want the answer to be $0$.\n",
"By the same logic, a $\\rho$ surface integral would double count all the nodes on the $\\zeta = 0$ cross section.\n",
"\n",
"Furthermore, the $\\zeta$ spacing algorithm used when a scalar is given for the `zeta` (or `theta`) parameter discussed above would assign $d\\zeta = 2\\pi/3$ to each surface at $0, \\pi, \\text{ and } 2\\pi$.4\n",
"Since there are only two distinct surfaces in this grid, we would have liked to assign a $d\\zeta = 2\\pi / 2$ to each distinct surface $\\implies$ $d\\zeta = 2\\pi / 4$ for the two duplicate surfaces at $\\zeta = 0$.\n",
"That way the sum of the weights on the two duplicate surfaces add up to match the non-duplicate surface.\n",
"\n",
"Clearly we need to do some post-processing to correct the weights when there are duplicate surfaces.\n",
"From now on we will use the duplicate $\\zeta$ surface as an example, but the algorithm to correct the weights for a duplicate $\\theta$ surface is identical.\n",
"\n",
"Converting the previous previous paragraph into coding steps, we see that we need to:\n",
"1. Upscale the weight of all the nodes so that each distinct, non-duplicate, node has the correct weight.\n",
"2. Reduce the weight of all the duplicate nodes by dividing by the duplicity of that node. (This needs to be done in a more careful way than is suggested above).\n",
"\n",
"The first step is easier to handle before we make the `grid.nodes` mesh from the node coordinates.\n",
"The second step is handled by the `scale_weights` function.\n",
"```python\n",
"z = np.linspace(0, 2 * np.pi / self.NFP, int(zeta), endpoint=endpoint)\n",
"dz = 2 * np.pi / z.size * np.ones_like(z)\n",
"if endpoint and z.size > 1:\n",
" # increase node weight to account for duplicate node\n",
" dz *= z.size / (z.size - 1) # DOES STEP 1.\n",
" # scale_weights() will reduce endpoint (dz[0] and dz[-1]) duplicate node weight\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "9f56a8ce-e81a-40f2-82dd-7cb8a796f4bd",
"metadata": {},
"source": [
"### The `scale_weights` function and duplicate nodes\n",
"\n",
"This function reduces the weights of duplicate nodes.\n",
"Then, if needed, scales the weights to sum to the full volume or area."
]
},
{
"cell_type": "markdown",
"id": "2a37ed67-4ba2-46aa-87f9-6eb51ba8e1c6",
"metadata": {},
"source": [
"#### `grid.weights` $\\neq$ `grid.spacing.prod(axis=1)` when $\\exists$ duplicates\n",
"Recall the grid has two relevant attributes for node volume and areas.\n",
"The first is `weights`, which corresponds to the volume differential element $dV$ in the computational domain.\n",
"The second is `spacing`, which corresponds to the three surface differential elements $d\\rho$, $d\\theta$, and $d\\zeta$.\n",
"\n",
"When there were no duplicate nodes and symmetry off, we could think of `grid.weights` as the triple product of `grid.spacing`. In other words, the following statements were true:\n",
"```python\n",
"assert grid.weights.sum() == 4 * np.pi**2\n",
"assert grid.spacing.prod(axis=1).sum() == 4 * np.pi**2\n",
"assert np.allclose(grid.weights, grid.spacing.prod(axis=1))\n",
"```\n",
"\n",
"When there are duplicate nodes, the last two assertions above are no longer true.\n",
"Maintaining the node volume and area invariants for all three surface types simultaneously requires that `grid.weights` and `grid.spacing.prod(axis=1)` be different."
]
},
{
"cell_type": "markdown",
"id": "ae3b0c3a-84db-47eb-a372-229cba912042",
"metadata": {},
"source": [
"### How `scale_weights` affects node volume or `grid.weights`\n",
"\n",
"This process is relatively simple.\n",
"1. We scan through the nodes looking for duplicates.\n",
"```python\n",
"_, inverse, counts = np.unique(\n",
" nodes, axis=0, return_inverse=True, return_counts=True\n",
")\n",
"duplicates = np.tile(np.atleast_2d(counts[inverse]).T, 3)\n",
"```\n",
"2. Then we divide the duplicate nodes by their duplicity\n",
"```python\n",
"temp_spacing /= duplicates ** (1 / 3)\n",
"# scale weights sum to full volume\n",
"temp_spacing *= (4 * np.pi**2 / temp_spacing.prod(axis=1).sum()) ** (1 / 3)\n",
"self._weights = temp_spacing.prod(axis=1)\n",
"```\n",
"The power factor of $1/3$ is there because we want to scale down the final node weight, which is the product of the three columns, by the number of duplicates.\n",
"Dividing each column by the cube root of this factor does the job.\n",
"\n",
"Scaling down the duplicate nodes so that they have the same node volume (`grid.weights`) is relatively simple because we can ignore whether the dimensions of the node $d\\rho$, $d\\theta$, and $d\\zeta$ are correct.\n",
"All we care about is whether the final product is the correct value.\n",
"If there is a location on the grid with two nodes, we just half the volume of each of those nodes so that their total volume is the same as a non-duplicate node."
]
},
{
"cell_type": "markdown",
"id": "460f26a1-bc92-45c4-80d9-73f4c29f6e4e",
"metadata": {},
"source": [
"### How `scale_weights` affects node areas or `grid.spacing`\n",
"\n",
"This process is more complicated because we need to make sure the node has the correct area for all three types of surfaces simultaneously.\n",
"That is, we need correct values for $d\\theta \\times d\\zeta$, $d\\zeta \\times d\\rho$, and $d\\rho \\times d\\theta$.\n",
"\n",
"If there is a node with duplicity $N$, this node has $N$ times the area (and volume) it should have.\n",
"If we compute any of these integrals on the grid in this state:\n",
"$$\\int_0^{2\\pi}\\int_0^{2\\pi} d\\theta d\\zeta = \\sum_{i} d\\theta \\times d\\zeta \\neq 4\\pi^2$$\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\zeta = \\sum_{i} d\\rho \\times d\\zeta \\neq 2\\pi$$\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\theta = \\sum_{i} d\\rho \\times d\\theta \\neq 2\\pi$$\n",
"There exists $N$ indices which correspond to the same duplicated node.\n",
"This node would contribute $N$ times the area product it should.\n",
"\n",
"- To get the correct $\\rho$ surface area we should scale this node's $d\\theta \\times d\\zeta$ by $1/N$. This can be done by multiplying $d\\theta$ and $d\\zeta$ each by $(\\frac{1}{N})^{\\frac{1}{2}}$. Changing $d\\rho$ has no effect on this area.\n",
"- To get the correct $\\theta$ surface area we should scale this node's $d\\zeta \\times d\\rho$ by $1/N$. This can be done by multiplying $d\\zeta$ and $d\\rho$ each by $(\\frac{1}{N})^{\\frac{1}{2}}$. Changing $d\\theta$ has no effect on this area.\n",
"- To get the correct $\\zeta$ surface area we should scale this node's $d\\rho \\times d\\theta$ by $1/N$. This can be done by multiplying $d\\rho$ and $d\\theta$ each by $(\\frac{1}{N})^{\\frac{1}{2}}$. Changing $d\\zeta$ has no effect on this area.\n",
"\n",
"Hence, we can get the correct areas for the three surfaces simultaneously by dividing $d\\rho$ and $d\\theta$ and $d\\zeta$ by the square root of the duplicity. The extra multiplication by $(\\frac{1}{N})^{\\frac{1}{2}}$ to the other differential element is ignorable because any area only involves the product of two differential elements at a time.\n",
"```python\n",
"# The reduction of weight on duplicate nodes should be accounted for\n",
"# by the 2 columns of spacing which span the surface.\n",
"self._spacing /= duplicates ** (1 / 2)\n",
"```\n",
"\n",
"Now, when we compute any of these integrals\n",
"$$\\int_0^{2\\pi}\\int_0^{2\\pi} d\\theta d\\zeta = \\sum_{i} d\\theta \\times d\\zeta = 4\\pi^2$$\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\zeta = \\sum_{i} d\\rho \\times d\\zeta = 2\\pi$$\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\theta = \\sum_{i} d\\rho \\times d\\theta = 2\\pi$$\n",
"and we hit an index which corresponds to that of a node with duplicity N, the area product of that index will be scaled down by $1/N$.\n",
"There will be $N$ indices corresponding to this node so the total area the node contributes is the same as any non-duplicate node: $N \\times 1/N \\times$ area of non-duplicate node."
]
},
{
"cell_type": "markdown",
"id": "6aa6d9e6-3452-4168-b5b3-183b6780fa56",
"metadata": {},
"source": [
"### Why not just...\n",
"\n",
"> - scale down only $d\\rho$ by $\\frac{1}{N}$ on the duplicate node when it lies on a $\\rho$ surface of duplicity $N$?\n",
"> - scale down only $d\\theta$ by $\\frac{1}{N}$ on the duplicate node when it lies on a $\\theta$ surface of duplicity $N$?\n",
"> - scale down only $d\\zeta$ by $\\frac{1}{N}$ on the duplicate node when it lies on a $\\zeta$ surface of duplicity $N$?\n",
"\n",
"> That way, the area product at each duplicate node index is still downscaled by a factor of $\\frac{1}{N}$.\n",
"And the correct node \"lengths\" are preserved too.\n",
"What am I missing?\n",
"\n",
"That method would not calculate the area of the duplicate surface correctly.\n",
"It accounts for the thickness of the duplicate surface correctly, but it doesn't account for the extra nodes on the duplicate surface.\n",
"\n",
"For example consider a grid with a $\\zeta = 0$ surface of duplicity $N$.\n",
"If we apply the technique of just scaling down $d\\zeta$ for the nodes on this surface by $\\frac{1}{N}$, then as discussed above, the $\\rho$ and $\\theta$ surface areas on all duplicate nodes will be correct: $N \\times (d\\theta \\times \\frac{d\\zeta}{N})$ or $N \\times (d\\rho \\times \\frac{d\\zeta}{N})$, respectively.\n",
"\n",
"However, the $\\zeta$ surface area for the duplicate surface will not be correct.\n",
"This is because there are $N$ times as many nodes on this surface, so the sum is over $N$ times as many indices.\n",
"Observe that, on a surface without duplicates, with a total of $K$ nodes on that surface we have\n",
"$$\\int_0^{1}\\int_0^{2\\pi} d\\rho d\\theta = \\sum_{i=1}^{i=K} d\\rho \\times d\\theta = 2\\pi$$\n",
"If this surface had duplicity $N$, the sum would have run over $N$ times as many indices.\n",
"$$\\sum_{i=1}^{i=K N} d\\rho \\times d\\theta = N \\sum_{i=1}^{i=K} d\\rho \\times d\\theta = N \\times 2\\pi$$\n",
"\n",
"To obtain the correct result we need each node on this $\\zeta$ surface of duplicity $N$ to have a $\\zeta$ surface area of $\\frac{1}{N} (d\\rho \\times d\\theta)$.\n",
"This requirement is built into the previous algorithm where all the differential elements of duplicate nodes were scaled by $\\frac{1}{N^{1/2}}$.\n",
"$$\\sum_{i=1}^{i=K N} (\\frac{1}{N^{1/2}} d\\rho) \\times (\\frac{1}{N^{1/2}} d\\theta) = N \\sum_{i=1}^{i=K} \\frac{1}{N} d\\rho \\times d\\theta = 2\\pi$$"
]
},
{
"cell_type": "markdown",
"id": "7fb946b9-45f2-4691-9125-ead0a831adca",
"metadata": {},
"source": [
"### Verdict\n",
"When there is a node of duplicity $N$, we need to reduce the area product of each pair of differential elements ($d\\theta \\times d\\zeta$, $d\\zeta \\times d\\rho$, and $d\\rho \\times d\\theta$) by $\\frac{1}{N}$.\n",
"The only way to do this is by reducing each differential element by $\\frac{1}{N^{1/2}}$."
]
},
{
"cell_type": "markdown",
"id": "6b1b7f9f-8f89-4247-8b77-fd4e15ad7532",
"metadata": {},
"source": [
"### Recap and intuition for duplicate nodes\n",
"\n",
"Recall when there is a duplicate node we need to do two steps:\n",
"> 1. Upscale the weight of all the nodes so that each distinct, non-duplicate, node has the correct weight.\n",
"> 2. Reduce the weight of all the duplicate nodes by dividing by the duplicity of that node.\n",
"\n",
"Weight may refer to volume, area, or length.\n",
"\n",
"To correct the volume weights when there is a duplicate node:\n",
"```python\n",
"temp_spacing = np.copy(self.spacing)\n",
"temp_spacing /= duplicates ** (1 / 3) # STEP 2\n",
"temp_spacing *= (4 * np.pi**2 / temp_spacing.prod(axis=1).sum()) ** (1 / 3) # STEP 1\n",
"self._volumes = temp_spacing.prod(axis=1)\n",
"```\n",
"\n",
"To correct the area weights when there is a duplicate node:\n",
"```python\n",
"self._areas = np.copy(self.spacing)\n",
" # STEP 1:\n",
" # for each surface label\n",
" # if spacing was assigned as max_surface_val / number of surfaces, then\n",
" # scale the differential element of the same surface label (e.g. dzeta) by:\n",
" # number of surfaces / number of unique surfaces\n",
" # done in LinearGrid construction\n",
"self._areas /= duplicates ** (1 / 2) # STEP 2\n",
"```\n",
"\n",
"To correct the length weights when there is a duplicate node:\n",
"```python\n",
"self._lengths = np.copy(self.spacing)\n",
" # STEP 1:\n",
" # for each surface label\n",
" # if spacing was assigned as max_surface_val / number of surfaces, then\n",
" # scale the differential element of the same surface label (e.g. dzeta) by:\n",
" # number of nodes per line integral / number of unique nodes per line integral\n",
" # which equals surfaces / number of unique surfaces for LinearGrid\n",
" # done in LinearGrid construction\n",
"self._lengths /= duplicates ** (1 / 1) # STEP 2\n",
"```\n",
"\n",
"Three attributes are required when there are duplicate nodes.\n",
"\n",
"Currently in `grid.py`, the\n",
"- `_volumes` attribute is `_weights`,\n",
"- `_areas` attribute is `_spacing`,\n",
"- There is no `_lengths` attribute. Because the column from the areas grid is used, line integrals overweight duplicate nodes by the square root of the duplicity."
]
},
{
"cell_type": "markdown",
"id": "c2cf249f-b4ee-405a-8666-01e404a1992f",
"metadata": {},
"source": [
"### `LinearGrid` with `endpoint` duplicate\n",
"\n",
"The main use case for duplicate nodes on `LinearGrid` is to add one at the endpoint of the periodic domains to make closed intervals for plotting purposes.\n",
"Before the `grid.nodes` mesh is created on `LinearGrid` we have access to three arrays which specify the values of all the surfaces: `rho`, `theta`, and `zeta`.\n",
"If there is a duplicate surface, we can just check for a repeated value in these arrays.\n",
"This makes it easy to find the correct upscale factor of (number of surfaces / number of unique surfaces) for this surface's spacing.\n",
"\n",
"### `LinearGrid` with `endpoint` duplicate at $\\theta = 2\\pi$ and `symmetry`\n",
"If this is the case, the duplicate surface at $\\theta = 2\\pi$ will be deleted by symmetry,\n",
"while the remaining surface at $\\theta = 0$ will remain.\n",
"As this surface will no longer be a duplicate, we need to prevent both step 1 and step 2 from occurring.\n",
"\n",
"Step 2 is prevented by calling `enforce_symmetry` prior to `scale_weights`, so that the duplicate node is deleted before it is detected and scaled down.\n",
"Step 1 is prevented with an additional conditional guard that determines whether to upscale $d\\theta$.\n",
"```python\n",
"if (endpoint and not self.sym) and t.size > 1:\n",
" # increase node weight to account for duplicate node\n",
" dt *= t.size / (t.size - 1)\n",
" # scale_weights() will reduce endpoint (dt[0] and dt[-1])\n",
" # duplicate node weight\n",
"```"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "desc-env",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.7"
},
"toc-autonumbering": true,
"toc-showcode": true,
"toc-showmarkdowntxt": false
},
"nbformat": 4,
"nbformat_minor": 5
}