Commit d7ad6761 authored by Bostelmann, Rike's avatar Bostelmann, Rike
Browse files

Add URL to SLICE repo

parent 5abbf5a8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
@@ -18,6 +18,7 @@
    "import json\n",
    "import copy\n",
    "import re\n",
    "# Download repository from https://code.ornl.gov/scale/code/slice\n",
    "sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/scripts'))\n",
    "sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/slice'))\n",
    "from lib_utils import get_burnup_from_f33,  get_xs_data_from_f33\n",
+1 −0
Original line number Diff line number Diff line
%% Cell type:markdown id: tags:

# Nuclide density convergence over inner iterations

%% Cell type:code id: tags:

``` python
import os
import sys
import json
import copy
import re
# Download repository from https://code.ornl.gov/scale/code/slice
sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/scripts'))
sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/slice'))
from lib_utils import get_densities_from_f71
import matplotlib
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
import numpy as np
import glob
import pandas as pd

%load_ext autoreload
%autoreload 2

%matplotlib inline
%load_ext wurlitzer
```

%% Cell type:code id: tags:

``` python
acts = ["u235", "u238", "pu239", "pu240", "pu241", "pu242", "am241", "am242", \
        "am242m", "cm244", "cm245"]
fps = ["kr85",
       "sr90",
       "ag110m",
       "i131",
       "xe135",
       "cs133", "cs134", "cs137",
       "nd143", "nd145", "nd148",
       "sm147", "sm149", "sm150", "sm151", "sm152",
       "eu153", "eu154", "eu155",
       "gd154", "gd155", "gd157"
       ]
```

%% Cell type:markdown id: tags:

## Core-average inventory comparison

%% Cell type:code id: tags:

``` python
f71_list = glob.glob('../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it*/CORE_AVERAGE.f71')
for file in sorted(f71_list):
    print(file)
```

%% Output

    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/CORE_AVERAGE.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/CORE_AVERAGE.f71

%% Cell type:code id: tags:

``` python
core_av_dens = {}
for file in sorted(f71_list):
    df = get_densities_from_f71(file)
    dir = file.split("/")[4]
    subdir = file.split("/")[5]
    it_outer = re.search(r"it-(?P<it>\d+)",dir).group("it")
    it_inner = subdir[-1]
    if it_outer not in core_av_dens:
        core_av_dens[it_outer] = []
    if type(core_av_dens[it_outer]) is list:
        core_av_dens[it_outer] = df
    else:
        core_av_dens[it_outer] = pd.concat([core_av_dens[it_outer],df],axis=1)

```

%% Cell type:code id: tags:

``` python
# update column header to display number of inner iteration
for it_outer, df in core_av_dens.items():
    df.columns = [x for x in range(1, len(df.columns)+1)]
core_av_dens
```

%% Output

    {'0':                  1             2             3             4             5   \
     case   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
     step   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
     time   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
     power  2.728040e+02  2.721695e+02  2.709486e+02  2.705157e+02  2.703260e+02
     flux   3.334206e+14  3.334205e+14  3.334205e+14  3.334206e+14  3.334205e+14
     ...             ...           ...           ...           ...           ...
     zr95   3.264801e-05  3.249594e-05  3.231782e-05  3.225847e-05  3.223540e-05
     zr96   1.177562e-04  1.169558e-04  1.161946e-04  1.159544e-04  1.158509e-04
     zr97   3.972149e-07  3.960626e-07  3.942082e-07  3.935609e-07  3.932969e-07
     zr98   1.953190e-10  1.948236e-10  1.939339e-10  1.936213e-10  1.934882e-10
     zr99   1.327414e-11  1.323532e-11  1.317378e-11  1.315238e-11  1.314327e-11
    
                      6             7             8             9             10
     case   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
     step   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
     time   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
     power  2.703057e+02  2.703675e+02  2.703759e+02  2.702673e+02  2.703894e+02
     flux   3.334205e+14  3.334205e+14  3.334205e+14  3.334206e+14  3.334206e+14
     ...             ...           ...           ...           ...           ...
     zr95   3.223302e-05  3.223741e-05  3.223586e-05  3.222380e-05  3.223834e-05
     zr96   1.158412e-04  1.158622e-04  1.158473e-04  1.158045e-04  1.158596e-04
     zr97   3.932646e-07  3.933431e-07  3.933421e-07  3.931996e-07  3.933619e-07
     zr98   1.934736e-10  1.935144e-10  1.935174e-10  1.934441e-10  1.935270e-10
     zr99   1.314227e-11  1.314501e-11  1.314509e-11  1.314020e-11  1.314576e-11
    
     [1681 rows x 10 columns]}

%% Cell type:code id: tags:

``` python
for nuc in acts+fps:

    if nuc not in ["pu239", "nd148"]:
        continue

    matplotlib.rcParams['font.size'] = 12.0
    matplotlib.rcParams['font.family'] = 'serif'

    fig, ax1 = plt.subplots(1, sharex=True, figsize=(6,6))
    ax2 = ax1.twinx()

    ax1.set_xlim(0.5, 10.5)
    ax2.set_ylim(-0.06,0.06)
    ax1.set_xlabel(f'Inner iteration', fontweight="bold")
    ax1.set_ylabel('Nuclide density [atoms/b-cm]', fontweight="bold")
    ax1.ticklabel_format(axis='y', style='sci', scilimits=(0,0))
    ax1.set_title(f"{nuc.capitalize()}", fontweight="bold")
    ax2.grid(which='major', alpha=0.3)

    ax2.yaxis.set_major_formatter(mtick.PercentFormatter(1.0))

    colors = ["black", "blue", "red", "gold", "purple", "green", "gray"]
    for it_outer, df in core_av_dens.items():
        ax1.plot([x for x in range(1,len(df.loc[nuc].values)+1)], df.loc[nuc].values, \
                color=colors[int(it_outer)], \
                linestyle="solid", linewidth=1, marker="v", markersize=5,\
                label=f"it{it_outer}")

    for it_outer, dfs in core_av_dens.items():
        diffs = []
        for i in range(1, len(df.loc[nuc].values)):
            diffs.append(df.loc[nuc].values[i]/df.loc[nuc].values[i-1]-1)
        ax2.plot([x for x in range(2, len(df.loc[nuc].values)+1)], diffs, \
                color=colors[int(it_outer)], \
                linestyle="dashed", linewidth=1, marker="v", markersize=5)

    # ax1.legend(ncol=1, shadow=True, fancybox=True, handlelength=1.0, handletextpad=0.3, loc='best', fontsize=11)

    # plt.savefig(f"core1_inner-it1_dens_{nuc}.png", format='png', dpi=200, bbox_inches='tight', transparent=False)
    plt.show()
```

%% Output



%% Cell type:markdown id: tags:

## Zone-average inventory comparison

%% Cell type:code id: tags:

``` python

f71_list = glob.glob('../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it*/Z*.f71')
for file in sorted(f71_list):
    print(file)
```

%% Output

    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it0/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it1/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it2/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it3/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it4/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it5/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it6/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it7/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it8/Z09_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z00_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z00_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z00_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z00_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z01_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z01_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z01_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z01_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z02_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z02_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z02_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z02_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z03_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z03_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z03_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z03_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z04_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z04_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z04_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z04_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z05_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z05_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z05_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z05_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z06_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z06_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z06_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z06_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z07_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z07_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z07_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z07_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z08_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z08_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z08_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z08_R4.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z09_R1.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z09_R2.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z09_R3.f71
    ../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it9/Z09_R4.f71

%% Cell type:code id: tags:

``` python
zone_av_dens = {}
for file in sorted(f71_list):
    df = get_densities_from_f71(file)
    dir = file.split("/")[4]
    subdir = file.split("/")[5]
    zone = file.split("/")[6]
    it_outer = re.search(r"it-(?P<it>\d+)",dir).group("it")
    it_inner = subdir[-1]
    Z = re.search(re.compile(r"Z(?P<Z>\d+)_R(?P<R>\d+)"),zone).group("Z")
    R = re.search(re.compile(r"Z(?P<Z>\d+)_R(?P<R>\d+)"),zone).group("R")
    Z = int(Z)
    R = int(R)

    if (R,Z) not in zone_av_dens.keys():
        zone_av_dens[(R,Z)] = {}
    if it_outer not in zone_av_dens[(R,Z)].keys():
        zone_av_dens[(R,Z)][it_outer] = []


    if type(zone_av_dens[(R,Z)][it_outer]) is list:
        zone_av_dens[(R,Z)][it_outer] = df
    else:
        zone_av_dens[(R,Z)][it_outer] = pd.concat([zone_av_dens[(R,Z)][it_outer],df],axis=1)


```

%% Cell type:code id: tags:

``` python
# update column header to display number of inner iteration
for (R,Z), data in zone_av_dens.items():
    for it_outer, df in data.items():
        df.columns = [x for x in range(1, len(df.columns)+1)]
zone_av_dens[(1,0)]['0']
```

%% Output

                     1             2             3             4             5   \
    case   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
    step   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
    time   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
    power  2.366948e+02  2.348229e+02  2.332762e+02  2.327437e+02  2.324296e+02
    flux   3.040360e+14  3.040360e+14  3.040360e+14  3.040360e+14  3.040360e+14
    ...             ...           ...           ...           ...           ...
    zr95   3.038959e-05  3.022888e-05  3.005482e-05  2.999713e-05  2.997426e-05
    zr96   1.055361e-04  1.047749e-04  1.040727e-04  1.038524e-04  1.037564e-04
    zr97   3.420741e-07  3.391872e-07  3.369123e-07  3.361330e-07  3.356812e-07
    zr98   1.697322e-10  1.683327e-10  1.672052e-10  1.668164e-10  1.665917e-10
    zr99   1.154236e-11  1.144312e-11  1.136572e-11  1.133916e-11  1.132371e-11
    
                     6             7             8             9             10
    case   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
    step   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
    time   0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
    power  2.324220e+02  2.326686e+02  2.325194e+02  2.325549e+02  2.326329e+02
    flux   3.040360e+14  3.040360e+14  3.040360e+14  3.040360e+14  3.040360e+14
    ...             ...           ...           ...           ...           ...
    zr95   2.997201e-05  2.997694e-05  2.997425e-05  2.996313e-05  2.997746e-05
    zr96   1.037475e-04  1.037677e-04  1.037521e-04  1.037140e-04  1.037644e-04
    zr97   3.356537e-07  3.360159e-07  3.357767e-07  3.358525e-07  3.359356e-07
    zr98   1.665796e-10  1.667614e-10  1.666475e-10  1.666815e-10  1.667294e-10
    zr99   1.132286e-11  1.133529e-11  1.132732e-11  1.132985e-11  1.133286e-11
    
    [1681 rows x 10 columns]

%% Cell type:code id: tags:

``` python
Z_target = 5

for nuc in acts+fps:

    if nuc not in ["pu239", "nd148"]:
        continue

    matplotlib.rcParams['font.size'] = 12.0
    matplotlib.rcParams['font.family'] = 'serif'

    fig, ax1 = plt.subplots(1, sharex=True, figsize=(6,6))
    ax2 = ax1.twinx()

    ax1.set_xlim(0.5, 10.5)
    ax2.set_ylim(-0.06,0.06)
    ax1.set_xlabel(f'Inner iteration', fontweight="bold")
    ax1.set_ylabel('Nuclide density [atoms/b-cm]', fontweight="bold")
    ax2.set_ylabel('Difference', fontweight="bold")
    ax1.ticklabel_format(axis='y', style='sci', scilimits=(0,0))
    ax1.set_title(f"{nuc.capitalize()}, Z={Z_target+1}", fontweight="bold")

    ax1.xaxis.set_major_locator(mtick.MultipleLocator(1))
    # ax1.yaxis.set_minor_locator(mtick.MultipleLocator(0.002))

    ax2.yaxis.set_major_formatter(mtick.PercentFormatter(1.0))

    colors = ["black", "blue", "red", "green", "purple", "green", "gray"]
    markers = ["o", "d", "v", "^"]

    cnt = 0
    for (R,Z), dfs in zone_av_dens.items():
        if Z != Z_target:
            continue
        for it_outer, df in dfs.items():
            ax1.plot([x for x in range(1,len(df.loc[nuc].values)+1)], df.loc[nuc].values, \
                    color=colors[cnt], \
                    linestyle="solid", linewidth=1, marker=markers[cnt], markersize=5,\
                    label=f"r={R}")
            cnt += 1

    cnt = 0
    for (R,Z), dfs in zone_av_dens.items():
        if Z != Z_target:
            continue
        for it_outer, df in dfs.items():
            diffs = []
            for i in range(1, len(df.loc[nuc].values)):
                diffs.append(df.loc[nuc].values[i]/df.loc[nuc].values[i-1]-1)
            ax2.plot([x for x in range(2, len(df.loc[nuc].values)+1)], diffs, \
                    color=colors[cnt], \
                    linestyle="dashed", linewidth=1, marker=markers[cnt], markersize=5)
            cnt += 1

    ax1.legend(ncol=1, shadow=True, fancybox=True, handlelength=1.0, handletextpad=0.3, loc='best', fontsize=11)

    plt.savefig(f"core1_outer-it0_dens_{nuc}.pdf", bbox_inches='tight', transparent=False)
    plt.show()
```

%% Output


+1 −0
Original line number Diff line number Diff line
%% Cell type:markdown id: tags:

# Zone-average inventory comparison for core 1

%% Cell type:code id: tags:

``` python
import os
import sys
import json
import copy
import re
# Download repository from https://code.ornl.gov/scale/code/slice
sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/scripts'))
sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/slice'))
from lib_utils import get_densities_from_f71
import matplotlib
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
import numpy as np
import glob
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib import rcParams
import pandas as pd
from copy import deepcopy

%load_ext autoreload
%autoreload 2

%matplotlib inline
%load_ext wurlitzer
```

%% Cell type:code id: tags:

``` python
acts = ["u235", "u238", "pu239", "pu240", "pu241", "pu242", "am241", "am242", \
        "am242m", "cm244", "cm245"]
fps = ["kr85",
       "sr90",
       "ag110m",
       "i131",
       "xe135",
       "cs133", "cs134", "cs137",
       "nd143", "nd145", "nd148",
       "sm147", "sm149", "sm150", "sm151", "sm152",
       "eu153", "eu154", "eu155",
       "gd154", "gd155", "gd157"
       ]
```

%% Cell type:markdown id: tags:

### Get all F71 files that contain core-average or zone-average compositions

%% Cell type:code id: tags:

``` python
core_f71_list = {}
core_f71_list["outer it. 1"] = glob.glob('../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it*/CORE_AVERAGE.f71')
core_f71_list["outer it. 2"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-1/arp_origen_output_it*/CORE_AVERAGE.f71')
core_f71_list["outer it. 3"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-2/arp_origen_output_it*/CORE_AVERAGE.f71')
core_f71_list["outer it. 4"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-3/arp_origen_output_it*/CORE_AVERAGE.f71')
core_f71_list["outer it. 5"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-4/arp_origen_output_it*/CORE_AVERAGE.f71')
core_f71_list["outer it. 6"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-5/arp_origen_output_it*/CORE_AVERAGE.f71')
```

%% Cell type:code id: tags:

``` python
zone_f71_list = {}
zone_f71_list["outer it. 1"] = glob.glob('../../tmp/eq_core_generation_r4z10_new_mod/outer-it-0/arp_origen_output_it*/Z*.f71')
zone_f71_list["outer it. 2"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-1/arp_origen_output_it*/Z*.f71')
zone_f71_list["outer it. 3"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-2/arp_origen_output_it*/Z*.f71')
zone_f71_list["outer it. 4"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-3/arp_origen_output_it*/Z*.f71')
zone_f71_list["outer it. 5"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-4/arp_origen_output_it*/Z*.f71')
zone_f71_list["outer it. 6"] = glob.glob('../../tmp/eq_core_generation_r4z10_new/outer-it-5/arp_origen_output_it*/Z*.f71')
```

%% Cell type:markdown id: tags:

### Core-average: Determine maximum differences from one inner iteration to the next

%% Cell type:code id: tags:

``` python
n_inner_iterations = 6

core_av_dens = {}
for key, file_list in core_f71_list.items():
    print(key, len(file_list))
    for file in sorted(file_list):
        df = get_densities_from_f71(file)
        dir = file.split("/")[4]
        subdir = file.split("/")[5]
        it_outer = re.search(r"it-(?P<it>\d+)",dir).group("it")
        it_inner = subdir[-1]
        if key not in core_av_dens:
            core_av_dens[key] = []
        if type(core_av_dens[key]) is list:
            core_av_dens[key] = df
        else:
            core_av_dens[key] = pd.concat([core_av_dens[key],df],axis=1)

# update column header to display number of inner iteration
for key, df in core_av_dens.items():
    df.columns = [x for x in range(1, len(df.columns)+1)]
```

%% Output

    outer it. 1 10
    outer it. 2 6
    outer it. 3 6
    outer it. 4 6
    outer it. 5 6
    outer it. 6 7

%% Cell type:code id: tags:

``` python
# for key, df in core_av_dens.items():
#     print(key, df)


rcParams['figure.figsize'] = 12,4
rcParams['font.size'] = 12.0
rcParams['font.family'] = 'serif'
rcParams['font.serif'] = 'DejaVu Serif'


fontdict = {
    'fontsize': 12,
    'fontweight' : "bold",
    'font' : 'DejaVu Serif'
    }

for key, df in core_av_dens.items():

    if key != "outer it. 1":
        continue

    sns.set_theme(style="ticks")

    plot_data = pd.DataFrame(deepcopy(df[df.columns[-1]].iloc[6:].loc[acts+fps]))
    plot_data.reset_index(level=0, inplace=True)
    plot_data.columns = ['Nuclide', 'Density']

    my_pal = {nuclide: "lightblue" if nuclide in fps else "salmon" for nuclide in plot_data["Nuclide"]}
    vp = sns.barplot(plot_data, x="Nuclide", y="Density", hue="Nuclide", order=acts+fps, width=0.8, dodge=False, palette=my_pal, linewidth=0.5)

    new_labels = [v.get_text().capitalize() for v in vp.get_xticklabels()]
    vp.set_xticklabels(new_labels, rotation=45, font='DejaVu Serif')
    vp.set_xlabel('')
    vp.set_ylabel('Density [atoms/b-cm]', fontdict=fontdict)
    vp.set_yscale('log')
    # vp.set_yticks([x/100 for x in range(-50, 60, 25)])
    vp.set_ylim(1e-9, 1e-1)
    # vp.set_title(f'{key}', weight="bold", fontdict=fontdict)
    plt.grid(axis = 'y')
    plt.legend([],[], frameon=False)

    plt.savefig(f"core1_core_avrg_nucdens.pdf", format='pdf', bbox_inches='tight', transparent=False)
    plt.show()
```

%% Output


%% Cell type:code id: tags:

``` python
core_diff = {}
for key in core_av_dens:
    core_diff[key] = pd.DataFrame()
    core_diff[key].index = acts+fps


for key, df in core_av_dens.items():
    for it_inner in range(1,n_inner_iterations):
        core_av_diffs = []
        for nuc in acts+fps:
            core_av_diffs.append(abs(df.loc[nuc].values[it_inner]/df.loc[nuc].values[it_inner-1]-1))
        core_diff[key][f"{it_inner}"] = core_av_diffs

for key in core_diff:
    print(f"{key}")
    core_diff[key].max(axis=0)
    print(core_diff[key].max(axis=0))



```

%% Output

    outer it. 1
    1    0.053831
    2    0.012283
    3    0.003934
    4    0.005321
    5    0.002108
    dtype: float64
    outer it. 2
    1    0.030138
    2    0.008530
    3    0.007224
    4    0.006336
    5    0.001948
    dtype: float64
    outer it. 3
    1    0.007677
    2    0.003377
    3    0.001481
    4    0.001714
    5    0.002452
    dtype: float64
    outer it. 4
    1    0.001877
    2    0.001736
    3    0.001730
    4    0.001680
    5    0.002587
    dtype: float64
    outer it. 5
    1    0.001786
    2    0.002303
    3    0.002229
    4    0.002622
    5    0.002577
    dtype: float64
    outer it. 6
    1    0.001321
    2    0.002441
    3    0.001656
    4    0.000993
    5    0.003021
    dtype: float64

%% Cell type:markdown id: tags:

### Zone-average: Determine maximum differences from one inner iteration to the next

%% Cell type:code id: tags:

``` python
zone_av_dens = {}
for key, file_list in zone_f71_list.items():
    for file in sorted(file_list):
        df = get_densities_from_f71(file)
        dir = file.split("/")[4]
        subdir = file.split("/")[5]
        zone = file.split("/")[6]
        it_outer = re.search(r"it-(?P<it>\d+)",dir).group("it")
        it_inner = subdir[-1]
        Z = re.search(re.compile(r"Z(?P<Z>\d+)_R(?P<R>\d+)"),zone).group("Z")
        R = re.search(re.compile(r"Z(?P<Z>\d+)_R(?P<R>\d+)"),zone).group("R")
        Z = int(Z)
        R = int(R)

        if (R,Z) not in zone_av_dens.keys():
            zone_av_dens[(R,Z)] = {}
        if key not in zone_av_dens[(R,Z)].keys():
            zone_av_dens[(R,Z)][key] = []


        if type(zone_av_dens[(R,Z)][key]) is list:
            zone_av_dens[(R,Z)][key] = df
        else:
            zone_av_dens[(R,Z)][key] = pd.concat([zone_av_dens[(R,Z)][key],df],axis=1)


```

%% Cell type:code id: tags:

``` python
# update column header to display number of inner iteration
for (R,Z), data in zone_av_dens.items():
    for key, df in data.items():
        df.columns = [x for x in range(1, len(df.columns)+1)]
```

%% Cell type:code id: tags:

``` python
# difference for last iteration
zone_av_diffs = {}
for key in zone_f71_list.keys():
    zone_av_diffs[key] = {}

for (R,Z), dfs in zone_av_dens.items():
    for key, df in dfs.items():
        if (R,Z) not in zone_av_diffs:
            zone_av_diffs[key][R,Z] = []
        for nuc in acts+fps:
            zone_av_diffs[key][R,Z].append(df.loc[nuc].values[-1]/df.loc[nuc].values[-2]-1)

for key, data in zone_av_diffs.items():
    df = pd.DataFrame(data)
    df.index = acts+fps
    df.to_csv(f'core1_{key}_zonewise_dens_diff.csv')
```

%% Cell type:code id: tags:

``` python
# Difference for all iterations
zone_diff = {}
for key in zone_f71_list.keys():
    zone_diff[key] = {}
    for nuc in acts+fps:
        zone_diff[key][nuc] = {}
        for it_inner in range(1,n_inner_iterations):
            zone_diff[key][nuc][it_inner] = []

for (R,Z), dfs in zone_av_dens.items():
    for key, df in dfs.items():
        for it_inner in range(1,n_inner_iterations):
            for nuc in acts+fps:
                zone_diff[key][nuc][it_inner].append(abs(df.loc[nuc].values[it_inner]/df.loc[nuc].values[it_inner-1]-1))
            # print(R, Z, key, it_inner, len(zone_diff[key][nuc][it_inner]))

for key in zone_diff:
    max_data = {}
    for nuc, data in zone_diff[key].items():
        max_data[nuc] = []
        for it_inner, d in data.items():
            max_data[nuc].append(max(d))
    df_diff = pd.DataFrame.from_dict(max_data, orient='index', columns=[x for x in range(1,n_inner_iterations)])
    # print(df_diff.max(axis=0))


```

%% Cell type:markdown id: tags:

### Plot maximum density difference compared between core-average and zone-wise

%% Cell type:code id: tags:

``` python
matplotlib.rcParams['font.size'] = 12.0
matplotlib.rcParams['font.family'] = 'serif'

fig, ax1 = plt.subplots(1, sharex=True, figsize=(6,5))

ax1.set_xlim(1.5,n_inner_iterations+0.5)
ax1.set_ylim(0,0.07)
ax1.set_xlabel(f'Inner iteration', fontweight="bold")
ax1.set_ylabel('Maximum difference', fontweight="bold")
ax1.ticklabel_format(axis='y', style='sci', scilimits=(0,0))
# ax1.set_title(f"{nuc.capitalize()}, Z={Z_target+1}", fontweight="bold")

ax1.yaxis.set_major_formatter(mtick.PercentFormatter(1.0))
ax1.xaxis.set_major_locator(mtick.MultipleLocator(1))
ax1.yaxis.set_minor_locator(mtick.MultipleLocator(0.005))

colors = ["black", "blue", "red", "green", "purple", "green", "gray"]
markers = ["o", "d", "v", "^"]

ax1.axhline(y=0.005, color='black', linestyle='dotted', linewidth=1)

cnt = 0
for key in zone_f71_list.keys():

    if "1" not in key and "3" not in key and "6" not in key:
        continue

    ax1.plot([x for x in range(2,len(core_diff[key].max(axis=0).values)+2)], core_diff[key].max(axis=0).values, \
            color=colors[cnt], \
            linestyle="dashed", linewidth=1, marker="o", markersize=5,\
            label=f"core, {key}")

    max_data = {}
    for nuc, data in zone_diff[key].items():
        max_data[nuc] = []
        for it_inner, d in data.items():
            max_data[nuc].append(max(d))
    df_diff = pd.DataFrame.from_dict(max_data, orient='index', columns=[x for x in range(1,n_inner_iterations)])
    print(df_diff.max(axis=0).values)
    ax1.plot([x for x in range(2,len(df_diff.max(axis=0).values)+2)], df_diff.max(axis=0).values, \
            color=colors[cnt], \
            linestyle="solid", linewidth=1, marker="v", markersize=6,\
            label=f"zones, {key}")
    cnt += 1

ax1.legend(ncol=1, shadow=True, fancybox=True, handlelength=2.0, handletextpad=0.3, loc='best', fontsize=11)

plt.savefig("core1_dens_max_diff.pdf", format='pdf', bbox_inches='tight', transparent=False)
plt.show()
```

%% Output

    [0.06021333 0.0145599  0.00564005 0.01148456 0.00602533]
    [0.00887047 0.00395723 0.00870283 0.00552115 0.00436156]
    [0.00457929 0.00431618 0.0055584  0.00371138 0.00478634]

+1 −0
Original line number Diff line number Diff line
%% Cell type:markdown id: tags:

# Full core power and flux profile

%% Cell type:code id: tags:

``` python
import os
import sys
import json
import numpy as np
# Download repository from https://code.ornl.gov/scale/code/slice
sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/scripts'))
import matplotlib
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
from collections import OrderedDict

%load_ext autoreload
%autoreload 2

%matplotlib inline
%load_ext wurlitzer
```

%% Cell type:code id: tags:

``` python
power_files = {}
power_files["fresh"]       = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-0.power_normalized.json'
power_files["outer it. 1"] = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-1.power_normalized.json'
power_files["outer it. 2"] = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-2.power_normalized.json'
power_files["outer it. 3"] = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-3.power_normalized.json'
power_files["outer it. 4"] = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-4.power_normalized.json'
power_files["outer it. 5"] = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-5.power_normalized.json'
power_files["outer it. 6"] = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-6.power_normalized.json'

flux_files = {}
flux_files["fresh"]        = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-0.flux_normalized.json'
flux_files["outer it. 1"]  = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-1.flux_normalized.json'
flux_files["outer it. 2"]  = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-2.flux_normalized.json'
flux_files["outer it. 3"]  = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-3.flux_normalized.json'
flux_files["outer it. 4"]  = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-4.flux_normalized.json'
flux_files["outer it. 5"]  = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-5.flux_normalized.json'
flux_files["outer it. 6"]  = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-6.flux_normalized.json'

for file in power_files.values():
 assert os.path.isfile(file), file
for file in flux_files.values():
 assert os.path.isfile(file), file

radial_bounds = [0, 30, 60, 90, 120]
axial_bounds = [x for x in range(0, 310+31, 31)]
```

%% Cell type:code id: tags:

``` python
power_axial = OrderedDict()
flux_axial = OrderedDict()
power_radial = OrderedDict()
flux_radial = OrderedDict()
for key, file in power_files.items():
    with open(file, "r", encoding="utf-8") as f:
        data = json.load(f)
    axial = []
    for p in (data["axial_profile"]):
        axial.append(p)
    axial.append(axial[-1])
    power_axial[key] = axial
    radial = []
    for pow in data["radial_profile"]:
        rad_power = []
        for p in pow:
            rad_power.append(p)
        rad_power.append(rad_power[-1])
        radial.append(rad_power)
    power_radial[key] = radial
for key, file in flux_files.items():
    with open(file, "r", encoding="utf-8") as f:
        data = json.load(f)
    axial = []
    for p in (data["axial_profile"]):
        axial.append(p)
    axial.append(axial[-1])
    flux_axial[key] = axial
    radial = []
    for pow in data["radial_profile"]:
        rad_power = []
        for p in pow:
            rad_power.append(p)
        rad_power.append(rad_power[-1])
        radial.append(rad_power)
    flux_radial[key] = radial
```

%% Cell type:code id: tags:

``` python
matplotlib.rcParams['font.size'] = 14.0
matplotlib.rcParams['font.family'] = 'serif'

fig, ax = plt.subplots(1, 2, sharey=True, figsize=(10,6))


ax[0].set_xlim(0, 1.5)
ax[1].set_xlim(-0.4, 0.4)
ax[0].set_ylim(min(axial_bounds)-10, max(axial_bounds)+10)
ax[1].set_ylim(min(axial_bounds)-10, max(axial_bounds)+10)
ax[0].set_ylabel('Axial height [cm]', fontweight="bold")
ax[0].set_xlabel('Normalized power', fontweight="bold")
ax[1].set_xlabel('Difference', fontweight="bold")
ax[1].xaxis.set_major_formatter(mtick.PercentFormatter(1.0))

ax[0].xaxis.set_major_locator(mtick.MultipleLocator(0.5))
ax[0].xaxis.set_minor_locator(mtick.MultipleLocator(0.1))
ax[1].xaxis.set_major_locator(mtick.MultipleLocator(0.2))
ax[1].xaxis.set_minor_locator(mtick.MultipleLocator(0.05))
ax[0].yaxis.set_major_locator(mtick.MultipleLocator(50))
ax[0].yaxis.set_minor_locator(mtick.MultipleLocator(10))

colors = ["black", "blue", "red", "gold", "purple", "green", "gray", "cyan", "pink"]

cnt = 0
for key, p in power_axial.items():
    ax[0].step(p, [x for x in axial_bounds], where='pre',\
             linestyle="solid", linewidth=1, color=colors[cnt], label=f"{key}")
    cnt += 1

diffs = OrderedDict()
keys = list(power_axial.keys())
for i, key in enumerate(keys):
    if i == 0:
        continue
    diffs[key] = np.array(power_axial[keys[i]]) - np.array(power_axial[keys[i-1]])

cnt = 1
for key, p in diffs.items():
    rms = np.sum([v**2 for v in p])/len(p)
    ax[1].step(p, [x for x in axial_bounds], where='pre',\
             linestyle="-.", linewidth=1, color=colors[cnt], \
             # label=f"{key}, rms={100*rms:.4f}%")
             label=f"rms={100*rms:.3f}%")
    cnt += 1

for x in ax:
    x.legend(ncol=1, shadow=True, fancybox=True, handlelength=1.0, handletextpad=0.3, loc='best', fontsize=10)

plt.savefig(f"core1_axial_power_profile.pdf", format='pdf', bbox_inches='tight', transparent=False)
plt.show()
```

%% Output


%% Cell type:code id: tags:

``` python
matplotlib.rcParams['font.size'] = 14.0
matplotlib.rcParams['font.family'] = 'serif'

fig, ax = plt.subplots(1, 2, sharey=True, figsize=(10,6))


ax[0].set_xlim(0, 1.6)
ax[1].set_xlim(-0.4, 0.4)
ax[0].set_ylim(min(axial_bounds)-10, max(axial_bounds)+10)
ax[1].set_ylim(min(axial_bounds)-10, max(axial_bounds)+10)
ax[0].set_ylabel('Axial height [cm]', fontweight="bold")
ax[0].set_xlabel('Normalized flux', fontweight="bold")
ax[1].set_xlabel('Difference', fontweight="bold")
ax[1].xaxis.set_major_formatter(mtick.PercentFormatter(1.0))

ax[0].xaxis.set_major_locator(mtick.MultipleLocator(0.5))
ax[0].xaxis.set_minor_locator(mtick.MultipleLocator(0.1))
ax[1].xaxis.set_major_locator(mtick.MultipleLocator(0.2))
ax[1].xaxis.set_minor_locator(mtick.MultipleLocator(0.05))
ax[0].yaxis.set_major_locator(mtick.MultipleLocator(50))
ax[0].yaxis.set_minor_locator(mtick.MultipleLocator(10))

colors = ["black", "blue", "red", "gold", "purple", "green", "gray", "cyan", "pink"]

cnt = 0
for key, p in flux_axial.items():
    ax[0].step(p, [x for x in axial_bounds], where='pre',\
             linestyle="solid", linewidth=1, color=colors[cnt], label=f"{key}")
    cnt += 1

diffs = OrderedDict()
keys = list(flux_axial.keys())
for i, key in enumerate(keys):
    if i == 0:
        continue
    diffs[key] = np.array(flux_axial[key]) - np.array(flux_axial[keys[i-1]])


cnt = 1
for key, p in diffs.items():
    rms = np.sum([v**2 for v in p])/len(p)
    ax[1].step(p, [x for x in axial_bounds], where='pre',\
             linestyle="-.", linewidth=1, color=colors[cnt], \
             # label=f"{key}, rms={100*rms:.4f}%")
             label=f"rms={100*rms:.4f}%")
    cnt += 1

for x in ax:
    x.legend(ncol=1, shadow=True, fancybox=True, handlelength=1.0, handletextpad=0.3, loc='best', fontsize=10)

plt.savefig(f"core1_axial_flux_profile.pdf", format='pdf', bbox_inches='tight', transparent=False)
plt.show()
```

%% Output


%% Cell type:code id: tags:

``` python
```
+1 −0
Original line number Diff line number Diff line
%% Cell type:markdown id: tags:

# Full core power and flux profile - comparison with KP benchmark model

%% Cell type:code id: tags:

``` python
import os
import sys
import json
import numpy as np
# Download repository from https://code.ornl.gov/scale/code/slice
sys.path.insert(0, os.path.abspath('~/slice-method-for-pbr-eq-core-generation/scripts'))
import matplotlib
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
from collections import OrderedDict

%load_ext autoreload
%autoreload 2

%matplotlib inline
%load_ext wurlitzer
```

%% Cell type:code id: tags:

``` python
power_files = {}
power_files["Benchmark"]   = '../../full_core_kp_inventory/core-dodec-array.t6-depl-shift.v7.1-252.power_normalized.json'
power_files["SLICE"]       = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-5.power_normalized.json'
power_files["SLICE (95% $T_{pass}$)"]       = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-6.res-5pct.power_normalized.json'
power_files["SLICE (90% $T_{pass}$)"]       = '../../tmp/eq_core_generation_r4z10_new/core-array.csas6-shift.v7.1-252.oi-6.res-10pct.power_normalized.json'


for file in power_files.values():
 assert os.path.isfile(file), file

core_height = 310
radial_bounds = [0, 30, 60, 90, 120]
axial_bounds = [x for x in range(0, 310+31, 31)]
```

%% Cell type:code id: tags:

``` python
power_axial = OrderedDict()
power_radial = OrderedDict()
for key, file in power_files.items():
    with open(file, "r", encoding="utf-8") as f:
        data = json.load(f)
    axial = []
    for p in (data["axial_profile"]):
        axial.append(p)
    axial.append(axial[-1])
    power_axial[key] = axial
    radial = []
    for pow in data["radial_profile"]:
        rad_power = []
        for p in pow:
            rad_power.append(p)
        rad_power.append(rad_power[-1])
        radial.append(rad_power)
    power_radial[key] = radial
```

%% Cell type:code id: tags:

``` python
matplotlib.rcParams['font.size'] = 14.0
matplotlib.rcParams['font.family'] = 'serif'

fig, ax = plt.subplots(1, 2, sharey=True, figsize=(10,6))


ax[0].set_xlim(0, 1.5)
ax[1].set_xlim(-0.1, 0.1)
ax[0].set_ylim(-10, core_height+10)
ax[1].set_ylim(-10, core_height+10)
ax[0].set_ylabel('Axial height [cm]', fontweight="bold")
ax[0].set_xlabel('Normalized power', fontweight="bold")
ax[1].set_xlabel('Difference', fontweight="bold")
ax[1].xaxis.set_major_formatter(mtick.PercentFormatter(1.0))

ax[0].xaxis.set_major_locator(mtick.MultipleLocator(0.5))
ax[0].xaxis.set_minor_locator(mtick.MultipleLocator(0.1))
# ax[1].xaxis.set_major_locator(mtick.MultipleLocator(0.02))
ax[1].xaxis.set_minor_locator(mtick.MultipleLocator(0.01))
ax[0].yaxis.set_major_locator(mtick.MultipleLocator(50))
ax[0].yaxis.set_minor_locator(mtick.MultipleLocator(10))

colors = ["black", "blue", "red", "gold", "green", "gray", "cyan", "pink"]

cnt = 0
for key, p in power_axial.items():
    ax[0].step(p, [x for x in axial_bounds], where='pre',\
             linestyle="solid", linewidth=1, color=colors[cnt], label=f"{key}")
    cnt += 1

diffs = OrderedDict()
keys = list(power_axial.keys())
for i, key in enumerate(keys):
    if i == 0:
        continue
    diffs[key] = np.array(power_axial[keys[i]]) - np.array(power_axial[keys[0]])

cnt = 1
for key, p in diffs.items():
    rms = np.sum([v**2 for v in p])/len(p)
    print(f"Min: {min(p)}")
    print(f"Max: {max(p)}")
    ax[1].step(p, [x for x in axial_bounds], where='pre',\
             linestyle="-.", linewidth=1, color=colors[cnt], \
             # label=f"{key}, rms={100*rms:.4f}%")
             label=f"rms={100*rms:.2f}%")
    cnt += 1

for x in ax:
    x.legend(ncol=1, shadow=True, fancybox=True, handlelength=1.0, handletextpad=0.3, loc='best', fontsize=10)

plt.savefig(f"axial_power_profile_slice_vs_benchmark.pdf", format='pdf', bbox_inches='tight', transparent=False)
plt.show()
```

%% Output

    Min: -0.06805000560370256
    Max: 0.08895411564163425
    Min: -0.049521229725611904
    Max: 0.07429574097809777
    Min: -0.03856242860987191
    Max: 0.05007867676043909

Loading