diff --git a/test/test_pyarc_run_tutorial.py b/test/test_pyarc_run_tutorial.py index 2808ad89f829d27c6f4f0ced9ff25a3930e34e10..4c21f68dc2cae5b4c63302f55d6067f5a4bb8fcd 100644 --- a/test/test_pyarc_run_tutorial.py +++ b/test/test_pyarc_run_tutorial.py @@ -1,6 +1,6 @@ #!/usr/bin/python """TestPyARCRunSamples""" -import os,sys +import os, sys # MAKE SURE THE MODULE IS IN THE PATH sys.path.insert(0, os.path.dirname(__file__)+"/..") # standard imports @@ -90,12 +90,12 @@ class TestPyARCRunSample(unittest.TestCase): # for key2 in this.user_object.results_keff_mcc3.keys(): # print key2, this.user_object.results_keff_mcc3[key2] for key, result in mcc3_results: - self.assertEqual(this.user_object.results_keff_mcc3[key], result) + self.assertAlmostEqual(this.user_object.results_keff_mcc3[key], result, places=4) if 'dif3d' in exp_results: dif3d_results = exp_results['dif3d'] - for key2 in this.user_object.results_keff_dif3d.keys(): - print key2, this.user_object.results_keff_dif3d[key2] +# for key2 in this.user_object.results_keff_dif3d.keys(): +# print key2, this.user_object.results_keff_dif3d[key2] for key, result in dif3d_results: self.assertAlmostEqual(this.user_object.results_keff_dif3d[key], result, places=4) @@ -118,6 +118,13 @@ class TestPyARCRunSample(unittest.TestCase): for key, result in persent_results: self.assertAlmostEqual(this.user_object.results_kpert_persent[key], result, places=4) + if 'gamsor' in exp_results: + gamsor_results = exp_results['gamsor'] +# for key2 in this.user_object.results_power_gamsor.keys(): +# print (key2, this.user_object.results_power_gamsor[key2]) + for key, result in gamsor_results: + self.assertAlmostEqual(this.user_object.results_power_gamsor[key], result, places=4) + finally: # always cleanup output directories if cleanup: @@ -201,6 +208,17 @@ class TestPyARCRunSample(unittest.TestCase): self.run_ABTR_tutorial(6, input_file, results, description) + def test_PyARC_run_Sample7_ABTR(self): + """ Run Sample 7 """ + results = { 'mcc3' : [(('GAMMA', 0, 1, 'A', 1), 1.575230)], 'gamsor' : [(0, 8.391650e+07)]} + + input_file = os.path.dirname(os.path.abspath(__file__)) + input_file += '/../tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.son' + + description = 'GAMSOR' + + self.run_ABTR_tutorial(7, input_file, results, description) + def test_PyARC_run_Sample9_ABTR(self): """ Run Sample 9 """ results = { 'dif3d' : [(730, 0.974490)], 'persent' : [('A', -0.00235458863073),('G', -0.00794416863647),('O', -0.157597038079),('C', -0.000261448),('F', -0.00507143),('T', -0.000549869),('V', -0.120461),('D', -0.00241777),('Q', -0.00128873)]} @@ -245,7 +263,7 @@ class TestPyARCRunSample(unittest.TestCase): input_file = os.path.dirname(os.path.abspath(__file__)) input_file += '/../tutorial/Sample_15_ABTR_PROTEUS_Gamma/ABTR_Tutorial_Sample15.son' - description = 'PROTEUS-Nodal Gamma calculaiton' + description = 'PROTEUS-Nodal Gamma calculation' self.run_ABTR_tutorial(15, input_file, results, description) diff --git a/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample4.isotxs b/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample4.isotxs new file mode 100644 index 0000000000000000000000000000000000000000..4845336d263e5d0b21bbb4daaa740bf52e17e8fc Binary files /dev/null and b/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample4.isotxs differ diff --git a/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.son b/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.son new file mode 100644 index 0000000000000000000000000000000000000000..d9b70ba480cecd58f99bc3f53e9751d9511f695c --- /dev/null +++ b/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.son @@ -0,0 +1,585 @@ +=arc + +geometry{ + materials{ + material ( fuel_mat_1 ) { + temp = 900 % K + wdensity = 11.3726 % 15.77 * 0.75 / 1.04 (account for 75% smeared density and 4% axial swelling) + afracs{ + afrac ( U235 ) = 9.9797E-04 + afrac ( U236 ) = 7.9499E-05 + afrac ( U238 ) = 6.4448E-01 + afrac ( np237 ) = 7.1247E-04 + afrac ( pu238 ) = 3.0546E-04 + afrac ( pu239 ) = 1.1040E-01 + afrac ( pu240 ) = 1.4807E-02 + afrac ( pu241 ) = 1.5970E-03 + afrac ( pu242 ) = 7.0685E-04 + afrac ( am241 ) = 7.3957E-04 + afrac ( am242m ) = 1.9382E-05 + afrac ( am243 ) = 1.5442E-04 + afrac ( cm244 ) = 3.8446E-05 + afrac ( zr90 ) = 1.1740E-01 + afrac ( zr91 ) = 2.5320E-02 + afrac ( zr92 ) = 3.8282E-02 + afrac ( zr94 ) = 3.7968E-02 + afrac ( zr96 ) = 5.9892E-03 + } + } + material ( fuel_mat_2 ) { + temp = 900 % K + wdensity = 11.3726 % 15.77 * 0.75 / 1.04 (account for 75% smeared density and 4% axial swelling) + afracs{ + afrac ( U235 ) = 9.4779E-04 + afrac ( U236 ) = 7.5502E-05 + afrac ( U238 ) = 6.1208E-01 + afrac ( np237 ) = 6.7665E-04 + afrac ( pu238 ) = 3.8322E-04 + afrac ( pu239 ) = 1.3850E-01 + afrac ( pu240 ) = 1.8577E-02 + afrac ( pu241 ) = 2.0036E-03 + afrac ( pu242 ) = 8.8679E-04 + afrac ( am241 ) = 7.0239E-04 + afrac ( am242m ) = 1.8408E-05 + afrac ( am243 ) = 1.4665E-04 + afrac ( cm244 ) = 3.6513E-05 + afrac ( zr90 ) = 1.1740E-01 + afrac ( zr91 ) = 2.5320E-02 + afrac ( zr92 ) = 3.8282E-02 + afrac ( zr94 ) = 3.7968E-02 + afrac ( zr96 ) = 5.9892E-03 + } + } + + material ( fuel_mat_3 ) { + temp = 900 % K + wdensity = 11.3726 % 15.77 * 0.75 / 1.04 (account for 75% smeared density and 4% axaial swelling) + afracs{ + afrac ( U235 ) = 9.7169E-04 + afrac ( U236 ) = 7.7406E-05 + afrac ( U238 ) = 6.2751E-01 + afrac ( np237 ) = 6.9371E-04 + afrac ( pu238 ) = 3.4619E-04 + afrac ( pu239 ) = 1.2512E-01 + afrac ( pu240 ) = 1.6782E-02 + afrac ( pu241 ) = 1.8100E-03 + afrac ( pu242 ) = 8.0110E-04 + afrac ( am241 ) = 7.2010E-04 + afrac ( am242m ) = 1.8872E-05 + afrac ( am243 ) = 1.5035E-04 + afrac ( cm244 ) = 3.7434E-05 + afrac ( zr90 ) = 1.1740E-01 + afrac ( zr91 ) = 2.5320E-02 + afrac ( zr92 ) = 3.8282E-02 + afrac ( zr94 ) = 3.7968E-02 + afrac ( zr96 ) = 5.9892E-03 + } + } + material ( sodium ) { + temp = 700 % K + wdens{ + wden ( na23 ) = 0.850 % g/cc + } + } + material ( ht9 ) { + temp = 700 + wdensity= 7.648 + afracs{ + afrac ( FE54 ) = 5.0024E-02 % atom/barn-cm + afrac ( FE56 ) = 7.8525E-01 + afrac ( FE57 ) = 1.8135E-02 + afrac ( FE58 ) = 2.4130E-03 + afrac ( NI58 ) = 3.5920E-03 + afrac ( NI60 ) = 1.3840E-03 + afrac ( NI61 ) = 6.0000E-05 + afrac ( NI62 ) = 1.9200E-04 + afrac ( NI64 ) = 4.9000E-05 + afrac ( CR50 ) = 5.5290E-03 + afrac ( CR52 ) = 1.0662E-01 + afrac ( CR53 ) = 1.2090E-02 + afrac ( CR54 ) = 3.0090E-03 + afrac ( MN55 ) = 5.6370E-03 + afrac ( MO92 ) = 8.9300E-04 + afrac ( MO94 ) = 5.5600E-04 + afrac ( MO95 ) = 9.5800E-04 + afrac ( MO96 ) = 1.0030E-03 + afrac ( MO97 ) = 5.7500E-04 + afrac ( MO98 ) = 1.4520E-03 + afrac ( MO100 ) = 5.7900E-04 + } + } + material ( shield_b4c ) { + temp = 700 + wdensity= 2.0412 % 2.52*0.81 (accounts for 81% smeared density) + afracs{ + afrac ( b10 ) = 1.60E-01 % atom/barn-cm + afrac ( b11 ) = 6.40E-01 % atom/barn-cm + afrac ( c ) = 2.00E-01 % atom/barn-cm + } + } + material ( CRSR_b4c ) { + temp = 700 + wdensity= 2.142 % 2.52*0.85 (accounts for 85% smeared density) + afracs{ + afrac ( b10 ) = 1.60E-01 % atom/barn-cm + afrac ( b11 ) = 6.40E-01 % atom/barn-cm + afrac ( c ) = 2.00E-01 % atom/barn-cm + } + } + material ( void ) { + temp = 700 + adens{ + aden ( he4 ) = 1.0e-10 % atom/barn-cm + } + } + } + + blends{ + blend ( radial_reflector ) { + volf ( sodium ) = 0.1573 + volf ( ht9 ) = 0.8427 + } + blend ( lower_reflector ) { + volf ( sodium ) = 0.3208 + volf ( ht9 ) = 0.6792 + } + blend ( upper_gasplenum ) { + volf ( sodium ) = 0.3208 + volf ( ht9 ) = 0.2318 + volf ( void ) = 0.4474 + } + blend ( upper_naplenum ) { + volf ( sodium ) = 0.7682 + volf ( ht9 ) = 0.2318 + } + blend ( radial_shielding ) { + volf ( ht9 ) = 0.3041 + volf ( sodium ) = 0.1730 + volf ( shield_b4c ) = 0.5229 + } + blend ( control_empty ) { + volf ( ht9 ) = 0.0783 + volf ( sodium ) = 0.9217 + } + } + surfaces{ + plane ( z0 ) { z = 0 } + plane ( zLowCore ) { z = 0.6 } + plane ( zLowCore_CR ) { z = 1.4 } + plane ( zTopDF ) { z = 1.4 } + plane ( zTopDF_CR ) { z = 2.6 } + plane ( zTopNaGP ) { z = 1.6 } + plane ( zTopGP ) { z = 2.6 } + hexagon ( sub_assembly ){ orientation = y normal = z pitch = 0.14598 } % assem to assem distance including inter-assem gap + hexagon ( pin_DF_pitch ){ orientation = x normal = z pitch = 0.00908 } % assem to assem distance including inter-assem gap + hexagon ( pin_CR_pitch ){ orientation = x normal = z pitch = 0.01243 } % assem to assem distance including inter-assem gap + hexagon ( outer_duct_to_duct ){ orientation = y normal = z pitch = 0.14198 } % assem duct to duct outer distance + hexagon ( inner_duct_to_duct ){ orientation = y normal = z pitch = 0.13598 } % assem inner duct to duct distance + cylinder ( cladding_outer ) { axis = z radius = 0.004 } % fuel pellet outer diameter + cylinder ( cladding_outer_reflector ) { axis = z radius = 0.007025 } % fuel pellet outer diameter + cylinder ( cladding_inner ) { axis = z radius = 0.00348 } % fuel pellet outer cladding diameter - clad thickness + cylinder ( cladding_outer_CR ) { axis = z radius = 0.00555 } % CR clad outer diameter + cylinder ( cladding_inner_CR ) { axis = z radius = 0.00485 } % CR clad inner diameter + hexagon ( outer_duct_to_duct_CR ){ orientation = y normal = z pitch = 0.12798 } % meters + hexagon ( inner_duct_to_duct_CR ){ orientation = y normal = z pitch = 0.12198 } % meters + } + reactor{ + lower_axial_surf = z0 + lower_boundary_condition = extrapolated + + upper_axial_surf = zTopGP + upper_boundary_condition = extrapolated + + reactor_hex_lattice { + pitch=sub_assembly + num_ring = 9 + fill = [ control_rod fuel_1 fuel_1 fuel_1 fuel_2 fuel_2 reflector reflector shielding ] + replace{ ring=3 index=2 name=control_rod } + replace{ ring=3 index=4 name=fuel_3 } + replace{ ring=3 index=6 name=control_rod } + replace{ ring=3 index=8 name=fuel_3 } + replace{ ring=3 index=10 name=control_rod } + replace{ ring=3 index=12 name=fuel_3 } + + replace{ ring=4 index=1 name=fuel_3 } + replace{ ring=4 index=4 name=reflector } + replace{ ring=4 index=7 name=fuel_3 } + replace{ ring=4 index=10 name=reflector } + replace{ ring=4 index=13 name=fuel_3 } + replace{ ring=4 index=16 name=reflector } + + replace{ ring=5 index=3 name=control_rod } + replace{ ring=5 index=7 name=control_rod } + replace{ ring=5 index=11 name=control_rod } + replace{ ring=5 index=15 name=control_rod } + replace{ ring=5 index=19 name=control_rod } + replace{ ring=5 index=23 name=control_rod } + + replace{ ring=6 index=1 name=reflector } + replace{ ring=6 index=2 name=reflector } + replace{ ring=6 index=5 name=reflector } + replace{ ring=6 index=6 name=reflector } + replace{ ring=6 index=7 name=reflector } + replace{ ring=6 index=10 name=reflector } + replace{ ring=6 index=11 name=reflector } + replace{ ring=6 index=12 name=reflector } + replace{ ring=6 index=15 name=reflector } + replace{ ring=6 index=16 name=reflector } + replace{ ring=6 index=17 name=reflector } + replace{ ring=6 index=20 name=reflector } + replace{ ring=6 index=21 name=reflector } + replace{ ring=6 index=22 name=reflector } + replace{ ring=6 index=25 name=reflector } + replace{ ring=6 index=26 name=reflector } + replace{ ring=6 index=27 name=reflector } + replace{ ring=6 index=30 name=reflector } + + replace{ ring=8 index=1 name=shielding } + replace{ ring=8 index=2 name=shielding } + replace{ ring=8 index=7 name=shielding } + replace{ ring=8 index=8 name=shielding } + replace{ ring=8 index=9 name=shielding } + replace{ ring=8 index=14 name=shielding } + replace{ ring=8 index=15 name=shielding } + replace{ ring=8 index=16 name=shielding } + replace{ ring=8 index=21 name=shielding } + replace{ ring=8 index=22 name=shielding } + replace{ ring=8 index=23 name=shielding } + replace{ ring=8 index=28 name=shielding } + replace{ ring=8 index=29 name=shielding } + replace{ ring=8 index=30 name=shielding } + replace{ ring=8 index=35 name=shielding } + replace{ ring=8 index=36 name=shielding } + replace{ ring=8 index=37 name=shielding } + replace{ ring=8 index=42 name=shielding } + + replace{ ring=9 index=1 name=null } + replace{ ring=9 index=2 name=null } + replace{ ring=9 index=8 name=null } + replace{ ring=9 index=9 name=null } + replace{ ring=9 index=10 name=null } + replace{ ring=9 index=16 name=null } + replace{ ring=9 index=17 name=null } + replace{ ring=9 index=18 name=null } + replace{ ring=9 index=24 name=null } + replace{ ring=9 index=25 name=null } + replace{ ring=9 index=26 name=null } + replace{ ring=9 index=32 name=null } + replace{ ring=9 index=33 name=null } + replace{ ring=9 index=34 name=null } + replace{ ring=9 index=40 name=null } + replace{ ring=9 index=41 name=null } + replace{ ring=9 index=42 name=null } + replace{ ring=9 index=48 name=null } + } + + + assembly ( fuel_1 ) { + sub_assembly ( lower_refl_1 ) { + lower_axial_surf = z0 + upper_axial_surf = zLowCore + material = lower_reflector + } + sub_assembly ( fuel_region_1 ) { + lower_axial_surf = zLowCore + upper_axial_surf = zTopDF + hex_lattice { + pitch = pin_DF_pitch % lattice pitch in meters + num_ring = 9 + outer = sodium + fill = [ fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin] + pin ( fuel_pin ) { + sub_pin { + material = fuel_mat_1 + outer_surf = cladding_inner % cylinder name + } + sub_pin { + material = ht9 + inner_surf = cladding_inner + outer_surf = cladding_outer % cylinder name + } + wire_wrap{ + diameter = 0.00103 % meters + path = 0.2032 % meters + material = ht9 + } + } + } + radial_region { + material = ht9 + inner_surf = inner_duct_to_duct % surface name + outer_surf = outer_duct_to_duct + } + radial_region { + material = sodium + inner_surf = outer_duct_to_duct % surface name + outer_surf = sub_assembly + } + } + sub_assembly ( na_plenum_1 ) { + lower_axial_surf = zTopDF + upper_axial_surf = zTopNaGP + material = upper_naplenum + } + sub_assembly ( gas_plenum_1 ) { + lower_axial_surf = zTopNaGP + upper_axial_surf = zTopGP + material = upper_gasplenum + } + } + assembly ( fuel_2 ) { + sub_assembly ( lower_refl_2 ) { + lower_axial_surf = z0 + upper_axial_surf = zLowCore + material = lower_reflector + } + sub_assembly ( fuel_region_2 ) { + lower_axial_surf = zLowCore + upper_axial_surf = zTopDF + hex_lattice { + pitch = pin_DF_pitch % lattice pitch in meters + num_ring = 9 + outer = sodium + fill = [ fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin] + pin ( fuel_pin ) { + sub_pin { + material = fuel_mat_2 + outer_surf = cladding_inner % cylinder name + } + sub_pin { + material = ht9 + inner_surf = cladding_inner + outer_surf = cladding_outer % cylinder name + } + wire_wrap{ + diameter = 0.00103 % meters + path = 0.2032 % meters + material = ht9 + } + } + } + radial_region { + material = ht9 + inner_surf = inner_duct_to_duct % surface name + outer_surf = outer_duct_to_duct + } + radial_region { + material = sodium + inner_surf = outer_duct_to_duct % surface name + outer_surf = sub_assembly + } + } + sub_assembly ( na_plenum_2 ) { + lower_axial_surf = zTopDF + upper_axial_surf = zTopNaGP + material = upper_naplenum + } + sub_assembly ( gas_plenum_2 ) { + lower_axial_surf = zTopNaGP + upper_axial_surf = zTopGP + material = upper_gasplenum + } + } + assembly ( fuel_3 ) { + sub_assembly ( lower_refl_3 ) { + lower_axial_surf = z0 + upper_axial_surf = zLowCore + material = lower_reflector + } + sub_assembly ( fuel_region_3 ) { + lower_axial_surf = zLowCore + upper_axial_surf = zTopDF + hex_lattice { + pitch = pin_DF_pitch % lattice pitch in meters + num_ring = 9 + outer = sodium + fill = [ fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin fuel_pin] + pin ( fuel_pin ) { + sub_pin { + material = fuel_mat_3 + outer_surf = cladding_inner % cylinder name + } + sub_pin { + material = ht9 + inner_surf = cladding_inner + outer_surf = cladding_outer % cylinder name + } + wire_wrap{ + diameter = 0.00103 % meters + path = 0.2032 % meters + material = ht9 + } + } + } + radial_region { + material = ht9 + inner_surf = inner_duct_to_duct % surface name + outer_surf = outer_duct_to_duct + } + radial_region { + material = sodium + inner_surf = outer_duct_to_duct % surface name + outer_surf = sub_assembly + } + } + sub_assembly ( na_plenum_3 ) { + lower_axial_surf = zTopDF + upper_axial_surf = zTopNaGP + material = upper_naplenum + } + sub_assembly ( gas_plenum_3 ) { + lower_axial_surf = zTopNaGP + upper_axial_surf = zTopGP + material = upper_gasplenum + } + } + assembly ( control_rod ) { + sub_assembly ( CR_empty ) { + lower_axial_surf = z0 + upper_axial_surf = zLowCore_CR + material = control_empty + } + + sub_assembly ( CR_region ) { + lower_axial_surf = zLowCore_CR + upper_axial_surf = zTopGP + hex_lattice { + pitch = pin_CR_pitch % lattice pitch in meters + num_ring = 6 + outer = sodium + fill = [ CR_pin CR_pin CR_pin CR_pin CR_pin CR_pin ] + pin ( CR_pin ) { + sub_pin { + material = CRSR_b4c + outer_surf = cladding_inner_CR % cylinder name + } + sub_pin { + material = ht9 + inner_surf = cladding_inner_CR % cylinder name + outer_surf = cladding_outer_CR % cylinder name + } + wire_wrap{ + diameter = 0.00133 % meters + path = 0.2032 % meters + material = ht9 + } + } + } + radial_region { + material = ht9 + inner_surf = inner_duct_to_duct_CR % surface name + outer_surf = outer_duct_to_duct_CR + } + radial_region { + material = sodium + inner_surf = outer_duct_to_duct_CR % surface name + outer_surf = inner_duct_to_duct + } + radial_region { + material = ht9 + inner_surf = inner_duct_to_duct % surface name + outer_surf = outer_duct_to_duct + } + radial_region { + material = sodium + inner_surf = outer_duct_to_duct % surface name + outer_surf = sub_assembly + } + } + } + + assembly ( reflector ) { + sub_assembly ( refl_region ) { + lower_axial_surf = z0 + upper_axial_surf = zTopGP + material = radial_reflector + } + } + + % updated, the dimension has not been updated yet! the dimensions are from fuel assembly design + assembly ( shielding ) { + sub_assembly ( shield_region ) { + lower_axial_surf = z0 + upper_axial_surf = zTopGP + material = radial_shielding + } + } + } +} +calculations{ + mcc3{ + num_cpu_max = 2 + xslib = "endf7.0" + egroupname = ANL33 + scattering_order = 3 + lumped_element_text_file( MoFP ) = "Mo.lumped.son" + cell( A ){ + associated_sub_assembly = fuel_region_1 + buckling_search = false + } + cell( B ) { + associated_sub_assembly = fuel_region_2 + buckling_search = false + } + cell( C ) { + associated_sub_assembly = fuel_region_3 + buckling_search = false + } + cell( D ){ + associated_sub_assembly = gas_plenum_1 + other_sub_assembly_using_XS = [ gas_plenum_2 gas_plenum_3 ] + external_source = A + } + cell( E ){ + associated_sub_assembly = lower_refl_1 + other_sub_assembly_using_XS = [ lower_refl_2 lower_refl_3 ] + buckling_search = false + external_source = A + } + cell( F ){ + associated_sub_assembly = refl_region + buckling_search = false + external_source = A + } + cell( G ){ + associated_sub_assembly = shield_region + buckling_search = false + external_source = A + } + cell( H ){ + associated_sub_assembly = CR_region + buckling_search = false + external_source = A + } + cell( I ){ + associated_sub_assembly = CR_empty + buckling_search = false + external_source = A + } + cell( J ){ + associated_sub_assembly = na_plenum_1 + other_sub_assembly_using_XS = [ na_plenum_2 na_plenum_3 ] + buckling_search = false + external_source = A + } + } + dif3d{ + power = 250.0e6 % core power in Watts + geometry_type = hexagonal_third_core + isotxs = "ABTR_Tutorial_Sample4.isotxs" + max_axial_mesh_size = 0.05 % max. distance between each axial nodes in m - for Hex-z geometries + variant_options { + polynomial_approx_source = 2 + polynomial_approx_fluxes = 4 + polynomial_approx_leakages = 1 + angular_approx = 3 + anisotropic_scattering_approx = 1 + } + run_dif3d = false + gamsor { + egroupname = ANL21G + depletion_steps = [ 0 ] + } + } +} +end \ No newline at end of file diff --git a/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.summary b/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.summary new file mode 100644 index 0000000000000000000000000000000000000000..4bd8012675bfa17e1f749053726330cdcba89f14 --- /dev/null +++ b/tutorial/Sample_7_ABTR_GAMSOR/ABTR_Tutorial_Sample7.summary @@ -0,0 +1,116 @@ + ************************************ + * PYARC Version 1.4.0 * + * Released date - Not released * + * Contact: nstauff@anl.gov * + ************************************ +******************************** MCC3 Summary for perturbation GAMMA at DAYS = 0 ******************************** +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'A' IN REGION '1' K-INFINITE = 1.575240 +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'B' IN REGION '1' K-INFINITE = 1.757360 +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'C' IN REGION '1' K-INFINITE = 1.675380 +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'D' IN REGION '1' No Fission +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'E' IN REGION '1' No Fission +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'F' IN REGION '1' No Fission +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'G' IN REGION '1' No Fission +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'H' IN REGION '1' No Fission +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'I' IN REGION '1' No Fission +MCC3 CALCULATION FOR PERT 'GAMMA' AT TIMESTEP = 0, STEP '1', ID 'J' IN REGION '1' No Fission +************************ DIF3D/GAMSOR SUMMARY for Time-Step 0 *************************** +DAY= 0.00 + ***** WARNING - THE FOLLOWING ARE LISTS OF ISOTOPES FOR WHICH THERE IS NO GAMMA PRODUCTION ***** + ISOTOPES ZONES CONTAINING THE ISOTOPE + R4200A R10001 R10101 R20001 R20201 R30101 R30201 R30401 R30501 + R4200B R40001 R40101 R40301 R40401 R40501 R40701 R50201 R50301 R50701 R50801 + R4200C R20301 R30001 + R0204D R10003 R10103 R20003 R20203 R20303 R30003 R30103 R30203 R30403 R30503 + R40003 R40103 R40303 R40403 R40503 R40703 R50203 R50303 R50703 R50803 + R4200D R10003 R10103 R20003 R20203 R20303 R30003 R30103 R30203 R30403 R30503 + R40003 R40103 R40303 R40403 R40503 R40703 R50203 R50303 R50703 R50803 + R4200E R10000 R10100 R20000 R20200 R20300 R30000 R30100 R30200 R30400 R30500 + R40000 R40100 R40300 R40400 R40500 R40700 R50200 R50300 R50700 R50800 + R4200F R30300 R50000 R50100 R50400 R50500 R50600 R50900 R60000 R60100 R60200 + R60300 R60400 R60500 R60600 R60700 R60800 R60900 R60A00 R60B00 R70200 + R70300 R70400 R70500 R70900 R70A00 R70B00 R70C00 + R4200G R70000 R70100 R70600 R70700 R70800 R70D00 R80200 R80300 R80400 R80500 + R80600 R80A00 R80B00 R80C00 R80D00 R80E00 + R4200H R00001 R20101 R40201 R40601 + R4200I R00000 R20100 R40200 R40600 + R4200J R10002 R10102 R20002 R20202 R20302 R30002 R30102 R30202 R30402 R30502 + R40002 R40102 R40302 R40402 R40502 R40702 R50202 R50302 R50702 R50802 +TOTAL GAMMA + NEUTRON POWER [MW] = 8.391650e+07 + Assembly| Ring| Index|Int Neutr Power|Int Gamma Power|Int Total Power + ID| #| #| [W]| [W]| [W] + ---------------|----------|----------|---------------|---------------|---------------| + R000| 1| 1| 2.679e+04| 2.045e+04| 4.723e+04| + R100| 2| 1| 4.681e+06| 5.224e+05| 5.204e+06| + R101| 2| 2| 4.664e+06| 5.207e+05| 5.185e+06| + R200| 3| 1| 4.363e+06| 4.901e+05| 4.853e+06| + R201| 3| 2| 7.517e+04| 5.593e+04| 1.311e+05| + R202| 3| 3| 4.194e+06| 4.643e+05| 4.659e+06| + R203| 3| 4| 5.032e+06| 5.381e+05| 5.570e+06| + R300| 4| 1| 4.135e+06| 4.478e+05| 4.583e+06| + R301| 4| 2| 3.808e+06| 4.283e+05| 4.236e+06| + R302| 4| 3| 3.667e+06| 4.057e+05| 4.073e+06| + R303| 4| 4| 1.767e+04| 1.337e+05| 1.513e+05| + R304| 4| 5| 3.760e+06| 4.180e+05| 4.178e+06| + R305| 4| 6| 3.909e+06| 4.416e+05| 4.351e+06| + R400| 5| 1| 3.266e+06| 3.303e+05| 3.597e+06| + R401| 5| 2| 3.698e+06| 3.811e+05| 4.079e+06| + R402| 5| 3| 5.826e+04| 4.300e+04| 1.013e+05| + R403| 5| 4| 3.488e+06| 3.535e+05| 3.842e+06| + R404| 5| 5| 3.019e+06| 2.995e+05| 3.318e+06| + R405| 5| 6| 3.537e+06| 3.579e+05| 3.894e+06| + R406| 5| 7| 6.115e+04| 4.395e+04| 1.051e+05| + R407| 5| 8| 3.749e+06| 3.858e+05| 4.135e+06| + R500| 6| 1| 5.682e+03| 4.868e+04| 5.437e+04| + R501| 6| 2| 8.963e+03| 7.335e+04| 8.231e+04| + R502| 6| 3| 2.751e+06| 2.788e+05| 3.030e+06| + R503| 6| 4| 2.699e+06| 2.740e+05| 2.973e+06| + R504| 6| 5| 8.225e+03| 7.003e+04| 7.825e+04| + R505| 6| 6| 5.153e+03| 4.641e+04| 5.157e+04| + R506| 6| 7| 8.325e+03| 7.059e+04| 7.892e+04| + R507| 6| 8| 2.745e+06| 2.783e+05| 3.024e+06| + R508| 6| 9| 2.798e+06| 2.831e+05| 3.081e+06| + R509| 6| 10| 9.064e+03| 7.391e+04| 8.297e+04| + R600| 7| 1| 1.763e+03| 1.725e+04| 1.901e+04| + R601| 7| 2| 2.975e+03| 2.753e+04| 3.050e+04| + R602| 7| 3| 4.630e+03| 4.143e+04| 4.606e+04| + R603| 7| 4| 5.550e+03| 4.933e+04| 5.487e+04| + R604| 7| 5| 4.455e+03| 4.062e+04| 4.508e+04| + R605| 7| 6| 2.768e+03| 2.667e+04| 2.944e+04| + R606| 7| 7| 1.629e+03| 1.660e+04| 1.823e+04| + R607| 7| 8| 2.795e+03| 2.682e+04| 2.962e+04| + R608| 7| 9| 4.530e+03| 4.106e+04| 4.559e+04| + R609| 7| 10| 5.659e+03| 5.000e+04| 5.566e+04| + R60A| 7| 11| 4.704e+03| 4.187e+04| 4.657e+04| + R60B| 7| 12| 3.002e+03| 2.768e+04| 3.068e+04| + R700| 8| 1| 1.623e+04| 3.276e+03| 1.950e+04| + R701| 8| 2| 4.479e+04| 7.500e+03| 5.229e+04| + R702| 8| 3| 1.434e+03| 1.447e+04| 1.591e+04| + R703| 8| 4| 1.869e+03| 1.839e+04| 2.026e+04| + R704| 8| 5| 1.841e+03| 1.825e+04| 2.009e+04| + R705| 8| 6| 1.370e+03| 1.412e+04| 1.549e+04| + R706| 8| 7| 4.280e+04| 7.204e+03| 5.001e+04| + R707| 8| 8| 1.533e+04| 3.106e+03| 1.843e+04| + R708| 8| 9| 4.307e+04| 7.248e+03| 5.032e+04| + R709| 8| 10| 1.389e+03| 1.425e+04| 1.564e+04| + R70A| 8| 11| 1.874e+03| 1.846e+04| 2.034e+04| + R70B| 8| 12| 1.902e+03| 1.860e+04| 2.050e+04| + R70C| 8| 13| 1.453e+03| 1.460e+04| 1.605e+04| + R70D| 8| 14| 4.506e+04| 7.544e+03| 5.260e+04| + R802| 9| 3| 1.332e+04| 2.680e+03| 1.600e+04| + R803| 9| 4| 2.557e+04| 4.506e+03| 3.008e+04| + R804| 9| 5| 2.813e+04| 5.001e+03| 3.313e+04| + R805| 9| 6| 2.503e+04| 4.423e+03| 2.945e+04| + R806| 9| 7| 1.283e+04| 2.585e+03| 1.542e+04| + R80A| 9| 11| 1.298e+04| 2.610e+03| 1.559e+04| + R80B| 9| 12| 2.537e+04| 4.482e+03| 2.985e+04| + R80C| 9| 13| 2.854e+04| 5.069e+03| 3.361e+04| + R80D| 9| 14| 2.591e+04| 4.565e+03| 3.048e+04| + R80E| 9| 15| 1.347e+04| 2.705e+03| 1.618e+04| +************************************ ERROR MESSAGES ************************************* +*********************************** WARNING MESSAGES ************************************ +WARNING: Homogenization of region 'sub_assembly(fuel_region_1)' is performed, and undefined region outside of pin are filled up with 'outer' material +WARNING: Homogenization of region 'sub_assembly(fuel_region_2)' is performed, and undefined region outside of pin are filled up with 'outer' material +WARNING: Homogenization of region 'sub_assembly(fuel_region_3)' is performed, and undefined region outside of pin are filled up with 'outer' material +WARNING: Homogenization of region 'sub_assembly(CR_region)' is performed, and undefined region outside of pin are filled up with 'outer' material +********************************* MAIN OUTPUT FOR DAKOTA ********************************** diff --git a/tutorial/Sample_7_ABTR_GAMSOR/Mo.lumped.son b/tutorial/Sample_7_ABTR_GAMSOR/Mo.lumped.son new file mode 100755 index 0000000000000000000000000000000000000000..4aa5b8d33c7dee14f728ea64612f22f1a4ab0244 --- /dev/null +++ b/tutorial/Sample_7_ABTR_GAMSOR/Mo.lumped.son @@ -0,0 +1,11 @@ +lumped_element_external_list{ + + afrac(MO92) = 0.1484 + afrac(MO94) = 0.0925 + afrac(MO95) = 0.1592 + afrac(MO96) = 0.1668 + afrac(MO97) = 0.0955 + afrac(MO98) = 0.2413 + afrac(MO100) = 0.0963 + +} diff --git a/tutorial/Sample_7_ABTR_GAMSOR/README.md b/tutorial/Sample_7_ABTR_GAMSOR/README.md new file mode 100755 index 0000000000000000000000000000000000000000..0428af1912f91862c8b0121c989b943d9fed832e --- /dev/null +++ b/tutorial/Sample_7_ABTR_GAMSOR/README.md @@ -0,0 +1,80 @@ + +# Sample 7 + +## Introduction + +This input introduces simple geometry modeling for DIF3D diffusion calculation with VARIANT neutron solver option. + +## Input Description + +The [__input__](ABTR_Tutorial_Sample7.son) displays the full input. + +The core geometry is similar to the one described in [__Sample1__](../Sample_1_ABTR_MCC3_DIF3DFD/ABTR_Tutorial_Sample1.son). + +The calculations in this sample uses dif3d/VARIANT (with similar input as in [__Sample2__](../Sample_2_ABTR_VARIANT/ABTR_Tutorial_Sample2.son)). GAMSOR is used for gamma transport calculations with the following simple input. The Gamma calculations use a 21-group energy structure. GAMSOR calculations are performed over depletion steps 0 (if REBUS depletion calculations are performed, GAMSOR can be done over as many depletion steps as necessary using `depletion_steps = [0 1 3 5 ...]`). GAMSOR requires running MC2-3 to compute the gamma cross-sections (GAMISO) and PMATRIX file that contains the photon production based cross sections and the power conversion KERMA cross sections. + +```javascript + dif3d{ + power = 250.0e6 % core power in Watts + geometry_type = hexagonal_third_core + isotxs = "ABTR_Tutorial_Sample4.isotxs" + max_axial_mesh_size = 0.05 % max. distance between each axial nodes in m - for Hex-z geometries + variant_options { + polynomial_approx_source = 2 + polynomial_approx_fluxes = 4 + polynomial_approx_leakages = 1 + angular_approx = 3 + anisotropic_scattering_approx = 1 + } + run_dif3d = false + gamsor { + egroupname = ANL21G + depletion_steps = [ 0 ] + } + } +``` + +## Output Description + +* [__summary__](ABTR_Tutorial_Sample7.summary): `ABTR_Tutorial_Sample7.summary` - summary output file with main results - similar to [__Sample_1__](../Sample_1_ABTR_MCC3_DIF3DFD/ABTR_Tutorial_Sample1.summary). The only change is with the printout of integrated neutron and gamma power per assembly: + +```javascript +************************ DIF3D/GAMSOR SUMMARY for Time-Step 0 *************************** +DAY= 0.00 +TOTAL GAMMA + NEUTRON POWER [MW] = 8.202740e+07 + Assembly| Ring| Index|Int Neutr Power|Int Gamma Power|Int Total Power + ID| #| #| [W]| [W]| [W] + ---------------|----------|----------|---------------|---------------|---------------| + R000| 1| 1| 2.618e+04| 1.999e+04| 4.617e+04| + R100| 2| 1| 4.576e+06| 5.106e+05| 5.086e+06| +... +``` + +* [__visit__](ABTR_Tutorial_Sample7_GAMMA_0.vtk): "ABTR_Tutorial_Sample7_GAMMA_0.vtk" - vtk file containing gamma and neutron power profiles to display with VisIts + +Not displayed here: + +* `ABTR_Tutorial_Sample7.zip` - gathers all input, output, isotxs, and summary files + `gamsor_table_0.out` that contains detailed information: + +```javascript +REGION/AREA POWER TABLE FOR GAMSOR WITH TOTAL DOMAIN POWER(W) OF 8.202744E+07 +REGION REGION NEUTRON POWER(W) GAMMA POWER(W) TOTAL POWER(W) VOLUME (CC) GEODST VOL(CC) + 1 R00000 8.314591E+03 1.608612E+04 2.440071E+04 2.583720E+04 8.612398E+03 + 2 R00001 1.786812E+04 3.901718E+03 2.176984E+04 2.214617E+04 7.382056E+03 + 3 R10000 2.385780E+03 2.203659E+04 2.442237E+04 2.214617E+04 1.107308E+04 +... +AREA AREA NEUTRON POWER(W) GAMMA POWER(W) TOTAL POWER(W) VOLUME (CC) GEODST VOL(CC) + 1 CORE 7.304287E+07 8.984569E+06 8.202744E+07 3.550769E+06 3.182896E+06 + 2 L101E 1.647716E+04 1.542009E+05 1.706780E+05 1.107308E+05 8.858467E+04 + 3 F102A 3.227368E+07 3.405671E+06 3.567935E+07 1.476411E+05 1.181129E+05 +... +``` + +* `ABTR_Tutorial_Sample7.inp` - all input files concatenated +* `ABTR_Tutorial_Sample7.out` - all output files concatenated +* `ABTR_Tutorial_Sample7.isotxs_R_0` - Binary file of 33gp cross-sections for Reference (un-perturbed), time-step 0 +* `ABTR_Tutorial_Sample7.isotxs_GAMMA_GAMISO_0` - Binary file of 21gp gamma cross-sections for Reference (un-perturbed), time-step 0 +* `ABTR_Tutorial_Sample7.isotxs_GAMMA_ISOTXS_0` - Binary file of 33gp neutron cross-sections for Reference (un-perturbed), time-step 0 +* `ABTR_Tutorial_Sample7.isotxs_GAMMA_PMATRX_0` - Binary file that contains the neutron to gamma production based cross sections and the power conversion KERMA cross sections +* `ABTR_Tutorial_Sample7.timeline.out` - timeline of calculation +* `ABTR_Tutorial_Sample7.extended.summary` - extended summary file