Added new stress test
This commit is contained in:
parent
6bc46284d4
commit
ff50c1f1d2
7 changed files with 1204 additions and 1 deletions
123
run_all.sh
Executable file
123
run_all.sh
Executable file
|
|
@ -0,0 +1,123 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
find . -name testing.out -delete
|
||||||
|
find . -name build_testing.out -delete
|
||||||
|
find . -name tallies_testing.out -delete
|
||||||
|
|
||||||
|
# conda activate openmc-env
|
||||||
|
|
||||||
|
BACK_DIR=${PWD}
|
||||||
|
|
||||||
|
OPENMC_BIN=${CONDA_PREFIX}/bin/openmc
|
||||||
|
PYTHON_BIN=${CONDA_PREFIX}/bin/python
|
||||||
|
OPENMC_CROSS_SECTIONS=/opt/xdata/endfb-vii.1-hdf5/cross_sections.xml
|
||||||
|
export OPENMC_CROSS_SECTIONS
|
||||||
|
|
||||||
|
for dir in AP1000/*/
|
||||||
|
do
|
||||||
|
cd "$dir"
|
||||||
|
${PYTHON_BIN} *.py | tee testing.out
|
||||||
|
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
done
|
||||||
|
|
||||||
|
for dir in ARC700/*/
|
||||||
|
do
|
||||||
|
cd "$dir"
|
||||||
|
${OPENMC_BIN} problem | tee testing.out
|
||||||
|
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
done
|
||||||
|
|
||||||
|
cd BEAVRS
|
||||||
|
./make_beavrs.py --optimal
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd BWR
|
||||||
|
rm -f *.xml *.h5
|
||||||
|
jupyter nbconvert --execute BWR.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd Depletion
|
||||||
|
rm -f *.h5 [d-z]*.xml tallies.out
|
||||||
|
jupyter nbconvert --execute depletion.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd examples/hexagon
|
||||||
|
jupyter nbconvert --execute hexagonal-lattice.ipynb --inplace | tee testing.out
|
||||||
|
cd ../post_process
|
||||||
|
jupyter nbconvert --execute post-processing.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd RBMK
|
||||||
|
jupyter nbconvert --execute RBMK.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
#python3 Rep_Na_3_55.py
|
||||||
|
|
||||||
|
cd SFR
|
||||||
|
jupyter nbconvert --execute SFR.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd stress-test/benchmark-1
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
cd ../benchmark-2/case1_1
|
||||||
|
|
||||||
|
cd ../case1_1
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
cd ../case1_2
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
cd ../case1_3
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
cd ../case2_1
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
cd ../case2_2
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
cd ../case2_3
|
||||||
|
${OPENMC_BIN} | tee testing.out
|
||||||
|
|
||||||
|
cd ../../lattice-computations
|
||||||
|
jupyter nbconvert --execute BEAVRS.ipynb --inplace | tee testing.out
|
||||||
|
|
||||||
|
cd ../mc-performance
|
||||||
|
${PYTHON_BIN} build.py | tee build_testing.out
|
||||||
|
${PYTHON_BIN} generate_tallies.py | tee tallies_testing.out
|
||||||
|
${OPENMC_BIN}
|
||||||
|
|
||||||
|
#### TO DO: Add stress-test testing
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd TRIGA
|
||||||
|
jupyter nbconvert --execute TRIGA.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd VHTR
|
||||||
|
jupyter nbconvert --execute VHTR.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
cd VVER
|
||||||
|
jupyter nbconvert --execute VVER.ipynb --inplace | tee testing.out
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
for dir in VVER/*/
|
||||||
|
do
|
||||||
|
cd "$dir"
|
||||||
|
${OPENMC_BIN} problem | tee testing.out
|
||||||
|
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
done
|
||||||
|
|
||||||
|
cd WBN1
|
||||||
|
for file in *.ipynb
|
||||||
|
do
|
||||||
|
filename=$(basename -- "$file")
|
||||||
|
filename="${filename%.*}"
|
||||||
|
jupyter nbconvert --execute ${file} --inplace | tee ${filename}_testing.out
|
||||||
|
done
|
||||||
|
cd ${BACK_DIR}
|
||||||
|
|
||||||
|
|
||||||
|
printf "ALL TESTS COMPLETED SUCCESSFULLY!\n"
|
||||||
|
|
||||||
2
setup.sh
2
setup.sh
|
|
@ -86,7 +86,7 @@ openmc -g -n 1000000 -s 32 -t -e problem
|
||||||
# tar -xzvf hdf5-1.8.13.tar.gz
|
# tar -xzvf hdf5-1.8.13.tar.gz
|
||||||
# cd hdf5-1.8.13
|
# cd hdf5-1.8.13
|
||||||
# mkdir build && cd build
|
# mkdir build && cd build
|
||||||
# ../configure --enable-shared \
|
# CC=${MPI_ROOT}/bin/mpicc ../configure --enable-shared \
|
||||||
# --enable-parallel \
|
# --enable-parallel \
|
||||||
# --prefix=${HDF5_DIR}
|
# --prefix=${HDF5_DIR}
|
||||||
# ${MAKE} -j16
|
# ${MAKE} -j16
|
||||||
|
|
|
||||||
205
stress-test/benchmarking/benchmark.py
Normal file
205
stress-test/benchmarking/benchmark.py
Normal file
|
|
@ -0,0 +1,205 @@
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import time
|
||||||
|
|
||||||
|
import openmc
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('-l', '--benchmarks', type=Path,
|
||||||
|
default=Path('benchmarks/lists/pst-short'),
|
||||||
|
help='List of benchmarks to run.')
|
||||||
|
parser.add_argument('-c', '--code', choices=['openmc', 'mcnp'],
|
||||||
|
default='openmc',
|
||||||
|
help='Code used to run benchmarks.')
|
||||||
|
parser.add_argument('-x', '--cross-sections', type=str,
|
||||||
|
default=os.getenv('OPENMC_CROSS_SECTIONS'),
|
||||||
|
help='OpenMC cross sections XML file.')
|
||||||
|
parser.add_argument('-s', '--suffix', type=str, default='80c',
|
||||||
|
help='MCNP cross section suffix')
|
||||||
|
parser.add_argument('--suffix-thermal', type=str, default='20t',
|
||||||
|
help='MCNP thermal scattering suffix')
|
||||||
|
parser.add_argument('-p', '--particles', type=int, default=10000,
|
||||||
|
help='Number of source particles.')
|
||||||
|
parser.add_argument('-b', '--batches', type=int, default=150,
|
||||||
|
help='Number of batches.')
|
||||||
|
parser.add_argument('-i', '--inactive', type=int, default=50,
|
||||||
|
help='Number of inactive batches.')
|
||||||
|
parser.add_argument('-m', '--max-batches', type=int, default=10000,
|
||||||
|
help='Maximum number of batches.')
|
||||||
|
parser.add_argument('--threads', type=int, default=None,
|
||||||
|
help='Number of OpenMP threads')
|
||||||
|
parser.add_argument('-t', '--threshold', type=float, default=0.0001,
|
||||||
|
help='Value of the standard deviation trigger on eigenvalue.')
|
||||||
|
parser.add_argument('--mpi-args', default="",
|
||||||
|
help="MPI execute command and any additional MPI arguments")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Create timestamp
|
||||||
|
timestamp = time.strftime("%Y-%m-%d-%H%M%S")
|
||||||
|
|
||||||
|
# Check that executable exists
|
||||||
|
executable = 'mcnp6' if args.code == 'mcnp' else 'openmc'
|
||||||
|
if not shutil.which(executable, os.X_OK):
|
||||||
|
msg = f'Unable to locate executable {executable} in path.'
|
||||||
|
raise IOError(msg)
|
||||||
|
mpi_args = args.mpi_args.split()
|
||||||
|
|
||||||
|
# Create directory and set filename for results
|
||||||
|
results_dir = Path('results')
|
||||||
|
results_dir.mkdir(exist_ok=True)
|
||||||
|
outfile = results_dir / f'{timestamp}.csv'
|
||||||
|
|
||||||
|
# Get a copy of the benchmarks repository
|
||||||
|
if not Path('benchmarks').is_dir():
|
||||||
|
repo = 'https://github.com/mit-crpg/benchmarks.git'
|
||||||
|
subprocess.run(['git', 'clone', repo], check=True)
|
||||||
|
|
||||||
|
# Get the list of benchmarks to run
|
||||||
|
if not args.benchmarks.is_file():
|
||||||
|
msg = f'Unable to locate benchmark list {args.benchmarks}.'
|
||||||
|
raise IOError(msg)
|
||||||
|
with open(args.benchmarks) as f:
|
||||||
|
benchmarks = [Path(line) for line in f.read().split()]
|
||||||
|
|
||||||
|
# Set cross sections
|
||||||
|
if args.cross_sections is not None:
|
||||||
|
os.environ["OPENMC_CROSS_SECTIONS"] = args.cross_sections
|
||||||
|
|
||||||
|
# Prepare and run benchmarks
|
||||||
|
for i, benchmark in enumerate(benchmarks):
|
||||||
|
print(f"{i + 1} {benchmark} ", end="", flush=True)
|
||||||
|
|
||||||
|
path = 'benchmarks' / benchmark
|
||||||
|
|
||||||
|
if args.code == 'openmc':
|
||||||
|
openmc.reset_auto_ids()
|
||||||
|
|
||||||
|
# Remove old statepoint files
|
||||||
|
for f in path.glob('statepoint.*.h5'):
|
||||||
|
os.remove(f)
|
||||||
|
|
||||||
|
# Modify settings
|
||||||
|
settings = openmc.Settings.from_xml(path / 'settings.xml')
|
||||||
|
settings.particles = args.particles
|
||||||
|
settings.inactive = args.inactive
|
||||||
|
settings.batches = args.batches
|
||||||
|
settings.keff_trigger = {'type': 'std_dev',
|
||||||
|
'threshold': args.threshold}
|
||||||
|
settings.trigger_active = True
|
||||||
|
settings.trigger_max_batches = args.max_batches
|
||||||
|
settings.output = {'tallies': False}
|
||||||
|
settings.export_to_xml(path)
|
||||||
|
|
||||||
|
# Re-generate materials if Python script is present
|
||||||
|
genmat_script = path / "generate_materials.py"
|
||||||
|
if genmat_script.is_file():
|
||||||
|
subprocess.run(["python", "generate_materials.py"], cwd=path)
|
||||||
|
|
||||||
|
# Run benchmark
|
||||||
|
arg_list = mpi_args + ['openmc']
|
||||||
|
if args.threads is not None:
|
||||||
|
arg_list.extend(['-s', f'{args.threads}'])
|
||||||
|
proc = subprocess.run(
|
||||||
|
arg_list,
|
||||||
|
cwd=path,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT,
|
||||||
|
universal_newlines=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Determine last statepoint
|
||||||
|
t_last = 0
|
||||||
|
last_statepoint = None
|
||||||
|
for sp in path.glob('statepoint.*.h5'):
|
||||||
|
mtime = sp.stat().st_mtime
|
||||||
|
if mtime >= t_last:
|
||||||
|
t_last = mtime
|
||||||
|
last_statepoint = sp
|
||||||
|
|
||||||
|
# Read k-effective mean and standard deviation from statepoint
|
||||||
|
if last_statepoint is not None:
|
||||||
|
with openmc.StatePoint(last_statepoint) as sp:
|
||||||
|
mean = sp.keff.nominal_value
|
||||||
|
stdev = sp.keff.std_dev
|
||||||
|
|
||||||
|
else:
|
||||||
|
# Read input file
|
||||||
|
with open(path / 'input', 'r') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
|
||||||
|
# Update criticality source card
|
||||||
|
line = f'kcode {args.particles} 1 {args.inactive} {args.batches}\n'
|
||||||
|
for i in range(len(lines)):
|
||||||
|
if lines[i].strip().startswith('kcode'):
|
||||||
|
lines[i] = line
|
||||||
|
break
|
||||||
|
|
||||||
|
# Update cross section suffix
|
||||||
|
match = '(7[0-4]c)|(8[0-6]c)'
|
||||||
|
if not re.match(match, args.suffix):
|
||||||
|
msg = f'Unsupported cross section suffix {args.suffix}.'
|
||||||
|
raise ValueError(msg)
|
||||||
|
lines = [re.sub(match, args.suffix, x) for x in lines]
|
||||||
|
|
||||||
|
# Update thermal cross section suffix
|
||||||
|
match = r'\.[1-9][0-9]t'
|
||||||
|
lines = [re.sub(match, f'.{args.suffix_thermal}', x) for x in lines]
|
||||||
|
|
||||||
|
# Write new input file
|
||||||
|
with open(path / 'input', 'w') as f:
|
||||||
|
f.write(''.join(lines))
|
||||||
|
|
||||||
|
# Remove old MCNP output files
|
||||||
|
for f in ('outp', 'runtpe', 'srctp'):
|
||||||
|
try:
|
||||||
|
os.remove(path / f)
|
||||||
|
except OSError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Run benchmark and capture and print output
|
||||||
|
arg_list = mpi_args + [executable, 'inp=input']
|
||||||
|
if args.threads is not None:
|
||||||
|
arg_list.extend(['tasks', f'{args.threads}'])
|
||||||
|
proc = subprocess.run(
|
||||||
|
arg_list,
|
||||||
|
cwd=path,
|
||||||
|
stdout=subprocess.PIPE,
|
||||||
|
stderr=subprocess.STDOUT,
|
||||||
|
universal_newlines=True
|
||||||
|
)
|
||||||
|
|
||||||
|
# Read k-effective mean and standard deviation from output
|
||||||
|
with open(path / 'outp', 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
if line.strip().startswith('col/abs/trk len'):
|
||||||
|
words = line.split()
|
||||||
|
mean = float(words[2])
|
||||||
|
stdev = float(words[3])
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
mean = stdev = ""
|
||||||
|
|
||||||
|
# Write output to file
|
||||||
|
with open(path / f"output_{timestamp}", "w") as fh:
|
||||||
|
fh.write(proc.stdout)
|
||||||
|
|
||||||
|
if proc.returncode != 0:
|
||||||
|
mean = stdev = ""
|
||||||
|
print()
|
||||||
|
else:
|
||||||
|
# Display k-effective
|
||||||
|
print(f"{mean:.5f} ± {stdev:.5f}" if mean else "")
|
||||||
|
|
||||||
|
# Write results
|
||||||
|
words = str(benchmark).split('/')
|
||||||
|
name = words[1]
|
||||||
|
case = '/' + words[3] if len(words) > 3 else ''
|
||||||
|
line = f'{name}{case},{mean},{stdev}\n'
|
||||||
|
with open(outfile, 'a') as f:
|
||||||
|
f.write(line)
|
||||||
194
stress-test/benchmarking/plot.py
Normal file
194
stress-test/benchmarking/plot.py
Normal file
|
|
@ -0,0 +1,194 @@
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
from fnmatch import fnmatch
|
||||||
|
from math import sqrt
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
from matplotlib.patches import Polygon
|
||||||
|
import numpy as np
|
||||||
|
|
||||||
|
from .results import get_result_dataframe, get_icsbep_dataframe, abbreviated_name
|
||||||
|
|
||||||
|
|
||||||
|
def plot(files, labels=None, plot_type='keff', match=None, show_mean=True,
|
||||||
|
show_shaded=True, show_uncertainties=True):
|
||||||
|
"""For all benchmark cases, produce a plot comparing the k-effective mean
|
||||||
|
from the calculation to the experimental value along with uncertainties.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
files : iterable of str
|
||||||
|
Name of a results file produced by the benchmarking script.
|
||||||
|
labels: iterable of str
|
||||||
|
Labels for each dataset to use in legend
|
||||||
|
plot_type : {'keff', 'diff'}
|
||||||
|
Type of plot to produce. A 'keff' plot shows the ratio of the
|
||||||
|
calculation k-effective mean to the experimental value (C/E). A 'diff'
|
||||||
|
plot shows the difference between C/E values for different
|
||||||
|
calculations. Default is 'keff'.
|
||||||
|
match : str
|
||||||
|
Pattern to match benchmark names to
|
||||||
|
show_mean : bool
|
||||||
|
Whether to show bar/line indicating mean value
|
||||||
|
show_shaded : bool
|
||||||
|
Whether to show shaded region indicating uncertainty of mean
|
||||||
|
show_uncertainties : bool
|
||||||
|
Whether to show uncertainties for individual cases
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
matplotlib.axes.Axes
|
||||||
|
A matplotlib.axes.Axes object
|
||||||
|
|
||||||
|
"""
|
||||||
|
if labels is None:
|
||||||
|
labels = [Path(f).name for f in files]
|
||||||
|
|
||||||
|
# Read data from spreadsheets
|
||||||
|
dataframes = {}
|
||||||
|
for csvfile, label in zip(files, labels):
|
||||||
|
dataframes[label] = get_result_dataframe(csvfile).dropna()
|
||||||
|
|
||||||
|
# Get model keff and uncertainty from ICSBEP
|
||||||
|
icsbep = get_icsbep_dataframe()
|
||||||
|
|
||||||
|
# Determine common benchmarks
|
||||||
|
base = labels[0]
|
||||||
|
index = dataframes[base].index
|
||||||
|
for df in dataframes.values():
|
||||||
|
index = index.intersection(df.index)
|
||||||
|
|
||||||
|
# Applying matching as needed
|
||||||
|
if match is not None:
|
||||||
|
cond = index.map(lambda x: fnmatch(x, match))
|
||||||
|
index = index[cond]
|
||||||
|
|
||||||
|
# Setup x values (integers) and corresponding tick labels
|
||||||
|
n = index.size
|
||||||
|
x = np.arange(1, n + 1)
|
||||||
|
xticklabels = index.map(abbreviated_name)
|
||||||
|
|
||||||
|
fig, ax = plt.subplots(figsize=(17, 6))
|
||||||
|
|
||||||
|
if plot_type == 'diff':
|
||||||
|
# Check that two results files are specified
|
||||||
|
if len(files) < 2:
|
||||||
|
raise ValueError('Must provide two or more files to create a "diff" plot')
|
||||||
|
|
||||||
|
kwargs = {'mec': 'black', 'mew': 0.15, 'fmt': 'o'}
|
||||||
|
|
||||||
|
keff0 = dataframes[base]['keff'].loc[index]
|
||||||
|
stdev0 = 1.96*dataframes[base]['stdev'].loc[index]
|
||||||
|
for i, label in enumerate(labels[1:]):
|
||||||
|
df = dataframes[label]
|
||||||
|
keff_i = df['keff'].loc[index]
|
||||||
|
stdev_i = 1.96*df['stdev'].loc[index]
|
||||||
|
|
||||||
|
diff = (keff_i - keff0) * 1e5
|
||||||
|
err = np.sqrt(stdev_i**2 + stdev0**2) * 1e5
|
||||||
|
kwargs['label'] = labels[i + 1] + ' - ' + labels[0]
|
||||||
|
if show_uncertainties:
|
||||||
|
ax.errorbar(x, diff, yerr=err, color=f'C{i}', **kwargs)
|
||||||
|
else:
|
||||||
|
ax.plot(x, diff, color=f'C{i}', **kwargs)
|
||||||
|
|
||||||
|
# Plot mean difference
|
||||||
|
if show_mean:
|
||||||
|
mu = diff.mean()
|
||||||
|
if show_shaded:
|
||||||
|
sigma = diff.std() / sqrt(n)
|
||||||
|
verts = [(0, mu - sigma), (0, mu + sigma), (n+1, mu + sigma), (n+1, mu - sigma)]
|
||||||
|
poly = Polygon(verts, facecolor=f'C{i}', alpha=0.5)
|
||||||
|
ax.add_patch(poly)
|
||||||
|
else:
|
||||||
|
ax.plot([-1, n], [mu, mu], '-', color=f'C{i}', lw=1.5)
|
||||||
|
|
||||||
|
# Define y-axis label
|
||||||
|
ylabel = r'$\Delta k_\mathrm{eff}$ [pcm]'
|
||||||
|
|
||||||
|
else:
|
||||||
|
for i, (label, df) in enumerate(dataframes.items()):
|
||||||
|
# Calculate keff C/E and its standard deviation
|
||||||
|
coe = (df['keff'] / icsbep['keff']).loc[index]
|
||||||
|
stdev = 1.96 * df['stdev'].loc[index]
|
||||||
|
|
||||||
|
# Plot keff C/E
|
||||||
|
kwargs = {'color': f'C{i}', 'mec': 'black', 'mew': 0.15, 'label': label}
|
||||||
|
if show_uncertainties:
|
||||||
|
ax.errorbar(x, coe, yerr=stdev, fmt='o', **kwargs)
|
||||||
|
else:
|
||||||
|
ax.plot(x, coe, 'o', **kwargs)
|
||||||
|
|
||||||
|
# Plot mean C/E
|
||||||
|
if show_mean:
|
||||||
|
mu = coe.mean()
|
||||||
|
sigma = coe.std() / sqrt(n)
|
||||||
|
if show_shaded:
|
||||||
|
verts = [(0, mu - sigma), (0, mu + sigma), (n+1, mu + sigma), (n+1, mu - sigma)]
|
||||||
|
poly = Polygon(verts, facecolor=f'C{i}', alpha=0.5)
|
||||||
|
ax.add_patch(poly)
|
||||||
|
else:
|
||||||
|
ax.plot([-1, n], [mu, mu], '-', color=f'C{i}', lw=1.5)
|
||||||
|
|
||||||
|
# Show shaded region of benchmark model uncertainties
|
||||||
|
unc = icsbep['stdev'].loc[index]
|
||||||
|
vert = np.block([[x, x[::-1]], [1 + unc, 1 - unc[::-1]]]).T
|
||||||
|
poly = Polygon(vert, facecolor='gray', edgecolor=None, alpha=0.2)
|
||||||
|
ax.add_patch(poly)
|
||||||
|
|
||||||
|
# Define axes labels and title
|
||||||
|
ylabel = r'$k_\mathrm{eff}$ C/E'
|
||||||
|
|
||||||
|
# Configure plot
|
||||||
|
ax.set_axisbelow(True)
|
||||||
|
ax.set_xlim((0, n+1))
|
||||||
|
ax.set_xticks(x)
|
||||||
|
ax.set_xticklabels(xticklabels, rotation='vertical')
|
||||||
|
ax.tick_params(axis='x', which='major', labelsize=10)
|
||||||
|
ax.tick_params(axis='y', which='major', labelsize=14)
|
||||||
|
ax.set_xlabel('Benchmark case', fontsize=18)
|
||||||
|
ax.set_ylabel(ylabel, fontsize=18)
|
||||||
|
ax.grid(True, which='both', color='lightgray', ls='-', alpha=0.7)
|
||||||
|
ax.legend(numpoints=1)
|
||||||
|
return ax
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Produce plot of benchmark results"""
|
||||||
|
parser = ArgumentParser()
|
||||||
|
parser.add_argument('files', nargs='+', help='Result CSV files')
|
||||||
|
parser.add_argument('--labels', help='Comma-separated list of dataset labels')
|
||||||
|
parser.add_argument('--plot-type', choices=['keff', 'diff'], default='keff')
|
||||||
|
parser.add_argument('--match', help='Pattern to match benchmark names to')
|
||||||
|
parser.add_argument('--show-mean', action='store_true', help='Show line/bar indicating mean')
|
||||||
|
parser.add_argument('--no-show-mean', dest='show_mean', action='store_false',
|
||||||
|
help='Do not show line/bar indicating mean')
|
||||||
|
parser.add_argument('--show-uncertainties', action='store_true',
|
||||||
|
help='Show uncertainty bars on individual cases')
|
||||||
|
parser.add_argument('--no-show-uncertainties', dest='show_uncertainties', action='store_false',
|
||||||
|
help='Do not show uncertainty bars on individual cases')
|
||||||
|
parser.add_argument('--show-shaded', action='store_true',
|
||||||
|
help='Show shaded region indicating uncertainty of mean C/E')
|
||||||
|
parser.add_argument('--no-show-shaded', dest='show_shaded', action='store_false',
|
||||||
|
help='Do not show shaded region indicating uncertainty of mean C/E')
|
||||||
|
parser.add_argument('-o', '--output', help='Filename to save to')
|
||||||
|
parser.set_defaults(show_uncertainties=True, show_shaded=True, show_mean=True)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.labels is not None:
|
||||||
|
args.labels = args.labels.split(',')
|
||||||
|
|
||||||
|
ax = plot(
|
||||||
|
args.files,
|
||||||
|
labels=args.labels,
|
||||||
|
plot_type=args.plot_type,
|
||||||
|
match=args.match,
|
||||||
|
show_mean=args.show_mean,
|
||||||
|
show_shaded=args.show_shaded,
|
||||||
|
show_uncertainties=args.show_uncertainties,
|
||||||
|
)
|
||||||
|
if args.output is not None:
|
||||||
|
plt.savefig(args.output, bbox_inches='tight', transparent=True)
|
||||||
|
else:
|
||||||
|
plt.show()
|
||||||
119
stress-test/benchmarking/report.py
Normal file
119
stress-test/benchmarking/report.py
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
from fnmatch import fnmatch
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from openmc import __version__
|
||||||
|
|
||||||
|
from .results import get_result_dataframe, get_icsbep_dataframe
|
||||||
|
|
||||||
|
def write_document(result, output, match=None):
|
||||||
|
"""Write LaTeX document section with preamble, run info, and table
|
||||||
|
entries for all benchmark data comparing the calculated and
|
||||||
|
experimental values along with uncertainties.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
result : str
|
||||||
|
Name of a result csv file produced by the benchmarking script.
|
||||||
|
output : str
|
||||||
|
Name of the file to be written, ideally a .tex file
|
||||||
|
match : str
|
||||||
|
Pattern to match benchmark names to
|
||||||
|
|
||||||
|
"""
|
||||||
|
# Define document preamble
|
||||||
|
preamble = [
|
||||||
|
r'\documentclass[12pt]{article}',
|
||||||
|
r'\usepackage[letterpaper, margin=1in]{geometry}',
|
||||||
|
r'\usepackage{dcolumn}',
|
||||||
|
r'\usepackage{tabularx}',
|
||||||
|
r'\usepackage{booktabs}',
|
||||||
|
r'\usepackage{longtable}',
|
||||||
|
r'\usepackage{fancyhdr}',
|
||||||
|
r'\usepackage{siunitx}',
|
||||||
|
r'\setlength\LTcapwidth{5.55in}',
|
||||||
|
r'\setlength\LTleft{0.5in}',
|
||||||
|
r'\setlength\LTright{0.5in}'
|
||||||
|
]
|
||||||
|
|
||||||
|
# Define document start and end snippets
|
||||||
|
doc_start = [r'\begin{document}', r'\part*{Benchmark Results}']
|
||||||
|
doc_end = [r'\end{document}']
|
||||||
|
|
||||||
|
# Convert from list to string
|
||||||
|
result = result[0]
|
||||||
|
|
||||||
|
label = Path(result).name
|
||||||
|
|
||||||
|
# Read data from spreadsheet
|
||||||
|
dataframes = {}
|
||||||
|
dataframes[label] = get_result_dataframe(result).dropna()
|
||||||
|
|
||||||
|
# Get model keff and uncertainty from ICSBEP
|
||||||
|
icsbep = get_icsbep_dataframe()
|
||||||
|
|
||||||
|
# Determine ICSBEP case names
|
||||||
|
base = label
|
||||||
|
index = dataframes[base].index
|
||||||
|
|
||||||
|
df = dataframes[label]
|
||||||
|
|
||||||
|
# Applying matching as needed
|
||||||
|
if match is not None:
|
||||||
|
cond = index.map(lambda x: fnmatch(x, match))
|
||||||
|
index = index[cond]
|
||||||
|
|
||||||
|
# Custom Table Description and Caption
|
||||||
|
desc = (r'Table \ref{tab:1} uses (nuclear data info here) and openmc '
|
||||||
|
f'version {__version__} to evaluate ICSBEP benchmarks.')
|
||||||
|
caption = r'\caption{\label{tab:1} Criticality (' + label + r') Benchmark Results}\\'
|
||||||
|
|
||||||
|
# Define Table Entry
|
||||||
|
table = [
|
||||||
|
desc,
|
||||||
|
r'\begin{longtable}{lcccc}',
|
||||||
|
caption,
|
||||||
|
r'\endfirsthead',
|
||||||
|
r'\midrule',
|
||||||
|
r'\multicolumn{5}{r}{Continued on Next Page}\\',
|
||||||
|
r'\midrule',
|
||||||
|
r'\endfoot',
|
||||||
|
r'\bottomrule',
|
||||||
|
r'\endlastfoot',
|
||||||
|
r'\toprule',
|
||||||
|
r'& Exp. $k_{\textrm{eff}}$&Exp. unc.& Calc. $k_{\textrm{eff}}$&Calc. unc.\\',
|
||||||
|
r'\midrule',
|
||||||
|
'% DATA',
|
||||||
|
r'\end{longtable}'
|
||||||
|
]
|
||||||
|
|
||||||
|
for case in index:
|
||||||
|
# Obtain and format calculated values
|
||||||
|
keff = '{:.6f}'.format(df['keff'].loc[case])
|
||||||
|
keff = r'\num{' + keff + '}'
|
||||||
|
|
||||||
|
stdev = '{:.6f}'.format(df['stdev'].loc[case])
|
||||||
|
stdev = r'\num{' + stdev + '}'
|
||||||
|
|
||||||
|
# Obtain and format experimental values
|
||||||
|
icsbep_keff = '{:.4f}'.format(icsbep['keff'].loc[case])
|
||||||
|
icsbep_stdev = '{:.4f}'.format(icsbep['stdev'].loc[case])
|
||||||
|
|
||||||
|
# Insert data values into table as separate entries
|
||||||
|
table.insert(-1, rf'{case}&{icsbep_keff}&{icsbep_stdev}&{keff}&{stdev}\\')
|
||||||
|
|
||||||
|
# Write all accumulated lines
|
||||||
|
with open(output, 'w') as tex:
|
||||||
|
tex.writelines('\n'.join(preamble + doc_start + table + doc_end))
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
"""Produce LaTeX document with tabulated benchmark results"""
|
||||||
|
|
||||||
|
parser = ArgumentParser()
|
||||||
|
parser.add_argument('result', nargs='+', help='Result CSV file')
|
||||||
|
parser.add_argument('--match', help='Pattern to match benchmark names to')
|
||||||
|
parser.add_argument('-o', '--output', default='report.tex', help='Filename to save to')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
write_document(args.result, args.output, args.match)
|
||||||
75
stress-test/benchmarking/results.py
Normal file
75
stress-test/benchmarking/results.py
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
import csv
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pandas as pd
|
||||||
|
|
||||||
|
|
||||||
|
def abbreviated_name(name):
|
||||||
|
"""Return short name for ICSBEP benchmark cases
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
name : str
|
||||||
|
ICSBEP benchmark name, e.g. "pu-met-fast-021/case-2"
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
str
|
||||||
|
Abbreviated name, e.g. "pmf21-2"
|
||||||
|
|
||||||
|
"""
|
||||||
|
model, *case = name.split('/')
|
||||||
|
volume, form, spectrum, number = model.split('-')
|
||||||
|
abbreviation = volume[0] + form[0] + spectrum[0]
|
||||||
|
if case:
|
||||||
|
casenum = case[0].replace('case', '')
|
||||||
|
else:
|
||||||
|
casenum = ''
|
||||||
|
return f'{abbreviation}{int(number)}{casenum}'
|
||||||
|
|
||||||
|
|
||||||
|
def get_result_dataframe(filename):
|
||||||
|
"""Read the data from a file produced by the benchmarking script.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
filename : str
|
||||||
|
Name of a results file produced by the benchmarking script.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
pandas.DataFrame
|
||||||
|
Dataframe with 'keff' and 'stdev' columns. The benchmark name is used as
|
||||||
|
the index in the dataframe.
|
||||||
|
|
||||||
|
"""
|
||||||
|
return pd.read_csv(
|
||||||
|
filename,
|
||||||
|
header=None,
|
||||||
|
names=['name', 'keff', 'stdev'],
|
||||||
|
usecols=[0, 1, 2],
|
||||||
|
index_col="name",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_icsbep_dataframe():
|
||||||
|
"""Read the benchmark model k-effective means and uncertainties.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
pandas.DataFrame
|
||||||
|
Dataframe with 'keff' and 'stdev' columns. The benchmark name is used as
|
||||||
|
the index in the dataframe.
|
||||||
|
|
||||||
|
"""
|
||||||
|
cwd = Path(__file__).parent
|
||||||
|
index = []
|
||||||
|
keff = []
|
||||||
|
stdev = []
|
||||||
|
with open(cwd / 'uncertainties.csv', 'r') as csvfile:
|
||||||
|
reader = csv.reader(csvfile, skipinitialspace=True)
|
||||||
|
for benchmark, case, mean, uncertainty in reader:
|
||||||
|
index.append(f'{benchmark}/{case}' if case else benchmark)
|
||||||
|
keff.append(float(mean))
|
||||||
|
stdev.append(float(uncertainty))
|
||||||
|
return pd.DataFrame({'keff': keff, 'stdev': stdev}, index=index)
|
||||||
487
stress-test/benchmarking/uncertainties.csv
Normal file
487
stress-test/benchmarking/uncertainties.csv
Normal file
|
|
@ -0,0 +1,487 @@
|
||||||
|
heu-comp-inter-003, case-1, 1.0, 0.0057
|
||||||
|
heu-comp-inter-003, case-2, 1.0, 0.0061
|
||||||
|
heu-comp-inter-003, case-3, 1.0, 0.0056
|
||||||
|
heu-comp-inter-003, case-4, 1.0, 0.0055
|
||||||
|
heu-comp-inter-003, case-5, 1.0, 0.0047
|
||||||
|
heu-comp-inter-003, case-6, 1.0, 0.0047
|
||||||
|
heu-comp-inter-003, case-7, 1.0, 0.0050
|
||||||
|
heu-met-fast-001, case-1, 1.0, 0.001
|
||||||
|
heu-met-fast-001, case-2, 1.0, 0.001
|
||||||
|
heu-met-fast-002, case-1, 1.0, 0.003
|
||||||
|
heu-met-fast-002, case-2, 1.0, 0.003
|
||||||
|
heu-met-fast-002, case-3, 1.0, 0.003
|
||||||
|
heu-met-fast-002, case-4, 1.0, 0.003
|
||||||
|
heu-met-fast-002, case-5, 1.0, 0.003
|
||||||
|
heu-met-fast-002, case-6, 1.0, 0.003
|
||||||
|
heu-met-fast-003, case-1, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-2, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-3, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-4, 1.0, 0.003
|
||||||
|
heu-met-fast-003, case-5, 1.0, 0.003
|
||||||
|
heu-met-fast-003, case-6, 1.0, 0.003
|
||||||
|
heu-met-fast-003, case-7, 1.0, 0.003
|
||||||
|
heu-met-fast-003, case-8, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-9, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-10, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-11, 1.0, 0.005
|
||||||
|
heu-met-fast-003, case-12, 1.0, 0.003
|
||||||
|
heu-met-fast-004, case-1, 1.0020, 0.0
|
||||||
|
heu-met-fast-004, case-2, 0.9985, 0.0
|
||||||
|
heu-met-fast-008, , 0.9989, 0.0016
|
||||||
|
heu-met-fast-009, case-1, 0.9992, 0.0015
|
||||||
|
heu-met-fast-009, case-2, 0.9992, 0.0015
|
||||||
|
heu-met-fast-011, , 0.9989, 0.0015
|
||||||
|
heu-met-fast-012, , 0.9992, 0.0018
|
||||||
|
heu-met-fast-013, , 0.9990, 0.0015
|
||||||
|
heu-met-fast-014, , 0.9989, 0.0017
|
||||||
|
heu-met-fast-015, , 0.9996, 0.0017
|
||||||
|
heu-met-fast-018, case-1, 1.0, 0.0014
|
||||||
|
heu-met-fast-018, case-2, 1.0, 0.0014
|
||||||
|
heu-met-fast-019, case-1, 1.0, 0.0028
|
||||||
|
heu-met-fast-019, case-2, 1.0, 0.0028
|
||||||
|
heu-met-fast-020, case-1, 1.0, 0.0028
|
||||||
|
heu-met-fast-020, case-2, 1.0, 0.0028
|
||||||
|
heu-met-fast-021, case-1, 1.0, 0.0024
|
||||||
|
heu-met-fast-021, case-2, 1.0, 0.0024
|
||||||
|
heu-met-fast-022, case-1, 1.0, 0.0019
|
||||||
|
heu-met-fast-022, case-2, 1.0, 0.0019
|
||||||
|
heu-met-fast-026, b-1, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, b-2, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, b-3, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, b-4, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, b-5, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, b-6, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, b-7, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, b-8, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, b-9, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, b-10, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-1, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, c-2, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, c-3, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, c-4, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-5, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-6, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-7, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-8, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, c-9, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, c-10, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-11, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, c-12, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, d-1, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, d-2, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, d-3, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, d-4, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, d-5, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, d-6, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, d-7, 0.9982, 0.0042
|
||||||
|
heu-met-fast-026, d-8, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, d-9, 1.0, 0.0038
|
||||||
|
heu-met-fast-026, d-10, 1.0, 0.0038
|
||||||
|
heu-met-fast-027, , 1.0, 0.0025
|
||||||
|
heu-met-fast-028, , 1.0, 0.0030
|
||||||
|
heu-met-fast-029, , 1.0, 0.0020
|
||||||
|
heu-met-fast-032, case-1, 1.0, 0.0016
|
||||||
|
heu-met-fast-032, case-2, 1.0, 0.0027
|
||||||
|
heu-met-fast-032, case-3, 1.0, 0.0017
|
||||||
|
heu-met-fast-032, case-4, 1.0, 0.0017
|
||||||
|
heu-met-fast-034, case-1, 0.9990, 0.0012
|
||||||
|
heu-met-fast-034, case-2, 0.9990, 0.0012
|
||||||
|
heu-met-fast-034, case-3, 0.9990, 0.0012
|
||||||
|
heu-met-fast-041, case-1, 1.0013, 0.0030
|
||||||
|
heu-met-fast-041, case-2, 1.0022, 0.0043
|
||||||
|
heu-met-fast-041, case-3, 1.0006, 0.0029
|
||||||
|
heu-met-fast-041, case-4, 1.0006, 0.0025
|
||||||
|
heu-met-fast-041, case-5, 1.0006, 0.0031
|
||||||
|
heu-met-fast-041, case-6, 1.0006, 0.0045
|
||||||
|
heu-met-fast-058, case-1, 1.0, 0.0025
|
||||||
|
heu-met-fast-058, case-2, 1.0, 0.0035
|
||||||
|
heu-met-fast-058, case-3, 1.0, 0.0027
|
||||||
|
heu-met-fast-058, case-4, 1.0, 0.0021
|
||||||
|
heu-met-fast-058, case-5, 1.0, 0.0033
|
||||||
|
heu-met-fast-066, case-1, 1.0030, 0.0033
|
||||||
|
heu-met-fast-066, case-2, 1.0023, 0.0029
|
||||||
|
heu-met-fast-066, case-3, 1.0023, 0.0026
|
||||||
|
heu-met-fast-066, case-4, 1.0043, 0.0043
|
||||||
|
heu-met-fast-066, case-5, 1.0030, 0.0033
|
||||||
|
heu-met-fast-066, case-6, 1.0028, 0.0030
|
||||||
|
heu-met-fast-066, case-7, 1.0048, 0.0039
|
||||||
|
heu-met-fast-066, case-8, 1.0039, 0.0040
|
||||||
|
heu-met-fast-066, case-9, 1.0027, 0.0036
|
||||||
|
heu-met-fast-069, case-1, 0.9998, 0.0004
|
||||||
|
heu-met-fast-069, case-2, 0.9994, 0.0004
|
||||||
|
heu-met-inter-006, case-1, 0.9977, 0.0008
|
||||||
|
heu-met-inter-006, case-2, 1.0001, 0.0008
|
||||||
|
heu-met-inter-006, case-3, 1.0015, 0.0009
|
||||||
|
heu-met-inter-006, case-4, 1.0016, 0.0008
|
||||||
|
heu-met-therm-001, case-1, 1.0010, 0.0060
|
||||||
|
heu-met-therm-001, case-2, 1.0010, 0.0060
|
||||||
|
heu-met-therm-014, case-1, 0.9931, 0.0015
|
||||||
|
heu-met-therm-014, case-2, 0.9939, 0.0015
|
||||||
|
heu-sol-therm-001, case-1, 1.0004, 0.0060
|
||||||
|
heu-sol-therm-001, case-2, 1.0021, 0.0072
|
||||||
|
heu-sol-therm-001, case-3, 1.0003, 0.0035
|
||||||
|
heu-sol-therm-001, case-4, 1.0008, 0.0053
|
||||||
|
heu-sol-therm-001, case-5, 1.0001, 0.0049
|
||||||
|
heu-sol-therm-001, case-6, 1.0002, 0.0046
|
||||||
|
heu-sol-therm-001, case-7, 1.0008, 0.0040
|
||||||
|
heu-sol-therm-001, case-8, 0.9998, 0.0038
|
||||||
|
heu-sol-therm-001, case-9, 1.0008, 0.0054
|
||||||
|
heu-sol-therm-001, case-10, 0.9993, 0.0054
|
||||||
|
heu-sol-therm-004, case-1, 1.0, 0.00325
|
||||||
|
heu-sol-therm-004, case-2, 1.0, 0.00355
|
||||||
|
heu-sol-therm-004, case-3, 1.0, 0.0039
|
||||||
|
heu-sol-therm-004, case-4, 1.0, 0.00455
|
||||||
|
heu-sol-therm-004, case-5, 1.0, 0.0052
|
||||||
|
heu-sol-therm-004, case-6, 1.0, 0.00585
|
||||||
|
heu-sol-therm-009, case-1, 0.9990, 0.0043
|
||||||
|
heu-sol-therm-009, case-2, 1.0, 0.0039
|
||||||
|
heu-sol-therm-009, case-3, 1.0, 0.0036
|
||||||
|
heu-sol-therm-009, case-4, 0.9986, 0.0035
|
||||||
|
heu-sol-therm-010, case-1, 1.0, 0.0029
|
||||||
|
heu-sol-therm-010, case-2, 1.0, 0.0029
|
||||||
|
heu-sol-therm-010, case-3, 1.0, 0.0029
|
||||||
|
heu-sol-therm-010, case-4, 0.9992, 0.0029
|
||||||
|
heu-sol-therm-011, case-1, 1.0, 0.0023
|
||||||
|
heu-sol-therm-011, case-2, 1.0, 0.0023
|
||||||
|
heu-sol-therm-012, , 0.9999, 0.0058
|
||||||
|
heu-sol-therm-013, case-1, 1.0012, 0.0026
|
||||||
|
heu-sol-therm-013, case-2, 1.0007, 0.0036
|
||||||
|
heu-sol-therm-013, case-3, 1.0009, 0.0036
|
||||||
|
heu-sol-therm-013, case-4, 1.0003, 0.0036
|
||||||
|
heu-sol-therm-020, case-1, 0.9966, 0.0116
|
||||||
|
heu-sol-therm-020, case-2, 0.9956, 0.0093
|
||||||
|
heu-sol-therm-020, case-3, 0.9957, 0.0079
|
||||||
|
heu-sol-therm-020, case-4, 0.9955, 0.0078
|
||||||
|
heu-sol-therm-020, case-5, 0.9959, 0.0077
|
||||||
|
heu-sol-therm-032, , 1.0015, 0.0026
|
||||||
|
heu-sol-therm-042, case-1, 0.9957, 0.0039
|
||||||
|
heu-sol-therm-042, case-2, 0.9965, 0.0036
|
||||||
|
heu-sol-therm-042, case-3, 0.9994, 0.0028
|
||||||
|
heu-sol-therm-042, case-4, 1.0, 0.0034
|
||||||
|
heu-sol-therm-042, case-5, 1.0, 0.0034
|
||||||
|
heu-sol-therm-042, case-6, 1.0, 0.0037
|
||||||
|
heu-sol-therm-042, case-7, 1.0, 0.0036
|
||||||
|
heu-sol-therm-042, case-8, 1.0, 0.0035
|
||||||
|
heu-sol-therm-043, case-1, 0.9986, 0.0031
|
||||||
|
heu-sol-therm-043, case-2, 0.9995, 0.0026
|
||||||
|
heu-sol-therm-043, case-3, 0.9990, 0.0025
|
||||||
|
ieu-met-fast-001, case-1, 0.9988, 0.0009
|
||||||
|
ieu-met-fast-001, case-2, 0.9997, 0.0009
|
||||||
|
ieu-met-fast-001, case-3, 0.9993, 0.0003
|
||||||
|
ieu-met-fast-001, case-4, 1.0002, 0.0003
|
||||||
|
ieu-met-fast-002, , 1.0, 0.0030
|
||||||
|
ieu-met-fast-003, case-1, 1.0, 0.0017
|
||||||
|
ieu-met-fast-003, case-2, 1.0, 0.0017
|
||||||
|
ieu-met-fast-004, case-1, 1.0, 0.0030
|
||||||
|
ieu-met-fast-004, case-2, 1.0, 0.0030
|
||||||
|
ieu-met-fast-005, case-1, 1.0, 0.0021
|
||||||
|
ieu-met-fast-005, case-2, 1.0, 0.0021
|
||||||
|
ieu-met-fast-006, case-1, 1.0, 0.0023
|
||||||
|
ieu-met-fast-006, case-2, 1.0, 0.0023
|
||||||
|
ieu-met-fast-007, case-1, 1.0045, 0.0007
|
||||||
|
ieu-met-fast-007, case-2, 1.0049, 0.0008
|
||||||
|
ieu-met-fast-007, case-4, 1.0049, 0.0008
|
||||||
|
ieu-met-fast-009, , 1.0, 0.0053
|
||||||
|
leu-comp-therm-008, case-1, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-2, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-3, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-4, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-5, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-6, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-7, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-8, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-9, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-10, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-11, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-12, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-13, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-14, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-15, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-16, 1.0007, 0.0012
|
||||||
|
leu-comp-therm-008, case-17, 1.0007, 0.0012
|
||||||
|
leu-sol-therm-001, , 0.9991, 0.0029
|
||||||
|
leu-sol-therm-002, case-1, 1.0038, 0.0040
|
||||||
|
leu-sol-therm-002, case-2, 1.0024, 0.0037
|
||||||
|
leu-sol-therm-002, case-3, 1.0024, 0.0044
|
||||||
|
leu-sol-therm-003, case-1, 0.9997, 0.0039
|
||||||
|
leu-sol-therm-003, case-2, 0.9993, 0.0042
|
||||||
|
leu-sol-therm-003, case-3, 0.9995, 0.0042
|
||||||
|
leu-sol-therm-003, case-4, 0.9995, 0.0042
|
||||||
|
leu-sol-therm-003, case-5, 0.9997, 0.0048
|
||||||
|
leu-sol-therm-003, case-6, 0.9999, 0.0049
|
||||||
|
leu-sol-therm-003, case-7, 0.9994, 0.0049
|
||||||
|
leu-sol-therm-003, case-8, 0.9993, 0.0052
|
||||||
|
leu-sol-therm-003, case-9, 0.9996, 0.0052
|
||||||
|
leu-sol-therm-004, case-1, 0.9994, 0.0008
|
||||||
|
leu-sol-therm-004, case-29, 0.9999, 0.0009
|
||||||
|
leu-sol-therm-004, case-33, 0.9999, 0.0009
|
||||||
|
leu-sol-therm-004, case-34, 0.9999, 0.0010
|
||||||
|
leu-sol-therm-004, case-46, 0.9999, 0.0010
|
||||||
|
leu-sol-therm-004, case-51, 0.9994, 0.0011
|
||||||
|
leu-sol-therm-004, case-54, 0.9996, 0.0011
|
||||||
|
leu-sol-therm-007, case-14, 0.9961, 0.0009
|
||||||
|
leu-sol-therm-007, case-30, 0.9973, 0.0009
|
||||||
|
leu-sol-therm-007, case-32, 0.9985, 0.0010
|
||||||
|
leu-sol-therm-007, case-36, 0.9988, 0.0011
|
||||||
|
leu-sol-therm-007, case-49, 0.9983, 0.0011
|
||||||
|
leu-sol-therm-016, case-105, 0.9996, 0.0013
|
||||||
|
leu-sol-therm-016, case-113, 0.9999, 0.0013
|
||||||
|
leu-sol-therm-016, case-125, 0.9994, 0.0014
|
||||||
|
leu-sol-therm-016, case-129, 0.9996, 0.0014
|
||||||
|
leu-sol-therm-016, case-131, 0.9995, 0.0014
|
||||||
|
leu-sol-therm-016, case-140, 0.9992, 0.0015
|
||||||
|
leu-sol-therm-016, case-196, 0.9994, 0.0015
|
||||||
|
mix-comp-therm-002, pnl-30d, 1.0010, 0.0059
|
||||||
|
mix-comp-therm-002, pnl-31d, 1.0009, 0.0045
|
||||||
|
mix-comp-therm-002, pnl-32d, 1.0024, 0.0029
|
||||||
|
mix-comp-therm-002, pnl-33d, 1.0024, 0.0021
|
||||||
|
mix-comp-therm-002, pnl-34d, 1.0038, 0.0022
|
||||||
|
mix-comp-therm-002, pnl-35d, 1.0029, 0.0024
|
||||||
|
mix-comp-therm-002, pnl-30, 1.0024, 0.0060
|
||||||
|
mix-comp-therm-002, pnl-31, 1.0009, 0.0047
|
||||||
|
mix-comp-therm-002, pnl-32, 1.0042, 0.0031
|
||||||
|
mix-comp-therm-002, pnl-33, 1.0024, 0.0024
|
||||||
|
mix-comp-therm-002, pnl-34, 1.0038, 0.0025
|
||||||
|
mix-comp-therm-002, pnl-35, 1.0029, 0.0027
|
||||||
|
mix-comp-therm-004, case-1, 1.0, 0.0046
|
||||||
|
mix-comp-therm-004, case-2, 1.0, 0.0046
|
||||||
|
mix-comp-therm-004, case-3, 1.0, 0.0046
|
||||||
|
mix-comp-therm-004, case-4, 1.0, 0.0039
|
||||||
|
mix-comp-therm-004, case-5, 1.0, 0.0039
|
||||||
|
mix-comp-therm-004, case-6, 1.0, 0.0039
|
||||||
|
mix-comp-therm-004, case-7, 1.0, 0.0040
|
||||||
|
mix-comp-therm-004, case-8, 1.0, 0.0040
|
||||||
|
mix-comp-therm-004, case-9, 1.0, 0.0040
|
||||||
|
mix-comp-therm-004, case-10, 1.0, 0.0051
|
||||||
|
mix-comp-therm-004, case-11, 1.0, 0.0051
|
||||||
|
mix-met-fast-001, , 1.0, 0.0016
|
||||||
|
mix-met-fast-003, , 0.9993, 0.0016
|
||||||
|
mix-met-fast-007, case-1, 1.0, 0.0045
|
||||||
|
mix-met-fast-007, case-2, 1.0, 0.0023
|
||||||
|
mix-met-fast-007, case-3, 1.0, 0.0028
|
||||||
|
mix-met-fast-007, case-4, 1.0, 0.0028
|
||||||
|
mix-met-fast-007, case-5, 1.0, 0.0032
|
||||||
|
mix-met-fast-007, case-6, 1.0, 0.0035
|
||||||
|
mix-met-fast-007, case-7, 1.0, 0.0032
|
||||||
|
mix-met-fast-007, case-8, 1.0, 0.0030
|
||||||
|
mix-met-fast-007, case-9, 1.0, 0.0028
|
||||||
|
mix-met-fast-007, case-10, 1.0, 0.0027
|
||||||
|
mix-met-fast-007, case-11, 1.0, 0.0026
|
||||||
|
mix-met-fast-007, case-12, 1.0, 0.0030
|
||||||
|
mix-met-fast-007, case-13, 1.0, 0.0033
|
||||||
|
mix-met-fast-007, case-14, 1.0, 0.0032
|
||||||
|
mix-met-fast-007, case-15, 1.0, 0.0032
|
||||||
|
mix-met-fast-007, case-16, 1.0, 0.0028
|
||||||
|
mix-met-fast-007, case-17, 1.0, 0.0028
|
||||||
|
mix-met-fast-007, case-18, 1.0, 0.0030
|
||||||
|
mix-met-fast-007, case-19, 1.0, 0.0034
|
||||||
|
mix-met-fast-007, case-20, 1.0, 0.0030
|
||||||
|
mix-met-fast-007, case-21, 1.0, 0.0031
|
||||||
|
mix-met-fast-007, case-22, 1.0, 0.0030
|
||||||
|
mix-met-fast-007, case-23, 1.0, 0.0028
|
||||||
|
mix-met-fast-008, 8a-2, 0.9992, 0.0063
|
||||||
|
mix-met-fast-008, 8b, 1.0010, 0.0023
|
||||||
|
mix-met-fast-008, 8c-2, 0.9860, 0.0044
|
||||||
|
mix-met-fast-008, 8d, 0.9730, 0.0045
|
||||||
|
mix-met-fast-008, 8e, 1.0060, 0.0069
|
||||||
|
mix-met-fast-008, 8f-2, 0.9710, 0.0042
|
||||||
|
mix-met-fast-008, 8h, 1.0300, 0.0025
|
||||||
|
pu-comp-inter-001, , 1.0, 0.0110
|
||||||
|
pu-met-fast-001, , 1.0, 0.0020
|
||||||
|
pu-met-fast-002, , 1.0, 0.0020
|
||||||
|
pu-met-fast-003, case-101, 1.0, 0.0030
|
||||||
|
pu-met-fast-003, case-102, 1.0, 0.0030
|
||||||
|
pu-met-fast-003, case-103, 1.0, 0.0030
|
||||||
|
pu-met-fast-003, case-104, 1.0, 0.0030
|
||||||
|
pu-met-fast-003, case-105, 1.0, 0.0030
|
||||||
|
pu-met-fast-005, , 1.0, 0.0013
|
||||||
|
pu-met-fast-006, , 1.0, 0.0030
|
||||||
|
pu-met-fast-008, case-1, 1.0, 0.0006
|
||||||
|
pu-met-fast-008, case-2, 1.0, 0.0006
|
||||||
|
pu-met-fast-009, , 1.0, 0.0027
|
||||||
|
pu-met-fast-010, , 1.0, 0.0018
|
||||||
|
pu-met-fast-011, , 1.0, 0.0010
|
||||||
|
pu-met-fast-012, case-1, 1.0009, 0.0021
|
||||||
|
pu-met-fast-015, case-1, 1.0041, 0.0026
|
||||||
|
pu-met-fast-018, , 1.0, 0.0030
|
||||||
|
pu-met-fast-019, , 0.9992, 0.0015
|
||||||
|
pu-met-fast-020, , 0.9993, 0.0017
|
||||||
|
pu-met-fast-021, case-1, 1.0, 0.0026
|
||||||
|
pu-met-fast-021, case-2, 1.0, 0.0026
|
||||||
|
pu-met-fast-022, case-1, 1.0, 0.0021
|
||||||
|
pu-met-fast-022, case-2, 1.0, 0.0021
|
||||||
|
pu-met-fast-023, case-1, 1.0, 0.0020
|
||||||
|
pu-met-fast-023, case-2, 1.0, 0.0020
|
||||||
|
pu-met-fast-024, case-1, 1.0, 0.0020
|
||||||
|
pu-met-fast-024, case-2, 1.0, 0.0020
|
||||||
|
pu-met-fast-025, case-1, 1.0, 0.0020
|
||||||
|
pu-met-fast-025, case-2, 1.0, 0.0020
|
||||||
|
pu-met-fast-026, case-1, 1.0, 0.0024
|
||||||
|
pu-met-fast-026, case-2, 1.0, 0.0024
|
||||||
|
pu-met-fast-029, case-1, 1.0, 0.0020
|
||||||
|
pu-met-fast-029, case-2, 1.0, 0.0020
|
||||||
|
pu-met-fast-032, case-1, 1.0, 0.0020
|
||||||
|
pu-met-fast-032, case-2, 1.0, 0.0020
|
||||||
|
pu-met-fast-035, case-1, 1.0, 0.0016
|
||||||
|
pu-met-fast-036, case-1, 1.0, 0.0031
|
||||||
|
pu-met-fast-039, case-1, 1.0, 0.0022
|
||||||
|
pu-met-fast-040, case-1, 1.0, 0.0038
|
||||||
|
pu-met-fast-044, case-1, 0.9977, 0.0021
|
||||||
|
pu-met-fast-044, case-2, 0.9980, 0.0022
|
||||||
|
pu-met-fast-044, case-3, 0.9977, 0.0021
|
||||||
|
pu-met-fast-044, case-4, 0.9978, 0.0026
|
||||||
|
pu-met-fast-044, case-5, 0.9977, 0.0024
|
||||||
|
pu-sol-therm-001, case-1, 1.0, 0.0050
|
||||||
|
pu-sol-therm-001, case-2, 1.0, 0.0050
|
||||||
|
pu-sol-therm-001, case-3, 1.0, 0.0050
|
||||||
|
pu-sol-therm-001, case-4, 1.0, 0.0050
|
||||||
|
pu-sol-therm-001, case-5, 1.0, 0.0050
|
||||||
|
pu-sol-therm-001, case-6, 1.0, 0.0050
|
||||||
|
pu-sol-therm-002, case-1, 1.0, 0.0047
|
||||||
|
pu-sol-therm-002, case-2, 1.0, 0.0047
|
||||||
|
pu-sol-therm-002, case-3, 1.0, 0.0047
|
||||||
|
pu-sol-therm-002, case-4, 1.0, 0.0047
|
||||||
|
pu-sol-therm-002, case-5, 1.0, 0.0047
|
||||||
|
pu-sol-therm-002, case-6, 1.0, 0.0047
|
||||||
|
pu-sol-therm-002, case-7, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-1, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-2, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-3, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-4, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-5, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-6, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-7, 1.0, 0.0047
|
||||||
|
pu-sol-therm-003, case-8, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-1, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-2, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-3, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-4, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-5, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-6, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-7, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-8, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-9, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-10, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-11, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-12, 1.0, 0.0047
|
||||||
|
pu-sol-therm-004, case-13, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-1, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-2, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-3, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-4, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-5, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-6, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-7, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-8, 1.0, 0.0047
|
||||||
|
pu-sol-therm-005, case-9, 1.0, 0.0047
|
||||||
|
pu-sol-therm-006, case-1, 1.0, 0.0035
|
||||||
|
pu-sol-therm-006, case-2, 1.0, 0.0035
|
||||||
|
pu-sol-therm-006, case-3, 1.0, 0.0035
|
||||||
|
pu-sol-therm-007, case-2, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-3, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-5, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-6, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-7, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-8, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-9, 1.0, 0.0047
|
||||||
|
pu-sol-therm-007, case-10, 1.0, 0.0047
|
||||||
|
pu-sol-therm-009, case-1, 1.0000, 0.0033
|
||||||
|
pu-sol-therm-009, case-1a, 1.0003, 0.0033
|
||||||
|
pu-sol-therm-009, case-2, 1.0000, 0.0033
|
||||||
|
pu-sol-therm-009, case-2a, 1.0003, 0.0033
|
||||||
|
pu-sol-therm-009, case-3, 1.0000, 0.0033
|
||||||
|
pu-sol-therm-009, case-3a, 1.0003, 0.0033
|
||||||
|
pu-sol-therm-011, case-16-1, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-16-2, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-16-3, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-16-4, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-16-5, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-1, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-2, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-3, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-4, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-5, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-6, 1.0, 0.0052
|
||||||
|
pu-sol-therm-011, case-18-7, 1.0, 0.0052
|
||||||
|
pu-sol-therm-012, case-1, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-2, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-3, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-4, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-5, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-6, 1.0, 0.0007
|
||||||
|
pu-sol-therm-012, case-7, 1.0, 0.0013
|
||||||
|
pu-sol-therm-012, case-8, 1.0, 0.0013
|
||||||
|
pu-sol-therm-012, case-9, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-10, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-11, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-12, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-13, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-14, 1.0, 0.0013
|
||||||
|
pu-sol-therm-012, case-15, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-16, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-17, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-18, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-19, 1.0, 0.0043
|
||||||
|
pu-sol-therm-012, case-20, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-21, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-22, 1.0, 0.0058
|
||||||
|
pu-sol-therm-012, case-23, 1.0, 0.0058
|
||||||
|
pu-sol-therm-018, case-1, 1.0, 0.0034
|
||||||
|
pu-sol-therm-018, case-2, 1.0, 0.0034
|
||||||
|
pu-sol-therm-018, case-3, 1.0, 0.0032
|
||||||
|
pu-sol-therm-018, case-4, 1.0, 0.0030
|
||||||
|
pu-sol-therm-018, case-5, 1.0, 0.0030
|
||||||
|
pu-sol-therm-018, case-6, 1.0, 0.0031
|
||||||
|
pu-sol-therm-018, case-7, 1.0, 0.0032
|
||||||
|
pu-sol-therm-018, case-8, 1.0, 0.0033
|
||||||
|
pu-sol-therm-018, case-9, 1.0, 0.0034
|
||||||
|
pu-sol-therm-021, case-1, 1.0, 0.0032
|
||||||
|
pu-sol-therm-021, case-2, 1.0, 0.0032
|
||||||
|
pu-sol-therm-021, case-3, 1.0, 0.0065
|
||||||
|
pu-sol-therm-021, case-4, 1.0, 0.0025
|
||||||
|
pu-sol-therm-021, case-5, 1.0, 0.0025
|
||||||
|
pu-sol-therm-021, case-6, 1.0, 0.0044
|
||||||
|
pu-sol-therm-021, case-7, 1.0, 0.0032
|
||||||
|
pu-sol-therm-021, case-8, 1.0, 0.0065
|
||||||
|
pu-sol-therm-021, case-9, 1.0, 0.0032
|
||||||
|
pu-sol-therm-021, case-10, 1.0, 0.0025
|
||||||
|
pu-sol-therm-034, case-1, 1.0, 0.0062
|
||||||
|
pu-sol-therm-034, case-2, 1.0, 0.0044
|
||||||
|
pu-sol-therm-034, case-3, 1.0, 0.0040
|
||||||
|
pu-sol-therm-034, case-4, 1.0, 0.0039
|
||||||
|
pu-sol-therm-034, case-5, 1.0, 0.0040
|
||||||
|
pu-sol-therm-034, case-6, 1.0, 0.0042
|
||||||
|
pu-sol-therm-034, case-7, 1.0, 0.0057
|
||||||
|
pu-sol-therm-034, case-8, 1.0, 0.0055
|
||||||
|
pu-sol-therm-034, case-9, 1.0, 0.0052
|
||||||
|
pu-sol-therm-034, case-10, 1.0, 0.0052
|
||||||
|
pu-sol-therm-034, case-11, 1.0, 0.0048
|
||||||
|
pu-sol-therm-034, case-12, 1.0, 0.0042
|
||||||
|
pu-sol-therm-034, case-13, 1.0, 0.0043
|
||||||
|
pu-sol-therm-034, case-14, 1.0, 0.0044
|
||||||
|
pu-sol-therm-034, case-15, 1.0, 0.0042
|
||||||
|
u233-comp-therm-001, case-1, 1.0006, 0.0027
|
||||||
|
u233-comp-therm-001, case-2, 1.0015, 0.0025
|
||||||
|
u233-comp-therm-001, case-3, 1.0000, 0.0024
|
||||||
|
u233-comp-therm-001, case-4, 1.0007, 0.0025
|
||||||
|
u233-comp-therm-001, case-5, 1.0015, 0.0026
|
||||||
|
u233-comp-therm-001, case-6, 1.0015, 0.0028
|
||||||
|
u233-comp-therm-001, case-7, 0.9995, 0.0027
|
||||||
|
u233-comp-therm-001, case-8, 1.0004, 0.0028
|
||||||
|
u233-met-fast-001, , 1.0, 0.0010
|
||||||
|
u233-met-fast-002, case-1, 1.0, 0.0010
|
||||||
|
u233-met-fast-002, case-2, 1.0, 0.0011
|
||||||
|
u233-met-fast-003, case-1, 1.0, 0.0010
|
||||||
|
u233-met-fast-003, case-2, 1.0, 0.0010
|
||||||
|
u233-met-fast-004, case-1, 1.0, 0.0007
|
||||||
|
u233-met-fast-004, case-2, 1.0, 0.0008
|
||||||
|
u233-met-fast-005, case-1, 1.0, 0.0030
|
||||||
|
u233-met-fast-005, case-2, 1.0, 0.0030
|
||||||
|
u233-met-fast-006, , 1.0, 0.0014
|
||||||
|
u233-sol-inter-001, case-1, 1.0, 0.0083
|
||||||
|
u233-sol-therm-001, case-1, 1.0, 0.0031
|
||||||
|
u233-sol-therm-001, case-2, 1.0005, 0.0033
|
||||||
|
u233-sol-therm-001, case-3, 1.0006, 0.0033
|
||||||
|
u233-sol-therm-001, case-4, 0.9998, 0.0033
|
||||||
|
u233-sol-therm-001, case-5, 0.9999, 0.0033
|
||||||
|
u233-sol-therm-008, , 1.0006, 0.0029
|
||||||
|
Loading…
Add table
Add a link
Reference in a new issue