-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenMC MSBR model and data #165
Changes from 47 commits
a9038a6
88c3d8d
a7c208f
ebcacc7
b6bf524
dd2a0e1
46c0d25
670538f
3ede9a2
7cec6fb
452f06d
aaae55f
90f3142
af46265
493fe06
b198664
375a100
4cf717e
d40074b
2c4ab77
95b58c5
c76c993
ca32120
29731c0
3375a0c
525aecc
f3af270
134648c
c458c90
82683c1
0e59520
ed0b346
95317d5
804f8f8
4e2b602
1ca5b79
b868612
481f07e
f2a22c6
bfeee00
f09907b
b7056f8
f3af3d8
ea049a9
d4ba81b
82df38e
0694808
4f8ffd6
70fdb62
a9ae969
896f5ad
4021cf5
6ee2f36
2aac957
c1a2dd2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
## MSBR Model | ||
|
||
Based on the design paper by Robertson, 1971 | ||
|
||
Figure 3.27, pg 46 | ||
Figure 3.4, pg 17 | ||
Figure 3.5, pg 18 | ||
Figure 3.3, pg 16 | ||
|
||
Model features: | ||
- Simplified Zone IA (graphite element is idential Zone IIA in the model, does not match original paper spec) | ||
- Simplified Zone IIA (graphite element does not match the original spec) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Checking to make sure I understand this correctly: Zone IA is identical to Zone IIA in the model, and neither match the specifications of Zone IIA from the paper? Could you mention how you changed Zone IIA in your model, compared to the specs? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I've been working on chapter 4 of my thesis which is a descriptin of the MSBR reference design, as well as the CSG model, and I've come to learn that this statement is actually incorrect. What is called "zone IA" in the model actually matches more closely in dimension to zone IB. I made a PR to adjust this, but failed to update the README.
I plan to overhaul the README with a summary of Chapter 4 of my thesis once that chapter is complete. Stay tuned for this. |
||
- Simplified Zone IIB (graphite slabs are constructed from cylindrical sectors, and so do not have a consistent width; the last gap in the ccw direction in each octant is smaller than the other gaps, which all have the same dimension) | ||
- Control rod elements (A Guess, as no spec was provided) | ||
- Radial reflectors. | ||
- Simplified axial reflectors (flat and cover more than what the MSBR does) | ||
|
||
Missing from model: | ||
- Zone IB | ||
- Top part of core (filled with salt?) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What is in the top of the core in the model? Is it just salt? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
- Radial reflector axial ribs | ||
- Radial reflector retaining rings | ||
- Upper salt plenum | ||
- Zone IIB Graphite Dowel pins and Hastelloy N eliptical pins | ||
- Salt inlets and outlest | ||
- Top and bottom dished heads | ||
- Zone I eliptical graphite sealing pins |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
import openmc | ||
import numpy as np | ||
|
||
def control_rod(gr_sq_neg, | ||
gr_extra_regions, | ||
inter_elem_channel, | ||
fuel_hole, | ||
fuel, | ||
moder): | ||
"""Create universe for control rod element with control rod fully inserted. | ||
Based on specification in Roberton, 1971. | ||
|
||
Parameters | ||
---------- | ||
gr_sq_neg : openmc.Intersection | ||
The region bounding the outer surface of the 6 in. x 6 in. graphite | ||
element. | ||
gr_extra_regions : list of (openmc.Region, str) | ||
'Add-on' regions and their names for the graphite element. | ||
Includes ribs, rib tips, and gap-filling regions. | ||
inter_elem_channel : openmc.Region, list of (openmc.Region, str) | ||
Inter-element channel region(s). | ||
fuel_hole : openmc.ZCylinder | ||
Central fuel hole in graphite element. | ||
fuel : openmc.Material | ||
Fuel salt material | ||
moder : openmc.Material | ||
Graphite material | ||
|
||
Returns | ||
------- | ||
cr : openmc.Universe | ||
Univerese for control rod element with control rod fully insterted. | ||
""" | ||
|
||
s1 = openmc.ZCylinder(r=4.7625, name='control_rod') | ||
|
||
c1 = openmc.Cell(fill=moder, region=-s1, name='control_rod') | ||
c2 = openmc.Cell(fill=fuel, region=(+s1 & -fuel_hole), name='cr_fuel_inner') | ||
c3 = openmc.Cell(fill=moder, region=(+fuel_hole & | ||
gr_sq_neg & | ||
inter_elem_channel), | ||
name='cr_moderator') | ||
c4 = openmc.Cell(fill=fuel, region= (~gr_sq_neg & inter_elem_channel), | ||
name='cr_fuel_outer') | ||
#universe_id=3 | ||
cr = openmc.Universe(name='control_rod', cells=[c1, c2, c3, c4]) | ||
|
||
for (reg, name) in gr_extra_regions: | ||
cr.add_cell(openmc.Cell(fill=moder, region=reg, | ||
name=f'cr_moderator_{name}')) | ||
|
||
return cr | ||
|
||
def control_rod_channel(gr_sq_neg, | ||
gr_extra_regions, | ||
inter_elem_channel, | ||
fuel_hole, | ||
fuel, | ||
moder): | ||
"""Create universe for control rod element with control rod fully withdrawn. | ||
Based on specification in Roberton, 1971. | ||
|
||
Parameters | ||
---------- | ||
gr_sq_neg : openmc.Intersection | ||
The region bounding the outer surface of the 6 in. x 6 in. graphite | ||
element. | ||
gr_extra_regions : list of (openmc.Region, str) | ||
'Add-on' regions and their names for the graphite element. | ||
Includes ribs, rib tips, and gap-filling regions. | ||
inter_elem_channel : openmc.Region, list of (openmc.Region, str) | ||
Inter-element channel region(s). | ||
fuel_hole : openmc.ZCylinder | ||
Central fuel hole in graphite element. | ||
fuel : openmc.Material | ||
Fuel salt material | ||
moder : openmc.Material | ||
Graphite material | ||
|
||
Returns | ||
------- | ||
crc : openmc.Universe | ||
Universe for control rod element with control rod fully withdrawn. | ||
""" | ||
|
||
c1 = openmc.Cell(fill=fuel, region=(-fuel_hole), name='crc_fuel_inner') | ||
|
||
c2 = openmc.Cell(fill=moder, region=(+fuel_hole & | ||
gr_sq_neg & | ||
inter_elem_channel), | ||
name='crc_moderator') | ||
c3 = openmc.Cell(fill=fuel, region=(~gr_sq_neg & inter_elem_channel), | ||
name='crc_fuel_outer') | ||
|
||
# universe_id=4 | ||
crc = openmc.Universe(name='control_rod_channel', cells=[c1, c2, c3]) | ||
|
||
for (reg, name) in gr_extra_regions: | ||
crc.add_cell(openmc.Cell(fill=moder, region=reg, | ||
name=f'crc_moderator_{name}')) | ||
|
||
return crc |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
small typo, "identical to Zone IIA"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch!