Merge pull request #9 from mit-crpg/smr-update

Update SMR model
This commit is contained in:
Jingang Liang 2017-11-28 15:00:24 -05:00 committed by GitHub
commit a0a7e58197
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 1599 additions and 1685 deletions

View file

@ -12,39 +12,18 @@ modeled in 2D with reflective boundary conditions along the axial dimension.
Model Descriptions
------------------
**fuel-pin**
A single fuel pin with reflective boundary conditions (*i.e.*, an infinitely
repeating array of fuel pins). The default configuration is the BEAVRS fuel pin
with fresh 1.6% enriched UO2 fuel, but the script can be toggled to 2.4% or
3.1% enriched fuel.
**assembly**
A single fuel assembly with reflective boundary conditions (*i.e.*, an infinitely
repeating lattice of fuel assemblies). The default configuration is the BEAVRS
assembly with fresh 1.6% enriched UO2 fuel with 24 water-filled control rod
guide tubes and a central air-filled instrument tube. However, the script can
be toggled to use any of the 20+ fuel assemblies in the BEAVRS model.
**2x2-periodic**
A 2x2 fuel assembly colorset with periodic boundary conditions (*i.e.*, an
infinitely repeating lattice of the 2x2 assembly colorset). The default
configuration includes the BEAVRS assembly with fresh 1.6% enriched UO2 fuel
with 24 water-filled control rod guide tubes and a central air-filled
instrument tube, along with a 3.1% enriched fuel assembly with 20 burnable
poisons, four control rod guide tubes and a central instrument tube. However,
the script may be toggled to use any pair of the 20+ fuel assemblies in the
BEAVRS model.
**2x2-reflector**
A 2x2 fuel assembly colorset surrounded by a water reflector. Reflective
boundary conditions are used on the top and left boundaries (adjacent to the
assemblies) and vacuum boundary conditions are used on the bottom and right
boundaries (adjacent to the reflector). The default configuration includes
the BEAVRS assembly with fresh 1.6% enriched UO2 fuel with 24 water-filled
control rod guide tubes and a central air-filled instrument tube, along with a
3.1% enriched fuel assembly with 20 burnable poisons, four control rod guide
tubes and a central instrument tube. However, the script may be toggled to use
any pair of the 20+ fuel assemblies in the BEAVRS model.
<dl>
<dt>fuel-pin</dt>
<dd>A single fuel pin with reflective boundary conditions (i.e., an infinitely repeating array of fuel pins). The default configuration is the BEAVRS fuel pin with fresh 1.6% enriched UO2 fuel, but the script can be toggled to 2.4% or 3.1% enriched fuel.</dd>
<dt>assembly</dt>
<dd>A single fuel assembly with reflective boundary conditions (i.e., an infinitely repeating lattice of fuel assemblies). The default configuration is the BEAVRS assembly with fresh 1.6% enriched UO2 fuel with 24 water-filled control rod guide tubes and a central air-filled instrument tube. However, the script can be toggled to use any of the 20+ fuel assemblies in the BEAVRS model.</dd>
<dt>2x2-periodic</dt>
<dd>A 2x2 fuel assembly colorset with periodic boundary conditions (i.e., an infinitely repeating lattice of the 2x2 assembly colorset). The default configuration includes the BEAVRS assembly with fresh 1.6% enriched UO2 fuel with 24 water-filled control rod guide tubes and a central air-filled instrument tube, along with a 3.1% enriched fuel assembly with 20 burnable poisons, four control rod guide tubes and a central instrument tube. However, the script may be toggled to use any pair of the 20+ fuel assemblies in the BEAVRS model.</dd>
<dt>2x2-reflector</dt>
<dd>A 2x2 fuel assembly colorset surrounded by a water reflector. Reflective boundary conditions are used on the top and left boundaries (adjacent to the assemblies) and vacuum boundary conditions are used on the bottom and right boundaries (adjacent to the reflector). The default configuration includes the BEAVRS assembly with fresh 1.6% enriched UO2 fuel with 24 water-filled control rod guide tubes and a central air-filled instrument tube, along with a 3.1% enriched fuel assembly with 20 burnable poisons, four control rod guide tubes and a central instrument tube. However, the script may be toggled to use any pair of the 20+ fuel assemblies in the BEAVRS model.</dd>
<dt>smr</dt>
<dd>A 3D Small Modular Reactor (SMR) model that roughly mimics the design of the NuScale reactor. The reactor core has 37 fuel assemblies that alternate between 3.1% enriched and 2.4% enriched UO2 fuel. The center fuel assembly has 1.6% enriched UO2 fuel. Where possible, we have attempted to use the same parameters for the fuel assemblies and fuel rods as those specified in the NuScale <a href="https://www.nrc.gov/reactors/new-reactors/design-cert/nuscale.html">design submittal</a> to the Nuclear Regulatory Commission (NRC), for example: 264 fuel rods per assembly, 24 guide tubes per assembly, 1 instrument tube per assembly, five spacer grids per assembly, fuel rod pitch of 0.496 in, and an active fuel length of 200 cm. Many of the details of the actual NuScale fuel assembly design are redacted from the design submittal because they are export controlled/proprietary information. The purpose of our model is not to be an exact replica of the NuScale model; rather, it is intended to capture most of the physical complexities that are involved in modeling a full reactor core and to provide a suitable model for carrying out full core performance tests on the testbed architectures.</dd>
</dl>
Dependencies
------------

File diff suppressed because it is too large Load diff

View file

@ -1,211 +1,214 @@
<?xml version='1.0' encoding='utf-8'?>
<materials>
<material id="10000" name="Helium">
<temperature>300</temperature>
<density units="g/cc" value="0.0015981" />
<nuclide ao="2e-06" name="He3" />
<nuclide ao="0.999998" name="He4" />
</material>
<material id="10001" name="Air">
<temperature>300</temperature>
<density units="g/cc" value="0.00616" />
<nuclide ao="0.2094205995" name="O16" />
<nuclide ao="7.94005e-05" name="O17" />
<nuclide ao="0.7780395633" name="N14" />
<nuclide ao="0.0028604367000000003" name="N15" />
<nuclide ao="3.1124879999999996e-05" name="Ar36" />
<nuclide ao="5.86857e-06" name="Ar38" />
<nuclide ao="0.00929300655" name="Ar40" />
<nuclide ao="0.00027" name="C0" />
</material>
<material id="10002" name="Inconel">
<temperature>300</temperature>
<density units="g/cc" value="8.2" />
<nuclide name="Si28" wo="0.003215573104901967" />
<nuclide name="Si29" wo="0.00016911126024954278" />
<nuclide name="Si30" wo="0.00011531563484849038" />
<nuclide name="Cr50" wo="0.007913309553017726" />
<nuclide name="Cr52" wo="0.15869399115925625" />
<nuclide name="Cr53" wo="0.018341120727338085" />
<nuclide name="Cr54" wo="0.004651578560387908" />
<nuclide name="Mn55" wo="0.0087" />
<nuclide name="Fe54" wo="0.016163233201258693" />
<nuclide name="Fe56" wo="0.26311407687664323" />
<nuclide name="Fe57" wo="0.006185135350045743" />
<nuclide name="Fe58" wo="0.0008375545720523535" />
<nuclide name="Ni58" wo="0.34398505352691505" />
<nuclide name="Ni60" wo="0.1370661540479713" />
<nuclide name="Ni61" wo="0.006057615154415727" />
<nuclide name="Ni62" wo="0.01963045531316453" />
<nuclide name="Ni64" wo="0.005160721957533462" />
</material>
<material id="10003" name="SS304">
<temperature>300</temperature>
<density units="g/cc" value="8.03" />
<nuclide name="Si28" wo="0.005512411036974801" />
<nuclide name="Si29" wo="0.0002899050175706448" />
<nuclide name="Si30" wo="0.00019768394545455493" />
<nuclide name="Cr50" wo="0.007930004298910168" />
<nuclide name="Cr52" wo="0.15902878860895933" />
<nuclide name="Cr53" wo="0.018379815074864116" />
<nuclide name="Cr54" wo="0.004661392017266364" />
<nuclide name="Mn55" wo="0.02" />
<nuclide name="Fe54" wo="0.03861561826636726" />
<nuclide name="Fe56" wo="0.6286064568062312" />
<nuclide name="Fe57" wo="0.014776921339264018" />
<nuclide name="Fe58" wo="0.002001003588137652" />
<nuclide name="Ni58" wo="0.06719770531879568" />
<nuclide name="Ni60" wo="0.02677596289274688" />
<nuclide name="Ni61" wo="0.0011833590846680462" />
<nuclide name="Ni62" wo="0.0038348222920813694" />
<nuclide name="Ni64" wo="0.0010081504117080411" />
</material>
<material id="10004" name="Carbon Steel">
<temperature>300</temperature>
<density units="g/cc" value="7.8" />
<nuclide name="C0" wo="0.0027" />
<nuclide name="Mn55" wo="0.0075" />
<nuclide name="P31" wo="0.00025" />
<nuclide name="S32" wo="0.00023692152702311576" />
<nuclide name="S33" wo="1.924704844422474e-06" />
<nuclide name="S34" wo="1.1112880999711348e-05" />
<nuclide name="S36" wo="4.088713275043879e-08" />
<nuclide name="Si28" wo="0.0036749406913165338" />
<nuclide name="Si29" wo="0.00019327001171376318" />
<nuclide name="Si30" wo="0.0001317892969697033" />
<nuclide name="Ni58" wo="0.005039827898909675" />
<nuclide name="Ni60" wo="0.002008197216956016" />
<nuclide name="Ni61" wo="8.875193135010345e-05" />
<nuclide name="Ni62" wo="0.00028761167190610265" />
<nuclide name="Ni64" wo="7.561128087810308e-05" />
<nuclide name="Cr50" wo="0.00014607902655887153" />
<nuclide name="Cr52" wo="0.0029294776849018824" />
<nuclide name="Cr53" wo="0.00033857554085276" />
<nuclide name="Cr54" wo="8.586774768648565e-05" />
<nuclide name="Mo100" wo="0.0006341263666702117" />
<nuclide name="Mo92" wo="0.0008769932056639445" />
<nuclide name="Mo94" wo="0.0005619573981472699" />
<nuclide name="Mo95" wo="0.0009812790231824658" />
<nuclide name="Mo96" wo="0.0010415835207694215" />
<nuclide name="Mo97" wo="0.0006048497176301975" />
<nuclide name="Mo98" wo="0.00154921076793649" />
<nuclide name="V50" wo="1.2256016778573164e-06" />
<nuclide name="V51" wo="0.0004987743983221427" />
<nuclide name="Nb93" wo="0.0001" />
<nuclide name="Cu63" wo="0.001369583906732317" />
<nuclide name="Cu65" wo="0.0006304160932676829" />
<nuclide name="Ca40" wo="0.00014499268968855714" />
<nuclide name="Ca42" wo="1.0160391170196e-06" />
<nuclide name="Ca43" wo="2.1705537495761849e-07" />
<nuclide name="Ca44" wo="3.4317237524995553e-06" />
<nuclide name="Ca46" wo="6.8796341950755285e-09" />
<nuclide name="Ca48" wo="3.3561243277098485e-07" />
<nuclide name="B10" wo="5.506648724403529e-06" />
<nuclide name="B11" wo="2.449335127559647e-05" />
<nuclide name="Ti46" wo="1.1880142852196743e-05" />
<nuclide name="Ti47" wo="1.0946673488791549e-05" />
<nuclide name="Ti48" wo="0.00011076757837453494" />
<nuclide name="Ti49" wo="8.298285799079257e-06" />
<nuclide name="Ti50" wo="8.107319485397494e-06" />
<nuclide name="Al27" wo="0.00025" />
<nuclide name="Fe54" wo="0.054472297655949964" />
<nuclide name="Fe56" wo="0.8867302806705092" />
<nuclide name="Fe57" wo="0.020844748673414723" />
<nuclide name="Fe58" wo="0.0028226730001262813" />
</material>
<material id="10005" name="Zircaloy-4">
<temperature>300</temperature>
<density units="g/cc" value="6.55" />
<nuclide name="O16" wo="0.0012494965182849112" />
<nuclide name="O17" wo="5.034817150887735e-07" />
<nuclide name="Cr50" wo="4.1736864731106146e-05" />
<nuclide name="Cr52" wo="0.0008369936242576807" />
<nuclide name="Cr53" wo="9.673586881507429e-05" />
<nuclide name="Cr54" wo="2.4533642196138756e-05" />
<nuclide name="Fe54" wo="0.00011855672274761877" />
<nuclide name="Fe56" wo="0.001929932104229657" />
<nuclide name="Fe57" wo="4.536774095388075e-05" />
<nuclide name="Fe58" wo="6.143432068843669e-06" />
<nuclide name="Zr90" wo="0.49750307249921255" />
<nuclide name="Zr91" wo="0.10970127796055709" />
<nuclide name="Zr92" wo="0.16952409354767467" />
<nuclide name="Zr94" wo="0.17553856942304608" />
<nuclide name="Zr96" wo="0.02888298656950975" />
<nuclide name="Sn112" wo="0.0001325869644430062" />
<nuclide name="Sn114" wo="9.182449637587617e-05" />
<nuclide name="Sn115" wo="4.771905922545867e-05" />
<nuclide name="Sn116" wo="0.002058423153629443" />
<nuclide name="Sn117" wo="0.0010966473429083066" />
<nuclide name="Sn118" wo="0.0034879812938438245" />
<nuclide name="Sn119" wo="0.001247577110245757" />
<nuclide name="Sn120" wo="0.004771539495238715" />
<nuclide name="Sn122" wo="0.0006894094798456136" />
<nuclide name="Sn124" wo="0.000876291604244001" />
</material>
<material id="10006" name="Ag-In-Cd">
<temperature>300</temperature>
<density units="g/cc" value="10.16" />
<nuclide name="Ag107" wo="0.4110094082785408" />
<nuclide name="Ag109" wo="0.3889905917214592" />
<nuclide name="In113" wo="0.006314443289265887" />
<nuclide name="In115" wo="0.1436855567107341" />
<nuclide name="Cd106" wo="0.0005864650126662538" />
<nuclide name="Cd108" wo="0.0004261883300584398" />
<nuclide name="Cd110" wo="0.006095738560062021" />
<nuclide name="Cd111" wo="0.006311586256788057" />
<nuclide name="Cd112" wo="0.011999697873295025" />
<nuclide name="Cd113" wo="0.006140180186664414" />
<nuclide name="Cd114" wo="0.01456750341101345" />
<nuclide name="Cd116" wo="0.00387264036945234" />
</material>
<material id="10007" name="Borated Water">
<temperature>300</temperature>
<density units="g/cc" value="0.7405820675158279" />
<nuclide ao="0.00032178659941803253" name="B10" />
<nuclide ao="0.0013017583017829388" name="B11" />
<nuclide ao="1.996441935899364" name="H1" />
<nuclide ao="0.0003109742982341739" name="H2" />
<nuclide ao="0.9979980704223166" name="O16" />
<nuclide ao="0.0003783846764824448" name="O17" />
<sab name="c_H_in_H2O" />
</material>
<material id="10008" name="Borosilicate Glass">
<temperature>300</temperature>
<density units="g/cc" value="2.26" />
<nuclide ao="0.012259454378427138" name="B10" />
<nuclide ao="0.06018253698401973" name="B11" />
<nuclide ao="0.6509787013744828" name="O16" />
<nuclide ao="0.00024681447050525047" name="O17" />
<nuclide ao="0.23640592474731761" name="Si28" />
<nuclide ao="0.01200401834354893" name="Si29" />
<nuclide ao="0.007913102535354443" name="Si30" />
<nuclide ao="0.024236195272461444" name="Al27" />
</material>
<material id="10009" name="1.6% Enr. UO2 Fuel">
<temperature>300</temperature>
<density units="g/cc" value="10.31341" />
<nuclide ao="1.999242" name="O16" />
<nuclide ao="0.000758" name="O17" />
<nuclide ao="0.00013098435147670763" name="U234" />
<nuclide ao="0.01630317699531038" name="U235" />
<nuclide ao="0.9835658386532129" name="U238" />
</material>
<material id="10010" name="2.4% Enr. UO2 Fuel">
<temperature>300</temperature>
<density units="g/cc" value="10.29748" />
<nuclide ao="1.999242" name="O16" />
<nuclide ao="0.000758" name="O17" />
<nuclide ao="0.000195223271243839" name="U234" />
<nuclide ao="0.024298776982208982" name="U235" />
<nuclide ao="0.9755059997465472" name="U238" />
</material>
<material id="10011" name="3.1% Enr. UO2 Fuel">
<temperature>300</temperature>
<density units="g/cc" value="10.30166" />
<nuclide ao="1.999242" name="O16" />
<nuclide ao="0.000758" name="O17" />
<nuclide ao="0.0002523276152188021" name="U234" />
<nuclide ao="0.03140636057161555" name="U235" />
<nuclide ao="0.9683413118131656" name="U238" />
</material>
<material id="1" name="Helium">
<temperature>300</temperature>
<density units="g/cc" value="0.0015981" />
<nuclide ao="2e-06" name="He3" />
<nuclide ao="0.999998" name="He4" />
</material>
<material id="2" name="Air">
<temperature>300</temperature>
<density units="g/cc" value="0.00616" />
<nuclide ao="0.2094205995" name="O16" />
<nuclide ao="7.94005e-05" name="O17" />
<nuclide ao="0.7780395633" name="N14" />
<nuclide ao="0.0028604367000000003" name="N15" />
<nuclide ao="3.1124879999999996e-05" name="Ar36" />
<nuclide ao="5.86857e-06" name="Ar38" />
<nuclide ao="0.00929300655" name="Ar40" />
<nuclide ao="0.00027" name="C0" />
</material>
<material id="3" name="Inconel">
<temperature>300</temperature>
<density units="g/cc" value="8.2" />
<nuclide name="Si28" wo="0.003215573104901967" />
<nuclide name="Si29" wo="0.00016911126024954278" />
<nuclide name="Si30" wo="0.00011531563484849038" />
<nuclide name="Cr50" wo="0.007913309553017726" />
<nuclide name="Cr52" wo="0.15869399115925625" />
<nuclide name="Cr53" wo="0.018341120727338085" />
<nuclide name="Cr54" wo="0.004651578560387908" />
<nuclide name="Mn55" wo="0.0087" />
<nuclide name="Fe54" wo="0.016163233201258693" />
<nuclide name="Fe56" wo="0.26311407687664323" />
<nuclide name="Fe57" wo="0.006185135350045743" />
<nuclide name="Fe58" wo="0.0008375545720523535" />
<nuclide name="Ni58" wo="0.34398505352691505" />
<nuclide name="Ni60" wo="0.1370661540479713" />
<nuclide name="Ni61" wo="0.006057615154415727" />
<nuclide name="Ni62" wo="0.01963045531316453" />
<nuclide name="Ni64" wo="0.005160721957533462" />
</material>
<material id="4" name="SS304">
<temperature>300</temperature>
<density units="g/cc" value="8.03" />
<nuclide name="Si28" wo="0.005512411036974801" />
<nuclide name="Si29" wo="0.0002899050175706448" />
<nuclide name="Si30" wo="0.00019768394545455493" />
<nuclide name="Cr50" wo="0.007930004298910168" />
<nuclide name="Cr52" wo="0.15902878860895933" />
<nuclide name="Cr53" wo="0.018379815074864116" />
<nuclide name="Cr54" wo="0.004661392017266364" />
<nuclide name="Mn55" wo="0.02" />
<nuclide name="Fe54" wo="0.03861561826636726" />
<nuclide name="Fe56" wo="0.6286064568062312" />
<nuclide name="Fe57" wo="0.014776921339264018" />
<nuclide name="Fe58" wo="0.002001003588137652" />
<nuclide name="Ni58" wo="0.06719770531879568" />
<nuclide name="Ni60" wo="0.02677596289274688" />
<nuclide name="Ni61" wo="0.0011833590846680462" />
<nuclide name="Ni62" wo="0.0038348222920813694" />
<nuclide name="Ni64" wo="0.0010081504117080411" />
</material>
<material id="5" name="Carbon Steel">
<temperature>300</temperature>
<density units="g/cc" value="7.8" />
<nuclide name="C0" wo="0.0027" />
<nuclide name="Mn55" wo="0.0075" />
<nuclide name="P31" wo="0.00025" />
<nuclide name="S32" wo="0.00023692152702311576" />
<nuclide name="S33" wo="1.924704844422474e-06" />
<nuclide name="S34" wo="1.1112880999711348e-05" />
<nuclide name="S36" wo="4.088713275043879e-08" />
<nuclide name="Si28" wo="0.0036749406913165338" />
<nuclide name="Si29" wo="0.00019327001171376318" />
<nuclide name="Si30" wo="0.0001317892969697033" />
<nuclide name="Ni58" wo="0.005039827898909675" />
<nuclide name="Ni60" wo="0.002008197216956016" />
<nuclide name="Ni61" wo="8.875193135010345e-05" />
<nuclide name="Ni62" wo="0.00028761167190610265" />
<nuclide name="Ni64" wo="7.561128087810308e-05" />
<nuclide name="Cr50" wo="0.00014607902655887153" />
<nuclide name="Cr52" wo="0.0029294776849018824" />
<nuclide name="Cr53" wo="0.00033857554085276" />
<nuclide name="Cr54" wo="8.586774768648565e-05" />
<nuclide name="Mo100" wo="0.0006341263666702117" />
<nuclide name="Mo92" wo="0.0008769932056639445" />
<nuclide name="Mo94" wo="0.0005619573981472699" />
<nuclide name="Mo95" wo="0.0009812790231824658" />
<nuclide name="Mo96" wo="0.0010415835207694215" />
<nuclide name="Mo97" wo="0.0006048497176301975" />
<nuclide name="Mo98" wo="0.00154921076793649" />
<nuclide name="V50" wo="1.2256016778573164e-06" />
<nuclide name="V51" wo="0.0004987743983221427" />
<nuclide name="Nb93" wo="0.0001" />
<nuclide name="Cu63" wo="0.001369583906732317" />
<nuclide name="Cu65" wo="0.0006304160932676829" />
<nuclide name="Ca40" wo="0.00014499268968855714" />
<nuclide name="Ca42" wo="1.0160391170196e-06" />
<nuclide name="Ca43" wo="2.1705537495761849e-07" />
<nuclide name="Ca44" wo="3.4317237524995553e-06" />
<nuclide name="Ca46" wo="6.8796341950755285e-09" />
<nuclide name="Ca48" wo="3.3561243277098485e-07" />
<nuclide name="B10" wo="5.506648724403529e-06" />
<nuclide name="B11" wo="2.449335127559647e-05" />
<nuclide name="Ti46" wo="1.1880142852196743e-05" />
<nuclide name="Ti47" wo="1.0946673488791549e-05" />
<nuclide name="Ti48" wo="0.00011076757837453494" />
<nuclide name="Ti49" wo="8.298285799079257e-06" />
<nuclide name="Ti50" wo="8.107319485397494e-06" />
<nuclide name="Al27" wo="0.00025" />
<nuclide name="Fe54" wo="0.054472297655949964" />
<nuclide name="Fe56" wo="0.8867302806705092" />
<nuclide name="Fe57" wo="0.020844748673414723" />
<nuclide name="Fe58" wo="0.0028226730001262813" />
</material>
<material id="6" name="Zircaloy-4">
<temperature>300</temperature>
<density units="g/cc" value="6.55" />
<nuclide name="O16" wo="0.0012494965182849112" />
<nuclide name="O17" wo="5.034817150887735e-07" />
<nuclide name="Cr50" wo="4.1736864731106146e-05" />
<nuclide name="Cr52" wo="0.0008369936242576807" />
<nuclide name="Cr53" wo="9.673586881507429e-05" />
<nuclide name="Cr54" wo="2.4533642196138756e-05" />
<nuclide name="Fe54" wo="0.00011855672274761877" />
<nuclide name="Fe56" wo="0.001929932104229657" />
<nuclide name="Fe57" wo="4.536774095388075e-05" />
<nuclide name="Fe58" wo="6.143432068843669e-06" />
<nuclide name="Zr90" wo="0.49750307249921255" />
<nuclide name="Zr91" wo="0.10970127796055709" />
<nuclide name="Zr92" wo="0.16952409354767467" />
<nuclide name="Zr94" wo="0.17553856942304608" />
<nuclide name="Zr96" wo="0.02888298656950975" />
<nuclide name="Sn112" wo="0.0001325869644430062" />
<nuclide name="Sn114" wo="9.182449637587617e-05" />
<nuclide name="Sn115" wo="4.771905922545867e-05" />
<nuclide name="Sn116" wo="0.002058423153629443" />
<nuclide name="Sn117" wo="0.0010966473429083066" />
<nuclide name="Sn118" wo="0.0034879812938438245" />
<nuclide name="Sn119" wo="0.001247577110245757" />
<nuclide name="Sn120" wo="0.004771539495238715" />
<nuclide name="Sn122" wo="0.0006894094798456136" />
<nuclide name="Sn124" wo="0.000876291604244001" />
</material>
<material id="7" name="Ag-In-Cd">
<temperature>300</temperature>
<density units="g/cc" value="10.16" />
<nuclide name="Ag107" wo="0.4110094082785408" />
<nuclide name="Ag109" wo="0.3889905917214592" />
<nuclide name="In113" wo="0.006314443289265887" />
<nuclide name="In115" wo="0.1436855567107341" />
<nuclide name="Cd106" wo="0.0005864650126662538" />
<nuclide name="Cd108" wo="0.0004261883300584398" />
<nuclide name="Cd110" wo="0.006095738560062021" />
<nuclide name="Cd111" wo="0.006311586256788057" />
<nuclide name="Cd112" wo="0.011999697873295025" />
<nuclide name="Cd113" wo="0.006140180186664414" />
<nuclide name="Cd114" wo="0.01456750341101345" />
<nuclide name="Cd116" wo="0.00387264036945234" />
</material>
<material id="8" name="Borated Water">
<temperature>300</temperature>
<density units="g/cc" value="0.7405820675158279" />
<nuclide ao="0.00032178659941803253" name="B10" />
<nuclide ao="0.0013017583017829388" name="B11" />
<nuclide ao="1.996441935899364" name="H1" />
<nuclide ao="0.0003109742982341739" name="H2" />
<nuclide ao="0.9979980704223166" name="O16" />
<nuclide ao="0.0003783846764824448" name="O17" />
<sab name="c_H_in_H2O" />
</material>
<material id="9" name="Borosilicate Glass">
<temperature>300</temperature>
<density units="g/cc" value="2.26" />
<nuclide ao="0.012259454378427138" name="B10" />
<nuclide ao="0.06018253698401973" name="B11" />
<nuclide ao="0.6509787013744828" name="O16" />
<nuclide ao="0.00024681447050525047" name="O17" />
<nuclide ao="0.23640592474731761" name="Si28" />
<nuclide ao="0.01200401834354893" name="Si29" />
<nuclide ao="0.007913102535354443" name="Si30" />
<nuclide ao="0.024236195272461444" name="Al27" />
</material>
<material id="10" name="1.6% Enr. UO2 Fuel">
<temperature>300</temperature>
<density units="g/cc" value="10.31341" />
<nuclide ao="1.999242" name="O16" />
<nuclide ao="0.000758" name="O17" />
<nuclide ao="0.00014571996318473284" name="U234" />
<nuclide ao="0.01630316269333107" name="U235" />
<nuclide ao="0.983476441027697" name="U238" />
<nuclide ao="7.467631578722921e-05" name="U236" />
</material>
<material id="11" name="2.4% Enr. UO2 Fuel">
<temperature>300</temperature>
<density units="g/cc" value="10.29748" />
<nuclide ao="1.999242" name="O16" />
<nuclide ao="0.000758" name="O17" />
<nuclide ao="0.00021718560529202018" name="U234" />
<nuclide ao="0.024298745211983164" name="U235" />
<nuclide ao="0.9753727692586048" name="U238" />
<nuclide ao="0.00011129992411998257" name="U236" />
</material>
<material id="12" name="3.1% Enr. UO2 Fuel">
<temperature>300</temperature>
<density units="g/cc" value="10.30166" />
<nuclide ao="1.999242" name="O16" />
<nuclide ao="0.000758" name="O17" />
<nuclide ao="0.0002807139975428889" name="U234" />
<nuclide ao="0.03140630749703991" name="U235" />
<nuclide ao="0.9681691225321637" name="U238" />
<nuclide ao="0.00014385597325352966" name="U236" />
</material>
</materials>

View file

@ -1,31 +1,79 @@
<?xml version='1.0' encoding='utf-8'?>
<plots>
<!--radial slice -->
<plot basis="xy" color_by="material" filename="radial_xy_slice" id="10000" type="slice">
<origin>0.0 0.0 136.282</origin>
<width>268.7955 268.7955</width>
<pixels>1000 1000</pixels>
<background>255 255 255</background>
</plot>
<!--axial slice-->
<plot basis="xz" color_by="material" filename="axial_xz_slice" id="10001" type="slice">
<origin>0.0 0.0 136.282</origin>
<width>270.0 272.564</width>
<pixels>1000 1000</pixels>
<background>255 255 255</background>
</plot>
<!--assembly grid spacer-->
<plot basis="xy" color_by="material" filename="assm_grid_spacer" id="10002" type="slice">
<origin>0.0 0.0 102.021</origin>
<width>32.25546 32.25546</width>
<pixels>2000 2000</pixels>
<background>255 255 255</background>
</plot>
<!--assembly no spacer-->
<plot basis="xy" color_by="material" filename="assm_no_spacer" id="10003" type="slice">
<origin>0.0 0.0 90.0</origin>
<width>32.25546 32.25546</width>
<pixels>2000 2000</pixels>
<background>255 255 255</background>
</plot>
<!--radial slice -->
<plot basis="xy" color_by="material" filename="radial_xy_slice" id="1" type="slice">
<origin>0.0 0.0 141.61599999999999</origin>
<width>268.79549999999995 268.79549999999995</width>
<pixels>1000 1000</pixels>
<background>255 255 255</background>
<color id="1" rgb="255 218 185" />
<color id="2" rgb="255 255 255" />
<color id="3" rgb="101 101 101" />
<color id="4" rgb="0 0 0" />
<color id="5" rgb="0 0 0" />
<color id="6" rgb="201 201 201" />
<color id="7" rgb="255 0 0" />
<color id="8" rgb="198 226 255" />
<color id="9" rgb="0 255 0" />
<color id="10" rgb="142 35 35" />
<color id="11" rgb="255 215 0" />
<color id="12" rgb="0 0 128" />
</plot>
<!--axial slice-->
<plot basis="xz" color_by="material" filename="axial_xz_slice" id="2" type="slice">
<origin>0.0 0.0 141.61599999999999</origin>
<width>270.0 283.23199999999997</width>
<pixels>1000 1000</pixels>
<background>255 255 255</background>
<color id="1" rgb="255 218 185" />
<color id="2" rgb="255 255 255" />
<color id="3" rgb="101 101 101" />
<color id="4" rgb="0 0 0" />
<color id="5" rgb="0 0 0" />
<color id="6" rgb="201 201 201" />
<color id="7" rgb="255 0 0" />
<color id="8" rgb="198 226 255" />
<color id="9" rgb="0 255 0" />
<color id="10" rgb="142 35 35" />
<color id="11" rgb="255 215 0" />
<color id="12" rgb="0 0 128" />
</plot>
<!--assembly grid spacer-->
<plot basis="xy" color_by="material" filename="assm_grid_spacer" id="3" type="slice">
<origin>0.0 0.0 95.0</origin>
<width>32.25546 32.25546</width>
<pixels>2000 2000</pixels>
<background>255 255 255</background>
<color id="1" rgb="255 218 185" />
<color id="2" rgb="255 255 255" />
<color id="3" rgb="101 101 101" />
<color id="4" rgb="0 0 0" />
<color id="5" rgb="0 0 0" />
<color id="6" rgb="201 201 201" />
<color id="7" rgb="255 0 0" />
<color id="8" rgb="198 226 255" />
<color id="9" rgb="0 255 0" />
<color id="10" rgb="142 35 35" />
<color id="11" rgb="255 215 0" />
<color id="12" rgb="0 0 128" />
</plot>
<!--assembly no spacer-->
<plot basis="xy" color_by="material" filename="assm_no_spacer" id="4" type="slice">
<origin>0.0 0.0 90.0</origin>
<width>32.25546 32.25546</width>
<pixels>2000 2000</pixels>
<background>255 255 255</background>
<color id="1" rgb="255 218 185" />
<color id="2" rgb="255 255 255" />
<color id="3" rgb="101 101 101" />
<color id="4" rgb="0 0 0" />
<color id="5" rgb="0 0 0" />
<color id="6" rgb="201 201 201" />
<color id="7" rgb="255 0 0" />
<color id="8" rgb="198 226 255" />
<color id="9" rgb="0 255 0" />
<color id="10" rgb="142 35 35" />
<color id="11" rgb="255 215 0" />
<color id="12" rgb="0 0 128" />
</plot>
</plots>

View file

@ -1,15 +1,15 @@
<?xml version='1.0' encoding='utf-8'?>
<settings>
<run_mode>eigenvalue</run_mode>
<particles>10000</particles>
<batches>10</batches>
<inactive>5</inactive>
<source strength="1.0">
<space type="fission">
<parameters>-75.26274000000001 -75.26274000000001 36.007 75.26274000000001 75.26274000000001 236.007</parameters>
</space>
</source>
<output>
<tallies>false</tallies>
</output>
<run_mode>eigenvalue</run_mode>
<particles>10000</particles>
<batches>200</batches>
<inactive>100</inactive>
<source strength="1.0">
<space type="fission">
<parameters>-75.26274 -75.26274 36.007 75.26274 75.26274 236.0066</parameters>
</space>
</source>
<output>
<tallies>false</tallies>
</output>
</settings>

View file

@ -1,75 +1,75 @@
<?xml version='1.0' encoding='utf-8'?>
<tallies>
<filter id="1" type="distribcell">
<bins>10683</bins>
<bins>684</bins>
</filter>
<filter id="2" type="distribcell">
<bins>10687</bins>
<bins>688</bins>
</filter>
<filter id="3" type="distribcell">
<bins>10692</bins>
<bins>693</bins>
</filter>
<filter id="4" type="distribcell">
<bins>10718</bins>
<bins>719</bins>
</filter>
<filter id="5" type="distribcell">
<bins>10722</bins>
<bins>723</bins>
</filter>
<filter id="6" type="distribcell">
<bins>10727</bins>
<bins>728</bins>
</filter>
<filter id="7" type="distribcell">
<bins>10753</bins>
<bins>754</bins>
</filter>
<filter id="8" type="distribcell">
<bins>10757</bins>
<bins>758</bins>
</filter>
<filter id="9" type="distribcell">
<bins>10762</bins>
<bins>763</bins>
</filter>
<tally id="10000" name="depletion tally">
<tally id="1" name="depletion tally">
<filters>1</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10001" name="depletion tally">
<tally id="2" name="depletion tally">
<filters>2</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10002" name="depletion tally">
<tally id="3" name="depletion tally">
<filters>3</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10003" name="depletion tally">
<tally id="4" name="depletion tally">
<filters>4</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10004" name="depletion tally">
<tally id="5" name="depletion tally">
<filters>5</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10005" name="depletion tally">
<tally id="6" name="depletion tally">
<filters>6</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10006" name="depletion tally">
<tally id="7" name="depletion tally">
<filters>7</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10007" name="depletion tally">
<tally id="8" name="depletion tally">
<filters>8</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
<tally id="10008" name="depletion tally">
<tally id="9" name="depletion tally">
<filters>9</filters>
<nuclides>O16 O17 U234 U235 U238</nuclides>
<nuclides>O16 O17 U234 U235 U238 U236</nuclides>
<scores>(n,p) (n,a) (n,gamma) fission (n,2n) (n,3n) (n,4n)</scores>
</tally>
</tallies>

View file

@ -1,391 +0,0 @@
"""Instantiate components to use for the stainless steel baffle."""
import openmc
from .materials import mats
from .surfaces import surfs, lattice_pitch
from .assemblies import univs
#### SOUTH BAFFLE
univs['baffle south dummy'] = openmc.Universe(name='baffle south dummy')
cell = openmc.Cell(name='baffle dummy SS')
cell.fill = mats['SS']
cell.region = +surfs['baffle south']
univs['baffle south dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle south water')
cell.fill = mats['H2O']
cell.region = -surfs['baffle south']
univs['baffle south dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle south')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['baffle south dummy'], univs['baffle south dummy']],
[univs['water pin'], univs['water pin']]]
univs['baffle south'] = openmc.Universe(name='baffle south')
cell = openmc.Cell(name='baffle south')
cell.fill = lattice
univs['baffle south'].add_cell(cell)
#### NORTH BAFFLE
univs['baffle north dummy'] = openmc.Universe(name='baffle north dummy')
cell = openmc.Cell(name='baffle dummy SS')
cell.fill = mats['H2O']
cell.region = +surfs['baffle north']
univs['baffle north dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle north water')
cell.fill = mats['SS']
cell.region = -surfs['baffle north']
univs['baffle north dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle north')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['water pin'], univs['water pin']],
[univs['baffle north dummy'], univs['baffle north dummy']]]
univs['baffle north'] = openmc.Universe(name='baffle north')
cell = openmc.Cell(name='baffle north')
cell.fill = lattice
univs['baffle north'].add_cell(cell)
#### WEST BAFFLE
univs['baffle west dummy'] = openmc.Universe(name='baffle west dummy')
cell = openmc.Cell(name='baffle dummy SS')
cell.fill = mats['SS']
cell.region = +surfs['baffle west']
univs['baffle west dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle west water')
cell.fill = mats['H2O']
cell.region = -surfs['baffle west']
univs['baffle west dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle west')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['water pin'], univs['baffle west dummy']],
[univs['water pin'], univs['baffle west dummy']]]
univs['baffle west'] = openmc.Universe(name='baffle west')
cell = openmc.Cell(name='baffle west')
cell.fill = lattice
univs['baffle west'].add_cell(cell)
#### EAST BAFFLE
univs['baffle east dummy'] = openmc.Universe(name='baffle east dummy')
cell = openmc.Cell(name='baffle dummy SS')
cell.fill = mats['H2O']
cell.region = +surfs['baffle east']
univs['baffle east dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle east water')
cell.fill = mats['SS']
cell.region = -surfs['baffle east']
univs['baffle east dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle east')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['baffle east dummy'], univs['water pin']],
[univs['baffle east dummy'], univs['water pin']]]
univs['baffle east'] = openmc.Universe(name='baffle east')
cell = openmc.Cell(name='baffle east')
cell.fill = lattice
univs['baffle east'].add_cell(cell)
#### SOUTHEAST BAFFLE
univs['baffle southeast dummy'] = openmc.Universe(name='baffle southeast dummy')
cell = openmc.Cell(name='baffle southeast dummy 1')
cell.fill = mats['H2O']
cell.region = +surfs['baffle east'] & -surfs['baffle south']
univs['baffle southeast dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southeast dummy 2')
cell.fill = mats['SS']
cell.region = +surfs['baffle east'] & +surfs['baffle south']
univs['baffle southeast dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southeast dummy 3')
cell.fill = mats['SS']
cell.region = -surfs['baffle east']
univs['baffle southeast dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle southeast')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['baffle southeast dummy'], univs['baffle south dummy']],
[univs['baffle east dummy'], univs['water pin']]]
univs['baffle southeast'] = openmc.Universe(name='baffle southeast')
cell = openmc.Cell(name='baffle southeast')
cell.fill = lattice
univs['baffle southeast'].add_cell(cell)
#### SOUTHWEST BAFFLE
univs['baffle southwest dummy'] = openmc.Universe(name='baffle southwest dummy')
cell = openmc.Cell(name='baffle southwest dummy 1')
cell.fill = mats['H2O']
cell.region = -surfs['baffle south'] & -surfs['baffle west']
univs['baffle southwest dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southwest dummy 2')
cell.fill = mats['SS']
cell.region = +surfs['baffle south'] & -surfs['baffle west']
univs['baffle southwest dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southwest dummy 3')
cell.fill = mats['SS']
cell.region = +surfs['baffle west']
univs['baffle southwest dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle southwest')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['baffle south dummy'], univs['baffle southwest dummy']],
[univs['water pin'], univs['baffle west dummy']]]
univs['baffle southwest'] = openmc.Universe(name='baffle southwest')
cell = openmc.Cell(name='baffle southwest')
cell.fill = lattice
univs['baffle southwest'].add_cell(cell)
#### NORTHEAST BAFFLE
univs['baffle northeast dummy'] = openmc.Universe(name='baffle northeast dummy')
cell = openmc.Cell(name='baffle northeast dummy 1')
cell.fill = mats['H2O']
cell.region = +surfs['baffle north'] & +surfs['baffle east']
univs['baffle northeast dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northeast dummy 2')
cell.fill = mats['SS']
cell.region = -surfs['baffle north'] & +surfs['baffle east']
univs['baffle northeast dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northeast dummy 3')
cell.fill = mats['SS']
cell.region = -surfs['baffle east']
univs['baffle northeast dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle northeast')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['baffle east dummy'], univs['water pin']],
[univs['baffle northeast dummy'], univs['baffle north dummy']]]
univs['baffle northeast'] = openmc.Universe(name='baffle northeast')
cell = openmc.Cell(name='baffle northeast')
cell.fill = lattice
univs['baffle northeast'].add_cell(cell)
#### NORTHWEST BAFFLE
univs['baffle northwest dummy'] = openmc.Universe(name='baffle northwest dummy')
cell = openmc.Cell(name='baffle northwest dummy 1')
cell.fill = mats['H2O']
cell.region = +surfs['baffle north'] & -surfs['baffle west']
univs['baffle northwest dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northwest dummy 2')
cell.fill = mats['SS']
cell.region = -surfs['baffle north'] & -surfs['baffle west']
univs['baffle northwest dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northwest dummy 3')
cell.fill = mats['SS']
cell.region = +surfs['baffle west']
univs['baffle northwest dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle northwest')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['water pin'], univs['baffle west dummy']],
[univs['baffle north dummy'], univs['baffle northwest dummy']]]
univs['baffle northwest'] = openmc.Universe(name='baffle northwest')
cell = openmc.Cell(name='baffle northwest')
cell.fill = lattice
univs['baffle northwest'].add_cell(cell)
#### SOUTHEAST CORNER BAFFLE
univs['baffle southeast corner dummy'] = \
openmc.Universe(name='baffle southeast corner dummy')
cell = openmc.Cell(name='baffle southeast corner dummy 1')
cell.fill = mats['H2O']
cell.region = -surfs['baffle east'] & -surfs['baffle south']
univs['baffle southeast corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southeast corner dummy 2')
cell.fill = mats['H2O']
cell.region = +surfs['baffle east']
univs['baffle southeast corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southeast corner dummy 3')
cell.fill = mats['SS']
cell.region = +surfs['baffle south'] & -surfs['baffle east']
univs['baffle southeast corner dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle southeast corner')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['baffle southeast corner dummy'], univs['water pin']],
[univs['water pin'], univs['water pin']]]
univs['baffle southeast corner'] = \
openmc.Universe(name='baffle southeast corner')
cell = openmc.Cell(name='baffle southeast corner')
cell.fill = lattice
univs['baffle southeast corner'].add_cell(cell)
#### SOUTHWEST CORNER BAFFLE
univs['baffle southwest corner dummy'] = \
openmc.Universe(name='baffle southwest corner dummy')
cell = openmc.Cell(name='baffle southwest corner dummy 1')
cell.fill = mats['H2O']
cell.region = +surfs['baffle west'] & -surfs['baffle south']
univs['baffle southwest corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southwest corner dummy 2')
cell.fill = mats['H2O']
cell.region = -surfs['baffle west']
univs['baffle southwest corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle southwest corner dummy 3')
cell.fill = mats['SS']
cell.region = +surfs['baffle south'] & +surfs['baffle west']
univs['baffle southwest corner dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle southwest corner')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['water pin'], univs['baffle southwest corner dummy']],
[univs['water pin'], univs['water pin']]]
univs['baffle southwest corner'] = \
openmc.Universe(name='baffle southwest corner')
cell = openmc.Cell(name='baffle southwest corner')
cell.fill = lattice
univs['baffle southwest corner'].add_cell(cell)
#### NORTHWEST CORNER BAFFLE
univs['baffle northwest corner dummy'] = \
openmc.Universe(name='baffle northwest corner dummy')
cell = openmc.Cell(name='baffle northwest corner dummy 1')
cell.fill = mats['H2O']
cell.region = +surfs['baffle west'] & +surfs['baffle north']
univs['baffle northwest corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northwest corner dummy 2')
cell.fill = mats['H2O']
cell.region = -surfs['baffle west']
univs['baffle northwest corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northwest corner dummy 3')
cell.fill = mats['SS']
cell.region = -surfs['baffle north'] & +surfs['baffle west']
univs['baffle northwest corner dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle northwest corner')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['water pin'], univs['water pin']],
[univs['water pin'], univs['baffle northwest corner dummy']]]
univs['baffle northwest corner'] = \
openmc.Universe(name='baffle northwest corner')
cell = openmc.Cell(name='baffle northwest corner')
cell.fill = lattice
univs['baffle northwest corner'].add_cell(cell)
#### NORTHEAST CORNER BAFFLE
univs['baffle northeast corner dummy'] = \
openmc.Universe(name='baffle northeast corner dummy')
cell = openmc.Cell(name='baffle northeast corner dummy 1')
cell.fill = mats['H2O']
cell.region = -surfs['baffle east'] & +surfs['baffle north']
univs['baffle northeast corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northeast corner dummy 2')
cell.fill = mats['H2O']
cell.region = +surfs['baffle east']
univs['baffle northeast corner dummy'].add_cell(cell)
cell = openmc.Cell(name='baffle northeast corner dummy 3')
cell.fill = mats['SS']
cell.region = -surfs['baffle north'] & -surfs['baffle east']
univs['baffle northeast corner dummy'].add_cell(cell)
lattice = openmc.RectLattice(name='baffle northeast corner')
lattice.lower_left = [-lattice_pitch/2., -lattice_pitch/2.]
lattice.pitch = [lattice_pitch/2., lattice_pitch/2.]
lattice.universes = [
[univs['water pin'], univs['water pin']],
[univs['baffle northeast corner dummy'], univs['water pin']]]
univs['baffle northeast corner'] = \
openmc.Universe(name='baffle northeast corner')
cell = openmc.Cell(name='baffle northeast corner')
cell.fill = lattice
univs['baffle northeast corner'].add_cell(cell)

View file

@ -6,96 +6,96 @@ import openmc
from .materials import mats
from .surfaces import surfs, lattice_pitch
from .baffle import univs
from .reflector import univs
#### CONSTRUCT MAIN CORE LATTICE
core = openmc.RectLattice(name='Main core')
core.lower_left = [-19.*lattice_pitch/2., -19.*lattice_pitch/2.]
core.lower_left = [-9*lattice_pitch/2, -9*lattice_pitch/2]
core.pitch = [lattice_pitch, lattice_pitch]
universes = np.empty((19,19), dtype=openmc.Universe)
universes[:,:] = univs['water pin']
universes = np.tile(univs['heavy reflector'], (9,9))
universes[0, 2] = univs['heavy reflector 0,2']
universes[0, 3] = univs['heavy reflector 0,3']
universes[0, 4] = univs['heavy reflector 0,4']
universes[0, 5] = univs['heavy reflector 0,5']
universes[0, 6] = univs['heavy reflector 0,6']
universes[1, 1] = univs['heavy reflector 1,1']
universes[1, 2] = univs['heavy reflector NW']
universes[1, 3] = univs['Assembly (3.1%) instr']
universes[1, 4] = univs['Assembly (2.4%) CR D']
universes[1, 5] = univs['Assembly (3.1%) instr']
universes[1, 6] = univs['heavy reflector NE']
universes[1, 7] = univs['heavy reflector 1,7']
universes[2, 0] = univs['heavy reflector 2,0']
universes[2, 1] = univs['heavy reflector NW']
universes[2, 2] = univs['Assembly (3.1%) instr']
universes[2, 3] = univs['Assembly (2.4%) CR D']
universes[2, 4] = univs['Assembly (3.1%) 16BA']
universes[2, 5] = univs['Assembly (2.4%) CR D']
universes[2, 6] = univs['Assembly (3.1%) instr']
universes[2, 7] = univs['heavy reflector NE']
universes[2, 8] = univs['heavy reflector 2,8']
universes[3, 0] = univs['heavy reflector 3,0']
universes[3, 1] = univs['Assembly (3.1%) instr']
universes[3, 2] = univs['Assembly (2.4%) CR D']
universes[3, 3] = univs['Assembly (3.1%) 16BA']
universes[3, 4] = univs['Assembly (2.4%) CR D']
universes[3, 5] = univs['Assembly (3.1%) 16BA']
universes[3, 6] = univs['Assembly (2.4%) CR D']
universes[3, 7] = univs['Assembly (3.1%) instr']
universes[3, 8] = univs['heavy reflector 3,8']
universes[4, 0] = univs['heavy reflector 4,0']
universes[4, 1] = univs['Assembly (2.4%) CR D']
universes[4, 2] = univs['Assembly (3.1%) 16BA']
universes[4, 3] = univs['Assembly (2.4%) CR D']
universes[4, 4] = univs['Assembly (1.6%) instr']
universes[4, 5] = univs['Assembly (2.4%) CR D']
universes[4, 6] = univs['Assembly (3.1%) 16BA']
universes[4, 7] = univs['Assembly (2.4%) CR D']
universes[4, 8] = univs['heavy reflector 4,8']
universes[5, 0] = univs['heavy reflector 5,0']
universes[5, 1] = univs['Assembly (3.1%) instr']
universes[5, 2] = univs['Assembly (2.4%) CR D']
universes[5, 3] = univs['Assembly (3.1%) 16BA']
universes[5, 4] = univs['Assembly (2.4%) CR D']
universes[5, 5] = univs['Assembly (3.1%) 16BA']
universes[5, 6] = univs['Assembly (2.4%) CR D']
universes[5, 7] = univs['Assembly (3.1%) instr']
universes[5, 8] = univs['heavy reflector 5,8']
universes[6, 0] = univs['heavy reflector 6,0']
universes[6, 1] = univs['heavy reflector SW']
universes[6, 2] = univs['Assembly (3.1%) instr']
universes[6, 3] = univs['Assembly (2.4%) CR D']
universes[6, 4] = univs['Assembly (3.1%) 16BA']
universes[6, 5] = univs['Assembly (2.4%) CR D']
universes[6, 6] = univs['Assembly (3.1%) instr']
universes[6, 7] = univs['heavy reflector SE']
universes[6, 8] = univs['heavy reflector 6,8']
universes[7, 1] = univs['heavy reflector 7,1']
universes[7, 2] = univs['heavy reflector SW']
universes[7, 3] = univs['Assembly (3.1%) instr']
universes[7, 4] = univs['Assembly (2.4%) CR D']
universes[7, 5] = univs['Assembly (3.1%) instr']
universes[7, 6] = univs['heavy reflector SE']
universes[7, 7] = univs['heavy reflector 7,7']
universes[8, 2] = univs['heavy reflector 8,2']
universes[8, 3] = univs['heavy reflector 8,3']
universes[8, 4] = univs['heavy reflector 8,4']
universes[8, 5] = univs['heavy reflector 8,5']
universes[8, 6] = univs['heavy reflector 8,6']
core.universes = universes
core.universes[5, 7] = univs['baffle northwest corner']
core.universes[5, 8] = univs['baffle north']
core.universes[5, 9] = univs['baffle north']
core.universes[5, 10] = univs['baffle north']
core.universes[5, 11] = univs['baffle northeast corner']
core.universes[6, 6] = univs['baffle northwest corner']
core.universes[6, 7] = univs['baffle northwest']
core.universes[6, 8] = univs['Assembly (3.1%) instr']
core.universes[6, 9] = univs['Assembly (2.4%) CR D']
core.universes[6, 10] = univs['Assembly (3.1%) instr']
core.universes[6, 11] = univs['baffle northeast']
core.universes[6, 12] = univs['baffle northeast corner']
core.universes[7, 5] = univs['baffle northwest corner']
core.universes[7, 6] = univs['baffle northwest']
core.universes[7, 7] = univs['Assembly (3.1%) instr']
core.universes[7, 8] = univs['Assembly (2.4%) CR D']
core.universes[7, 9] = univs['Assembly (3.1%) 16BA']
core.universes[7, 10] = univs['Assembly (2.4%) CR D']
core.universes[7, 11] = univs['Assembly (3.1%) instr']
core.universes[7, 12] = univs['baffle northeast']
core.universes[7, 13] = univs['baffle northeast corner']
core.universes[8, 5] = univs['baffle west']
core.universes[8, 6] = univs['Assembly (3.1%) instr']
core.universes[8, 7] = univs['Assembly (2.4%) CR D']
core.universes[8, 8] = univs['Assembly (3.1%) 16BA']
core.universes[8, 9] = univs['Assembly (2.4%) CR D']
core.universes[8, 10] = univs['Assembly (3.1%) 16BA']
core.universes[8, 11] = univs['Assembly (2.4%) CR D']
core.universes[8, 12] = univs['Assembly (3.1%) instr']
core.universes[8, 13] = univs['baffle east']
core.universes[9, 5] = univs['baffle west']
core.universes[9, 6] = univs['Assembly (2.4%) CR D']
core.universes[9, 7] = univs['Assembly (3.1%) 16BA']
core.universes[9, 8] = univs['Assembly (2.4%) CR D']
core.universes[9, 9] = univs['Assembly (1.6%) instr']
core.universes[9, 10] = univs['Assembly (2.4%) CR D']
core.universes[9, 11] = univs['Assembly (3.1%) 16BA']
core.universes[9, 12] = univs['Assembly (2.4%) CR D']
core.universes[9, 13] = univs['baffle east']
core.universes[10, 5] = univs['baffle west']
core.universes[10, 6] = univs['Assembly (3.1%) instr']
core.universes[10, 7] = univs['Assembly (2.4%) CR D']
core.universes[10, 8] = univs['Assembly (3.1%) 16BA']
core.universes[10, 9] = univs['Assembly (2.4%) CR D']
core.universes[10, 10] = univs['Assembly (3.1%) 16BA']
core.universes[10, 11] = univs['Assembly (2.4%) CR D']
core.universes[10, 12] = univs['Assembly (3.1%) instr']
core.universes[10, 13] = univs['baffle east']
core.universes[11, 5] = univs['baffle southwest corner']
core.universes[11, 6] = univs['baffle southwest']
core.universes[11, 7] = univs['Assembly (3.1%) instr']
core.universes[11, 8] = univs['Assembly (2.4%) CR D']
core.universes[11, 9] = univs['Assembly (3.1%) 16BA']
core.universes[11, 10] = univs['Assembly (2.4%) CR D']
core.universes[11, 11] = univs['Assembly (3.1%) instr']
core.universes[11, 12] = univs['baffle southeast']
core.universes[11, 13] = univs['baffle southeast corner']
core.universes[12, 6] = univs['baffle southwest corner']
core.universes[12, 7] = univs['baffle southwest']
core.universes[12, 8] = univs['Assembly (3.1%) instr']
core.universes[12, 9] = univs['Assembly (2.4%) CR D']
core.universes[12, 10] = univs['Assembly (3.1%) instr']
core.universes[12, 11] = univs['baffle southeast']
core.universes[12, 12] = univs['baffle southeast corner']
core.universes[13, 7] = univs['baffle southwest corner']
core.universes[13, 8] = univs['baffle south']
core.universes[13, 9] = univs['baffle south']
core.universes[13, 10] = univs['baffle south']
core.universes[13, 11] = univs['baffle southeast corner']
#### CONSTRUCT ROOT UNIVERSE AND CELLS
@ -204,4 +204,4 @@ root_univ.add_cell(cell)
#### CONSTRUCT GEOMETRY
geometry = openmc.Geometry(root_univ)
geometry = openmc.Geometry(root_univ)

View file

@ -127,10 +127,10 @@ univs['GT empty'] = make_pin(
[mats['H2O'], mats['Zr'], mats['H2O']])
univs['GT empty grid (bottom)'] = make_pin(
'GT empty grid (bottom)', [surfs['GT IR'], surfs['GT OR']],
[mats['H2O'], mats['Zr'], mats['H2O']], grid='(bottom)')
[mats['H2O'], mats['Zr'], mats['H2O']], grid='bottom')
univs['GT empty grid (intermediate)'] = make_pin(
'GT empty grid (intermediate)', [surfs['GT IR'], surfs['GT OR']],
[mats['H2O'], mats['Zr'], mats['H2O']], grid='(intermediate)')
[mats['H2O'], mats['Zr'], mats['H2O']], grid='intermediate')
univs['GT empty nozzle'] = make_pin(
'GT empty nozzle', [surfs['GT IR'], surfs['GT OR']],
[mats['H2O'], mats['Zr'], mats['H2O']])
@ -141,11 +141,11 @@ univs['GTd empty'] = make_pin(
univs['GTd empty grid (bottom)'] = make_pin(
'GT empty at dashpot grid (bottom)',
[surfs['GT dashpot IR'], surfs['GT dashpot OR']],
[mats['H2O'], mats['Zr'], mats['H2O']], grid='(bottom)')
[mats['H2O'], mats['Zr'], mats['H2O']], grid='bottom')
univs['GTd empty grid (intermediate)'] = make_pin(
'GT empty at dashpot grid (intermediate)',
[surfs['GT dashpot IR'], surfs['GT dashpot OR']],
[mats['H2O'], mats['Zr'], mats['H2O']], grid='(intermediate)')
[mats['H2O'], mats['Zr'], mats['H2O']], grid='intermediate')
univs['GTd empty nozzle'] = make_pin(
'GT empty nozzle', [surfs['GT dashpot IR'], surfs['GT dashpot OR']],
[mats['H2O'], mats['Zr'], mats['H2O']])
@ -166,9 +166,9 @@ stack_surfs = [
surfs['grid3top'],
surfs['grid4bot'],
surfs['grid4top'],
surfs['top active core'],
surfs['grid5bot'],
surfs['grid5top'],
surfs['top active core'],
surfs['top pin plenum'],
surfs['top FR'],
surfs['bot upper nozzle'],
@ -192,7 +192,7 @@ univs['GT empty'] = make_stack(
univs['GT empty grid (intermediate)'],
univs['GT empty'],
univs['GT empty'],
univs['GT empty grid (bottom)'],
univs['GT empty grid (intermediate)'],
univs['GT empty'],
univs['GT empty'],
univs['GT empty'],
@ -216,7 +216,7 @@ univs['GT empty instr'] = make_stack(
univs['GT empty grid (intermediate)'],
univs['GT empty'],
univs['GT empty'],
univs['GT empty grid (bottom)'],
univs['GT empty grid (intermediate)'],
univs['GT empty'],
univs['GT empty'],
univs['GT empty'],
@ -233,12 +233,12 @@ univs['IT grid (bottom)'] = make_pin(
'IT grid (bottom)',
[surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
[mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['IT grid (intermediate)'] = make_pin(
'IT grid (intermediate)',
[surfs['IT IR'], surfs['IT OR'], surfs['GT IR'], surfs['GT OR']],
[mats['Air'], mats['Zr'], mats['H2O'], mats['Zr'], mats['H2O']],
grid='(intermediate)')
grid='intermediate')
univs['IT nozzle'] = make_pin(
'IT nozzle',
@ -267,7 +267,7 @@ univs['IT stack'] = make_stack(
univs['IT grid (intermediate)'],
univs['IT'],
univs['IT'],
univs['IT grid (bottom)'],
univs['IT grid (intermediate)'],
univs['IT'],
univs['IT'],
univs['IT'],
@ -283,12 +283,12 @@ univs['CR'] = make_pin(
univs['CR grid (bottom)'] = make_pin(
'CR grid (bottom)', [surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
[mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['CR grid (intermediate)'] = make_pin(
'CR grid (intermediate)',
[surfs['CP OR'], surfs['CR IR'], surfs['GT IR'], surfs['GT OR']],
[mats['AIC'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
grid='(intermediate)')
grid='intermediate')
univs['CR nozzle'] = make_pin(
'CR nozzle', [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
[mats['AIC'], mats['Air'], mats['SS'], mats['H2O']])
@ -301,12 +301,12 @@ univs['CR blank grid (bottom)'] = make_pin(
'CR blank grid (bottom)',
[surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
[mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['CR blank grid (intermediate)'] = make_pin(
'CR blank grid (intermediate)',
[surfs['CP OR'], surfs['CR IR'], surfs['CR OR'], surfs['GT IR'], surfs['GT OR']],
[mats['SS'], mats['Air'], mats['SS'], mats['H2O'], mats['Zr'], mats['H2O']],
grid='(intermediate)')
grid='intermediate')
univs['CR blank nozzle'] = make_pin(
'CR blank nozzle', [surfs['CP OR'], surfs['CR IR'], surfs['CR OR']],
[mats['SS'], mats['Air'], mats['SS'], mats['H2O']])
@ -455,7 +455,7 @@ univs['BA grid (bottom)'] = make_pin(
mats['H2O'],
mats['Zr'],
mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['BA grid (intermediate)'] = make_pin(
'BA grid (intermediate)',
@ -476,7 +476,7 @@ univs['BA grid (intermediate)'] = make_pin(
mats['H2O'],
mats['Zr'],
mats['H2O']],
grid='(intermediate)')
grid='intermediate')
univs['BA dashpot'] = make_pin(
'BA dashpot',
@ -517,7 +517,7 @@ univs['BA dashpot grid (bottom)'] = make_pin(
mats['H2O'],
mats['Zr'],
mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['BA dashpot grid (intermediate)'] = make_pin(
'BA dashpot grid (intermediate)',
@ -538,7 +538,7 @@ univs['BA dashpot grid (intermediate)'] = make_pin(
mats['H2O'],
mats['Zr'],
mats['H2O']],
grid='(intermediate)')
grid='intermediate')
univs['BA blank SS'] = make_pin(
'BA blank SS',
@ -571,9 +571,9 @@ stack_surfs_BA = [
surfs['grid3top'],
surfs['grid4bot'],
surfs['grid4top'],
surfs['top active core'],
surfs['grid5bot'],
surfs['grid5top'],
surfs['top active core'],
surfs['top pin plenum'],
surfs['top FR'],
surfs['bot upper nozzle'],
@ -593,9 +593,9 @@ stack_surfs = [
surfs['grid3top'],
surfs['grid4bot'],
surfs['grid4top'],
surfs['top active core'],
surfs['grid5bot'],
surfs['grid5top'],
surfs['top active core'],
surfs['top pin plenum'],
surfs['top FR'],
surfs['bot upper nozzle'],
@ -655,8 +655,8 @@ univs['pin plenum'] = make_pin(
mats['Zr'],
mats['H2O']])
univs['pin plenum grid (bottom)'] = make_pin(
'pin plenum grid (bottom)',
univs['pin plenum grid (intermediate)'] = make_pin(
'pin plenum grid (intermediate)',
surfaces=[surfs['plenum spring OR'],
surfs['clad IR'],
surfs['clad OR']],
@ -664,7 +664,7 @@ univs['pin plenum grid (bottom)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(bottom)')
grid='intermediate')
#### 1.6% ENRICHED FUEL PIN CELL
@ -688,7 +688,7 @@ univs['Fuel (1.6%) grid (bottom)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['Fuel (1.6%) grid (intermediate)'] = make_pin(
'Fuel (1.6%) grid (intermediate)',
@ -699,7 +699,7 @@ univs['Fuel (1.6%) grid (intermediate)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(intermediate)')
grid='intermediate')
# Stack all axial pieces of 1.6% enriched fuel pin cell
@ -721,7 +721,7 @@ univs['Fuel (1.6%) stack'] = make_stack(
univs['Fuel (1.6%) grid (intermediate)'],
univs['Fuel (1.6%)'],
univs['pin plenum'],
univs['pin plenum grid (bottom)'],
univs['pin plenum grid (intermediate)'],
univs['pin plenum'],
univs['end plug'],
univs['water pin'],
@ -750,7 +750,7 @@ univs['Fuel (2.4%) grid (bottom)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['Fuel (2.4%) grid (intermediate)'] = make_pin(
'Fuel (2.4%) grid (intermediate)',
@ -761,7 +761,7 @@ univs['Fuel (2.4%) grid (intermediate)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(intermediate)')
grid='intermediate')
# Stack all axial pieces of 2.4% enriched fuel pin cell
@ -783,7 +783,7 @@ univs['Fuel (2.4%) stack'] = make_stack(
univs['Fuel (2.4%) grid (intermediate)'],
univs['Fuel (2.4%)'],
univs['pin plenum'],
univs['pin plenum grid (bottom)'],
univs['pin plenum grid (intermediate)'],
univs['pin plenum'],
univs['end plug'],
univs['water pin'],
@ -812,7 +812,7 @@ univs['Fuel (3.1%) grid (bottom)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(bottom)')
grid='bottom')
univs['Fuel (3.1%) grid (intermediate)'] = make_pin(
'Fuel (3.1%) grid (intermediate)',
@ -823,7 +823,7 @@ univs['Fuel (3.1%) grid (intermediate)'] = make_pin(
mats['He'],
mats['Zr'],
mats['H2O']],
grid='(intermediate)')
grid='intermediate')
# Stack all axial pieces of 3.1% enriched fuel pin cell
@ -845,9 +845,9 @@ univs['Fuel (3.1%) stack'] = make_stack(
univs['Fuel (3.1%) grid (intermediate)'],
univs['Fuel (3.1%)'],
univs['pin plenum'],
univs['pin plenum grid (bottom)'],
univs['pin plenum grid (intermediate)'],
univs['pin plenum'],
univs['end plug'],
univs['water pin'],
univs['SS pin'],
univs['water pin']])
univs['water pin']])

View file

@ -7,18 +7,18 @@ from .materials import mats
# color specifications
col_spec = {mats['H2O'].id: [198, 226, 255], # light blue
mats['In'].id: [101, 101, 101], # dgray
mats['CS'].id: [ 0, 0, 0], # carbons black
mats['Zr'].id: [201, 201, 201], # gray
mats['SS'].id: [ 0, 0, 0], # black
mats['Air'].id: [255, 255, 255], # white
mats['He'].id: [255, 218, 185], # light orange
mats['BSG'].id: [ 0, 255, 0], # green
mats['AIC'].id: [255, 0, 0], # bright red
mats['UO2 1.6'].id: [142, 35, 35], # light red
mats['UO2 2.4'].id: [255, 215, 0], # gold
mats['UO2 3.1'].id: [ 0, 0, 128]} # dark blue
colors = {mats['H2O']: [198, 226, 255], # light blue
mats['In']: [101, 101, 101], # dgray
mats['CS']: [ 0, 0, 0], # carbons black
mats['Zr']: [201, 201, 201], # gray
mats['SS']: [ 0, 0, 0], # black
mats['Air']: [255, 255, 255], # white
mats['He']: [255, 218, 185], # light orange
mats['BSG']: [ 0, 255, 0], # green
mats['AIC']: [255, 0, 0], # bright red
mats['UO2 1.6']: [142, 35, 35], # light red
mats['UO2 2.4']: [255, 215, 0], # gold
mats['UO2 3.1']: [ 0, 0, 128]} # dark blue
# Create a collection of plots
@ -30,7 +30,7 @@ plot.color_by = 'material'
plot.origin = [0., 0., (highest_extent-lowest_extent)/2.]
plot.width = [25*lattice_pitch/2, 25*lattice_pitch/2.]
plot.filename = 'radial_xy_slice'
plot.col_spec = col_spec
plot.colors = colors
plot.background = [255, 255, 255]
plot.pixels = [1000, 1000]
plots += [plot]
@ -41,7 +41,7 @@ plot.color_by = 'material'
plot.origin = [0., 0., (highest_extent-lowest_extent)/2.]
plot.width = [rpv_OR*2., (highest_extent-lowest_extent)]
plot.filename = 'axial_xz_slice'
plot.col_spec = col_spec
plot.colors = colors
plot.background = [255, 255, 255]
plot.pixels = [1000, 1000]
plots += [plot]
@ -49,10 +49,10 @@ plots += [plot]
plot = openmc.Plot(name='assembly grid spacer')
plot.basis = 'xy'
plot.color_by = 'material'
plot.origin = [0., 0., 102.021]
plot.origin = [0., 0., 95.0]
plot.width = [lattice_pitch*1.5, lattice_pitch*1.5]
plot.filename = 'assm_grid_spacer'
plot.col_spec = col_spec
plot.colors = colors
plot.background = [255, 255, 255]
plot.pixels = [2000, 2000]
plots += [plot]
@ -63,7 +63,7 @@ plot.color_by = 'material'
plot.origin = [0., 0., 90.]
plot.width = [lattice_pitch*1.5, lattice_pitch*1.5]
plot.filename = 'assm_no_spacer'
plot.col_spec = col_spec
plot.colors = colors
plot.background = [255, 255, 255]
plot.pixels = [2000, 2000]
plots += [plot]

311
smr/smr/reflector.py Normal file
View file

@ -0,0 +1,311 @@
"""Stainless steel heavy reflector.
None of the public NuScale documents give information about the dimensions and
location of the water holes in the heavy neutron reflector. Thus, all the
dimensions of the water holes in the heavy reflectors were eyeballed from the
design certification application (ML17013A274), Figure 4.3-25. A screenshot was
used to determine the size and location of the water holes which were then
converted to actual dimensions by scaling according to the width of an assembly.
"""
import openmc
from .materials import mats
from .surfaces import surfs, lattice_pitch
from .assemblies import univs
def make_reflector(name, parameters):
"""Make an assembly-sized heavy neutron reflector block with cooling holes.
Parameters
----------
name : str
Name of the universe to create
parameters : iterable of 3-tuples
Iterable containing tuple with the (x,y) coordinates of the center and
the radius of a Z-cylinder and the
"""
water_holes = []
for x, y, r in parameters:
zcyl = openmc.ZCylinder(x0=x, y0=y, R=r)
hole = openmc.Cell(fill=mats['H2O'], region=-zcyl)
water_holes.append(hole)
ss_region = openmc.Intersection(~c.region for c in water_holes)
ss_cell = openmc.Cell(name='{} SS'.format(name), fill=mats['SS'],
region=ss_region)
univs[name] = openmc.Universe(name=name)
univs[name].add_cells(water_holes)
univs[name].add_cell(ss_cell)
# Reflector at northwest corner (fuel assemblies to the right and below)
width = 276
p1 = 59
p2 = 126
p3 = 196
p4 = 264
p5 = 105
p6 = 122
p7 = 164
p8 = 138
p9 = 222
p10 = 247
# There are 8 large water holes and all others appear to have the same, smaller
# diameter
d_small = 13
d_large = 30
# All pixel widths are scaled according to the actual width of an assembly
# divided by the width of an assembly in pixels
scale = lattice_pitch/width
# Physical positions
x1 = -lattice_pitch/2 + scale*(width - p4)
x2 = -lattice_pitch/2 + scale*(width - p3)
x3 = -lattice_pitch/2 + scale*(width - p2)
x4 = -lattice_pitch/2 + scale*(width - p1)
y1 = -lattice_pitch/2 + scale*p1
y2 = -lattice_pitch/2 + scale*p2
y3 = -lattice_pitch/2 + scale*p3
y4 = -lattice_pitch/2 + scale*p4
x5 = -lattice_pitch/2 + scale*(width - p5)
y5 = -lattice_pitch/2 + scale*p5
x6 = -lattice_pitch/2 + scale*(width - p7)
y6 = -lattice_pitch/2 + scale*p6
x7 = -lattice_pitch/2 + scale*(width - p6)
y7 = -lattice_pitch/2 + scale*p7
x8 = -lattice_pitch/2 + scale*(width - p9)
y8 = -lattice_pitch/2 + scale*p8
x9 = -lattice_pitch/2 + scale*(width - p8)
y9 = -lattice_pitch/2 + scale*p9
y10 = -lattice_pitch/2 + scale*p10
# Radius of small/large water holes
r1 = scale*d_small/2
r2 = scale*d_large/2
params = [
(x1, y1, r1), (x2, y1, r1), (x3, y1, r1), (x4, y1, r2),
(x4, y2, r1), (x4, y3, r1), (x4, y4, r1), (x5, y5, r1),
(x6, y6, r1), (x7, y7, r1), (x8, y8, r1), (x9, y9, r1),
(x1, y10, r1)
]
make_reflector('heavy reflector NW', params)
# Reflector at (1, 1)
params = [
(x4, y1, r1),
(lattice_pitch/2 - scale*103, -lattice_pitch/2 + scale*156, r1),
(lattice_pitch/2 - scale*158, -lattice_pitch/2 + scale*103, r1)
]
make_reflector('heavy reflector 1,1', params)
# Left reflector (4,0)
left1 = 58
left2 = 118
left3 = 173
up3 = 76
x1 = -lattice_pitch/2 + scale*(width - left1)
x2 = -lattice_pitch/2 + scale*(width - left2)
d_y = scale*67
x3 = -lattice_pitch/2 + scale*(width - left3)
y3 = scale*up3
params = [
(x1, 0, r1), (x1, d_y, r1), (x1, 2*d_y, r1), (x1, -d_y, r1), (x1, -2*d_y, r1),
(x2, d_y/2, r1), (x2, 3/2*d_y, r1), (x2, -d_y/2, r1), (x2, -3/2*d_y, r1),
(x3, y3, r1), (x3, -y3, r1)
]
make_reflector('heavy reflector 4,0', params)
# Reflector at (3,0)
params = []
for i in range(2, 7):
params.append((x1, i*d_y - lattice_pitch, r1))
for i in (5, 7, 11):
params.append((x2, i*d_y/2 - lattice_pitch, r1))
left3 = 140
left4 = 183
up3 = 159
up4 = 47
x3 = -lattice_pitch/2 + scale*(width - left3)
y3 = -lattice_pitch/2 + scale*up3
x4 = -lattice_pitch/2 + scale*(width - left4)
y4 = -lattice_pitch/2 + scale*up4
params += [(x3, y3, r1), (x4, y4, r1)]
make_reflector('heavy reflector 3,0', params)
# Reflector at (5,0)
params = [(x, -y, r) for x, y, r in params]
make_reflector('heavy reflector 5,0', params)
# Reflector at (2, 0)
params = [(-lattice_pitch/2 + scale*(width - 78),
-lattice_pitch/2 + scale*98, r1)]
make_reflector('heavy reflector 2,0', params)
################################################################################
# Beyond this point, all universes are just copies of the ones previously
# created with a rotation applied
# NE corner
cell = openmc.Cell(name='heavy reflector NE', fill=univs['heavy reflector NW'])
cell.rotation = (0, 0, -90)
univs['heavy reflector NE'] = openmc.Universe(name='heavy reflector NE')
univs['heavy reflector NE'].add_cell(cell)
# SW corner
cell = openmc.Cell(name='heavy reflector SW', fill=univs['heavy reflector NW'])
cell.rotation = (0, 0, 90)
univs['heavy reflector SW'] = openmc.Universe(name='heavy reflector SW')
univs['heavy reflector SW'].add_cell(cell)
# SE corner
cell = openmc.Cell(name='heavy reflector SE', fill=univs['heavy reflector NW'])
cell.rotation = (0, 0, 180)
univs['heavy reflector SE'] = openmc.Universe(name='heavy reflector SE')
univs['heavy reflector SE'].add_cell(cell)
# Reflector at (0, 2)
name = 'heavy reflector 0,2'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (0, 180, -90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (0, 3)
name = 'heavy reflector 0,3'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 5,0'])
cell.rotation = (0, 0, -90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (0, 4)
name = 'heavy reflector 0,4'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 4,0'])
cell.rotation = (0, 0, -90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (0, 5)
name = 'heavy reflector 0,5'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 3,0'])
cell.rotation = (0, 0, -90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (0, 6)
name = 'heavy reflector 0,6'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (0, 0, -90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (1, 7)
name = 'heavy reflector 1,7'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 1,1'])
cell.rotation = (0, 0, -90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (2, 8)
name = 'heavy reflector 2,8'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (0, 180, 0)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (3, 8)
name = 'heavy reflector 3,8'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 3,0'])
cell.rotation = (0, 180, 0)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (4, 8)
name = 'heavy reflector 4,8'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 4,0'])
cell.rotation = (0, 180, 0)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (5, 8)
name = 'heavy reflector 5,8'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 3,0'])
cell.rotation = (0, 0, 180)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (6, 0)
name = 'heavy reflector 6,0'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (180, 0, 0)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (6, 8)
name = 'heavy reflector 6,8'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (0, 0, 180)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (7, 1)
name = 'heavy reflector 7,1'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 1,1'])
cell.rotation = (180, 0, 0)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (7, 7)
name = 'heavy reflector 7,7'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 1,1'])
cell.rotation = (0, 0, 180)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (8, 2)
name = 'heavy reflector 8,2'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (0, 0, 90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (8, 3)
name = 'heavy reflector 8,3'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 3,0'])
cell.rotation = (0, 0, 90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (8, 4)
name = 'heavy reflector 8,4'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 4,0'])
cell.rotation = (0, 0, 90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (8, 5)
name = 'heavy reflector 8,5'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 5,0'])
cell.rotation = (0, 0, 90)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Reflector at (8, 6)
name = 'heavy reflector 8,6'
cell = openmc.Cell(name=name, fill=univs['heavy reflector 2,0'])
cell.rotation = (0, 0, 180)
univs[name] = openmc.Universe(name=name, cells=[cell])
# Solid stainless steel universe
all_ss = openmc.Cell(name='heavy reflector', fill=mats['SS'])
univs['heavy reflector'] = openmc.Universe(
name='heavy reflector', cells=[all_ss])

View file

@ -3,17 +3,23 @@
The geometric parameters defining the core model are tabulated here.
The geometric specifications are loosely based upon NuScale's Small
Modular Pressurized Water Reactor concept as detailed here in their
NRC design certification documentation:
NRC design certification (DC) documentation:
https://www.nrc.gov/docs/ML1618/ML16187A017.pdf
https://www.nrc.gov/docs/ML1700/ML17007A001.pdf
NuScale DC application, chapter 1: https://www.nrc.gov/docs/ML1701/ML17013A264.pdf
NuScale DC application, chapter 4: https://www.nrc.gov/docs/ML1701/ML17013A274.pdf
"""
import copy
from math import tan, pi
import numpy as np
import openmc
INCHES = 2.54
# Notation
# GT: Guide Tube
@ -26,17 +32,24 @@ import openmc
# FA: Fuel Assembly
# RPV: Reactor Pressure Vessel
# fuel rod parameters
pellet_OR = 0.3195*INCHES/2 # ML17013A274, Table 4.1-2
clad_IR = 0.326*INCHES/2 # ML17013A274, Table 4.1-2
clad_OR = 0.374*INCHES/2 # ML17013A274, Table 4.1-2
active_fuel_length = 78.74*INCHES # ML17013A274, Figure 4.2-10
plenum_length = 5.311*INCHES # ML17013A274, Figure 4.2-10
fuel_rod_length = 85.00*INCHES # ML17013A274, Table 4.1-2
lower_end_cap = 0.575*INCHES # ML17007A001, Table 3-2
# pin cell parameters
pellet_OR = 0.405765
clad_IR = 0.41402
clad_OR = 0.47498
guide_tube_IR = 0.5715
guide_tube_OR = 0.61214
guide_tube_dash_IR = 0.54019
guide_tube_dash_OR = 0.61214
control_poison_OR = 0.43310
control_rod_IR = 0.43688
control_rod_OR = 0.48387
guide_tube_IR = 0.450*INCHES/2 # ML17013A274, Table 4.1-2
guide_tube_OR = 0.482*INCHES/2 # ML17013A274, Table 4.1-2
guide_tube_dash_IR = 0.397*INCHES/2 # ML17013A274, Table 4.1-2
guide_tube_dash_OR = guide_tube_OR
boron_carbide_OR = 0.333*INCHES/2 # ML17013A274, Table 4.1-3
ag_in_cd_OR = 0.336*INCHES/2 # ML17013A274, Table 4.1-3
control_rod_IR = 0.344*INCHES/2 # ML17013A274, Table 4.1-3
control_rod_OR = 0.381*INCHES/2 # ML17013A274, Table 4.1-3
burn_abs_r1 = 0.21400
burn_abs_r2 = 0.23051
burn_abs_r3 = 0.24130
@ -45,25 +58,28 @@ burn_abs_r5 = 0.43688
burn_abs_r6 = 0.48387
burn_abs_r7 = 0.56134
burn_abs_r8 = 0.60198
instr_tube_IR = 0.5715
instr_tube_OR = 0.61214
plenum_spring_OR = 0.06459
instr_tube_IR = 0.450*INCHES/2 # ML17007A001, Table 3-1
instr_tube_OR = 0.482*INCHES/2 # ML17007A001, Table 3-1
plenum_spring_OR = 0.06459 # Estimate, actual is ECI
# grid spacer parameters
rod_grid_side = 1.24416
rod_grid_side = 1.24416
spacer_height = 1.750*INCHES # ML17013A274, Figure 4.2-7
# lattice parameters
pin_pitch = 1.25984
lattice_pitch = 21.50364
grid_strap_side = 21.47270
# assembly parameters
assembly_length = 95.89*INCHES # ML17013A274, Table 4.1-2
pin_pitch = 0.496*INCHES # ML17013A274, Table 4.1-2
lattice_pitch = 8.466*INCHES # ML17013A274, Table 4.1-2
grid_strap_side = 21.47270
top_nozzle_height = 3.551*INCHES # ML17013A274, Figure 4.2-2
top_nozzle_width = 8.406*INCHES # ML17013A274, Figure 4.2-2
# core radial parameters
core_barrel_IR = 85.0
core_barrel_OR = 90.0
neutron_shield_OR = 92.0
baffle_width = 2.2225
rpv_IR = 120.0
rpv_OR = 135.0
core_barrel_IR = 74*INCHES/2 # ML17013A274, Table 4.1-2
core_barrel_OR = 78*INCHES/2 # ML17013A274, Table 4.1-2
neutron_shield_OR = core_barrel_OR + 2.0
rpv_IR = 120.0 # Estimate?
rpv_OR = 135.0 # Estimate?
# axial parameters
lowest_extent = 0.000
@ -75,30 +91,26 @@ bottom_fuel_rod = 35.160
top_lower_thimble = 36.007
bottom_fuel_stack = 36.007
bot_burn_abs = 41.087
active_core_height = 200.
top_active_core = 236.007
top_plenum = 238.343
top_fuel_rod = 240.392
bottom_upper_nozzle = 243.737
top_upper_nozzle = 252.564
highest_extent = 272.564
top_active_core = bottom_fuel_stack + active_fuel_length
top_plenum = top_active_core + plenum_length
top_fuel_rod = bottom_fuel_rod + fuel_rod_length
bottom_upper_nozzle = top_fuel_rod + (423.049 - 419.704) # BEAVRS, Fig. 32
top_upper_nozzle = bottom_upper_nozzle + (431.876 - 423.049) # BEAVRS, Fig. 32
highest_extent = top_upper_nozzle + 20.0
# The grid spacer locations are eyeball estimated from Figure 3-1 in NuScale's
# FA design certification doc. This assumes 6cm and 2cm spacings between the
# bottom and top of the fuel rods and the bottom and top grid spacers.
grid1_bot = 39.7845
grid1_top = 44.2295
grid2_bot = 86.67325
grid2_top = 91.11825
grid3_bot = 133.562
grid3_top = 138.007
grid4_bot = 180.45075
grid4_top = 184.89575
grid5_bot = 227.3395
grid5_top = 231.7845
# FA design certification doc, ML17007A001. This assumes 6cm and 2cm spacings
# between the bottom and top of the fuel rods and the bottom and top grid
# spacers.
first_grid_bot = bottom_fuel_rod + 6.0
last_grid_top = top_fuel_rod - 2.0
last_grid_bot = last_grid_top - spacer_height
grid_bottom = np.linspace(first_grid_bot, last_grid_bot, 5)
grid_top = grid_bottom + spacer_height
# control rod step heights - taken from BEAVRS, use with caution for NuScale
step0H = 45.079
step0H = 46.079 # temporary value for now
step102H = 206.415
step248H = 269.122
step_width = 1.58173
@ -131,7 +143,7 @@ surfs['GT dashpot IR'] = openmc.ZCylinder(
surfs['GT dashpot OR'] = openmc.ZCylinder(
R=guide_tube_dash_OR, name='GT OR (at dashpot)')
surfs['CP OR'] = openmc.ZCylinder(
R=control_poison_OR, name='Control Poison OR')
R=boron_carbide_OR, name='Control Poison OR')
surfs['CR IR'] = openmc.ZCylinder(
R=control_rod_IR, name='CR Clad IR')
surfs['CR OR'] = openmc.ZCylinder(
@ -183,28 +195,19 @@ surfs['top lower thimble'] = copy.deepcopy(surfs['bot active core'])
surfs['BA bot'] = openmc.ZPlane(
z0=bot_burn_abs, name='bottom of BA')
surfs['grid1bot'] = openmc.ZPlane(
z0=grid1_bot, name='bottom grid 1')
surfs['grid1top'] = openmc.ZPlane(
z0=grid1_top, name='top of grid 1')
for i, (bottom, top) in enumerate(zip(grid_bottom, grid_top)):
# Create plane for bottom of spacer grid
key = 'grid{}bot'.format(i + 1)
name = 'bottom grid {}'.format(i + 1)
surfs[key] = openmc.ZPlane(z0=bottom, name=name)
# Create plane for top of spacer grid
key = 'grid{}top'.format(i + 1)
name = 'top of grid {}'.format(i + 1)
surfs[key] = openmc.ZPlane(z0=top, name=name)
surfs['dashpot top'] = openmc.ZPlane(
z0=step0H, name='top dashpot')
surfs['grid2bot'] = openmc.ZPlane(
z0=grid2_bot, name='bottom grid 2')
surfs['grid2top'] = openmc.ZPlane(
z0=grid2_top, name='top grid 2')
surfs['grid3bot'] = openmc.ZPlane(
z0=grid3_bot, name='bottom of grid 3')
surfs['grid3top'] = openmc.ZPlane(
z0=grid3_top, name='top of grid 3')
surfs['grid4bot'] = openmc.ZPlane(
z0=grid4_bot, name='bottom of grid 4')
surfs['grid4top'] = openmc.ZPlane(
z0=grid4_top, name='top grid 4')
surfs['grid5bot'] = openmc.ZPlane(
z0=grid5_bot, name='bottom of grid 5')
surfs['grid5top'] = openmc.ZPlane(
z0=grid5_top, name='top grid 5')
surfs['top pin plenum'] = openmc.ZPlane(
z0=top_plenum, name='top pin plenum')
@ -272,13 +275,3 @@ surfs['upper bound'] = openmc.ZPlane(
z0=highest_extent, name='upper problem boundary', boundary_type='vacuum')
surfs['lower bound'] = openmc.ZPlane(
z0=lowest_extent, name='lower problem boundary', boundary_type='vacuum')
# baffle surfaces
surfs['baffle south'] = openmc.YPlane(
y0=(lattice_pitch/4. - baffle_width), name='baffle north')
surfs['baffle north'] = openmc.YPlane(
y0=(baffle_width - lattice_pitch/4.), name='baffle south')
surfs['baffle west'] = openmc.XPlane(
x0=(lattice_pitch/4. - baffle_width), name='baffle east')
surfs['baffle east'] = openmc.XPlane(
x0=(baffle_width - lattice_pitch/4), name='baffle west')