From 990a74250f2fcc4cf7b7ee53d89952084aae577c Mon Sep 17 00:00:00 2001 From: SteSeg Date: Thu, 16 Apr 2026 12:35:22 -0400 Subject: [PATCH 1/4] convert legacy results script --- results_database/convert_legacy_results.py | 324 +++++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 results_database/convert_legacy_results.py diff --git a/results_database/convert_legacy_results.py b/results_database/convert_legacy_results.py new file mode 100644 index 00000000..bc793df4 --- /dev/null +++ b/results_database/convert_legacy_results.py @@ -0,0 +1,324 @@ +#!/usr/bin/env python3 +"""Convert legacy OFB HDF5 results to the current tally group schema. + +Legacy format (per group): +- dataset named like the group, shape (realization, row, column) +- coordinate datasets: realization, row, column +- typical columns: [energy low, energy high, mean, std. dev.] + +New format (per group): +- variables: mean, mc_std +- dims: (surface, energy, nuclide, score) +- attrs: filter_axes, nuclides, scores, observed_tally, optional spec_* fields +""" + +from __future__ import annotations + +import argparse +import importlib.util +import json +from pathlib import Path + +import h5py +import numpy as np +import xarray as xr +import yaml + + +def _normalize_filter_type(type_name: str) -> str: + name = str(type_name).strip().lower() + if name.endswith("filter"): + name = name[:-6] + return name + + +def _filter_bins_match(spec_filter: dict, observed_axis: dict) -> bool: + expected = spec_filter.get("values") + observed = observed_axis.get("bins") + if expected is None or observed is None: + return True + + ftype = _normalize_filter_type(spec_filter.get("type", "")) + if ftype == "energy": + try: + return np.allclose(np.asarray(expected, dtype=float), np.asarray(observed, dtype=float)) + except Exception: + return False + + try: + return list(expected) == list(observed) + except Exception: + return False + + +def _validate_tally_consistency(spec_tally: dict, observed_tally: dict) -> tuple[bool, list[str]]: + issues: list[str] = [] + + observed_scores = [str(s) for s in observed_tally.get("scores", [])] + observed_nuclides = [str(n) for n in observed_tally.get("nuclides", [])] + observed_filters = list(observed_tally.get("filters", [])) + + spec_scores = [str(s) for s in spec_tally.get("scores", [])] + if spec_scores and spec_scores != observed_scores: + issues.append(f"scores mismatch: expected {spec_scores}, observed {observed_scores}") + + spec_nuclides = [str(n) for n in spec_tally.get("nuclides", [])] + if spec_nuclides and spec_nuclides != observed_nuclides: + issues.append(f"nuclides mismatch: expected {spec_nuclides}, observed {observed_nuclides}") + + expected_particle = spec_tally.get("particle") + if expected_particle is not None: + particle_filters = [a for a in observed_filters if _normalize_filter_type(a.get("name", "")) == "particle"] + if not particle_filters: + issues.append("missing ParticleFilter in observed tally") + else: + bins = particle_filters[0].get("bins", []) + observed_particle = str(bins[0]) if bins else None + if str(expected_particle) != str(observed_particle): + issues.append( + f"particle mismatch: expected {expected_particle}, observed {observed_particle}" + ) + + spec_filters = spec_tally.get("filters", []) + observed_non_particle = [ + a for a in observed_filters if _normalize_filter_type(a.get("name", "")) != "particle" + ] + + expected_types = [_normalize_filter_type(f.get("type", "")) for f in spec_filters] + observed_types = [_normalize_filter_type(a.get("name", "")) for a in observed_non_particle] + if expected_types != observed_types: + issues.append(f"filter type/order mismatch: expected {expected_types}, observed {observed_types}") + + return len(issues) == 0, issues + + +def _load_spec_lookup(repo_root: Path, benchmark: str | None) -> dict[str, dict]: + if not benchmark: + return {} + + spec_path = repo_root / "src" / "openmc_fusion_benchmarks" / "benchmarks" / benchmark / "specifications.yaml" + if not spec_path.exists(): + raise FileNotFoundError(f"Could not find specifications file: {spec_path}") + + with spec_path.open("r", encoding="utf-8") as f: + spec = yaml.safe_load(f) + + lookup: dict[str, dict] = {} + for entry in spec.get("tallies", []): + if isinstance(entry, dict) and entry.get("name"): + lookup[str(entry["name"])] = entry + return lookup + + +def _decode_columns(group: h5py.Group) -> list[str]: + cols_raw = group["column"][()] + cols: list[str] = [] + for c in cols_raw: + if isinstance(c, bytes): + cols.append(c.decode("utf-8")) + else: + cols.append(str(c)) + return cols + + +def _col_index(columns: list[str], candidates: list[str]) -> int: + normalized = [c.strip().lower().replace("_", " ") for c in columns] + for cand in candidates: + c = cand.strip().lower().replace("_", " ") + for i, col in enumerate(normalized): + if c == col: + return i + for cand in candidates: + c = cand.strip().lower().replace("_", " ") + for i, col in enumerate(normalized): + if c in col: + return i + raise KeyError(f"Could not find column from candidates {candidates}. Found columns: {columns}") + + +def _legacy_group_to_dataset(group_name: str, arr: np.ndarray, columns: list[str], tally_id: int, spec_tally: dict | None) -> xr.Dataset: + if arr.ndim != 3: + raise ValueError(f"Expected legacy data shape (realization, row, column), got {arr.shape}") + if arr.shape[0] < 1: + raise ValueError(f"Legacy dataset for '{group_name}' has no realization axis entries") + + low_idx = _col_index(columns, ["energy low [ev]", "energy low", "energy_low [ev]", "energy_low"]) + high_idx = _col_index(columns, ["energy high [ev]", "energy high", "energy_high [ev]", "energy_high"]) + mean_idx = _col_index(columns, ["mean"]) + std_idx = _col_index(columns, ["std. dev.", "std dev", "std_dev", "mc_std", "std"]) + + first = arr[0, :, :] + low = np.asarray(first[:, low_idx], dtype=float) + high = np.asarray(first[:, high_idx], dtype=float) + mean = np.asarray(first[:, mean_idx], dtype=float) + mc_std = np.asarray(first[:, std_idx], dtype=float) + + if len(low) == 0: + energy_edges = np.asarray([], dtype=float) + else: + energy_edges = np.concatenate([low[:1], high]) + + particle = None + if isinstance(spec_tally, dict): + particle = spec_tally.get("particle") + if not particle: + low_name = group_name.lower() + if "neutron" in low_name: + particle = "neutron" + elif "photon" in low_name or "gamma" in low_name: + particle = "photon" + + mean_5d = mean.reshape(1, 1, mean.shape[0], 1, 1) + std_5d = mc_std.reshape(1, 1, mc_std.shape[0], 1, 1) + + dims = ("particle", "surface", "energy", "nuclide", "score") + coords = { + "particle": ("particle", np.asarray([0], dtype=int)), + "surface": ("surface", np.asarray([0], dtype=int)), + "energy": ("energy", np.arange(mean.shape[0], dtype=int)), + "nuclide": ("nuclide", np.asarray([0], dtype=int)), + "score": ("score", np.asarray([0], dtype=int)), + } + + ds = xr.Dataset( + { + "mean": xr.DataArray(mean_5d, dims=dims, coords=coords), + "mc_std": xr.DataArray(std_5d, dims=dims, coords=coords), + } + ) + + filter_axes = [ + { + "name": "ParticleFilter", + "axis": "particle", + "num_bins": 1, + "bins": [particle] if particle is not None else [], + }, + { + "name": "SurfaceFilter", + "axis": "surface", + "num_bins": 1, + "bins": [7], + }, + { + "name": "EnergyFilter", + "axis": "energy", + "num_bins": int(mean.shape[0]), + "bins": energy_edges.tolist(), + "kind": "edges", + "units": "eV", + }, + ] + + scores = ["current"] + nuclides = ["total"] + + ds.attrs["filter_axes"] = json.dumps(filter_axes) + ds.attrs["scores"] = json.dumps(scores) + ds.attrs["nuclides"] = json.dumps(nuclides) + + ds.attrs["group"] = group_name + ds.attrs["tally_name"] = group_name + + ds["mean"].attrs["tally_id"] = int(tally_id) + ds["mean"].attrs["tally_name"] = group_name + ds["mean"].attrs["tally_group"] = group_name + + ds["mc_std"].attrs["tally_id"] = int(tally_id) + ds["mc_std"].attrs["tally_name"] = group_name + ds["mc_std"].attrs["tally_group"] = group_name + + observed_tally = { + "name": group_name, + "id": int(tally_id), + "filters": filter_axes, + "scores": scores, + "nuclides": nuclides, + } + ds.attrs["observed_tally"] = json.dumps(observed_tally) + + if spec_tally is not None: + ds.attrs["spec_tally"] = json.dumps(spec_tally) + consistent, issues = _validate_tally_consistency(spec_tally, observed_tally) + ds.attrs["spec_consistent"] = int(bool(consistent)) + ds.attrs["spec_consistency_issues"] = json.dumps(issues) + + return ds + + +def convert_file(input_path: Path, output_path: Path, benchmark: str | None, engine: str) -> Path: + repo_root = Path(__file__).resolve().parents[1] + spec_lookup = _load_spec_lookup(repo_root, benchmark) + + if output_path.exists(): + output_path.unlink() + + with h5py.File(input_path, "r") as src: + for idx, group_name in enumerate(src.keys(), start=1): + group = src[group_name] + if group_name not in group: + raise KeyError(f"Legacy group '{group_name}' missing data dataset '{group_name}'") + if "column" not in group: + raise KeyError(f"Legacy group '{group_name}' missing 'column' dataset") + + arr = np.asarray(group[group_name][()]) + columns = _decode_columns(group) + spec_tally = spec_lookup.get(group_name) + + ds = _legacy_group_to_dataset( + group_name=group_name, + arr=arr, + columns=columns, + tally_id=idx, + spec_tally=spec_tally, + ) + mode = "w" if idx == 1 else "a" + ds.to_netcdf(output_path, mode=mode, group=group_name, engine=engine) + + return output_path.resolve() + + +def main() -> None: + parser = argparse.ArgumentParser(description="Convert legacy OFB result HDF5 format to the current tally schema.") + parser.add_argument("input", type=Path, help="Legacy input .h5 file") + parser.add_argument( + "-o", + "--output", + type=Path, + default=None, + help="Output .h5 file (default: _converted.h5)", + ) + parser.add_argument( + "--benchmark", + type=str, + default=None, + help="Optional benchmark name to attach spec_tally and spec_consistency metadata.", + ) + parser.add_argument( + "--engine", + choices=["auto", "h5netcdf"], + default="auto", + help="NetCDF engine to use (default: auto, which resolves to h5netcdf).", + ) + args = parser.parse_args() + + input_path = args.input.resolve() + if not input_path.exists(): + raise FileNotFoundError(f"Input file not found: {input_path}") + + output_path = args.output.resolve() if args.output else input_path.with_name(f"{input_path.stem}_converted.h5") + engine = _select_engine() if args.engine == "auto" else args.engine + out = convert_file(input_path=input_path, output_path=output_path, benchmark=args.benchmark, engine=engine) + print(f"Converted: {input_path} -> {out}") + + +def _select_engine() -> str: + if importlib.util.find_spec("h5netcdf") is not None: + return "h5netcdf" + raise RuntimeError( + "h5netcdf is required for this converter. Install it with: pip install h5netcdf" + ) + + +if __name__ == "__main__": + main() \ No newline at end of file From 64b9cc0cde006ec6c519309c23df4664c24b679c Mon Sep 17 00:00:00 2001 From: SteSeg Date: Thu, 16 Apr 2026 12:58:17 -0400 Subject: [PATCH 2/4] - legacy openmc csg results oktavian_al (nsrc interpolation non consistent) --- .../oktavian_al/openmc-0-14-0_endfb80_csg.h5 | Bin 20806 -> 0 bytes .../oktavian_al/openmc-0-14-0_fendl32_csg.h5 | Bin 20806 -> 0 bytes .../oktavian_al/openmc-0-14-0_jeff33_csg.h5 | Bin 20806 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_endfb80_csg.h5 delete mode 100644 src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_fendl32_csg.h5 delete mode 100644 src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_jeff33_csg.h5 diff --git a/src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_endfb80_csg.h5 b/src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_endfb80_csg.h5 deleted file mode 100644 index 9471186396715b848d351c5b10236c6939d3a041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20806 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 diff --git a/src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_fendl32_csg.h5 b/src/openmc_fusion_benchmarks/results_database/oktavian_al/openmc-0-14-0_fendl32_csg.h5 deleted file mode 100644 index 3a93b1ad54239fe44eb7db2148322e9360dd0071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20806 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 From 62249ed8236398f8fa85c23f8ed033d7b9ebfac8 Mon Sep 17 00:00:00 2001 From: SteSeg Date: Thu, 16 Apr 2026 13:41:28 -0400 Subject: [PATCH 3/4] converted oktavian al results available in database --- .../oktavian_al/experiment.h5 | Bin 19262 -> 38282 bytes .../oktavian_al/mcnp-6-1-1b_endfb80_csg.h5 | Bin 19262 -> 38282 bytes .../oktavian_al/mcnp-6-1-1b_jeff33_csg.h5 | Bin 19262 -> 38282 bytes .../oktavian_al/mcnp-6-1-1b_jendl40_csg.h5 | Bin 19262 -> 38282 bytes .../oktavian_al/mcnp-6-1-1b_tendl17_csg.h5 | Bin 19262 -> 38282 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/openmc_fusion_benchmarks/results_database/oktavian_al/experiment.h5 b/src/openmc_fusion_benchmarks/results_database/oktavian_al/experiment.h5 index 3fe2610d3ec783223ff49c513bc82fa859da04a4..ef0e3d7ce77852d2058296f3709b608acefaaca9 100644 GIT binary patch literal 38282 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 o@a-a7^U4|UJ#qW}N^ literal 19262 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 F{{sXt$0q;) literal 19262 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 literal 19262 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 diff --git a/src/openmc_fusion_benchmarks/results_database/oktavian_al/mcnp-6-1-1b_jendl40_csg.h5 b/src/openmc_fusion_benchmarks/results_database/oktavian_al/mcnp-6-1-1b_jendl40_csg.h5 index 94e9cd74f16a987f22f06c8524931ee4f0287099..55e749d54e690bfdf134cd1f74d8ea9666a46fee 100644 GIT binary patch literal 38282 zcmeG_30%$D_up4ZyH;h(YvD(z-u@oFBUDo+Wt24}6-B+M7aF^$LH0oyq>?SnG&2ka zGfZS(20u%T-x$n)EMpsE8~*ox@4dZOqscUxAM<?s?OL1A?qA z8e4GKnVE4WoGtHVe_l{GVV4rvRrdpR6v9{XKw5n}nVb)fsrikhsXKc=y)AlZ- z@M{W9T`?+w3EwQ_vrLVTNlJV_MvJP-dEqofu_hc>ALXe}f}Gii7}UtvqajmN6680F=B`5;n z;#e!#cw&&ELsja|jo}fHlnrz;p{d0?2503&-R~S38iZ;WgjclgXz4`YyQUK@xGnh8 zU^F2RFkd;&mK%sXoIhTIIIhu_jXk;NGzUiRDq6XiYe^$8MFRUr6mboa2jjr5-oCvh z+%@d;M{5KEA)c*Haw~8I%7IJI6#Q1sX($d%qh_u1ubkU6d=l~+-0Px1c$eUJtwM2^ z2slU1igQ7{g=ZMjE-5LgafzB3Eze;Pk3wUE40a)38G!)z6&Vov5c>%~v+aic9CwBQ z^moIt(uP415rG_=fC4m@7vbLLCYMG0yCUD8_Po<2Je04FkbFw2#&L%zuZbG#u8B#G zcW*Cr?@k#?P-2ocKGnUg&^=~MVj50itOmzv(vzbHCu(rK2nDG(%AGQB_W|SE3UxRm z2p9Q1O3GgT0HdNZra+$G{2meELsjueq|6z9L^0X7R`;6N{)%CG#ad zkwm4SKBZhtd}4`|#)*|IpG2aNkyMF_VUbFe6tm1%N%6_#Dmlp~mq@5j;p;0QaSAyr zO(_-8Z&e}%t(8h8Bl*O>3OT8PSR@yba>ZgP{T5Y^#YrXfTd_m z<)UV&NNHk~LQZNW@l`2Fxe|n$d@GU2gH9NhQoHQ?aptx=}=9#WGYOl2?K{mw6GjsaGmO z)FTh3F;XVD?=lidQp=ZGKB;UZ;}C($_iF0q+%M2NP>nR?kX`Fg!D5+cnQrQ z7O7N}E@H6~(Te1iD8;mrVyOa+9TF>3q8=k&xe|{v98>wty|>lQS1Q7id6py?^4 zb&&b0Py!!|Mi6V8Ook>Qja5h))e)tYG_PDNMjg+8CYR!wL%a$psyXjf_@W6)y$CO@ z4z4WoB9hS0lwyg5#wyV=!MrLFqq<70WZj}deN2l$=w*z+B3~(57)W^{U(`J27fB?n zB_cHCSoP3YRx)ac#Qgl_tBtbbT2a3eQ;GPcJV}Wk5x=4iXk9=-5-%4cvZ-_vSBaKZ zxk{IgT3?YDHK?MFDqlqfJ{4YA2|lqerYrUjK6z>xvF((&NJ}abrUx*~iqY^bkh1!I8VM;nW*$VZ}o)srs^f^1hR$uQ*Y+9Q! zfO$1E6bxhr0TL5PNl-P;Z#b`orbfh$Z!_r`3@F$paTn$co@#2 zJR#ncvuMScvd+$+e|+Q|&)*AR&c)81QRJ9eafQLoi#(S@`6}+$2)pAbm*UXn9q*7V znK*jw$F3w;JiF~{O0%(ec2C!=N<6!u<8K&I8q3da1)EpN&+Y?-G`_lXuv-o3qAGaV zHKw>qJZq1nN<3?iv`Rc{kE}{OYmdB2JZq1F##h%KWew>xnfrnfkVP1vfdU2!7${(% zfPn%A3K%HxhEaf5V==F!aZ*WRrIMyeB|Vf%YAcoWPb%raR8n`Tq%M=R*`xIvMvecy z>JX(xUx5H={~?u>YE)B+xTOb?O#~GVxzwwL|umzV4(IIzE`76dR<#gOx*x0#86_u{0QRP6hEV#X|=S&b;qsxb9Kj5s3mpLWPLex@m(pS zE)$q?b*mdi&^uiCPb?w2YfVIV#5HP!hBF>8xpzZ$-oVzil|iwZe0@}3ju0L z{8rTwA5R%Zd@46bFH%9Xqd@4^*?6SX0lSIi$gjYsY27tcp_s*w;PCa6Nk&dj^SoHKJ3u}dtbmFW-wVF zW)Ik5HFNCvO$mZ{zk!`20h|+sym~hBqc;t_&47Y?jGlne3IxTA6HB zNWXKV(49gL3Oy-oL19Y@(HP(znt!}Q44QXTG|aW3VYDscT{{ZBDfFSxmqI3!rJFI1 z$y}L?mC00@43)`DnQT-=@lbBcb)aFowc+SW#?jfub)@P36n3JpGlg9!44^QO!XOIY zp)i=j5DL3e_%4N^6jH5fE{ul5DeO++dldGd5brs$izI;SNntMvdsEnl!oC#tqcDoX z{uB%;*0)>eb4x?~5g-H}9Q>dXZg~AaOj--%n zgVJbNOJO>NqbM9r;TQ@tD14v7u@sJ@a6E+*D4a;)Bnl@}IEBJY3a3&yjY0!3P{2Te zH;)4NNen(vnQ)$TX}?V?S+|ElBOdD}ulhI0rf;r5z%PLUQvshs{_3_tESyDa!@@Pe z>hc@&hf6zQN4oRy=cJaL^o21xXrk7mN2HxdLHt86QHidT}xC(e@g3Dv_98=`SjzPZVv_g2dq94Y) z7X2{Zz37MWE=E6$cQg9o<|uqtY&!{$2G-6|rVkPdfi-xqfTM{Uch-TF+X`!d6{x_Rw$bRN7iLhTqPq^=`r_?uEnRLZMluVJPW~uGzqLvKh}PDt(zh)9^{3PC(xkr`U>eu6#mgp^ zpzGGDM-#0E;nlRZPfFSP&LD0UUZrsV;#T81j7K(>9b;MUpOYP<4>_yuHx zV>G?5oKAs0Ti4Z3I6Mtpf^IByoRb9w$zjg-u8xQ69r_;oB55#;pSh%YukWKlxz%^7 zOH2&B_gT1`@z`i6SZ(oBtGp4g@5lm4*PH3E-+#e@smmsSCeror$3YVzr2p19=YA8x zarc3y6SX5D^8Bb1lXs_qbu)$Kws~XVj?amW|Fq>)Xjbn|uPci)!GD1Fkygz=fU=-z#wJ`geCLo8>93vx zy^23v9W!hJH2FI1%dSlpLcogR7mjOZK(l2LXI7uch5l{7g&oHhf*(BXzr=br{I=jy z!rmQoLEhXgBQkwHH1agQ-)Y;2;4pRVt&WL{VcP6d?fZ{j3X57>%F^zA2szr#*UnsC z0$IPN&UosT3lVn&hsSC2pmviIH4Rp1=ceaZ8s`7rB2 zpU_9!3gBrMn|d&%maCxBw(-03P|krT?S`T09}Um8W?c1 z5MagDnbUn&!(9)pXxZf=82sz)p`7^|NbGuh?p?t;IQsP-*QE1>FhCx3p)jlf+U-xv zzS6h|X6(Q5(WkCOFnj)pq8VSUg|l-*wZ`6Sz`4|4=z424#6A1Z`$0X|K%Y~-H-BkU z1bsJ$7hmyM3(z-LraDvvpWHI?d00>cI}-W~Y^+%i#q;-14A`~?Hh%Nzo_UkkK>neg zjq}eH!R4Uvh}J(8K}+xBZkuKlfg)tUmV&lxpyTr)KDqPOL8B(c{kI#hhRNf)7P_GH zEY+DS-Y1ISv)>MQhoSN`Mo;}-G+6_Av)fvHl3ob%26yt0Wfy`re9#`DXCb)WT2=Z? zTL>om)Ur>P7r>E2W1nsbDS)#P7d<{XR{$51+Yj>SUI1oIJZDBtDFB-m*KN1v7r?2x z3)a8zC;(BXU&{TQ3t+^%$9`EpFCT{O0uSp^`Ea#3`f7Ile7JvV&4Qq^RdD;N)yNY6 zRd7%!GjpxC3Ub!|dg#+_d9eP-NPi*|FI1i@%GArc$u6dAF z*5iY8bsik-HSK7zJP&p|j~cjGwh|&Ygbe!tjR)h6SqpsjEeEw$v$xOI* z9MM;`AN=lI(XRdZ0VF?u)G)=-xZ~2Ui`sMyG47aoamL=5b9Z6u3uC`Tk9%-EEYKo! z+kardj2)w_>c>LE3FX0$cMOKzpSKx%>4H6Ed;UD8$-f;T>T&C^Z|9pZaT#7o49-9S z0|nl43cQ(8i)&Oo{t8kHDi~)czW;{Q0^e2edn~%Q!Uq-oFuuFc52Folr7*tB&`-yA z8Xx@JzaQS2<1-!J@x5Kr3Df}Iu@fu{+e_M?F`PFTH86a0&l?IM54(S0BC7X84^a_tejxjhp2a{!pE7d@1b32anYEk2JsDwc{hT z(f4bTrX@a9ckX%qK*TU3XtC(t=Lc+z;duG=+Xc&?t3!INunSY%RkvQZ_*Bs8pVg&a z3-`HgzN416a=0Cc!XBNv3%5RfsLuNO!}^~OdZG>;UM`>C`-QsRk<$A~#vJ4(XwOAi zbI@x}lhzkD{i@#isKY#~cOI*gyISqs)9smh%cy#>KYfJqb$4!4&)NtY?U^EVPcVV0 z?|mq_*rXnKq-B>h8EXMXCAlrcHb(H(%!a-EW(y!+dcN%AJ;va4?zod!gJ8)BBTbws zEH0n4sNs1t=&o5*JojgFhz}m)dUcEmnE9REvipH0xX9<#?|Q@na?Z4f+8%BS^2uY) zedksmER82Tikfc*eh2J!H5zRW9oCLqSv1cQOpPQ~-yE|B*E92P4BBZ9CHH)rC|g>? zvyjYT2h**fp++nr9#-4}lVChzc_e8Y= zTsE4w_qe|Uw28ga@M@4F%z!1|dj4h)a;u*G);c-B=*6S+!kRh2_0tF1M1?xQ-QH$9 z=I(QVpH7^#Q54(5^Dz%PS?Ab;Pm}y714134k6oKAWr_pD^?tB-aVH0`OTPHRz$OGkgmwu9ZbV;Tja_~G9? z-}u789)dp_V83La9c=7rcewF8cCcQPF>~r+JIJ{3%YnmBQ2r)Ow)s2T!6)N0cbqA( zgSp;!Egf?aJ&R3#z1`FfX1@Dbe73P2{JV5YpW@}Vu>KpLg@a;k!8>BV%iJ%XqO@Qzn)VYKyQaRryWZgz_G08ysvT_ zz+mqtYi7+v{TQa~7}Vbet~lF=c1Ppkh#Q2sj<&zot)No?g)*>n-BI`(h){_4DNK{whRV+G3(^X5IIP{PZo(ZK>B3vKpm?x`8&+Y)<|TPNu_@?+Gfj)^RaMf)$9QX! ziVF}9zMpY@D)7W2L3>&nvPw~7z4-e-S}zK4u?F|rDZtAMbT+hYXo0$C6qS9yw=4aG zYMkXzjk6L8vARNit}{(7qqc+G{XDV(LQdJ@beP5eX?;opJC&s(AOX_hYJx?Oa7I zn0?6LtEdHYTwAKpmP)J4Dq7di1n{h{rCM-nabyc`Rq4rgsms+M_{(XvGk85Ela$DJC-O3AZ}V`z!QeHa&Hw6O zBDGGcgO${TgE@qXOh52-t)zG#R?C$XDb2t9wVM^f$yU-zZwZl_dEFTUCmI}=_a0ov zaTPYY5!=L$m7YtLl-hKX*O0@+z(*28%Nu*9k#Hvh`|ux(r7L#B+W58I}t zR_}NpF+PMX+|pQV0El|Aty}8FW@o8aSCWXgG)pk(%0dQnEAr|}BWU@&$ly22Al8+J zjW8p}+d$TphD{x_SY2t@iZF}Sm4*yWvsi+QM}`bWbx!3lj|F zD;^oL=*{vH1bi&EfsGt4jo>0)T`WP%#}W&|yq7eLcy)OR83{IQeVk#&Hmr%i76ym; z6BC-R{D~RC+S(ds8~)0>T%ys1*MsWP$r{3O59vCgvz1sGQ-!HvF`9CfY#7#!>3_qr z!W+D%qf0jjM7lX(SXT6mgd3KXKeS_Bz5P)pg2NU@ncZ^q=!%`nw6CxZywqeWnZSSE zVk({Z)mOOEV#AD~*4ALEZq?RJG2IN)F&Q0et61ETReBvG#lIPV9A+%&w;w9JI*w+T z&4fDq&j=8&{w6_3$^WIjK~07r5uauPHMTFPD_f9E=*CX#tQ;nM!7q5QWARMrf?x7r z$Ksi^1;6OQj>R*NWw~>ylOCn}k|Ys%3SQ!V&;Rsn=ohh}?eoI~QFel&>3;M^+R69*X13s9I9|mB!}l zF?mF;(4Hj*Eg>{_sv?nB5#n(SzS`ZUExk;8-Rl9Ch1HVg|Eg}3+wCg4M|aFC_x=_ZB*c`A z6Yqm>ccHXIXn`*YAUbpW3sA=O^*>H~&9=cMkDXqnUK^p?1kdZ| z4;Mk$!+HBUd{zKs{q}s{(_sblJ2&(H#1}q-ciug;%k{%$5SA8h;{D-Lc(~be#gp|* z;KB`Am^FI8KjQ0>`}0-H;OsTwJkiF*kR5rUsPyhanCr2@ZwF-?=FY@LX37@wNo~MwY3z?rw4RXIUNp?}j0ZHnV4>0^ zwSaBcZ8t<@y2JL-kKNi_^MEr}j|wi^y1|?b1sE3y!Q#k^gwp8dkdu7k``rzjLFR(& z#I}o^!Q{SImzBre;mD1ZxihYK!a4i?B};m`!?lEEVJAh-Fk;T>NOhJol((_&_SF+1 z)L*=N--E`UkkYI{*K#)@eBkrt{K3r~pwwRJa%hu1bZ|QS;Jfkm5Nlz&&Fq#voPM-( zt7^RyES~E+K4(Q!usttUHQeh8dpwUy_W$4v>g;>pgRv8|d2#-m`fVH_Jfn$Oz#Uuk z&LcNzjK3``4BoNfg`X{apxy1ZG_(N(eBs?`_>2Zn(tmJ!>-n~jb#6hz=K8i^@zcYb z5n(nEE;T+eNNx=~FBe(#e_{ire!(u`miEvtVX1pqlpT!SSGLW+tqrU<-fwfGwG|BP znCFz?VF@qpELRzyHiK0@3$Kk|-V~e)X3i@26T5gAD1i4je}}cGy5HZt$=0ISZs@OBi^6w+Z0{vR{=fEmTOXSn!sa$s5dCJ# zN4}YYs)yVz0{+0pWl}cD!p@fe4fzPO7QuQ7-z?)@F$*(m5iHECMX)fl7Qw>!=J>Lr z;Q{?~Rv|rSz1{K=(pS2377IVylsMrJ)}iiiu2s0YpXYzwN`wA9$Jzu1?JTYMSDx&p z7Eg9`o8na4SDsimoQ+mI(rfd|lYNgV_*Y(eGCcU)`Db5w>Qf4zSJ|t|KWo)b9}hn7 r*7lVr)}>|b!Tgfd=g+?K#JYG44?b_dNv}Lvz1T{Is%LPoodW+4m?o&& literal 19262 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 diff --git a/src/openmc_fusion_benchmarks/results_database/oktavian_al/mcnp-6-1-1b_tendl17_csg.h5 b/src/openmc_fusion_benchmarks/results_database/oktavian_al/mcnp-6-1-1b_tendl17_csg.h5 index 57b8cf1c13c0c41f4b2f04a55a7e3cc597d9efe9..256739c456e19807581d1fe170fdf14d8c39e715 100644 GIT binary patch literal 38282 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 literal 19262 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 From 3a30693466a8f87ad2a195580827ddf955b7d52c Mon Sep 17 00:00:00 2001 From: SteSeg Date: Thu, 16 Apr 2026 13:42:28 -0400 Subject: [PATCH 4/4] moved results conversion scripts (that are temporary) --- .../convert_legacy_results.py | 144 +++++++++++++----- .../convert_to_new_format.py | 0 2 files changed, 107 insertions(+), 37 deletions(-) rename {results_database => scripts}/convert_legacy_results.py (72%) rename {results_database => scripts}/convert_to_new_format.py (100%) diff --git a/results_database/convert_legacy_results.py b/scripts/convert_legacy_results.py similarity index 72% rename from results_database/convert_legacy_results.py rename to scripts/convert_legacy_results.py index bc793df4..3ac9d205 100644 --- a/results_database/convert_legacy_results.py +++ b/scripts/convert_legacy_results.py @@ -150,8 +150,8 @@ def _legacy_group_to_dataset(group_name: str, arr: np.ndarray, columns: list[str first = arr[0, :, :] low = np.asarray(first[:, low_idx], dtype=float) high = np.asarray(first[:, high_idx], dtype=float) - mean = np.asarray(first[:, mean_idx], dtype=float) - mc_std = np.asarray(first[:, std_idx], dtype=float) + mean_all = np.asarray(arr[:, :, mean_idx], dtype=float) + mc_std_all = np.asarray(arr[:, :, std_idx], dtype=float) if len(low) == 0: energy_edges = np.asarray([], dtype=float) @@ -168,51 +168,121 @@ def _legacy_group_to_dataset(group_name: str, arr: np.ndarray, columns: list[str elif "photon" in low_name or "gamma" in low_name: particle = "photon" - mean_5d = mean.reshape(1, 1, mean.shape[0], 1, 1) - std_5d = mc_std.reshape(1, 1, mc_std.shape[0], 1, 1) + n_real = int(arr.shape[0]) + n_rows = int(arr.shape[1]) + + # Build filter metadata in the same style as backend/openmc/tallies.py. + filter_axes: list[dict] = [ + { + "name": "ParticleFilter", + "axis": "particle", + "num_bins": 1, + "bins": [particle] if particle is not None else [], + } + ] + + spec_filters = list(spec_tally.get("filters", [])) if isinstance(spec_tally, dict) else [] + used_dims: dict[str, int] = {} + non_particle_axes: list[dict] = [] + + for sf in spec_filters: + ftype = _normalize_filter_type(sf.get("type", "")) + class_name = f"{ftype.capitalize()}Filter" if ftype else "Filter" + + base_dim = ftype or "filter" + dim_idx = used_dims.get(base_dim, 0) + used_dims[base_dim] = dim_idx + 1 + axis_name = base_dim if dim_idx == 0 else f"{base_dim}_{dim_idx}" + + if ftype == "energy": + bins = energy_edges.tolist() + num_bins = max(len(bins) - 1, 0) + axis_meta = { + "name": class_name, + "axis": axis_name, + "num_bins": int(num_bins), + "bins": bins, + "kind": "edges", + "units": sf.get("units", "eV"), + } + else: + bins = list(sf.get("values", [])) + axis_meta = { + "name": class_name, + "axis": axis_name, + "num_bins": int(len(bins)), + "bins": bins, + } + if "units" in sf: + axis_meta["units"] = sf.get("units") + + non_particle_axes.append(axis_meta) + + # Fallback when specs are absent/incomplete: keep a single energy axis. + if not non_particle_axes: + non_particle_axes = [ + { + "name": "EnergyFilter", + "axis": "energy", + "num_bins": int(n_rows), + "bins": energy_edges.tolist() if len(energy_edges) == n_rows + 1 else np.arange(n_rows + 1, dtype=float).tolist(), + "kind": "edges", + "units": "eV", + } + ] + + # Legacy rows represent flattened non-particle filter bins. If the spec-driven + # product does not match, fall back to a single energy axis to preserve data. + non_particle_sizes = [int(a.get("num_bins", 0)) for a in non_particle_axes] + prod = int(np.prod(non_particle_sizes)) if non_particle_sizes else 0 + if prod != n_rows: + non_particle_axes = [ + { + "name": "EnergyFilter", + "axis": "energy", + "num_bins": int(n_rows), + "bins": energy_edges.tolist() if len(energy_edges) == n_rows + 1 else np.arange(n_rows + 1, dtype=float).tolist(), + "kind": "edges", + "units": "eV", + } + ] + non_particle_sizes = [n_rows] + + filter_axes.extend(non_particle_axes) + + # Legacy files typically carry a single score/nuclide aggregate per row. + if isinstance(spec_tally, dict) and len(spec_tally.get("scores", [])) == 1: + scores = [str(spec_tally["scores"][0])] + else: + scores = ["current"] + + if isinstance(spec_tally, dict) and len(spec_tally.get("nuclides", [])) == 1: + nuclides = [str(spec_tally["nuclides"][0])] + else: + nuclides = ["total"] + + dims = ("realization", "particle", *(a["axis"] for a in non_particle_axes), "nuclide", "score") + + mean_nd = mean_all.reshape((n_real, 1, *non_particle_sizes, 1, 1)) + std_nd = mc_std_all.reshape((n_real, 1, *non_particle_sizes, 1, 1)) - dims = ("particle", "surface", "energy", "nuclide", "score") coords = { + "realization": ("realization", np.arange(n_real, dtype=int)), "particle": ("particle", np.asarray([0], dtype=int)), - "surface": ("surface", np.asarray([0], dtype=int)), - "energy": ("energy", np.arange(mean.shape[0], dtype=int)), - "nuclide": ("nuclide", np.asarray([0], dtype=int)), - "score": ("score", np.asarray([0], dtype=int)), + "nuclide": ("nuclide", np.asarray(nuclides, dtype="U")), + "score": ("score", np.asarray(scores, dtype="U")), } + for axis_meta in non_particle_axes: + axis = axis_meta["axis"] + coords[axis] = (axis, np.arange(int(axis_meta["num_bins"]), dtype=int)) ds = xr.Dataset( { - "mean": xr.DataArray(mean_5d, dims=dims, coords=coords), - "mc_std": xr.DataArray(std_5d, dims=dims, coords=coords), + "mean": xr.DataArray(mean_nd, dims=dims, coords=coords), + "mc_std": xr.DataArray(std_nd, dims=dims, coords=coords), } ) - filter_axes = [ - { - "name": "ParticleFilter", - "axis": "particle", - "num_bins": 1, - "bins": [particle] if particle is not None else [], - }, - { - "name": "SurfaceFilter", - "axis": "surface", - "num_bins": 1, - "bins": [7], - }, - { - "name": "EnergyFilter", - "axis": "energy", - "num_bins": int(mean.shape[0]), - "bins": energy_edges.tolist(), - "kind": "edges", - "units": "eV", - }, - ] - - scores = ["current"] - nuclides = ["total"] - ds.attrs["filter_axes"] = json.dumps(filter_axes) ds.attrs["scores"] = json.dumps(scores) ds.attrs["nuclides"] = json.dumps(nuclides) diff --git a/results_database/convert_to_new_format.py b/scripts/convert_to_new_format.py similarity index 100% rename from results_database/convert_to_new_format.py rename to scripts/convert_to_new_format.py