Skip to content

Instantly share code, notes, and snippets.

@suvarchal
Created June 22, 2024 00:51
Show Gist options
  • Save suvarchal/225a78fcd94fa8e86a730c0b2f5060b7 to your computer and use it in GitHub Desktop.
Save suvarchal/225a78fcd94fa8e86a730c0b2f5060b7 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T14:02:12.210615Z",
"start_time": "2021-07-13T14:02:12.207894Z"
}
},
"outputs": [],
"source": [
"import networkx as nx\n",
"import pyfesom2\n",
"import xarray as xr"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T14:03:19.575807Z",
"start_time": "2021-07-13T14:03:19.532792Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2 {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.Dataset&gt;\n",
"Dimensions: (N: 8, edg_n: 8986, elem_n: 5839, n2: 2, n3: 3, n4: 4, nl: 48, nl1: 47, nod_n: 3140)\n",
"Dimensions without coordinates: N, edg_n, elem_n, n2, n3, n4, nl, nl1, nod_n\n",
"Data variables: (12/19)\n",
" zbar (nl) float64 0.0 -5.0 -10.0 ... -6e+03 -6.25e+03\n",
" Z (nl1) float64 -2.5 -7.5 -15.0 ... -5.825e+03 -6.125e+03\n",
" elem_area (elem_n) float64 7.572e+08 7.279e+08 ... 6.581e+09\n",
" nlevels_nod2D (nod_n) int32 23 22 22 23 23 23 29 ... 20 29 29 23 21 22\n",
" nlevels (elem_n) int32 19 18 20 22 22 22 23 ... 29 23 22 21 18 22\n",
" nod_in_elem2D_num (nod_n) int32 6 5 6 5 6 6 6 6 7 6 ... 6 5 3 6 3 6 6 4 3 3\n",
" ... ...\n",
" nod_in_elem2D (N, nod_n) int32 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0\n",
" edges (n2, edg_n) int32 1 1 1 1 1 ... 3135 3133 3139 3138 3140\n",
" edge_tri (n2, edg_n) int32 23 1 4 5 8 20 1 2 3 ... 0 0 0 0 0 0 0 0\n",
" edge_cross_dxdy (n4, edg_n) float64 -8.518e+03 5.218e+03 ... 0.0 0.0\n",
" gradient_sca_x (n3, elem_n) float64 -2.791e-05 -2.041e-05 ... 7.312e-06\n",
" gradient_sca_y (n3, elem_n) float64 -1.877e-06 -2.504e-05 ... -3.759e-06</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.Dataset</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-b83eacc2-9c87-4db6-ae90-0cce848fc578' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-b83eacc2-9c87-4db6-ae90-0cce848fc578' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span>N</span>: 8</li><li><span>edg_n</span>: 8986</li><li><span>elem_n</span>: 5839</li><li><span>n2</span>: 2</li><li><span>n3</span>: 3</li><li><span>n4</span>: 4</li><li><span>nl</span>: 48</li><li><span>nl1</span>: 47</li><li><span>nod_n</span>: 3140</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-52c88069-077f-47bb-af59-67e9786d5bce' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-52c88069-077f-47bb-af59-67e9786d5bce' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-213af148-4f97-4d45-a90a-5f9f5f4de2c6' class='xr-section-summary-in' type='checkbox' ><label for='section-213af148-4f97-4d45-a90a-5f9f5f4de2c6' class='xr-section-summary' >Data variables: <span>(19)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>zbar</span></div><div class='xr-var-dims'>(nl)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-84dc2cef-c769-4758-ba42-ced44dbe1192' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-84dc2cef-c769-4758-ba42-ced44dbe1192' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-006ab565-b212-4122-a07e-57defc9afc0b' class='xr-var-data-in' type='checkbox'><label for='data-006ab565-b212-4122-a07e-57defc9afc0b' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>depth of levels</dd></dl></div><div class='xr-var-data'><pre>array([ 0.00e+00, -5.00e+00, -1.00e+01, -2.00e+01, -3.00e+01, -4.00e+01,\n",
" -5.00e+01, -6.00e+01, -7.00e+01, -8.00e+01, -9.00e+01, -1.00e+02,\n",
" -1.15e+02, -1.35e+02, -1.60e+02, -1.90e+02, -2.30e+02, -2.80e+02,\n",
" -3.40e+02, -4.10e+02, -4.90e+02, -5.80e+02, -6.80e+02, -7.90e+02,\n",
" -9.10e+02, -1.04e+03, -1.18e+03, -1.33e+03, -1.50e+03, -1.70e+03,\n",
" -1.92e+03, -2.15e+03, -2.40e+03, -2.65e+03, -2.90e+03, -3.15e+03,\n",
" -3.40e+03, -3.65e+03, -3.90e+03, -4.15e+03, -4.40e+03, -4.65e+03,\n",
" -4.90e+03, -5.15e+03, -5.40e+03, -5.65e+03, -6.00e+03, -6.25e+03])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Z</span></div><div class='xr-var-dims'>(nl1)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6ffe781a-23e5-455b-9458-45ca0afb7ee5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6ffe781a-23e5-455b-9458-45ca0afb7ee5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-66f60950-090c-439c-9bff-197de98c0cec' class='xr-var-data-in' type='checkbox'><label for='data-66f60950-090c-439c-9bff-197de98c0cec' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>depth of layers</dd></dl></div><div class='xr-var-data'><pre>array([-2.500e+00, -7.500e+00, -1.500e+01, -2.500e+01, -3.500e+01, -4.500e+01,\n",
" -5.500e+01, -6.500e+01, -7.500e+01, -8.500e+01, -9.500e+01, -1.075e+02,\n",
" -1.250e+02, -1.475e+02, -1.750e+02, -2.100e+02, -2.550e+02, -3.100e+02,\n",
" -3.750e+02, -4.500e+02, -5.350e+02, -6.300e+02, -7.350e+02, -8.500e+02,\n",
" -9.750e+02, -1.110e+03, -1.255e+03, -1.415e+03, -1.600e+03, -1.810e+03,\n",
" -2.035e+03, -2.275e+03, -2.525e+03, -2.775e+03, -3.025e+03, -3.275e+03,\n",
" -3.525e+03, -3.775e+03, -4.025e+03, -4.275e+03, -4.525e+03, -4.775e+03,\n",
" -5.025e+03, -5.275e+03, -5.525e+03, -5.825e+03, -6.125e+03])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>elem_area</span></div><div class='xr-var-dims'>(elem_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-682ce801-2ad1-4239-9863-d3e06743c48c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-682ce801-2ad1-4239-9863-d3e06743c48c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-39bbe321-cde0-4b0f-9f5a-4af5926dd4d1' class='xr-var-data-in' type='checkbox'><label for='data-39bbe321-cde0-4b0f-9f5a-4af5926dd4d1' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>element areas</dd></dl></div><div class='xr-var-data'><pre>array([7.572042e+08, 7.278958e+08, 9.803415e+08, ..., 6.775696e+09,\n",
" 7.766659e+09, 6.580706e+09])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nlevels_nod2D</span></div><div class='xr-var-dims'>(nod_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d922dfa5-b9c0-4675-85dd-ce539532a6f1' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d922dfa5-b9c0-4675-85dd-ce539532a6f1' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-60eac6bd-3b41-4b8f-8df9-8cfc2d13eb11' class='xr-var-data-in' type='checkbox'><label for='data-60eac6bd-3b41-4b8f-8df9-8cfc2d13eb11' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>number of levels below nodes</dd></dl></div><div class='xr-var-data'><pre>array([23, 22, 22, ..., 23, 21, 22], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nlevels</span></div><div class='xr-var-dims'>(elem_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-a2f3d6ab-4523-41ef-9efe-3f87e8881885' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a2f3d6ab-4523-41ef-9efe-3f87e8881885' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2f2a16be-5afc-4bd1-8856-3661c42503e6' class='xr-var-data-in' type='checkbox'><label for='data-2f2a16be-5afc-4bd1-8856-3661c42503e6' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>number of levels below elements</dd></dl></div><div class='xr-var-data'><pre>array([19, 18, 20, ..., 21, 18, 22], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nod_in_elem2D_num</span></div><div class='xr-var-dims'>(nod_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-b263ff20-e90f-4af8-967d-6ef515229846' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b263ff20-e90f-4af8-967d-6ef515229846' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4cd276da-50c7-466d-8c9c-16280d3b0ae5' class='xr-var-data-in' type='checkbox'><label for='data-4cd276da-50c7-466d-8c9c-16280d3b0ae5' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>number of elements containing the node</dd></dl></div><div class='xr-var-data'><pre>array([6, 5, 6, ..., 4, 3, 3], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nod_part</span></div><div class='xr-var-dims'>(nod_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-6e678095-1a3a-4318-af99-491f72a6412a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6e678095-1a3a-4318-af99-491f72a6412a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2cbac0de-ba05-47e0-8f6d-5984d98643c8' class='xr-var-data-in' type='checkbox'><label for='data-2cbac0de-ba05-47e0-8f6d-5984d98643c8' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>nodal partitioning at the cold start</dd></dl></div><div class='xr-var-data'><pre>array([1, 1, 1, ..., 5, 5, 5], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>elem_part</span></div><div class='xr-var-dims'>(elem_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-06783bbf-80b0-4a92-a9f9-87bca182ab6d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-06783bbf-80b0-4a92-a9f9-87bca182ab6d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e1613a42-6a37-4040-b5bf-cd1acfea00e5' class='xr-var-data-in' type='checkbox'><label for='data-e1613a42-6a37-4040-b5bf-cd1acfea00e5' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>element partitioning at the cold start</dd></dl></div><div class='xr-var-data'><pre>array([1, 1, 1, ..., 5, 5, 5], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>zbar_e_bottom</span></div><div class='xr-var-dims'>(elem_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-b0a76359-4fe9-43fb-8645-dcef2e6b129e' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b0a76359-4fe9-43fb-8645-dcef2e6b129e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-62a73d03-25d7-48a0-ba91-cf99b11d0a10' class='xr-var-data-in' type='checkbox'><label for='data-62a73d03-25d7-48a0-ba91-cf99b11d0a10' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>element bottom depth</dd></dl></div><div class='xr-var-data'><pre>array([-340., -280., -410., ..., -490., -280., -580.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>zbar_n_bottom</span></div><div class='xr-var-dims'>(nod_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-dbf46415-d44f-4004-90f6-ee96b76c3fd9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-dbf46415-d44f-4004-90f6-ee96b76c3fd9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f7dfdad7-820c-482a-8d35-7fe9b5c5582c' class='xr-var-data-in' type='checkbox'><label for='data-f7dfdad7-820c-482a-8d35-7fe9b5c5582c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>nodal bottom depth</dd></dl></div><div class='xr-var-data'><pre>array([-680., -580., -580., ..., -680., -490., -580.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nod_area</span></div><div class='xr-var-dims'>(nl, nod_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-d69c858d-b48f-475d-8230-145e2c993a7c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d69c858d-b48f-475d-8230-145e2c993a7c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-67b5c087-8a2c-485e-bcd8-8d031ad1bbb9' class='xr-var-data-in' type='checkbox'><label for='data-67b5c087-8a2c-485e-bcd8-8d031ad1bbb9' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>nodal areas</dd></dl></div><div class='xr-var-data'><pre>[150720 values with dtype=float64]</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>elem</span></div><div class='xr-var-dims'>(n3, elem_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-8e232e2b-0e32-4e81-9ee9-d30a5b521dea' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-8e232e2b-0e32-4e81-9ee9-d30a5b521dea' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-28f98ee6-f5a6-43e3-98e4-b228d46164cb' class='xr-var-data-in' type='checkbox'><label for='data-28f98ee6-f5a6-43e3-98e4-b228d46164cb' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>elements</dd></dl></div><div class='xr-var-data'><pre>array([[ 1, 2, 2, ..., 3139, 3139, 3140],\n",
" [ 12, 12, 10, ..., 3136, 3135, 3137],\n",
" [ 2, 10, 9, ..., 3140, 3134, 3138]], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nodes</span></div><div class='xr-var-dims'>(n2, nod_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-eea37882-e60b-479c-a276-29eb06b68598' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-eea37882-e60b-479c-a276-29eb06b68598' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5264cd40-c2cb-4051-8bdc-875682160369' class='xr-var-data-in' type='checkbox'><label for='data-5264cd40-c2cb-4051-8bdc-875682160369' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>nodal geo. coordinates</dd></dl></div><div class='xr-var-data'><pre>array([[-1.05769 , -1.059941, -1.084769, ..., 2.220492, 2.12928 , 2.173183],\n",
" [ 1.296482, 1.290005, 1.292442, ..., -1.156235, -1.164707, -1.159993]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>nod_in_elem2D</span></div><div class='xr-var-dims'>(N, nod_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-bf13d0bc-fe18-4b78-9ac9-fc78af2c588a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-bf13d0bc-fe18-4b78-9ac9-fc78af2c588a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-83224ad3-441e-4e1e-a4c4-33a1e74e1da0' class='xr-var-data-in' type='checkbox'><label for='data-83224ad3-441e-4e1e-a4c4-33a1e74e1da0' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>elements containing the node</dd></dl></div><div class='xr-var-data'><pre>array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>edges</span></div><div class='xr-var-dims'>(n2, edg_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-58b597c5-f3f3-452c-9e53-cb4bb30934ea' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-58b597c5-f3f3-452c-9e53-cb4bb30934ea' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-25d927de-2651-4b52-a2bb-cfbb85b30627' class='xr-var-data-in' type='checkbox'><label for='data-25d927de-2651-4b52-a2bb-cfbb85b30627' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>edges</dd></dl></div><div class='xr-var-data'><pre>array([[ 1, 1, 1, ..., 3135, 3140, 3139],\n",
" [ 12, 2, 3, ..., 3139, 3138, 3140]], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>edge_tri</span></div><div class='xr-var-dims'>(n2, edg_n)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-82a90083-9532-4a57-ba5d-68fd78f45041' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-82a90083-9532-4a57-ba5d-68fd78f45041' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-816260d1-969b-4d72-b223-2f8201dc8ed2' class='xr-var-data-in' type='checkbox'><label for='data-816260d1-969b-4d72-b223-2f8201dc8ed2' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>edge triangles</dd></dl></div><div class='xr-var-data'><pre>array([[ 23, 1, 4, ..., 5838, 5839, 5837],\n",
" [ 1, 4, 5, ..., 0, 0, 0]], dtype=int32)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>edge_cross_dxdy</span></div><div class='xr-var-dims'>(n4, edg_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-db6c0cbb-28fa-4a35-8e0c-c88e46d21aec' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-db6c0cbb-28fa-4a35-8e0c-c88e46d21aec' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-842d34cc-2179-41d3-844d-6d1007f984d3' class='xr-var-data-in' type='checkbox'><label for='data-842d34cc-2179-41d3-844d-6d1007f984d3' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>edge cross distancess</dd></dl></div><div class='xr-var-data'><pre>array([[ -8518.232241, 5217.618495, 11289.595921, ..., 16592.056036,\n",
" -4350.792423, 7061.74669 ],\n",
" [ 9192.62085 , 11213.404444, 3046.919346, ..., 33606.873264,\n",
" 35872.151609, 37370.606152],\n",
" [ 6639.261641, -3293.930154, -13187.343913, ..., 0. ,\n",
" 0. , 0. ],\n",
" [ -9918.695437, -14717.825123, -2732.040334, ..., 0. ,\n",
" 0. , 0. ]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gradient_sca_x</span></div><div class='xr-var-dims'>(n3, elem_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-053015af-c604-4603-9416-ea5e99d8ced6' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-053015af-c604-4603-9416-ea5e99d8ced6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ed72dd87-ea86-4a4b-8378-2e5965f00d9f' class='xr-var-data-in' type='checkbox'><label for='data-ed72dd87-ea86-4a4b-8378-2e5965f00d9f' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>x component of a gradient at nodes of an element</dd></dl></div><div class='xr-var-data'><pre>array([[-2.790806e-05, -2.041308e-05, -2.980297e-05, ..., -9.037411e-06,\n",
" 5.058264e-06, -9.040900e-06],\n",
" [ 1.138925e-05, -8.618686e-06, 2.340366e-05, ..., 1.528651e-06,\n",
" -7.922945e-06, 1.728469e-06],\n",
" [ 1.651881e-05, 2.903177e-05, 6.399305e-06, ..., 7.508760e-06,\n",
" 2.864680e-06, 7.312431e-06]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>gradient_sca_y</span></div><div class='xr-var-dims'>(n3, elem_n)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>...</div><input id='attrs-51b0037a-3c0a-4b70-921d-a685bf8e7c15' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-51b0037a-3c0a-4b70-921d-a685bf8e7c15' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d30e8a14-d9f6-479c-a494-4a5ea881f501' class='xr-var-data-in' type='checkbox'><label for='data-d30e8a14-d9f6-479c-a494-4a5ea881f501' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>y component of a gradient at nodes of an element</dd></dl></div><div class='xr-var-data'><pre>array([[-1.877490e-06, -2.503750e-05, 3.955139e-06, ..., -2.752076e-06,\n",
" -7.456620e-06, -5.742665e-06],\n",
" [ 2.442689e-05, 2.307938e-05, 1.400738e-05, ..., 8.630804e-06,\n",
" -1.047664e-06, 9.501899e-06],\n",
" [-2.254940e-05, 1.958122e-06, -1.796252e-05, ..., -5.878728e-06,\n",
" 8.504284e-06, -3.759234e-06]])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-e6aa77a8-914a-4649-9ccf-35c305ad40b8' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-e6aa77a8-914a-4649-9ccf-35c305ad40b8' class='xr-section-summary' title='Expand/collapse section'>Attributes: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.Dataset>\n",
"Dimensions: (N: 8, edg_n: 8986, elem_n: 5839, n2: 2, n3: 3, n4: 4, nl: 48, nl1: 47, nod_n: 3140)\n",
"Dimensions without coordinates: N, edg_n, elem_n, n2, n3, n4, nl, nl1, nod_n\n",
"Data variables: (12/19)\n",
" zbar (nl) float64 ...\n",
" Z (nl1) float64 ...\n",
" elem_area (elem_n) float64 ...\n",
" nlevels_nod2D (nod_n) int32 ...\n",
" nlevels (elem_n) int32 ...\n",
" nod_in_elem2D_num (nod_n) int32 ...\n",
" ... ...\n",
" nod_in_elem2D (N, nod_n) int32 ...\n",
" edges (n2, edg_n) int32 ...\n",
" edge_tri (n2, edg_n) int32 ...\n",
" edge_cross_dxdy (n4, edg_n) float64 ...\n",
" gradient_sca_x (n3, elem_n) float64 ...\n",
" gradient_sca_y (n3, elem_n) float64 ..."
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mdiag=xr.open_dataset(\"pi-grid/fesom.mesh.diag.nc\")\n",
"mdiag"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T13:59:49.709523Z",
"start_time": "2021-07-13T13:59:49.702545Z"
}
},
"outputs": [],
"source": [
"g=nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T14:03:52.269312Z",
"start_time": "2021-07-13T14:03:52.260030Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div><svg style=\"position: absolute; width: 0; height: 0; overflow: hidden\">\n",
"<defs>\n",
"<symbol id=\"icon-database\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M16 0c-8.837 0-16 2.239-16 5v4c0 2.761 7.163 5 16 5s16-2.239 16-5v-4c0-2.761-7.163-5-16-5z\"></path>\n",
"<path d=\"M16 17c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"<path d=\"M16 26c-8.837 0-16-2.239-16-5v6c0 2.761 7.163 5 16 5s16-2.239 16-5v-6c0 2.761-7.163 5-16 5z\"></path>\n",
"</symbol>\n",
"<symbol id=\"icon-file-text2\" viewBox=\"0 0 32 32\">\n",
"<path d=\"M28.681 7.159c-0.694-0.947-1.662-2.053-2.724-3.116s-2.169-2.030-3.116-2.724c-1.612-1.182-2.393-1.319-2.841-1.319h-15.5c-1.378 0-2.5 1.121-2.5 2.5v27c0 1.378 1.122 2.5 2.5 2.5h23c1.378 0 2.5-1.122 2.5-2.5v-19.5c0-0.448-0.137-1.23-1.319-2.841zM24.543 5.457c0.959 0.959 1.712 1.825 2.268 2.543h-4.811v-4.811c0.718 0.556 1.584 1.309 2.543 2.268zM28 29.5c0 0.271-0.229 0.5-0.5 0.5h-23c-0.271 0-0.5-0.229-0.5-0.5v-27c0-0.271 0.229-0.5 0.5-0.5 0 0 15.499-0 15.5 0v7c0 0.552 0.448 1 1 1h7v19.5z\"></path>\n",
"<path d=\"M23 26h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 22h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"<path d=\"M23 18h-14c-0.552 0-1-0.448-1-1s0.448-1 1-1h14c0.552 0 1 0.448 1 1s-0.448 1-1 1z\"></path>\n",
"</symbol>\n",
"</defs>\n",
"</svg>\n",
"<style>/* CSS stylesheet for displaying xarray objects in jupyterlab.\n",
" *\n",
" */\n",
"\n",
":root {\n",
" --xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));\n",
" --xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));\n",
" --xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));\n",
" --xr-border-color: var(--jp-border-color2, #e0e0e0);\n",
" --xr-disabled-color: var(--jp-layout-color3, #bdbdbd);\n",
" --xr-background-color: var(--jp-layout-color0, white);\n",
" --xr-background-color-row-even: var(--jp-layout-color1, white);\n",
" --xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);\n",
"}\n",
"\n",
"html[theme=dark],\n",
"body.vscode-dark {\n",
" --xr-font-color0: rgba(255, 255, 255, 1);\n",
" --xr-font-color2: rgba(255, 255, 255, 0.54);\n",
" --xr-font-color3: rgba(255, 255, 255, 0.38);\n",
" --xr-border-color: #1F1F1F;\n",
" --xr-disabled-color: #515151;\n",
" --xr-background-color: #111111;\n",
" --xr-background-color-row-even: #111111;\n",
" --xr-background-color-row-odd: #313131;\n",
"}\n",
"\n",
".xr-wrap {\n",
" display: block;\n",
" min-width: 300px;\n",
" max-width: 700px;\n",
"}\n",
"\n",
".xr-text-repr-fallback {\n",
" /* fallback to plain text repr when CSS is not injected (untrusted notebook) */\n",
" display: none;\n",
"}\n",
"\n",
".xr-header {\n",
" padding-top: 6px;\n",
" padding-bottom: 6px;\n",
" margin-bottom: 4px;\n",
" border-bottom: solid 1px var(--xr-border-color);\n",
"}\n",
"\n",
".xr-header > div,\n",
".xr-header > ul {\n",
" display: inline;\n",
" margin-top: 0;\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-obj-type,\n",
".xr-array-name {\n",
" margin-left: 2px;\n",
" margin-right: 10px;\n",
"}\n",
"\n",
".xr-obj-type {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-sections {\n",
" padding-left: 0 !important;\n",
" display: grid;\n",
" grid-template-columns: 150px auto auto 1fr 20px 20px;\n",
"}\n",
"\n",
".xr-section-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-section-item input {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-item input + label {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label {\n",
" cursor: pointer;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-item input:enabled + label:hover {\n",
" color: var(--xr-font-color0);\n",
"}\n",
"\n",
".xr-section-summary {\n",
" grid-column: 1;\n",
" color: var(--xr-font-color2);\n",
" font-weight: 500;\n",
"}\n",
"\n",
".xr-section-summary > span {\n",
" display: inline-block;\n",
" padding-left: 0.5em;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label {\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-section-summary-in + label:before {\n",
" display: inline-block;\n",
" content: '►';\n",
" font-size: 11px;\n",
" width: 15px;\n",
" text-align: center;\n",
"}\n",
"\n",
".xr-section-summary-in:disabled + label:before {\n",
" color: var(--xr-disabled-color);\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label:before {\n",
" content: '▼';\n",
"}\n",
"\n",
".xr-section-summary-in:checked + label > span {\n",
" display: none;\n",
"}\n",
"\n",
".xr-section-summary,\n",
".xr-section-inline-details {\n",
" padding-top: 4px;\n",
" padding-bottom: 4px;\n",
"}\n",
"\n",
".xr-section-inline-details {\n",
" grid-column: 2 / -1;\n",
"}\n",
"\n",
".xr-section-details {\n",
" display: none;\n",
" grid-column: 1 / -1;\n",
" margin-bottom: 5px;\n",
"}\n",
"\n",
".xr-section-summary-in:checked ~ .xr-section-details {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-array-wrap {\n",
" grid-column: 1 / -1;\n",
" display: grid;\n",
" grid-template-columns: 20px auto;\n",
"}\n",
"\n",
".xr-array-wrap > label {\n",
" grid-column: 1;\n",
" vertical-align: top;\n",
"}\n",
"\n",
".xr-preview {\n",
" color: var(--xr-font-color3);\n",
"}\n",
"\n",
".xr-array-preview,\n",
".xr-array-data {\n",
" padding: 0 5px !important;\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-array-data,\n",
".xr-array-in:checked ~ .xr-array-preview {\n",
" display: none;\n",
"}\n",
"\n",
".xr-array-in:checked ~ .xr-array-data,\n",
".xr-array-preview {\n",
" display: inline-block;\n",
"}\n",
"\n",
".xr-dim-list {\n",
" display: inline-block !important;\n",
" list-style: none;\n",
" padding: 0 !important;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list li {\n",
" display: inline-block;\n",
" padding: 0;\n",
" margin: 0;\n",
"}\n",
"\n",
".xr-dim-list:before {\n",
" content: '(';\n",
"}\n",
"\n",
".xr-dim-list:after {\n",
" content: ')';\n",
"}\n",
"\n",
".xr-dim-list li:not(:last-child):after {\n",
" content: ',';\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-has-index {\n",
" font-weight: bold;\n",
"}\n",
"\n",
".xr-var-list,\n",
".xr-var-item {\n",
" display: contents;\n",
"}\n",
"\n",
".xr-var-item > div,\n",
".xr-var-item label,\n",
".xr-var-item > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-even);\n",
" margin-bottom: 0;\n",
"}\n",
"\n",
".xr-var-item > .xr-var-name:hover span {\n",
" padding-right: 5px;\n",
"}\n",
"\n",
".xr-var-list > li:nth-child(odd) > div,\n",
".xr-var-list > li:nth-child(odd) > label,\n",
".xr-var-list > li:nth-child(odd) > .xr-var-name span {\n",
" background-color: var(--xr-background-color-row-odd);\n",
"}\n",
"\n",
".xr-var-name {\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-var-dims {\n",
" grid-column: 2;\n",
"}\n",
"\n",
".xr-var-dtype {\n",
" grid-column: 3;\n",
" text-align: right;\n",
" color: var(--xr-font-color2);\n",
"}\n",
"\n",
".xr-var-preview {\n",
" grid-column: 4;\n",
"}\n",
"\n",
".xr-var-name,\n",
".xr-var-dims,\n",
".xr-var-dtype,\n",
".xr-preview,\n",
".xr-attrs dt {\n",
" white-space: nowrap;\n",
" overflow: hidden;\n",
" text-overflow: ellipsis;\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-var-name:hover,\n",
".xr-var-dims:hover,\n",
".xr-var-dtype:hover,\n",
".xr-attrs dt:hover {\n",
" overflow: visible;\n",
" width: auto;\n",
" z-index: 1;\n",
"}\n",
"\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" display: none;\n",
" background-color: var(--xr-background-color) !important;\n",
" padding-bottom: 5px !important;\n",
"}\n",
"\n",
".xr-var-attrs-in:checked ~ .xr-var-attrs,\n",
".xr-var-data-in:checked ~ .xr-var-data {\n",
" display: block;\n",
"}\n",
"\n",
".xr-var-data > table {\n",
" float: right;\n",
"}\n",
"\n",
".xr-var-name span,\n",
".xr-var-data,\n",
".xr-attrs {\n",
" padding-left: 25px !important;\n",
"}\n",
"\n",
".xr-attrs,\n",
".xr-var-attrs,\n",
".xr-var-data {\n",
" grid-column: 1 / -1;\n",
"}\n",
"\n",
"dl.xr-attrs {\n",
" padding: 0;\n",
" margin: 0;\n",
" display: grid;\n",
" grid-template-columns: 125px auto;\n",
"}\n",
"\n",
".xr-attrs dt,\n",
".xr-attrs dd {\n",
" padding: 0;\n",
" margin: 0;\n",
" float: left;\n",
" padding-right: 10px;\n",
" width: auto;\n",
"}\n",
"\n",
".xr-attrs dt {\n",
" font-weight: normal;\n",
" grid-column: 1;\n",
"}\n",
"\n",
".xr-attrs dt:hover span {\n",
" display: inline-block;\n",
" background: var(--xr-background-color);\n",
" padding-right: 10px;\n",
"}\n",
"\n",
".xr-attrs dd {\n",
" grid-column: 2;\n",
" white-space: pre-wrap;\n",
" word-break: break-all;\n",
"}\n",
"\n",
".xr-icon-database,\n",
".xr-icon-file-text2 {\n",
" display: inline-block;\n",
" vertical-align: middle;\n",
" width: 1em;\n",
" height: 1.5em !important;\n",
" stroke-width: 0;\n",
" stroke: currentColor;\n",
" fill: currentColor;\n",
"}\n",
"</style><pre class='xr-text-repr-fallback'>&lt;xarray.DataArray &#x27;edges&#x27; (edg_n: 8986, n2: 2)&gt;\n",
"array([[ 1, 12],\n",
" [ 1, 2],\n",
" [ 1, 3],\n",
" ...,\n",
" [3135, 3139],\n",
" [3140, 3138],\n",
" [3139, 3140]], dtype=int32)\n",
"Dimensions without coordinates: edg_n, n2\n",
"Attributes:\n",
" long_name: edges</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.DataArray</div><div class='xr-array-name'>'edges'</div><ul class='xr-dim-list'><li><span>edg_n</span>: 8986</li><li><span>n2</span>: 2</li></ul></div><ul class='xr-sections'><li class='xr-section-item'><div class='xr-array-wrap'><input id='section-62997333-8ee0-4bcc-ac8f-0ad7321b73d1' class='xr-array-in' type='checkbox' checked><label for='section-62997333-8ee0-4bcc-ac8f-0ad7321b73d1' title='Show/hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-array-preview xr-preview'><span>1 12 1 2 1 3 1 5 1 4 ... 3135 3138 3133 3135 3139 3140 3138 3139 3140</span></div><div class='xr-array-data'><pre>array([[ 1, 12],\n",
" [ 1, 2],\n",
" [ 1, 3],\n",
" ...,\n",
" [3135, 3139],\n",
" [3140, 3138],\n",
" [3139, 3140]], dtype=int32)</pre></div></div></li><li class='xr-section-item'><input id='section-3e6ce8e0-99bb-4da3-ae3a-6efb6051c52a' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-3e6ce8e0-99bb-4da3-ae3a-6efb6051c52a' class='xr-section-summary' title='Expand/collapse section'>Coordinates: <span>(0)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'></ul></div></li><li class='xr-section-item'><input id='section-36b29d71-9662-416a-a891-f1de2e58b05b' class='xr-section-summary-in' type='checkbox' checked><label for='section-36b29d71-9662-416a-a891-f1de2e58b05b' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>long_name :</span></dt><dd>edges</dd></dl></div></li></ul></div></div>"
],
"text/plain": [
"<xarray.DataArray 'edges' (edg_n: 8986, n2: 2)>\n",
"array([[ 1, 12],\n",
" [ 1, 2],\n",
" [ 1, 3],\n",
" ...,\n",
" [3135, 3139],\n",
" [3140, 3138],\n",
" [3139, 3140]], dtype=int32)\n",
"Dimensions without coordinates: edg_n, n2\n",
"Attributes:\n",
" long_name: edges"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mdiag.edges.T"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T14:04:21.749067Z",
"start_time": "2021-07-13T14:04:21.712763Z"
}
},
"outputs": [],
"source": [
"g.add_edges_from(mdiag.edges.T.values)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T15:35:10.431383Z",
"start_time": "2021-07-13T15:35:10.428657Z"
}
},
"outputs": [],
"source": [
"#!pip install git+https://github.com/networkx/networkx-metis"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T15:35:37.612521Z",
"start_time": "2021-07-13T15:35:37.603113Z"
}
},
"outputs": [],
"source": [
"import nxmetis"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-13T15:35:55.843119Z",
"start_time": "2021-07-13T15:35:55.799910Z"
}
},
"outputs": [],
"source": [
"ps=nxmetis.partition(g,8)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:22:59.830982Z",
"start_time": "2021-07-14T08:22:59.716545Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"(275,\n",
" [[1292,\n",
" 1311,\n",
" 1316,\n",
" 1315,\n",
" 1314,\n",
" 1312,\n",
" 1336,\n",
" 1313,\n",
" 1337,\n",
" 1338,\n",
" 1335,\n",
" 1340,\n",
" 1342,\n",
" 1341,\n",
" 1317,\n",
" 1344,\n",
" 1361,\n",
" 1362,\n",
" 1365,\n",
" 1339,\n",
" 1364,\n",
" 1366,\n",
" 1363,\n",
" 1368,\n",
" 1369,\n",
" 1370,\n",
" 1371,\n",
" 1343,\n",
" 1372,\n",
" 1373,\n",
" 1345,\n",
" 1374,\n",
" 1360,\n",
" 1388,\n",
" 1389,\n",
" 1392,\n",
" 1367,\n",
" 1394,\n",
" 1391,\n",
" 1393,\n",
" 1395,\n",
" 1396,\n",
" 1402,\n",
" 1401,\n",
" 1404,\n",
" 1403,\n",
" 1406,\n",
" 1405,\n",
" 1407,\n",
" 1387,\n",
" 1420,\n",
" 1421,\n",
" 1422,\n",
" 1390,\n",
" 1423,\n",
" 1397,\n",
" 1425,\n",
" 1426,\n",
" 1428,\n",
" 1427,\n",
" 1429,\n",
" 1430,\n",
" 1398,\n",
" 1431,\n",
" 1443,\n",
" 1444,\n",
" 1445,\n",
" 1446,\n",
" 1447,\n",
" 1448,\n",
" 1463,\n",
" 1464,\n",
" 1465,\n",
" 1468,\n",
" 1470,\n",
" 1469,\n",
" 1471,\n",
" 1472,\n",
" 1473,\n",
" 1432,\n",
" 1476,\n",
" 1474,\n",
" 1477,\n",
" 1433,\n",
" 1478,\n",
" 1434,\n",
" 1480,\n",
" 1479,\n",
" 1481,\n",
" 1435,\n",
" 1482,\n",
" 1493,\n",
" 1492,\n",
" 1494,\n",
" 1495,\n",
" 1496,\n",
" 1511,\n",
" 1512,\n",
" 1516,\n",
" 1517,\n",
" 1518,\n",
" 1519,\n",
" 1526,\n",
" 1527,\n",
" 1475,\n",
" 1528,\n",
" 1529,\n",
" 1530,\n",
" 1531,\n",
" 1532,\n",
" 1533,\n",
" 1534,\n",
" 1543,\n",
" 1544,\n",
" 1545,\n",
" 1546,\n",
" 1547,\n",
" 1568,\n",
" 1574,\n",
" 1575,\n",
" 1576,\n",
" 1589,\n",
" 1590,\n",
" 1591,\n",
" 1592,\n",
" 1593,\n",
" 1594,\n",
" 1595,\n",
" 1605,\n",
" 1606,\n",
" 1607,\n",
" 1608,\n",
" 1643,\n",
" 1644,\n",
" 1645,\n",
" 1662,\n",
" 1663,\n",
" 1664,\n",
" 1665,\n",
" 1666,\n",
" 1667,\n",
" 1674,\n",
" 1675,\n",
" 1676,\n",
" 1677,\n",
" 1710,\n",
" 1711,\n",
" 1728,\n",
" 1729,\n",
" 1730,\n",
" 1731,\n",
" 1732,\n",
" 1738,\n",
" 1737,\n",
" 1739,\n",
" 1740,\n",
" 1774,\n",
" 1775,\n",
" 1791,\n",
" 1792,\n",
" 1793,\n",
" 1794,\n",
" 1798,\n",
" 1772,\n",
" 1799,\n",
" 1800,\n",
" 1773,\n",
" 1832,\n",
" 1834,\n",
" 1833,\n",
" 1836,\n",
" 1837,\n",
" 1852,\n",
" 1853,\n",
" 1854,\n",
" 1858,\n",
" 1859,\n",
" 1860,\n",
" 1892,\n",
" 1893,\n",
" 1894,\n",
" 1895,\n",
" 1897,\n",
" 1898,\n",
" 1912,\n",
" 1920,\n",
" 1921,\n",
" 1922,\n",
" 1960,\n",
" 1962,\n",
" 1963,\n",
" 1966,\n",
" 1965,\n",
" 1967,\n",
" 1971,\n",
" 1916,\n",
" 1923,\n",
" 1985,\n",
" 1996,\n",
" 1997,\n",
" 1998,\n",
" 1987,\n",
" 1986,\n",
" 1999,\n",
" 1964,\n",
" 2044,\n",
" 2045,\n",
" 2046,\n",
" 2048,\n",
" 2049,\n",
" 2047,\n",
" 2055,\n",
" 2065,\n",
" 2066,\n",
" 2050,\n",
" 2000,\n",
" 2067,\n",
" 2077,\n",
" 2078,\n",
" 2080,\n",
" 2079,\n",
" 2081,\n",
" 2130,\n",
" 2132,\n",
" 2134,\n",
" 2131,\n",
" 2135,\n",
" 2136,\n",
" 2082,\n",
" 2141,\n",
" 2149,\n",
" 2150,\n",
" 2160,\n",
" 2161,\n",
" 2162,\n",
" 2164,\n",
" 2163,\n",
" 2165,\n",
" 2213,\n",
" 2215,\n",
" 2214,\n",
" 2133,\n",
" 2216,\n",
" 2217,\n",
" 2219,\n",
" 2225,\n",
" 2231,\n",
" 2232,\n",
" 2240,\n",
" 2242,\n",
" 2243,\n",
" 2244,\n",
" 2245,\n",
" 2241,\n",
" 2246,\n",
" 2249,\n",
" 2248,\n",
" 2295,\n",
" 2296,\n",
" 2297,\n",
" 2298,\n",
" 2299,\n",
" 2218,\n",
" 2300,\n",
" 2302,\n",
" 2307,\n",
" 2312,\n",
" 2319,\n",
" 2320,\n",
" 2247,\n",
" 2322,\n",
" 2321,\n",
" 2323,\n",
" 2324,\n",
" 2325,\n",
" 2326,\n",
" 2371,\n",
" 2372,\n",
" 2373,\n",
" 2374,\n",
" 2301,\n",
" 2375,\n",
" 2376,\n",
" 2381,\n",
" 2384,\n",
" 2390,\n",
" 2391,\n",
" 2393,\n",
" 2394,\n",
" 2395,\n",
" 2397,\n",
" 2398,\n",
" 2445,\n",
" 2447,\n",
" 2448,\n",
" 2449,\n",
" 2456,\n",
" 2462,\n",
" 2446,\n",
" 2392,\n",
" 2464,\n",
" 2466,\n",
" 2467,\n",
" 2468,\n",
" 2396,\n",
" 2470,\n",
" 2471,\n",
" 2513,\n",
" 2463,\n",
" 2514,\n",
" 2515,\n",
" 2520,\n",
" 2527,\n",
" 2529,\n",
" 2528,\n",
" 2465,\n",
" 2531,\n",
" 2530,\n",
" 2534,\n",
" 2533,\n",
" 2469,\n",
" 2535,\n",
" 2537,\n",
" 2576,\n",
" 2577,\n",
" 2582,\n",
" 2589,\n",
" 2590,\n",
" 2591,\n",
" 2592,\n",
" 2593,\n",
" 2532,\n",
" 2595,\n",
" 2596,\n",
" 2597,\n",
" 2536,\n",
" 2599,\n",
" 2633,\n",
" 2637,\n",
" 2636,\n",
" 2643,\n",
" 2632,\n",
" 2644,\n",
" 2645,\n",
" 2646,\n",
" 2594,\n",
" 2647,\n",
" 2649,\n",
" 2650,\n",
" 2598,\n",
" 2651,\n",
" 2654,\n",
" 2685,\n",
" 2689,\n",
" 2687,\n",
" 2694,\n",
" 2684,\n",
" 2695,\n",
" 2696,\n",
" 2648,\n",
" 2697,\n",
" 2653,\n",
" 2698,\n",
" 2699,\n",
" 2652,\n",
" 2700,\n",
" 2701,\n",
" 2702,\n",
" 2703,\n",
" 2732,\n",
" 2734,\n",
" 2740,\n",
" 2731,\n",
" 2741,\n",
" 2742,\n",
" 2743,\n",
" 2744,\n",
" 2745,\n",
" 2746,\n",
" 2747,\n",
" 2748,\n",
" 2782,\n",
" 2784,\n",
" 2791,\n",
" 2792,\n",
" 2793,\n",
" 2794,\n",
" 2795,\n",
" 2796,\n",
" 2797,\n",
" 2841,\n",
" 2843,\n",
" 2844,\n",
" 2845],\n",
" [1399,\n",
" 1440,\n",
" 1439,\n",
" 1400,\n",
" 1442,\n",
" 1483,\n",
" 1436,\n",
" 1484,\n",
" 1437,\n",
" 1438,\n",
" 1441,\n",
" 1486,\n",
" 1487,\n",
" 1489,\n",
" 1488,\n",
" 1485,\n",
" 1490,\n",
" 1491,\n",
" 1535,\n",
" 1536,\n",
" 1537,\n",
" 1538,\n",
" 1539,\n",
" 1540,\n",
" 1541,\n",
" 1542,\n",
" 1520,\n",
" 1577,\n",
" 1521,\n",
" 1578,\n",
" 1522,\n",
" 1579,\n",
" 1523,\n",
" 1580,\n",
" 1581,\n",
" 1524,\n",
" 1583,\n",
" 1596,\n",
" 1597,\n",
" 1599,\n",
" 1598,\n",
" 1600,\n",
" 1601,\n",
" 1602,\n",
" 1603,\n",
" 1604,\n",
" 1646,\n",
" 1647,\n",
" 1648,\n",
" 1650,\n",
" 1582,\n",
" 1651,\n",
" 1652,\n",
" 1653,\n",
" 1656,\n",
" 1657,\n",
" 1587,\n",
" 1659,\n",
" 1658,\n",
" 1668,\n",
" 1661,\n",
" 1669,\n",
" 1670,\n",
" 1671,\n",
" 1672,\n",
" 1673,\n",
" 1712,\n",
" 1713,\n",
" 1649,\n",
" 1654,\n",
" 1715,\n",
" 1717,\n",
" 1716,\n",
" 1718,\n",
" 1719,\n",
" 1655,\n",
" 1721,\n",
" 1720,\n",
" 1723,\n",
" 1722,\n",
" 1724,\n",
" 1725,\n",
" 1660,\n",
" 1727,\n",
" 1733,\n",
" 1734,\n",
" 1735,\n",
" 1736,\n",
" 1776,\n",
" 1714,\n",
" 1726,\n",
" 1778,\n",
" 1779,\n",
" 1780,\n",
" 1781,\n",
" 1782,\n",
" 1783,\n",
" 1784,\n",
" 1785,\n",
" 1786,\n",
" 1787,\n",
" 1777,\n",
" 1788,\n",
" 1789,\n",
" 1790,\n",
" 1795,\n",
" 1796,\n",
" 1797,\n",
" 1838,\n",
" 1839,\n",
" 1841,\n",
" 1842,\n",
" 1843,\n",
" 1844,\n",
" 1845,\n",
" 1846,\n",
" 1847,\n",
" 1848,\n",
" 1849,\n",
" 1850,\n",
" 1851,\n",
" 1855,\n",
" 1856,\n",
" 1857,\n",
" 1835,\n",
" 1840,\n",
" 1899,\n",
" 1900,\n",
" 1896,\n",
" 1901,\n",
" 1902,\n",
" 1903,\n",
" 1904,\n",
" 1905,\n",
" 1906,\n",
" 1908,\n",
" 1909,\n",
" 1910,\n",
" 1907,\n",
" 1911,\n",
" 1913,\n",
" 1914,\n",
" 1915,\n",
" 1861,\n",
" 1925,\n",
" 1924,\n",
" 1972,\n",
" 1973,\n",
" 1968,\n",
" 1970,\n",
" 1974,\n",
" 1976,\n",
" 1975,\n",
" 1977,\n",
" 1978,\n",
" 1979,\n",
" 1980,\n",
" 1981,\n",
" 1982,\n",
" 1983,\n",
" 1984,\n",
" 1917,\n",
" 1919,\n",
" 1918,\n",
" 1993,\n",
" 1991,\n",
" 1992,\n",
" 1994,\n",
" 1995,\n",
" 2002,\n",
" 1926,\n",
" 2001,\n",
" 2003,\n",
" 2004,\n",
" 1927,\n",
" 1928,\n",
" 2005,\n",
" 1930,\n",
" 1929,\n",
" 2006,\n",
" 2007,\n",
" 2008,\n",
" 2009,\n",
" 2051,\n",
" 1969,\n",
" 2052,\n",
" 2054,\n",
" 2053,\n",
" 2056,\n",
" 2057,\n",
" 2058,\n",
" 2059,\n",
" 2060,\n",
" 2061,\n",
" 2062,\n",
" 2063,\n",
" 2064,\n",
" 1988,\n",
" 2069,\n",
" 1989,\n",
" 2068,\n",
" 2070,\n",
" 1990,\n",
" 2071,\n",
" 2072,\n",
" 2074,\n",
" 2073,\n",
" 2075,\n",
" 2076,\n",
" 2083,\n",
" 2084,\n",
" 2085,\n",
" 2086,\n",
" 2087,\n",
" 2089,\n",
" 2088,\n",
" 2090,\n",
" 2137,\n",
" 2138,\n",
" 2139,\n",
" 2140,\n",
" 2142,\n",
" 2143,\n",
" 2144,\n",
" 2145,\n",
" 2146,\n",
" 2147,\n",
" 2148,\n",
" 2152,\n",
" 2151,\n",
" 2153,\n",
" 2154,\n",
" 2155,\n",
" 2156,\n",
" 2157,\n",
" 2158,\n",
" 2159,\n",
" 2166,\n",
" 2167,\n",
" 2168,\n",
" 2169,\n",
" 2170,\n",
" 2171,\n",
" 2172,\n",
" 2220,\n",
" 2221,\n",
" 2222,\n",
" 2223,\n",
" 2224,\n",
" 2226,\n",
" 2227,\n",
" 2228,\n",
" 2229,\n",
" 2230,\n",
" 2233,\n",
" 2234,\n",
" 2235,\n",
" 2237,\n",
" 2238,\n",
" 2239,\n",
" 2236,\n",
" 2250,\n",
" 2251,\n",
" 2252,\n",
" 2253,\n",
" 2254,\n",
" 2255,\n",
" 2303,\n",
" 2304,\n",
" 2305,\n",
" 2306,\n",
" 2308,\n",
" 2309,\n",
" 2310,\n",
" 2311,\n",
" 2313,\n",
" 2315,\n",
" 2314,\n",
" 2316,\n",
" 2317,\n",
" 2318,\n",
" 2328,\n",
" 2327,\n",
" 2330,\n",
" 2331,\n",
" 2332,\n",
" 2377,\n",
" 2378,\n",
" 2379,\n",
" 2380,\n",
" 2382,\n",
" 2383,\n",
" 2385,\n",
" 2329,\n",
" 2386,\n",
" 2387,\n",
" 2388,\n",
" 2389,\n",
" 2400,\n",
" 2401,\n",
" 2402,\n",
" 2403,\n",
" 2399,\n",
" 2404,\n",
" 2450,\n",
" 2451,\n",
" 2452,\n",
" 2453,\n",
" 2454,\n",
" 2455,\n",
" 2458,\n",
" 2459,\n",
" 2460,\n",
" 2461,\n",
" 2457,\n",
" 2472,\n",
" 2474,\n",
" 2475,\n",
" 2516,\n",
" 2517,\n",
" 2518,\n",
" 2519,\n",
" 2473,\n",
" 2521,\n",
" 2522,\n",
" 2523,\n",
" 2524,\n",
" 2525,\n",
" 2541,\n",
" 2542,\n",
" 2539,\n",
" 2476,\n",
" 2543,\n",
" 2578,\n",
" 2579,\n",
" 2580,\n",
" 2581,\n",
" 2583,\n",
" 2526,\n",
" 2584,\n",
" 2585,\n",
" 2586,\n",
" 2540,\n",
" 2538,\n",
" 2588,\n",
" 2587,\n",
" 2602,\n",
" 2600,\n",
" 2601,\n",
" 2603,\n",
" 2604,\n",
" 2634,\n",
" 2635,\n",
" 2638,\n",
" 2639,\n",
" 2640,\n",
" 2641,\n",
" 2642,\n",
" 2655,\n",
" 2657,\n",
" 2658,\n",
" 2659,\n",
" 2688,\n",
" 2686,\n",
" 2691,\n",
" 2692,\n",
" 2690,\n",
" 2656,\n",
" 2693,\n",
" 2705,\n",
" 2704,\n",
" 2706,\n",
" 2707,\n",
" 2708,\n",
" 2733,\n",
" 2735,\n",
" 2736,\n",
" 2737,\n",
" 2738,\n",
" 2739,\n",
" 2749,\n",
" 2751,\n",
" 2752,\n",
" 2753,\n",
" 2754,\n",
" 2785,\n",
" 2787,\n",
" 2788,\n",
" 2789,\n",
" 2800,\n",
" 2802,\n",
" 2803],\n",
" [1418,\n",
" 1461,\n",
" 1419,\n",
" 1424,\n",
" 1466,\n",
" 1460,\n",
" 1459,\n",
" 1508,\n",
" 1467,\n",
" 1510,\n",
" 1462,\n",
" 1513,\n",
" 1514,\n",
" 1509,\n",
" 1567,\n",
" 1515,\n",
" 1566,\n",
" 1569,\n",
" 1570,\n",
" 1571,\n",
" 1572,\n",
" 1637,\n",
" 1573,\n",
" 1638,\n",
" 1639,\n",
" 1640,\n",
" 1642,\n",
" 1641,\n",
" 1705,\n",
" 1704,\n",
" 1707,\n",
" 1708,\n",
" 1706,\n",
" 1703,\n",
" 1709,\n",
" 1764,\n",
" 1767,\n",
" 1766,\n",
" 1768,\n",
" 1769,\n",
" 1770,\n",
" 1763,\n",
" 1823,\n",
" 1824,\n",
" 1765,\n",
" 1825,\n",
" 1827,\n",
" 1828,\n",
" 1771,\n",
" 1829,\n",
" 1830,\n",
" 1831,\n",
" 1885,\n",
" 1884,\n",
" 1886,\n",
" 1826,\n",
" 1887,\n",
" 1888,\n",
" 1889,\n",
" 1890,\n",
" 1891,\n",
" 1883,\n",
" 1952,\n",
" 1953,\n",
" 1954,\n",
" 1955,\n",
" 1956,\n",
" 1957,\n",
" 1958,\n",
" 1959,\n",
" 1961,\n",
" 1951,\n",
" 2033,\n",
" 2035,\n",
" 2036,\n",
" 2037,\n",
" 2038,\n",
" 2039,\n",
" 2040,\n",
" 2041,\n",
" 2042,\n",
" 2043,\n",
" 2122,\n",
" 2034,\n",
" 2123,\n",
" 2124,\n",
" 2125,\n",
" 2126,\n",
" 2127,\n",
" 2128,\n",
" 2129,\n",
" 2208,\n",
" 2209,\n",
" 2210,\n",
" 2211,\n",
" 2212,\n",
" 2292,\n",
" 2293,\n",
" 2294,\n",
" 2369,\n",
" 2370,\n",
" 2368,\n",
" 2442,\n",
" 2443,\n",
" 2512,\n",
" 2444,\n",
" 2729,\n",
" 2776,\n",
" 2777,\n",
" 2730,\n",
" 2780,\n",
" 2778,\n",
" 2786,\n",
" 2750,\n",
" 2790,\n",
" 2801,\n",
" 2799,\n",
" 2773,\n",
" 2820,\n",
" 2822,\n",
" 2775,\n",
" 2825,\n",
" 2826,\n",
" 2827,\n",
" 2828,\n",
" 2829,\n",
" 2779,\n",
" 2830,\n",
" 2831,\n",
" 2781,\n",
" 2832,\n",
" 2783,\n",
" 2833,\n",
" 2834,\n",
" 2835,\n",
" 2836,\n",
" 2837,\n",
" 2838,\n",
" 2839,\n",
" 2798,\n",
" 2840,\n",
" 2842,\n",
" 2846,\n",
" 2848,\n",
" 2847,\n",
" 2849,\n",
" 2850,\n",
" 2851,\n",
" 2852,\n",
" 2853,\n",
" 2870,\n",
" 2871,\n",
" 2872,\n",
" 2875,\n",
" 2876,\n",
" 2877,\n",
" 2878,\n",
" 2879,\n",
" 2880,\n",
" 2881,\n",
" 2882,\n",
" 2883,\n",
" 2884,\n",
" 2885,\n",
" 2886,\n",
" 2887,\n",
" 2888,\n",
" 2889,\n",
" 2890,\n",
" 2891,\n",
" 2854,\n",
" 2892,\n",
" 2893,\n",
" 2894,\n",
" 2895,\n",
" 2897,\n",
" 2896,\n",
" 2898,\n",
" 2915,\n",
" 2916,\n",
" 2917,\n",
" 2919,\n",
" 2920,\n",
" 2921,\n",
" 2922,\n",
" 2923,\n",
" 2924,\n",
" 2925,\n",
" 2926,\n",
" 2927,\n",
" 2928,\n",
" 2929,\n",
" 2930,\n",
" 2931,\n",
" 2932,\n",
" 2933,\n",
" 2899,\n",
" 2934,\n",
" 2936,\n",
" 2937,\n",
" 2939,\n",
" 2938,\n",
" 2940,\n",
" 2941,\n",
" 2952,\n",
" 2953,\n",
" 2954,\n",
" 2955,\n",
" 2956,\n",
" 2957,\n",
" 2958,\n",
" 2959,\n",
" 2960,\n",
" 2961,\n",
" 2962,\n",
" 2963,\n",
" 2964,\n",
" 2935,\n",
" 2965,\n",
" 2966,\n",
" 2967,\n",
" 2968,\n",
" 2971,\n",
" 2972,\n",
" 2969,\n",
" 2970,\n",
" 2973,\n",
" 2974,\n",
" 2975,\n",
" 2976,\n",
" 2977,\n",
" 2978,\n",
" 2979,\n",
" 2981,\n",
" 2980,\n",
" 2987,\n",
" 2986,\n",
" 2988,\n",
" 2989,\n",
" 2990,\n",
" 2991,\n",
" 2992,\n",
" 2993,\n",
" 2994,\n",
" 2995,\n",
" 2996,\n",
" 2997,\n",
" 2998,\n",
" 2999,\n",
" 3002,\n",
" 3000,\n",
" 3001,\n",
" 3003,\n",
" 3004,\n",
" 3005,\n",
" 3006,\n",
" 3007,\n",
" 3009,\n",
" 3010,\n",
" 3012,\n",
" 3011,\n",
" 3013,\n",
" 3018,\n",
" 3014,\n",
" 3019,\n",
" 3020,\n",
" 3021,\n",
" 3022,\n",
" 3023,\n",
" 3024,\n",
" 3025,\n",
" 3026,\n",
" 3027,\n",
" 3028,\n",
" 3029,\n",
" 3030,\n",
" 3008,\n",
" 3031,\n",
" 3032,\n",
" 3033,\n",
" 3034,\n",
" 3035,\n",
" 3036,\n",
" 3038,\n",
" 3039,\n",
" 3037,\n",
" 3041,\n",
" 3040,\n",
" 3043,\n",
" 3044,\n",
" 3045,\n",
" 3046,\n",
" 3047,\n",
" 3048,\n",
" 3049,\n",
" 3050,\n",
" 3051,\n",
" 3052,\n",
" 3054,\n",
" 3053,\n",
" 3055,\n",
" 3056,\n",
" 3057,\n",
" 3058,\n",
" 3060,\n",
" 3059,\n",
" 3061,\n",
" 3062,\n",
" 3063,\n",
" 3064,\n",
" 3065,\n",
" 3066,\n",
" 3067,\n",
" 3069,\n",
" 3068,\n",
" 3070,\n",
" 3071,\n",
" 3073,\n",
" 3074,\n",
" 3075,\n",
" 3076,\n",
" 3077,\n",
" 3078,\n",
" 3079,\n",
" 3080,\n",
" 3081,\n",
" 3082,\n",
" 3083,\n",
" 3084,\n",
" 3085,\n",
" 3086,\n",
" 3087,\n",
" 3088,\n",
" 3072,\n",
" 3089,\n",
" 3090,\n",
" 3091,\n",
" 3092,\n",
" 3094,\n",
" 3093,\n",
" 3095,\n",
" 3096,\n",
" 3097,\n",
" 3098,\n",
" 3100,\n",
" 3099,\n",
" 3101,\n",
" 3102,\n",
" 3103,\n",
" 3104,\n",
" 3105,\n",
" 3106,\n",
" 3107,\n",
" 3108,\n",
" 3109,\n",
" 3110,\n",
" 3111,\n",
" 3112,\n",
" 3113,\n",
" 3114,\n",
" 3115,\n",
" 3117,\n",
" 3118,\n",
" 3119,\n",
" 3120,\n",
" 3121,\n",
" 3122,\n",
" 3123,\n",
" 3124,\n",
" 3125,\n",
" 3116,\n",
" 3127,\n",
" 3126,\n",
" 3129,\n",
" 3128,\n",
" 3130,\n",
" 3131,\n",
" 3132,\n",
" 3133,\n",
" 3134,\n",
" 3135,\n",
" 3136,\n",
" 3137,\n",
" 3138,\n",
" 3139,\n",
" 3140],\n",
" [1931,\n",
" 2011,\n",
" 2012,\n",
" 2010,\n",
" 2094,\n",
" 2095,\n",
" 2013,\n",
" 2097,\n",
" 2096,\n",
" 2014,\n",
" 2100,\n",
" 2101,\n",
" 2118,\n",
" 2119,\n",
" 2121,\n",
" 2091,\n",
" 2099,\n",
" 2174,\n",
" 2092,\n",
" 2175,\n",
" 2093,\n",
" 2176,\n",
" 2177,\n",
" 2178,\n",
" 2098,\n",
" 2179,\n",
" 2180,\n",
" 2183,\n",
" 2182,\n",
" 2184,\n",
" 2173,\n",
" 2104,\n",
" 2102,\n",
" 2187,\n",
" 2186,\n",
" 2103,\n",
" 2193,\n",
" 2195,\n",
" 2196,\n",
" 2197,\n",
" 2203,\n",
" 2205,\n",
" 2206,\n",
" 2204,\n",
" 2207,\n",
" 2192,\n",
" 2185,\n",
" 2257,\n",
" 2256,\n",
" 2258,\n",
" 2259,\n",
" 2260,\n",
" 2261,\n",
" 2262,\n",
" 2263,\n",
" 2181,\n",
" 2265,\n",
" 2266,\n",
" 2267,\n",
" 2190,\n",
" 2269,\n",
" 2191,\n",
" 2189,\n",
" 2188,\n",
" 2270,\n",
" 2273,\n",
" 2272,\n",
" 2274,\n",
" 2277,\n",
" 2194,\n",
" 2280,\n",
" 2275,\n",
" 2279,\n",
" 2281,\n",
" 2282,\n",
" 2284,\n",
" 2285,\n",
" 2288,\n",
" 2289,\n",
" 2283,\n",
" 2290,\n",
" 2291,\n",
" 2333,\n",
" 2335,\n",
" 2336,\n",
" 2337,\n",
" 2338,\n",
" 2264,\n",
" 2339,\n",
" 2340,\n",
" 2341,\n",
" 2342,\n",
" 2268,\n",
" 2343,\n",
" 2345,\n",
" 2271,\n",
" 2346,\n",
" 2344,\n",
" 2347,\n",
" 2348,\n",
" 2349,\n",
" 2352,\n",
" 2276,\n",
" 2353,\n",
" 2351,\n",
" 2354,\n",
" 2278,\n",
" 2355,\n",
" 2356,\n",
" 2357,\n",
" 2358,\n",
" 2360,\n",
" 2359,\n",
" 2361,\n",
" 2363,\n",
" 2364,\n",
" 2365,\n",
" 2366,\n",
" 2367,\n",
" 2334,\n",
" 2407,\n",
" 2408,\n",
" 2409,\n",
" 2410,\n",
" 2411,\n",
" 2412,\n",
" 2413,\n",
" 2414,\n",
" 2415,\n",
" 2416,\n",
" 2419,\n",
" 2420,\n",
" 2350,\n",
" 2417,\n",
" 2421,\n",
" 2422,\n",
" 2424,\n",
" 2406,\n",
" 2425,\n",
" 2426,\n",
" 2427,\n",
" 2428,\n",
" 2429,\n",
" 2430,\n",
" 2431,\n",
" 2362,\n",
" 2432,\n",
" 2434,\n",
" 2435,\n",
" 2433,\n",
" 2436,\n",
" 2437,\n",
" 2438,\n",
" 2405,\n",
" 2477,\n",
" 2478,\n",
" 2479,\n",
" 2480,\n",
" 2481,\n",
" 2482,\n",
" 2484,\n",
" 2483,\n",
" 2485,\n",
" 2486,\n",
" 2487,\n",
" 2488,\n",
" 2418,\n",
" 2489,\n",
" 2490,\n",
" 2491,\n",
" 2492,\n",
" 2423,\n",
" 2439,\n",
" 2493,\n",
" 2494,\n",
" 2495,\n",
" 2496,\n",
" 2497,\n",
" 2498,\n",
" 2499,\n",
" 2501,\n",
" 2502,\n",
" 2503,\n",
" 2504,\n",
" 2505,\n",
" 2506,\n",
" 2440,\n",
" 2509,\n",
" 2507,\n",
" 2510,\n",
" 2441,\n",
" 2511,\n",
" 2544,\n",
" 2545,\n",
" 2546,\n",
" 2547,\n",
" 2548,\n",
" 2549,\n",
" 2550,\n",
" 2551,\n",
" 2552,\n",
" 2553,\n",
" 2554,\n",
" 2555,\n",
" 2556,\n",
" 2508,\n",
" 2557,\n",
" 2559,\n",
" 2500,\n",
" 2560,\n",
" 2561,\n",
" 2562,\n",
" 2564,\n",
" 2563,\n",
" 2565,\n",
" 2566,\n",
" 2567,\n",
" 2568,\n",
" 2569,\n",
" 2570,\n",
" 2572,\n",
" 2571,\n",
" 2558,\n",
" 2573,\n",
" 2574,\n",
" 2575,\n",
" 2606,\n",
" 2605,\n",
" 2607,\n",
" 2608,\n",
" 2609,\n",
" 2610,\n",
" 2611,\n",
" 2612,\n",
" 2613,\n",
" 2614,\n",
" 2615,\n",
" 2616,\n",
" 2617,\n",
" 2618,\n",
" 2619,\n",
" 2620,\n",
" 2621,\n",
" 2624,\n",
" 2622,\n",
" 2625,\n",
" 2626,\n",
" 2627,\n",
" 2628,\n",
" 2629,\n",
" 2630,\n",
" 2631,\n",
" 2660,\n",
" 2661,\n",
" 2662,\n",
" 2663,\n",
" 2664,\n",
" 2665,\n",
" 2666,\n",
" 2668,\n",
" 2667,\n",
" 2669,\n",
" 2670,\n",
" 2671,\n",
" 2673,\n",
" 2672,\n",
" 2623,\n",
" 2674,\n",
" 2676,\n",
" 2677,\n",
" 2675,\n",
" 2678,\n",
" 2679,\n",
" 2680,\n",
" 2681,\n",
" 2683,\n",
" 2682,\n",
" 2709,\n",
" 2710,\n",
" 2711,\n",
" 2712,\n",
" 2713,\n",
" 2714,\n",
" 2715,\n",
" 2716,\n",
" 2717,\n",
" 2718,\n",
" 2719,\n",
" 2720,\n",
" 2721,\n",
" 2723,\n",
" 2722,\n",
" 2724,\n",
" 2725,\n",
" 2726,\n",
" 2728,\n",
" 2727,\n",
" 2756,\n",
" 2757,\n",
" 2758,\n",
" 2759,\n",
" 2760,\n",
" 2755,\n",
" 2761,\n",
" 2762,\n",
" 2763,\n",
" 2764,\n",
" 2765,\n",
" 2766,\n",
" 2767,\n",
" 2768,\n",
" 2769,\n",
" 2770,\n",
" 2771,\n",
" 2804,\n",
" 2774,\n",
" 2805,\n",
" 2806,\n",
" 2807,\n",
" 2808,\n",
" 2809,\n",
" 2810,\n",
" 2811,\n",
" 2812,\n",
" 2813,\n",
" 2814,\n",
" 2815,\n",
" 2816,\n",
" 2818,\n",
" 2772,\n",
" 2819,\n",
" 2821,\n",
" 2824,\n",
" 2823,\n",
" 2855,\n",
" 2857,\n",
" 2856,\n",
" 2858,\n",
" 2859,\n",
" 2860,\n",
" 2861,\n",
" 2862,\n",
" 2863,\n",
" 2817,\n",
" 2864,\n",
" 2865,\n",
" 2866,\n",
" 2868,\n",
" 2867,\n",
" 2869,\n",
" 2873,\n",
" 2874,\n",
" 2900,\n",
" 2901,\n",
" 2903,\n",
" 2904,\n",
" 2902,\n",
" 2905,\n",
" 2906,\n",
" 2907,\n",
" 2908,\n",
" 2909,\n",
" 2910,\n",
" 2911,\n",
" 2912,\n",
" 2913,\n",
" 2918,\n",
" 2942,\n",
" 2943,\n",
" 2914,\n",
" 2944,\n",
" 2945,\n",
" 2946,\n",
" 2947,\n",
" 2948,\n",
" 2949,\n",
" 2950,\n",
" 2951,\n",
" 2982,\n",
" 2983,\n",
" 2984,\n",
" 2985,\n",
" 3015,\n",
" 3016,\n",
" 3017,\n",
" 3042],\n",
" [974,\n",
" 976,\n",
" 975,\n",
" 1017,\n",
" 1020,\n",
" 1018,\n",
" 1021,\n",
" 997,\n",
" 1044,\n",
" 998,\n",
" 1045,\n",
" 1003,\n",
" 1050,\n",
" 1047,\n",
" 1062,\n",
" 1064,\n",
" 1065,\n",
" 1019,\n",
" 1066,\n",
" 1067,\n",
" 1068,\n",
" 1022,\n",
" 1073,\n",
" 1023,\n",
" 1074,\n",
" 1093,\n",
" 1094,\n",
" 1096,\n",
" 1098,\n",
" 1110,\n",
" 1109,\n",
" 1063,\n",
" 1111,\n",
" 1069,\n",
" 1112,\n",
" 1113,\n",
" 1114,\n",
" 1116,\n",
" 1115,\n",
" 1070,\n",
" 1117,\n",
" 1071,\n",
" 1072,\n",
" 1119,\n",
" 1120,\n",
" 1121,\n",
" 1075,\n",
" 1137,\n",
" 1138,\n",
" 1141,\n",
" 1142,\n",
" 1153,\n",
" 1154,\n",
" 1155,\n",
" 1156,\n",
" 1157,\n",
" 1158,\n",
" 1159,\n",
" 1118,\n",
" 1160,\n",
" 1162,\n",
" 1161,\n",
" 1163,\n",
" 1164,\n",
" 1180,\n",
" 1181,\n",
" 1185,\n",
" 1193,\n",
" 1194,\n",
" 1195,\n",
" 1196,\n",
" 1197,\n",
" 1198,\n",
" 1199,\n",
" 1200,\n",
" 1201,\n",
" 1202,\n",
" 1165,\n",
" 1203,\n",
" 1216,\n",
" 1218,\n",
" 1227,\n",
" 1228,\n",
" 1230,\n",
" 1231,\n",
" 1232,\n",
" 1233,\n",
" 1234,\n",
" 1235,\n",
" 1236,\n",
" 1247,\n",
" 1249,\n",
" 1256,\n",
" 1229,\n",
" 1257,\n",
" 1258,\n",
" 1259,\n",
" 1260,\n",
" 1261,\n",
" 1262,\n",
" 1263,\n",
" 1264,\n",
" 1265,\n",
" 1266,\n",
" 1237,\n",
" 1273,\n",
" 1275,\n",
" 1282,\n",
" 1281,\n",
" 1285,\n",
" 1283,\n",
" 1284,\n",
" 1286,\n",
" 1287,\n",
" 1288,\n",
" 1289,\n",
" 1295,\n",
" 1297,\n",
" 1294,\n",
" 1302,\n",
" 1303,\n",
" 1306,\n",
" 1304,\n",
" 1305,\n",
" 1307,\n",
" 1308,\n",
" 1309,\n",
" 1320,\n",
" 1310,\n",
" 1319,\n",
" 1322,\n",
" 1327,\n",
" 1328,\n",
" 1329,\n",
" 1330,\n",
" 1331,\n",
" 1332,\n",
" 1333,\n",
" 1318,\n",
" 1334,\n",
" 1347,\n",
" 1346,\n",
" 1348,\n",
" 1350,\n",
" 1353,\n",
" 1352,\n",
" 1354,\n",
" 1355,\n",
" 1356,\n",
" 1357,\n",
" 1358,\n",
" 1359,\n",
" 1375,\n",
" 1376,\n",
" 1377,\n",
" 1378,\n",
" 1379,\n",
" 1380,\n",
" 1381,\n",
" 1382,\n",
" 1383,\n",
" 1384,\n",
" 1385,\n",
" 1386,\n",
" 1409,\n",
" 1410,\n",
" 1411,\n",
" 1412,\n",
" 1413,\n",
" 1414,\n",
" 1408,\n",
" 1415,\n",
" 1416,\n",
" 1417,\n",
" 1450,\n",
" 1449,\n",
" 1451,\n",
" 1452,\n",
" 1453,\n",
" 1455,\n",
" 1454,\n",
" 1456,\n",
" 1457,\n",
" 1497,\n",
" 1500,\n",
" 1501,\n",
" 1503,\n",
" 1504,\n",
" 1506,\n",
" 1458,\n",
" 1507,\n",
" 1498,\n",
" 1505,\n",
" 1499,\n",
" 1550,\n",
" 1549,\n",
" 1548,\n",
" 1553,\n",
" 1554,\n",
" 1555,\n",
" 1502,\n",
" 1556,\n",
" 1558,\n",
" 1559,\n",
" 1560,\n",
" 1561,\n",
" 1525,\n",
" 1552,\n",
" 1610,\n",
" 1609,\n",
" 1611,\n",
" 1613,\n",
" 1612,\n",
" 1551,\n",
" 1618,\n",
" 1619,\n",
" 1620,\n",
" 1617,\n",
" 1584,\n",
" 1621,\n",
" 1624,\n",
" 1625,\n",
" 1623,\n",
" 1557,\n",
" 1627,\n",
" 1628,\n",
" 1629,\n",
" 1630,\n",
" 1562,\n",
" 1631,\n",
" 1632,\n",
" 1563,\n",
" 1633,\n",
" 1564,\n",
" 1635,\n",
" 1634,\n",
" 1565,\n",
" 1636,\n",
" 1616,\n",
" 1585,\n",
" 1614,\n",
" 1586,\n",
" 1588,\n",
" 1615,\n",
" 1678,\n",
" 1622,\n",
" 1680,\n",
" 1679,\n",
" 1681,\n",
" 1682,\n",
" 1683,\n",
" 1684,\n",
" 1685,\n",
" 1687,\n",
" 1686,\n",
" 1688,\n",
" 1689,\n",
" 1690,\n",
" 1691,\n",
" 1692,\n",
" 1693,\n",
" 1626,\n",
" 1694,\n",
" 1695,\n",
" 1696,\n",
" 1697,\n",
" 1698,\n",
" 1699,\n",
" 1700,\n",
" 1701,\n",
" 1702,\n",
" 1742,\n",
" 1741,\n",
" 1743,\n",
" 1744,\n",
" 1745,\n",
" 1746,\n",
" 1747,\n",
" 1750,\n",
" 1751,\n",
" 1752,\n",
" 1753,\n",
" 1754,\n",
" 1755,\n",
" 1756,\n",
" 1757,\n",
" 1758,\n",
" 1760,\n",
" 1759,\n",
" 1761,\n",
" 1762,\n",
" 1802,\n",
" 1801,\n",
" 1803,\n",
" 1804,\n",
" 1805,\n",
" 1806,\n",
" 1807,\n",
" 1748,\n",
" 1808,\n",
" 1749,\n",
" 1810,\n",
" 1812,\n",
" 1813,\n",
" 1815,\n",
" 1816,\n",
" 1817,\n",
" 1818,\n",
" 1819,\n",
" 1820,\n",
" 1821,\n",
" 1822,\n",
" 1862,\n",
" 1814,\n",
" 1863,\n",
" 1809,\n",
" 1865,\n",
" 1866,\n",
" 1867,\n",
" 1868,\n",
" 1869,\n",
" 1870,\n",
" 1871,\n",
" 1872,\n",
" 1811,\n",
" 1874,\n",
" 1875,\n",
" 1876,\n",
" 1864,\n",
" 1873,\n",
" 1877,\n",
" 1878,\n",
" 1879,\n",
" 1880,\n",
" 1881,\n",
" 1882,\n",
" 1932,\n",
" 1933,\n",
" 1934,\n",
" 1935,\n",
" 1937,\n",
" 1939,\n",
" 1940,\n",
" 1938,\n",
" 1942,\n",
" 1936,\n",
" 1943,\n",
" 1944,\n",
" 1945,\n",
" 1946,\n",
" 1947,\n",
" 1948,\n",
" 1949,\n",
" 1950,\n",
" 2015,\n",
" 2016,\n",
" 2017,\n",
" 2019,\n",
" 1941,\n",
" 2020,\n",
" 2021,\n",
" 2018,\n",
" 2022,\n",
" 2023,\n",
" 2024,\n",
" 2025,\n",
" 2026,\n",
" 2027,\n",
" 2028,\n",
" 2029,\n",
" 2030,\n",
" 2031,\n",
" 2032,\n",
" 2105,\n",
" 2106,\n",
" 2107,\n",
" 2108,\n",
" 2109,\n",
" 2110,\n",
" 2111,\n",
" 2112,\n",
" 2113,\n",
" 2114,\n",
" 2115,\n",
" 2116,\n",
" 2117,\n",
" 2120,\n",
" 2198,\n",
" 2199,\n",
" 2200,\n",
" 2201,\n",
" 2202,\n",
" 2286,\n",
" 2287],\n",
" [25,\n",
" 20,\n",
" 27,\n",
" 26,\n",
" 47,\n",
" 30,\n",
" 53,\n",
" 56,\n",
" 57,\n",
" 55,\n",
" 58,\n",
" 60,\n",
" 48,\n",
" 86,\n",
" 54,\n",
" 87,\n",
" 88,\n",
" 92,\n",
" 94,\n",
" 93,\n",
" 95,\n",
" 96,\n",
" 97,\n",
" 98,\n",
" 99,\n",
" 100,\n",
" 131,\n",
" 133,\n",
" 134,\n",
" 136,\n",
" 137,\n",
" 132,\n",
" 138,\n",
" 139,\n",
" 140,\n",
" 141,\n",
" 142,\n",
" 143,\n",
" 180,\n",
" 178,\n",
" 181,\n",
" 179,\n",
" 182,\n",
" 183,\n",
" 185,\n",
" 184,\n",
" 186,\n",
" 187,\n",
" 188,\n",
" 221,\n",
" 222,\n",
" 223,\n",
" 224,\n",
" 225,\n",
" 226,\n",
" 228,\n",
" 227,\n",
" 229,\n",
" 230,\n",
" 267,\n",
" 268,\n",
" 269,\n",
" 270,\n",
" 272,\n",
" 271,\n",
" 274,\n",
" 275,\n",
" 276,\n",
" 313,\n",
" 314,\n",
" 315,\n",
" 273,\n",
" 317,\n",
" 318,\n",
" 319,\n",
" 320,\n",
" 321,\n",
" 363,\n",
" 316,\n",
" 366,\n",
" 365,\n",
" 368,\n",
" 369,\n",
" 370,\n",
" 371,\n",
" 322,\n",
" 327,\n",
" 372,\n",
" 378,\n",
" 377,\n",
" 364,\n",
" 420,\n",
" 419,\n",
" 425,\n",
" 367,\n",
" 418,\n",
" 426,\n",
" 427,\n",
" 423,\n",
" 424,\n",
" 428,\n",
" 429,\n",
" 430,\n",
" 436,\n",
" 481,\n",
" 421,\n",
" 422,\n",
" 482,\n",
" 483,\n",
" 485,\n",
" 484,\n",
" 480,\n",
" 487,\n",
" 486,\n",
" 488,\n",
" 489,\n",
" 490,\n",
" 491,\n",
" 492,\n",
" 495,\n",
" 540,\n",
" 541,\n",
" 542,\n",
" 543,\n",
" 544,\n",
" 539,\n",
" 538,\n",
" 545,\n",
" 546,\n",
" 547,\n",
" 548,\n",
" 549,\n",
" 550,\n",
" 589,\n",
" 590,\n",
" 591,\n",
" 594,\n",
" 595,\n",
" 596,\n",
" 597,\n",
" 598,\n",
" 599,\n",
" 600,\n",
" 601,\n",
" 604,\n",
" 605,\n",
" 642,\n",
" 643,\n",
" 645,\n",
" 644,\n",
" 592,\n",
" 646,\n",
" 593,\n",
" 602,\n",
" 648,\n",
" 603,\n",
" 647,\n",
" 650,\n",
" 651,\n",
" 652,\n",
" 653,\n",
" 655,\n",
" 649,\n",
" 657,\n",
" 654,\n",
" 658,\n",
" 696,\n",
" 697,\n",
" 698,\n",
" 699,\n",
" 700,\n",
" 702,\n",
" 703,\n",
" 701,\n",
" 704,\n",
" 705,\n",
" 706,\n",
" 707,\n",
" 708,\n",
" 656,\n",
" 709,\n",
" 659,\n",
" 713,\n",
" 715,\n",
" 660,\n",
" 717,\n",
" 716,\n",
" 712,\n",
" 752,\n",
" 753,\n",
" 754,\n",
" 755,\n",
" 756,\n",
" 711,\n",
" 758,\n",
" 759,\n",
" 760,\n",
" 761,\n",
" 762,\n",
" 710,\n",
" 763,\n",
" 757,\n",
" 766,\n",
" 767,\n",
" 714,\n",
" 768,\n",
" 769,\n",
" 770,\n",
" 771,\n",
" 772,\n",
" 804,\n",
" 805,\n",
" 806,\n",
" 807,\n",
" 808,\n",
" 810,\n",
" 765,\n",
" 809,\n",
" 811,\n",
" 812,\n",
" 813,\n",
" 814,\n",
" 764,\n",
" 815,\n",
" 816,\n",
" 818,\n",
" 819,\n",
" 820,\n",
" 821,\n",
" 822,\n",
" 823,\n",
" 824,\n",
" 825,\n",
" 859,\n",
" 860,\n",
" 861,\n",
" 862,\n",
" 863,\n",
" 864,\n",
" 865,\n",
" 866,\n",
" 867,\n",
" 868,\n",
" 869,\n",
" 817,\n",
" 870,\n",
" 871,\n",
" 872,\n",
" 873,\n",
" 874,\n",
" 876,\n",
" 875,\n",
" 877,\n",
" 858,\n",
" 908,\n",
" 911,\n",
" 912,\n",
" 913,\n",
" 914,\n",
" 915,\n",
" 916,\n",
" 917,\n",
" 918,\n",
" 919,\n",
" 920,\n",
" 921,\n",
" 922,\n",
" 924,\n",
" 925,\n",
" 927,\n",
" 926,\n",
" 929,\n",
" 928,\n",
" 910,\n",
" 909,\n",
" 955,\n",
" 956,\n",
" 957,\n",
" 958,\n",
" 959,\n",
" 960,\n",
" 961,\n",
" 962,\n",
" 923,\n",
" 963,\n",
" 964,\n",
" 965,\n",
" 966,\n",
" 967,\n",
" 968,\n",
" 969,\n",
" 970,\n",
" 971,\n",
" 972,\n",
" 973,\n",
" 999,\n",
" 1000,\n",
" 1001,\n",
" 1002,\n",
" 1004,\n",
" 1005,\n",
" 1006,\n",
" 1007,\n",
" 1008,\n",
" 1009,\n",
" 1010,\n",
" 1011,\n",
" 1013,\n",
" 1014,\n",
" 1012,\n",
" 1015,\n",
" 1016,\n",
" 1046,\n",
" 1048,\n",
" 1049,\n",
" 1051,\n",
" 1052,\n",
" 1053,\n",
" 1054,\n",
" 1055,\n",
" 1057,\n",
" 1056,\n",
" 1058,\n",
" 1059,\n",
" 1061,\n",
" 1095,\n",
" 1097,\n",
" 1099,\n",
" 1101,\n",
" 1100,\n",
" 1102,\n",
" 1103,\n",
" 1060,\n",
" 1104,\n",
" 1105,\n",
" 1107,\n",
" 1106,\n",
" 1140,\n",
" 1143,\n",
" 1139,\n",
" 1144,\n",
" 1145,\n",
" 1146,\n",
" 1147,\n",
" 1150,\n",
" 1148,\n",
" 1149,\n",
" 1108,\n",
" 1182,\n",
" 1183,\n",
" 1184,\n",
" 1186,\n",
" 1187,\n",
" 1188,\n",
" 1189,\n",
" 1190,\n",
" 1151,\n",
" 1152,\n",
" 1191,\n",
" 1192,\n",
" 1217,\n",
" 1219,\n",
" 1220,\n",
" 1221,\n",
" 1222,\n",
" 1224,\n",
" 1225,\n",
" 1226,\n",
" 1248,\n",
" 1223,\n",
" 1250,\n",
" 1251,\n",
" 1252,\n",
" 1253,\n",
" 1254,\n",
" 1255,\n",
" 1274,\n",
" 1276,\n",
" 1277,\n",
" 1278,\n",
" 1279,\n",
" 1296,\n",
" 1298,\n",
" 1299,\n",
" 1280,\n",
" 1301,\n",
" 1300,\n",
" 1321,\n",
" 1323,\n",
" 1324,\n",
" 1325,\n",
" 1349,\n",
" 1326,\n",
" 1351],\n",
" [31,\n",
" 32,\n",
" 64,\n",
" 36,\n",
" 37,\n",
" 63,\n",
" 65,\n",
" 66,\n",
" 33,\n",
" 67,\n",
" 34,\n",
" 68,\n",
" 35,\n",
" 69,\n",
" 74,\n",
" 62,\n",
" 75,\n",
" 61,\n",
" 70,\n",
" 72,\n",
" 102,\n",
" 104,\n",
" 106,\n",
" 105,\n",
" 107,\n",
" 108,\n",
" 109,\n",
" 110,\n",
" 101,\n",
" 111,\n",
" 112,\n",
" 71,\n",
" 73,\n",
" 103,\n",
" 114,\n",
" 113,\n",
" 117,\n",
" 118,\n",
" 119,\n",
" 144,\n",
" 147,\n",
" 115,\n",
" 149,\n",
" 150,\n",
" 151,\n",
" 152,\n",
" 153,\n",
" 154,\n",
" 155,\n",
" 156,\n",
" 116,\n",
" 158,\n",
" 159,\n",
" 148,\n",
" 160,\n",
" 164,\n",
" 167,\n",
" 166,\n",
" 168,\n",
" 145,\n",
" 189,\n",
" 157,\n",
" 190,\n",
" 146,\n",
" 193,\n",
" 162,\n",
" 192,\n",
" 161,\n",
" 163,\n",
" 194,\n",
" 195,\n",
" 196,\n",
" 197,\n",
" 198,\n",
" 199,\n",
" 200,\n",
" 201,\n",
" 203,\n",
" 204,\n",
" 205,\n",
" 206,\n",
" 202,\n",
" 207,\n",
" 208,\n",
" 211,\n",
" 165,\n",
" 209,\n",
" 210,\n",
" 213,\n",
" 212,\n",
" 191,\n",
" 231,\n",
" 232,\n",
" 234,\n",
" 240,\n",
" 237,\n",
" 239,\n",
" 241,\n",
" 242,\n",
" 243,\n",
" 244,\n",
" 245,\n",
" 246,\n",
" 238,\n",
" 247,\n",
" 236,\n",
" 250,\n",
" 251,\n",
" 252,\n",
" 254,\n",
" 249,\n",
" 253,\n",
" 255,\n",
" 214,\n",
" 256,\n",
" 258,\n",
" 257,\n",
" 259,\n",
" 260,\n",
" 261,\n",
" 278,\n",
" 277,\n",
" 233,\n",
" 235,\n",
" 280,\n",
" 279,\n",
" 281,\n",
" 248,\n",
" 283,\n",
" 284,\n",
" 285,\n",
" 286,\n",
" 287,\n",
" 288,\n",
" 289,\n",
" 290,\n",
" 291,\n",
" 292,\n",
" 293,\n",
" 296,\n",
" 297,\n",
" 295,\n",
" 298,\n",
" 299,\n",
" 300,\n",
" 301,\n",
" 302,\n",
" 303,\n",
" 304,\n",
" 306,\n",
" 305,\n",
" 307,\n",
" 308,\n",
" 323,\n",
" 282,\n",
" 324,\n",
" 325,\n",
" 326,\n",
" 329,\n",
" 328,\n",
" 332,\n",
" 294,\n",
" 333,\n",
" 335,\n",
" 337,\n",
" 336,\n",
" 338,\n",
" 339,\n",
" 340,\n",
" 341,\n",
" 342,\n",
" 343,\n",
" 331,\n",
" 330,\n",
" 344,\n",
" 345,\n",
" 346,\n",
" 351,\n",
" 347,\n",
" 352,\n",
" 353,\n",
" 354,\n",
" 355,\n",
" 356,\n",
" 357,\n",
" 358,\n",
" 359,\n",
" 373,\n",
" 374,\n",
" 375,\n",
" 376,\n",
" 380,\n",
" 381,\n",
" 379,\n",
" 382,\n",
" 383,\n",
" 334,\n",
" 348,\n",
" 385,\n",
" 386,\n",
" 384,\n",
" 350,\n",
" 387,\n",
" 349,\n",
" 389,\n",
" 391,\n",
" 390,\n",
" 392,\n",
" 393,\n",
" 394,\n",
" 395,\n",
" 397,\n",
" 398,\n",
" 399,\n",
" 400,\n",
" 402,\n",
" 401,\n",
" 388,\n",
" 403,\n",
" 407,\n",
" 408,\n",
" 409,\n",
" 410,\n",
" 406,\n",
" 411,\n",
" 412,\n",
" 432,\n",
" 434,\n",
" 435,\n",
" 437,\n",
" 396,\n",
" 438,\n",
" 431,\n",
" 439,\n",
" 443,\n",
" 444,\n",
" 442,\n",
" 445,\n",
" 446,\n",
" 404,\n",
" 447,\n",
" 441,\n",
" 448,\n",
" 450,\n",
" 451,\n",
" 452,\n",
" 453,\n",
" 454,\n",
" 455,\n",
" 456,\n",
" 457,\n",
" 459,\n",
" 460,\n",
" 461,\n",
" 462,\n",
" 405,\n",
" 463,\n",
" 468,\n",
" 467,\n",
" 469,\n",
" 470,\n",
" 493,\n",
" 433,\n",
" 440,\n",
" 494,\n",
" 496,\n",
" 497,\n",
" 498,\n",
" 449,\n",
" 499,\n",
" 500,\n",
" 501,\n",
" 504,\n",
" 503,\n",
" 502,\n",
" 505,\n",
" 506,\n",
" 507,\n",
" 508,\n",
" 509,\n",
" 510,\n",
" 511,\n",
" 458,\n",
" 513,\n",
" 514,\n",
" 515,\n",
" 516,\n",
" 464,\n",
" 518,\n",
" 517,\n",
" 465,\n",
" 512,\n",
" 466,\n",
" 551,\n",
" 552,\n",
" 553,\n",
" 554,\n",
" 555,\n",
" 556,\n",
" 557,\n",
" 558,\n",
" 559,\n",
" 560,\n",
" 561,\n",
" 562,\n",
" 563,\n",
" 564,\n",
" 565,\n",
" 566,\n",
" 568,\n",
" 567,\n",
" 569,\n",
" 519,\n",
" 608,\n",
" 607,\n",
" 610,\n",
" 611,\n",
" 612,\n",
" 613,\n",
" 615,\n",
" 614,\n",
" 606,\n",
" 616,\n",
" 617,\n",
" 618,\n",
" 620,\n",
" 619,\n",
" 621,\n",
" 622,\n",
" 661,\n",
" 662,\n",
" 663,\n",
" 609,\n",
" 665,\n",
" 667,\n",
" 670,\n",
" 671,\n",
" 672,\n",
" 669,\n",
" 673,\n",
" 674,\n",
" 675,\n",
" 676,\n",
" 677,\n",
" 678,\n",
" 623,\n",
" 679,\n",
" 718,\n",
" 668,\n",
" 719,\n",
" 664,\n",
" 721,\n",
" 666,\n",
" 723,\n",
" 722,\n",
" 724,\n",
" 725,\n",
" 726,\n",
" 727,\n",
" 728,\n",
" 729,\n",
" 730,\n",
" 732,\n",
" 734,\n",
" 733,\n",
" 735,\n",
" 773,\n",
" 774,\n",
" 720,\n",
" 775,\n",
" 776,\n",
" 777,\n",
" 778,\n",
" 779,\n",
" 780,\n",
" 781,\n",
" 783,\n",
" 785,\n",
" 786,\n",
" 787,\n",
" 788,\n",
" 736,\n",
" 826,\n",
" 827,\n",
" 828,\n",
" 829,\n",
" 830,\n",
" 833,\n",
" 835,\n",
" 836,\n",
" 878,\n",
" 879,\n",
" 880,\n",
" 885,\n",
" 887,\n",
" 930],\n",
" [1,\n",
" 12,\n",
" 2,\n",
" 3,\n",
" 5,\n",
" 4,\n",
" 11,\n",
" 10,\n",
" 9,\n",
" 7,\n",
" 14,\n",
" 6,\n",
" 16,\n",
" 17,\n",
" 13,\n",
" 18,\n",
" 19,\n",
" 21,\n",
" 8,\n",
" 15,\n",
" 23,\n",
" 22,\n",
" 24,\n",
" 28,\n",
" 29,\n",
" 41,\n",
" 39,\n",
" 42,\n",
" 43,\n",
" 44,\n",
" 46,\n",
" 45,\n",
" 38,\n",
" 49,\n",
" 52,\n",
" 51,\n",
" 59,\n",
" 40,\n",
" 76,\n",
" 50,\n",
" 80,\n",
" 78,\n",
" 79,\n",
" 81,\n",
" 82,\n",
" 83,\n",
" 84,\n",
" 85,\n",
" 89,\n",
" 77,\n",
" 90,\n",
" 120,\n",
" 91,\n",
" 121,\n",
" 123,\n",
" 122,\n",
" 128,\n",
" 127,\n",
" 129,\n",
" 130,\n",
" 135,\n",
" 170,\n",
" 171,\n",
" 172,\n",
" 124,\n",
" 173,\n",
" 125,\n",
" 174,\n",
" 126,\n",
" 176,\n",
" 169,\n",
" 177,\n",
" 215,\n",
" 216,\n",
" 217,\n",
" 218,\n",
" 219,\n",
" 175,\n",
" 220,\n",
" 263,\n",
" 262,\n",
" 264,\n",
" 265,\n",
" 266,\n",
" 309,\n",
" 311,\n",
" 310,\n",
" 361,\n",
" 360,\n",
" 312,\n",
" 413,\n",
" 362,\n",
" 414,\n",
" 416,\n",
" 415,\n",
" 471,\n",
" 473,\n",
" 472,\n",
" 476,\n",
" 417,\n",
" 475,\n",
" 477,\n",
" 524,\n",
" 525,\n",
" 526,\n",
" 527,\n",
" 528,\n",
" 529,\n",
" 530,\n",
" 474,\n",
" 534,\n",
" 535,\n",
" 478,\n",
" 536,\n",
" 479,\n",
" 533,\n",
" 537,\n",
" 520,\n",
" 521,\n",
" 572,\n",
" 571,\n",
" 522,\n",
" 531,\n",
" 523,\n",
" 574,\n",
" 575,\n",
" 576,\n",
" 577,\n",
" 578,\n",
" 579,\n",
" 573,\n",
" 581,\n",
" 580,\n",
" 532,\n",
" 583,\n",
" 586,\n",
" 585,\n",
" 587,\n",
" 588,\n",
" 570,\n",
" 624,\n",
" 625,\n",
" 626,\n",
" 627,\n",
" 629,\n",
" 630,\n",
" 631,\n",
" 632,\n",
" 633,\n",
" 634,\n",
" 635,\n",
" 582,\n",
" 636,\n",
" 637,\n",
" 638,\n",
" 584,\n",
" 639,\n",
" 640,\n",
" 641,\n",
" 680,\n",
" 681,\n",
" 682,\n",
" 683,\n",
" 628,\n",
" 684,\n",
" 685,\n",
" 686,\n",
" 687,\n",
" 688,\n",
" 689,\n",
" 691,\n",
" 690,\n",
" 692,\n",
" 693,\n",
" 694,\n",
" 731,\n",
" 737,\n",
" 738,\n",
" 739,\n",
" 740,\n",
" 741,\n",
" 742,\n",
" 743,\n",
" 744,\n",
" 746,\n",
" 745,\n",
" 747,\n",
" 748,\n",
" 695,\n",
" 749,\n",
" 784,\n",
" 782,\n",
" 789,\n",
" 790,\n",
" 791,\n",
" 792,\n",
" 793,\n",
" 794,\n",
" 795,\n",
" 796,\n",
" 797,\n",
" 798,\n",
" 750,\n",
" 800,\n",
" 801,\n",
" 802,\n",
" 751,\n",
" 803,\n",
" 831,\n",
" 832,\n",
" 834,\n",
" 837,\n",
" 838,\n",
" 839,\n",
" 840,\n",
" 841,\n",
" 842,\n",
" 843,\n",
" 844,\n",
" 799,\n",
" 847,\n",
" 849,\n",
" 848,\n",
" 850,\n",
" 851,\n",
" 882,\n",
" 881,\n",
" 883,\n",
" 886,\n",
" 888,\n",
" 889,\n",
" 890,\n",
" 891,\n",
" 892,\n",
" 893,\n",
" 845,\n",
" 895,\n",
" 846,\n",
" 852,\n",
" 896,\n",
" 897,\n",
" 898,\n",
" 894,\n",
" 899,\n",
" 853,\n",
" 902,\n",
" 901,\n",
" 900,\n",
" 903,\n",
" 854,\n",
" 856,\n",
" 855,\n",
" 905,\n",
" 904,\n",
" 906,\n",
" 857,\n",
" 931,\n",
" 932,\n",
" 884,\n",
" 934,\n",
" 935,\n",
" 936,\n",
" 937,\n",
" 938,\n",
" 939,\n",
" 933,\n",
" 940,\n",
" 941,\n",
" 942,\n",
" 943,\n",
" 944,\n",
" 945,\n",
" 946,\n",
" 948,\n",
" 947,\n",
" 950,\n",
" 949,\n",
" 951,\n",
" 953,\n",
" 952,\n",
" 907,\n",
" 954,\n",
" 978,\n",
" 977,\n",
" 979,\n",
" 981,\n",
" 980,\n",
" 982,\n",
" 983,\n",
" 984,\n",
" 985,\n",
" 986,\n",
" 987,\n",
" 988,\n",
" 989,\n",
" 991,\n",
" 990,\n",
" 992,\n",
" 993,\n",
" 994,\n",
" 995,\n",
" 1024,\n",
" 1025,\n",
" 1026,\n",
" 1027,\n",
" 1028,\n",
" 1029,\n",
" 1032,\n",
" 1031,\n",
" 1033,\n",
" 1034,\n",
" 1035,\n",
" 1036,\n",
" 1037,\n",
" 1038,\n",
" 996,\n",
" 1040,\n",
" 1041,\n",
" 1042,\n",
" 1039,\n",
" 1043,\n",
" 1077,\n",
" 1076,\n",
" 1078,\n",
" 1079,\n",
" 1080,\n",
" 1030,\n",
" 1082,\n",
" 1083,\n",
" 1084,\n",
" 1085,\n",
" 1086,\n",
" 1087,\n",
" 1088,\n",
" 1089,\n",
" 1090,\n",
" 1091,\n",
" 1092,\n",
" 1123,\n",
" 1122,\n",
" 1124,\n",
" 1125,\n",
" 1081,\n",
" 1126,\n",
" 1128,\n",
" 1129,\n",
" 1130,\n",
" 1127,\n",
" 1131,\n",
" 1132,\n",
" 1133,\n",
" 1134,\n",
" 1135,\n",
" 1136,\n",
" 1167,\n",
" 1168,\n",
" 1169,\n",
" 1170,\n",
" 1166,\n",
" 1171,\n",
" 1172,\n",
" 1173,\n",
" 1176,\n",
" 1177,\n",
" 1175,\n",
" 1178,\n",
" 1179,\n",
" 1174,\n",
" 1204,\n",
" 1206,\n",
" 1205,\n",
" 1207,\n",
" 1208,\n",
" 1209,\n",
" 1210,\n",
" 1212,\n",
" 1211,\n",
" 1213,\n",
" 1214,\n",
" 1215,\n",
" 1238,\n",
" 1239,\n",
" 1240,\n",
" 1241,\n",
" 1242,\n",
" 1244,\n",
" 1245,\n",
" 1243,\n",
" 1246,\n",
" 1267,\n",
" 1268,\n",
" 1269,\n",
" 1271,\n",
" 1270,\n",
" 1272,\n",
" 1290,\n",
" 1291,\n",
" 1293]])"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ps"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:23:11.504886Z",
"start_time": "2021-07-14T08:23:11.499765Z"
}
},
"outputs": [],
"source": [
"_, parts =ps"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:23:15.877662Z",
"start_time": "2021-07-14T08:23:15.868575Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"8"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(parts)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:23:42.035942Z",
"start_time": "2021-07-14T08:23:42.022125Z"
}
},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:24:18.321424Z",
"start_time": "2021-07-14T08:24:18.314955Z"
}
},
"outputs": [],
"source": [
"part_arr=np.empty(mdiag.nod_n.shape)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:25:48.720248Z",
"start_time": "2021-07-14T08:25:48.712236Z"
}
},
"outputs": [],
"source": [
"for n,p in enumerate(parts):\n",
" tmp=np.array(p)-1\n",
" part_arr[tmp]=n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:27:26.195823Z",
"start_time": "2021-07-14T08:27:26.177998Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/suvarchal/AWI/triangulation_exps/pi-grid/pickle_mesh_py3_fesom2\n",
"The usepickle == True)\n",
"The pickle file for FESOM2 exists.\n",
"The mesh will be loaded from /home/suvarchal/AWI/triangulation_exps/pi-grid/pickle_mesh_py3_fesom2\n"
]
}
],
"source": [
"mda = pyfesom2.datasets.fesom_mesh_to_xr(\"pi-grid\")"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:28:56.515788Z",
"start_time": "2021-07-14T08:28:56.501706Z"
}
},
"outputs": [],
"source": [
"tri=mda.pyfesom2._triangulation_on_projection(mda)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-14T08:29:15.779609Z",
"start_time": "2021-07-14T08:29:15.774284Z"
}
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:40:40.188842Z",
"start_time": "2021-07-15T00:40:39.470352Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f0734dbac10>"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAV8AAAD8CAYAAADQSqd1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAneUlEQVR4nO2dcbBcVZ3nP7+XGEBfTDR5EgKyj0yQWdQx+l4x1ooUI+gGdWTcRcXaER3diW7JSHYcpgDLGUZqnFkZNVBj4UbHXdlR0R3HHcoBFKxBtHYE31OEIARDBldCAkkckYeQB8lv/7j3vtzXubf7dve5fc659/epOtXdt0/fc1737W9/3+/8zjmiqhiGYRijZcx3BwzDMNqIia9hGIYHTHwNwzA8YOJrGIbhARNfwzAMD5j4GoZheMDE1zAMwwEicoqI3JkrvxSRzaX1Lc/XMAzDLSKyBNgF/Kaq/rSojjlfwzAM95wFPFAmvABLR9iZnqxevVonJyd9d8MwjAiYnZ3dp6oTw5xDRPr51/8e4Knc462qurWk7vnAl7qdLCjxnZycZGZmxnc3DMOIABEpdZWVz8EYR3NMpbpP8sRTqjpdoV/LgDcBl3arF5T4GoZhjJIxxng2z65U90meqHrac4AfqOoj3SqZ+BqG0VrGGOMYnlOx9t6qp307PUIOYOJrGEaL6U98eyMizwFeC7y3V10TX8MwWstSlrKKamN2P6lQR1WfAFZVa9swDKOljLHEqfPtBxNfwzBaSz8Dbq4x8TUMo7W4jvn2g4mvYRitRUx8jTJExHcXBsbWDTFCx8IOgRCz0IVIHe9nXtDt8xotTfwxXcpSVlZLTqih7YZjX9BmYZ+nP/LvfZOEeMzT+mKNEF/7QhrGaGmOEAuCH/1ohPiqqgmwYXii87sXmxib+A6JxQINIwxiEmPBwg6GYTSUsEMUYuLrAnO8/si+VPYZGN0QkaAE2JyvA9r+pe92QQ/z3vT7RSmr3/bPxwgXi/kOQdu+2FUFsZ/3pW434iImv5nLjzi2peCYYfSDie8AtEl0+xHHqu+Lr3//VJX/Kn9Wqe51nMIH+MXC40c5vDnACzi2UJBhOFEuO2fZeT/KNVzGfxm4vTYRUsghwWK+RgF1Xai+vwDHyXXAKZXrX83K3KOVHc+uXBDnTJg/qX/KJ/nTRbX+Qj69SCDLBHMzl/MCjl14nJ0zO/ZRrinsY3a8ShtGOAjmfAeiifm9wwpjt/fDt+hCJrxuuZqV7NbzC5/7C/n0wv2Pcg2P8sgRQrpY3Lf3EHsWOfFO1izaPeYXC21mbOHyRQKePdeW8EloaWiKcJAlXtqOWnybSF2jwb4v8ro5Tq47QoAToV/ZUbPz8WKuq+DIr+5xjiPrJbcfSMW4iCzU0RYRDoVDwBOxOl8ROQX4cu7QOuBPSK643+fwrnOXqeoNw7bXSRPdb/b3NF0wXVOHq3bJ1TkRzugMcWzmchPgERK1+KrqdmADgIgsAXYBXwN+D/ikqv7VsG10o2nCm6dfEe72XoSWX9lm8s65SIjz7rgoZlz0Obr6HjTRzHTjEPCrhgy4nQU8oKo/bdMHWDedIjzoext6PLiNXJ0bMCyi6ufSWc91bnfdy4P64iASr/Pt4HwW71d/oYhcAMwAH1TVf+18gYhsAjYBnHjiiY67Y1TFnHEYXKrvc3Ie1w62jrVTQrjmog47ZIjIMuBNwKXpoWuAKwBNbz8OvLvzdaq6FdgKMD093fcn0YZprfUtGvQjAD7K/3V4znJCj8n6oCxLwwV1hRBcfud8j288g7DXYbaDiKwEPgu8hET73q2q/1xU16XzPQf4gao+ApDdph36DPB1h20tIkThHeRftyoXYK86vdpYyEfd8rqFY5eR3L/sqp3oRet69mEQTHjrFdoyfDvL0KnB+V4F3KSq56WGtHSPIpfi+3ZyIQcROU5Vd6cP3wxsc9hW0JRd8KP4IhS5krzgXlZ7D4xOfIjuKGjC4JzLATcRWQGcAbwLQFXngfmy+k7EV0SeA7wWeG/u8MdEZAOJ9X6w47nGEorTyIvwZfw72DLurS9Ndb279fyuf1tTRdc1Pr8zB+nL+a4WkZnc461p2DTjJJLU2v8hIi8DZoGLVPWJopM5Ed/05Ks6jr3Dxbkrtu/9FzgU0e1kQYSv2lmpvtQYemgiRQLcJtF18d3zOfB2qL9sh32qOt3l+aXAK4A/UNXbReQq4BLgw2WVG0E/F4HLVcFCFd1O9KJ1lQXYJb5db5kQuuxXm8S2CBepab4E+BDC4zzL1ekeAh5S1dvTx39HIr6FNEZ8q9LPBxyLsFZllAKctbNmJK0tpooYZnWqiHDbxXUQ4vruuJFBVd0jIj8TkVPSyWdnAT+ut9VAmDkA00eVPx/XBREXZaK+57zTWPN3d4ysH/0KZb6+b5du+EBwLIN/AHwhzXTYSTLTt5BGiO/sfO5fnL+9+cgKv/va0XUmcLJ47ihDEKMW4EFpe/y2nbgVX1W9E+gWF17Az6Rmh8zOzsLdM13rzBww19uJq0E1uWpndyE/PS0jwIVQ7tbzF85jwtsGMvGtUtzSCOcLLAjwzK8nD6fv+1dm3mKOt4herrdKxkM/zlkvWgcF5wt50MuEty04DztUJnrnW8bMrz+vpyM2BqPfkEWROxa5y2WXDGNABDi6YnFL9M53amoqCT2UkQnw1Gj60xTqyPddJMBbxtmz+VTWlA8GV8IcqjEc5nyNAClyuM4G6r4LnDfcrDsTXmN4/MV8TXwNP6SDcHvOO22gl5vwxs/s7Gz3/1pHgg241crUlMUcBiVzurVMOT6dxAH3iQlv3PgX3E78yGD04hveB9lMfExNNppFmN9VfzHf6MW3CtmHXsUBd7tAmuKgfa3zUMjpJDPg+6Bop2IjbMIUXmAJvTa0Psx+t023KubbLcZUJf4U7AUUOYPEfW0qcDwE/b0ZA46pWGpounV0Cm0/F0fQF1IfhLZs5J7zTlsoUC2uawLsj7mHZaF0I/jvi0fxbUXYoYxBL4zZ2dnGhCCCIDfwpv97HRDWD0Pb6SWwcw8L42sjnb4/RpeNfupv2mgpQbnfEa4BYYyG4F0vWNghRqK4sCoQlAB3YINq8RLN92MpyR48VYpjTHyHIJoLrAchC3A3TJxHQ7QhhSqY8zWMYkxg4yAfF47KlAjxi6+IPCgid4vIndkOnyLyfBG5WUR+kt4+z1V7Gb4HvqK60LoQgvvtpw8mys3B63coG3CrUmpo2iW/paobcjt8XgJ8S1VPBr5Fl83khsEEuBlUnfhhwhseWWhix4A7GXv7DjU47HAu8Pn0/ueB36m5PSNyigQ4L7YmvH7oFfetkvMbJGP4Ws7Xqfgq8E0RmRWRTemxY1V1d3p/D3Csw/YWCMF5htCHplAmwCa84bP+Ypj6cqUtzBbh7b9XAZ5VsTjGpfierqqvAM4B3i8iZ+Sf1GQTtSN+PkVkk4jMiMjM3r17HXZn9JgAuyOYtSeMvpjbnNyumJ5mxXT/IuyFJRWLY5yJr6ruSm8fBb4GnAY8IiLHAaS3jxa8bquqTqvq9MTEhKvueCNmAV4Y8FptwmcMzo4r+6vvdcxGSFSwSnGMk1OKyHNEZHl2H3gdsA24HnhnWu2dwD+4aC9PzGIXIosEeO1NfjtjRM36i333oCIOnW9R1lcZrtZ2OBb4miQjnUuBL6rqTSLyfeArIvIe4KfAWx21ZzhCrj2j+Ilj0vjq2ptg/kVHPr/Pf2qaESZrdsH4Ft+9qIhQR0jht1R1X69KTsRXVXcCLys4vh84y0UbhntKhdcwHLDjSlhx5TSPzQS+i7inqWatXtWsrVQS3SfT5RqPOR8OfuTw/SIXXAMhTPowBmduM9Bn7NcLY8CyyrVXd4QStqrq1o46WdaXAv+94PkFTHxbwsAu98nrjrx/zPmw9n54eOPwHSvAhLcZrNkFe45nIeshWAdc3fnuy00gK+N0Vd0lIi8AbhaR+1T1tuGaNYyMJ20Rc6Ma+UG3IFPPspivowG3kqyvQkx8jcFxnA2hF60z19twghRgR+LbJeurEBPfGmhN+tuI4r+GfwadOpxNuggWAcYOVSu9ORb4roj8CLgD+EdVLXUoJr7G4Cy736n7tVltzWX9xYdDEGG530Mw9lS10gNV3amqL0vLi1X1z7vVtwG3BjOyVLK1N9U2+GbEz5pdwJbFx1ZMh5KCpjD2jJeWzfkag1HDoJvFe9tFEA5YAHmmWnGMia8xGMd0rDBm60E0FhdLRZbFfv0LsJr4Ng3fg25eZq+t3jmwCJvrbT79LrgzGtKwQ5XiGBNfYzA6ww7L7k/KgMhVO23ALUBcLpC+ZpezU7lDzPkaDhmZ633yusMlzxAhCBPg5rLneN89KEJhyVPVimOiF1/f+7d1w3fowSvZkpQWCzZS8ulm4WDO13CEt5XK8u43C0HYJIxoqXNPtqAE2MIOzWWU7tf7EpFPXnd4BbQ85n6jYhQbYWYCvF67b8xZPzbgNhQhhx6M/rCsB7+McgficBzwwYrFLY0Q39BpXey3cwDOdr2IglFv/b7jyhC+G4ov8bXpxQ3Be8ihk7wAr/6T5DaLA5eIsblef9QtvPlthcLK91XgaS8tm/iOiNnZWSfhkbzI6gWFazSHz+qd5oYDYhSOd25zwKlmNbjaKjRGfKempgL4F6YegnO1g5CfgLHs/sM7YaSDcfqfzvbUsXYz6lBDEa6MyeBUWi7SORbzHSGD/Dh0E95oRPngRw6HIfIibFkQXglBeP3jL+Y7tPiKyAtF5J9E5Mcico+IXJQev1xEdqX7198pIq8fvrtGJ9EIMJSuhGaud/SEILxhLCkJ0Yov8AzwQVU9FXgl8H4ROTV97pOquiEtNzhoK3rqCI1EJcCGd3wI7/iW7qll/kKG2YBbleKWocVXVXer6g/S+48D9wJBhtZDoamx6Up0uF9zvaMlBMcbFhGHHfKIyCTwcuD29NCFInKXiHxORJ5X8ppNIjIjIjN79+512R0jVFIBbqrwyv4wBS4E4Q1nYkWeQxWLW5yJr4iMA18FNqvqL4FrgF8DNgC7gY8XvU5Vt6rqtKpOT0xMuOpO8LTa/UJjt5/PhDc0AQ5BePOEE++NfJKFiDyLRHi/oKp/D6Cqj+Se/wzwdRdtGUaohCa4EIbohpnfm3EI9AkvLbvIdhDgb4B7VfUTuePH5aq9mS7717sitjUeWu9+G0SR8PoWYxPeCughOPSrasUxLpzvq4B3AHeLyJ3pscuAt4vIBhJf/yDwXgdtNQ7/CebGsHQTWdkv6KrRr9wVgvBCEuMNazpxJ0/DoUednU1ElgAzwC5VfWO3ukOLr6p+l2QP0E4stawi/QiwXnCbpZYFRBV3268A5885iHCHIrxxcMi1q72IJOPrub0q2gy3iIh2LQejErJfhg5VhCS82WI6YWY4pGga861SeiAiJwBvAD5bpenGrO0QO93cr4lu/PRyv2Wi249rDkl4uxFOpgM4HnDbAvwxsLxKZXO+ATG7/MjPzIQ3XFwNqPkemBsF4brfvgbcVmdzEtKyKTuLiLwReFRVK4+im/MNjB2SfBH9b69iGMNRtIxkWK4X0L4G3Pap6nTJc68C3pSuYXM08FwR+VtV/d2yk5n4hsKZZy56uEOkVIA73bANwMVLHQN2oZBfQB26C6+/jB83A26qeilwKYCInAn8UTfhBRPfYDkRmE9d8DJzwcExSKigbhEdX6vRxH3DIeJJFoZbHhsfP+JYJsJGe4ktLtyP6wXfq5o9VbFUPKPqrb1yfMHEN0hOLDg2L2Ii3DBiE9Sq5IU33IG2HGMVi2Ms7BAIK+bmgGLhzTMvsigMYfHe0dNU0RyWTHR3XLlYdIMbZMsjwBI/TZv4RkinABvxEOvgWb9kU4qDFl5IxPdZfpo28fVBLrNhxdzcQpy3l+vN048AF+UKm2MeDHO9xXTGeKPCk/O1mO+o6Ugpg0SA+xHejHkR9ILbuk7EKHsuhMkbbf8B6McBV607vnb0rrpMeIN3vXA47FClOMacbwAMIrwZmQPOxDQTtBDEtWm4nNHW5NDD+oth9m0RCG+GJwtqztczwwhvEb2ccGdd37Td/dbBqN3v3OaRNucWj87XxNcjL00zHIZlmBS0EAQ4BmKL9Y5SgPccnwywZYNsUbleE9/24Up4M2IW4Da631GI+SgEuHPthqiEFw5nO1QpjjHxNYD+whV1ELIAx+Z6R0W/s9iCxQbcWsCZZy5MpggVnztl5Nvt1g/fTt0V/Yj6oIN0o1rvIVrhFWzArS0Urd0QGiGIW7cfgFH+OJjrLSZzvY/NzMQrvBkW820PMQhw6Mi1ZwQdqggJH7m/0dDkATcR2Sgi20Vkh4hcUnd7sXB3DQLscuGdENyvb8z1dmfHlbBiumxt8Uho6oBbuo3yp4BzgFNJtpM/tc42g6VgZpthjApzv11oqPM9DdihqjtVdR64Dji3rsb8rQnaTNrsfkN0vcP2ybUAR7FcZC+yATcPS0rWLb7HAz/LPX4oPbaAiGzKNqTbu3dvzd3xyK23LtxdMTfnPM+3LtoswEZ3Zt/WgME2aKzz7YmqblXVaVWdnpiY8N2dWlkxNzfwIjpVqGuZybYJcIiu1xW93G8/7njqy5HHe6HRA267gBfmHp+QHmsfZ54ZdZZDqALctoyHOn8YMuEdX6sLpRvZdOLoaWjY4fvAySJykogsA84Hrq+5TaMmQhVgl8TgekfZxyoiHDVjwLKKpYama0NVnwEuBL4B3At8RVXvqbPNIGlQpkMbBLjJDDrbrVOEG+N6obl7uKnqDcANdbcTC4+Nj0Mkg21ldK4d3BRicL0Zg0433r4aTtk3eLuHBTie96orHvdw8z7g1nga5Ho7MRfsl35/LGbnu9fvxxWvb9Iego4G3ETkaBG5Q0R+JCL3iMifdatv4lszWYZDvhhuaZoDr4NewjsILgV4amrK2bn6wm2e7wHgNar6MmADsFFEXllW2VY1q5Hop162iJhCDnmqhB/qEN5G4SjsoKoKZO4qm5Rc+uE0RnyDmt3WJdRQV46v0V6yH45OEc6On7MqeXzFfHLbLe4797A0O7uhE8dbx6dLKswC64FPqertZXUbI77B4DHG28928kbz6OXeP5ymS2UibNDvgNtqEclP6duqqlvzFVT1ILBBRFYCXxORl6jqtqKTmfgOyYrp6WSKZYMH1ppOrCGHQTDh7aA/8d2nqpViiar6CxH5J2AjUCi+NuDWL2eeubhgsV0jbG7cf+Sx7avL6/eT9eBtoMwljgbcRGQidbyIyDHAa4H7yuqb861CBVe7Ym5u0fThoqyGUcR72xp6kGvPsNS3HgzreoMaV3GF2zzf44DPp3HfMZJJZV8vq2zi242c6HaKq2HExI374Yrli48VDby1arANnA64qepdwMur1m+E+Nbyi1zR7XY+LhLoUWc4tNH9musdjtaJbh6b4RYQJcJbZYJEvs6JNDu1zCY3xMX040nGw4c7FompKrx1xXd9xo2XACsqFtc0wvk6pYfjrRJ+iGWhdKO9ZAJ8Q5sdL4n7fG7Fuo85btvEN8+Q6WIhudw2hh6M/rihfPJVa8icbxV+1rtKX0QvvqMYgS2K7eYJSXQN9+gqbVwusAlvQj/i65roxdcpt97al/sNXXTrdL8W742XYYR3amqqUSlny1i81c4oMfEdgNBF1zDKCM3x+p6k4dP5Rp/tMMoPL8bshXlp1r/Lo2aQBctDpUl/iyuWkAy4VSmuiV58R0VsomsYeVwKr0vD4zuE4TPVrBHiW7f7jV14Xbtfi/fGReiO16cAm/gGiu08EQ91/iDEnOlQl/C6Njy+BNjCDg5wfTGY6LaDbsIaumP0je/BMhcsA46vWFwzVLaDiFwJ/DYwDzwA/F66juUkyVbx29Oq31PV9w3TVi9c/nKa8BZj4Ya4sB+Paiw95KfdYZ3vzcBLVPU3gPuBS3PPPaCqG9Jiwhs5JrxGnfhy0QIs1WrFNUOJr6p+U1WfSR9+Dzhh+C55pKG7UQw70aKpwtsrliv7Jep47yhwIZo+wxdSUXiDE98O3g3cmHt8koj8UES+LSKvLnuRiGwSkRkRmdm7d2/fjboO1NuavfHS1B+JQbCQQzWEJOxQpbimp/iKyC0isq2gnJur8yHgGeAL6aHdwImq+nLgD4EvikjhgKGqblXVaVWdnpiYGP4vMpxighYnMTl2n6lmAhx9qFpxTc8BN1U9u9vzIvIu4I3AWem+9ajqAeBAen9WRB4AXgTMlJ0nJB4bH7fYb8OJSZyM+hCNdMBNRDYCfwy8SVV/lTs+ke5jhIisA04Gdg7T1qix8EOcmFM3+sHngNuwC+v8NXAUcLMks6iylLIzgI+IyNPAIeB9qvrzIduql4LBtrY7YBMyo+lk4uuDocRXVdeXHP8q8NVhzh0KsU8tNo7EQg7ucBWvnZ2d9ZL1EG3YIQSaMMvGMAx/NCHVzAt1jpRayCFOYu67MVrGFI46WK24xhZTL6DNottk2hZukP1Smu8793DyXrR6y/gUcSSsIvJC4FrgWECBrap6VVl9E98OTHib6RzbJrxlZKJb9rh1YqzuxJdkrsMHVfUHIrIcmBWRm1X1x0WVTXwbTit3MD7mO8hsTlQmvfUkGDpFtlu9qgLseyF0Fwgw5mjATVV3k0wwQ1UfF5F7SRZEKxTf6GO+rsnn97Yx0yF613vMd5LbLKt80ldHwuD1CK9HeOva6q+pKtSNIHW+VQqwOlsKIS2byk6bruz4cuD2sjrmfOGIHN+25/cazeOK+f7q9+OAY0YUljxdufo+VZ3ueU6RcZJU282q+suyeuZ8jQUa43ozJr30Iihu3D/4a7s5YNchB68rm1V3vr3PJfIsEuH9gqr+fbe6Jr4FrJiba13IIXrhBViXKwYA56xKXO8p+wZ7fd0hCO95+v2FHboiyTTfvwHuVdVP9KpvYYeUfJjBhDdCOl3vOuBBWu1+z1nluwfV8C3ArgbcgFcB7wDuFpE702OXqeoNhe06a9YTTj64W28d/hwBUiXToRHCW8ak7w6EwaCuN6Mu9+tbdCGJ+bpyvqr6XVUVVf2N3C4+hcIL5nwBWDHdM4beSKIX3sztZmGGnbn7k6PvTmjcuB9mlrs5V50DcFn82IsYu83z7QsTXyNOOsMMYLHeDlwJbx1kQus9V1hhrM9MEFdEH3YYmjPPbGVub9Sut0h480yOpBetIws/uFzJzDtKMi+tSnFM9OI71AfY0A0zW82k7w6EwczyJNY7bLy3iGHDdCHEehdh4jt6VszNLWQ52M4VkdDN9U6OrBdBc84q+PCyes69I9k0YWgB7jRN3gTZnK8Hcq43E2ELOQROmfBOYsLbwVcerue8a3bB+osHf/3U1FQY4YYME18/tDHWGy1FebzrgNf46EyYzCxPyhXzsH11vW0NIsDdhNebIJv4jpiOWG8ThbdRq5l1c7wGcOSEijpivRlzm5PbfkIPwcV5MxR4qmJxTPTiO+yH2kTh7UZ0IYcy4Y1qL+x68TmTraoAz87OhhVuyPDofIfK8xWRy4HfB/amhxam0onIpcB7gIPAB1T1G8O0NTAdLtdWK4uE/ASKIqG1cAOQ5vLm8lTrdLx55jYDVyb3V0xP89jMzGgadk0mvh5wMcnik6r6V/kDInIqcD7wYmAtcIuIvEhVPc0lKaZtrjd4ilxuftaasYhzVuFFeDPW7II9x4+2Ted4FN+6wg7nAtep6gFV/RdgB3BaTW2VY3m88dBr4oSxiCzUkKWUjVp4O4k29zfyAbcLReQuEfmciDwvPXY88LNcnYfSY0cgIpuyleH37t1bVKUr/cSRLOQQIMd8Jyll7tZc7xGEtFrZml3J7bDpZ944CPyiYnFMT/EVkVtEZFtBORe4Bvg1YAPJ3kUf77cDqrpVVadVdXpiYqKv13YT3hXT0wv5uya6AZKJbp6qQjvpujNx49v1rr8YdlwZ6QJVh4C5isUxPWO+qnp2lROJyGeAr6cPdwEvzD19QnpsNBSEG146N8f/G1kHwiSKTIeyAbaMyRH1I1Ay15ttC+RbeDMy57sjtsG3g9QirFUYNtvhuHTHToA3A9vS+9cDXxSRT5AMuJ0M3DFMW1VZMT19xFThEztuDc/0iu9aJkMhIYUbuhFV9kPmfD0wbLbDx0RkA0nY+kHgvQCqeo+IfIVky+RngPfXkekwNTXF7PLlyWLoHdOF2868SJgTLWxFsoHJ3G4og2wZ2aSL8S0+ezEgsTpfVX1Hl+f+HPjzYc7fi9nl6YKlqfBmomsON6FTgPWC28IOPUz67kC45NPK+t2JeFTMbYY1mxMR3jE9zfqLYfZtgTvgiJ1vUJjoHkmwDriTSd8diItQXG8Rc5thve9OVOVpYI+fpqOfXmz0Zj5dBlD2C7whsHzabIGcBz33I2BCy+mtQhaKmPry4QyIILMhQs52iAGL8XZnfhfMPyxwVHrgDd+Bf3y11z5Z/m5/hJbdUIUFAd6SiO4OAhyM8xjzjdr5Tj3+uAlvHzx+IL3jU3gzp2tUojPDoe6lIusgE+GMl6YOeMX0tH837NH5Ri2+Rv8sCLAvbDWyyuSFN6aQQxFzm5MxmWxcJi+62e4YXsicrwPxTWf5Pioi23rXboD4rk8Hk2ywrTvLjzpcvLMzVzIm/XQlJmIVXoDx+2BZbgpyMN9XBX2yWqnA/wQ2Vm06evGFgD7IQAlCcDOe9BxrjpCvPFzftkCjYPy+9E6HLIXwvVWShIcqpee5VG8Dfl617UYMuBndObAajgrJNVnMtyf5kMNb18YtvtxU/pRvAVaSyENFVotIfrRwq6puHbTtRjjfKPJYPVMl1qsX3FZ/R4y+CXVSRRXG72PB8c5f6bUrpRyqWIB92SJgaRlYeMGcb2tYCD0UZDpkojuy2W9ZrNcccCk37k9us23gr1gdX8x3IdwQMH06X6eY+LaExw8cGfvNO10v045NhCsRo/NdEN6bqjlenzMxfYlvI8IORjXyoQfvwptn0m/zIXPjfph+3HcvBifUUEOGywE3EfkS8M/AKSLykIi8p1t9c74t4/Gzv8P42sMOw7vwmuutzPZIQg+Z650/y28/quAy7KCqb++nfiPEd95nknZk5IU3CHZizrcPOj+/uYcDvPa7ZDeU4XPQ/JCndqMXXxPe6nR+cb273owHiUKAdVWxQMh+N9dg2fm70evHtFOcB/nx7Ufgx+8LP9SQxwbcjNoJzvFmBB52qCKIw4jyIILbDy4+9/w5egrxAK4X/A24mfgatRJ0HnSW8TDpsxOLcSWI2XmKRLhu0a2LMjFfEOWNQETOFyzsYNRA0KKbJwD3W6cYxiq0/bAgymsB+g/DtDHmG3WqmcV7y6lyMXuZ0Zbfw83D8pK6SguL4Y5lqtH88Ct9zXBzijnfBhHLBb/AAKuamVDGQ+f1GKpZ8nVFmfgGSHbR9rpYoxPbHpiwNptlqkEKcJTiKyJfBk5JH64EfqGqG0RkErgX2J4+9z1Vfd8wbbWBTjFtmrgWbRuvb2nY32hERRZ28MGwW8e/LbsvIh8HHss9/YCqbhjm/L0I8Zc0L5gxOFcf28mb4LaL0L6jnUTpfDNERIC3Aq9xcb6q+P5Qe4lnCOIaEia67cP3d7QKsS+s82rgEVX9Se7YSSLyQxH5toiUbl8gIptEZEZEZvbu3dtXo6MSt2z0trM0hbqzHvSC22ytYCNItI/imp7iKyK3iMi2gnJurtrbgS/lHu8GTlTVlwN/CHxRRJ5bdH5V3ZotTjwxMTHM3+KMpopsN+oSRxNdowo+HbIv8e0ZdlDVs7s9LyJLgf8ATOVecwA4kN6fFZEHgBcBM4Un8UBnRkFbRLYbrpaZNME1Mqpm7vgkygG3lLOB+1T1oeyAiEwAP1fVgyKyDjiZmjYNH2TQLS+0JrrF9CPEJrZGL4L9no2NwbOfXa3uXIX94/vAhfiez+KQA8AZwEdE5GmSH5b3qWrlXT37JdgPtiGYuBqNZdkymJysVnfbNqdNDy2+qvqugmNfBb467LkNwzBqZelSWLnST9NeWjUMwwiBJUtMfA3DMEaOia9hGIYHTHwNwzA8YDFfwzAMD/ST7eAYE1/DMNqLw7CDiGwErgKWAJ9V1b/sVt/E1zCM9uIo7CAiS4BPAa8FHgK+LyLXq+qPS5seulXDMIxYced8TwN2qOpOABG5DjgXKBVf0YBmh4nIXuCnnruxGtjnuQ8QRj9C6ANYPzqxfiT8G1UdajUuEbmJ5O+owtHAU7nHW1V1a3qe84CNqvqf08fvAH5TVS8sO1lQznfYN9IFIjKjqtPWjzD6YP2wftSJqm701XbUuxcbhmEEwi7ghbnHJ6THSjHxNQzDGJ7vAyeLyEkisoxkwbHru70gqLBDIGz13YGUEPoRQh/A+tGJ9SMwVPUZEbkQ+AZJqtnnVPWebq8JasDNMAyjLVjYwTAMwwMmvoZhGB5orfiKyFtE5B4ROSQi07njkyLypIjcmZZP556bEpG7RWSHiFwtMvzGVGX9SJ+7NG1ru4j8+9zxjemxHSJyybB9KOjT5SKyK/cevL5Xn+qi7r+1R9sPpp/3nSIykx57vojcLCI/SW+fV0O7nxORR0VkW+5YYbuScHX6/twlIq+osQ/BXBeNQFVbWYB/C5wC3ApM545PAttKXnMH8EpAgBuBc2rsx6nAj4CjgJOAB0gC+UvS++uAZWmdUx2/N5cDf1RwvLBPNX5Gtf+tPdp/EFjdcexjwCXp/UuA/1ZDu2cAr8hfh2XtAq9Pr0VJr83ba+xDENdFU0prna+q3quq26vWF5HjgOeq6vc0ueKuBX6nxn6cC1ynqgdU9V+AHSRTGBemMarqPJBNYxwFZX2qC59/axnnAp9P738eB9dAJ6p6G9C552FZu+cC12rC94CV6bVaRx/KGPV10QhaK749OElEfigi3xaRV6fHjidZMCPjofRYXRwP/KygvbLjrrkw/Tf2c7l/rUfVdsao2+tEgW+KyKyIbEqPHauqu9P7e4BjR9SXsnZH/R6FcF00gkbn+YrILcCagqc+pKr/UPKy3cCJqrpfRKaA/yMiL/bQj1rp1ifgGuAKEvG5Avg48O7R9S4YTlfVXSLyAuBmEbkv/6SqqoiMPFfTV7vYdeGURouvqp49wGsOAAfS+7Mi8gDwIpKpgifkqvacPjhMP+g+XbGvaYzD9ElEPgN8vUKf6mDU7S1CVXelt4+KyNdI/pV+RESOU9Xd6b/3j46oO2Xtjuw9UtVHsvuer4tGYGGHDkRkIl2bExFZB5wM7Ez/5fuliLwyzXK4AKjTtV4PnC8iR4nISWk/7mCAaYz90hEzfDOQjXiX9akuav9byxCR54jI8uw+8DqS9+F64J1ptXdS7zWQp6zd64EL0qyHVwKP5cITTgnoumgGvkf8fBWSi+chEpf7CPCN9Ph/BO4B7gR+APx27jXTJBfcA8Bfk84QrKMf6XMfStvaTi6zgmSE+/70uQ/V8N78L+Bu4C6SL9ZxvfpU4+dU69/apd11JCP4P0qvhw+lx1cB3wJ+AtwCPL+Gtr9EEv56Or023lPWLkmWw6fS9+duchkzNfQhmOuiCcWmFxuGYXjAwg6GYRgeMPE1DMPwgImvYRiGB0x8DcMwPGDiaxiG4QETX8MwDA+Y+BqGYXjg/wMy+w03G1Nt+wAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.tripcolor(tri, part_arr, cmap='nipy_spectral_r')\n",
"plt.colorbar()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"## split faces and nodes into more arrays that contains parts. faces(nparts, nfaces, three)\n",
"## split nodes into parts nod2d(nparts, nnodes)\n",
"## to handle irregular sizes of parts we can also use like (nparts, nod2d ) where we store bool arrays that can be used for selection\n",
"## instead of full"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:36:52.027973Z",
"start_time": "2021-07-15T00:36:52.024471Z"
}
},
"outputs": [],
"source": [
"# in above edges contain cyclic so part regions are disconnected \n",
"# if we take out non-cyclic and redo pratitioning what happens"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:37:09.756640Z",
"start_time": "2021-07-15T00:37:09.752465Z"
}
},
"outputs": [],
"source": [
"non_cyc_edges=tri.edges"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:37:21.457195Z",
"start_time": "2021-07-15T00:37:21.452709Z"
}
},
"outputs": [],
"source": [
"ng=nx.Graph()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:37:43.374196Z",
"start_time": "2021-07-15T00:37:43.311116Z"
}
},
"outputs": [],
"source": [
"ng.add_edges_from(non_cyc_edges)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:37:59.390763Z",
"start_time": "2021-07-15T00:37:59.285047Z"
}
},
"outputs": [],
"source": [
"nps=nxmetis.partition(ng,8)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:38:28.528043Z",
"start_time": "2021-07-15T00:38:28.518721Z"
}
},
"outputs": [],
"source": [
"_, ncparts =nps"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:38:43.526886Z",
"start_time": "2021-07-15T00:38:43.521896Z"
}
},
"outputs": [],
"source": [
"ncpart_arr=np.empty(mdiag.nod_n.shape)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:39:12.544785Z",
"start_time": "2021-07-15T00:39:12.538595Z"
}
},
"outputs": [],
"source": [
"for n,p in enumerate(ncparts):\n",
" tmp=np.array(p)-1\n",
" ncpart_arr[tmp]=n"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:42:14.176512Z",
"start_time": "2021-07-15T00:42:13.676495Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f0732c0be50>"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.tripcolor(tri, ncpart_arr,cmap='nipy_spectral_r')\n",
"plt.colorbar()"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:41:10.546456Z",
"start_time": "2021-07-15T00:41:10.537599Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"array([0., 1., 2., 3., 4., 5., 6., 7.])"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.unique(ncpart_arr)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T00:49:14.671946Z",
"start_time": "2021-07-15T00:49:14.667858Z"
}
},
"outputs": [],
"source": [
"# how do we pass partition to faces?\n",
"# for each part, np.count_non_zero(np.isin(faces, partnodes), axis=1)<3? 2 part nodes then boundary, 1 internal boundary?"
]
},
{
"cell_type": "code",
"execution_count": 70,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T01:06:14.019409Z",
"start_time": "2021-07-15T01:06:13.984818Z"
}
},
"outputs": [],
"source": [
"ncfaces_size_arr=np.empty(tri.triangles.shape[0])\n",
"for n,p in enumerate(ncparts):\n",
" tmp=np.array(p)-1\n",
" cnt=np.count_nonzero(np.isin(tri.triangles, tmp), axis=1)\n",
" ncfaces_size_arr[cnt>0] = n"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T01:06:15.047582Z",
"start_time": "2021-07-15T01:06:14.561653Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7f07304c2d10>"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.tripcolor(tri, ncfaces_size_arr,cmap='nipy_spectral_r')\n",
"plt.colorbar()"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {
"ExecuteTime": {
"end_time": "2021-07-15T01:02:12.406820Z",
"start_time": "2021-07-15T01:02:12.389171Z"
}
},
"outputs": [
{
"data": {
"text/plain": [
"600"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.count_nonzero(cnt>2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment