From e5b4586b7c4d63f5b837d1a8dd220c7520b359c3 Mon Sep 17 00:00:00 2001 From: alexandermote Date: Tue, 7 Jan 2025 15:42:22 -0800 Subject: [PATCH] added slab_reed_dd_3d to regression tests --- test/regression/run.py | 4 +- test/regression/slab_reed_dd_3d/answer.h5 | Bin 0 -> 360584 bytes test/regression/slab_reed_dd_3d/input.py | 81 ++++++++++++++++++++++ 3 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 test/regression/slab_reed_dd_3d/answer.h5 create mode 100644 test/regression/slab_reed_dd_3d/input.py diff --git a/test/regression/run.py b/test/regression/run.py index 65b10344..da772776 100644 --- a/test/regression/run.py +++ b/test/regression/run.py @@ -51,11 +51,11 @@ + "Note: Skipping %s (require 4 MPI ranks)" % name + Style.RESET_ALL ) - elif name == "dd_cooper" and not (mpiexec == 8 or srun == 8): + elif name == "slab_reed_dd_3d" and not ((mpiexec % 16) == 0 or (srun % 16) == 0): temp.remove(name) print( Fore.YELLOW - + "Note: Skipping %s (require 8 MPI ranks)" % name + + "Note: Skipping %s (require 16 MPI ranks)" % name + Style.RESET_ALL ) names = temp diff --git a/test/regression/slab_reed_dd_3d/answer.h5 b/test/regression/slab_reed_dd_3d/answer.h5 new file mode 100644 index 0000000000000000000000000000000000000000..90657e081ce4e4e5e5a390e71e0f4f3094a7ae04 GIT binary patch literal 360584 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 Z2o(4>3VgqH-TI$mUHAR;i25n?_#3R;-BJJm literal 0 HcmV?d00001 diff --git a/test/regression/slab_reed_dd_3d/input.py b/test/regression/slab_reed_dd_3d/input.py new file mode 100644 index 00000000..cedd5f4c --- /dev/null +++ b/test/regression/slab_reed_dd_3d/input.py @@ -0,0 +1,81 @@ +import numpy as np + +import mcdc + +# ============================================================================= +# Set model +# ============================================================================= +# Three slab layers with different materials +# Based on William H. Reed, NSE (1971), 46:2, 309-314, DOI: 10.13182/NSE46-309 + +# Set materials +m1 = mcdc.material(capture=np.array([50.0])) +m2 = mcdc.material(capture=np.array([5.0])) +m3 = mcdc.material(capture=np.array([0.0])) # Vacuum +m4 = mcdc.material(capture=np.array([0.1]), scatter=np.array([[0.9]])) + +# Set surfaces +s1 = mcdc.surface("plane-z", z=0.0, bc="reflective") +s2 = mcdc.surface("plane-z", z=2.0) +s3 = mcdc.surface("plane-z", z=3.0) +s4 = mcdc.surface("plane-z", z=5.0) +s5 = mcdc.surface("plane-z", z=8.0, bc="vacuum") +sx1 = mcdc.surface("plane-x", x=0.0, bc="reflective") +sx2 = mcdc.surface("plane-x", x=8.0, bc="vacuum") +sx3 = mcdc.surface("plane-x", x=4.0) +sy1 = mcdc.surface("plane-y", y=0.0, bc="reflective") +sy2 = mcdc.surface("plane-y", y=8.0, bc="vacuum") +sy3 = mcdc.surface("plane-y", y=4.0) + +# Set cells +mcdc.cell(+s1 & -s2 & +sx1 & -sx3 & +sy1 & -sy3, m1) +mcdc.cell(+s2 & -s3 & +sx1 & -sx3 & +sy1 & -sy3, m2) +mcdc.cell(+s3 & -s4 & +sx1 & -sx3 & +sy1 & -sy3, m3) +mcdc.cell(+s4 & -s5 & +sx1 & -sx3 & +sy1 & -sy3, m4) + +mcdc.cell(+s1 & -s2 & +sx3 & -sx2 & +sy1 & -sy3, m1) +mcdc.cell(+s2 & -s3 & +sx3 & -sx2 & +sy1 & -sy3, m2) +mcdc.cell(+s3 & -s4 & +sx3 & -sx2 & +sy1 & -sy3, m3) +mcdc.cell(+s4 & -s5 & +sx3 & -sx2 & +sy1 & -sy3, m4) + +mcdc.cell(+s1 & -s2 & +sx1 & -sx3 & +sy3 & -sy2, m1) +mcdc.cell(+s2 & -s3 & +sx1 & -sx3 & +sy3 & -sy2, m2) +mcdc.cell(+s3 & -s4 & +sx1 & -sx3 & +sy3 & -sy2, m3) +mcdc.cell(+s4 & -s5 & +sx1 & -sx3 & +sy3 & -sy2, m4) + +mcdc.cell(+s1 & -s2 & +sx3 & -sx2 & +sy3 & -sy2, m1) +mcdc.cell(+s2 & -s3 & +sx3 & -sx2 & +sy3 & -sy2, m2) +mcdc.cell(+s3 & -s4 & +sx3 & -sx2 & +sy3 & -sy2, m3) +mcdc.cell(+s4 & -s5 & +sx3 & -sx2 & +sy3 & -sy2, m4) + +# ============================================================================= +# Set source +# ============================================================================= + +# Isotropic source in the absorbing medium +mcdc.source(x=[0.0,4.0],y=[0.0,4.0],z=[0.0, 2.0], isotropic=True, prob=50.0) +mcdc.source(x=[4.0,8.0],y=[0.0,4.0],z=[0.0, 2.0], isotropic=True, prob=50.0) +mcdc.source(x=[0.0,4.0],y=[4.0,8.0],z=[0.0, 2.0], isotropic=True, prob=50.0) +mcdc.source(x=[4.0,8.0],y=[4.0,8.0],z=[0.0, 2.0], isotropic=True, prob=50.0) + +# Isotropic source in the first half of the outermost medium, +# with 1/100 strength +mcdc.source(x=[0.0,4.0],y=[0.0,4.0],z=[4.0, 6.0], isotropic=True, prob=0.5) +mcdc.source(x=[4.0,8.0],y=[0.0,4.0],z=[4.0, 6.0], isotropic=True, prob=0.5) +mcdc.source(x=[0.0,4.0],y=[4.0,8.0],z=[4.0, 6.0], isotropic=True, prob=0.5) +mcdc.source(x=[4.0,8.0],y=[4.0,8.0],z=[4.0, 6.0], isotropic=True, prob=0.5) + +# ============================================================================= +# Set tally, setting, and run mcdc +# ============================================================================= + +mcdc.tally.mesh_tally(scores=["flux"], x=np.linspace(0.0, 8.0, 9), y=np.linspace(0.0, 8.0, 9), z=np.linspace(0.0, 8.0, 9)) + +# Setting +mcdc.setting(N_particle=5000) +dd_x = np.array([0.0,4.0,8.0]) +dd_y = np.array([0.0,4.0,8.0]) +dd_z = np.array([0.0, 2.0, 3.0, 5.0, 8.0]) +mcdc.domain_decomposition(x=dd_x,y=dd_y,z=dd_z) +# Run +mcdc.run()