Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Python bytecode cache
__pycache__/
*.pyc

# Prerequisites
*.d

Expand Down Expand Up @@ -31,3 +35,12 @@
*.exe
*.out
*.app

# CASL VERA Problem 2 -- ephemeral per-run outputs (regenerated by every run of <case>.py; see
# CASL_VERA_2D/README.md's Testing section for what's a committed baseline vs. run output)
CASL_VERA_2D/*/power.txt
CASL_VERA_2D/*/power_raw.txt
CASL_VERA_2D/*/keff.txt
CASL_VERA_2D/*/mesh_*.vtu
CASL_VERA_2D/*/mesh_*.pvtu
CASL_VERA_2D/*/*.restart.h5
62 changes: 25 additions & 37 deletions CASL_VERA_2D/2A/2A.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,11 @@
PowerIterationKEigenSolver,
CMFDAcceleration,
)
from pyopensn.logvol import LogicalVolume, RCCLogicalVolume
from pyopensn.fieldfunc import FieldFunctionInterpolationVolume
from pyopensn.logvol import RCCLogicalVolume
from pyopensn.post import VolumePostprocessor

sys.path.append(str(Path(__file__).resolve().parent.parent))
from casl_pin_power import compute_pin_powers # noqa: E402 -- needs sys.path set up first


def find_repo_root(start):
Expand Down Expand Up @@ -89,9 +92,12 @@ def make_spatial_partitioner(filename):
'it-clad', 'it-water-in', 'it-water-out',
'moderator', 'water_outside']

FUEL_XS_NAMES = {"fuel"} # only fissionable materials carry "kappa-fission" data in the MGXS file

for name in h5_mat_names:
xs_dict[name] = MultiGroupXS()
xs_dict[name].LoadFromOpenMC(xs_filepath, name, 294.0)
extra_xs_names = ["kappa-fission"] if name in FUEL_XS_NAMES else []
xs_dict[name].LoadFromOpenMC(xs_filepath, name, 294.0, extra_xs_names=extra_xs_names)
xs_list = np.append(xs_list, xs_dict[name])

block_ids = [i for i in range(0, len(xs_list))]
Expand Down Expand Up @@ -168,18 +174,8 @@ def make_spatial_partitioner(filename):
k_solver.Execute()

keff = k_solver.GetEigenvalue()
fflist = phys.GetScalarFluxFieldFunction()

pitch = 1.26
num_cells = 17
half_water_gap = 0.04


def compute_cell_center(i, j):
x_center = (i - 1) * pitch - (num_cells / 2) * pitch + half_water_gap
y_center = (j - 1) * pitch - (num_cells / 2) * pitch + half_water_gap
return x_center, y_center


your_files = os.getcwd()

Expand Down Expand Up @@ -214,34 +210,26 @@ def count_frequencies(data):

csv_size = lattice_csv.shape[0]

val_table = np.zeros([num_cells, num_cells])

fuel_xs = xs_dict["fuel"]
sig_f = np.array(fuel_xs.sigma_f)


for i in range(1, num_cells + 1):
for j in range(1, num_cells + 1):
if lattice_csv[i - 1, j - 1] == 'fu':
x_center, y_center = compute_cell_center(i, j)
my_lv = RCCLogicalVolume(r=0.4060, x0=x_center, y0=y_center, z0=-1.0, vz=2.0)
label_to_block_xs = {"fu": (h5_mat_names.index("fuel"), xs_dict["fuel"])}
pin_positions_csv = casl_mesh_dir / ('pin_positions_' + casename + '.csv')
val_table = compute_pin_powers(
phys, RCCLogicalVolume, VolumePostprocessor, pin_positions_csv, label_to_block_xs,
lattice_csv.shape,
)

val = 0
for g in range(0, num_groups):
ffi = FieldFunctionInterpolationVolume()
ffi.SetOperationType('sum')
ffi.SetLogicalVolume(my_lv)
ffi.AddFieldFunction(fflist[g])
ffi.Execute()
val_g = ffi.GetValue()
val += val_g * sig_f[g]
val_table[i - 1][j - 1] = val
# Raw (pre-normalization) values, saved for regression testing (see check_pin_powers.py) --
# unlike the peak-normalized power.txt below, these are directly comparable run-to-run: no
# division by a run-dependent "which pin is the max" statistic that a tiny amount of solve
# noise can flip between two near-tied pins, disproportionately amplifying that noise.
if rank == 0:
np.savetxt("power_raw.txt", val_table)

maxes = np.zeros([num_cells])
for i in range(0, num_cells):
maxes[i] = max(val_table[:, i])
val_max = max(maxes)

np.savetxt("power.txt", val_table / val_max)
with open("keff.txt", "w") as file:
file.write(str(keff))
if rank == 0:
np.savetxt("power.txt", val_table / val_max)
with open("keff.txt", "w") as file:
file.write(str(keff))
17 changes: 17 additions & 0 deletions CASL_VERA_2D/2A/power_baseline.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
9.009787239507925927e-01 8.955435236581035241e-01 8.997449958810571635e-01 9.085233661121394633e-01 9.176014817465728557e-01 9.265071759024978704e-01 9.244392420002396360e-01 9.247968894865996603e-01 9.288528574009163874e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
8.955435843495364034e-01 8.928346995075452375e-01 9.018305713902985410e-01 9.176449603014819045e-01 9.352799167971534988e-01 9.622981394407832401e-01 9.397555076947733399e-01 9.396365883125294971e-01 9.625384519800920247e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
8.997450825259101226e-01 9.018305513318009003e-01 9.261353610552700566e-01 9.678996057996603897e-01 9.856428976209942183e-01 0.000000000000000000e+00 9.777098455980275382e-01 9.761856376130318980e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
9.085231937134237157e-01 9.176447322957206332e-01 9.678994174286540408e-01 0.000000000000000000e+00 1.000000000000000000e+00 9.944993532642146805e-01 9.599182199917011271e-01 9.568700111311275736e-01 9.820561814584669591e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
9.176010495585384952e-01 9.352795121653876276e-01 9.856424358276246744e-01 9.999997906336290932e-01 9.818021130546861208e-01 9.942937536457677750e-01 9.620567195048193021e-01 9.595833467624070856e-01 9.852900307857267448e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
9.265066289925971699e-01 9.622975471296519867e-01 0.000000000000000000e+00 9.944990954680190676e-01 9.942936697051291128e-01 0.000000000000000000e+00 9.882595295660348000e-01 9.866874229640276717e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
9.244386792946565068e-01 9.397548651165021916e-01 9.777090486841242267e-01 9.599177094138280353e-01 9.620563480051310679e-01 9.882592265693044276e-01 9.612749073208827211e-01 9.605274379642392280e-01 9.863781616720295187e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
9.247963204215379207e-01 9.396359240783830336e-01 9.761847888538530693e-01 9.568692710133850365e-01 9.595827860383481234e-01 9.866870340368781855e-01 9.605272594355075411e-01 9.600945496217371256e-01 9.856801737682435727e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
9.288523787493857542e-01 9.625378500084016409e-01 0.000000000000000000e+00 9.820554520974235091e-01 9.852895235042880007e-01 0.000000000000000000e+00 9.863779326532661207e-01 9.856801241583968975e-01 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
17 changes: 17 additions & 0 deletions CASL_VERA_2D/2A/power_raw_baseline.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
1.653735839445057392e+09 1.643759593303341627e+09 1.651471346099305391e+09 1.667583941299556971e+09 1.684246715658376217e+09 1.700593012423530340e+09 1.696797344094347239e+09 1.697453801844522953e+09 1.704898483195190668e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.643759704701751947e+09 1.638787578469418287e+09 1.655299395390388966e+09 1.684326520033983469e+09 1.716695275043052197e+09 1.766286904585590363e+09 1.724910169438818455e+09 1.724691894312898874e+09 1.766727995421987057e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.651471505134912729e+09 1.655299358573252678e+09 1.699910550649292231e+09 1.776568330134133101e+09 1.809135933357885361e+09 0.000000000000000000e+00 1.794574909775625229e+09 1.791777243965601921e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.667583624863744020e+09 1.684326101532093287e+09 1.776567984381368876e+09 0.000000000000000000e+00 1.835488225730152845e+09 1.825391853412717819e+09 1.761918590458614111e+09 1.756323638985465050e+09 1.802552558072530508e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.684245922382327795e+09 1.716694532346210241e+09 1.809135085741592884e+09 1.835487841440644264e+09 1.802086218508860826e+09 1.825014477733844042e+09 1.765843781135672092e+09 1.761303934589132547e+09 1.808488250436501265e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.700592008576847076e+09 1.766285817405483007e+09 0.000000000000000000e+00 1.825391380230836153e+09 1.825014323661790133e+09 0.000000000000000000e+00 1.813938730484076738e+09 1.811053147326499939e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.696796311254874945e+09 1.724908989993967772e+09 1.794573447049538851e+09 1.761917653298939705e+09 1.765843099252368450e+09 1.813938174337145805e+09 1.764408774077324152e+09 1.763036802874110937e+09 1.810485501866363287e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.697452757332302570e+09 1.724690675118943930e+09 1.791775686078122616e+09 1.756322280508062840e+09 1.761302905386724472e+09 1.811052433455296516e+09 1.763036475186725855e+09 1.762242241418392420e+09 1.809204353287262201e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
1.704897604635941982e+09 1.766726890510037184e+09 0.000000000000000000e+00 1.802551219338922977e+09 1.808487319327393293e+09 0.000000000000000000e+00 1.810485081505119562e+09 1.809204262228972673e+09 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
Loading
Loading