-
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
Conversation
3a1fde8
to
670538f
Compare
90f3142
to
af46265
Compare
This reverts commit aaae55f.
7afaf2f
to
d40074b
Compare
Serpent geometry
@ZoeRichter I'd love your input on this. |
the original model's material compositions did not match what is in the Robertson report. This commit fixes that for the OpenMC version of the model
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.
Looks good overall! Normally I'd complain about the "c1", "c2", "c3", etc. variable names not being descriptive enough, but I think it's fine in this case because you set the long form names within the variables themselves.
examples/msbr/README.md
Outdated
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) |
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"
- Simplified Zone IA (graphite element is idential Zone IIA in the model, does not match original paper spec) | |
- Simplified Zone IA (graphite element is identical Zone IIA in the model, does not match original paper spec) |
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!
examples/msbr/README.md
Outdated
|
||
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 comment
The 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 comment
The 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?
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.
Could you mention how you changed Zone IIA in your model, compared to the specs?
I plan to overhaul the README with a summary of Chapter 4 of my thesis once that chapter is complete. Stay tuned for this.
examples/msbr/README.md
Outdated
|
||
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 comment
The 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 comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
% ------ Vacuum cell | ||
cell 57 5 void -3 | ||
cell 57 5 void | ||
|
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.
Just to check I'm reading the changes right - it looks like you've removed the outer void that surrounds the outside of the reactor?
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.
That's not quite right. I've removed the surface that bounds the void cell (Universe 5). Universe 5 is only used in lattice elements in the main lattice, so having that universe bounded by a surface that is equivalent to the lattice element boundary is redundant. That's why i removed the bounding surface for Universe 5, since the lattice does the bounding instead.
%set rfw 1 restart | ||
set inventory fuel all | ||
|
||
%set printm 1 0.0 |
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.
for the settings you've commented out: are these things you anticipate needing again later, or can you remove them entirely?
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.
These settings are present in the original serpent input (msbr.serpent)
"template_input_file_path": "./msbr_endfb71.serpent", | ||
"npop": 50, | ||
"active_cycles": 20, | ||
"inactive_cycles": 20, |
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.
are these pop/active/inactive values just for testing? They seem very low.
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.
Correct. They are so we make sure the model actually will run in saltproc (it doesn't right now as I detailed in issue #171)
The script in this directory downloads and processes the JEFF | ||
3.1.2 cross section library -- as well as spontaneous and delayed fission neutron and | ||
The scripts in this directory downloads and processes cross sections data for | ||
use in Serpent and OpenMC |
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.
"The scripts in this directory download and process"
d3d754f
to
4f8ffd6
Compare
We need more testing before changing the base composition This reverts commit 0694808.
cbe0ce5
to
a9ae969
Compare
I think @ZoeRichter should handle merging this |
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.
I think It looks good to merge.
cell 315 0 fuel -3004 3017 -3011 % Lower plenum | ||
cell 307 0 hast -3006 3005 3015 -3013 % Radial vessel | ||
cell 308 0 hast -3006 3013 -3014 % Top vessel | ||
cell 309 0 hast -3006 -3015 3016 % Bottom vessel | ||
cell 310 0 outside 3006 3016 -3014 |
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.
These comments are very helpful :)
@samgdotson merging is still blocked because you requested changes - if these have been resolved, I think this PR is good to go, and I'll merge it. |
@samgdotson I think I addressed all of your changes |
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.
There are still some unanswered comments. Mostly, I want to know where all of these numbers come from -- some manner of scrutinizing the data -- rather than having them handed down from some higher power.
This might take the form of a README
file for each example. A curious third party should be able to cross-reference the data from somewhere.
fuel.add_components({'Li7': 0.0787474673879085, | ||
'Be9': 0.0225566879138321, | ||
'F19': 0.454003012179284, | ||
'Th232': 0.435579130482336, | ||
'U233': 0.00911370203663893}, |
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.
The associated data is in examples/msbr/mats/msbr_saltproc_prepr_comp.ini
where the values are also hardcoded but have a different "key."
I still want to know why these numbers and where they came from. The file above does not have this information either.
main.universes = [[v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, d, z, z, z, z, z, z, z, z, z, u, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, v, v, v, v, d, z, z, z, z, l, l, l, l, l, l, l, l, l, z, z, z, z, u, v, v, v, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, v, v, d, z, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, z, u, v, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v], |
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.
What is the shape you're trying to make here?
examples/msbr/openmc_msbr_model.py
Outdated
"Am243": 212952778.98135212, | ||
"Cm246": 220179493.9541502, | ||
"U239": 196182721.4907133, | ||
"Np239": 198519429.0542043, | ||
"Th233": 185840570.73897627, | ||
"Cf251": 223166396.6983342, | ||
"Am242": 215146730.16368726, | ||
"Cm245": 214624022.18345505, | ||
"Cf254": 230600814.3619568, | ||
"Am241": 211216798.63643932, | ||
"Th232": 197108389.42449385, | ||
"Cm240": 219583368.40646642, | ||
"Th231": 186918512.14598972, | ||
"Bk246": 224446497.874413, | ||
"Cm247": 218956599.9139631, | ||
"U238": 206851381.70909396, | ||
"Bk250": 225432928.78068554, | ||
"U230": 198841127.68309468, | ||
"Cf249": 221434495.10716867, | ||
"U234": 200632850.9958874, | ||
"Cm250": 219425761.1783332, | ||
"Th229": 192235847.44789958, | ||
"Cm241": 219075406.6897822, | ||
"Pu237": 210593272.23024797, | ||
"Am240": 215272544.02927735, |
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.
Just reiterating that I don't love having raw numbers like this. Ideally it would read something like
if deplete:
fiss_q = read_values()
....
# or
with open("data.pkl", "rb") as serp_data:
fiss_q = serp_data.load()
It just seems unsustainable to me.
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.
It's nearly there!
fuel.add_components({'Li7': 0.0787474673879085, | ||
'Be9': 0.0225566879138321, | ||
'F19': 0.454003012179284, | ||
'Th232': 0.435579130482336, | ||
'U233': 0.00911370203663893}, |
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.
The readme for your thesis or for saltproc? I don't see any references to your (unpublished?) thesis in the saltproc readme. Perhaps it's in another PR?
main.universes = [[v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, d, z, z, z, z, z, z, z, z, z, u, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, v, v, v, v, d, z, z, z, z, l, l, l, l, l, l, l, l, l, z, z, z, z, u, v, v, v, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, v, v, d, z, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, z, u, v, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v, v], | ||
[v, v, v, v, v, v, d, z, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, l, z, u, v, v, v, v, v, v], |
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.
I think that's fine, then. I wanted to see the shape you were going for and maybe check for some typos. It's another one of those things where a small error could generate considerable confusion later on.
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.
I missed your comment about the json earlier.
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.
I'll approve this, although I hope future versions will have fewer hardcoded values. Data should ideally be read in from somewhere.
…sbr-model OpenMC MSBR model and data 6bac510
…mc-msbr-model OpenMC MSBR model and data 6bac510
…mc-msbr-model OpenMC MSBR model and data 6bac510
Summary of changes
This PR adds an MSBR model for use by OpenMC using the same parameters in the Serpent MSBR model.
This PR also adds a script to download and convert the ENDF/B VII.1 library to an ACE library for use by Serpent. This ACE library can also be converted to the HDF5 format used by OpenMC.
Finally, this PR makes some minor bug fixes to typos present in the
process_j312.bash
scriptTypes of changes
Required for Merging
Associated Issues and PRs
Associated Developers
Checklist for Reviewers
Reviewers should use this link to get to the
Review Checklist before they begin their review.